From 512b7881322148e823b502a7b05854485ce556f2 Mon Sep 17 00:00:00 2001 From: Reinier Vens Date: Sat, 12 Dec 2020 03:48:07 +0000 Subject: [PATCH 01/51] Change License to MPLv2 --- LICENSE | 1034 ++++++++++++++++++++----------------------------------- 1 file changed, 373 insertions(+), 661 deletions(-) diff --git a/LICENSE b/LICENSE index 0ad25db4b..a612ad981 100644 --- a/LICENSE +++ b/LICENSE @@ -1,661 +1,373 @@ - GNU AFFERO GENERAL PUBLIC LICENSE - Version 3, 19 November 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The GNU Affero General Public License is a free, copyleft license for -software and other kinds of works, specifically designed to ensure -cooperation with the community in the case of network server software. - - The licenses for most software and other practical works are designed -to take away your freedom to share and change the works. By contrast, -our General Public Licenses are intended to guarantee your freedom to -share and change all versions of a program--to make sure it remains free -software for all its users. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -them if you wish), that you receive source code or can get it if you -want it, that you can change the software or use pieces of it in new -free programs, and that you know you can do these things. - - Developers that use our General Public Licenses protect your rights -with two steps: (1) assert copyright on the software, and (2) offer -you this License which gives you legal permission to copy, distribute -and/or modify the software. - - A secondary benefit of defending all users' freedom is that -improvements made in alternate versions of the program, if they -receive widespread use, become available for other developers to -incorporate. Many developers of free software are heartened and -encouraged by the resulting cooperation. However, in the case of -software used on network servers, this result may fail to come about. -The GNU General Public License permits making a modified version and -letting the public access it on a server without ever releasing its -source code to the public. - - The GNU Affero General Public License is designed specifically to -ensure that, in such cases, the modified source code becomes available -to the community. It requires the operator of a network server to -provide the source code of the modified version running there to the -users of that server. Therefore, public use of a modified version, on -a publicly accessible server, gives the public access to the source -code of the modified version. - - An older license, called the Affero General Public License and -published by Affero, was designed to accomplish similar goals. This is -a different license, not a version of the Affero GPL, but Affero has -released a new version of the Affero GPL which permits relicensing under -this license. - - The precise terms and conditions for copying, distribution and -modification follow. - - TERMS AND CONDITIONS - - 0. Definitions. - - "This License" refers to version 3 of the GNU Affero General Public License. - - "Copyright" also means copyright-like laws that apply to other kinds of -works, such as semiconductor masks. - - "The Program" refers to any copyrightable work licensed under this -License. Each licensee is addressed as "you". "Licensees" and -"recipients" may be individuals or organizations. - - To "modify" a work means to copy from or adapt all or part of the work -in a fashion requiring copyright permission, other than the making of an -exact copy. The resulting work is called a "modified version" of the -earlier work or a work "based on" the earlier work. - - A "covered work" means either the unmodified Program or a work based -on the Program. - - To "propagate" a work means to do anything with it that, without -permission, would make you directly or secondarily liable for -infringement under applicable copyright law, except executing it on a -computer or modifying a private copy. Propagation includes copying, -distribution (with or without modification), making available to the -public, and in some countries other activities as well. - - To "convey" a work means any kind of propagation that enables other -parties to make or receive copies. Mere interaction with a user through -a computer network, with no transfer of a copy, is not conveying. - - An interactive user interface displays "Appropriate Legal Notices" -to the extent that it includes a convenient and prominently visible -feature that (1) displays an appropriate copyright notice, and (2) -tells the user that there is no warranty for the work (except to the -extent that warranties are provided), that licensees may convey the -work under this License, and how to view a copy of this License. If -the interface presents a list of user commands or options, such as a -menu, a prominent item in the list meets this criterion. - - 1. Source Code. - - The "source code" for a work means the preferred form of the work -for making modifications to it. "Object code" means any non-source -form of a work. - - A "Standard Interface" means an interface that either is an official -standard defined by a recognized standards body, or, in the case of -interfaces specified for a particular programming language, one that -is widely used among developers working in that language. - - The "System Libraries" of an executable work include anything, other -than the work as a whole, that (a) is included in the normal form of -packaging a Major Component, but which is not part of that Major -Component, and (b) serves only to enable use of the work with that -Major Component, or to implement a Standard Interface for which an -implementation is available to the public in source code form. A -"Major Component", in this context, means a major essential component -(kernel, window system, and so on) of the specific operating system -(if any) on which the executable work runs, or a compiler used to -produce the work, or an object code interpreter used to run it. - - The "Corresponding Source" for a work in object code form means all -the source code needed to generate, install, and (for an executable -work) run the object code and to modify the work, including scripts to -control those activities. However, it does not include the work's -System Libraries, or general-purpose tools or generally available free -programs which are used unmodified in performing those activities but -which are not part of the work. For example, Corresponding Source -includes interface definition files associated with source files for -the work, and the source code for shared libraries and dynamically -linked subprograms that the work is specifically designed to require, -such as by intimate data communication or control flow between those -subprograms and other parts of the work. - - The Corresponding Source need not include anything that users -can regenerate automatically from other parts of the Corresponding -Source. - - The Corresponding Source for a work in source code form is that -same work. - - 2. Basic Permissions. - - All rights granted under this License are granted for the term of -copyright on the Program, and are irrevocable provided the stated -conditions are met. This License explicitly affirms your unlimited -permission to run the unmodified Program. The output from running a -covered work is covered by this License only if the output, given its -content, constitutes a covered work. This License acknowledges your -rights of fair use or other equivalent, as provided by copyright law. - - You may make, run and propagate covered works that you do not -convey, without conditions so long as your license otherwise remains -in force. You may convey covered works to others for the sole purpose -of having them make modifications exclusively for you, or provide you -with facilities for running those works, provided that you comply with -the terms of this License in conveying all material for which you do -not control copyright. Those thus making or running the covered works -for you must do so exclusively on your behalf, under your direction -and control, on terms that prohibit them from making any copies of -your copyrighted material outside their relationship with you. - - Conveying under any other circumstances is permitted solely under -the conditions stated below. Sublicensing is not allowed; section 10 -makes it unnecessary. - - 3. Protecting Users' Legal Rights From Anti-Circumvention Law. - - No covered work shall be deemed part of an effective technological -measure under any applicable law fulfilling obligations under article -11 of the WIPO copyright treaty adopted on 20 December 1996, or -similar laws prohibiting or restricting circumvention of such -measures. - - When you convey a covered work, you waive any legal power to forbid -circumvention of technological measures to the extent such circumvention -is effected by exercising rights under this License with respect to -the covered work, and you disclaim any intention to limit operation or -modification of the work as a means of enforcing, against the work's -users, your or third parties' legal rights to forbid circumvention of -technological measures. - - 4. Conveying Verbatim Copies. - - You may convey verbatim copies of the Program's source code as you -receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice; -keep intact all notices stating that this License and any -non-permissive terms added in accord with section 7 apply to the code; -keep intact all notices of the absence of any warranty; and give all -recipients a copy of this License along with the Program. - - You may charge any price or no price for each copy that you convey, -and you may offer support or warranty protection for a fee. - - 5. Conveying Modified Source Versions. - - You may convey a work based on the Program, or the modifications to -produce it from the Program, in the form of source code under the -terms of section 4, provided that you also meet all of these conditions: - - a) The work must carry prominent notices stating that you modified - it, and giving a relevant date. - - b) The work must carry prominent notices stating that it is - released under this License and any conditions added under section - 7. This requirement modifies the requirement in section 4 to - "keep intact all notices". - - c) You must license the entire work, as a whole, under this - License to anyone who comes into possession of a copy. This - License will therefore apply, along with any applicable section 7 - additional terms, to the whole of the work, and all its parts, - regardless of how they are packaged. This License gives no - permission to license the work in any other way, but it does not - invalidate such permission if you have separately received it. - - d) If the work has interactive user interfaces, each must display - Appropriate Legal Notices; however, if the Program has interactive - interfaces that do not display Appropriate Legal Notices, your - work need not make them do so. - - A compilation of a covered work with other separate and independent -works, which are not by their nature extensions of the covered work, -and which are not combined with it such as to form a larger program, -in or on a volume of a storage or distribution medium, is called an -"aggregate" if the compilation and its resulting copyright are not -used to limit the access or legal rights of the compilation's users -beyond what the individual works permit. Inclusion of a covered work -in an aggregate does not cause this License to apply to the other -parts of the aggregate. - - 6. Conveying Non-Source Forms. - - You may convey a covered work in object code form under the terms -of sections 4 and 5, provided that you also convey the -machine-readable Corresponding Source under the terms of this License, -in one of these ways: - - a) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by the - Corresponding Source fixed on a durable physical medium - customarily used for software interchange. - - b) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by a - written offer, valid for at least three years and valid for as - long as you offer spare parts or customer support for that product - model, to give anyone who possesses the object code either (1) a - copy of the Corresponding Source for all the software in the - product that is covered by this License, on a durable physical - medium customarily used for software interchange, for a price no - more than your reasonable cost of physically performing this - conveying of source, or (2) access to copy the - Corresponding Source from a network server at no charge. - - c) Convey individual copies of the object code with a copy of the - written offer to provide the Corresponding Source. This - alternative is allowed only occasionally and noncommercially, and - only if you received the object code with such an offer, in accord - with subsection 6b. - - d) Convey the object code by offering access from a designated - place (gratis or for a charge), and offer equivalent access to the - Corresponding Source in the same way through the same place at no - further charge. You need not require recipients to copy the - Corresponding Source along with the object code. If the place to - copy the object code is a network server, the Corresponding Source - may be on a different server (operated by you or a third party) - that supports equivalent copying facilities, provided you maintain - clear directions next to the object code saying where to find the - Corresponding Source. Regardless of what server hosts the - Corresponding Source, you remain obligated to ensure that it is - available for as long as needed to satisfy these requirements. - - e) Convey the object code using peer-to-peer transmission, provided - you inform other peers where the object code and Corresponding - Source of the work are being offered to the general public at no - charge under subsection 6d. - - A separable portion of the object code, whose source code is excluded -from the Corresponding Source as a System Library, need not be -included in conveying the object code work. - - A "User Product" is either (1) a "consumer product", which means any -tangible personal property which is normally used for personal, family, -or household purposes, or (2) anything designed or sold for incorporation -into a dwelling. In determining whether a product is a consumer product, -doubtful cases shall be resolved in favor of coverage. For a particular -product received by a particular user, "normally used" refers to a -typical or common use of that class of product, regardless of the status -of the particular user or of the way in which the particular user -actually uses, or expects or is expected to use, the product. A product -is a consumer product regardless of whether the product has substantial -commercial, industrial or non-consumer uses, unless such uses represent -the only significant mode of use of the product. - - "Installation Information" for a User Product means any methods, -procedures, authorization keys, or other information required to install -and execute modified versions of a covered work in that User Product from -a modified version of its Corresponding Source. The information must -suffice to ensure that the continued functioning of the modified object -code is in no case prevented or interfered with solely because -modification has been made. - - If you convey an object code work under this section in, or with, or -specifically for use in, a User Product, and the conveying occurs as -part of a transaction in which the right of possession and use of the -User Product is transferred to the recipient in perpetuity or for a -fixed term (regardless of how the transaction is characterized), the -Corresponding Source conveyed under this section must be accompanied -by the Installation Information. But this requirement does not apply -if neither you nor any third party retains the ability to install -modified object code on the User Product (for example, the work has -been installed in ROM). - - The requirement to provide Installation Information does not include a -requirement to continue to provide support service, warranty, or updates -for a work that has been modified or installed by the recipient, or for -the User Product in which it has been modified or installed. Access to a -network may be denied when the modification itself materially and -adversely affects the operation of the network or violates the rules and -protocols for communication across the network. - - Corresponding Source conveyed, and Installation Information provided, -in accord with this section must be in a format that is publicly -documented (and with an implementation available to the public in -source code form), and must require no special password or key for -unpacking, reading or copying. - - 7. Additional Terms. - - "Additional permissions" are terms that supplement the terms of this -License by making exceptions from one or more of its conditions. -Additional permissions that are applicable to the entire Program shall -be treated as though they were included in this License, to the extent -that they are valid under applicable law. If additional permissions -apply only to part of the Program, that part may be used separately -under those permissions, but the entire Program remains governed by -this License without regard to the additional permissions. - - When you convey a copy of a covered work, you may at your option -remove any additional permissions from that copy, or from any part of -it. (Additional permissions may be written to require their own -removal in certain cases when you modify the work.) You may place -additional permissions on material, added by you to a covered work, -for which you have or can give appropriate copyright permission. - - Notwithstanding any other provision of this License, for material you -add to a covered work, you may (if authorized by the copyright holders of -that material) supplement the terms of this License with terms: - - a) Disclaiming warranty or limiting liability differently from the - terms of sections 15 and 16 of this License; or - - b) Requiring preservation of specified reasonable legal notices or - author attributions in that material or in the Appropriate Legal - Notices displayed by works containing it; or - - c) Prohibiting misrepresentation of the origin of that material, or - requiring that modified versions of such material be marked in - reasonable ways as different from the original version; or - - d) Limiting the use for publicity purposes of names of licensors or - authors of the material; or - - e) Declining to grant rights under trademark law for use of some - trade names, trademarks, or service marks; or - - f) Requiring indemnification of licensors and authors of that - material by anyone who conveys the material (or modified versions of - it) with contractual assumptions of liability to the recipient, for - any liability that these contractual assumptions directly impose on - those licensors and authors. - - All other non-permissive additional terms are considered "further -restrictions" within the meaning of section 10. If the Program as you -received it, or any part of it, contains a notice stating that it is -governed by this License along with a term that is a further -restriction, you may remove that term. If a license document contains -a further restriction but permits relicensing or conveying under this -License, you may add to a covered work material governed by the terms -of that license document, provided that the further restriction does -not survive such relicensing or conveying. - - If you add terms to a covered work in accord with this section, you -must place, in the relevant source files, a statement of the -additional terms that apply to those files, or a notice indicating -where to find the applicable terms. - - Additional terms, permissive or non-permissive, may be stated in the -form of a separately written license, or stated as exceptions; -the above requirements apply either way. - - 8. Termination. - - You may not propagate or modify a covered work except as expressly -provided under this License. Any attempt otherwise to propagate or -modify it is void, and will automatically terminate your rights under -this License (including any patent licenses granted under the third -paragraph of section 11). - - However, if you cease all violation of this License, then your -license from a particular copyright holder is reinstated (a) -provisionally, unless and until the copyright holder explicitly and -finally terminates your license, and (b) permanently, if the copyright -holder fails to notify you of the violation by some reasonable means -prior to 60 days after the cessation. - - Moreover, your license from a particular copyright holder is -reinstated permanently if the copyright holder notifies you of the -violation by some reasonable means, this is the first time you have -received notice of violation of this License (for any work) from that -copyright holder, and you cure the violation prior to 30 days after -your receipt of the notice. - - Termination of your rights under this section does not terminate the -licenses of parties who have received copies or rights from you under -this License. If your rights have been terminated and not permanently -reinstated, you do not qualify to receive new licenses for the same -material under section 10. - - 9. Acceptance Not Required for Having Copies. - - You are not required to accept this License in order to receive or -run a copy of the Program. Ancillary propagation of a covered work -occurring solely as a consequence of using peer-to-peer transmission -to receive a copy likewise does not require acceptance. However, -nothing other than this License grants you permission to propagate or -modify any covered work. These actions infringe copyright if you do -not accept this License. Therefore, by modifying or propagating a -covered work, you indicate your acceptance of this License to do so. - - 10. Automatic Licensing of Downstream Recipients. - - Each time you convey a covered work, the recipient automatically -receives a license from the original licensors, to run, modify and -propagate that work, subject to this License. You are not responsible -for enforcing compliance by third parties with this License. - - An "entity transaction" is a transaction transferring control of an -organization, or substantially all assets of one, or subdividing an -organization, or merging organizations. If propagation of a covered -work results from an entity transaction, each party to that -transaction who receives a copy of the work also receives whatever -licenses to the work the party's predecessor in interest had or could -give under the previous paragraph, plus a right to possession of the -Corresponding Source of the work from the predecessor in interest, if -the predecessor has it or can get it with reasonable efforts. - - You may not impose any further restrictions on the exercise of the -rights granted or affirmed under this License. For example, you may -not impose a license fee, royalty, or other charge for exercise of -rights granted under this License, and you may not initiate litigation -(including a cross-claim or counterclaim in a lawsuit) alleging that -any patent claim is infringed by making, using, selling, offering for -sale, or importing the Program or any portion of it. - - 11. Patents. - - A "contributor" is a copyright holder who authorizes use under this -License of the Program or a work on which the Program is based. The -work thus licensed is called the contributor's "contributor version". - - A contributor's "essential patent claims" are all patent claims -owned or controlled by the contributor, whether already acquired or -hereafter acquired, that would be infringed by some manner, permitted -by this License, of making, using, or selling its contributor version, -but do not include claims that would be infringed only as a -consequence of further modification of the contributor version. For -purposes of this definition, "control" includes the right to grant -patent sublicenses in a manner consistent with the requirements of -this License. - - Each contributor grants you a non-exclusive, worldwide, royalty-free -patent license under the contributor's essential patent claims, to -make, use, sell, offer for sale, import and otherwise run, modify and -propagate the contents of its contributor version. - - In the following three paragraphs, a "patent license" is any express -agreement or commitment, however denominated, not to enforce a patent -(such as an express permission to practice a patent or covenant not to -sue for patent infringement). To "grant" such a patent license to a -party means to make such an agreement or commitment not to enforce a -patent against the party. - - If you convey a covered work, knowingly relying on a patent license, -and the Corresponding Source of the work is not available for anyone -to copy, free of charge and under the terms of this License, through a -publicly available network server or other readily accessible means, -then you must either (1) cause the Corresponding Source to be so -available, or (2) arrange to deprive yourself of the benefit of the -patent license for this particular work, or (3) arrange, in a manner -consistent with the requirements of this License, to extend the patent -license to downstream recipients. "Knowingly relying" means you have -actual knowledge that, but for the patent license, your conveying the -covered work in a country, or your recipient's use of the covered work -in a country, would infringe one or more identifiable patents in that -country that you have reason to believe are valid. - - If, pursuant to or in connection with a single transaction or -arrangement, you convey, or propagate by procuring conveyance of, a -covered work, and grant a patent license to some of the parties -receiving the covered work authorizing them to use, propagate, modify -or convey a specific copy of the covered work, then the patent license -you grant is automatically extended to all recipients of the covered -work and works based on it. - - A patent license is "discriminatory" if it does not include within -the scope of its coverage, prohibits the exercise of, or is -conditioned on the non-exercise of one or more of the rights that are -specifically granted under this License. You may not convey a covered -work if you are a party to an arrangement with a third party that is -in the business of distributing software, under which you make payment -to the third party based on the extent of your activity of conveying -the work, and under which the third party grants, to any of the -parties who would receive the covered work from you, a discriminatory -patent license (a) in connection with copies of the covered work -conveyed by you (or copies made from those copies), or (b) primarily -for and in connection with specific products or compilations that -contain the covered work, unless you entered into that arrangement, -or that patent license was granted, prior to 28 March 2007. - - Nothing in this License shall be construed as excluding or limiting -any implied license or other defenses to infringement that may -otherwise be available to you under applicable patent law. - - 12. No Surrender of Others' Freedom. - - If conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot convey a -covered work so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you may -not convey it at all. For example, if you agree to terms that obligate you -to collect a royalty for further conveying from those to whom you convey -the Program, the only way you could satisfy both those terms and this -License would be to refrain entirely from conveying the Program. - - 13. Remote Network Interaction; Use with the GNU General Public License. - - Notwithstanding any other provision of this License, if you modify the -Program, your modified version must prominently offer all users -interacting with it remotely through a computer network (if your version -supports such interaction) an opportunity to receive the Corresponding -Source of your version by providing access to the Corresponding Source -from a network server at no charge, through some standard or customary -means of facilitating copying of software. This Corresponding Source -shall include the Corresponding Source for any work covered by version 3 -of the GNU General Public License that is incorporated pursuant to the -following paragraph. - - Notwithstanding any other provision of this License, you have -permission to link or combine any covered work with a work licensed -under version 3 of the GNU General Public License into a single -combined work, and to convey the resulting work. The terms of this -License will continue to apply to the part which is the covered work, -but the work with which it is combined will remain governed by version -3 of the GNU General Public License. - - 14. Revised Versions of this License. - - The Free Software Foundation may publish revised and/or new versions of -the GNU Affero General Public License from time to time. Such new versions -will be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - - Each version is given a distinguishing version number. If the -Program specifies that a certain numbered version of the GNU Affero General -Public License "or any later version" applies to it, you have the -option of following the terms and conditions either of that numbered -version or of any later version published by the Free Software -Foundation. If the Program does not specify a version number of the -GNU Affero General Public License, you may choose any version ever published -by the Free Software Foundation. - - If the Program specifies that a proxy can decide which future -versions of the GNU Affero General Public License can be used, that proxy's -public statement of acceptance of a version permanently authorizes you -to choose that version for the Program. - - Later license versions may give you additional or different -permissions. However, no additional obligations are imposed on any -author or copyright holder as a result of your choosing to follow a -later version. - - 15. Disclaimer of Warranty. - - THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY -APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT -HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY -OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM -IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF -ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. Limitation of Liability. - - IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS -THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY -GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE -USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF -DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD -PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), -EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF -SUCH DAMAGES. - - 17. Interpretation of Sections 15 and 16. - - If the disclaimer of warranty and limitation of liability provided -above cannot be given local legal effect according to their terms, -reviewing courts shall apply local law that most closely approximates -an absolute waiver of all civil liability in connection with the -Program, unless a warranty or assumption of liability accompanies a -copy of the Program in return for a fee. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -state the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License as published - by the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Affero General Public License for more details. - - You should have received a copy of the GNU Affero General Public License - along with this program. If not, see . - -Also add information on how to contact you by electronic and paper mail. - - If your software can interact with users remotely through a computer -network, you should also make sure that it provides a way for users to -get its source. For example, if your program is a web application, its -interface could display a "Source" link that leads users to an archive -of the code. There are many ways you could offer source, and different -solutions will be better for different programs; see section 13 for the -specific requirements. - - You should also get your employer (if you work as a programmer) or school, -if any, to sign a "copyright disclaimer" for the program, if necessary. -For more information on this, and how to apply and follow the GNU AGPL, see -. +Mozilla Public License Version 2.0 +================================== + +1. Definitions +-------------- + +1.1. "Contributor" + means each individual or legal entity that creates, contributes to + the creation of, or owns Covered Software. + +1.2. "Contributor Version" + means the combination of the Contributions of others (if any) used + by a Contributor and that particular Contributor's Contribution. + +1.3. "Contribution" + means Covered Software of a particular Contributor. + +1.4. "Covered Software" + means Source Code Form to which the initial Contributor has attached + the notice in Exhibit A, the Executable Form of such Source Code + Form, and Modifications of such Source Code Form, in each case + including portions thereof. + +1.5. "Incompatible With Secondary Licenses" + means + + (a) that the initial Contributor has attached the notice described + in Exhibit B to the Covered Software; or + + (b) that the Covered Software was made available under the terms of + version 1.1 or earlier of the License, but not also under the + terms of a Secondary License. + +1.6. "Executable Form" + means any form of the work other than Source Code Form. + +1.7. "Larger Work" + means a work that combines Covered Software with other material, in + a separate file or files, that is not Covered Software. + +1.8. "License" + means this document. + +1.9. "Licensable" + means having the right to grant, to the maximum extent possible, + whether at the time of the initial grant or subsequently, any and + all of the rights conveyed by this License. + +1.10. "Modifications" + means any of the following: + + (a) any file in Source Code Form that results from an addition to, + deletion from, or modification of the contents of Covered + Software; or + + (b) any new file in Source Code Form that contains any Covered + Software. + +1.11. "Patent Claims" of a Contributor + means any patent claim(s), including without limitation, method, + process, and apparatus claims, in any patent Licensable by such + Contributor that would be infringed, but for the grant of the + License, by the making, using, selling, offering for sale, having + made, import, or transfer of either its Contributions or its + Contributor Version. + +1.12. "Secondary License" + means either the GNU General Public License, Version 2.0, the GNU + Lesser General Public License, Version 2.1, the GNU Affero General + Public License, Version 3.0, or any later versions of those + licenses. + +1.13. "Source Code Form" + means the form of the work preferred for making modifications. + +1.14. "You" (or "Your") + means an individual or a legal entity exercising rights under this + License. For legal entities, "You" includes any entity that + controls, is controlled by, or is under common control with You. For + purposes of this definition, "control" means (a) the power, direct + or indirect, to cause the direction or management of such entity, + whether by contract or otherwise, or (b) ownership of more than + fifty percent (50%) of the outstanding shares or beneficial + ownership of such entity. + +2. License Grants and Conditions +-------------------------------- + +2.1. Grants + +Each Contributor hereby grants You a world-wide, royalty-free, +non-exclusive license: + +(a) under intellectual property rights (other than patent or trademark) + Licensable by such Contributor to use, reproduce, make available, + modify, display, perform, distribute, and otherwise exploit its + Contributions, either on an unmodified basis, with Modifications, or + as part of a Larger Work; and + +(b) under Patent Claims of such Contributor to make, use, sell, offer + for sale, have made, import, and otherwise transfer either its + Contributions or its Contributor Version. + +2.2. Effective Date + +The licenses granted in Section 2.1 with respect to any Contribution +become effective for each Contribution on the date the Contributor first +distributes such Contribution. + +2.3. Limitations on Grant Scope + +The licenses granted in this Section 2 are the only rights granted under +this License. No additional rights or licenses will be implied from the +distribution or licensing of Covered Software under this License. +Notwithstanding Section 2.1(b) above, no patent license is granted by a +Contributor: + +(a) for any code that a Contributor has removed from Covered Software; + or + +(b) for infringements caused by: (i) Your and any other third party's + modifications of Covered Software, or (ii) the combination of its + Contributions with other software (except as part of its Contributor + Version); or + +(c) under Patent Claims infringed by Covered Software in the absence of + its Contributions. + +This License does not grant any rights in the trademarks, service marks, +or logos of any Contributor (except as may be necessary to comply with +the notice requirements in Section 3.4). + +2.4. Subsequent Licenses + +No Contributor makes additional grants as a result of Your choice to +distribute the Covered Software under a subsequent version of this +License (see Section 10.2) or under the terms of a Secondary License (if +permitted under the terms of Section 3.3). + +2.5. Representation + +Each Contributor represents that the Contributor believes its +Contributions are its original creation(s) or it has sufficient rights +to grant the rights to its Contributions conveyed by this License. + +2.6. Fair Use + +This License is not intended to limit any rights You have under +applicable copyright doctrines of fair use, fair dealing, or other +equivalents. + +2.7. Conditions + +Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted +in Section 2.1. + +3. Responsibilities +------------------- + +3.1. Distribution of Source Form + +All distribution of Covered Software in Source Code Form, including any +Modifications that You create or to which You contribute, must be under +the terms of this License. You must inform recipients that the Source +Code Form of the Covered Software is governed by the terms of this +License, and how they can obtain a copy of this License. You may not +attempt to alter or restrict the recipients' rights in the Source Code +Form. + +3.2. Distribution of Executable Form + +If You distribute Covered Software in Executable Form then: + +(a) such Covered Software must also be made available in Source Code + Form, as described in Section 3.1, and You must inform recipients of + the Executable Form how they can obtain a copy of such Source Code + Form by reasonable means in a timely manner, at a charge no more + than the cost of distribution to the recipient; and + +(b) You may distribute such Executable Form under the terms of this + License, or sublicense it under different terms, provided that the + license for the Executable Form does not attempt to limit or alter + the recipients' rights in the Source Code Form under this License. + +3.3. Distribution of a Larger Work + +You may create and distribute a Larger Work under terms of Your choice, +provided that You also comply with the requirements of this License for +the Covered Software. If the Larger Work is a combination of Covered +Software with a work governed by one or more Secondary Licenses, and the +Covered Software is not Incompatible With Secondary Licenses, this +License permits You to additionally distribute such Covered Software +under the terms of such Secondary License(s), so that the recipient of +the Larger Work may, at their option, further distribute the Covered +Software under the terms of either this License or such Secondary +License(s). + +3.4. Notices + +You may not remove or alter the substance of any license notices +(including copyright notices, patent notices, disclaimers of warranty, +or limitations of liability) contained within the Source Code Form of +the Covered Software, except that You may alter any license notices to +the extent required to remedy known factual inaccuracies. + +3.5. Application of Additional Terms + +You may choose to offer, and to charge a fee for, warranty, support, +indemnity or liability obligations to one or more recipients of Covered +Software. However, You may do so only on Your own behalf, and not on +behalf of any Contributor. You must make it absolutely clear that any +such warranty, support, indemnity, or liability obligation is offered by +You alone, and You hereby agree to indemnify every Contributor for any +liability incurred by such Contributor as a result of warranty, support, +indemnity or liability terms You offer. You may include additional +disclaimers of warranty and limitations of liability specific to any +jurisdiction. + +4. Inability to Comply Due to Statute or Regulation +--------------------------------------------------- + +If it is impossible for You to comply with any of the terms of this +License with respect to some or all of the Covered Software due to +statute, judicial order, or regulation then You must: (a) comply with +the terms of this License to the maximum extent possible; and (b) +describe the limitations and the code they affect. Such description must +be placed in a text file included with all distributions of the Covered +Software under this License. Except to the extent prohibited by statute +or regulation, such description must be sufficiently detailed for a +recipient of ordinary skill to be able to understand it. + +5. Termination +-------------- + +5.1. The rights granted under this License will terminate automatically +if You fail to comply with any of its terms. However, if You become +compliant, then the rights granted under this License from a particular +Contributor are reinstated (a) provisionally, unless and until such +Contributor explicitly and finally terminates Your grants, and (b) on an +ongoing basis, if such Contributor fails to notify You of the +non-compliance by some reasonable means prior to 60 days after You have +come back into compliance. Moreover, Your grants from a particular +Contributor are reinstated on an ongoing basis if such Contributor +notifies You of the non-compliance by some reasonable means, this is the +first time You have received notice of non-compliance with this License +from such Contributor, and You become compliant prior to 30 days after +Your receipt of the notice. + +5.2. If You initiate litigation against any entity by asserting a patent +infringement claim (excluding declaratory judgment actions, +counter-claims, and cross-claims) alleging that a Contributor Version +directly or indirectly infringes any patent, then the rights granted to +You by any and all Contributors for the Covered Software under Section +2.1 of this License shall terminate. + +5.3. In the event of termination under Sections 5.1 or 5.2 above, all +end user license agreements (excluding distributors and resellers) which +have been validly granted by You or Your distributors under this License +prior to termination shall survive termination. + +************************************************************************ +* * +* 6. Disclaimer of Warranty * +* ------------------------- * +* * +* Covered Software is provided under this License on an "as is" * +* basis, without warranty of any kind, either expressed, implied, or * +* statutory, including, without limitation, warranties that the * +* Covered Software is free of defects, merchantable, fit for a * +* particular purpose or non-infringing. The entire risk as to the * +* quality and performance of the Covered Software is with You. * +* Should any Covered Software prove defective in any respect, You * +* (not any Contributor) assume the cost of any necessary servicing, * +* repair, or correction. This disclaimer of warranty constitutes an * +* essential part of this License. No use of any Covered Software is * +* authorized under this License except under this disclaimer. * +* * +************************************************************************ + +************************************************************************ +* * +* 7. Limitation of Liability * +* -------------------------- * +* * +* Under no circumstances and under no legal theory, whether tort * +* (including negligence), contract, or otherwise, shall any * +* Contributor, or anyone who distributes Covered Software as * +* permitted above, be liable to You for any direct, indirect, * +* special, incidental, or consequential damages of any character * +* including, without limitation, damages for lost profits, loss of * +* goodwill, work stoppage, computer failure or malfunction, or any * +* and all other commercial damages or losses, even if such party * +* shall have been informed of the possibility of such damages. This * +* limitation of liability shall not apply to liability for death or * +* personal injury resulting from such party's negligence to the * +* extent applicable law prohibits such limitation. Some * +* jurisdictions do not allow the exclusion or limitation of * +* incidental or consequential damages, so this exclusion and * +* limitation may not apply to You. * +* * +************************************************************************ + +8. Litigation +------------- + +Any litigation relating to this License may be brought only in the +courts of a jurisdiction where the defendant maintains its principal +place of business and such litigation shall be governed by laws of that +jurisdiction, without reference to its conflict-of-law provisions. +Nothing in this Section shall prevent a party's ability to bring +cross-claims or counter-claims. + +9. Miscellaneous +---------------- + +This License represents the complete agreement concerning the subject +matter hereof. If any provision of this License is held to be +unenforceable, such provision shall be reformed only to the extent +necessary to make it enforceable. Any law or regulation which provides +that the language of a contract shall be construed against the drafter +shall not be used to construe this License against a Contributor. + +10. Versions of the License +--------------------------- + +10.1. New Versions + +Mozilla Foundation is the license steward. Except as provided in Section +10.3, no one other than the license steward has the right to modify or +publish new versions of this License. Each version will be given a +distinguishing version number. + +10.2. Effect of New Versions + +You may distribute the Covered Software under the terms of the version +of the License under which You originally received the Covered Software, +or under the terms of any subsequent version published by the license +steward. + +10.3. Modified Versions + +If you create software not governed by this License, and you want to +create a new license for such software, you may create and use a +modified version of this License if you rename the license and remove +any references to the name of the license steward (except to note that +such modified license differs from this License). + +10.4. Distributing Source Code Form that is Incompatible With Secondary +Licenses + +If You choose to distribute Source Code Form that is Incompatible With +Secondary Licenses under the terms of this version of the License, the +notice described in Exhibit B of this License must be attached. + +Exhibit A - Source Code Form License Notice +------------------------------------------- + + This Source Code Form is subject to the terms of the Mozilla Public + License, v. 2.0. If a copy of the MPL was not distributed with this + file, You can obtain one at http://mozilla.org/MPL/2.0/. + +If it is not possible or desirable to put the notice in a particular +file, then You may include the notice in a location (such as a LICENSE +file in a relevant directory) where a recipient would be likely to look +for such a notice. + +You may add additional accurate notices of copyright ownership. + +Exhibit B - "Incompatible With Secondary Licenses" Notice +--------------------------------------------------------- + + This Source Code Form is "Incompatible With Secondary Licenses", as + defined by the Mozilla Public License, v. 2.0. From ebde23a64dceb2a2bd82beec8c3f41e0ceaa8daa Mon Sep 17 00:00:00 2001 From: Reinier Vens Date: Thu, 18 Mar 2021 00:36:34 +0000 Subject: [PATCH 02/51] Enemy Loadout Generation Modified zone generator to scale the radius and mass of a zone according to galaxy density Added loadout generator which procedurally generates ships and turrets Generating 3 randomized ships in each occupied zone Fixed DatabaseCache.GetAll for parent types Fixed wormhole traversal bug for returning to previous zone (ZoneRenderer subscriptions not being properly disposed) --- ...conomy_WwiseProject.rwvens.validationcache | 8 +- ...eria-Economy_WwiseProject.rwvens.wsettings | 6 +- Assets/Materials/UI/Map Gravity Lines.mat | 2 +- .../Prefabs/Weapons/Regular Missile.prefab | 5063 +++++++++++++++++ .../Weapons/Regular Missile.prefab.meta | 7 + Assets/Resources/Settings.asset | 4 +- Assets/Scenes/ARPG.unity | 22 +- Assets/Scenes/Main Menu.unity | 16 +- Assets/Scripts/Gameplay/ActionGameManager.cs | 47 +- Assets/Scripts/Gameplay/GameSettings.cs | 2 - Assets/Scripts/Sector Display/ZoneRenderer.cs | 23 +- Assets/Scripts/ServerShared/DatabaseCache.cs | 5 + Assets/Scripts/ServerShared/Entity.cs | 2 +- Assets/Scripts/ServerShared/Extensions.cs | 13 +- Assets/Scripts/ServerShared/ItemData.cs | 44 + .../Scripts/ServerShared/LoadoutGenerator.cs | 155 + .../ServerShared/LoadoutGenerator.cs.meta | 3 + Assets/Scripts/ServerShared/Sector.cs | 6 +- Assets/Scripts/ServerShared/Settings.cs | 4 +- Assets/Scripts/ServerShared/Zone.cs | 15 + Assets/Scripts/ServerShared/ZoneGenerator.cs | 110 +- .../Shaders/Raymarching/VolumeRender.shader | 2 +- .../ProjectData/AkWwiseProjectData.asset | 2 +- GameData/AetherDB.msgpack | 4 +- GameData/PlayerSettings.msgpack | 4 +- 25 files changed, 5421 insertions(+), 148 deletions(-) create mode 100644 Assets/Resources/Prefabs/Weapons/Regular Missile.prefab create mode 100644 Assets/Resources/Prefabs/Weapons/Regular Missile.prefab.meta create mode 100644 Assets/Scripts/ServerShared/LoadoutGenerator.cs create mode 100644 Assets/Scripts/ServerShared/LoadoutGenerator.cs.meta diff --git a/Aetheria-Economy_WwiseProject/Aetheria-Economy_WwiseProject.rwvens.validationcache b/Aetheria-Economy_WwiseProject/Aetheria-Economy_WwiseProject.rwvens.validationcache index f920187cd..c01104806 100644 --- a/Aetheria-Economy_WwiseProject/Aetheria-Economy_WwiseProject.rwvens.validationcache +++ b/Aetheria-Economy_WwiseProject/Aetheria-Economy_WwiseProject.rwvens.validationcache @@ -38,7 +38,7 @@ - + @@ -53,9 +53,9 @@ - + - - + + diff --git a/Aetheria-Economy_WwiseProject/Aetheria-Economy_WwiseProject.rwvens.wsettings b/Aetheria-Economy_WwiseProject/Aetheria-Economy_WwiseProject.rwvens.wsettings index b5b96f927..cafc34416 100644 --- a/Aetheria-Economy_WwiseProject/Aetheria-Economy_WwiseProject.rwvens.wsettings +++ b/Aetheria-Economy_WwiseProject/Aetheria-Economy_WwiseProject.rwvens.wsettings @@ -53,7 +53,7 @@ - + @@ -84,7 +84,7 @@ - + @@ -96,7 +96,7 @@ - + diff --git a/Assets/Materials/UI/Map Gravity Lines.mat b/Assets/Materials/UI/Map Gravity Lines.mat index 90090842b..23aa9e9de 100644 --- a/Assets/Materials/UI/Map Gravity Lines.mat +++ b/Assets/Materials/UI/Map Gravity Lines.mat @@ -86,7 +86,7 @@ Material: - _Mode: 0 - _OcclusionStrength: 1 - _Parallax: 0.02 - - _Scale: 6.029707 + - _Scale: 2.0349123 - _SmoothnessTextureChannel: 0 - _SpecularHighlights: 1 - _SrcBlend: 1 diff --git a/Assets/Resources/Prefabs/Weapons/Regular Missile.prefab b/Assets/Resources/Prefabs/Weapons/Regular Missile.prefab new file mode 100644 index 000000000..b1b44740c --- /dev/null +++ b/Assets/Resources/Prefabs/Weapons/Regular Missile.prefab @@ -0,0 +1,5063 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &2200213683735813174 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2200213683735813172} + - component: {fileID: 2698694499776308069} + - component: {fileID: 2200213683735813173} + m_Layer: 0 + m_Name: MIRV Torpedo + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2200213683735813172 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2200213683735813174} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 2200213684891960496} + m_Father: {fileID: 5148235482537864796} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &2698694499776308069 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2200213683735813174} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1281fe44325f9b548aa42dc331b17266, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &2200213683735813173 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2200213683735813174} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 56c973b8f3781c848b6530c2e7efce05, type: 3} + m_Name: + m_EditorClassIdentifier: + HitEffect: {fileID: 3919473840829643297} + ChildProjectile: {fileID: 0} + Children: 0 + SplitTime: 0.25 + SplitSeparationForwardness: 0.75 + SplitSeparationVelocity: 0.5 + Particles: {fileID: 2200213684891960502} + FadeOutTime: 1 + ThrustCurve: + serializedVersion: 2 + m_Curve: [] + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + GuidanceCurve: + serializedVersion: 2 + m_Curve: [] + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + LiftCurve: + serializedVersion: 2 + m_Curve: [] + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + Frequency: 0 + Thrust: 0 + TopSpeed: 0 + Source: {fileID: 0} +--- !u!1 &2200213684891960497 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2200213684891960496} + - component: {fileID: 2200213684891960502} + - component: {fileID: 2200213684891960503} + m_Layer: 0 + m_Name: Particle System + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2200213684891960496 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2200213684891960497} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 2200213683735813172} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: -90, y: 0, z: 0} +--- !u!198 &2200213684891960502 +ParticleSystem: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2200213684891960497} + serializedVersion: 7 + lengthInSec: 5 + simulationSpeed: 1 + stopAction: 0 + cullingMode: 0 + ringBufferMode: 0 + ringBufferLoopRange: {x: 0, y: 1} + looping: 1 + prewarm: 0 + playOnAwake: 1 + useUnscaledTime: 0 + autoRandomSeed: 1 + useRigidbodyForVelocity: 1 + startDelay: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + moveWithTransform: 1 + moveWithCustomTransform: {fileID: 0} + scalingMode: 1 + randomSeed: 0 + InitialModule: + serializedVersion: 3 + enabled: 1 + startLifetime: + serializedVersion: 2 + minMaxState: 0 + scalar: 2 + minScalar: 5 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startSpeed: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 5 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startColor: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + startSize: + serializedVersion: 2 + minMaxState: 0 + scalar: 10 + minScalar: 3 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startSizeY: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startSizeZ: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startRotationX: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startRotationY: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startRotation: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + randomizeRotationDirection: 0 + maxNumParticles: 1000 + size3D: 0 + rotation3D: 0 + gravityModifier: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + ShapeModule: + serializedVersion: 6 + enabled: 0 + type: 4 + angle: 25 + length: 5 + boxThickness: {x: 0, y: 0, z: 0} + radiusThickness: 1 + donutRadius: 0.2 + m_Position: {x: 0, y: 0, z: 0} + m_Rotation: {x: 0, y: 0, z: 0} + m_Scale: {x: 1, y: 1, z: 1} + placementMode: 0 + m_MeshMaterialIndex: 0 + m_MeshNormalOffset: 0 + m_MeshSpawn: + mode: 0 + spread: 0 + speed: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Mesh: {fileID: 0} + m_MeshRenderer: {fileID: 0} + m_SkinnedMeshRenderer: {fileID: 0} + m_Sprite: {fileID: 0} + m_SpriteRenderer: {fileID: 0} + m_UseMeshMaterialIndex: 0 + m_UseMeshColors: 1 + alignToDirection: 0 + m_Texture: {fileID: 0} + m_TextureClipChannel: 3 + m_TextureClipThreshold: 0 + m_TextureUVChannel: 0 + m_TextureColorAffectsParticles: 1 + m_TextureAlphaAffectsParticles: 1 + m_TextureBilinearFiltering: 0 + randomDirectionAmount: 0 + sphericalDirectionAmount: 0 + randomPositionAmount: 0 + radius: + value: 1 + mode: 0 + spread: 0 + speed: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + arc: + value: 360 + mode: 0 + spread: 0 + speed: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + EmissionModule: + enabled: 1 + serializedVersion: 4 + rateOverTime: + serializedVersion: 2 + minMaxState: 0 + scalar: 500 + minScalar: 10 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + rateOverDistance: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_BurstCount: 0 + m_Bursts: [] + SizeModule: + enabled: 0 + curve: + serializedVersion: 2 + minMaxState: 1 + scalar: 4 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 2 + outSlope: 2 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 0.15039083 + value: 0.97053653 + inSlope: -0.04036486 + outSlope: -0.04036486 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.37395254 + value: 0.1353639 + inSlope: 0.03037455 + outSlope: 0.03037455 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.50258505 + - serializedVersion: 3 + time: 0.5234933 + value: 0.965686 + inSlope: -0.015838688 + outSlope: -0.015838688 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.5332359 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.80144876 + value: 0.13683647 + inSlope: 0.11682253 + outSlope: 0.11682253 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + RotationModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + curve: + serializedVersion: 2 + minMaxState: 0 + scalar: 0.7853982 + minScalar: 0.7853982 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + ColorModule: + enabled: 0 + gradient: + serializedVersion: 2 + minMaxState: 1 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + UVModule: + serializedVersion: 2 + enabled: 0 + mode: 0 + timeMode: 1 + fps: 30 + frameOverTime: + serializedVersion: 2 + minMaxState: 1 + scalar: 0.9999 + minScalar: 0.9999 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startFrame: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + speedRange: {x: 0, y: 1} + tilesX: 5 + tilesY: 5 + animationType: 0 + rowIndex: 0 + cycles: 1 + uvChannelMask: -1 + rowMode: 1 + sprites: + - sprite: {fileID: 0} + flipU: 0 + flipV: 0 + VelocityModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalX: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalY: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalZ: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalOffsetX: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalOffsetY: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalOffsetZ: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + radial: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + speedModifier: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + inWorldSpace: 0 + InheritVelocityModule: + enabled: 0 + m_Mode: 0 + m_Curve: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + LifetimeByEmitterSpeedModule: + enabled: 0 + m_Curve: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: -0.8 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0.2 + inSlope: -0.8 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Range: {x: 0, y: 1} + ForceModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + inWorldSpace: 0 + randomizePerFrame: 0 + ExternalForcesModule: + serializedVersion: 2 + enabled: 0 + multiplierCurve: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + influenceFilter: 0 + influenceMask: + serializedVersion: 2 + m_Bits: 4294967295 + influenceList: [] + ClampVelocityModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + magnitude: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxis: 0 + inWorldSpace: 0 + multiplyDragByParticleSize: 1 + multiplyDragByParticleVelocity: 1 + dampen: 0 + drag: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + NoiseModule: + enabled: 1 + strength: + serializedVersion: 2 + minMaxState: 1 + scalar: 5 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: -1 + outSlope: -1 + tangentMode: 34 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: -1 + outSlope: -1 + tangentMode: 34 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + strengthY: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + strengthZ: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + frequency: 0.01 + damping: 1 + octaves: 1 + octaveMultiplier: 0.5 + octaveScale: 2 + quality: 2 + scrollSpeed: + serializedVersion: 2 + minMaxState: 0 + scalar: 0.1 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remap: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: -1 + inSlope: 0 + outSlope: 2 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 2 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remapY: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: -1 + inSlope: 0 + outSlope: 2 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 2 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remapZ: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: -1 + inSlope: 0 + outSlope: 2 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 2 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remapEnabled: 0 + positionAmount: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + rotationAmount: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + sizeAmount: + serializedVersion: 2 + minMaxState: 0 + scalar: 0.1 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + SizeBySpeedModule: + enabled: 0 + curve: + serializedVersion: 2 + minMaxState: 1 + scalar: 5 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 1 + outSlope: 1 + tangentMode: 34 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 1 + tangentMode: 34 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + range: {x: 0, y: 1} + separateAxes: 0 + RotationBySpeedModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + curve: + serializedVersion: 2 + minMaxState: 0 + scalar: 0.7853982 + minScalar: 0.7853982 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + range: {x: 0, y: 1} + ColorBySpeedModule: + enabled: 0 + gradient: + serializedVersion: 2 + minMaxState: 1 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + range: {x: 0, y: 1} + CollisionModule: + enabled: 0 + serializedVersion: 4 + type: 0 + collisionMode: 0 + colliderForce: 0 + multiplyColliderForceByParticleSize: 0 + multiplyColliderForceByParticleSpeed: 0 + multiplyColliderForceByCollisionAngle: 1 + m_Planes: + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + m_Dampen: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Bounce: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_EnergyLossOnCollision: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minKillSpeed: 0 + maxKillSpeed: 10000 + radiusScale: 1 + collidesWith: + serializedVersion: 2 + m_Bits: 4294967295 + maxCollisionShapes: 256 + quality: 0 + voxelSize: 0.5 + collisionMessages: 0 + collidesWithDynamic: 1 + interiorCollisions: 0 + TriggerModule: + enabled: 0 + serializedVersion: 2 + inside: 1 + outside: 0 + enter: 0 + exit: 0 + colliderQueryMode: 0 + radiusScale: 1 + primitives: + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + SubModule: + serializedVersion: 2 + enabled: 0 + subEmitters: + - serializedVersion: 3 + emitter: {fileID: 0} + type: 0 + properties: 0 + emitProbability: 1 + LightsModule: + enabled: 0 + ratio: 0 + light: {fileID: 0} + randomDistribution: 1 + color: 1 + range: 1 + intensity: 1 + rangeCurve: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + intensityCurve: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + maxLights: 20 + TrailModule: + enabled: 1 + mode: 1 + ratio: 1 + lifetime: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minVertexDistance: 0.2 + textureMode: 0 + ribbonCount: 1 + shadowBias: 0.5 + worldSpace: 0 + dieWithParticles: 1 + sizeAffectsWidth: 1 + sizeAffectsLifetime: 0 + inheritParticleColor: 1 + generateLightingData: 0 + splitSubEmitterRibbons: 0 + attachRibbonsToTransform: 1 + colorOverLifetime: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + widthOverTrail: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: -0.84615326 + outSlope: -0.84615326 + tangentMode: 34 + weightedMode: 0 + inWeight: 0 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0.15384674 + inSlope: -0.84615326 + outSlope: -0.84615326 + tangentMode: 34 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + colorOverTrail: + serializedVersion: 2 + minMaxState: 1 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 0, g: 0, b: 0, a: 0} + key1: {r: 0.01, g: 0.01, b: 0.01, a: 1} + key2: {r: 1, g: 0.092499994, b: 0.00999999, a: 1} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 40557 + ctime2: 65535 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 8192 + atime2: 65535 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 3 + m_NumAlphaKeys: 3 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + CustomDataModule: + enabled: 0 + mode0: 1 + vectorComponentCount0: 2 + color0: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + colorLabel0: Color + vector0_0: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_0: X + vector0_1: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_1: Y + vector0_2: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_2: Z + vector0_3: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_3: W + mode1: 0 + vectorComponentCount1: 4 + color1: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + colorLabel1: Color + vector1_0: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_0: X + vector1_1: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_1: Y + vector1_2: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_2: Z + vector1_3: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_3: W +--- !u!199 &2200213684891960503 +ParticleSystemRenderer: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2200213684891960497} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10308, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 2100000, guid: 483c8decd432d5e49ac166734cdd9d37, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_RenderMode: 5 + m_SortMode: 0 + m_MinParticleSize: 0 + m_MaxParticleSize: 0.5 + m_CameraVelocityScale: 0 + m_VelocityScale: 0 + m_LengthScale: 2 + m_SortingFudge: 0 + m_NormalDirection: 1 + m_ShadowBias: 0 + m_RenderAlignment: 0 + m_Pivot: {x: 0, y: 0, z: 0} + m_Flip: {x: 0, y: 0, z: 0} + m_UseCustomVertexStreams: 0 + m_EnableGPUInstancing: 1 + m_ApplyActiveColorSpace: 1 + m_AllowRoll: 1 + m_FreeformStretching: 0 + m_RotateWithStretchDirection: 1 + m_VertexStreams: 00010304 + m_Mesh: {fileID: 0} + m_Mesh1: {fileID: 0} + m_Mesh2: {fileID: 0} + m_Mesh3: {fileID: 0} + m_MaskInteraction: 0 +--- !u!1 &3015547693297330586 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5148235482537864796} + - component: {fileID: 8540408454168213454} + m_Layer: 0 + m_Name: Regular Missile + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &5148235482537864796 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3015547693297330586} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 2200213683735813172} + - {fileID: 6349448974718639232} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &8540408454168213454 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3015547693297330586} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ee3949bbc28566148b9f661741b6e25d, type: 3} + m_Name: + m_EditorClassIdentifier: + ProjectilePrototype: {fileID: 2698694499776308069} +--- !u!1001 &6346338489469324596 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 5148235482537864796} + m_Modifications: + - target: {fileID: 1828176872806910, guid: 64891a0eb28db934898420d80ca07cb3, type: 3} + propertyPath: m_Name + value: SmallExplosion + objectReference: {fileID: 0} + - target: {fileID: 4361801158873524, guid: 64891a0eb28db934898420d80ca07cb3, type: 3} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4361801158873524, guid: 64891a0eb28db934898420d80ca07cb3, type: 3} + propertyPath: m_LocalPosition.x + value: -0.50997305 + objectReference: {fileID: 0} + - target: {fileID: 4361801158873524, guid: 64891a0eb28db934898420d80ca07cb3, type: 3} + propertyPath: m_LocalPosition.y + value: 2.57 + objectReference: {fileID: 0} + - target: {fileID: 4361801158873524, guid: 64891a0eb28db934898420d80ca07cb3, type: 3} + propertyPath: m_LocalPosition.z + value: -20.12803 + objectReference: {fileID: 0} + - target: {fileID: 4361801158873524, guid: 64891a0eb28db934898420d80ca07cb3, type: 3} + propertyPath: m_LocalRotation.w + value: 0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 4361801158873524, guid: 64891a0eb28db934898420d80ca07cb3, type: 3} + propertyPath: m_LocalRotation.x + value: -0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 4361801158873524, guid: 64891a0eb28db934898420d80ca07cb3, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4361801158873524, guid: 64891a0eb28db934898420d80ca07cb3, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4361801158873524, guid: 64891a0eb28db934898420d80ca07cb3, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: -90 + objectReference: {fileID: 0} + - target: {fileID: 4361801158873524, guid: 64891a0eb28db934898420d80ca07cb3, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4361801158873524, guid: 64891a0eb28db934898420d80ca07cb3, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 64891a0eb28db934898420d80ca07cb3, type: 3} +--- !u!4 &6349448974718639232 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4361801158873524, guid: 64891a0eb28db934898420d80ca07cb3, + type: 3} + m_PrefabInstance: {fileID: 6346338489469324596} + m_PrefabAsset: {fileID: 0} +--- !u!114 &3919473840829643297 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 7959687425165588245, guid: 64891a0eb28db934898420d80ca07cb3, + type: 3} + m_PrefabInstance: {fileID: 6346338489469324596} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1281fe44325f9b548aa42dc331b17266, type: 3} + m_Name: + m_EditorClassIdentifier: diff --git a/Assets/Resources/Prefabs/Weapons/Regular Missile.prefab.meta b/Assets/Resources/Prefabs/Weapons/Regular Missile.prefab.meta new file mode 100644 index 000000000..c3fdbbeed --- /dev/null +++ b/Assets/Resources/Prefabs/Weapons/Regular Missile.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 7d28d5171875a404684a7909ee631808 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Settings.asset b/Assets/Resources/Settings.asset index 331da703e..b4103e83c 100644 --- a/Assets/Resources/Settings.asset +++ b/Assets/Resources/Settings.asset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:71333ad0a8bb3553810a6529f8c028491b342966574e6f70b6d845689abe3cf5 -size 8652 +oid sha256:57a7d1a09f6d1e9ce1556f138102ff240ca545f66232d032da5bc250eec0593a +size 8638 diff --git a/Assets/Scenes/ARPG.unity b/Assets/Scenes/ARPG.unity index 8685cffa9..604b7cd15 100644 --- a/Assets/Scenes/ARPG.unity +++ b/Assets/Scenes/ARPG.unity @@ -14929,7 +14929,7 @@ RectTransform: m_GameObject: {fileID: 1005841431} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalScale: {x: 1.75, y: 1.75, z: 1} m_Children: - {fileID: 2124945556} - {fileID: 445770198} @@ -15880,8 +15880,8 @@ MonoBehaviour: m_Calls: [] m_text: Executive m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: f65e20c70af9671428dd62c7c635e417, type: 2} - m_sharedMaterial: {fileID: 21790448164444372, guid: f65e20c70af9671428dd62c7c635e417, + m_fontAsset: {fileID: 11400000, guid: 53555f7a2d5e745428813f1b1118734f, type: 2} + m_sharedMaterial: {fileID: -2804126062856497447, guid: 53555f7a2d5e745428813f1b1118734f, type: 2} m_fontSharedMaterials: [] m_fontMaterial: {fileID: 0} @@ -18252,8 +18252,8 @@ MonoBehaviour: m_Calls: [] m_text: Start m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: f65e20c70af9671428dd62c7c635e417, type: 2} - m_sharedMaterial: {fileID: 21790448164444372, guid: f65e20c70af9671428dd62c7c635e417, + m_fontAsset: {fileID: 11400000, guid: 53555f7a2d5e745428813f1b1118734f, type: 2} + m_sharedMaterial: {fileID: -2804126062856497447, guid: 53555f7a2d5e745428813f1b1118734f, type: 2} m_fontSharedMaterials: [] m_fontMaterial: {fileID: 0} @@ -19180,8 +19180,8 @@ MonoBehaviour: m_Calls: [] m_text: Terminus m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: f65e20c70af9671428dd62c7c635e417, type: 2} - m_sharedMaterial: {fileID: 21790448164444372, guid: f65e20c70af9671428dd62c7c635e417, + m_fontAsset: {fileID: 11400000, guid: 53555f7a2d5e745428813f1b1118734f, type: 2} + m_sharedMaterial: {fileID: -2804126062856497447, guid: 53555f7a2d5e745428813f1b1118734f, type: 2} m_fontSharedMaterials: [] m_fontMaterial: {fileID: 0} @@ -19652,8 +19652,8 @@ MonoBehaviour: m_Calls: [] m_text: Home Zone m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: f65e20c70af9671428dd62c7c635e417, type: 2} - m_sharedMaterial: {fileID: 21790448164444372, guid: f65e20c70af9671428dd62c7c635e417, + m_fontAsset: {fileID: 11400000, guid: 53555f7a2d5e745428813f1b1118734f, type: 2} + m_sharedMaterial: {fileID: -2804126062856497447, guid: 53555f7a2d5e745428813f1b1118734f, type: 2} m_fontSharedMaterials: [] m_fontMaterial: {fileID: 0} @@ -23284,8 +23284,8 @@ MonoBehaviour: m_Calls: [] m_text: Corporation m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: f65e20c70af9671428dd62c7c635e417, type: 2} - m_sharedMaterial: {fileID: 21790448164444372, guid: f65e20c70af9671428dd62c7c635e417, + m_fontAsset: {fileID: 11400000, guid: 53555f7a2d5e745428813f1b1118734f, type: 2} + m_sharedMaterial: {fileID: -2804126062856497447, guid: 53555f7a2d5e745428813f1b1118734f, type: 2} m_fontSharedMaterials: [] m_fontMaterial: {fileID: 0} diff --git a/Assets/Scenes/Main Menu.unity b/Assets/Scenes/Main Menu.unity index 84152c002..ec91eb7c1 100644 --- a/Assets/Scenes/Main Menu.unity +++ b/Assets/Scenes/Main Menu.unity @@ -249,7 +249,7 @@ PrefabInstance: - target: {fileID: 878382121558056004, guid: 2758dfa2744d7ad4d8877545189d116e, type: 3} propertyPath: m_AnchoredPosition.x - value: 60.98 + value: 0 objectReference: {fileID: 0} - target: {fileID: 878382121558056004, guid: 2758dfa2744d7ad4d8877545189d116e, type: 3} @@ -1302,8 +1302,8 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 741153267} - m_LocalRotation: {x: 0.015506897, y: 0.9502416, z: -0.30741316, w: 0.047933206} - m_LocalPosition: {x: -117.52, y: -77.08742, z: 149.09026} + m_LocalRotation: {x: 0.015506926, y: 0.9502416, z: -0.30741316, w: 0.047933295} + m_LocalPosition: {x: -117.52003, y: -77.08742, z: 149.09026} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: - {fileID: 412917866} @@ -1773,8 +1773,8 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 965376321} - m_LocalRotation: {x: 0.015506897, y: 0.9502416, z: -0.30741316, w: 0.047933206} - m_LocalPosition: {x: -117.52, y: -77.08742, z: 149.09026} + m_LocalRotation: {x: 0.015506926, y: 0.9502416, z: -0.30741316, w: 0.047933295} + m_LocalPosition: {x: -117.52003, y: -77.08742, z: 149.09026} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 0} @@ -2015,8 +2015,8 @@ MonoBehaviour: ZoneCount: 128 NameGeneratorMinLength: 5 NameGeneratorMaxLength: 10 - NameGeneratorOrder: 4 - MegaCount: 6 + NameGeneratorOrder: 3 + MegaCount: 12 BossCount: 3 NoisePosition: 0 CloudExponent: 10 @@ -2737,7 +2737,7 @@ PrefabInstance: - target: {fileID: 878382121558056004, guid: 2758dfa2744d7ad4d8877545189d116e, type: 3} propertyPath: m_AnchoredPosition.x - value: 55.675 + value: 0 objectReference: {fileID: 0} - target: {fileID: 878382121558056004, guid: 2758dfa2744d7ad4d8877545189d116e, type: 3} diff --git a/Assets/Scripts/Gameplay/ActionGameManager.cs b/Assets/Scripts/Gameplay/ActionGameManager.cs index c1a1e53e8..ff264d20a 100644 --- a/Assets/Scripts/Gameplay/ActionGameManager.cs +++ b/Assets/Scripts/Gameplay/ActionGameManager.cs @@ -19,6 +19,7 @@ using UnityEngine.UI; using Unity.Mathematics; using static Unity.Mathematics.math; using float2 = Unity.Mathematics.float2; +using float3 = Unity.Mathematics.float3; using quaternion = Unity.Mathematics.quaternion; using Random = UnityEngine.Random; @@ -262,7 +263,7 @@ public class ActionGameManager : MonoBehaviour ship.OnEnteredWormhole += () => { GenerateLevel(wormhole.Target); - ship.ExitWormhole(ZoneRenderer.WormholeInstances.Keys.First(w=>w.Target==Zone.SectorZone).Position, + ship.ExitWormhole(ZoneRenderer.WormholeInstances.Keys.First(w=>w.Target==oldZone.SectorZone).Position, Settings.GameplaySettings.WormholeExitVelocity * ItemManager.Random.NextFloat2Direction()); CurrentEntity.Zone = Zone; }; @@ -448,37 +449,28 @@ public class ActionGameManager : MonoBehaviour StartGame(); } - public void GenerateLevel(SectorZone sectorZone = null) + public void GenerateLevel(SectorZone sectorZone) { - if (sectorZone != null) + if (sectorZone == null) throw new ArgumentNullException(nameof(sectorZone)); + + if (sectorZone.Contents == null) { - if (sectorZone.Contents == null) - { - sectorZone.PackedContents ??= ZoneGenerator.GenerateZone( - settings: Settings.ZoneSettings, - mass: Settings.DefaultZoneMass, - radius: Settings.DefaultZoneRadius - ); - sectorZone.Contents = new Zone(ItemManager, Settings.PlanetSettings, sectorZone.PackedContents, sectorZone); - } - Zone = sectorZone.Contents; - } - else - { - var zonePack = ZoneGenerator.GenerateZone( - settings: Settings.ZoneSettings, - mass: Settings.DefaultZoneMass, - radius: Settings.DefaultZoneRadius + sectorZone.PackedContents ??= ZoneGenerator.GenerateZone( + ItemManager, + Settings.ZoneSettings, + CurrentSector, + sectorZone ); - Zone = new Zone(ItemManager, Settings.PlanetSettings, zonePack, sectorZone); + sectorZone.Contents = new Zone(ItemManager, Settings.PlanetSettings, sectorZone.PackedContents, sectorZone); } + Zone = sectorZone.Contents; Zone.Log = s => Debug.Log($"Zone: {s}"); if (CurrentEntity != null) { CurrentEntity.Deactivate(); - CurrentEntity.Zone?.Entities.Remove(CurrentEntity); + CurrentEntity.Zone.Entities.Remove(CurrentEntity); CurrentEntity.Zone = Zone; Zone.Entities.Add(CurrentEntity); CurrentEntity.Activate(); @@ -525,15 +517,6 @@ public class ActionGameManager : MonoBehaviour // zone.Agents.Add(CreateAgent(enemyShip)); } - private Agent CreateAgent(Ship ship) - { - var agent = new Minion(ship); - var task = new PatrolOrbitsTask(); - task.Circuit = Zone.Orbits.OrderBy(_ => Random.value).Take(4).Select(x => x.Key).ToArray(); - agent.Task = task; - return agent; - } - private void StartGame() { if (CurrentSector != null) @@ -542,6 +525,7 @@ public class ActionGameManager : MonoBehaviour { GenerateLevel(CurrentSector.Entrance); var ship = EntitySerializer.Unpack(ItemManager, Zone, Loadouts.First(x => x.Name == StarterShipTemplate), true); + ship.Position = float3.zero; ship.Zone = Zone; Zone.Entities.Add(ship); ship.Activate(); @@ -557,7 +541,6 @@ public class ActionGameManager : MonoBehaviour BindToEntity(targetEntity); } } - else GenerateLevel(); // var stationType = Database.GetAll().First(x=>x.HullType==HullType.Station); // var stationHull = ItemManager.CreateInstance(stationType) as EquippableItem; diff --git a/Assets/Scripts/Gameplay/GameSettings.cs b/Assets/Scripts/Gameplay/GameSettings.cs index 5174a47d4..84b781c77 100644 --- a/Assets/Scripts/Gameplay/GameSettings.cs +++ b/Assets/Scripts/Gameplay/GameSettings.cs @@ -13,8 +13,6 @@ public class GameSettings : ScriptableObject public float HeatstrokePhasingFloor = 0; public float HeatstrokePhasingFrequency = 5; public float WormholeDistanceRatio; - public float DefaultZoneRadius; - public float DefaultZoneMass; public float DefaultViewDistance; public float MinimapZoneGravityRange; public float[] MinimapZoomLevels; diff --git a/Assets/Scripts/Sector Display/ZoneRenderer.cs b/Assets/Scripts/Sector Display/ZoneRenderer.cs index bd8512ac4..be2ad3423 100644 --- a/Assets/Scripts/Sector Display/ZoneRenderer.cs +++ b/Assets/Scripts/Sector Display/ZoneRenderer.cs @@ -76,6 +76,7 @@ public class ZoneRenderer : MonoBehaviour private bool _rootFound; private Entity _perspectiveEntity; private IDisposable[] _perspectiveSubscriptions = new IDisposable[2]; + private List _zoneSubscriptions = new List(); public Dictionary WormholeInstances = new Dictionary(); @@ -184,9 +185,20 @@ public class ZoneRenderer : MonoBehaviour } foreach(var entity in zone.Entities) + { + Debug.Log($"Loading entity {entity.Name} from existing zone entity collection"); LoadEntity(entity); - zone.Entities.ObserveAdd().Subscribe(e => LoadEntity(e.Value)); - zone.Entities.ObserveRemove().Subscribe(e => UnloadEntity(e.Value)); + } + _zoneSubscriptions.Add(zone.Entities.ObserveAdd().Subscribe(e => + { + //Debug.Log($"Loading entity {e.Value.Name} from zone add event"); + LoadEntity(e.Value); + })); + _zoneSubscriptions.Add(zone.Entities.ObserveRemove().Subscribe(e => + { + //Debug.Log($"Unloading entity {e.Value.Name} from zone remove event"); + UnloadEntity(e.Value); + })); if(zone.SectorZone != null) { @@ -196,7 +208,7 @@ public class ZoneRenderer : MonoBehaviour AddWormhole(new Wormhole { Target = adjacentZone, - Position = dir * Settings.DefaultZoneRadius * Settings.WormholeDistanceRatio + Position = dir * zone.Pack.Radius * Settings.WormholeDistanceRatio }); } } @@ -214,9 +226,14 @@ public class ZoneRenderer : MonoBehaviour if (Zone == null) return; foreach (var wormhole in WormholeInstances.Values) Destroy(wormhole); WormholeInstances.Clear(); + + foreach(var subscription in _zoneSubscriptions) + subscription.Dispose(); + _zoneSubscriptions.Clear(); foreach (var entity in Zone.Entities) { + Debug.Log($"Unloading entity {entity.Name} from entities remaining during clear!"); UnloadEntity(entity); } diff --git a/Assets/Scripts/ServerShared/DatabaseCache.cs b/Assets/Scripts/ServerShared/DatabaseCache.cs index 44f6cf7d9..5dbb16e56 100644 --- a/Assets/Scripts/ServerShared/DatabaseCache.cs +++ b/Assets/Scripts/ServerShared/DatabaseCache.cs @@ -107,6 +107,11 @@ public class DatabaseCache { _entries[entry.ID] = entry; _types[type].Add(entry); + foreach (var parentType in type.GetParentTypes()) + { + if(_types.ContainsKey(parentType)) + _types[parentType].Add(entry); + } if (remote) { diff --git a/Assets/Scripts/ServerShared/Entity.cs b/Assets/Scripts/ServerShared/Entity.cs index eb4adffa3..006cc92e7 100644 --- a/Assets/Scripts/ServerShared/Entity.cs +++ b/Assets/Scripts/ServerShared/Entity.cs @@ -405,7 +405,7 @@ public abstract class Entity var itemShapeInset = hullData.Shape.Inset(itemData.Shape, hullCoord, item.Rotation); var hardpointShapeInset = hullData.Shape.Inset(hardpoint.Shape, hardpoint.Position); - // Check every cell of the hardpoint shape + // Check every cell of the hardpoint shape for existing items foreach(var v in hardpointShapeInset.Coordinates) if (GearOccupancy[v.x, v.y] != null) return false; diff --git a/Assets/Scripts/ServerShared/Extensions.cs b/Assets/Scripts/ServerShared/Extensions.cs index 3e5ec59a4..a517ad079 100644 --- a/Assets/Scripts/ServerShared/Extensions.cs +++ b/Assets/Scripts/ServerShared/Extensions.cs @@ -32,31 +32,32 @@ public static class Extensions public static T[] WeightedRandomElements(this IEnumerable collection, ref Random random, Func weightFunction, int count) { - var weights = new Dictionary(collection.Count()); + var elements = collection as T[] ?? collection.ToArray(); + var weights = new Dictionary(elements.Length); var totalWeight = 0f; - foreach (var x in collection) + foreach (var x in elements) { weights[x] = weightFunction(x); totalWeight += weights[x]; } - var elements = new T[count]; + var randomElements = new T[count]; for (int i = 0; i < count; i++) { var targetWeight = random.NextFloat(totalWeight); var accumWeight = 0f; - foreach (var x in collection) + foreach (var x in elements) { accumWeight += weights[x]; if (accumWeight > targetWeight) { - elements[i] = x; + randomElements[i] = x; break; } } } - return elements; + return randomElements; } // Thanks, https://stackoverflow.com/a/48599119 diff --git a/Assets/Scripts/ServerShared/ItemData.cs b/Assets/Scripts/ServerShared/ItemData.cs index 080cc5fe9..96288301c 100644 --- a/Assets/Scripts/ServerShared/ItemData.cs +++ b/Assets/Scripts/ServerShared/ItemData.cs @@ -175,6 +175,50 @@ public class Shape ); return shape; } + + // TODO: Use the power of math to optimize this function! + // Try to find a rotation and position with which a shape can be placed to fit within another shape + public bool FitsWithin(Shape other, out ItemRotation rotation, out int2 position) + { + // Try every item orientation + foreach(var rot in (ItemRotation[])Enum.GetValues(typeof(ItemRotation))) + { + rotation = rot; + if (FitsWithin(other, rot, out var pos)) + { + position = pos; + return true; + } + } + + rotation = ItemRotation.None; + position = int2.zero; + return false; + } + + // Try to find a position with which a shape can be placed to fit within another shape + public bool FitsWithin(Shape other, ItemRotation rotation, out int2 position) + { + // Try every item position that could possibly fit + for(int x = 0; x < other.Width - Width + 1; x++) + { + for (int y = 0; y < other.Height - Height + 1; y++) + { + position = int2(x, y); + var fits = true; + foreach (var v in Coordinates) + { + fits = fits && other[Rotate(v, rotation) + position]; + if (!fits) break; + } + + if (fits) return true; + } + } + + position = int2.zero; + return false; + } } [MessagePackObject, diff --git a/Assets/Scripts/ServerShared/LoadoutGenerator.cs b/Assets/Scripts/ServerShared/LoadoutGenerator.cs new file mode 100644 index 000000000..4af414449 --- /dev/null +++ b/Assets/Scripts/ServerShared/LoadoutGenerator.cs @@ -0,0 +1,155 @@ +using System; +using System.Linq; +using Unity.Mathematics; +using static Unity.Mathematics.math; +using Random = Unity.Mathematics.Random; + +public class LoadoutGenerator +{ + public Random Random; + public ItemManager ItemManager { get; } + public Sector Sector { get; } + public SectorZone Zone { get; } + public MegaCorporation Faction { get; } + public float PriceExponent { get; } + + public LoadoutGenerator( + ref Random random, + ItemManager itemManager, + Sector sector, + SectorZone zone, + MegaCorporation faction, + float priceExponent) + { + Random = random; + ItemManager = itemManager; + Sector = sector; + Zone = zone; + Faction = faction; + PriceExponent = priceExponent; + } + + public EntityPack GenerateShipLoadout() + { + var hull = ItemManager.CreateInstance(RandomHull(HullType.Ship)) as EquippableItem; + var entity = new Ship(ItemManager, null, hull, ItemManager.GameplaySettings.DefaultEntitySettings); + entity.Faction = Faction; + OutfitEntity(entity); + return EntitySerializer.Pack(entity); + } + + public EntityPack GenerateTurretLoadout() + { + var hull = ItemManager.CreateInstance(RandomHull(HullType.Turret)) as EquippableItem; + var entity = new OrbitalEntity(ItemManager, null, hull, Guid.Empty, ItemManager.GameplaySettings.DefaultEntitySettings); + entity.Faction = Faction; + OutfitEntity(entity); + return EntitySerializer.Pack(entity); + } + + public HullData RandomHull(HullType type) + { + return ItemManager.ItemData.GetAll() + .Where(item => item.HullType == type && (item.Manufacturer == Faction.ID || Faction.Allegiance.ContainsKey(item.Manufacturer))) + .WeightedRandomElements(ref Random, + item => + (item.Manufacturer == Faction.ID ? 1 : Faction.Allegiance[item.Manufacturer]) / // Prioritize items from allied manufacturers + Zone.Distance[Sector.HomeZones[ItemManager.ItemData.Get(item.Manufacturer)]] / // Penalize distance to manufacturer headquarters + pow(item.Price, PriceExponent), // Penalize item price to a controllable degree + 1 + ).FirstOrDefault(); + } + + public T RandomItem(Predicate filter = null) where T : EquippableItemData + { + return ItemManager.ItemData.GetAll() + .Where(item => Sector.ContainsFaction(item.Manufacturer) && + (item.Manufacturer == Faction.ID || Faction.Allegiance.ContainsKey(item.Manufacturer)) && + (filter?.Invoke(item) ?? true)) + .WeightedRandomElements(ref Random, item => + (item.Manufacturer == Faction.ID ? 1 : Faction.Allegiance[item.Manufacturer]) * // Prioritize items from allied manufacturers + item.Shape.Coordinates.Length / // Prioritize items that fill more of the hardpoint's slots + Zone.Distance[Sector.HomeZones[ItemManager.ItemData.Get(item.Manufacturer)]] / // Penalize distance to manufacturer headquarters + pow(item.Price, PriceExponent), // Penalize item price to a controllable degree + 1 + ).FirstOrDefault(); + } + + public T RandomItem(HardpointData hardpoint, Predicate filter = null) where T : EquippableItemData + { + return RandomItem(item => item.HardpointType == hardpoint.Type && + (filter?.Invoke(item) ?? true) && + item.Shape.FitsWithin(hardpoint.Shape, hardpoint.Rotation, out _)); + } + + private void OutfitEntity(Entity entity) + { + var hullData = ItemManager.GetData(entity.Hull) as HullData; + foreach (var hardpoint in hullData.Hardpoints) + { + if (hardpoint.Type == HardpointType.ControlModule) + { + var controllerData = RandomItem(hardpoint, + item => item.Behaviors.Any(b => entity is Ship && b is CockpitData || entity is OrbitalEntity && b is TurretControllerData)); + if (controllerData == null) throw new InvalidLoadoutException("No compatible controller found for entity!"); + var controller = ItemManager.CreateInstance(controllerData) as EquippableItem; + if (!entity.TryEquip(controller)) + { + throw new InvalidLoadoutException($"Failed to equip selected {Enum.GetName(typeof(HardpointType), hardpoint.Type)}!"); + } + } + else + { + var itemData = RandomItem(hardpoint); + if (itemData == null) ItemManager.Log($"No compatible item found for entity {Enum.GetName(typeof(HardpointType), hardpoint.Type)} hardpoint!"); + else + { + //throw new InvalidLoadoutException($"No compatible item found for entity {Enum.GetName(typeof(HardpointType), hardpoint.Type)} hardpoint!"); + var item = ItemManager.CreateInstance(itemData) as EquippableItem; + if (!entity.TryEquip(item)) + { + throw new InvalidLoadoutException($"Failed to equip selected {Enum.GetName(typeof(HardpointType), hardpoint.Type)}!"); + } + } + } + } + + var emptyShape = new Shape(hullData.Shape.Width, hullData.Shape.Height); + foreach (var v in hullData.Shape.Coordinates) + { + if (hullData.InteriorCells[v] && entity.Hardpoints[v.x, v.y] == null) + emptyShape[v] = true; + } + + var capacitorData = RandomItem(item => + item.Behaviors.Any(b => b is CapacitorData) && + item.Shape.FitsWithin(emptyShape, out _, out _)); + if (capacitorData == null) throw new InvalidLoadoutException("No compatible capacitor found for entity!"); + + if(!capacitorData.Shape.FitsWithin(emptyShape, out var capacitorRotation, out var capacitorPosition)) + throw new InvalidLoadoutException("Failed to equip selected capacitor!"); + var capacitor = ItemManager.CreateInstance(capacitorData) as EquippableItem; + capacitor.Rotation = capacitorRotation; + if (!entity.TryEquip(capacitor, capacitorPosition)) + { + throw new InvalidLoadoutException("Failed to equip selected capacitor!"); + } + } +} + +public class InvalidLoadoutException : Exception +{ + public InvalidLoadoutException() + { + } + + public InvalidLoadoutException(string message) + : base(message) + { + } + + public InvalidLoadoutException(string message, Exception inner) + : base(message, inner) + { + } +} \ No newline at end of file diff --git a/Assets/Scripts/ServerShared/LoadoutGenerator.cs.meta b/Assets/Scripts/ServerShared/LoadoutGenerator.cs.meta new file mode 100644 index 000000000..0fba8b34e --- /dev/null +++ b/Assets/Scripts/ServerShared/LoadoutGenerator.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: bbaf437585db46c9986f0a4f2c778444 +timeCreated: 1615957107 \ No newline at end of file diff --git a/Assets/Scripts/ServerShared/Sector.cs b/Assets/Scripts/ServerShared/Sector.cs index 806ce7a5c..77dfa7326 100644 --- a/Assets/Scripts/ServerShared/Sector.cs +++ b/Assets/Scripts/ServerShared/Sector.cs @@ -21,6 +21,7 @@ public class Sector public SectorZone Entrance { get; } public SectorZone Exit { get; } + private HashSet _containedFactions; private SectorZone[] _exitPath; private Dictionary _nameGenerators = new Dictionary(); @@ -249,9 +250,10 @@ public class Sector if(progressCallback!=null) Thread.Sleep(500); // Inserting Delay to make it seem like it's doing more work lmao } - private void GenerateSector() + public bool ContainsFaction(Guid factionID) { - + _containedFactions ??= new HashSet(Factions.Select(f => f.ID)); + return _containedFactions.Contains(factionID); } // Cache distance matrix and calculate isolation for every zone (used extensively for placing stuff) diff --git a/Assets/Scripts/ServerShared/Settings.cs b/Assets/Scripts/ServerShared/Settings.cs index 592e1396d..6983329b2 100644 --- a/Assets/Scripts/ServerShared/Settings.cs +++ b/Assets/Scripts/ServerShared/Settings.cs @@ -87,8 +87,6 @@ public class SectorGenerationSettings [Serializable, MessagePackObject(keyAsPropertyName:true), JsonObject] public class ZoneGenerationSettings { - public GalaxyShapeSettings ShapeSettings; - public ExponentialCurve PlanetSafetyRadius; public float MassFloor = 1; @@ -104,6 +102,8 @@ public class ZoneGenerationSettings public ExponentialLerp ZoneRadius; public ExponentialLerp ZoneMass; + public ExponentialLerp SubZoneCount; + public float ZoneBoundaryRadius; public float BeltProbability = .05f; public float BeltMassCeiling = 500f; diff --git a/Assets/Scripts/ServerShared/Zone.cs b/Assets/Scripts/ServerShared/Zone.cs index c215087f1..e637fafd3 100644 --- a/Assets/Scripts/ServerShared/Zone.cs +++ b/Assets/Scripts/ServerShared/Zone.cs @@ -74,11 +74,26 @@ public class Zone var entity = EntitySerializer.Unpack(_itemManager, this, entityPack); Entities.Add(entity); entity.Activate(); + if (entity is Ship {IsPlayerShip: false} ship) + { + Agents.Add(CreateAgent(ship)); + if (lengthsq(ship.Position) < 1) + ship.Position = _itemManager.Random.NextFloat3(float3(-pack.Radius * .5f), float3(pack.Radius * .5f)); + } } // TODO: Associate planets with stored entities for planetary colonies } + private Agent CreateAgent(Ship ship) + { + var agent = new Minion(ship); + var task = new PatrolOrbitsTask(); + task.Circuit = Orbits.OrderBy(_ => _itemManager.Random.NextFloat()).Take(4).Select(x => x.Key).ToArray(); + agent.Task = task; + return agent; + } + public ZonePack PackZone() { return new ZonePack diff --git a/Assets/Scripts/ServerShared/ZoneGenerator.cs b/Assets/Scripts/ServerShared/ZoneGenerator.cs index 3db1f2a10..9ba48b0c6 100644 --- a/Assets/Scripts/ServerShared/ZoneGenerator.cs +++ b/Assets/Scripts/ServerShared/ZoneGenerator.cs @@ -14,36 +14,8 @@ using static Unity.Mathematics.math; using float2 = Unity.Mathematics.float2; using Random = Unity.Mathematics.Random; -public class ZoneGenerator +public static class ZoneGenerator { - // public static ZonePack GenerateZone( - // ZoneGenerationSettings settings, - // Dictionary mapLayers, - // IEnumerable resources, - // string name, - // float2 position) - // { - // var random = new Random(Convert.ToUInt32(abs(name.GetHashCode()))); - // var radius = settings.ZoneRadius.Evaluate(random.NextFloat() * mapLayers["Radius"].Evaluate(position, settings.ShapeSettings)); - // var mass = settings.ZoneMass.Evaluate(random.NextFloat() * mapLayers["Mass"].Evaluate(position, settings.ShapeSettings)); - // - // return GenerateZone(settings, mapLayers, resources, name, position, mass, radius, random); - // } - - public static ZonePack GenerateZone( - ZoneGenerationSettings settings, - // Dictionary mapLayers, - // IEnumerable resources, - float mass, - float radius) - { - var name = Guid.NewGuid().ToString().Substring(0, 8); - var position = float2(0f); - var random = new Random(Convert.ToUInt32(abs(name.GetHashCode()))); - - return GenerateZone(settings, name, position, mass, radius, random, 6); - } - private class Circle { public float2 Center; @@ -62,35 +34,34 @@ public class ZoneGenerator } private const int MaximumPlacementSamples = 32; - private static ZonePack GenerateZone( - ZoneGenerationSettings settings, - // Dictionary mapLayers, - // IEnumerable resources, - string name, - float2 position, - float mass, - float radius, - Random random, - int targetSubzoneCount) - { + public static ZonePack GenerateZone( + ItemManager itemManager, + ZoneGenerationSettings zoneSettings, + Sector sector, + SectorZone sectorZone) + { var pack = new ZonePack(); - - pack.Radius = radius; - pack.Mass = mass; + + var random = new Random(unchecked((uint) sectorZone.Name.GetHashCode()) ^ hash(sectorZone.Position)); + + var density = saturate(sector.Settings.CloudDensity(sectorZone.Position)); + pack.Radius = zoneSettings.ZoneRadius.Evaluate(density); + pack.Mass = zoneSettings.ZoneMass.Evaluate(density); + var targetSubzoneCount = zoneSettings.SubZoneCount.Evaluate(density); //Debug.Log($"Generating zone at position {zone.Position} with radius {zoneRadius} and mass {zoneMass}"); var planets = new List(); if (targetSubzoneCount > 1) { - var zoneBoundary = new Circle(float2.zero, radius); + var zoneBoundary = new Circle(float2.zero, pack.Radius * zoneSettings.ZoneBoundaryRadius); float boundaryTangentRadius(float2 point) => -zoneBoundary.DistanceTo(point); var occupiedAreas = new List(); float tangentRadius(float2 point) => min(boundaryTangentRadius(point), occupiedAreas.Min(circle => circle.DistanceTo(point))); - var startPosition = random.NextFloat(radius * .25f, radius * .75f) * random.NextFloat2Direction(); + var startPosition = random.NextFloat(pack.Radius * .25f, pack.Radius * .5f) * random.NextFloat2Direction(); occupiedAreas.Add(new Circle(startPosition, boundaryTangentRadius(startPosition))); int samples = 0; @@ -99,7 +70,7 @@ public class ZoneGenerator samples = 0; for (int i = 0; i < MaximumPlacementSamples; i++) { - var samplePos = random.NextFloat2(-radius, radius); + var samplePos = random.NextFloat2(-pack.Radius, pack.Radius); var rad = tangentRadius(samplePos); if (rad > 0) { @@ -114,11 +85,11 @@ public class ZoneGenerator var totalArea = occupiedAreas.Sum(c => c.Area); foreach (var c in occupiedAreas) { - planets.AddRange(GenerateEntities(settings, ref random, c.Area / totalArea * pack.Mass, c.Radius, c.Center)); + planets.AddRange(GenerateEntities(zoneSettings, ref random, c.Area / totalArea * pack.Mass, c.Radius, c.Center)); } } else - planets.AddRange(GenerateEntities(settings, ref random, pack.Mass, pack.Radius, float2.zero)); + planets.AddRange(GenerateEntities(zoneSettings, ref random, pack.Mass, pack.Radius, float2.zero)); // Create collections to map between zone generator output and database entries var orbitMap = new Dictionary(); @@ -153,9 +124,9 @@ public class ZoneGenerator { // Dictionary planetResources = new Dictionary(); BodyType bodyType = planet.Belt ? BodyType.Asteroid : - planet.Mass > settings.SunMass ? BodyType.Sun : - planet.Mass > settings.GasGiantMass ? BodyType.GasGiant : - planet.Mass > settings.PlanetMass ? BodyType.Planet : BodyType.Planetoid; + planet.Mass > zoneSettings.SunMass ? BodyType.Sun : + planet.Mass > zoneSettings.GasGiantMass ? BodyType.GasGiant : + planet.Mass > zoneSettings.PlanetMass ? BodyType.Planet : BodyType.Planetoid; // foreach (var r in resources) // { @@ -193,13 +164,13 @@ public class ZoneGenerator if (planetData is AsteroidBeltData beltData) { beltData.Asteroids = - Enumerable.Range(0, (int) (settings.AsteroidCount.Evaluate(beltData.Mass.Value * orbitMap[planet].Distance.Value))) + Enumerable.Range(0, (int) (zoneSettings.AsteroidCount.Evaluate(beltData.Mass.Value * orbitMap[planet].Distance.Value))) .Select(_ => new Asteroid { - Distance = orbitMap[planet].Distance.Value + random.NextFloat()*(random.NextFloat()-.5f)*settings.AsteroidBeltWidth.Evaluate(orbitMap[planet].Distance.Value), + Distance = orbitMap[planet].Distance.Value + random.NextFloat()*(random.NextFloat()-.5f)*zoneSettings.AsteroidBeltWidth.Evaluate(orbitMap[planet].Distance.Value), Phase = random.NextFloat(), Size = random.NextFloat(), - RotationSpeed = settings.AsteroidRotationSpeed.Evaluate(random.NextFloat()) + RotationSpeed = zoneSettings.AsteroidRotationSpeed.Evaluate(random.NextFloat()) }) //.OrderByDescending(a=>a.Size) .ToArray(); @@ -209,25 +180,25 @@ public class ZoneGenerator if (gas is SunData sun) { float primary = random.NextFloat(); - float secondary = frac(primary + 1 + settings.SunSecondaryColorDistance * (random.NextFloat() > .5 ? 1 : -1)); + float secondary = frac(primary + 1 + zoneSettings.SunSecondaryColorDistance * (random.NextFloat() > .5 ? 1 : -1)); gas.Colors.Value = new [] { - float4(ColorMath.HsvToRgb(float3(primary, settings.SunColorSaturation, .5f)), 0), - float4(ColorMath.HsvToRgb(float3(secondary, settings.SunColorSaturation, 1)), 1) + float4(ColorMath.HsvToRgb(float3(primary, zoneSettings.SunColorSaturation, .5f)), 0), + float4(ColorMath.HsvToRgb(float3(secondary, zoneSettings.SunColorSaturation, 1)), 1) }; - sun.FogTintColor.Value = ColorMath.HsvToRgb(float3(primary, settings.SunFogTintSaturation, 1)); - sun.LightColor.Value = ColorMath.HsvToRgb(float3(primary, settings.SunLightSaturation, 1)); + sun.FogTintColor.Value = ColorMath.HsvToRgb(float3(primary, zoneSettings.SunFogTintSaturation, 1)); + sun.LightColor.Value = ColorMath.HsvToRgb(float3(primary, zoneSettings.SunLightSaturation, 1)); gas.FirstOffsetDomainRotationSpeed.Value = 5; } else { // Define primary color and two adjacent colors float primary = random.NextFloat(); - float right = frac(primary + settings.GasGiantBandColorSeparation); - float left = frac(primary + 1 - settings.GasGiantBandColorSeparation); + float right = frac(primary + zoneSettings.GasGiantBandColorSeparation); + float left = frac(primary + 1 - zoneSettings.GasGiantBandColorSeparation); // Create n time keys from 0 to 1 - var bandCount = (int) (settings.GasGiantBandCount.Evaluate(random.NextFloat()) + .5f); + var bandCount = (int) (zoneSettings.GasGiantBandCount.Evaluate(random.NextFloat()) + .5f); var times = Enumerable.Range(0, bandCount) .Select(i => (float) i / (bandCount-1)); @@ -235,9 +206,9 @@ public class ZoneGenerator // Saturation and Value are random with curves applied gas.Colors.Value = times .Select(time => float4(ColorMath.HsvToRgb(float3( - random.NextFloat() > settings.GasGiantBandAltColorChance ? primary : (random.NextFloat() > .5f ? right : left), - settings.GasGiantBandSaturation.Evaluate(random.NextFloat()), - settings.GasGiantBandSaturation.Evaluate(random.NextFloat()))),time)) + random.NextFloat() > zoneSettings.GasGiantBandAltColorChance ? primary : (random.NextFloat() > .5f ? right : left), + zoneSettings.GasGiantBandSaturation.Evaluate(random.NextFloat()), + zoneSettings.GasGiantBandSaturation.Evaluate(random.NextFloat()))),time)) .ToArray(); gas.FirstOffsetDomainRotationSpeed.Value = 0; @@ -250,6 +221,15 @@ public class ZoneGenerator return planetData; }).ToList(); + if (sectorZone.Owner != null) + { + var loadoutGenerator = new LoadoutGenerator(ref random, itemManager, sector, sectorZone, sectorZone.Owner, 1); + for (int i = 0; i < 3; i++) + { + pack.Entities.Add(loadoutGenerator.GenerateShipLoadout()); + } + } + return pack; } diff --git a/Assets/Shaders/Raymarching/VolumeRender.shader b/Assets/Shaders/Raymarching/VolumeRender.shader index f939cc3ca..512f9197c 100644 --- a/Assets/Shaders/Raymarching/VolumeRender.shader +++ b/Assets/Shaders/Raymarching/VolumeRender.shader @@ -128,7 +128,7 @@ float floorDensity = floorDist/_GridFloorBlend*_GridFloorDensity; float fogDensity = patchDensity + max(0,floorDensity); float alpha = min(max(max(fogDensity, 0) + fillDensity, _AlphaFloor), .99); - float albedo = (pow(1-alpha, _TintExponent)); + float albedo = (pow(1-alpha, _TintExponent)) * smoothstep(0,-50,pos.y); return float4((albedo*_Tint*lightTint).rgb, alpha); } diff --git a/Assets/Wwise/Editor/ProjectData/AkWwiseProjectData.asset b/Assets/Wwise/Editor/ProjectData/AkWwiseProjectData.asset index 9fed3e2c2..b52f50de9 100644 --- a/Assets/Wwise/Editor/ProjectData/AkWwiseProjectData.asset +++ b/Assets/Wwise/Editor/ProjectData/AkWwiseProjectData.asset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:046c09c95561993e756c90bbf1979b530523e0f0ac4d4e55e4cdf2dad815e833 +oid sha256:ce8df10517a839cab7279e216bf7fc43ce71a5a09e8b35c299694cc4edcd3683 size 13259 diff --git a/GameData/AetherDB.msgpack b/GameData/AetherDB.msgpack index 8bf85b4a3..9476e2a06 100644 --- a/GameData/AetherDB.msgpack +++ b/GameData/AetherDB.msgpack @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:26edb1f3eef434e3536ef34d876a1f3111351d75d4ad48606cd0e538ad4e2e80 -size 65945 +oid sha256:83493f0dc43a3abbac28741a23acd703e8061d55e79f7ee53c1d82b49595ba18 +size 67563 diff --git a/GameData/PlayerSettings.msgpack b/GameData/PlayerSettings.msgpack index 906687b1e..e4ecf11bc 100644 --- a/GameData/PlayerSettings.msgpack +++ b/GameData/PlayerSettings.msgpack @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:11f7d6b0debd0e6e44a1f6d7d804e56986cee0eca5d0370f87f782658befcb82 -size 54152 +oid sha256:3e24b91666460697a5f6c8c2291e21dacf606e737b4758fec7df6d784e62ca9e +size 33545 From 351cb9f2afbbf3a41a34d0c37fa6162c2772f022 Mon Sep 17 00:00:00 2001 From: Reinier Vens Date: Thu, 18 Mar 2021 22:48:33 +0000 Subject: [PATCH 03/51] Sector & Loadout Generation Fixes Adjusted sector generation to improve sample elimination performance and better preserve density map Added unit tests for item shape rotation and fit functions + fixed those (required for correct loadout generation)! Fixed faction hostility by marking player ship Added faction to entity serialization Generating starting loadout for player ship --- Assets/Materials/Fog Marching Main Menu.mat | 2 +- Assets/Materials/UI/Map Gravity Lines.mat | 2 +- Assets/Scenes/ARPG.unity | 3 +- Assets/Scenes/Main Menu.unity | 10 +- Assets/Scripts/Gameplay/ActionGameManager.cs | 55 +- Assets/Scripts/Gameplay/EntityInstance.cs | 3 + .../Scripts/ServerShared/EntitySerializer.cs | 13 +- Assets/Scripts/ServerShared/ItemData.cs | 22 +- .../Scripts/ServerShared/LoadoutGenerator.cs | 17 +- .../Scripts/ServerShared/SampleElimination.cs | 73 +- Assets/Scripts/ServerShared/Sector.cs | 36 +- Assets/Scripts/Tests.meta | 8 + Assets/Scripts/Tests/ShapeTestScript.cs | 43 ++ Assets/Scripts/Tests/ShapeTestScript.cs.meta | 11 + Assets/Scripts/Tests/Tests.asmdef | 25 + Assets/Scripts/Tests/Tests.asmdef.meta | 7 + .../Shaders/Raymarching/VolumeRender.shader | 4 +- GameData/AetherDB.msgpack | 2 +- GameData/Loadouts/Longinus.loadout | Bin 6087 -> 0 bytes GameData/PlayerSettings.msgpack | 4 +- Packages/manifest.json | 2 +- Packages/packages-lock.json | 2 +- Tests.csproj | 663 ++++++++++++++++++ 23 files changed, 879 insertions(+), 128 deletions(-) create mode 100644 Assets/Scripts/Tests.meta create mode 100644 Assets/Scripts/Tests/ShapeTestScript.cs create mode 100644 Assets/Scripts/Tests/ShapeTestScript.cs.meta create mode 100644 Assets/Scripts/Tests/Tests.asmdef create mode 100644 Assets/Scripts/Tests/Tests.asmdef.meta delete mode 100644 GameData/Loadouts/Longinus.loadout create mode 100644 Tests.csproj diff --git a/Assets/Materials/Fog Marching Main Menu.mat b/Assets/Materials/Fog Marching Main Menu.mat index 27b23cd61..3d074e6ae 100644 --- a/Assets/Materials/Fog Marching Main Menu.mat +++ b/Assets/Materials/Fog Marching Main Menu.mat @@ -61,5 +61,5 @@ Material: - _StepExponent: 2 - _TintExponent: 8 m_Colors: - - _Tint: {r: 0.34, g: 0.34, b: 0.34, a: 1} + - _Tint: {r: 0.59599996, g: 0.59599996, b: 0.59599996, a: 1} m_BuildTextureStacks: [] diff --git a/Assets/Materials/UI/Map Gravity Lines.mat b/Assets/Materials/UI/Map Gravity Lines.mat index 23aa9e9de..a45e9acba 100644 --- a/Assets/Materials/UI/Map Gravity Lines.mat +++ b/Assets/Materials/UI/Map Gravity Lines.mat @@ -86,7 +86,7 @@ Material: - _Mode: 0 - _OcclusionStrength: 1 - _Parallax: 0.02 - - _Scale: 2.0349123 + - _Scale: 2.4224877 - _SmoothnessTextureChannel: 0 - _SpecularHighlights: 1 - _SrcBlend: 1 diff --git a/Assets/Scenes/ARPG.unity b/Assets/Scenes/ARPG.unity index 604b7cd15..b0c2acaaf 100644 --- a/Assets/Scenes/ARPG.unity +++ b/Assets/Scenes/ARPG.unity @@ -15148,7 +15148,6 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: Settings: {fileID: 11400000, guid: cd2344e2001a37544aab0960c164d4ff, type: 2} - StarterShipTemplate: Longinus Sensitivity: x: -0.001 y: 0.001 @@ -25173,7 +25172,7 @@ Transform: m_GameObject: {fileID: 1857285684} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 4} - m_LocalScale: {x: 2, y: 2, z: 2} + m_LocalScale: {x: 3, y: 3, z: 3} m_Children: [] m_Father: {fileID: 1511875452} m_RootOrder: 1 diff --git a/Assets/Scenes/Main Menu.unity b/Assets/Scenes/Main Menu.unity index ec91eb7c1..975f66e73 100644 --- a/Assets/Scenes/Main Menu.unity +++ b/Assets/Scenes/Main Menu.unity @@ -1302,8 +1302,8 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 741153267} - m_LocalRotation: {x: 0.015506926, y: 0.9502416, z: -0.30741316, w: 0.047933295} - m_LocalPosition: {x: -117.52003, y: -77.08742, z: 149.09026} + m_LocalRotation: {x: 0.015506903, y: 0.9502416, z: -0.30741313, w: 0.047933225} + m_LocalPosition: {x: -117.51999, y: -77.08743, z: 149.09026} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: - {fileID: 412917866} @@ -1773,8 +1773,8 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 965376321} - m_LocalRotation: {x: 0.015506926, y: 0.9502416, z: -0.30741316, w: 0.047933295} - m_LocalPosition: {x: -117.52003, y: -77.08742, z: 149.09026} + m_LocalRotation: {x: 0.015506903, y: 0.9502416, z: -0.30741313, w: 0.047933225} + m_LocalPosition: {x: -117.51999, y: -77.08743, z: 149.09026} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 0} @@ -2012,7 +2012,7 @@ MonoBehaviour: m_EditorClassIdentifier: Settings: LinkDensity: 0.5 - ZoneCount: 128 + ZoneCount: 196 NameGeneratorMinLength: 5 NameGeneratorMaxLength: 10 NameGeneratorOrder: 3 diff --git a/Assets/Scripts/Gameplay/ActionGameManager.cs b/Assets/Scripts/Gameplay/ActionGameManager.cs index ff264d20a..07d94943f 100644 --- a/Assets/Scripts/Gameplay/ActionGameManager.cs +++ b/Assets/Scripts/Gameplay/ActionGameManager.cs @@ -62,7 +62,7 @@ public class ActionGameManager : MonoBehaviour public static Sector CurrentSector; public GameSettings Settings; - public string StarterShipTemplate = "Longinus"; + //public string StarterShipTemplate = "Longinus"; public float2 Sensitivity; public int Credits = 15000000; public float TargetSpottedBlinkFrequency = 20; @@ -171,9 +171,9 @@ public class ActionGameManager : MonoBehaviour ItemManager = new ItemManager(Database, Settings.GameplaySettings, Debug.Log); ZoneRenderer.ItemManager = ItemManager; - _loadoutPath = GameDataDirectory.CreateSubdirectory("Loadouts"); - Loadouts.AddRange(_loadoutPath.EnumerateFiles("*.loadout") - .Select(fi => MessagePackSerializer.Deserialize(File.ReadAllBytes(fi.FullName)))); + // _loadoutPath = GameDataDirectory.CreateSubdirectory("Loadouts"); + // Loadouts.AddRange(_loadoutPath.EnumerateFiles("*.loadout") + // .Select(fi => MessagePackSerializer.Deserialize(File.ReadAllBytes(fi.FullName)))); #region Input Handling @@ -266,6 +266,7 @@ public class ActionGameManager : MonoBehaviour ship.ExitWormhole(ZoneRenderer.WormholeInstances.Keys.First(w=>w.Target==oldZone.SectorZone).Position, Settings.GameplaySettings.WormholeExitVelocity * ItemManager.Random.NextFloat2Direction()); CurrentEntity.Zone = Zone; + SaveState(); }; } } @@ -483,38 +484,6 @@ public class ActionGameManager : MonoBehaviour UnbindEntity(); BindToEntity(CurrentEntity); } - - GenerateZoneEntities(Zone); - } - - private void GenerateZoneEntities(Zone zone) - { - // - // var turretLoadout = Loadouts.First(x => x.Name == "Turret"); - // - // for(int i=0; i<3; i++) - // { - // var planet = zone.PlanetInstances.Values.OrderByDescending(p => p.BodyData.Mass.Value).ElementAt(4+i); - // var planetOrbit = planet.Orbit.Data.ID; - // var planetPos = zone.GetOrbitPosition(planetOrbit); - // for (int j = 0; j < 2; j++) - // { - // var pos = planetPos + ItemManager.Random.NextFloat2Direction() * planet.GravityWellRadius.Value * (.1f + .1f * j); - // var orbit = zone.CreateOrbit(planetOrbit, pos); - // var turret = EntityPack.Unpack(ItemManager, Zone, turretLoadout, orbit.ID, true); - // turret.Activate(); - // turret.Name = $"Turret {i}-{(char) ('A' + j)}"; - // turret.Faction = testCorp; - // zone.Entities.Add(turret); - // } - // } - // - // var enemyShipLoadout = Loadouts.First(x => ((HullData) ItemManager.GetData(x.Hull)).HullType == HullType.Ship); - // var enemyShip = EntityPack.Unpack(ItemManager, Zone, enemyShipLoadout, true); - // enemyShip.Faction = testCorp; - // enemyShip.Activate(); - // zone.Entities.Add(enemyShip); - // zone.Agents.Add(CreateAgent(enemyShip)); } private void StartGame() @@ -524,7 +493,10 @@ public class ActionGameManager : MonoBehaviour if (PlayerSettings.CurrentRun == null) { GenerateLevel(CurrentSector.Entrance); - var ship = EntitySerializer.Unpack(ItemManager, Zone, Loadouts.First(x => x.Name == StarterShipTemplate), true); + var loadoutGenerator = new LoadoutGenerator(ref ItemManager.Random, ItemManager, CurrentSector, Zone.SectorZone, null, 2); + var ship = EntitySerializer.Unpack(ItemManager, Zone, loadoutGenerator.GenerateShipLoadout(), true); + // EntitySerializer.Unpack(ItemManager, Zone, Loadouts.First(x => x.Name == StarterShipTemplate), true); + ((Ship) ship).IsPlayerShip = true; ship.Position = float3.zero; ship.Zone = Zone; Zone.Entities.Add(ship); @@ -742,8 +714,13 @@ public class ActionGameManager : MonoBehaviour CurrentEntity = null; Dialog.Clear(); Dialog.Title.text = "You have died!"; - Dialog.Show(StartGame, null, "Try again!"); - Dialog.MoveToCursor(); + Dialog.Show(() => + { + PlayerSettings.CurrentRun = null; + StartGame(); + }, null, "Try again!"); + Dialog.transform.position = new Vector3(Screen.width / 2, Screen.height / 2); + //Dialog.MoveToCursor(); Observable.EveryUpdate() .Select(_ => (Time.time - deathTime) / DeathPPTransitionTime) .Where(t => t < 1) diff --git a/Assets/Scripts/Gameplay/EntityInstance.cs b/Assets/Scripts/Gameplay/EntityInstance.cs index e64e082ac..910e31c0d 100644 --- a/Assets/Scripts/Gameplay/EntityInstance.cs +++ b/Assets/Scripts/Gameplay/EntityInstance.cs @@ -36,6 +36,7 @@ public class EntityInstance : MonoBehaviour private bool _fadedElementsVisible = false; private bool _unfadedElementsVisible = false; private float _fadeTime; + private bool _destroyed; private (Reactor reactor, GameObject sfxSource) _reactor; private Dictionary _radiatorSfx = new Dictionary(); @@ -390,6 +391,8 @@ public class EntityInstance : MonoBehaviour { if (Entity.Hull.Durability < .01f) { + if (!this) return; + _destroyed = true; if (DestroyEffect != null) { var t = Instantiate(DestroyEffect).transform; diff --git a/Assets/Scripts/ServerShared/EntitySerializer.cs b/Assets/Scripts/ServerShared/EntitySerializer.cs index 7cf6a3701..83c83032e 100644 --- a/Assets/Scripts/ServerShared/EntitySerializer.cs +++ b/Assets/Scripts/ServerShared/EntitySerializer.cs @@ -39,6 +39,7 @@ public static class EntitySerializer pack.Hull = entity.Hull; pack.Name = entity.Name; + pack.Faction = entity.Faction?.ID ?? Guid.Empty; pack.Equipment = entity.Equipment.Select(e => (e.Position, e.EquippableItem)).ToArray(); pack.CargoBays = entity.CargoBays.Select(e => (e.Position, e.EquippableItem)).ToArray(); pack.DockingBays = entity.DockingBays.Select(e => (e.Position, e.EquippableItem)).ToArray(); @@ -86,6 +87,7 @@ public static class EntitySerializer private static void Restore(ItemManager itemManager, Zone zone, EntityPack pack, Entity entity, bool instantiate = false) { entity.Name = pack.Name; + entity.Faction = itemManager.ItemData.Get(pack.Faction); entity.Children = pack.Children.Select(c => { var child = Unpack(itemManager, zone, c, instantiate); @@ -138,15 +140,15 @@ public static class EntitySerializer [MessagePackObject] public class ShipPack : EntityPack { - [Key(15)] public float3 Position; - [Key(16)] public float2 Direction; - [Key(17)] public bool IsPlayerShip; + [Key(16)] public float3 Position; + [Key(17)] public float2 Direction; + [Key(18)] public bool IsPlayerShip; } [MessagePackObject] public class OrbitalEntityPack : EntityPack { - [Key(15)] + [Key(16)] public Guid Orbit; } @@ -197,6 +199,9 @@ public abstract class EntityPack [Key(14)] public EntitySettings Settings; + [Key(15)] + public Guid Faction; + private int _price; public int Price(ItemManager itemManager) diff --git a/Assets/Scripts/ServerShared/ItemData.cs b/Assets/Scripts/ServerShared/ItemData.cs index 96288301c..6a5de3d33 100644 --- a/Assets/Scripts/ServerShared/ItemData.cs +++ b/Assets/Scripts/ServerShared/ItemData.cs @@ -68,17 +68,13 @@ public class Shape public int2 Rotate(int2 position, ItemRotation rotation) { - switch (rotation) + return rotation switch { - case ItemRotation.Clockwise: - return int2(position.y, Width - 1 - position.x); - case ItemRotation.Reversed: - return int2(Width - 1 - position.x, Height - 1 - position.y); - case ItemRotation.CounterClockwise: - return int2(Height - 1 - position.y, position.x); - default: - return int2(position.x, position.y); - } + ItemRotation.Clockwise => int2(position.y, Width - 1 - position.x), + ItemRotation.Reversed => int2(Width - 1 - position.x, Height - 1 - position.y), + ItemRotation.CounterClockwise => int2(Height - 1 - position.y, position.x), + _ => int2(position.x, position.y) + }; } private int2[] _cachedShapeCoordinates; @@ -199,10 +195,12 @@ public class Shape // Try to find a position with which a shape can be placed to fit within another shape public bool FitsWithin(Shape other, ItemRotation rotation, out int2 position) { + var width = rotation == ItemRotation.Clockwise || rotation == ItemRotation.CounterClockwise ? Height : Width; + var height = rotation == ItemRotation.Clockwise || rotation == ItemRotation.CounterClockwise ? Width : Height; // Try every item position that could possibly fit - for(int x = 0; x < other.Width - Width + 1; x++) + for(int x = 0; x < other.Width - width + 1; x++) { - for (int y = 0; y < other.Height - Height + 1; y++) + for (int y = 0; y < other.Height - height + 1; y++) { position = int2(x, y); var fits = true; diff --git a/Assets/Scripts/ServerShared/LoadoutGenerator.cs b/Assets/Scripts/ServerShared/LoadoutGenerator.cs index 4af414449..bff4f2d91 100644 --- a/Assets/Scripts/ServerShared/LoadoutGenerator.cs +++ b/Assets/Scripts/ServerShared/LoadoutGenerator.cs @@ -1,4 +1,5 @@ using System; +using System.Collections.Generic; using System.Linq; using Unity.Mathematics; using static Unity.Mathematics.math; @@ -50,10 +51,10 @@ public class LoadoutGenerator public HullData RandomHull(HullType type) { return ItemManager.ItemData.GetAll() - .Where(item => item.HullType == type && (item.Manufacturer == Faction.ID || Faction.Allegiance.ContainsKey(item.Manufacturer))) + .Where(item => item.HullType == type && (Faction == null || item.Manufacturer == Faction.ID || Faction.Allegiance.ContainsKey(item.Manufacturer))) .WeightedRandomElements(ref Random, item => - (item.Manufacturer == Faction.ID ? 1 : Faction.Allegiance[item.Manufacturer]) / // Prioritize items from allied manufacturers + (Faction == null || item.Manufacturer == Faction.ID ? 1 : Faction.Allegiance[item.Manufacturer]) / // Prioritize items from allied manufacturers Zone.Distance[Sector.HomeZones[ItemManager.ItemData.Get(item.Manufacturer)]] / // Penalize distance to manufacturer headquarters pow(item.Price, PriceExponent), // Penalize item price to a controllable degree 1 @@ -64,10 +65,10 @@ public class LoadoutGenerator { return ItemManager.ItemData.GetAll() .Where(item => Sector.ContainsFaction(item.Manufacturer) && - (item.Manufacturer == Faction.ID || Faction.Allegiance.ContainsKey(item.Manufacturer)) && + (Faction == null || item.Manufacturer == Faction.ID || Faction.Allegiance.ContainsKey(item.Manufacturer)) && (filter?.Invoke(item) ?? true)) .WeightedRandomElements(ref Random, item => - (item.Manufacturer == Faction.ID ? 1 : Faction.Allegiance[item.Manufacturer]) * // Prioritize items from allied manufacturers + (Faction == null || item.Manufacturer == Faction.ID ? 1 : Faction.Allegiance[item.Manufacturer]) * // Prioritize items from allied manufacturers item.Shape.Coordinates.Length / // Prioritize items that fill more of the hardpoint's slots Zone.Distance[Sector.HomeZones[ItemManager.ItemData.Get(item.Manufacturer)]] / // Penalize distance to manufacturer headquarters pow(item.Price, PriceExponent), // Penalize item price to a controllable degree @@ -85,6 +86,8 @@ public class LoadoutGenerator private void OutfitEntity(Entity entity) { var hullData = ItemManager.GetData(entity.Hull) as HullData; + foreach (var v in hullData.Shape.Coordinates) entity.HullConductivity[v.x, v.y] = true; + var previousItems = new List(); foreach (var hardpoint in hullData.Hardpoints) { if (hardpoint.Type == HardpointType.ControlModule) @@ -100,7 +103,10 @@ public class LoadoutGenerator } else { - var itemData = RandomItem(hardpoint); + // If a previously selected item fits, use that one + var itemData = previousItems + .FirstOrDefault(i => i.HardpointType == hardpoint.Type && i.Shape.FitsWithin(hardpoint.Shape, hardpoint.Rotation, out _)); + itemData ??= RandomItem(hardpoint); if (itemData == null) ItemManager.Log($"No compatible item found for entity {Enum.GetName(typeof(HardpointType), hardpoint.Type)} hardpoint!"); else { @@ -110,6 +116,7 @@ public class LoadoutGenerator { throw new InvalidLoadoutException($"Failed to equip selected {Enum.GetName(typeof(HardpointType), hardpoint.Type)}!"); } + previousItems.Add(itemData); } } } diff --git a/Assets/Scripts/ServerShared/SampleElimination.cs b/Assets/Scripts/ServerShared/SampleElimination.cs index e72fdb954..00eadff71 100644 --- a/Assets/Scripts/ServerShared/SampleElimination.cs +++ b/Assets/Scripts/ServerShared/SampleElimination.cs @@ -37,7 +37,7 @@ public static class WeightedSampleElimination // of a sample point based on the placement of its neighbors within d_max radius. The weight function // must have the following form: // - // float weightFunction( float2 p0, float2 p1, float dist2, float dmax ) + // float weightFunction( float2 p0, float2 p1, float dist2, float dmax, float density ) // // The arguments p0 and p1 are the two neighboring points, dist2 is the square of the Euclidean distance // between these two points, and d_max is the current radius for the weight function. @@ -45,44 +45,46 @@ public static class WeightedSampleElimination // different than the d_max value passed to this method. public static void Eliminate ( float2[] inputPoints, - float2[] outputPoints, - Func weightFunction, + float2[] outputPoints, + Func weightFunction, + Func densityFunction, float d_max = 0) { if ( d_max < .001f ) d_max = 2 * GetMaxPoissonDiskRadius( outputPoints.Length ); - DoEliminate( inputPoints, outputPoints, d_max, weightFunction ); + DoEliminate( inputPoints, outputPoints, d_max, weightFunction, densityFunction ); } - public static void Eliminate( - float2[] inputPoints, - float2[] outputPoints, - float d_max = 0, - float alpha = 8, - float beta = 0.65f, - float gamma = 1.5f) - { - if ( d_max < .001f ) d_max = 2 * GetMaxPoissonDiskRadius( outputPoints.Length ); - float d_min = d_max * GetWeightLimitFraction( inputPoints.Length, outputPoints.Length, beta, gamma ); - Eliminate( inputPoints, outputPoints, (p0, p1, d2, dmax) => - { - float d = sqrt(d2); - if ( d < d_min ) d = d_min; - return pow( 1f / (d / dmax + .01f), alpha ); - }, d_max); - } + // public static void Eliminate( + // float2[] inputPoints, + // float2[] outputPoints, + // float d_max = 0, + // float alpha = 8, + // float beta = 0.65f, + // float gamma = 1.5f) + // { + // if ( d_max < .001f ) d_max = 2 * GetMaxPoissonDiskRadius( outputPoints.Length ); + // float d_min = d_max * GetWeightLimitFraction( inputPoints.Length, outputPoints.Length, beta, gamma ); + // Eliminate( inputPoints, outputPoints, (p0, p1, d2, dmax, density) => + // { + // float d = sqrt(d2); + // if ( d < d_min ) d = d_min; + // return pow( 1f / (d / dmax + .01f), alpha ); + // }, v => 1, d_max); + // } public static void Eliminate( float2[] inputPoints, float2[] outputPoints, - Func density = null, + Func densityFunc = null, float d_max = 0) { + if (densityFunc == null) densityFunc = v => 1; if ( d_max < .001f ) d_max = 2 * GetMaxPoissonDiskRadius( outputPoints.Length ); - Eliminate( inputPoints, outputPoints, (p0, p1, d2, dmax) => + Eliminate( inputPoints, outputPoints, (p0, p1, d2, dmax, density) => { float d = sqrt(d2); - return pow( 1 - (d / dmax), 5 + 6 * saturate((density ?? (v => .5f))((p0 + p1) / 2)) ); - }, d_max); + return pow( 1 - d / dmax, 5 + 6 * density ); + }, densityFunc, d_max); } public static float2[] GeneratePoints(int count, Func density = null, Func envelope = null, Action progressCallback = null, uint seed = 1337) @@ -127,7 +129,8 @@ public static class WeightedSampleElimination float2[] inputPoints, float2[] outputPoints, float d_max, - Func weightFunction + Func weightFunction, + Func density ) { // Build a k-d tree for samples @@ -137,13 +140,15 @@ public static class WeightedSampleElimination var dmax2 = d_max * d_max; // Assign weights to each sample float[] weights = new float[inputPoints.Length]; + float[] densities = new float[inputPoints.Length]; for (int i = 0; i < inputPoints.Length; i++) { - var p = inputPoints[i]; + var point = inputPoints[i]; + densities[i] += density(point); foreach (var (qi, d2) in query.Radius(kdtree, inputPoints[i], d_max)) { - var p2 = inputPoints[qi]; - weights[i] += weightFunction(p, p2, d2, d_max); + var otherPoint = inputPoints[qi]; + weights[i] += weightFunction(point, otherPoint, d2, d_max, densities[i]); } } @@ -157,13 +162,13 @@ public static class WeightedSampleElimination while (sampleCount > outputPoints.Length) { // Pull the top sample from heap - var i = heap.PopObj(); - var p = inputPoints[i]; + var elim = heap.PopObj(); + var pElim = inputPoints[elim]; // For each sample around it, remove its weight contribution and update the heap - foreach (var (qi, d2) in query.Radius(kdtree, p, d_max)) + foreach (var (qi, d2) in query.Radius(kdtree, pElim, d_max)) { - var p2 = inputPoints[qi]; - weights[qi] -= weightFunction(p, p2, d2, d_max); + var point = inputPoints[qi]; + weights[qi] -= weightFunction(point, pElim, d2, d_max, densities[qi]); heap.SetValue(qi, weights[qi]); } sampleCount--; diff --git a/Assets/Scripts/ServerShared/Sector.cs b/Assets/Scripts/ServerShared/Sector.cs index 77dfa7326..8d8d93eed 100644 --- a/Assets/Scripts/ServerShared/Sector.cs +++ b/Assets/Scripts/ServerShared/Sector.cs @@ -87,7 +87,7 @@ public class Sector // Create a delaunay triangulation to connect adjacent sectors var triangulation = DelaunayTriangulation, Cell2> - .Create(Zones.Select(z => new Vertex2(z.Position, z)).ToList(), 1e-5f); + .Create(Zones.Select(z => new Vertex2(z.Position, z)).ToList(), 1e-7f); var links = new HashSet<(SectorZone, SectorZone)>(); foreach(var cell in triangulation.Cells) { @@ -104,22 +104,22 @@ public class Sector progressCallback?.Invoke("Eliminating Zone Links"); if(progressCallback!=null) Thread.Sleep(500); // Inserting Delay to make it seem like it's doing more work lmao - foreach (var link in links.ToArray()) - { - foreach (var zone in Zones) - { - if(zone != link.Item1 && zone != link.Item2) - if (AetheriaMath.FindDistanceToSegment(zone.Position, link.Item1.Position, link.Item2.Position, out _) < minLineSeparation) - links.Remove(link); - } - } + // foreach (var link in links.ToArray()) + // { + // foreach (var zone in Zones) + // { + // if(zone != link.Item1 && zone != link.Item2) + // if (AetheriaMath.FindDistanceToSegment(zone.Position, link.Item1.Position, link.Item2.Position, out _) < minLineSeparation) + // links.Remove(link); + // } + // } foreach (var link in links) { link.Item1.AdjacentZones.Add(link.Item2); link.Item2.AdjacentZones.Add(link.Item1); } - + float LinkWeight((SectorZone, SectorZone) link) { return 1 / saturate(settings.CloudDensity((link.Item1.Position + link.Item2.Position) / 2)) * @@ -158,12 +158,12 @@ public class Sector progressCallback?.Invoke("Finding Chokepoints"); if(progressCallback!=null) Thread.Sleep(500); // Inserting Delay to make it seem like it's doing more work lmao - - // Entrance is the most isolated zone (highest total distance to all other zones - Entrance = Zones.MaxBy(z => z.Isolation); - // Exit is the zone furthest from the entrance - Exit = Zones.MaxBy(z => Entrance.Distance[z]); + // Exit is the most isolated zone (highest total distance to all other zones) + Exit = Zones.MaxBy(z => z.Isolation); + + // Entrance is the zone furthest from the exit + Entrance = Zones.MaxBy(z => Exit.Distance[z]); // Find all zones on the exit path where removing that zone would disconnect the entrance from the exit // Disregard "corridor" zones with only two adjacent zones @@ -226,7 +226,7 @@ public class Sector for (var i = 0; i < Factions.Length; i++) { - progressCallback?.Invoke($"Feeding Markov Chains: {i} / {Factions.Length}"); + progressCallback?.Invoke($"Feeding Markov Chains: {i+1} / {Factions.Length}"); //if(progressCallback!=null) Thread.Sleep(250); // Inserting Delay to make it seem like it's doing more work lmao var faction = Factions[i]; _nameGenerators[faction] = new MarkovNameGenerator(ref random, database.Get(faction.GeonameFile).Names, settings); @@ -241,7 +241,7 @@ public class Sector } else { - zone.Name = $"EAC-{random.NextInt(99999).ToString()}"; + zone.Name = $"EAC-{random.NextInt(9999).ToString()}"; } } diff --git a/Assets/Scripts/Tests.meta b/Assets/Scripts/Tests.meta new file mode 100644 index 000000000..dbd4a67c3 --- /dev/null +++ b/Assets/Scripts/Tests.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5af627def3db08544ae725f539d9bb85 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Tests/ShapeTestScript.cs b/Assets/Scripts/Tests/ShapeTestScript.cs new file mode 100644 index 000000000..65d24e8a5 --- /dev/null +++ b/Assets/Scripts/Tests/ShapeTestScript.cs @@ -0,0 +1,43 @@ +using System.Collections; +using System.Collections.Generic; +using NUnit.Framework; +using UnityEngine; +using UnityEngine.TestTools; +using Unity.Mathematics; +using static Unity.Mathematics.math; +using int2 = Unity.Mathematics.int2; + + +public class ShapeTestScript +{ + [Test] + public void ShapeRotation() + { + // Use the Assert class to test conditions + var verticalShape = new Shape(1, 2); + foreach (var v in verticalShape.AllCoordinates) verticalShape[v] = true; + + Assert.True(verticalShape.Rotate(int2.zero, ItemRotation.None).Equals(int2.zero), "verticalShape.Rotate(int2.zero, ItemRotation.None).Equals(int2.zero)"); + Assert.True(verticalShape.Rotate(int2(0,1), ItemRotation.Reversed).Equals(int2.zero), "verticalShape.Rotate(int2(0,1), ItemRotation.Reversed).Equals(int2.zero)"); + Assert.True(verticalShape.Rotate(int2(0,1), ItemRotation.CounterClockwise).Equals(int2.zero), "verticalShape.Rotate(int2(0,1), ItemRotation.CounterClockwise).Equals(int2.zero)"); + Assert.True(verticalShape.Rotate(int2(0,1), ItemRotation.Clockwise).Equals(int2(1,0)), "verticalShape.Rotate(int2(0,1), ItemRotation.Clockwise).Equals(int2(1,0))"); + } + + [Test] + public void ShapeFitsWithin() + { + // Use the Assert class to test conditions + var verticalShape = new Shape(1, 2); + foreach (var v in verticalShape.AllCoordinates) verticalShape[v] = true; + + Assert.True(verticalShape.FitsWithin(verticalShape, ItemRotation.None, out _), "verticalShape.FitsWithin(verticalShape, ItemRotation.None, out _)"); + + var horizontalShape = new Shape(2, 1); + foreach (var v in horizontalShape.AllCoordinates) horizontalShape[v] = true; + + Assert.True(horizontalShape.FitsWithin(verticalShape, ItemRotation.Clockwise, out _), "horizontalShape.FitsWithin(verticalShape, ItemRotation.Clockwise, out _)"); + + Assert.True(horizontalShape.FitsWithin(verticalShape, out var rotation, out _), "horizontalShape.FitsWithin(horizontalShape, out rotation, out _)"); + Assert.True(rotation == ItemRotation.Clockwise || rotation == ItemRotation.CounterClockwise, "rotation == ItemRotation.Clockwise || rotation == ItemRotation.CounterClockwise"); + } +} diff --git a/Assets/Scripts/Tests/ShapeTestScript.cs.meta b/Assets/Scripts/Tests/ShapeTestScript.cs.meta new file mode 100644 index 000000000..d063488a5 --- /dev/null +++ b/Assets/Scripts/Tests/ShapeTestScript.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 931f464e9597e104a8c9b6fa0763fb57 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Tests/Tests.asmdef b/Assets/Scripts/Tests/Tests.asmdef new file mode 100644 index 000000000..2b1bad83f --- /dev/null +++ b/Assets/Scripts/Tests/Tests.asmdef @@ -0,0 +1,25 @@ +{ + "name": "Tests", + "rootNamespace": "", + "references": [ + "UnityEngine.TestRunner", + "UnityEditor.TestRunner", + "Economy.Shared.Unity", + "Unity.Mathematics" + ], + "includePlatforms": [ + "Editor" + ], + "excludePlatforms": [], + "allowUnsafeCode": false, + "overrideReferences": true, + "precompiledReferences": [ + "nunit.framework.dll" + ], + "autoReferenced": false, + "defineConstraints": [ + "UNITY_INCLUDE_TESTS" + ], + "versionDefines": [], + "noEngineReferences": false +} \ No newline at end of file diff --git a/Assets/Scripts/Tests/Tests.asmdef.meta b/Assets/Scripts/Tests/Tests.asmdef.meta new file mode 100644 index 000000000..93d2e6c68 --- /dev/null +++ b/Assets/Scripts/Tests/Tests.asmdef.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 92d0b2b5224d7474a9067650a2ea50d4 +AssemblyDefinitionImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Shaders/Raymarching/VolumeRender.shader b/Assets/Shaders/Raymarching/VolumeRender.shader index 512f9197c..33271124d 100644 --- a/Assets/Shaders/Raymarching/VolumeRender.shader +++ b/Assets/Shaders/Raymarching/VolumeRender.shader @@ -124,11 +124,11 @@ float noise = pow(triNoise3d(pos*_NoiseFrequency),2);// + triNoise3d(pos*_NoiseFrequency*2, _NoiseSpeed * 2) * .5; pos.y += noise * _NoiseStrength; float patchDensity = saturate((-abs(pos.y+displacement)+patch)/_GridPatchBlend)*_GridPatchDensity; - float floorDist = -pos.y-(surface)+_GridFloorOffset; + float floorDist = -pos.y-surface+_GridFloorOffset; float floorDensity = floorDist/_GridFloorBlend*_GridFloorDensity; float fogDensity = patchDensity + max(0,floorDensity); float alpha = min(max(max(fogDensity, 0) + fillDensity, _AlphaFloor), .99); - float albedo = (pow(1-alpha, _TintExponent)) * smoothstep(0,-50,pos.y); + float albedo = pow(1-alpha, _TintExponent) * smoothstep(0,-250,pos.y); return float4((albedo*_Tint*lightTint).rgb, alpha); } diff --git a/GameData/AetherDB.msgpack b/GameData/AetherDB.msgpack index 9476e2a06..8e686316b 100644 --- a/GameData/AetherDB.msgpack +++ b/GameData/AetherDB.msgpack @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:83493f0dc43a3abbac28741a23acd703e8061d55e79f7ee53c1d82b49595ba18 +oid sha256:5509ded28940d4741b3a6c5811b3af746c1e231302ce486f14095d79ba9e2e09 size 67563 diff --git a/GameData/Loadouts/Longinus.loadout b/GameData/Loadouts/Longinus.loadout deleted file mode 100644 index 0219f396c50a386810bca29337df80f245859c21..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6087 zcmbQlc!xo7g-?E7dS+f}@ysIvQWIlc0%tCEX!ql;d9gWAli`%znKNf691(bQ8v>Xx^kr3=C8?andAakb!rZZp84tXLjD(eweev zD9@Ye6v%#{6E|*6FtxbH?ltw%H-_G~PbaVTNi0fFRd6ZFEK9}WN~aS*S5BJ5h}}%6 zx5+b;i3RA+RsSzKrF>8I+QsaA#xMWU9$--VfP+#l$)aFcwW{;($Y|5`e`T{*Ip-Ip zDg@-0rxxLMCKDUbNZS}ALvz+Q4)fv~Ci5*2nFcp|3keDLNPL+do}_Dh^|TLi_w ztaMH+NKDQw$;awS4{%_zU^fx!adJ##<^sC0b4qJbRr(V5bu6KL5!#F9LHs>)6617W zm}qy~NS%szn3jLcEoqsH1OwRplfiQ3n?Ec!c6;dE^i=AkzPscHNNNTq%*jUtp5@+O zZ2ahjdpE~h?kQg;hcYmNwVbP~+LrlB#Iwuu^}Q_3DlLdrIJ9tqO`0op?RTcIvg5MZ zjmFL`2fY|rj|lv0tT4Hgaoc168v&8l<^O&z56I7{%*7VLM+8jGI}(>|i1JwBIKSkl z^^Jh#0Xd1qC7H>X5eK%;@|3}j!vg89ll3)IR>@fg104?X569Q2tN(6%^Xq=oWVLYJ zmN^WJM+7{}H3IlqSGa9D=U3jV<*TvQIkPCa6qqcW@)L_vu$YfMK<(Ai(r^VRDDUA2 zozVbgAR~p21}GUR6clKoQSVYQrW8%}huc3JElf z;)V%(p~rGWK>Q2C_6URNUh5XEs+``hBev8XSdbOtC}uG2L_`#=?4(M4FqjetsJzDF zDbiCsBJ45hMY^YWs(A`jZ{f)K^!C&df%%JF9F-2Nahc}qr?fP*>ifC?VBP?>OcjDt z^NR7cshIeIEg+%8!V~I0uW*|8$2N0%2&^9J@%!2fJ zNHh!73R`==%_Z3&-K}9=oNr>>Q$_|6u-BK(bNM>MzQUn>^Y=$ftDQDMygm_JlImv3 z?%LFEd}-)dXfi~`-3ATGBE+m#B~K0dkp*DxX!#;66KWiy$fD;TRqXA zxBk*}zn(WO&)%(?(zp&%b_XS8t?;pre7y))4*dnO$6F}xo0ue0eCd1tF7i7RMR03um*klY(V>1*ME>K@$GZdTm z!P*c$NAo@;{Sgzoh!6*Qm7<8klLj0WfJQr^5@0a~ARxw-jvs*PAOy%1uwJYLSRGsm z0}$Xg9?8%JAVa}~0?c@)0w4=aIKstnvlhU#kzpvvBCIB3GgJYWVz2}$-e&*;^uTch znLkGT62gG%f^xBH1RD!i4>TOa2C9Tvhs=OT zK@sHPz+fU>bV3|SD_Ok{Bs_JIi#Crp@dVDhP>3xCf&b@(~Q Swo^w}`)Evp#E*Rg0|Nlc>EEjW diff --git a/GameData/PlayerSettings.msgpack b/GameData/PlayerSettings.msgpack index e4ecf11bc..d1c7c411a 100644 --- a/GameData/PlayerSettings.msgpack +++ b/GameData/PlayerSettings.msgpack @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:3e24b91666460697a5f6c8c2291e21dacf606e737b4758fec7df6d784e62ca9e -size 33545 +oid sha256:c261e749c7fa3969bf785293ee6cc0cf9a3cb2b999aaa7d75e0ce6a5ec64bf0a +size 93251 diff --git a/Packages/manifest.json b/Packages/manifest.json index 664fafadc..9d55e64c5 100644 --- a/Packages/manifest.json +++ b/Packages/manifest.json @@ -11,7 +11,7 @@ "com.unity.mathematics": "1.2.1", "com.unity.postprocessing": "2.3.0", "com.unity.recorder": "2.5.2", - "com.unity.test-framework": "1.1.22", + "com.unity.test-framework": "1.1.24", "com.unity.textmeshpro": "3.0.1", "com.unity.timeline": "1.4.6", "com.unity.ugui": "1.0.0", diff --git a/Packages/packages-lock.json b/Packages/packages-lock.json index fcfa36107..560cade70 100644 --- a/Packages/packages-lock.json +++ b/Packages/packages-lock.json @@ -89,7 +89,7 @@ "url": "https://packages.unity.com" }, "com.unity.test-framework": { - "version": "1.1.22", + "version": "1.1.24", "depth": 0, "source": "registry", "dependencies": { diff --git a/Tests.csproj b/Tests.csproj new file mode 100644 index 000000000..1e54be14d --- /dev/null +++ b/Tests.csproj @@ -0,0 +1,663 @@ + + + + latest + <_TargetFrameworkDirectories>non_empty_path_generated_by_unity.rider.package + <_FullFrameworkReferenceAssemblyPaths>non_empty_path_generated_by_unity.rider.package + true + + + + Debug + AnyCPU + 10.0.20506 + 2.0 + + {e63acb9a-7e63-149e-cd20-7526567487ec} + {E097FAD1-6243-4DAD-9C02-E9B9EFC3FFC1};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + Library + Properties + Tests + v4.7.1 + 512 + . + + + true + full + false + Temp\Bin\Debug\ + DEBUG;TRACE;UNITY_2020_2_6;UNITY_2020_2;UNITY_2020;UNITY_5_3_OR_NEWER;UNITY_5_4_OR_NEWER;UNITY_5_5_OR_NEWER;UNITY_5_6_OR_NEWER;UNITY_2017_1_OR_NEWER;UNITY_2017_2_OR_NEWER;UNITY_2017_3_OR_NEWER;UNITY_2017_4_OR_NEWER;UNITY_2018_1_OR_NEWER;UNITY_2018_2_OR_NEWER;UNITY_2018_3_OR_NEWER;UNITY_2018_4_OR_NEWER;UNITY_2019_1_OR_NEWER;UNITY_2019_2_OR_NEWER;UNITY_2019_3_OR_NEWER;UNITY_2019_4_OR_NEWER;UNITY_2020_1_OR_NEWER;UNITY_2020_2_OR_NEWER;PLATFORM_ARCH_64;UNITY_64;UNITY_INCLUDE_TESTS;USE_SEARCH_ENGINE_API;SCENE_TEMPLATE_MODULE;ENABLE_AR;ENABLE_AUDIO;ENABLE_CACHING;ENABLE_CLOTH;ENABLE_EVENT_QUEUE;ENABLE_MICROPHONE;ENABLE_MULTIPLE_DISPLAYS;ENABLE_PHYSICS;ENABLE_TEXTURE_STREAMING;ENABLE_VIRTUALTEXTURING;ENABLE_UNET;ENABLE_LZMA;ENABLE_UNITYEVENTS;ENABLE_VR;ENABLE_WEBCAM;ENABLE_UNITYWEBREQUEST;ENABLE_WWW;ENABLE_CLOUD_SERVICES;ENABLE_CLOUD_SERVICES_COLLAB;ENABLE_CLOUD_SERVICES_COLLAB_SOFTLOCKS;ENABLE_CLOUD_SERVICES_ADS;ENABLE_CLOUD_SERVICES_USE_WEBREQUEST;ENABLE_CLOUD_SERVICES_CRASH_REPORTING;ENABLE_CLOUD_SERVICES_PURCHASING;ENABLE_CLOUD_SERVICES_ANALYTICS;ENABLE_CLOUD_SERVICES_UNET;ENABLE_CLOUD_SERVICES_BUILD;ENABLE_CLOUD_LICENSE;ENABLE_EDITOR_HUB_LICENSE;ENABLE_WEBSOCKET_CLIENT;ENABLE_DIRECTOR_AUDIO;ENABLE_DIRECTOR_TEXTURE;ENABLE_MANAGED_JOBS;ENABLE_MANAGED_TRANSFORM_JOBS;ENABLE_MANAGED_ANIMATION_JOBS;ENABLE_MANAGED_AUDIO_JOBS;INCLUDE_DYNAMIC_GI;ENABLE_MONO_BDWGC;ENABLE_SCRIPTING_GC_WBARRIERS;PLATFORM_SUPPORTS_MONO;RENDER_SOFTWARE_CURSOR;ENABLE_VIDEO;PLATFORM_STANDALONE;PLATFORM_STANDALONE_WIN;UNITY_STANDALONE_WIN;UNITY_STANDALONE;ENABLE_RUNTIME_GI;ENABLE_MOVIES;ENABLE_NETWORK;ENABLE_CRUNCH_TEXTURE_COMPRESSION;ENABLE_OUT_OF_PROCESS_CRASH_HANDLER;ENABLE_CLUSTER_SYNC;ENABLE_CLUSTERINPUT;PLATFORM_UPDATES_TIME_OUTSIDE_OF_PLAYER_LOOP;GFXDEVICE_WAITFOREVENT_MESSAGEPUMP;ENABLE_WEBSOCKET_HOST;ENABLE_MONO;NET_4_6;ENABLE_PROFILER;UNITY_ASSERTIONS;UNITY_EDITOR;UNITY_EDITOR_64;UNITY_EDITOR_WIN;ENABLE_UNITY_COLLECTIONS_CHECKS;ENABLE_BURST_AOT;UNITY_TEAM_LICENSE;ENABLE_CUSTOM_RENDER_TEXTURE;ENABLE_DIRECTOR;ENABLE_LOCALIZATION;ENABLE_SPRITES;ENABLE_TERRAIN;ENABLE_TILEMAP;ENABLE_TIMELINE;ENABLE_INPUT_SYSTEM;UNITY_POST_PROCESSING_STACK_V2;TEST_MSAGL;REPORTING;PERSISTENCE;SUBSTANCE_PLUGIN_ENABLED;CSHARP_7_OR_LATER;CSHARP_7_3_OR_NEWER + prompt + 4 + + False + False + + + pdbonly + true + Temp\bin\Release\ + prompt + 4 + + False + False + + + true + true + false + false + false + + + + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.AIModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.ARModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.AccessibilityModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.AndroidJNIModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.AnimationModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.AssetBundleModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.AudioModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.ClothModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.ClusterInputModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.ClusterRendererModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.CoreModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.CrashReportingModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.DSPGraphModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.DirectorModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.GIModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.GameCenterModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.GridModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.HotReloadModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.IMGUIModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.ImageConversionModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.InputModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.InputLegacyModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.JSONSerializeModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.LocalizationModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.ParticleSystemModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.PerformanceReportingModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.PhysicsModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.Physics2DModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.ProfilerModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.RuntimeInitializeOnLoadManagerInitializerModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.ScreenCaptureModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.SharedInternalsModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.SpriteMaskModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.SpriteShapeModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.StreamingModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.SubstanceModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.SubsystemsModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.TLSModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.TerrainModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.TerrainPhysicsModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.TextCoreModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.TextRenderingModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.TilemapModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.UIModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.UIElementsModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.UIElementsNativeModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.UNETModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.UmbraModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityAnalyticsModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityConnectModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityCurlModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityTestProtocolModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityWebRequestModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityWebRequestAssetBundleModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityWebRequestAudioModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityWebRequestTextureModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityWebRequestWWWModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.VFXModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.VRModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.VehiclesModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.VideoModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.VirtualTexturingModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.WindModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.XRModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEditor.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEditor.CoreModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEditor.GraphViewModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEditor.PackageManagerUIModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEditor.SceneTemplateModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEditor.UIElementsModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEditor.UIElementsSamplesModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEditor.UIServiceModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEditor.UnityConnectModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEditor.Graphs.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/PlaybackEngines/WindowsStandaloneSupport/UnityEditor.WindowsStandalone.Extensions.dll + + + E:/Projects/Aetheria-Economy/Library/PackageCache/com.unity.ext.nunit@1.0.6/net35/unity-custom/nunit.framework.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/mscorlib.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.Core.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.Runtime.Serialization.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.Xml.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.Xml.Linq.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.Numerics.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.Numerics.Vectors.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.Net.Http.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Microsoft.CSharp.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.Data.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/Microsoft.Win32.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/netstandard.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.AppContext.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Collections.Concurrent.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Collections.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Collections.NonGeneric.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Collections.Specialized.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ComponentModel.Annotations.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ComponentModel.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ComponentModel.EventBasedAsync.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ComponentModel.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ComponentModel.TypeConverter.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Console.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Data.Common.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Diagnostics.Contracts.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Diagnostics.Debug.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Diagnostics.FileVersionInfo.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Diagnostics.Process.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Diagnostics.StackTrace.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Diagnostics.TextWriterTraceListener.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Diagnostics.Tools.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Diagnostics.TraceSource.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Drawing.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Dynamic.Runtime.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Globalization.Calendars.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Globalization.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Globalization.Extensions.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.Compression.ZipFile.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.FileSystem.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.FileSystem.DriveInfo.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.FileSystem.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.FileSystem.Watcher.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.IsolatedStorage.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.MemoryMappedFiles.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.Pipes.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.UnmanagedMemoryStream.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Linq.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Linq.Expressions.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Linq.Parallel.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Linq.Queryable.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.Http.Rtc.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.NameResolution.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.NetworkInformation.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.Ping.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.Requests.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.Security.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.Sockets.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.WebHeaderCollection.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.WebSockets.Client.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.WebSockets.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ObjectModel.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Reflection.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Reflection.Emit.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Reflection.Emit.ILGeneration.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Reflection.Emit.Lightweight.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Reflection.Extensions.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Reflection.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Resources.Reader.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Resources.ResourceManager.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Resources.Writer.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.CompilerServices.VisualC.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.Extensions.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.Handles.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.InteropServices.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.InteropServices.RuntimeInformation.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.InteropServices.WindowsRuntime.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.Numerics.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.Serialization.Formatters.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.Serialization.Json.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.Serialization.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.Serialization.Xml.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Security.Claims.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Security.Cryptography.Algorithms.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Security.Cryptography.Csp.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Security.Cryptography.Encoding.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Security.Cryptography.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Security.Cryptography.X509Certificates.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Security.Principal.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Security.SecureString.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ServiceModel.Duplex.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ServiceModel.Http.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ServiceModel.NetTcp.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ServiceModel.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ServiceModel.Security.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Text.Encoding.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Text.Encoding.Extensions.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Text.RegularExpressions.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Threading.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Threading.Overlapped.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Threading.Tasks.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Threading.Tasks.Parallel.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Threading.Thread.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Threading.ThreadPool.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Threading.Timer.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ValueTuple.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Xml.ReaderWriter.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Xml.XDocument.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Xml.XmlDocument.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Xml.XmlSerializer.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Xml.XPath.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Xml.XPath.XDocument.dll + + + E:/Projects/Aetheria-Economy/Library/ScriptAssemblies/UnityEngine.TestRunner.dll + + + E:/Projects/Aetheria-Economy/Library/ScriptAssemblies/UnityEditor.TestRunner.dll + + + E:/Projects/Aetheria-Economy/Library/ScriptAssemblies/Unity.Mathematics.dll + + + E:/Projects/Aetheria-Economy/Library/ScriptAssemblies/UnityEditor.UI.dll + + + E:/Projects/Aetheria-Economy/Library/ScriptAssemblies/UnityEngine.UI.dll + + + + + {c2362ba6-dee9-92b9-0779-f5fcf5968986} + Economy.Shared.Unity + + + + + From 2bdb2053fc93654f8c4c0508d8aa95b3238309e0 Mon Sep 17 00:00:00 2001 From: Ferenc Fodor Date: Sat, 20 Mar 2021 01:30:36 +0100 Subject: [PATCH 04/51] Changed Icons Modified FunctionBF icon Changed and modified XPC icon to FunctionCF --- .../Sprites/Icons/Weapons/FunctionBF.png | 4 +- .../Sprites/Icons/Weapons/FunctionCF.png | 3 + .../{XPC.png.meta => FunctionCF.png.meta} | 2 +- .../Resources/Sprites/Icons/Weapons/Icons.psd | 3 + .../Sprites/Icons/Weapons/Icons.psd.meta | 96 +++++++++++++++++++ .../Resources/Sprites/Icons/Weapons/XPC.png | 3 - 6 files changed, 105 insertions(+), 6 deletions(-) create mode 100644 Assets/Resources/Sprites/Icons/Weapons/FunctionCF.png rename Assets/Resources/Sprites/Icons/Weapons/{XPC.png.meta => FunctionCF.png.meta} (98%) create mode 100644 Assets/Resources/Sprites/Icons/Weapons/Icons.psd create mode 100644 Assets/Resources/Sprites/Icons/Weapons/Icons.psd.meta delete mode 100644 Assets/Resources/Sprites/Icons/Weapons/XPC.png diff --git a/Assets/Resources/Sprites/Icons/Weapons/FunctionBF.png b/Assets/Resources/Sprites/Icons/Weapons/FunctionBF.png index 9d4eb4a73..f841ad7ae 100644 --- a/Assets/Resources/Sprites/Icons/Weapons/FunctionBF.png +++ b/Assets/Resources/Sprites/Icons/Weapons/FunctionBF.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d9707f5f5fdbf309605482db9f9d862fb31d4e403ba082fe24b130817505a939 -size 30632 +oid sha256:25b0ee7fc294c005f34fe8d0004d78c7baaf76600b92f77e64e56f9593cfbcd9 +size 30372 diff --git a/Assets/Resources/Sprites/Icons/Weapons/FunctionCF.png b/Assets/Resources/Sprites/Icons/Weapons/FunctionCF.png new file mode 100644 index 000000000..3a0519070 --- /dev/null +++ b/Assets/Resources/Sprites/Icons/Weapons/FunctionCF.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2b1e74b5bbe4c7241e2b09e03eadd3e13df12c81d4ddd5e3f0e39b4f577290cd +size 36523 diff --git a/Assets/Resources/Sprites/Icons/Weapons/XPC.png.meta b/Assets/Resources/Sprites/Icons/Weapons/FunctionCF.png.meta similarity index 98% rename from Assets/Resources/Sprites/Icons/Weapons/XPC.png.meta rename to Assets/Resources/Sprites/Icons/Weapons/FunctionCF.png.meta index 19d7caa56..e25899eab 100644 --- a/Assets/Resources/Sprites/Icons/Weapons/XPC.png.meta +++ b/Assets/Resources/Sprites/Icons/Weapons/FunctionCF.png.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: d749d3269aec1ff4f8c631a28bf5a67a +guid: b77180e315f7ee0478e0b0a3ceafd956 TextureImporter: internalIDToNameTable: [] externalObjects: {} diff --git a/Assets/Resources/Sprites/Icons/Weapons/Icons.psd b/Assets/Resources/Sprites/Icons/Weapons/Icons.psd new file mode 100644 index 000000000..71583854d --- /dev/null +++ b/Assets/Resources/Sprites/Icons/Weapons/Icons.psd @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4b6687869f846b8e590d10328e7cfd7edc3d0a5f868e0e91c34b78427fd4975e +size 476367 diff --git a/Assets/Resources/Sprites/Icons/Weapons/Icons.psd.meta b/Assets/Resources/Sprites/Icons/Weapons/Icons.psd.meta new file mode 100644 index 000000000..bd0b0b01f --- /dev/null +++ b/Assets/Resources/Sprites/Icons/Weapons/Icons.psd.meta @@ -0,0 +1,96 @@ +fileFormatVersion: 2 +guid: 0e471b4af27d0394e95711a2eda1a6f8 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Sprites/Icons/Weapons/XPC.png b/Assets/Resources/Sprites/Icons/Weapons/XPC.png deleted file mode 100644 index 6be0e3b56..000000000 --- a/Assets/Resources/Sprites/Icons/Weapons/XPC.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:1114d9e9726e952f1bb841f41113476dc64942397e45b70a3bdacaf9f790b1ac -size 27016 From 28f08398a19d0efd13d6ed34173f716270db62b9 Mon Sep 17 00:00:00 2001 From: Ferenc Fodor Date: Sat, 20 Mar 2021 02:19:37 +0100 Subject: [PATCH 05/51] Added new icons Added JET and MINE icons Updated Icons.psd Updated Attrubution.txt --- Assets/Resources/Sprites/Attribution.txt | 2 + .../Resources/Sprites/Icons/Weapons/Icons.psd | 4 +- .../Resources/Sprites/Icons/Weapons/JET.png | 3 + .../Sprites/Icons/Weapons/JET.png.meta | 108 ++++++++++++++++++ .../Resources/Sprites/Icons/Weapons/MINE.png | 3 + .../Sprites/Icons/Weapons/MINE.png.meta | 108 ++++++++++++++++++ 6 files changed, 226 insertions(+), 2 deletions(-) create mode 100644 Assets/Resources/Sprites/Icons/Weapons/JET.png create mode 100644 Assets/Resources/Sprites/Icons/Weapons/JET.png.meta create mode 100644 Assets/Resources/Sprites/Icons/Weapons/MINE.png create mode 100644 Assets/Resources/Sprites/Icons/Weapons/MINE.png.meta diff --git a/Assets/Resources/Sprites/Attribution.txt b/Assets/Resources/Sprites/Attribution.txt index 0fa14011c..08ec4c11f 100644 --- a/Assets/Resources/Sprites/Attribution.txt +++ b/Assets/Resources/Sprites/Attribution.txt @@ -71,6 +71,8 @@ Target by Gicon studio Eye by Creative Stall loading by dewadesign capacitor by Giovanny +Mine by Creaticca Creative Agency +pattern by Andrejs Kirma Other diff --git a/Assets/Resources/Sprites/Icons/Weapons/Icons.psd b/Assets/Resources/Sprites/Icons/Weapons/Icons.psd index 71583854d..af412b2d1 100644 --- a/Assets/Resources/Sprites/Icons/Weapons/Icons.psd +++ b/Assets/Resources/Sprites/Icons/Weapons/Icons.psd @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:4b6687869f846b8e590d10328e7cfd7edc3d0a5f868e0e91c34b78427fd4975e -size 476367 +oid sha256:37a01828fbb50cf3620722ddc30d1db3b80a48eb33544822749cbe8454864c1e +size 220186 diff --git a/Assets/Resources/Sprites/Icons/Weapons/JET.png b/Assets/Resources/Sprites/Icons/Weapons/JET.png new file mode 100644 index 000000000..195f63d04 --- /dev/null +++ b/Assets/Resources/Sprites/Icons/Weapons/JET.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cb3a7348cdcd7978b5a5ad41fc4fc4583162c94ffb49fee826fa4c537580ec3a +size 24970 diff --git a/Assets/Resources/Sprites/Icons/Weapons/JET.png.meta b/Assets/Resources/Sprites/Icons/Weapons/JET.png.meta new file mode 100644 index 000000000..62a0e09dc --- /dev/null +++ b/Assets/Resources/Sprites/Icons/Weapons/JET.png.meta @@ -0,0 +1,108 @@ +fileFormatVersion: 2 +guid: 22c588c2189912745b8213e5380fe3f6 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: -1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 64 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 64 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Sprites/Icons/Weapons/MINE.png b/Assets/Resources/Sprites/Icons/Weapons/MINE.png new file mode 100644 index 000000000..6fc05779c --- /dev/null +++ b/Assets/Resources/Sprites/Icons/Weapons/MINE.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9543ecfa07df444163bdc7d1f4702a7ad06475b77ab8690c57c72a145c140f3e +size 28033 diff --git a/Assets/Resources/Sprites/Icons/Weapons/MINE.png.meta b/Assets/Resources/Sprites/Icons/Weapons/MINE.png.meta new file mode 100644 index 000000000..bc05d0259 --- /dev/null +++ b/Assets/Resources/Sprites/Icons/Weapons/MINE.png.meta @@ -0,0 +1,108 @@ +fileFormatVersion: 2 +guid: 947d6416152bba3438d155f3c1f2ad2c +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: -1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 64 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 64 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: From fd81bf267eb39b548dd49a09a31b3855e9a0d63d Mon Sep 17 00:00:00 2001 From: Reinier Vens Date: Sat, 20 Mar 2021 04:20:17 +0000 Subject: [PATCH 06/51] Shops & Weapon Icons Added stations to loadout generator Overhauled Trade menu to sell station inventory contents Placing stations in ZoneGenerator Moved weapons to new item type: WeaponItemData Implemented icon sets for weapon functionality Renamed MegaCorporation to Faction Implemented quality-dependent item pricing Added unoccupied space helper function for entity Moved sector generation settings to settings file --- Assets/Materials/UI/Map Gravity Lines.mat | 2 +- Assets/Resources/Settings.asset | 4 +- Assets/Scenes/ARPG.unity | 1322 ++++++++--------- Assets/Scenes/Main Menu.unity | 29 +- Assets/Scripts/Editor/DatabaseInspector.cs | 38 +- Assets/Scripts/Editor/DatabaseView.cs | 10 +- .../Scripts/Editor/GameplaySettingsEditor.cs | 60 + Assets/Scripts/Gameplay/ActionGameManager.cs | 28 +- Assets/Scripts/Gameplay/GameSettings.cs | 32 + Assets/Scripts/MainMenu.cs | 6 +- Assets/Scripts/ServerShared/Corporations.cs | 4 +- Assets/Scripts/ServerShared/DatabaseEntry.cs | 3 +- Assets/Scripts/ServerShared/Entity.cs | 34 +- .../Scripts/ServerShared/EntitySerializer.cs | 2 +- Assets/Scripts/ServerShared/Enums.cs | 54 + Assets/Scripts/ServerShared/ItemData.cs | 42 +- Assets/Scripts/ServerShared/ItemManager.cs | 144 +- .../Scripts/ServerShared/LoadoutGenerator.cs | 82 +- Assets/Scripts/ServerShared/Sector.cs | 16 +- Assets/Scripts/ServerShared/Settings.cs | 1 + Assets/Scripts/ServerShared/ZoneGenerator.cs | 20 +- Assets/Scripts/UI/MenuPanel.cs | 2 +- Assets/Scripts/UI/MenuTabButton.cs | 2 +- Assets/Scripts/UI/PropertiesPanel.cs | 17 +- Assets/Scripts/UI/SchematicDisplay.cs | 5 +- Assets/Scripts/UI/SchematicListElement.cs | 38 +- Assets/Scripts/UI/SectorMap.cs | 4 +- Assets/Scripts/UI/TradeMenu.cs | 176 ++- Assets/Scripts/UI/TradeMenuDebug.cs | 473 ++++++ Assets/Scripts/UI/TradeMenuDebug.cs.meta | 3 + GameData/AetherDB.msgpack | 4 +- GameData/PlayerSettings.msgpack | 4 +- RethinkDB Queries.txt | 12 +- 33 files changed, 1618 insertions(+), 1055 deletions(-) create mode 100644 Assets/Scripts/UI/TradeMenuDebug.cs create mode 100644 Assets/Scripts/UI/TradeMenuDebug.cs.meta diff --git a/Assets/Materials/UI/Map Gravity Lines.mat b/Assets/Materials/UI/Map Gravity Lines.mat index a45e9acba..749d876be 100644 --- a/Assets/Materials/UI/Map Gravity Lines.mat +++ b/Assets/Materials/UI/Map Gravity Lines.mat @@ -86,7 +86,7 @@ Material: - _Mode: 0 - _OcclusionStrength: 1 - _Parallax: 0.02 - - _Scale: 2.4224877 + - _Scale: 0.5 - _SmoothnessTextureChannel: 0 - _SpecularHighlights: 1 - _SrcBlend: 1 diff --git a/Assets/Resources/Settings.asset b/Assets/Resources/Settings.asset index b4103e83c..22d1b6ea7 100644 --- a/Assets/Resources/Settings.asset +++ b/Assets/Resources/Settings.asset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:57a7d1a09f6d1e9ce1556f138102ff240ca545f66232d032da5bc250eec0593a -size 8638 +oid sha256:13b8cc1d1b4954fe7f39b91c2bcca411ecdfd756d6d7c4757e5a88ac12197068 +size 11391 diff --git a/Assets/Scenes/ARPG.unity b/Assets/Scenes/ARPG.unity index b0c2acaaf..db533fb23 100644 --- a/Assets/Scenes/ARPG.unity +++ b/Assets/Scenes/ARPG.unity @@ -439,6 +439,7 @@ GameObject: - component: {fileID: 29616014} - component: {fileID: 29616016} - component: {fileID: 29616015} + - component: {fileID: 29616017} m_Layer: 5 m_Name: Background m_TagString: Untagged @@ -503,6 +504,26 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 29616013} m_CullTransparentMesh: 0 +--- !u!114 &29616017 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 29616013} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 1 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 --- !u!1 &39508927 GameObject: m_ObjectHideFlags: 0 @@ -577,140 +598,6 @@ Camera: m_OcclusionCulling: 0 m_StereoConvergence: 10 m_StereoSeparation: 0.022 ---- !u!1 &39953372 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 39953373} - - component: {fileID: 39953375} - - component: {fileID: 39953374} - m_Layer: 5 - m_Name: Range - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &39953373 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 39953372} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 1277237366} - m_RootOrder: 3 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 1, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: -4, y: 0} - m_SizeDelta: {x: 20, y: 0} - m_Pivot: {x: 1, y: 0.5} ---- !u!114 &39953374 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 39953372} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: 2000 - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: 3fb7d873bb5a7944bb9a7c73c430c44b, type: 2} - m_sharedMaterial: {fileID: 2100000, guid: b9d2f6c9804cec1489502dcc1c19ec54, type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, a: 1} - m_enableVertexGradient: 0 - m_colorMode: 3 - m_fontColorGradient: - topLeft: {r: 1, g: 1, b: 1, a: 1} - topRight: {r: 1, g: 1, b: 1, a: 1} - bottomLeft: {r: 1, g: 1, b: 1, a: 1} - bottomRight: {r: 1, g: 1, b: 1, a: 1} - m_fontColorGradientPreset: {fileID: 0} - m_spriteAsset: {fileID: 0} - m_tintAllSprites: 0 - m_StyleSheet: {fileID: 0} - m_TextStyleHashCode: -1183493901 - m_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_fontSize: 8 - m_fontSizeBase: 8 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_HorizontalAlignment: 4 - m_VerticalAlignment: 512 - m_textAlignment: 65535 - m_characterSpacing: 0 - m_wordSpacing: 0 - m_lineSpacing: 0 - m_lineSpacingMax: 0 - m_paragraphSpacing: 0 - m_charWidthMaxAdj: 0 - m_enableWordWrapping: 1 - m_wordWrappingRatios: 0.4 - m_overflowMode: 0 - m_linkedTextComponent: {fileID: 0} - parentLinkedComponent: {fileID: 0} - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_IsTextObjectScaleStatic: 0 - m_VertexBufferAutoSizeReduction: 1 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_hasFontAssetChanged: 0 - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!222 &39953375 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 39953372} - m_CullTransparentMesh: 0 --- !u!1 &45636165 GameObject: m_ObjectHideFlags: 0 @@ -1025,7 +912,7 @@ MonoBehaviour: Button: {fileID: 101395091} Tab: 1 Text: {fileID: 101395092} - RequireParent: 0 + RequireDock: 0 --- !u!1 &109242180 GameObject: m_ObjectHideFlags: 0 @@ -2237,6 +2124,7 @@ GameObject: - component: {fileID: 197007679} - component: {fileID: 197007681} - component: {fileID: 197007680} + - component: {fileID: 197007682} m_Layer: 5 m_Name: Icon m_TagString: Untagged @@ -2256,12 +2144,12 @@ RectTransform: m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 232470597} - m_RootOrder: 3 + m_RootOrder: 7 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} + m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 10.000061, y: 1.0000305} - m_SizeDelta: {x: 14, y: -6} + m_AnchoredPosition: {x: 9, y: -8} + m_SizeDelta: {x: 18, y: 16} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &197007680 MonoBehaviour: @@ -2283,7 +2171,7 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 3f657d98213a45145b1e075e58fc8845, type: 3} + m_Sprite: {fileID: 21300000, guid: dc8c6f7a85945d242bd4cbd92df0a7d4, type: 3} m_Type: 0 m_PreserveAspect: 1 m_FillCenter: 1 @@ -2301,6 +2189,18 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 197007678} m_CullTransparentMesh: 0 +--- !u!114 &197007682 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 197007678} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1281fe44325f9b548aa42dc331b17266, type: 3} + m_Name: + m_EditorClassIdentifier: --- !u!1 &199435030 GameObject: m_ObjectHideFlags: 0 @@ -2436,7 +2336,7 @@ RectTransform: m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: - - {fileID: 1277237366} + - {fileID: 1462704891} m_Father: {fileID: 246981013} m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -3301,8 +3201,9 @@ GameObject: - component: {fileID: 232470598} - component: {fileID: 232470600} - component: {fileID: 232470599} + - component: {fileID: 232470601} m_Layer: 5 - m_Name: Equipment Entry + m_Name: Weapon Entry m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -3322,19 +3223,18 @@ RectTransform: - {fileID: 29616014} - {fileID: 757740693} - {fileID: 2060807771} - - {fileID: 197007679} - - {fileID: 503973773} - {fileID: 1105457839} - {fileID: 250447471} - {fileID: 849453174} - {fileID: 2044077502} + - {fileID: 197007679} m_Father: {fileID: 746825913} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 90.5, y: -8} - m_SizeDelta: {x: 181, y: 16} + m_AnchoredPosition: {x: 90.5, y: -9} + m_SizeDelta: {x: 181, y: 18} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &232470598 MonoBehaviour: @@ -3352,7 +3252,7 @@ MonoBehaviour: m_MinWidth: -1 m_MinHeight: -1 m_PreferredWidth: -1 - m_PreferredHeight: 16 + m_PreferredHeight: 18 m_FlexibleWidth: -1 m_FlexibleHeight: -1 m_LayoutPriority: 1 @@ -3380,14 +3280,40 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 6755ecd82e50a5d4bada4d900b47eeb4, type: 3} m_Name: m_EditorClassIdentifier: - Icon: {fileID: 197007680} - Label: {fileID: 503973774} + Settings: {fileID: 11400000, guid: cd2344e2001a37544aab0960c164d4ff, type: 2} + IconPrototype: {fileID: 197007682} DurabilityLabel: {fileID: 1105457840} RangeLabel: {fileID: 250447472} AmmoLabel: {fileID: 849453175} InfiniteAmmoIcon: {fileID: 2044077503} CooldownFill: {fileID: 757740693} HeatFill: {fileID: 2060807771} +--- !u!114 &232470601 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 232470596} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 2 + m_ChildAlignment: 3 + m_Spacing: 0 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 0 + m_ChildControlWidth: 0 + m_ChildControlHeight: 1 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 --- !u!1 &234374933 GameObject: m_ObjectHideFlags: 0 @@ -3704,6 +3630,7 @@ GameObject: - component: {fileID: 250447471} - component: {fileID: 250447473} - component: {fileID: 250447472} + - component: {fileID: 250447474} m_Layer: 5 m_Name: Range m_TagString: Untagged @@ -3723,7 +3650,7 @@ RectTransform: m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 232470597} - m_RootOrder: 6 + m_RootOrder: 4 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 1, y: 0} m_AnchorMax: {x: 1, y: 1} @@ -3827,6 +3754,26 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 250447470} m_CullTransparentMesh: 0 +--- !u!114 &250447474 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 250447470} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 1 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 --- !u!1 &250585912 GameObject: m_ObjectHideFlags: 0 @@ -5467,7 +5414,7 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: Settings: {fileID: 11400000, guid: cd2344e2001a37544aab0960c164d4ff, type: 2} - ListElementPrototype: {fileID: 1277237367} + ListElementPrototype: {fileID: 1462704895} TriggerGroupPrototype: {fileID: 1564656282} HeaderElementEnabledColor: {r: 0, g: 0, b: 0, a: 0} HeaderElementDisabledColor: {r: 0, g: 0, b: 0, a: 0} @@ -7640,141 +7587,6 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 496438310} m_CullTransparentMesh: 0 ---- !u!1 &503973772 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 503973773} - - component: {fileID: 503973775} - - component: {fileID: 503973774} - m_Layer: 5 - m_Name: Label - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &503973773 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 503973772} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 232470597} - m_RootOrder: 4 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 10, y: 1} - m_SizeDelta: {x: -20, y: -2} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &503973774 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 503973772} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: Equipment Name - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: 53555f7a2d5e745428813f1b1118734f, type: 2} - m_sharedMaterial: {fileID: -2804126062856497447, guid: 53555f7a2d5e745428813f1b1118734f, - type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, a: 1} - m_enableVertexGradient: 0 - m_colorMode: 3 - m_fontColorGradient: - topLeft: {r: 1, g: 1, b: 1, a: 1} - topRight: {r: 1, g: 1, b: 1, a: 1} - bottomLeft: {r: 1, g: 1, b: 1, a: 1} - bottomRight: {r: 1, g: 1, b: 1, a: 1} - m_fontColorGradientPreset: {fileID: 0} - m_spriteAsset: {fileID: 0} - m_tintAllSprites: 0 - m_StyleSheet: {fileID: 0} - m_TextStyleHashCode: -1183493901 - m_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_fontSize: 8 - m_fontSizeBase: 8 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_HorizontalAlignment: 1 - m_VerticalAlignment: 512 - m_textAlignment: 65535 - m_characterSpacing: 0 - m_wordSpacing: 0 - m_lineSpacing: 0 - m_lineSpacingMax: 0 - m_paragraphSpacing: 0 - m_charWidthMaxAdj: 0 - m_enableWordWrapping: 1 - m_wordWrappingRatios: 0.4 - m_overflowMode: 0 - m_linkedTextComponent: {fileID: 0} - parentLinkedComponent: {fileID: 0} - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_IsTextObjectScaleStatic: 0 - m_VertexBufferAutoSizeReduction: 1 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_hasFontAssetChanged: 0 - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!222 &503973775 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 503973772} - m_CullTransparentMesh: 0 --- !u!1 &507065481 GameObject: m_ObjectHideFlags: 0 @@ -11289,6 +11101,7 @@ GameObject: - component: {fileID: 757740693} - component: {fileID: 757740695} - component: {fileID: 757740694} + - component: {fileID: 757740696} m_Layer: 5 m_Name: Cooldown Fill m_TagString: Untagged @@ -11353,6 +11166,26 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 757740692} m_CullTransparentMesh: 0 +--- !u!114 &757740696 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 757740692} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 1 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 --- !u!1 &761574177 GameObject: m_ObjectHideFlags: 0 @@ -11733,141 +11566,6 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 783543864} m_CullTransparentMesh: 1 ---- !u!1 &789791519 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 789791520} - - component: {fileID: 789791522} - - component: {fileID: 789791521} - m_Layer: 5 - m_Name: Label - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &789791520 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 789791519} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 1277237366} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 13, y: 0} - m_SizeDelta: {x: -26, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &789791521 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 789791519} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: Equipment Name - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: 53555f7a2d5e745428813f1b1118734f, type: 2} - m_sharedMaterial: {fileID: -2804126062856497447, guid: 53555f7a2d5e745428813f1b1118734f, - type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, a: 1} - m_enableVertexGradient: 0 - m_colorMode: 3 - m_fontColorGradient: - topLeft: {r: 1, g: 1, b: 1, a: 1} - topRight: {r: 1, g: 1, b: 1, a: 1} - bottomLeft: {r: 1, g: 1, b: 1, a: 1} - bottomRight: {r: 1, g: 1, b: 1, a: 1} - m_fontColorGradientPreset: {fileID: 0} - m_spriteAsset: {fileID: 0} - m_tintAllSprites: 0 - m_StyleSheet: {fileID: 0} - m_TextStyleHashCode: -1183493901 - m_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_fontSize: 8 - m_fontSizeBase: 8 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_HorizontalAlignment: 1 - m_VerticalAlignment: 512 - m_textAlignment: 65535 - m_characterSpacing: 0 - m_wordSpacing: 0 - m_lineSpacing: 0 - m_lineSpacingMax: 0 - m_paragraphSpacing: 0 - m_charWidthMaxAdj: 0 - m_enableWordWrapping: 1 - m_wordWrappingRatios: 0.4 - m_overflowMode: 0 - m_linkedTextComponent: {fileID: 0} - parentLinkedComponent: {fileID: 0} - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_IsTextObjectScaleStatic: 0 - m_VertexBufferAutoSizeReduction: 1 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_hasFontAssetChanged: 0 - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!222 &789791522 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 789791519} - m_CullTransparentMesh: 0 --- !u!1 &793457512 GameObject: m_ObjectHideFlags: 0 @@ -12729,6 +12427,7 @@ GameObject: - component: {fileID: 849453174} - component: {fileID: 849453176} - component: {fileID: 849453175} + - component: {fileID: 849453177} m_Layer: 5 m_Name: Ammo m_TagString: Untagged @@ -12748,7 +12447,7 @@ RectTransform: m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 232470597} - m_RootOrder: 7 + m_RootOrder: 5 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 1, y: 0} m_AnchorMax: {x: 1, y: 1} @@ -12852,6 +12551,26 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 849453173} m_CullTransparentMesh: 0 +--- !u!114 &849453177 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 849453173} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 1 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 --- !u!1 &858665364 GameObject: m_ObjectHideFlags: 0 @@ -12986,81 +12705,6 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 858665364} m_CullTransparentMesh: 0 ---- !u!1 &860340386 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 860340387} - - component: {fileID: 860340389} - - component: {fileID: 860340388} - m_Layer: 5 - m_Name: Icon - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &860340387 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 860340386} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 1277237366} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 16, y: 0} - m_SizeDelta: {x: 14, y: -4} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &860340388 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 860340386} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 3f657d98213a45145b1e075e58fc8845, type: 3} - m_Type: 0 - m_PreserveAspect: 1 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!222 &860340389 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 860340386} - m_CullTransparentMesh: 0 --- !u!1 &861158450 GameObject: m_ObjectHideFlags: 0 @@ -13804,7 +13448,7 @@ MonoBehaviour: Button: {fileID: 931657852} Tab: 0 Text: {fileID: 931657853} - RequireParent: 0 + RequireDock: 0 --- !u!1 &933815652 GameObject: m_ObjectHideFlags: 0 @@ -15162,6 +14806,7 @@ MonoBehaviour: DeathPP: {fileID: 803284856} HeatstrokePP: {fileID: 1404901906} SevereHeatstrokePP: {fileID: 837424435} + TradeMenu: {fileID: 522642869} HostileTargetIndicator: {fileID: 1787772783} ViewDot: {fileID: 146394778} TargetIndicator: {fileID: 1556666357} @@ -16377,6 +16022,7 @@ GameObject: - component: {fileID: 1105457839} - component: {fileID: 1105457841} - component: {fileID: 1105457840} + - component: {fileID: 1105457842} m_Layer: 5 m_Name: Durability m_TagString: Untagged @@ -16396,7 +16042,7 @@ RectTransform: m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 232470597} - m_RootOrder: 5 + m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 1, y: 0} m_AnchorMax: {x: 1, y: 1} @@ -16500,81 +16146,26 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1105457838} m_CullTransparentMesh: 0 ---- !u!1 &1107776498 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1107776499} - - component: {fileID: 1107776501} - - component: {fileID: 1107776500} - m_Layer: 5 - m_Name: Background - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1107776499 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1107776498} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 1277237366} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1107776500 +--- !u!114 &1105457842 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1107776498} + m_GameObject: {fileID: 1105457838} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} m_Name: m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 0.011764706} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!222 &1107776501 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1107776498} - m_CullTransparentMesh: 0 + m_IgnoreLayout: 1 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 --- !u!1 &1108843908 GameObject: m_ObjectHideFlags: 0 @@ -18002,100 +17593,6 @@ RectTransform: m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: -20, y: -20} m_Pivot: {x: 0.5, y: 0.5} ---- !u!1 &1277237365 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1277237366} - - component: {fileID: 1277237369} - - component: {fileID: 1277237368} - - component: {fileID: 1277237367} - m_Layer: 5 - m_Name: Equipment Entry - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1277237366 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1277237365} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 1107776499} - - {fileID: 860340387} - - {fileID: 789791520} - - {fileID: 39953373} - m_Father: {fileID: 204301710} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 92, y: -220} - m_SizeDelta: {x: 184, y: 16} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1277237367 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1277237365} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 1281fe44325f9b548aa42dc331b17266, type: 3} - m_Name: - m_EditorClassIdentifier: ---- !u!114 &1277237368 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1277237365} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 6755ecd82e50a5d4bada4d900b47eeb4, type: 3} - m_Name: - m_EditorClassIdentifier: - Icon: {fileID: 860340388} - Label: {fileID: 789791521} - DurabilityLabel: {fileID: 0} - RangeLabel: {fileID: 39953374} - AmmoLabel: {fileID: 0} - InfiniteAmmoIcon: {fileID: 0} - CooldownFill: {fileID: 0} - HeatFill: {fileID: 0} ---- !u!114 &1277237369 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1277237365} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} - m_Name: - m_EditorClassIdentifier: - m_IgnoreLayout: 0 - m_MinWidth: -1 - m_MinHeight: -1 - m_PreferredWidth: -1 - m_PreferredHeight: 16 - m_FlexibleWidth: -1 - m_FlexibleHeight: -1 - m_LayoutPriority: 1 --- !u!1 &1284802337 GameObject: m_ObjectHideFlags: 0 @@ -19310,7 +18807,7 @@ MonoBehaviour: Button: {fileID: 1399108420} Tab: 3 Text: {fileID: 1399108421} - RequireParent: 0 + RequireDock: 0 --- !u!114 &1399108420 MonoBehaviour: m_ObjectHideFlags: 0 @@ -20180,6 +19677,126 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1461531896} m_CullTransparentMesh: 0 +--- !u!1 &1462704890 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1462704891} + - component: {fileID: 1462704894} + - component: {fileID: 1462704893} + - component: {fileID: 1462704895} + - component: {fileID: 1462704892} + m_Layer: 5 + m_Name: Weapon Entry + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1462704891 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1462704890} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1464520015} + - {fileID: 1790787330} + - {fileID: 1760757698} + m_Father: {fileID: 204301710} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 92, y: -220} + m_SizeDelta: {x: 184, y: 16} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1462704892 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1462704890} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 6 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 3 + m_Spacing: 0 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 0 + m_ChildControlWidth: 0 + m_ChildControlHeight: 1 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 +--- !u!114 &1462704893 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1462704890} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6755ecd82e50a5d4bada4d900b47eeb4, type: 3} + m_Name: + m_EditorClassIdentifier: + Settings: {fileID: 11400000, guid: cd2344e2001a37544aab0960c164d4ff, type: 2} + IconPrototype: {fileID: 1760757699} + DurabilityLabel: {fileID: 0} + RangeLabel: {fileID: 1790787332} + AmmoLabel: {fileID: 0} + InfiniteAmmoIcon: {fileID: 0} + CooldownFill: {fileID: 0} + HeatFill: {fileID: 0} +--- !u!114 &1462704894 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1462704890} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: 16 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 +--- !u!114 &1462704895 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1462704890} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1281fe44325f9b548aa42dc331b17266, type: 3} + m_Name: + m_EditorClassIdentifier: --- !u!1 &1464157084 GameObject: m_ObjectHideFlags: 0 @@ -20235,7 +19852,7 @@ MonoBehaviour: Button: {fileID: 1464157087} Tab: 2 Text: {fileID: 1464157088} - RequireParent: 0 + RequireDock: 1 --- !u!114 &1464157087 MonoBehaviour: m_ObjectHideFlags: 0 @@ -20377,6 +19994,102 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1464157084} m_CullTransparentMesh: 0 +--- !u!1 &1464520014 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1464520015} + - component: {fileID: 1464520018} + - component: {fileID: 1464520017} + - component: {fileID: 1464520016} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1464520015 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1464520014} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1462704891} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1464520016 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1464520014} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 1 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 +--- !u!114 &1464520017 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1464520014} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0.011764706} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1464520018 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1464520014} + m_CullTransparentMesh: 0 --- !u!1 &1466069950 GameObject: m_ObjectHideFlags: 0 @@ -24325,6 +24038,94 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1752418076} m_CullTransparentMesh: 0 +--- !u!1 &1760757697 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1760757698} + - component: {fileID: 1760757701} + - component: {fileID: 1760757700} + - component: {fileID: 1760757699} + m_Layer: 5 + m_Name: Icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1760757698 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1760757697} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1462704891} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 15, y: -8} + m_SizeDelta: {x: 18, y: 16} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1760757699 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1760757697} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1281fe44325f9b548aa42dc331b17266, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &1760757700 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1760757697} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 3f657d98213a45145b1e075e58fc8845, type: 3} + m_Type: 0 + m_PreserveAspect: 1 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1760757701 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1760757697} + m_CullTransparentMesh: 0 --- !u!1 &1771741748 GameObject: m_ObjectHideFlags: 0 @@ -24614,6 +24415,161 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 1281fe44325f9b548aa42dc331b17266, type: 3} m_Name: m_EditorClassIdentifier: +--- !u!1 &1790787329 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1790787330} + - component: {fileID: 1790787333} + - component: {fileID: 1790787332} + - component: {fileID: 1790787331} + m_Layer: 5 + m_Name: Range + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1790787330 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1790787329} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1462704891} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: -4, y: 1} + m_SizeDelta: {x: 20, y: -2} + m_Pivot: {x: 1, y: 0.5} +--- !u!114 &1790787331 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1790787329} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 1 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 +--- !u!114 &1790787332 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1790787329} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: 2000 + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 3fb7d873bb5a7944bb9a7c73c430c44b, type: 2} + m_sharedMaterial: {fileID: 2100000, guid: b9d2f6c9804cec1489502dcc1c19ec54, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 8 + m_fontSizeBase: 8 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 4 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!222 &1790787333 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1790787329} + m_CullTransparentMesh: 0 --- !u!1 &1803753852 GameObject: m_ObjectHideFlags: 0 @@ -26795,6 +26751,7 @@ GameObject: - component: {fileID: 2044077502} - component: {fileID: 2044077504} - component: {fileID: 2044077503} + - component: {fileID: 2044077505} m_Layer: 5 m_Name: Infinity m_TagString: Untagged @@ -26814,7 +26771,7 @@ RectTransform: m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 232470597} - m_RootOrder: 8 + m_RootOrder: 6 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 1, y: 0} m_AnchorMax: {x: 1, y: 1} @@ -26859,6 +26816,26 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2044077501} m_CullTransparentMesh: 0 +--- !u!114 &2044077505 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2044077501} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 1 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 --- !u!1 &2056162321 GameObject: m_ObjectHideFlags: 0 @@ -26907,6 +26884,7 @@ GameObject: - component: {fileID: 2060807771} - component: {fileID: 2060807773} - component: {fileID: 2060807772} + - component: {fileID: 2060807774} m_Layer: 5 m_Name: Heat Fill m_TagString: Untagged @@ -26971,6 +26949,26 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2060807770} m_CullTransparentMesh: 0 +--- !u!114 &2060807774 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2060807770} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 1 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 --- !u!1 &2060887865 GameObject: m_ObjectHideFlags: 0 diff --git a/Assets/Scenes/Main Menu.unity b/Assets/Scenes/Main Menu.unity index 975f66e73..ec58486f3 100644 --- a/Assets/Scenes/Main Menu.unity +++ b/Assets/Scenes/Main Menu.unity @@ -249,7 +249,7 @@ PrefabInstance: - target: {fileID: 878382121558056004, guid: 2758dfa2744d7ad4d8877545189d116e, type: 3} propertyPath: m_AnchoredPosition.x - value: 0 + value: 60.98 objectReference: {fileID: 0} - target: {fileID: 878382121558056004, guid: 2758dfa2744d7ad4d8877545189d116e, type: 3} @@ -1302,8 +1302,8 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 741153267} - m_LocalRotation: {x: 0.015506903, y: 0.9502416, z: -0.30741313, w: 0.047933225} - m_LocalPosition: {x: -117.51999, y: -77.08743, z: 149.09026} + m_LocalRotation: {x: 0.015506899, y: 0.9502416, z: -0.3074132, w: 0.04793321} + m_LocalPosition: {x: -117.52, y: -77.08742, z: 149.09026} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: - {fileID: 412917866} @@ -1773,8 +1773,8 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 965376321} - m_LocalRotation: {x: 0.015506903, y: 0.9502416, z: -0.30741313, w: 0.047933225} - m_LocalPosition: {x: -117.51999, y: -77.08743, z: 149.09026} + m_LocalRotation: {x: 0.015506899, y: 0.9502416, z: -0.3074132, w: 0.04793321} + m_LocalPosition: {x: -117.52, y: -77.08742, z: 149.09026} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 0} @@ -2010,22 +2010,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 3d7c7b928d043a3449b93bce9de03d1c, type: 3} m_Name: m_EditorClassIdentifier: - Settings: - LinkDensity: 0.5 - ZoneCount: 196 - NameGeneratorMinLength: 5 - NameGeneratorMaxLength: 10 - NameGeneratorOrder: 3 - MegaCount: 12 - BossCount: 3 - NoisePosition: 0 - CloudExponent: 10 - CloudAmplitude: 0.01 - NoiseAmplitude: 1 - NoiseOffset: 0.3 - NoiseGain: 0.7 - NoiseLacunarity: 2 - NoiseFrequency: 1 + Settings: {fileID: 11400000, guid: cd2344e2001a37544aab0960c164d4ff, type: 2} Dialog: {fileID: 1000515314} InGame: 0 PanelPrototype: {fileID: 6584140821722344273} @@ -2737,7 +2722,7 @@ PrefabInstance: - target: {fileID: 878382121558056004, guid: 2758dfa2744d7ad4d8877545189d116e, type: 3} propertyPath: m_AnchoredPosition.x - value: 0 + value: 55.675 objectReference: {fileID: 0} - target: {fileID: 878382121558056004, guid: 2758dfa2744d7ad4d8877545189d116e, type: 3} diff --git a/Assets/Scripts/Editor/DatabaseInspector.cs b/Assets/Scripts/Editor/DatabaseInspector.cs index da1dc18af..3660438e4 100644 --- a/Assets/Scripts/Editor/DatabaseInspector.cs +++ b/Assets/Scripts/Editor/DatabaseInspector.cs @@ -304,6 +304,27 @@ public class DatabaseInspector : EditorWindow else if (type.IsGenericType && type.GetGenericTypeDefinition() == typeof(List<>)) { var listType = field.FieldType.GenericTypeArguments[0]; + // if (listType.IsEnum) + // { + // Space(); + // using (new VerticalScope(GUI.skin.box)) + // { + // var list = (IList) field.GetValue(obj); + // if (list == null) + // { + // list = (IList) Activator.CreateInstance(type); + // field.SetValue(obj, list); + // GUI.changed = true; + // } + // var isflags = type.GetCustomAttributes().Any(); + // var names = Enum.GetNames(field.FieldType); + // + // for (var i = 0; i < list.Count; i++) + // { + // list[i] = Inspect(field.Name.SplitCamelCase(), (int) list[i], isflags ? names.Skip(1).ToArray() : names, isflags); + // } + // } + // } if (listType.GetCustomAttribute() != null) { Space(); @@ -365,23 +386,6 @@ public class DatabaseInspector : EditorWindow _listItemFoldouts.Add(o.GetHashCode()); else _listItemFoldouts.Remove(o.GetHashCode()); - // using (var h = new HorizontalScope()) - // { - // if (GUI.Button(h.rect, GUIContent.none, GUIStyle.none)) - // { - // if(_listItemFoldouts.Contains(o.GetHashCode())) - // _listItemFoldouts.Remove(o.GetHashCode()); - // else - // _listItemFoldouts.Add(o.GetHashCode()); - // } - // var foldoutRect = GetControlRect(false, GUILayout.Width(EditorGUIUtility.singleLineHeight)); - // if (Event.current.type == EventType.Repaint) - // { - // var controlId = GUIUtility.GetControlID(1337, FocusType.Keyboard, position); - // EditorStyles.foldout.Draw(foldoutRect, GUIContent.none, controlId, !_listItemFoldouts.Contains(o.GetHashCode())); - // } - // GUILayout.Label(o.ToString(), EditorStyles.boldLabel, GUILayout.Height(EditorGUIUtility.singleLineHeight), GUILayout.ExpandWidth(true)); - // } var rect = GetControlRect(false, GUILayout.Width(EditorGUIUtility.singleLineHeight)); diff --git a/Assets/Scripts/Editor/DatabaseView.cs b/Assets/Scripts/Editor/DatabaseView.cs index 4aedda1d3..e61712ce9 100644 --- a/Assets/Scripts/Editor/DatabaseView.cs +++ b/Assets/Scripts/Editor/DatabaseView.cs @@ -237,14 +237,8 @@ public class DatabaseListView : EditorWindow itemGroups = typedItems.GroupBy(item => Enum.GetName(typeof(SimpleCommodityCategory), (item as SimpleCommodityData).Category)); else if(_itemTypes[i] == typeof(CompoundCommodityData)) itemGroups = typedItems.GroupBy(item => Enum.GetName(typeof(CompoundCommodityCategory), (item as CompoundCommodityData).Category)); - else if(_itemTypes[i] == typeof(GearData)) - itemGroups = typedItems.GroupBy(item => - { - var hp = Enum.GetName(typeof(HardpointType), (item as GearData).Hardpoint); - if (hp == null) - hp = "Invalid Hardpoint"; - return hp; - }); + else if(_itemTypes[i] == typeof(GearData) || _itemTypes[i] == typeof(WeaponItemData)) + itemGroups = typedItems.GroupBy(item => Enum.GetName(typeof(HardpointType), (item as GearData).Hardpoint) ?? "Invalid Hardpoint"); else if (_itemTypes[i] == typeof(HullData)) itemGroups = typedItems.GroupBy(item => Enum.GetName(typeof(HullType), (item as HullData).HullType)); else itemGroups = typedItems.GroupBy(item => "All"); diff --git a/Assets/Scripts/Editor/GameplaySettingsEditor.cs b/Assets/Scripts/Editor/GameplaySettingsEditor.cs index 0e7028fb1..78111eec7 100644 --- a/Assets/Scripts/Editor/GameplaySettingsEditor.cs +++ b/Assets/Scripts/Editor/GameplaySettingsEditor.cs @@ -12,6 +12,11 @@ using UnityEngine; public class GameSettingsEditor : Editor { private bool _showIcons; + private bool _showWeaponTypeIcons; + private bool _showWeaponModifierIcons; + private bool _showWeaponFiringTypeIcons; + private bool _showWeaponCaliberIcons; + private bool _showWeaponRangeIcons; private bool _showProperties; private bool _showDatabase; @@ -36,6 +41,61 @@ public class GameSettingsEditor : Editor for (var i = 0; i < data.ItemIcons.Length; i++) data.ItemIcons[i] = (Sprite) EditorGUILayout.ObjectField(hardpointNames[i], data.ItemIcons[i], typeof(Sprite), false); + var modifierNames = Enum.GetNames(typeof(WeaponModifiers)); + if(data.WeaponModifierIcons.Length!=modifierNames.Length) + Array.Resize(ref data.WeaponModifierIcons, modifierNames.Length); + + if (GUILayout.Button("Weapon Modifier Icons", EditorStyles.toolbarButton)) + _showWeaponModifierIcons = !_showWeaponModifierIcons; + + if(_showWeaponModifierIcons) + for (var i = 0; i < data.WeaponModifierIcons.Length; i++) + data.WeaponModifierIcons[i] = (Sprite) EditorGUILayout.ObjectField(modifierNames[i], data.WeaponModifierIcons[i], typeof(Sprite), false); + + var weaponTypeNames = Enum.GetNames(typeof(WeaponType)); + if(data.WeaponTypeIcons.Length!=weaponTypeNames.Length) + Array.Resize(ref data.WeaponTypeIcons, weaponTypeNames.Length); + + if (GUILayout.Button("Weapon Type Icons", EditorStyles.toolbarButton)) + _showWeaponTypeIcons = !_showWeaponTypeIcons; + + if(_showWeaponTypeIcons) + for (var i = 0; i < data.WeaponTypeIcons.Length; i++) + data.WeaponTypeIcons[i] = (Sprite) EditorGUILayout.ObjectField(weaponTypeNames[i], data.WeaponTypeIcons[i], typeof(Sprite), false); + + var weaponCaliberNames = Enum.GetNames(typeof(WeaponCaliber)); + if(data.WeaponCaliberIcons.Length!=weaponCaliberNames.Length) + Array.Resize(ref data.WeaponCaliberIcons, weaponCaliberNames.Length); + + if (GUILayout.Button("Weapon Caliber Icons", EditorStyles.toolbarButton)) + _showWeaponCaliberIcons = !_showWeaponCaliberIcons; + + if(_showWeaponCaliberIcons) + for (var i = 0; i < data.WeaponCaliberIcons.Length; i++) + data.WeaponCaliberIcons[i] = (Sprite) EditorGUILayout.ObjectField(weaponCaliberNames[i], data.WeaponCaliberIcons[i], typeof(Sprite), false); + + var weaponFireTypeNames = Enum.GetNames(typeof(WeaponFireType)); + if(data.WeaponFireTypeIcons.Length!=weaponFireTypeNames.Length) + Array.Resize(ref data.WeaponFireTypeIcons, weaponFireTypeNames.Length); + + if (GUILayout.Button("Weapon Type Icons", EditorStyles.toolbarButton)) + _showWeaponFiringTypeIcons = !_showWeaponFiringTypeIcons; + + if(_showWeaponFiringTypeIcons) + for (var i = 0; i < data.WeaponFireTypeIcons.Length; i++) + data.WeaponFireTypeIcons[i] = (Sprite) EditorGUILayout.ObjectField(weaponFireTypeNames[i], data.WeaponFireTypeIcons[i], typeof(Sprite), false); + + var weaponRangeNames = Enum.GetNames(typeof(WeaponRange)); + if(data.WeaponRangeIcons.Length!=weaponRangeNames.Length) + Array.Resize(ref data.WeaponRangeIcons, weaponRangeNames.Length); + + if (GUILayout.Button("Weapon Range Icons", EditorStyles.toolbarButton)) + _showWeaponRangeIcons = !_showWeaponRangeIcons; + + if(_showWeaponRangeIcons) + for (var i = 0; i < data.WeaponRangeIcons.Length; i++) + data.WeaponRangeIcons[i] = (Sprite) EditorGUILayout.ObjectField(weaponRangeNames[i], data.WeaponRangeIcons[i], typeof(Sprite), false); + serializedObject.ApplyModifiedProperties(); } } \ No newline at end of file diff --git a/Assets/Scripts/Gameplay/ActionGameManager.cs b/Assets/Scripts/Gameplay/ActionGameManager.cs index 07d94943f..18f6d5c13 100644 --- a/Assets/Scripts/Gameplay/ActionGameManager.cs +++ b/Assets/Scripts/Gameplay/ActionGameManager.cs @@ -79,8 +79,9 @@ public class ActionGameManager : MonoBehaviour public PostProcessVolume DeathPP; public PostProcessVolume HeatstrokePP; public PostProcessVolume SevereHeatstrokePP; - + [Header("Scene Links")] + public TradeMenu TradeMenu; public Prototype HostileTargetIndicator; public PlaceUIElementWorldspace ViewDot; public PlaceUIElementWorldspace TargetIndicator; @@ -143,6 +144,10 @@ public class ActionGameManager : MonoBehaviour (float2(0, -1), "Rear") }; + public EntitySettings NewEntitySettings + { + get => MessagePackSerializer.Deserialize(MessagePackSerializer.Serialize(Settings.GameplaySettings.DefaultEntitySettings)); + } public void SaveLoadout(EntityPack pack) { @@ -513,26 +518,6 @@ public class ActionGameManager : MonoBehaviour BindToEntity(targetEntity); } } - - // var stationType = Database.GetAll().First(x=>x.HullType==HullType.Station); - // var stationHull = ItemManager.CreateInstance(stationType) as EquippableItem; - // var stationParent = Zone.PlanetInstances.Values.OrderByDescending(p => p.BodyData.Mass.Value).ElementAt(3); - // var stationParentOrbit = stationParent.Orbit.Data.ID; - // var stationParentPos = Zone.GetOrbitPosition(stationParentOrbit); - // var stationPos = stationParentPos + ItemManager.Random.NextFloat2Direction() * stationParent.GravityWellRadius.Value * .1f; - // var stationOrbit = Zone.CreateOrbit(stationParentOrbit, stationPos); - // var station = new OrbitalEntity(ItemManager, Zone, stationHull, stationOrbit.ID, Settings.DefaultEntitySettings); - // Zone.Entities.Add(station); - // var dockingBayData = Database.GetAll().First(); - // var dockingBay = ItemManager.CreateInstance(dockingBayData) as EquippableItem; - // station.TryEquip(dockingBay); - // station.Activate(); - // - // DoDock(station, station.DockingBays.First()); - - // ship.ExitWormhole( - // SectorRenderer.WormholeInstances.Keys.First().Position, - // ItemManager.Random.NextFloat2Direction() * Settings.GameplaySettings.WormholeExitVelocity); } public void Dock() @@ -550,6 +535,7 @@ public class ActionGameManager : MonoBehaviour { UnbindEntity(); DoDock(entity, bay); + TradeMenu.Inventory = entity.CargoBays.First(); AkSoundEngine.PostEvent("Dock", gameObject); return; } diff --git a/Assets/Scripts/Gameplay/GameSettings.cs b/Assets/Scripts/Gameplay/GameSettings.cs index 84b781c77..a19a9292c 100644 --- a/Assets/Scripts/Gameplay/GameSettings.cs +++ b/Assets/Scripts/Gameplay/GameSettings.cs @@ -21,6 +21,7 @@ public class GameSettings : ScriptableObject public int AsteroidMeshCount = 5; public float MinimapAsteroidSize = 3; public float PlanetRotationSpeed = 1; + public SectorGenerationSettings SectorGenerationSettings; public BodySettingsCollection[] BodySettingsCollections; public PlanetSettings PlanetSettings; public ZoneGenerationSettings ZoneSettings; @@ -32,6 +33,37 @@ public class GameSettings : ScriptableObject public Gradient ArmorGradient; public Gradient DurabilityGradient; [HideInInspector] public Sprite[] ItemIcons; + [HideInInspector] public Sprite[] WeaponTypeIcons; + [HideInInspector] public Sprite[] WeaponCaliberIcons; + [HideInInspector] public Sprite[] WeaponRangeIcons; + [HideInInspector] public Sprite[] WeaponFireTypeIcons; + [HideInInspector] public Sprite[] WeaponModifierIcons; + + public Sprite GetIcon(WeaponType type) => WeaponTypeIcons[(int) type]; + public Sprite GetIcon(WeaponRange range) => WeaponRangeIcons[(int) range]; + public Sprite GetIcon(WeaponCaliber caliber) => WeaponCaliberIcons[(int) caliber]; + + public IEnumerable GetIcons(WeaponFireType type) + { + var count = Enum.GetValues(typeof(WeaponFireType)).Length; + var t = (int) type; + for (int i = 0; i < count - 1; i++) + { + if (1 << i == (1 << i & t)) + yield return WeaponFireTypeIcons[i + 1]; + } + } + + public IEnumerable GetIcons(WeaponModifiers type) + { + var count = Enum.GetValues(typeof(WeaponModifiers)).Length; + var t = (int) type; + for (int i = 0; i < count - 1; i++) + { + if (1 << i == (1 << i & t)) + yield return WeaponModifierIcons[i + 1]; + } + } } [Serializable] diff --git a/Assets/Scripts/MainMenu.cs b/Assets/Scripts/MainMenu.cs index c4f50fdfe..9fa499de6 100644 --- a/Assets/Scripts/MainMenu.cs +++ b/Assets/Scripts/MainMenu.cs @@ -14,7 +14,7 @@ using Random = UnityEngine.Random; public class MainMenu : MonoBehaviour { - public SectorGenerationSettings Settings; + public GameSettings Settings; public ConfirmationDialog Dialog; public bool InGame; public Prototype PanelPrototype; @@ -114,9 +114,9 @@ public class MainMenu : MonoBehaviour Dialog.Title.text = "Generating Galaxy"; Dialog.AddProperty(() => generatorState); Dialog.Show(); - Settings.NoisePosition = Random.value * 100; + Settings.SectorGenerationSettings.NoisePosition = Random.value * 100; - var task = Task.Run(() => new Sector(Settings, ActionGameManager.Database, 0, setState)); + var task = Task.Run(() => new Sector(Settings.SectorGenerationSettings, ActionGameManager.Database, 0, setState)); task.ContinueWith(task => Observable.NextFrame().Subscribe(_ => { ActionGameManager.PlayerSettings.CurrentRun = null; diff --git a/Assets/Scripts/ServerShared/Corporations.cs b/Assets/Scripts/ServerShared/Corporations.cs index 1093a43d5..45f7aa609 100644 --- a/Assets/Scripts/ServerShared/Corporations.cs +++ b/Assets/Scripts/ServerShared/Corporations.cs @@ -36,7 +36,7 @@ public class Corporation : DatabaseEntry, INamedEntry } [RethinkTable("Galaxy"), Inspectable, MessagePackObject, JsonObject(MemberSerialization.OptIn)] -public class MegaCorporation : DatabaseEntry, INamedEntry +public class Faction : DatabaseEntry, INamedEntry { [InspectableField, JsonProperty("name"), Key(1)] public string Name; @@ -71,7 +71,7 @@ public class MegaCorporation : DatabaseEntry, INamedEntry [InspectableField, JsonProperty("influence"), Key(11)] public int InfluenceDistance = 4; - [InspectableDatabaseLink(typeof(MegaCorporation)), RangedFloat(0, 1), JsonProperty("allegiance"), Key(12)] + [InspectableDatabaseLink(typeof(Faction)), RangedFloat(0, 1), JsonProperty("allegiance"), Key(12)] public Dictionary Allegiance = new Dictionary(); [IgnoreMember] public string EntryName diff --git a/Assets/Scripts/ServerShared/DatabaseEntry.cs b/Assets/Scripts/ServerShared/DatabaseEntry.cs index 7dd4b3c16..f8ae785af 100644 --- a/Assets/Scripts/ServerShared/DatabaseEntry.cs +++ b/Assets/Scripts/ServerShared/DatabaseEntry.cs @@ -31,7 +31,7 @@ public interface INamedEntry //Union(10, typeof(ZoneData)), Union(11, typeof(PlayerData)), Union(12, typeof(Corporation)), - Union(13, typeof(MegaCorporation)), + Union(13, typeof(Faction)), Union(14, typeof(OrbitalEntity)), Union(15, typeof(OrbitData)), Union(16, typeof(BodyData)), @@ -49,6 +49,7 @@ public interface INamedEntry Union(28, typeof(PlanetData)), Union(29, typeof(CargoBayData)), Union(30, typeof(DockingBayData)), + Union(31, typeof(WeaponItemData)), JsonObject(MemberSerialization.OptIn), JsonConverter(typeof(JsonKnownTypesConverter))] //[Union(21, typeof(ContractData))] //[Union(22, typeof(Station))] diff --git a/Assets/Scripts/ServerShared/Entity.cs b/Assets/Scripts/ServerShared/Entity.cs index 006cc92e7..f4f653b8a 100644 --- a/Assets/Scripts/ServerShared/Entity.cs +++ b/Assets/Scripts/ServerShared/Entity.cs @@ -13,7 +13,7 @@ using int2 = Unity.Mathematics.int2; public abstract class Entity { public Zone Zone; - public MegaCorporation Faction; + public Faction Faction; public EquippableItem Hull; public float3 Position; @@ -78,6 +78,8 @@ public abstract class Entity } } + public HullData HullData { get; } + public EntitySettings Settings { get; } public bool OverrideShutdown { get; set; } @@ -162,6 +164,7 @@ public abstract class Entity ItemManager = itemManager; Zone = zone; Hull = hull; + HullData = itemManager.GetData(hull) as HullData; Name = hull.Name; MapEntity(); TriggerGroups = new (List triggers, List items)[itemManager.GameplaySettings.TriggerGroupCount]; @@ -277,6 +280,21 @@ public abstract class Entity return CargoBays.FirstOrDefault(c => c.ItemsOfType.ContainsKey(itemDataID)); } + public Shape UnoccupiedSpace + { + get + { + var emptyShape = new Shape(HullData.Shape.Width, HullData.Shape.Height); + foreach (var v in HullData.Shape.Coordinates) + { + if (HullData.InteriorCells[v] && GearOccupancy[v.x, v.y] == null && Hardpoints[v.x,v.y] == null) + emptyShape[v] = true; + } + + return emptyShape; + } + } + // Attempts to move a given number of items of the given type to the target Entity // Returns the number of items successfully transferred public int TryTransferItems(Entity target, Guid itemDataID, int quantity) @@ -1040,7 +1058,18 @@ public class EquippedCargoBay : EquippedItem public float Mass { get; private set; } public float ThermalMass { get; private set; } public string Name { get; } - + + public Shape UnoccupiedSpace + { + get + { + var unoccupied = new Shape(Data.InteriorShape.Width, Data.InteriorShape.Height); + foreach (var v in unoccupied.AllCoordinates) + unoccupied[v] = Occupancy[v.x, v.y] == null; + return unoccupied; + } + } + public EquippedCargoBay(ItemManager itemManager, EquippableItem item, int2 position, Entity entity, string name) : base(itemManager, item, position, entity) { Data = ItemManager.GetData(EquippableItem) as CargoBayData; @@ -1101,6 +1130,7 @@ public class EquippedCargoBay : EquippedItem if (remainingQuantity == 0) return true; } + // TODO: Try alternate item rotations / use Shape.FitsWithin // Search all the space in the cargo bay for an empty space where the item fits foreach (var cargoCoord in Data.InteriorShape.Coordinates) { diff --git a/Assets/Scripts/ServerShared/EntitySerializer.cs b/Assets/Scripts/ServerShared/EntitySerializer.cs index 83c83032e..6f4127fa8 100644 --- a/Assets/Scripts/ServerShared/EntitySerializer.cs +++ b/Assets/Scripts/ServerShared/EntitySerializer.cs @@ -87,7 +87,7 @@ public static class EntitySerializer private static void Restore(ItemManager itemManager, Zone zone, EntityPack pack, Entity entity, bool instantiate = false) { entity.Name = pack.Name; - entity.Faction = itemManager.ItemData.Get(pack.Faction); + entity.Faction = itemManager.ItemData.Get(pack.Faction); entity.Children = pack.Children.Select(c => { var child = Unpack(itemManager, zone, c, instantiate); diff --git a/Assets/Scripts/ServerShared/Enums.cs b/Assets/Scripts/ServerShared/Enums.cs index f97c2ffdb..28c6be239 100644 --- a/Assets/Scripts/ServerShared/Enums.cs +++ b/Assets/Scripts/ServerShared/Enums.cs @@ -44,6 +44,60 @@ public enum HardpointType ControlModule } +public enum WeaponType +{ + ElectromagneticallyPropelled, + ExplosivelyPropelled, + Laser, + Electrostatic, + ParticleProjection, + Missile, + MicroMissile, + SplitMissile, + Mine, + Jet +} + +public enum WeaponRange +{ + Melee, + Short, + Medium, + Long +} + +public enum WeaponCaliber +{ + Small, + Medium, + Large, + ExtraLarge +} + +[Flags] +public enum WeaponFireType +{ + None = 0, + Direct = 1 << 0, + Guided = 1 << 1, + Seeking = 1 << 2, + Continuous = 1 << 3, + Charged = 1 << 4 +} + +[Flags] +public enum WeaponModifiers +{ + None = 0, + Airburst = 1 << 0, + Incendiary = 1 << 1, + ArmorPenetrating = 1 << 2, + NegativeEntropy = 1 << 3, + RapidFire = 1 << 4, + Burst = 1 << 5, + Cluster = 1 << 6 +} + public enum DamageType { Kinetic, diff --git a/Assets/Scripts/ServerShared/ItemData.cs b/Assets/Scripts/ServerShared/ItemData.cs index 6a5de3d33..7964402e2 100644 --- a/Assets/Scripts/ServerShared/ItemData.cs +++ b/Assets/Scripts/ServerShared/ItemData.cs @@ -219,14 +219,7 @@ public class Shape } } -[MessagePackObject, - Union(0, typeof(SimpleCommodityData)), - Union(1, typeof(CompoundCommodityData)), - Union(2, typeof(GearData)), - Union(3, typeof(HullData)), - Union(4, typeof(CargoBayData)), - Union(5, typeof(DockingBayData)), - JsonObject(MemberSerialization.OptIn), JsonConverter(typeof(JsonKnownTypesConverter))] +[MessagePackObject, JsonObject(MemberSerialization.OptIn), JsonConverter(typeof(JsonKnownTypesConverter))] public abstract class ItemData : DatabaseEntry, INamedEntry { [InspectableField, JsonProperty("name"), Key(1)] @@ -235,7 +228,7 @@ public abstract class ItemData : DatabaseEntry, INamedEntry [InspectableText, JsonProperty("description"), Key(2)] public string Description; - [InspectableDatabaseLink(typeof(MegaCorporation)), JsonProperty("creator"), Key(3)] + [InspectableDatabaseLink(typeof(Faction)), JsonProperty("creator"), Key(3)] public Guid Manufacturer; [InspectableField, JsonProperty("mass"), Key(4)] @@ -288,12 +281,7 @@ public class SimpleCommodityData : ItemData public SimpleCommodityCategory Category; } -[MessagePackObject, - Union(0, typeof(CompoundCommodityData)), - Union(1, typeof(GearData)), - Union(2, typeof(HullData)), - JsonObject(MemberSerialization.OptIn), - JsonConverter(typeof(JsonKnownTypesConverter))] +[MessagePackObject, JsonObject(MemberSerialization.OptIn), JsonConverter(typeof(JsonKnownTypesConverter))] public abstract class CraftedItemData : ItemData { [InspectableField, JsonProperty("ingredientQualityWeight"), Key(9)] @@ -310,9 +298,7 @@ public class CompoundCommodityData : CraftedItemData public CompoundCommodityCategory Category; } -[Union(0, typeof(GearData)), - Union(1, typeof(HullData)), - JsonObject(MemberSerialization.OptIn), JsonConverter(typeof(JsonKnownTypesConverter))] +[JsonObject(MemberSerialization.OptIn), JsonConverter(typeof(JsonKnownTypesConverter))] public abstract class EquippableItemData : CraftedItemData { [InspectableTexture, JsonProperty("schematic"), Key(10)] @@ -405,7 +391,25 @@ public class DockingBayData : CargoBayData { [InspectableField, JsonProperty("maxSize"), Key(21)] public int2 MaxSize; - [IgnoreMember] public override HardpointType HardpointType => HardpointType.Tool; +} + +[RethinkTable("Items"), Inspectable, MessagePackObject, JsonObject(MemberSerialization.OptIn)] +public class WeaponItemData : GearData +{ + [InspectableField, JsonProperty("range"), Key(21)] + public WeaponRange WeaponRange; + + [InspectableField, JsonProperty("caliber"), Key(22)] + public WeaponCaliber WeaponCaliber; + + [InspectableField, JsonProperty("weaponType"), Key(23)] + public WeaponType WeaponType; + + [InspectableField, JsonProperty("fireTypes"), Key(24)] + public WeaponFireType WeaponFireTypes; + + [InspectableField, JsonProperty("modifiers"), Key(25)] + public WeaponModifiers WeaponModifiers; } [RethinkTable("Items"), Inspectable, MessagePackObject, JsonObject(MemberSerialization.OptIn)] diff --git a/Assets/Scripts/ServerShared/ItemManager.cs b/Assets/Scripts/ServerShared/ItemManager.cs index 6165a2726..195c976d7 100644 --- a/Assets/Scripts/ServerShared/ItemManager.cs +++ b/Assets/Scripts/ServerShared/ItemManager.cs @@ -272,144 +272,12 @@ public class ItemManager return result; } - // public Entity CreateEntity(Guid zoneID, Guid corporation, Guid loadout) - // { - // if (!(ItemData.Get(loadout) is LoadoutData loadoutData)) - // { - // _logger("Attempted to spawn invalid loadout ID"); - // return null; - // } - // - // if (!(ItemData.Get(loadoutData.Hull) is HullData hullData)) - // { - // _logger("Attempted to spawn loadout with invalid hull ID"); - // return null; - // } - // - // if (!(ItemData.Get(zoneID) is ZoneData zoneData)) - // { - // _logger("Attempted to spawn entity with invalid zone ID"); - // return null; - // } - // - // if (!(ItemData.Get(corporation) is Corporation corpData)) - // { - // _logger("Attempted to spawn entity with invalid corporation ID"); - // return null; - // } - // - // var gearData = loadoutData.Gear - // .Take(hullData.Hardpoints.Count) - // .Where(id => id != Guid.Empty) - // .Select(id => ItemData.Get(id)) - // .ToArray(); - // - // if (gearData.Any(g=>g==null)) - // { - // _logger("Attempted to spawn loadout with invalid gear ID"); - // return null; - // } - // - // var gear = gearData - // .Select(gd => CreateInstance(gd.ID, GlobalData.StartingGearQualityMin, GlobalData.StartingGearQualityMax)) - // .ToArray(); - // - // if (gear.Any(g=>g==null)) - // return null; - // - // foreach(var g in gear) - // ItemData.Add(g); - // - // var cargoData = loadoutData.CompoundCargo - // .SelectMany(x => Enumerable.Repeat(ItemData.Get(x.Key), x.Value)) - // .ToArray(); - // - // if (cargoData.Any(g=>g==null)) - // { - // _logger("Attempted to spawn loadout with invalid cargo ID"); - // return null; - // } - // - // var cargo = cargoData - // .Select(gd => CreateInstance(gd.ID, GlobalData.StartingGearQualityMin, GlobalData.StartingGearQualityMax)) - // .ToArray(); - // - // if (cargo.Any(g=>g==null)) - // return null; - // - // foreach(var c in cargo) - // ItemData.Add(c); - // - // var simpleCargo = loadoutData.SimpleCargo? - // .Select(x => CreateInstance(x.Key, x.Value)) - // .ToArray() ?? new SimpleCommodity[0]; - // - // if (simpleCargo.Any(g=>g==null)) - // return null; - // - // var hull = CreateInstance(loadoutData.Hull, GlobalData.StartingGearQualityMin, GlobalData.StartingGearQualityMax); - // - // if(hull==null) - // return null; - // - // // Get target zone - // var zone = _zones[zoneID]; - // - // if (hullData.HullType == HullType.Ship) - // { - // var entity = CreateShip(hull.ID, gear.Select(g => g.ID), - // cargo.Select(c => c.ID).Concat(simpleCargo.Select(c => c.ID)), zone, corporation, Guid.Empty, loadoutData.Name); - // entity.Active = true; - // return entity; - // } - // - // if (hullData.HullType == HullType.Station) - // { - // var distance = lerp(.2f, .8f, Random.NextFloat()) * zoneData.Radius; - // var orbit = new OrbitData - // { - // Context = this, - // Distance = new ReactiveProperty(distance), - // Parent = zone.Orbits.Values.Select(o=>o.Data) - // .First(orbitData => orbitData.Parent == Guid.Empty).ID, - // Phase = Random.NextFloat() - // }; - // zone.AddOrbit(orbit); - // - // var entity = new OrbitalEntity(this, hull.ID, gear.Select(g => g.ID), - // cargo.Select(c => c.ID).Concat(simpleCargo.Select(c => c.ID)), orbit.ID, zone, corporation) - // { - // Name = $"{loadoutData.Name} {Random.NextInt(1,255):X}", - // Temperature = 293, - // Population = 4 - // }; - // entity.Active = true; - // var parentCorp = ItemData.Get(corpData.Parent); - // foreach (var attribute in parentCorp.Personality) - // entity.Personality[attribute.Key] = attribute.Value; - // ItemData.Add(entity); - // - // zone.Entities[entity.ID] = entity; - // return entity; - // } - // - // return null; - // } - // - // public Ship CreateShip(Guid hull, IEnumerable gear, IEnumerable cargo, Zone zone, Guid corporation, Guid homeEntity, string typeName) - // { - // - // var ship = new Ship(this, hull, gear, cargo, zone, corporation) - // { - // Name = $"{typeName} {Random.NextInt(1,255):X}", - // HomeEntity = homeEntity - // }; - // ItemData.Add(ship); - // - // zone.Entities[ship.ID] = ship; - // return ship; - // } - + public int GetPrice(CraftedItemInstance item) + { + var data = GetData(item); + return (int) (GameplaySettings.QualityPriceModifier.Evaluate(item.Quality) * data.Price); + } + public SimpleCommodity CreateInstance(SimpleCommodityData item, int count) { if (item != null) diff --git a/Assets/Scripts/ServerShared/LoadoutGenerator.cs b/Assets/Scripts/ServerShared/LoadoutGenerator.cs index bff4f2d91..f98893a1e 100644 --- a/Assets/Scripts/ServerShared/LoadoutGenerator.cs +++ b/Assets/Scripts/ServerShared/LoadoutGenerator.cs @@ -11,7 +11,7 @@ public class LoadoutGenerator public ItemManager ItemManager { get; } public Sector Sector { get; } public SectorZone Zone { get; } - public MegaCorporation Faction { get; } + public Faction Faction { get; } public float PriceExponent { get; } public LoadoutGenerator( @@ -19,7 +19,7 @@ public class LoadoutGenerator ItemManager itemManager, Sector sector, SectorZone zone, - MegaCorporation faction, + Faction faction, float priceExponent) { Random = random; @@ -48,6 +48,38 @@ public class LoadoutGenerator return EntitySerializer.Pack(entity); } + public EntityPack GenerateStationLoadout() + { + var hullData = RandomHull(HullType.Station); + var hull = ItemManager.CreateInstance(hullData) as EquippableItem; + var entity = new OrbitalEntity(ItemManager, null, hull, Guid.Empty, ItemManager.GameplaySettings.DefaultEntitySettings); + entity.Faction = Faction; + OutfitEntity(entity); + + var emptyShape = entity.UnoccupiedSpace; + + var dockingBayData = RandomItem(item => item.Shape.FitsWithin(emptyShape, out _, out _)); + if (dockingBayData == null) throw new InvalidLoadoutException("No compatible docking bay found for station!"); + + dockingBayData.Shape.FitsWithin(emptyShape, out var cargoRotation, out var cargoPosition); + var dockingBay = ItemManager.CreateInstance(dockingBayData) as EquippableItem; + dockingBay.Rotation = cargoRotation; + if (!entity.TryEquip(dockingBay, cargoPosition)) + { + throw new InvalidLoadoutException("Failed to equip selected docking bay!"); + } + + var cargo = entity.CargoBays.First(); + var inventory = RandomItems(16, data => !(data is CargoBayData)); + foreach (var item in inventory) + { + var instance = ItemManager.CreateInstance(item); + cargo.TryStore(instance); + } + + return EntitySerializer.Pack(entity); + } + public HullData RandomHull(HullType type) { return ItemManager.ItemData.GetAll() @@ -55,13 +87,13 @@ public class LoadoutGenerator .WeightedRandomElements(ref Random, item => (Faction == null || item.Manufacturer == Faction.ID ? 1 : Faction.Allegiance[item.Manufacturer]) / // Prioritize items from allied manufacturers - Zone.Distance[Sector.HomeZones[ItemManager.ItemData.Get(item.Manufacturer)]] / // Penalize distance to manufacturer headquarters + Zone.Distance[Sector.HomeZones[ItemManager.ItemData.Get(item.Manufacturer)]] / // Penalize distance to manufacturer headquarters pow(item.Price, PriceExponent), // Penalize item price to a controllable degree 1 ).FirstOrDefault(); } - public T RandomItem(Predicate filter = null) where T : EquippableItemData + public T[] RandomItems(int count, Predicate filter = null) where T : EquippableItemData { return ItemManager.ItemData.GetAll() .Where(item => Sector.ContainsFaction(item.Manufacturer) && @@ -69,11 +101,16 @@ public class LoadoutGenerator (filter?.Invoke(item) ?? true)) .WeightedRandomElements(ref Random, item => (Faction == null || item.Manufacturer == Faction.ID ? 1 : Faction.Allegiance[item.Manufacturer]) * // Prioritize items from allied manufacturers - item.Shape.Coordinates.Length / // Prioritize items that fill more of the hardpoint's slots - Zone.Distance[Sector.HomeZones[ItemManager.ItemData.Get(item.Manufacturer)]] / // Penalize distance to manufacturer headquarters + item.Shape.Coordinates.Length * item.Shape.Coordinates.Length / // Prioritize larger items + Zone.Distance[Sector.HomeZones[ItemManager.ItemData.Get(item.Manufacturer)]] / // Penalize distance to manufacturer headquarters pow(item.Price, PriceExponent), // Penalize item price to a controllable degree - 1 - ).FirstOrDefault(); + count + ); + } + + public T RandomItem(Predicate filter = null) where T : EquippableItemData + { + return RandomItems(1, filter).FirstOrDefault(); } public T RandomItem(HardpointData hardpoint, Predicate filter = null) where T : EquippableItemData @@ -88,7 +125,7 @@ public class LoadoutGenerator var hullData = ItemManager.GetData(entity.Hull) as HullData; foreach (var v in hullData.Shape.Coordinates) entity.HullConductivity[v.x, v.y] = true; var previousItems = new List(); - foreach (var hardpoint in hullData.Hardpoints) + foreach (var hardpoint in hullData.Hardpoints.OrderByDescending(h=>h.Shape.Coordinates.Length)) { if (hardpoint.Type == HardpointType.ControlModule) { @@ -103,7 +140,7 @@ public class LoadoutGenerator } else { - // If a previously selected item fits, use that one + // If a previously selected item fits, use that one (this is why we must process larger hardpoints first) var itemData = previousItems .FirstOrDefault(i => i.HardpointType == hardpoint.Type && i.Shape.FitsWithin(hardpoint.Shape, hardpoint.Rotation, out _)); itemData ??= RandomItem(hardpoint); @@ -121,26 +158,31 @@ public class LoadoutGenerator } } - var emptyShape = new Shape(hullData.Shape.Width, hullData.Shape.Height); - foreach (var v in hullData.Shape.Coordinates) - { - if (hullData.InteriorCells[v] && entity.Hardpoints[v.x, v.y] == null) - emptyShape[v] = true; - } + var emptyShape = entity.UnoccupiedSpace; + + var cargoData = RandomItem(item => + !(item is DockingBayData) && + item.Shape.FitsWithin(emptyShape, out _, out _)); + if (cargoData == null) throw new InvalidLoadoutException("No compatible cargo bay found for entity!"); + + cargoData.Shape.FitsWithin(emptyShape, out var cargoRotation, out var cargoPosition); + var cargo = ItemManager.CreateInstance(cargoData) as EquippableItem; + cargo.Rotation = cargoRotation; + if (!entity.TryEquip(cargo, cargoPosition)) + throw new InvalidLoadoutException("Failed to equip selected cargo bay!"); + + emptyShape = entity.UnoccupiedSpace; var capacitorData = RandomItem(item => item.Behaviors.Any(b => b is CapacitorData) && item.Shape.FitsWithin(emptyShape, out _, out _)); if (capacitorData == null) throw new InvalidLoadoutException("No compatible capacitor found for entity!"); - if(!capacitorData.Shape.FitsWithin(emptyShape, out var capacitorRotation, out var capacitorPosition)) - throw new InvalidLoadoutException("Failed to equip selected capacitor!"); + capacitorData.Shape.FitsWithin(emptyShape, out var capacitorRotation, out var capacitorPosition); var capacitor = ItemManager.CreateInstance(capacitorData) as EquippableItem; capacitor.Rotation = capacitorRotation; if (!entity.TryEquip(capacitor, capacitorPosition)) - { throw new InvalidLoadoutException("Failed to equip selected capacitor!"); - } } } diff --git a/Assets/Scripts/ServerShared/Sector.cs b/Assets/Scripts/ServerShared/Sector.cs index 8d8d93eed..a44940737 100644 --- a/Assets/Scripts/ServerShared/Sector.cs +++ b/Assets/Scripts/ServerShared/Sector.cs @@ -12,18 +12,18 @@ using Random = Unity.Mathematics.Random; public class Sector { - public Dictionary HomeZones = new Dictionary(); - public Dictionary BossZones = new Dictionary(); + public Dictionary HomeZones = new Dictionary(); + public Dictionary BossZones = new Dictionary(); public SectorGenerationSettings Settings { get; } - public MegaCorporation[] Factions { get; } + public Faction[] Factions { get; } public SectorZone[] Zones { get; } public SectorZone Entrance { get; } public SectorZone Exit { get; } private HashSet _containedFactions; private SectorZone[] _exitPath; - private Dictionary _nameGenerators = new Dictionary(); + private Dictionary _nameGenerators = new Dictionary(); public SectorZone[] ExitPath { @@ -36,7 +36,7 @@ public class Sector public Sector(DatabaseCache database, SavedGame savedGame) { Settings = savedGame.Settings; - Factions = savedGame.Factions.Select(database.Get).ToArray(); + Factions = savedGame.Factions.Select(database.Get).ToArray(); Zones = savedGame.Zones.Select(zone => { return new SectorZone @@ -70,7 +70,7 @@ public class Sector public Sector(SectorGenerationSettings settings, DatabaseCache database, uint seed = 0, Action progressCallback = null, float minLineSeparation = .01f) { Settings = settings; - var megas = database.GetAll(); + var megas = database.GetAll(); var random = new Random(seed == 0 ? (uint) (DateTime.Now.Ticks % uint.MaxValue) : seed); Factions = megas.OrderBy(x => random.NextFloat()).Take(settings.MegaCount).ToArray(); @@ -382,8 +382,8 @@ public class SectorZone public List AdjacentZones = new List(); public int Isolation; public Dictionary Distance; - public MegaCorporation[] Factions; - public MegaCorporation Owner; + public Faction[] Factions; + public Faction Owner; public Zone Contents; public ZonePack PackedContents; } \ No newline at end of file diff --git a/Assets/Scripts/ServerShared/Settings.cs b/Assets/Scripts/ServerShared/Settings.cs index 6983329b2..ba0e1e7bb 100644 --- a/Assets/Scripts/ServerShared/Settings.cs +++ b/Assets/Scripts/ServerShared/Settings.cs @@ -134,6 +134,7 @@ public class GameplaySettings { public EntitySettings DefaultEntitySettings; public RarityTier[] Tiers; + public ExponentialLerp QualityPriceModifier; public float DefaultShutdownPerformance = .25f; public float SevereHeatstrokeRiskThreshold = .25f; public float WormholeDepth = 1000; diff --git a/Assets/Scripts/ServerShared/ZoneGenerator.cs b/Assets/Scripts/ServerShared/ZoneGenerator.cs index 9ba48b0c6..a633de98e 100644 --- a/Assets/Scripts/ServerShared/ZoneGenerator.cs +++ b/Assets/Scripts/ServerShared/ZoneGenerator.cs @@ -221,14 +221,22 @@ public static class ZoneGenerator return planetData; }).ToList(); - if (sectorZone.Owner != null) + var nearestFaction = sector.Factions.MinBy(f => sector.HomeZones[f].Distance[sectorZone]); + var nearestFactionHomeZone = sector.HomeZones[nearestFaction]; + var factionPresence = nearestFaction.InfluenceDistance - nearestFactionHomeZone.Distance[sectorZone]; + + var loadoutGenerator = new LoadoutGenerator(ref random, itemManager, sector, sectorZone, nearestFaction, 1); + for (int i = 0; i < factionPresence; i++) { - var loadoutGenerator = new LoadoutGenerator(ref random, itemManager, sector, sectorZone, sectorZone.Owner, 1); - for (int i = 0; i < 3; i++) - { - pack.Entities.Add(loadoutGenerator.GenerateShipLoadout()); - } + pack.Entities.Add(loadoutGenerator.GenerateShipLoadout()); } + + var replacePlanet = pack.Planets.MinBy(p => p.Mass.Value); + pack.Planets.Remove(replacePlanet); + var stationOrbit = replacePlanet.Orbit; + var station = loadoutGenerator.GenerateStationLoadout(); + ((OrbitalEntityPack) station).Orbit = stationOrbit; + pack.Entities.Add(station); return pack; } diff --git a/Assets/Scripts/UI/MenuPanel.cs b/Assets/Scripts/UI/MenuPanel.cs index 68173a9f7..20e19a005 100644 --- a/Assets/Scripts/UI/MenuPanel.cs +++ b/Assets/Scripts/UI/MenuPanel.cs @@ -47,7 +47,7 @@ public class MenuPanel : MonoBehaviour { foreach (var tabButton in _tabs.Values) { - tabButton.gameObject.SetActive(!tabButton.RequireParent || GameManager.CurrentEntity.Parent != null); + tabButton.gameObject.SetActive(!tabButton.RequireDock || GameManager.DockedEntity != null); } } diff --git a/Assets/Scripts/UI/MenuTabButton.cs b/Assets/Scripts/UI/MenuTabButton.cs index 1e30bdaeb..d41a92e8a 100644 --- a/Assets/Scripts/UI/MenuTabButton.cs +++ b/Assets/Scripts/UI/MenuTabButton.cs @@ -15,5 +15,5 @@ public class MenuTabButton : MonoBehaviour public Button Button; public MenuTab Tab; public TextMeshProUGUI Text; - public bool RequireParent; + public bool RequireDock; } diff --git a/Assets/Scripts/UI/PropertiesPanel.cs b/Assets/Scripts/UI/PropertiesPanel.cs index 01fc0874f..eb4298452 100644 --- a/Assets/Scripts/UI/PropertiesPanel.cs +++ b/Assets/Scripts/UI/PropertiesPanel.cs @@ -362,7 +362,7 @@ public class PropertiesPanel : MonoBehaviour { var data = Context.ItemData.Get(item.Data); AddProperty(data.Description);//.Label.fontStyle = FontStyles.Normal; - var manufacturer = Context.ItemData.Get(data.Manufacturer); + var manufacturer = Context.ItemData.Get(data.Manufacturer); if (manufacturer != null) { AddProperty("Manufacturer", () => manufacturer.Name); @@ -450,21 +450,6 @@ public class PropertiesPanel : MonoBehaviour { var data = Context.ItemData.Get(item.Data); AddItemDataProperties(data); - // if (item is CraftedItemInstance craftedItemInstance) - // { - // var sourceEntity = Context.ItemData.Get(craftedItemInstance.SourceEntity); - // if (sourceEntity != null) - // { - // var corporation = Context.ItemData.Get(sourceEntity.Corporation); - // AddProperty("Manufacturer", () => corporation.Name); - // } - // else - // { - // AddProperty("Manufacturer", () => "GameCult"); - // } - // } - // if (item is SimpleCommodity simpleCommodity) - // AddProperty("Quantity", () => simpleCommodity.Quantity.ToString()); AddProperty("Mass", () => Context.GetMass(item).SignificantDigits(Context.GameplaySettings.SignificantDigits)); AddProperty("Thermal Mass", () => Context.GetThermalMass(item).SignificantDigits(Context.GameplaySettings.SignificantDigits)); if (item is EquippableItem gear) diff --git a/Assets/Scripts/UI/SchematicDisplay.cs b/Assets/Scripts/UI/SchematicDisplay.cs index dd8d9000c..a026193fb 100644 --- a/Assets/Scripts/UI/SchematicDisplay.cs +++ b/Assets/Scripts/UI/SchematicDisplay.cs @@ -142,8 +142,9 @@ public class SchematicDisplay : MonoBehaviour .ToArray(); foreach (var x in _schematicItems) { - x.ListElement.Icon.sprite = Settings.ItemIcons[(int) (entity.Hardpoints[x.Item.Position.x, x.Item.Position.y]?.Type ?? HardpointType.Tool)]; - x.ListElement.Label.text = x.Item.EquippableItem.Name; + if(x.Item.Data is WeaponItemData weaponItemData) + x.ListElement.ShowWeapon(weaponItemData); + //x.ListElement.Label.text = x.Item.EquippableItem.Name; if (!_enemy) { x.ListElement.InfiniteAmmoIcon.gameObject.SetActive(x.Weapon.WeaponData.AmmoType == Guid.Empty); diff --git a/Assets/Scripts/UI/SchematicListElement.cs b/Assets/Scripts/UI/SchematicListElement.cs index 8b28e0a61..8b6829379 100644 --- a/Assets/Scripts/UI/SchematicListElement.cs +++ b/Assets/Scripts/UI/SchematicListElement.cs @@ -6,12 +6,46 @@ using UnityEngine.UI; public class SchematicListElement : MonoBehaviour { - public Image Icon; - public TextMeshProUGUI Label; + public GameSettings Settings; + public Prototype IconPrototype; public TextMeshProUGUI DurabilityLabel; public TextMeshProUGUI RangeLabel; public TextMeshProUGUI AmmoLabel; public Image InfiniteAmmoIcon; public RectTransform CooldownFill; public RectTransform HeatFill; + + private List _iconInstances = new List(); + + public void ShowWeapon(WeaponItemData weapon) + { + foreach(var prototype in _iconInstances) prototype.ReturnToPool(); + _iconInstances.Clear(); + + var caliberIcon = IconPrototype.Instantiate(); + _iconInstances.Add(caliberIcon.GetComponent()); + caliberIcon.sprite = Settings.GetIcon(weapon.WeaponCaliber); + + var rangeIcon = IconPrototype.Instantiate(); + _iconInstances.Add(rangeIcon.GetComponent()); + rangeIcon.sprite = Settings.GetIcon(weapon.WeaponRange); + + var typeIcon = IconPrototype.Instantiate(); + _iconInstances.Add(typeIcon.GetComponent()); + typeIcon.sprite = Settings.GetIcon(weapon.WeaponType); + + foreach (var sprite in Settings.GetIcons(weapon.WeaponFireTypes)) + { + var fireTypeIcon = IconPrototype.Instantiate(); + _iconInstances.Add(fireTypeIcon.GetComponent()); + fireTypeIcon.sprite = sprite; + } + + foreach (var sprite in Settings.GetIcons(weapon.WeaponModifiers)) + { + var modifierIcon = IconPrototype.Instantiate(); + _iconInstances.Add(modifierIcon.GetComponent()); + modifierIcon.sprite = sprite; + } + } } diff --git a/Assets/Scripts/UI/SectorMap.cs b/Assets/Scripts/UI/SectorMap.cs index 67640b3b0..841c4551f 100644 --- a/Assets/Scripts/UI/SectorMap.cs +++ b/Assets/Scripts/UI/SectorMap.cs @@ -36,8 +36,8 @@ public class SectorMap : MonoBehaviour public float IconBackgroundSize = 3; public float LabelDistance = .4f; - private Dictionary _factionMaterials = - new Dictionary(); + private Dictionary _factionMaterials = + new Dictionary(); public void Start() { diff --git a/Assets/Scripts/UI/TradeMenu.cs b/Assets/Scripts/UI/TradeMenu.cs index 70b0f2102..5aedc2076 100644 --- a/Assets/Scripts/UI/TradeMenu.cs +++ b/Assets/Scripts/UI/TradeMenu.cs @@ -30,15 +30,26 @@ public class TradeMenu : MonoBehaviour private (ItemFilter filter, CompoundCommodityCategory type) _compoundCommodityFilter; private List<(ItemFilter filter, Type type)> _behaviorFilters = new List<(ItemFilter filter, Type type)>(); + public EquippedCargoBay Inventory { get; set; } + private void OnEnable() { _targetCargo = GameManager.DockingBay; TargetCargoLabel.text = "Docking Bay"; Properties.Context = GameManager.ItemManager; + + MinimumSizeFilter.Width.onEndEdit.RemoveAllListeners(); MinimumSizeFilter.Width.onEndEdit.AddListener(_ => Populate()); + + MinimumSizeFilter.Height.onEndEdit.RemoveAllListeners(); MinimumSizeFilter.Height.onEndEdit.AddListener(_ => Populate()); + + MaximumSizeFilter.Width.onEndEdit.RemoveAllListeners(); MaximumSizeFilter.Width.onEndEdit.AddListener(_ => Populate()); + + MaximumSizeFilter.Height.onEndEdit.RemoveAllListeners(); MaximumSizeFilter.Height.onEndEdit.AddListener(_ => Populate()); + NewFilterButton.onClick.AddListener(() => { ContextMenu.Clear(); @@ -172,18 +183,20 @@ public class TradeMenu : MonoBehaviour void Populate() { - var columns = new List<(string name, int size, Func> output, Func sortKey)>(); + var columns = new List<(string name, int size, Func<(ItemInstance item, ItemData data), Func> output, Func sortKey)>(); columns.Add(("Name", 3, - data => () => data.Name, + x => () => x.item is CraftedItemInstance craftedItemInstance ? + $"{x.data.Name}" : + x.data.Name, data => data.Name)); if(_hardpointFilter.filter==null) columns.Add(("Type", 2, - data => () => + x => () => { - if (data is SimpleCommodityData s) return Enum.GetName(typeof(SimpleCommodityCategory), s.Category); - if(data is CompoundCommodityData c) return Enum.GetName(typeof(CompoundCommodityCategory), c.Category); - if(data is EquippableItemData e) return Enum.GetName(typeof(HardpointType), e.HardpointType); + if (x.data is SimpleCommodityData s) return Enum.GetName(typeof(SimpleCommodityCategory), s.Category); + if(x.data is CompoundCommodityData c) return Enum.GetName(typeof(CompoundCommodityCategory), c.Category); + if(x.data is EquippableItemData e) return Enum.GetName(typeof(HardpointType), e.HardpointType); return "None"; }, data => @@ -196,47 +209,48 @@ public class TradeMenu : MonoBehaviour return 0; })); columns.Add(("Mass", 1, - data => () => data.Mass.SignificantDigits(3), + x => () => x.data.Mass.SignificantDigits(3), data => data.Mass)); columns.Add(("Price", 1, - data => () => data.Price.ToString("N0"), + x => () => (x.item is CraftedItemInstance craftedItemInstance ? GameManager.ItemManager.GetPrice(craftedItemInstance) : x.data.Price).ToString("N0"), data => data.Price)); columns.Add(("Size", 1, - data => () => $"{data.Shape.Width}x{data.Shape.Height}", + x => () => $"{x.data.Shape.Width}x{x.data.Shape.Height}", data => data.Shape.Width*data.Shape.Height)); - var items = GameManager.ItemManager.ItemData.GetAll().Where(i=>i.Price!=0); + var items = Inventory.Cargo.Keys + .Select(ii=>(ii, GameManager.ItemManager.GetData(ii))); if (MinimumSizeFilter.gameObject.activeSelf) items = items.Where(i => - !(MinimumSizeFilter.Width.text.Length > 0 && i.Shape.Width < int.Parse(MinimumSizeFilter.Width.text) || - MinimumSizeFilter.Height.text.Length > 0 && i.Shape.Height < int.Parse(MinimumSizeFilter.Height.text))); + !(MinimumSizeFilter.Width.text.Length > 0 && i.data.Shape.Width < int.Parse(MinimumSizeFilter.Width.text) || + MinimumSizeFilter.Height.text.Length > 0 && i.data.Shape.Height < int.Parse(MinimumSizeFilter.Height.text))); if (MaximumSizeFilter.gameObject.activeSelf) items = items.Where(i => - !(MaximumSizeFilter.Width.text.Length > 0 && i.Shape.Width > int.Parse(MaximumSizeFilter.Width.text) || - MaximumSizeFilter.Height.text.Length > 0 && i.Shape.Height > int.Parse(MaximumSizeFilter.Height.text))); + !(MaximumSizeFilter.Width.text.Length > 0 && i.data.Shape.Width > int.Parse(MaximumSizeFilter.Width.text) || + MaximumSizeFilter.Height.text.Length > 0 && i.data.Shape.Height > int.Parse(MaximumSizeFilter.Height.text))); if(_commodityFilter.filter != null) - items = items.Where(i => i is SimpleCommodityData s && s.Category == _commodityFilter.type); + items = items.Where(i => i.data is SimpleCommodityData s && s.Category == _commodityFilter.type); if(_compoundCommodityFilter.filter != null) - items = items.Where(i => i is CompoundCommodityData c && c.Category == _compoundCommodityFilter.type); + items = items.Where(i => i.data is CompoundCommodityData c && c.Category == _compoundCommodityFilter.type); if (_hardpointFilter.filter != null) - items = items.Where(i => i is EquippableItemData e && e.HardpointType == _hardpointFilter.type); + items = items.Where(i => i.data is EquippableItemData e && e.HardpointType == _hardpointFilter.type); foreach (var (_, type) in _behaviorFilters) { - items = items.Where(i => i is EquippableItemData e && e.Behaviors.Any(b => type.IsInstanceOfType(b))); + items = items.Where(i => i.data is EquippableItemData e && e.Behaviors.Any(b => type.IsInstanceOfType(b))); foreach (var field in type.GetFields().Where(f => f.GetCustomAttribute() != null)) { var fieldType = field.FieldType; if (fieldType == typeof(float)) - columns.Add((field.Name, 1, data => + columns.Add((field.Name, 1, x => { - var behavior = ((EquippableItemData) data).Behaviors.FirstOrDefault(b => type.IsInstanceOfType(b)); + var behavior = ((EquippableItemData) x.data).Behaviors.FirstOrDefault(b => type.IsInstanceOfType(b)); return () => ((float) field.GetValue(behavior)).SignificantDigits(3); }, data => { @@ -244,9 +258,9 @@ public class TradeMenu : MonoBehaviour return (float) field.GetValue(behavior); })); else if (fieldType == typeof(int)) - columns.Add((field.Name, 1, data => + columns.Add((field.Name, 1, x => { - var behavior = ((EquippableItemData) data).Behaviors.FirstOrDefault(b => type.IsInstanceOfType(b)); + var behavior = ((EquippableItemData) x.data).Behaviors.FirstOrDefault(b => type.IsInstanceOfType(b)); return () => ((int) field.GetValue(behavior)).ToString(); }, data => { @@ -255,9 +269,9 @@ public class TradeMenu : MonoBehaviour })); else if (fieldType == typeof(PerformanceStat)) { - columns.Add((field.Name, 1, data => + columns.Add((field.Name, 1, x => { - var behavior = ((EquippableItemData) data).Behaviors.FirstOrDefault(b => type.IsInstanceOfType(b)); + var behavior = ((EquippableItemData) x.data).Behaviors.FirstOrDefault(b => type.IsInstanceOfType(b)); return () => ((PerformanceStat) field.GetValue(behavior)).Max.SignificantDigits(3); }, data => { @@ -269,13 +283,13 @@ public class TradeMenu : MonoBehaviour } columns.Add(("Owned", 1, - data => () => + x => () => { - if (data is HullData) - return GameManager.DockedEntity.Children.Count(s => s.Hull.Data == data.ID && s is Ship {IsPlayerShip: true}).ToString(); - if(data is SimpleCommodityData) - return (_targetCargo.ItemsOfType.ContainsKey(data.ID) ? _targetCargo.ItemsOfType[data.ID].Cast().Sum(s=>s.Quantity) : 0).ToString(); - return (_targetCargo.ItemsOfType.ContainsKey(data.ID) ? _targetCargo.ItemsOfType[data.ID].Count : 0).ToString(); + if (x.data is HullData) + return GameManager.DockedEntity.Children.Count(s => s.Hull.Data == x.data.ID && s is Ship {IsPlayerShip: true}).ToString(); + if(x.data is SimpleCommodityData) + return (_targetCargo.ItemsOfType.ContainsKey(x.data.ID) ? _targetCargo.ItemsOfType[x.data.ID].Cast().Sum(s=>s.Quantity) : 0).ToString(); + return (_targetCargo.ItemsOfType.ContainsKey(x.data.ID) ? _targetCargo.ItemsOfType[x.data.ID].Count : 0).ToString(); }, data => { @@ -294,24 +308,21 @@ public class TradeMenu : MonoBehaviour Columns = columns.Select(x => new SpreadsheetEntryColumn { Output = x.output(i), - SortKey = x.sortKey(i) + SortKey = x.sortKey(i.data) }).ToArray(), OnClick = () => { Properties.Clear(); - Properties.AddItemDataProperties(i); + Properties.AddItemProperties(i.item); }, OnDoubleClick = () => { - switch (i) + switch (i.item) { - case HullData h: - Buy(h); + case CraftedItemInstance c: + Buy(c); break; - case CraftedItemData c: - Buy(c,1); - break; - case SimpleCommodityData s: + case SimpleCommodity s: Buy(s, 1); break; } @@ -320,7 +331,7 @@ public class TradeMenu : MonoBehaviour }, OnRightClick = () => { - if (!(i is HullData)) + if (i.item is SimpleCommodity s) { ContextMenu.Clear(); ContextMenu.AddOption("Buy Quantity", @@ -328,19 +339,13 @@ public class TradeMenu : MonoBehaviour { int quantity = 1; Dialog.Clear(); - Dialog.Title.text = $"Buying {i.Name}"; - Dialog.AddField("Quantity", () => quantity, q => quantity = min(q, GameManager.Credits/i.Price)); + Dialog.Title.text = $"Buying {i.data.Name}"; + Dialog.AddField("Quantity", + () => quantity, + q => quantity = min(min(q, GameManager.Credits / i.data.Price), s.Quantity)); Dialog.Show(() => { - switch (i) - { - case CraftedItemData c: - Buy(c,quantity); - break; - case SimpleCommodityData s: - Buy(s, quantity); - break; - } + Buy(s,quantity); Populate(); }); @@ -352,18 +357,33 @@ public class TradeMenu : MonoBehaviour })); } - private void Buy(HullData data) + private void Buy(CraftedItemInstance item) { - if (data.Price < GameManager.Credits) + var data = GameManager.ItemManager.GetData(item); + var price = GameManager.ItemManager.GetPrice(item); + if (price < GameManager.Credits) { - var hull = GameManager.ItemManager.CreateInstance(data) as EquippableItem; - Entity entity; - if(data.HullType==HullType.Ship) - entity = new Ship(GameManager.ItemManager, GameManager.Zone, hull, GameManager.Settings.GameplaySettings.DefaultEntitySettings) {IsPlayerShip = true}; - else entity = new OrbitalEntity(GameManager.ItemManager, GameManager.Zone, hull, Guid.Empty, GameManager.Settings.GameplaySettings.DefaultEntitySettings); - entity.SetParent(GameManager.DockedEntity); + if (data is HullData hullData) + { + if (hullData.HullType != HullType.Ship) throw new ArgumentException("Attempted to buy non-ship hull from station, WTF are you doing?!"); + + var ship = new Ship(GameManager.ItemManager, GameManager.Zone, item as EquippableItem, GameManager.NewEntitySettings) {IsPlayerShip = true}; + ship.SetParent(GameManager.DockedEntity); - GameManager.Credits -= data.Price; + GameManager.Credits -= data.Price; + } + else if (Inventory.TryTransferItem(_targetCargo, item)) + { + GameManager.Credits -= price; + } + else + { + Dialog.Clear(); + Dialog.Title.text = "Unable to buy: Insufficient Cargo Space!"; + Dialog.Show(); + Dialog.MoveToCursor(); + return; + } } else { @@ -371,41 +391,13 @@ public class TradeMenu : MonoBehaviour Dialog.Title.text = "Unable to buy: Insufficient Credits!"; Dialog.Show(); Dialog.MoveToCursor(); + return; } } - private void Buy(CraftedItemData data, int quantity) - { - for (int i = 0; i < quantity; i++) - { - if (data.Price < GameManager.Credits) - { - if (_targetCargo.TryStore(GameManager.ItemManager.CreateInstance(data))) - { - GameManager.Credits -= data.Price; - } - else - { - Dialog.Clear(); - Dialog.Title.text = "Unable to buy: Insufficient Cargo Space!"; - Dialog.Show(); - Dialog.MoveToCursor(); - return; - } - } - else - { - Dialog.Clear(); - Dialog.Title.text = "Unable to buy: Insufficient Credits!"; - Dialog.Show(); - Dialog.MoveToCursor(); - return; - } - } - } - - private void Buy(SimpleCommodityData data, int quantity) + private void Buy(SimpleCommodity simpleCommodity, int quantity) { + var data = GameManager.ItemManager.GetData(simpleCommodity); // Up-rounded integer division from https://stackoverflow.com/a/503201 int lots = (quantity - 1) / data.MaxStack + 1; int remaining = quantity; @@ -414,7 +406,7 @@ public class TradeMenu : MonoBehaviour int q = min(remaining, data.MaxStack); if (q * data.Price < GameManager.Credits) { - if (_targetCargo.TryStore(GameManager.ItemManager.CreateInstance(data, q))) + if (Inventory.TryTransferItem(_targetCargo, simpleCommodity, quantity)) { GameManager.Credits -= q * data.Price; remaining -= q; diff --git a/Assets/Scripts/UI/TradeMenuDebug.cs b/Assets/Scripts/UI/TradeMenuDebug.cs new file mode 100644 index 000000000..d73f2d0a7 --- /dev/null +++ b/Assets/Scripts/UI/TradeMenuDebug.cs @@ -0,0 +1,473 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using System.Runtime.Remoting.Contexts; +using TMPro; +using UnityEngine; +using UnityEngine.UI; +using Unity.Mathematics; +using static Unity.Mathematics.math; + +public class TradeMenuDebug : MonoBehaviour +{ + public ActionGameManager GameManager; + public ContextMenu ContextMenu; + public ConfirmationDialog Dialog; + public Button NewFilterButton; + public Prototype FilterPrototype; + public SizeFilter MinimumSizeFilter; + public SizeFilter MaximumSizeFilter; + public PropertiesPanel Properties; + public Spreadsheet Spreadsheet; + public TextMeshProUGUI TargetCargoLabel; + public Button FoldoutButton; + + private EquippedCargoBay _targetCargo; + private (ItemFilter filter, HardpointType type) _hardpointFilter; + private (ItemFilter filter, SimpleCommodityCategory type) _commodityFilter; + private (ItemFilter filter, CompoundCommodityCategory type) _compoundCommodityFilter; + private List<(ItemFilter filter, Type type)> _behaviorFilters = new List<(ItemFilter filter, Type type)>(); + + private void OnEnable() + { + _targetCargo = GameManager.DockingBay; + TargetCargoLabel.text = "Docking Bay"; + Properties.Context = GameManager.ItemManager; + MinimumSizeFilter.Width.onEndEdit.AddListener(_ => Populate()); + MinimumSizeFilter.Height.onEndEdit.AddListener(_ => Populate()); + MaximumSizeFilter.Width.onEndEdit.AddListener(_ => Populate()); + MaximumSizeFilter.Height.onEndEdit.AddListener(_ => Populate()); + NewFilterButton.onClick.AddListener(() => + { + ContextMenu.Clear(); + IEnumerable hardpointTypes = (HardpointType[]) Enum.GetValues(typeof(HardpointType)); + if (_hardpointFilter.filter != null) + hardpointTypes = hardpointTypes.Where(x => x != _hardpointFilter.type); + + IEnumerable commodityTypes = (SimpleCommodityCategory[]) Enum.GetValues(typeof(SimpleCommodityCategory)); + if (_commodityFilter.filter != null) + commodityTypes = commodityTypes.Where(x => x != _commodityFilter.type); + + IEnumerable compoundCommodityTypes = (CompoundCommodityCategory[]) Enum.GetValues(typeof(CompoundCommodityCategory)); + if (_compoundCommodityFilter.filter != null) + compoundCommodityTypes = compoundCommodityTypes.Where(x => x != _compoundCommodityFilter.type); + + ContextMenu.AddDropdown("Gear Type", hardpointTypes + .Select(x => (Enum.GetName(typeof(HardpointType), x), () => + { + if (_hardpointFilter.filter == null) + { + _hardpointFilter.filter = FilterPrototype.Instantiate(); + _hardpointFilter.filter.OnDisable += () => + { + _hardpointFilter.filter = null; + Populate(); + }; + } + if(_commodityFilter.filter != null) + { + _commodityFilter.filter.GetComponent().ReturnToPool(); + _commodityFilter.filter = null; + } + if(_compoundCommodityFilter.filter != null) + { + _compoundCommodityFilter.filter.GetComponent().ReturnToPool(); + _compoundCommodityFilter.filter = null; + } + + _hardpointFilter.filter.Label.text = $"Hardpoint: {Enum.GetName(typeof(HardpointType), x)}"; + _hardpointFilter.type = x; + Populate(); + }, true))); + ContextMenu.AddDropdown("Simple Commodity", commodityTypes + .Select(x => (Enum.GetName(typeof(SimpleCommodityCategory), x), () => + { + if (_commodityFilter.filter == null) + { + _commodityFilter.filter = FilterPrototype.Instantiate(); + _commodityFilter.filter.OnDisable += () => + { + _commodityFilter.filter = null; + Populate(); + }; + } + if(_hardpointFilter.filter != null) + { + _hardpointFilter.filter.GetComponent().ReturnToPool(); + _hardpointFilter.filter = null; + } + if(_compoundCommodityFilter.filter != null) + { + _compoundCommodityFilter.filter.GetComponent().ReturnToPool(); + _compoundCommodityFilter.filter = null; + } + + _commodityFilter.filter.Label.text = $"Hardpoint: {Enum.GetName(typeof(SimpleCommodityCategory), x)}"; + _commodityFilter.type = x; + Populate(); + }, true))); + ContextMenu.AddDropdown("Compound Commodity", compoundCommodityTypes + .Select(x => (Enum.GetName(typeof(CompoundCommodityCategory), x), () => + { + if (_compoundCommodityFilter.filter == null) + { + _compoundCommodityFilter.filter = FilterPrototype.Instantiate(); + _compoundCommodityFilter.filter.OnDisable += () => + { + _compoundCommodityFilter.filter = null; + Populate(); + }; + } + if(_hardpointFilter.filter != null) + { + _hardpointFilter.filter.GetComponent().ReturnToPool(); + _hardpointFilter.filter = null; + } + if(_commodityFilter.filter != null) + { + _commodityFilter.filter.GetComponent().ReturnToPool(); + _commodityFilter.filter = null; + } + + _compoundCommodityFilter.filter.Label.text = $"Hardpoint: {Enum.GetName(typeof(CompoundCommodityCategory), x)}"; + _compoundCommodityFilter.type = x; + Populate(); + }, true))); + ContextMenu.AddDropdown("Item Behavior", typeof(BehaviorData).GetAllChildClasses() + .Where(x=> x.GetCustomAttribute() != null && _behaviorFilters.All(f => f.type != x)) + .Select(x=> (x.Name.FormatTypeName(), () => + { + var matchingType = _behaviorFilters.FirstOrDefault(y => y.type.IsAssignableFrom(x) || x.IsAssignableFrom(y.type)); + if (matchingType.filter != null) matchingType.filter.DisableButton.onClick.Invoke(); + var filter = FilterPrototype.Instantiate(); + filter.Label.text = x.Name.FormatTypeName(); + filter.OnDisable += () => + { + _behaviorFilters.Remove((filter, x)); + Populate(); + }; + _behaviorFilters.Add((filter, x)); + Populate(); + }, true))); + if(!MinimumSizeFilter.gameObject.activeSelf) + ContextMenu.AddOption("Minimum Size", + () => + { + MinimumSizeFilter.gameObject.SetActive(true); + MinimumSizeFilter.OnDisable += () => Populate(); + }); + if(!MaximumSizeFilter.gameObject.activeSelf) + ContextMenu.AddOption("Maximum Size", + () => + { + MaximumSizeFilter.gameObject.SetActive(true); + MaximumSizeFilter.OnDisable += () => Populate(); + }); + ContextMenu.Show(); + }); + Populate(); + } + + void Populate() + { + var columns = new List<(string name, int size, Func> output, Func sortKey)>(); + + columns.Add(("Name", 3, + data => () => data.Name, + data => data.Name)); + if(_hardpointFilter.filter==null) + columns.Add(("Type", 2, + data => () => + { + if (data is SimpleCommodityData s) return Enum.GetName(typeof(SimpleCommodityCategory), s.Category); + if(data is CompoundCommodityData c) return Enum.GetName(typeof(CompoundCommodityCategory), c.Category); + if(data is EquippableItemData e) return Enum.GetName(typeof(HardpointType), e.HardpointType); + return "None"; + }, + data => + { + if (data is SimpleCommodityData s) return (int) s.Category; + var offset = Enum.GetValues(typeof(SimpleCommodityCategory)).Length; + if(data is CompoundCommodityData c) return (int) c.Category + offset; + offset += Enum.GetValues(typeof(CompoundCommodityCategory)).Length; + if(data is EquippableItemData e) return (int) e.HardpointType + offset; + return 0; + })); + columns.Add(("Mass", 1, + data => () => data.Mass.SignificantDigits(3), + data => data.Mass)); + columns.Add(("Price", 1, + data => () => data.Price.ToString("N0"), + data => data.Price)); + columns.Add(("Size", 1, + data => () => $"{data.Shape.Width}x{data.Shape.Height}", + data => data.Shape.Width*data.Shape.Height)); + + var items = GameManager.ItemManager.ItemData.GetAll().Where(i=>i.Price!=0); + + if (MinimumSizeFilter.gameObject.activeSelf) + items = items.Where(i => + !(MinimumSizeFilter.Width.text.Length > 0 && i.Shape.Width < int.Parse(MinimumSizeFilter.Width.text) || + MinimumSizeFilter.Height.text.Length > 0 && i.Shape.Height < int.Parse(MinimumSizeFilter.Height.text))); + + if (MaximumSizeFilter.gameObject.activeSelf) + items = items.Where(i => + !(MaximumSizeFilter.Width.text.Length > 0 && i.Shape.Width > int.Parse(MaximumSizeFilter.Width.text) || + MaximumSizeFilter.Height.text.Length > 0 && i.Shape.Height > int.Parse(MaximumSizeFilter.Height.text))); + + if(_commodityFilter.filter != null) + items = items.Where(i => i is SimpleCommodityData s && s.Category == _commodityFilter.type); + + if(_compoundCommodityFilter.filter != null) + items = items.Where(i => i is CompoundCommodityData c && c.Category == _compoundCommodityFilter.type); + + if (_hardpointFilter.filter != null) + items = items.Where(i => i is EquippableItemData e && e.HardpointType == _hardpointFilter.type); + + foreach (var (_, type) in _behaviorFilters) + { + items = items.Where(i => i is EquippableItemData e && e.Behaviors.Any(b => type.IsInstanceOfType(b))); + + foreach (var field in type.GetFields().Where(f => f.GetCustomAttribute() != null)) + { + var fieldType = field.FieldType; + if (fieldType == typeof(float)) + columns.Add((field.Name, 1, data => + { + var behavior = ((EquippableItemData) data).Behaviors.FirstOrDefault(b => type.IsInstanceOfType(b)); + return () => ((float) field.GetValue(behavior)).SignificantDigits(3); + }, data => + { + var behavior = ((EquippableItemData) data).Behaviors.FirstOrDefault(b => type.IsInstanceOfType(b)); + return (float) field.GetValue(behavior); + })); + else if (fieldType == typeof(int)) + columns.Add((field.Name, 1, data => + { + var behavior = ((EquippableItemData) data).Behaviors.FirstOrDefault(b => type.IsInstanceOfType(b)); + return () => ((int) field.GetValue(behavior)).ToString(); + }, data => + { + var behavior = ((EquippableItemData) data).Behaviors.FirstOrDefault(b => type.IsInstanceOfType(b)); + return (int) field.GetValue(behavior); + })); + else if (fieldType == typeof(PerformanceStat)) + { + columns.Add((field.Name, 1, data => + { + var behavior = ((EquippableItemData) data).Behaviors.FirstOrDefault(b => type.IsInstanceOfType(b)); + return () => ((PerformanceStat) field.GetValue(behavior)).Max.SignificantDigits(3); + }, data => + { + var behavior = ((EquippableItemData) data).Behaviors.FirstOrDefault(b => type.IsInstanceOfType(b)); + return ((PerformanceStat) field.GetValue(behavior)).Max; + })); + } + } + } + + columns.Add(("Owned", 1, + data => () => + { + if (data is HullData) + return GameManager.DockedEntity.Children.Count(s => s.Hull.Data == data.ID && s is Ship {IsPlayerShip: true}).ToString(); + if(data is SimpleCommodityData) + return (_targetCargo.ItemsOfType.ContainsKey(data.ID) ? _targetCargo.ItemsOfType[data.ID].Cast().Sum(s=>s.Quantity) : 0).ToString(); + return (_targetCargo.ItemsOfType.ContainsKey(data.ID) ? _targetCargo.ItemsOfType[data.ID].Count : 0).ToString(); + }, + data => + { + if (data is HullData) + return GameManager.DockedEntity.Children.Count(s => s.Hull.Data == data.ID && s is Ship {IsPlayerShip: true}); + if(data is SimpleCommodityData) + return _targetCargo.ItemsOfType.ContainsKey(data.ID) ? _targetCargo.ItemsOfType[data.ID].Cast().Sum(s=>s.Quantity) : 0; + return _targetCargo.ItemsOfType.ContainsKey(data.ID) ? _targetCargo.ItemsOfType[data.ID].Count : 0; + })); + + Spreadsheet.ShowData( + columns.Select(x => x.name).ToArray(), + columns.Select(x => x.size).ToArray(), + items.Select(i => new SpreadsheetEntryRow + { + Columns = columns.Select(x => new SpreadsheetEntryColumn + { + Output = x.output(i), + SortKey = x.sortKey(i) + }).ToArray(), + OnClick = () => + { + Properties.Clear(); + Properties.AddItemDataProperties(i); + }, + OnDoubleClick = () => + { + switch (i) + { + case HullData h: + Buy(h); + break; + case CraftedItemData c: + Buy(c,1); + break; + case SimpleCommodityData s: + Buy(s, 1); + break; + } + + Populate(); + }, + OnRightClick = () => + { + if (!(i is HullData)) + { + ContextMenu.Clear(); + ContextMenu.AddOption("Buy Quantity", + () => + { + int quantity = 1; + Dialog.Clear(); + Dialog.Title.text = $"Buying {i.Name}"; + Dialog.AddField("Quantity", () => quantity, q => quantity = min(q, GameManager.Credits/i.Price)); + Dialog.Show(() => + { + switch (i) + { + case CraftedItemData c: + Buy(c,quantity); + break; + case SimpleCommodityData s: + Buy(s, quantity); + break; + } + + Populate(); + }); + Dialog.MoveToCursor(); + }); + ContextMenu.Show(); + } + } + })); + } + + private void Buy(HullData data) + { + if (data.Price < GameManager.Credits) + { + var hull = GameManager.ItemManager.CreateInstance(data) as EquippableItem; + Entity entity; + if(data.HullType==HullType.Ship) + entity = new Ship(GameManager.ItemManager, GameManager.Zone, hull, GameManager.Settings.GameplaySettings.DefaultEntitySettings) {IsPlayerShip = true}; + else entity = new OrbitalEntity(GameManager.ItemManager, GameManager.Zone, hull, Guid.Empty, GameManager.Settings.GameplaySettings.DefaultEntitySettings); + entity.SetParent(GameManager.DockedEntity); + + GameManager.Credits -= data.Price; + } + else + { + Dialog.Clear(); + Dialog.Title.text = "Unable to buy: Insufficient Credits!"; + Dialog.Show(); + Dialog.MoveToCursor(); + } + } + + private void Buy(CraftedItemData data, int quantity) + { + for (int i = 0; i < quantity; i++) + { + if (data.Price < GameManager.Credits) + { + if (_targetCargo.TryStore(GameManager.ItemManager.CreateInstance(data))) + { + GameManager.Credits -= data.Price; + } + else + { + Dialog.Clear(); + Dialog.Title.text = "Unable to buy: Insufficient Cargo Space!"; + Dialog.Show(); + Dialog.MoveToCursor(); + return; + } + } + else + { + Dialog.Clear(); + Dialog.Title.text = "Unable to buy: Insufficient Credits!"; + Dialog.Show(); + Dialog.MoveToCursor(); + return; + } + } + } + + private void Buy(SimpleCommodityData data, int quantity) + { + // Up-rounded integer division from https://stackoverflow.com/a/503201 + int lots = (quantity - 1) / data.MaxStack + 1; + int remaining = quantity; + for (int i = 0; i < lots; i++) + { + int q = min(remaining, data.MaxStack); + if (q * data.Price < GameManager.Credits) + { + if (_targetCargo.TryStore(GameManager.ItemManager.CreateInstance(data, q))) + { + GameManager.Credits -= q * data.Price; + remaining -= q; + } + else + { + Dialog.Clear(); + Dialog.Title.text = "Unable to buy: Insufficient Cargo Space!"; + Dialog.Show(); + Dialog.MoveToCursor(); + return; + } + } + else + { + Dialog.Clear(); + Dialog.Title.text = "Unable to buy: Insufficient Credits!"; + Dialog.Show(); + Dialog.MoveToCursor(); + return; + } + + + } + } + + void Start() + { + FoldoutButton.onClick.AddListener(() => + { + ContextMenu.Clear(); + if(_targetCargo != GameManager.DockingBay) + ContextMenu.AddOption("Docking Bay", + () => + { + _targetCargo = GameManager.DockingBay; + TargetCargoLabel.text = "Docking Bay"; + }); + foreach (var ship in GameManager.CurrentEntity.Parent.Children.Where(e => e is Ship {IsPlayerShip: true})) + { + foreach (var bay in ship.CargoBays.Select((bay, index) => (bay, index))) + ContextMenu.AddOption($"{ship.Name} Bay {bay.index}", + () => + { + _targetCargo = bay.bay; + TargetCargoLabel.text = $"{ship.Name} Bay {bay.index}"; + }); + } + }); + } + + void Update() + { + + } +} diff --git a/Assets/Scripts/UI/TradeMenuDebug.cs.meta b/Assets/Scripts/UI/TradeMenuDebug.cs.meta new file mode 100644 index 000000000..f5bd7bf73 --- /dev/null +++ b/Assets/Scripts/UI/TradeMenuDebug.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 6eed32eb39c04a31b81e8a55685b222c +timeCreated: 1616191013 \ No newline at end of file diff --git a/GameData/AetherDB.msgpack b/GameData/AetherDB.msgpack index 8e686316b..a21e0f250 100644 --- a/GameData/AetherDB.msgpack +++ b/GameData/AetherDB.msgpack @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:5509ded28940d4741b3a6c5811b3af746c1e231302ce486f14095d79ba9e2e09 -size 67563 +oid sha256:4d5e69f20ef9532a0b9a29a6fb7d08ce20943d3e82bb27ce751ebdb06ededf07 +size 68289 diff --git a/GameData/PlayerSettings.msgpack b/GameData/PlayerSettings.msgpack index d1c7c411a..d96ad2dd4 100644 --- a/GameData/PlayerSettings.msgpack +++ b/GameData/PlayerSettings.msgpack @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:c261e749c7fa3969bf785293ee6cc0cf9a3cb2b999aaa7d75e0ce6a5ec64bf0a -size 93251 +oid sha256:0dd709305e5cd8fee63759672728e92a08b064061784821ba6eddebbca2af1d6 +size 28117 diff --git a/RethinkDB Queries.txt b/RethinkDB Queries.txt index d4c33bf85..6e111f1fc 100644 --- a/RethinkDB Queries.txt +++ b/RethinkDB Queries.txt @@ -1,4 +1,4 @@ -Empty Galaxy +Reset Galaxy r.db('Aetheria').table('Galaxy').filter({$type:'ZoneData'}).update({visited: false}) r.db('Aetheria').table('Galaxy').filter({$type:'ZoneData'}).update({orbits: [ ]}) r.db('Aetheria').table('Galaxy').filter({$type:'ZoneData'}).update({planets: [ ]}) @@ -20,4 +20,12 @@ r.db('Aetheria').table('Galaxy').filter({$type:'ZoneData'}).filter(function (zon }) Find orphaned blueprints -r.db('Aetheria').table('Items').filter({$type:'BlueprintData'}).filter({item:'00000000-0000-0000-0000-000000000000'}) \ No newline at end of file +r.db('Aetheria').table('Items').filter({$type:'BlueprintData'}).filter({item:'00000000-0000-0000-0000-000000000000'}) + +Update type name for all items with launcher, ballistic or energy hardpoint types +r.db('Aetheria').table('Items').filter( + r.row("hardpointType").eq(9).or(r.row("hardpointType").eq(10)).or(r.row("hardpointType").eq(11)) +).update({$type:'WeaponItemData'}) + +// Set required enum fields in weapons +r.db('Aetheria').table('Items').filter({$type:"WeaponItemData"}).update({range:0, caliber:0, weaponType:0, fireTypes:0, modifiers:0}) \ No newline at end of file From 7132aeb35350f0add30f08581c5c861612dd02fb Mon Sep 17 00:00:00 2001 From: Defirm <32074047+voivoontos@users.noreply.github.com> Date: Sat, 20 Mar 2021 12:43:57 +0100 Subject: [PATCH 07/51] Defrim create work units creating audio unit/event unit separate from default units. --- .../{copy_Unit.wwu => SFX_Defirm_Unit.wwu} | 2 +- ...omy_WwiseProject.crossover.validationcache | 30 + ...a-Economy_WwiseProject.crossover.wsettings | 3 +- .../Aetheria-Economy_WwiseProject.wproj | 852 +++++++++++++++++- .../Events/SFX_Defirm_unit.wwu | 6 + 5 files changed, 862 insertions(+), 31 deletions(-) rename Aetheria-Economy_WwiseProject/Actor-Mixer Hierarchy/{copy_Unit.wwu => SFX_Defirm_Unit.wwu} (63%) create mode 100644 Aetheria-Economy_WwiseProject/Events/SFX_Defirm_unit.wwu diff --git a/Aetheria-Economy_WwiseProject/Actor-Mixer Hierarchy/copy_Unit.wwu b/Aetheria-Economy_WwiseProject/Actor-Mixer Hierarchy/SFX_Defirm_Unit.wwu similarity index 63% rename from Aetheria-Economy_WwiseProject/Actor-Mixer Hierarchy/copy_Unit.wwu rename to Aetheria-Economy_WwiseProject/Actor-Mixer Hierarchy/SFX_Defirm_Unit.wwu index 18804fb2e..db621271f 100644 --- a/Aetheria-Economy_WwiseProject/Actor-Mixer Hierarchy/copy_Unit.wwu +++ b/Aetheria-Economy_WwiseProject/Actor-Mixer Hierarchy/SFX_Defirm_Unit.wwu @@ -1,6 +1,6 @@ - + diff --git a/Aetheria-Economy_WwiseProject/Aetheria-Economy_WwiseProject.crossover.validationcache b/Aetheria-Economy_WwiseProject/Aetheria-Economy_WwiseProject.crossover.validationcache index afe054a4c..887bd1ce0 100644 --- a/Aetheria-Economy_WwiseProject/Aetheria-Economy_WwiseProject.crossover.validationcache +++ b/Aetheria-Economy_WwiseProject/Aetheria-Economy_WwiseProject.crossover.validationcache @@ -1,5 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Aetheria-Economy_WwiseProject/Aetheria-Economy_WwiseProject.crossover.wsettings b/Aetheria-Economy_WwiseProject/Aetheria-Economy_WwiseProject.crossover.wsettings index 58db3690d..7ef4daf86 100644 --- a/Aetheria-Economy_WwiseProject/Aetheria-Economy_WwiseProject.crossover.wsettings +++ b/Aetheria-Economy_WwiseProject/Aetheria-Economy_WwiseProject.crossover.wsettings @@ -37,9 +37,10 @@ + - + diff --git a/Aetheria-Economy_WwiseProject/Aetheria-Economy_WwiseProject.wproj b/Aetheria-Economy_WwiseProject/Aetheria-Economy_WwiseProject.wproj index 6f7d353d0..23c937450 100644 --- a/Aetheria-Economy_WwiseProject/Aetheria-Economy_WwiseProject.wproj +++ b/Aetheria-Economy_WwiseProject/Aetheria-Economy_WwiseProject.wproj @@ -25,6 +25,7 @@ GeneratedSoundBanks\Windows\ + @@ -60,35 +61,6 @@ - - @@ -7982,6 +7954,50 @@ NwY9mvzqtU8dSxuo2DvaXKDPbTrE4PkjkryePUZjR1PfS/2sqcV97y4gFsU+qUwx + + + + + 0 + + + + + 0 + + + + + True + + + + + 0 + + + + + 0 + + + + + False + + + + + 10 + + + + + 0 + + + + @@ -8297,6 +8313,225 @@ NwY9mvzqtU8dSxuo2DvaXKDPbTrE4PkjkryePUZjR1PfS/2sqcV97y4gFsU+qUwx + + + + + 100 + + + + + 0 + + + + + 0 + + + + + True + + + + + 0 + + + + + 0 + + + + + 0 + + + + + True + + + + + 1 + + + + + 1000 + + + + + 0 + + + + + 0 + + + + + True + + + + + 40 + + + + + 0 + + + + + 0 + + + + + 18000 + + + + + 0 + + + + + 0 + + + + + 1 + + + + + True + + + + + 10 + + + + + 0 + + + + + 100 + + + + + -40 + + + + + True + + + + + 0 + + + + + 0 + + + + + 0 + + + + + True + + + + + 0 + + + + + True + + + + + 40 + + + + + 18000 + + + + + -96 + + + + + -20 + + + + + 20 + + + + + 0 + + + + + 0 + + + + + False + + + + + True + + + + + 100 + + + + + 0 + + + + @@ -9403,6 +9638,190 @@ NwY9mvzqtU8dSxuo2DvaXKDPbTrE4PkjkryePUZjR1PfS/2sqcV97y4gFsU+qUwx + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + -96.3 + + + + + 0 + + + + + 0 + + + + + False + + + + + 4 + + + + + 0 + + + + + 100 + + + + + 0 + + + + + 0 + + + + + -75 + + + + + False + + + + + False + + + + + 6 + + + + + 0 + + + + + 0 + + + + + True + + + + + 100 + + + + + True + + + + + 0 + + + + + -96.3 + + + + + 0 + + + + + -60 + + + + + -96.3 + + + + + False + + + + + 0 + + + + + 0 + + + + + 1024 + + + + + 48000 + + + + + 48000 + + + + + 48000 + + + + + 180 + + + + + 0 + + + + @@ -10069,6 +10488,100 @@ NwY9mvzqtU8dSxuo2DvaXKDPbTrE4PkjkryePUZjR1PfS/2sqcV97y4gFsU+qUwx + + + + + 250 + + + + + 100 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + -96 + + + + + 3 + + + + + True + + + + + 1000 + + + + + 0 + + + + + 0 + + + + + False + + + + + 0.5 + + + + + 0 + + + + + 2400 + + + + + 345 + + + + + 0 + + + + + 0 + + + + @@ -11593,6 +12106,173 @@ NwY9mvzqtU8dSxuo2DvaXKDPbTrE4PkjkryePUZjR1PfS/2sqcV97y4gFsU+qUwx + + + + + 0 + + + + + 0 + + + + + 1 + + + + + 0 + + + + + 1 + + + + + 1 + + + + + 0 + + + + + -12 + + + + + 1 + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 6 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + True + + + + + False + + + + @@ -11696,6 +12376,120 @@ NwY9mvzqtU8dSxuo2DvaXKDPbTrE4PkjkryePUZjR1PfS/2sqcV97y4gFsU+qUwx + + + + + False + + + + + 0 + + + + + 0 + + + + + 1.4 + + + + + -6 + + + + + True + + + + + 0 + + + + + 0 + + + + + False + + + + + True + + + + + 0.5 + + + + + 10000 + + + + + -6 + + + + + 7 + + + + + 1 + + + + + 1 + + + + + 7.25 + + + + + 2.75 + + + + + 3.25 + + + + + 4.25 + + + + + 4.75 + + + + + 3.75 + + + + diff --git a/Aetheria-Economy_WwiseProject/Events/SFX_Defirm_unit.wwu b/Aetheria-Economy_WwiseProject/Events/SFX_Defirm_unit.wwu new file mode 100644 index 000000000..766e91a9c --- /dev/null +++ b/Aetheria-Economy_WwiseProject/Events/SFX_Defirm_unit.wwu @@ -0,0 +1,6 @@ + + + + + + From c0ea26e55bdc23cda365362a0c2c2acbbc068688 Mon Sep 17 00:00:00 2001 From: Defirm <32074047+voivoontos@users.noreply.github.com> Date: Sat, 20 Mar 2021 17:03:09 +0100 Subject: [PATCH 08/51] defirm03 moving sfx and events of spaceship/wormhole to Defirm work unit --- .../Default Work Unit.wwu | 2825 ---------------- .../Actor-Mixer Hierarchy/SFX_Defirm_Unit.wwu | 2830 ++++++++++++++++- ...omy_WwiseProject.crossover.validationcache | 6 +- ...a-Economy_WwiseProject.crossover.wsettings | 13 +- .../Events/Default Work Unit.wwu | 33 - .../Events/SFX_Defirm_unit.wwu | 39 +- .../Events/Ship Audio.wwu | 28 +- .../SoundBanks/Default Work Unit.wwu | 8 +- 8 files changed, 2898 insertions(+), 2884 deletions(-) diff --git a/Aetheria-Economy_WwiseProject/Actor-Mixer Hierarchy/Default Work Unit.wwu b/Aetheria-Economy_WwiseProject/Actor-Mixer Hierarchy/Default Work Unit.wwu index e49771045..8f5a08131 100644 --- a/Aetheria-Economy_WwiseProject/Actor-Mixer Hierarchy/Default Work Unit.wwu +++ b/Aetheria-Economy_WwiseProject/Actor-Mixer Hierarchy/Default Work Unit.wwu @@ -201,2831 +201,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - 0 - 5 - Log3 - - - 2000 - -200 - 37 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 2.8 - - - - - - - - - - - - - - - 0 - -200 - 5 - - - 1 - 0 - 37 - - - - - - - - - - - - - - - - - - - - - -24.4 - - - - - - - - - - - - - - - 0 - -0.36655 - 21 - - - 1 - -200 - 53 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - 1000 - 5 - - - 100 - 1288.95283 - 37 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - -96 - 21 - - - 1 - 0 - 53 - - - - - - - - SFX - - - - - - - - - - - -4.4 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - 1000 - 5 - - - 100 - 1156.09239 - 37 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - -96 - 21 - - - 1 - 0 - 53 - - - - - - - - SFX - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - 1000 - 5 - - - 100 - 1156.09239 - 37 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - -96 - 21 - - - 1 - 0 - 53 - - - - - - - - SFX - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - 1000 - 5 - - - 100 - 1156.09239 - 37 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - -96 - 21 - - - 1 - 0 - 53 - - - - - - - - SFX - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - -6.69195 - 21 - - - 1 - -200 - 53 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - 0 - 5 - - - 71.81706 - 0.12559 - 0 - - - 100 - 0.23097 - 37 - - - - - - - - - - - - - - - - - - - - - 0 - 0.641 - 5 - - - 1 - 0.23866 - 37 - - - - - - - - - - - - - - - - - - - - - 0 - 0.174 - 5 - - - 1 - 0 - 37 - - - - - - - - SFX - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 3.6 - - - - - - - - - - - - - - - 0 - -6.46329 - 21 - - - 1 - -11.55271 - 53 - - - - - - - - - - - - - - - - - - - - - - SFX - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -3.8 - - - - - - - - - - - - - - - - - - - - 0 - -0.07208 - 21 - - - 1 - -200 - 53 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - SFX - Flamethrower SOUND.wav - - - - - - - - - - - - - - - - 2.8 - - - - - - - - - - - - - - - 0 - -200 - 5 - - - 1 - 0 - 37 - - - - - - - - - - - - - - - - - - - - - -24.4 - - - - - - - - - - - - - - - 0 - -0.21807 - 21 - - - 1 - -200 - 53 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - 1000 - 5 - - - 100 - 1288.95283 - 37 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - -96 - 21 - - - 1 - 0 - 53 - - - - - - - - SFX - - - - - - - - - - - -4.4 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - 1000 - 5 - - - 100 - 1156.09239 - 37 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - -96 - 21 - - - 1 - 0 - 53 - - - - - - - - SFX - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - 1000 - 5 - - - 100 - 1156.09239 - 37 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - -96 - 21 - - - 1 - 0 - 53 - - - - - - - - SFX - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - 1000 - 5 - - - 100 - 1156.09239 - 37 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - -96 - 21 - - - 1 - 0 - 53 - - - - - - - - SFX - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - -6.38715 - 21 - - - 1 - -200 - 53 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - 0 - 5 - - - 71.81706 - 0.12559 - 0 - - - 100 - 0.23097 - 37 - - - - - - - - - SFX - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 3.6 - - - - - - - - - - - - - - - 0 - -5.70471 - 21 - - - 1 - -22.60668 - 53 - - - - - - - - - - - - - - - - - - - - - - - - SFX - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -3.8 - - - - - - - - - - - - - - - 0 - -2.57085 - 21 - - - 1 - -200 - 53 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - SFX - Flamethrower SOUND.wav - - - - - - - - - - - - - - - - 2.8 - - - - - - - - - - - - - - - 0 - -200 - 5 - - - 1 - 0 - 37 - - - - - - - - - - - - - - - - - - - - - -24.4 - - - - - - - - - - - - - - - 0 - 0.36655 - 21 - - - 1 - -200 - 53 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - 1000 - 5 - - - 100 - 1288.95283 - 37 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - -96 - 21 - - - 1 - 0 - 53 - - - - - - - - SFX - - - - - - - - - - - -4.4 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - 1000 - 5 - - - 100 - 1156.09239 - 37 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - -96 - 21 - - - 1 - 0 - 53 - - - - - - - - SFX - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - 1000 - 5 - - - 100 - 1156.09239 - 37 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - -96 - 21 - - - 1 - 0 - 53 - - - - - - - - SFX - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - 1000 - 5 - - - 100 - 1156.09239 - 37 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - -96 - 21 - - - 1 - 0 - 53 - - - - - - - - SFX - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - -6.38715 - 21 - - - 1 - -200 - 53 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - 0 - 5 - - - 71.81706 - 0.12559 - 0 - - - 100 - 0.23097 - 37 - - - - - - - - - SFX - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 3.6 - - - - - - - - - - - - - - - 0 - -6.38715 - 21 - - - 1 - -200 - 53 - - - - - - - - - - - - - - - - - - - - - - - SFX - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -3.8 - - - - - - - - - - - - - - - 0 - 0.07208 - 21 - - - 1 - -200 - 53 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - SFX - Flamethrower SOUND.wav - - - - - - - - - - - - - - - - - - - - - - - 0.6 - - - - - - - - - - - - - - - 0 - -12.14909 - 5 - - - 1 - -5 - 0 - - - 10 - 0 - 37 - - - - - - - - - - - - - - - - - 0 - 5.93877 - 21 - - - 1 - -200 - 53 - - - - - - - - - - - - - - - - - - - - - - - - 0 - 0 - 5 - - - 1000 - -200 - 37 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - 0 - 5 - - - 1 - 100 - 37 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - 115.44484 - 5 - - - 1 - 20 - 37 - - - - - - - - - - - - - - - - - - - - - - - 0 - 93.44537 - 5 - - - 0.19461 - 86.25361 - 0 - - - 0.35774 - 44.70588 - 0 - - - 0.67468 - 44.65156 - 0 - - - 0.69242 - 3.37148 - 0 - - - 1 - 4.20168 - 37 - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - -96 - 21 - - - 1 - 0 - 53 - - - - - - - - - - - - - - - - - - - - - - 0 - 129.076 - 5 - - - 1 - 0 - 37 - - - - - - - - - - SoundSeed Grain - SFX_Spcshp_reactor_extended_V2.0.wav - - - - - - SFX - - - - - - - - - - - - - - - -15 - - - - - - - - - - - - - - - 0 - -4.88957 - 5 - - - 0.49826 - -200 - 0 - - - 1 - -200 - 37 - - - - - - - - - - - - - - - - - - SFX - Aetheia_Overheat_Alarm.wav - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - SFX - Aetheria_Wormhole_travel_jumpin.wav - - - - - - - - - - - - - - - - - - - - - - - - - - - SFX - Aetheria_Wormhole_travel_jumpout.wav - - - - - - - - - - - - - - - - - - - - - - - - 7.9 - - - - SFX - Aetheria_Wormhole_travel.wav - - - - - - - - - - - diff --git a/Aetheria-Economy_WwiseProject/Actor-Mixer Hierarchy/SFX_Defirm_Unit.wwu b/Aetheria-Economy_WwiseProject/Actor-Mixer Hierarchy/SFX_Defirm_Unit.wwu index db621271f..9907db08f 100644 --- a/Aetheria-Economy_WwiseProject/Actor-Mixer Hierarchy/SFX_Defirm_Unit.wwu +++ b/Aetheria-Economy_WwiseProject/Actor-Mixer Hierarchy/SFX_Defirm_Unit.wwu @@ -1,6 +1,2834 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 0 + 5 + Log3 + + + 2000 + -200 + 37 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2.8 + + + + + + + + + + + + + + + 0 + -200 + 5 + + + 1 + 0 + 37 + + + + + + + + + + + + + + + + + + + + + -24.4 + + + + + + + + + + + + + + + 0 + -0.36655 + 21 + + + 1 + -200 + 53 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 1000 + 5 + + + 100 + 1288.95283 + 37 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + -96 + 21 + + + 1 + 0 + 53 + + + + + + + + SFX + + + + + + + + + + + -4.4 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 1000 + 5 + + + 100 + 1156.09239 + 37 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + -96 + 21 + + + 1 + 0 + 53 + + + + + + + + SFX + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 1000 + 5 + + + 100 + 1156.09239 + 37 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + -96 + 21 + + + 1 + 0 + 53 + + + + + + + + SFX + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 1000 + 5 + + + 100 + 1156.09239 + 37 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + -96 + 21 + + + 1 + 0 + 53 + + + + + + + + SFX + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + -6.69195 + 21 + + + 1 + -200 + 53 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 0 + 5 + + + 71.81706 + 0.12559 + 0 + + + 100 + 0.23097 + 37 + + + + + + + + + + + + + + + + + + + + + 0 + 0.641 + 5 + + + 1 + 0.23866 + 37 + + + + + + + + + + + + + + + + + + + + + 0 + 0.174 + 5 + + + 1 + 0 + 37 + + + + + + + + SFX + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 3.6 + + + + + + + + + + + + + + + 0 + -6.46329 + 21 + + + 1 + -11.55271 + 53 + + + + + + + + + + + + + + + + + + + + + + SFX + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -3.8 + + + + + + + + + + + + + + + + + + + + 0 + -0.07208 + 21 + + + 1 + -200 + 53 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SFX + Flamethrower SOUND.wav + + + + + + + + + + + + + + + + 2.8 + + + + + + + + + + + + + + + 0 + -200 + 5 + + + 1 + 0 + 37 + + + + + + + + + + + + + + + + + + + + + -24.4 + + + + + + + + + + + + + + + 0 + -0.21807 + 21 + + + 1 + -200 + 53 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 1000 + 5 + + + 100 + 1288.95283 + 37 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + -96 + 21 + + + 1 + 0 + 53 + + + + + + + + SFX + + + + + + + + + + + -4.4 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 1000 + 5 + + + 100 + 1156.09239 + 37 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + -96 + 21 + + + 1 + 0 + 53 + + + + + + + + SFX + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 1000 + 5 + + + 100 + 1156.09239 + 37 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + -96 + 21 + + + 1 + 0 + 53 + + + + + + + + SFX + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 1000 + 5 + + + 100 + 1156.09239 + 37 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + -96 + 21 + + + 1 + 0 + 53 + + + + + + + + SFX + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + -6.38715 + 21 + + + 1 + -200 + 53 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 0 + 5 + + + 71.81706 + 0.12559 + 0 + + + 100 + 0.23097 + 37 + + + + + + + + + SFX + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 3.6 + + + + + + + + + + + + + + + 0 + -5.70471 + 21 + + + 1 + -22.60668 + 53 + + + + + + + + + + + + + + + + + + + + + + + + SFX + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -3.8 + + + + + + + + + + + + + + + 0 + -2.57085 + 21 + + + 1 + -200 + 53 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SFX + Flamethrower SOUND.wav + + + + + + + + + + + + + + + + 2.8 + + + + + + + + + + + + + + + 0 + -200 + 5 + + + 1 + 0 + 37 + + + + + + + + + + + + + + + + + + + + + -24.4 + + + + + + + + + + + + + + + 0 + 0.36655 + 21 + + + 1 + -200 + 53 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 1000 + 5 + + + 100 + 1288.95283 + 37 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + -96 + 21 + + + 1 + 0 + 53 + + + + + + + + SFX + + + + + + + + + + + -4.4 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 1000 + 5 + + + 100 + 1156.09239 + 37 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + -96 + 21 + + + 1 + 0 + 53 + + + + + + + + SFX + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 1000 + 5 + + + 100 + 1156.09239 + 37 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + -96 + 21 + + + 1 + 0 + 53 + + + + + + + + SFX + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 1000 + 5 + + + 100 + 1156.09239 + 37 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + -96 + 21 + + + 1 + 0 + 53 + + + + + + + + SFX + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + -6.38715 + 21 + + + 1 + -200 + 53 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 0 + 5 + + + 71.81706 + 0.12559 + 0 + + + 100 + 0.23097 + 37 + + + + + + + + + SFX + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 3.6 + + + + + + + + + + + + + + + 0 + -6.38715 + 21 + + + 1 + -200 + 53 + + + + + + + + + + + + + + + + + + + + + + + SFX + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -3.8 + + + + + + + + + + + + + + + 0 + 0.07208 + 21 + + + 1 + -200 + 53 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SFX + Flamethrower SOUND.wav + + + + + + + + + + + + + + + + + + + + + + + 0.6 + + + + + + + + + + + + + + + 0 + -12.14909 + 5 + + + 1 + -5 + 0 + + + 10 + 0 + 37 + + + + + + + + + + + + + + + + + 0 + 5.93877 + 21 + + + 1 + -200 + 53 + + + + + + + + + + + + + + + + + + + + + + + + 0 + 0 + 5 + + + 1000 + -200 + 37 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 0 + 5 + + + 1 + 100 + 37 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 115.44484 + 5 + + + 1 + 20 + 37 + + + + + + + + + + + + + + + + + + + + + + + 0 + 93.44537 + 5 + + + 0.19461 + 86.25361 + 0 + + + 0.35774 + 44.70588 + 0 + + + 0.67468 + 44.65156 + 0 + + + 0.69242 + 3.37148 + 0 + + + 1 + 4.20168 + 37 + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + -96 + 21 + + + 1 + 0 + 53 + + + + + + + + + + + + + + + + + + + + + + 0 + 129.076 + 5 + + + 1 + 0 + 37 + + + + + + + + + + SoundSeed Grain + SFX_Spcshp_reactor_extended_V2.0.wav + + + + + + SFX + + + + + + + + + + + + + + + -15 + + + + + + + + + + + + + + + 0 + -4.88957 + 5 + + + 0.49826 + -200 + 0 + + + 1 + -200 + 37 + + + + + + + + + + + + + + + + + + SFX + Aetheia_Overheat_Alarm.wav + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SFX + Aetheria_Wormhole_travel_jumpin.wav + + + + + + + + + + + + + + + + + + + + + + + + + + + SFX + Aetheria_Wormhole_travel_jumpout.wav + + + + + + + + + + + + + + + + + + + + + + + + 7.9 + + + + SFX + Aetheria_Wormhole_travel.wav + + + + + + + + + + + + + diff --git a/Aetheria-Economy_WwiseProject/Aetheria-Economy_WwiseProject.crossover.validationcache b/Aetheria-Economy_WwiseProject/Aetheria-Economy_WwiseProject.crossover.validationcache index 887bd1ce0..f40ef973a 100644 --- a/Aetheria-Economy_WwiseProject/Aetheria-Economy_WwiseProject.crossover.validationcache +++ b/Aetheria-Economy_WwiseProject/Aetheria-Economy_WwiseProject.crossover.validationcache @@ -17,6 +17,7 @@ + @@ -26,8 +27,9 @@ - - + + + diff --git a/Aetheria-Economy_WwiseProject/Aetheria-Economy_WwiseProject.crossover.wsettings b/Aetheria-Economy_WwiseProject/Aetheria-Economy_WwiseProject.crossover.wsettings index 7ef4daf86..3addfb259 100644 --- a/Aetheria-Economy_WwiseProject/Aetheria-Economy_WwiseProject.crossover.wsettings +++ b/Aetheria-Economy_WwiseProject/Aetheria-Economy_WwiseProject.crossover.wsettings @@ -7,10 +7,12 @@ + + @@ -20,6 +22,7 @@ + @@ -69,17 +72,19 @@ - - + + - + + - + + diff --git a/Aetheria-Economy_WwiseProject/Events/Default Work Unit.wwu b/Aetheria-Economy_WwiseProject/Events/Default Work Unit.wwu index 1db3fbb64..db2228738 100644 --- a/Aetheria-Economy_WwiseProject/Events/Default Work Unit.wwu +++ b/Aetheria-Economy_WwiseProject/Events/Default Work Unit.wwu @@ -102,39 +102,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Aetheria-Economy_WwiseProject/Events/SFX_Defirm_unit.wwu b/Aetheria-Economy_WwiseProject/Events/SFX_Defirm_unit.wwu index 766e91a9c..9d669da99 100644 --- a/Aetheria-Economy_WwiseProject/Events/SFX_Defirm_unit.wwu +++ b/Aetheria-Economy_WwiseProject/Events/SFX_Defirm_unit.wwu @@ -1,6 +1,43 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Aetheria-Economy_WwiseProject/Events/Ship Audio.wwu b/Aetheria-Economy_WwiseProject/Events/Ship Audio.wwu index 4e308582b..2135acf00 100644 --- a/Aetheria-Economy_WwiseProject/Events/Ship Audio.wwu +++ b/Aetheria-Economy_WwiseProject/Events/Ship Audio.wwu @@ -1,28 +1,28 @@ - + - + - + - + - + @@ -33,7 +33,7 @@ - + @@ -44,7 +44,7 @@ - + @@ -55,7 +55,7 @@ - + @@ -66,14 +66,14 @@ - + - + @@ -87,7 +87,7 @@ - + @@ -101,7 +101,7 @@ - + @@ -115,7 +115,7 @@ - + @@ -129,7 +129,7 @@ - + diff --git a/Aetheria-Economy_WwiseProject/SoundBanks/Default Work Unit.wwu b/Aetheria-Economy_WwiseProject/SoundBanks/Default Work Unit.wwu index 98ff9f7c1..3f6e1f7eb 100644 --- a/Aetheria-Economy_WwiseProject/SoundBanks/Default Work Unit.wwu +++ b/Aetheria-Economy_WwiseProject/SoundBanks/Default Work Unit.wwu @@ -22,16 +22,16 @@ - - + + - + - + From cfa32576ecd0e5b2541229f35e2bdd3bd6a04dcc Mon Sep 17 00:00:00 2001 From: Defirm <32074047+voivoontos@users.noreply.github.com> Date: Sat, 20 Mar 2021 17:17:27 +0100 Subject: [PATCH 09/51] Defirm 04 Spaceship Items 1st categorisation: thrusters/reactors/weapons. Thruster types>thruster type01 Reactor types>reactor01 Weapon> Railgun >fire --- .../Actor-Mixer Hierarchy/SFX_Defirm_Unit.wwu | 5394 +++++++++-------- ...a-Economy_WwiseProject.crossover.wsettings | 2 +- .../SFX__inventory_menu_trade_item_buy.akd | Bin 0 -> 10520 bytes .../SFX__inventory_menu_trade_item_buy.wav | 3 + .../SFX__inventory_menu_trade_item_sell.akd | Bin 0 -> 12076 bytes .../SFX__inventory_menu_trade_item_sell.wav | 3 + .../Originals/SFX/SFX__railgun_fire.akd | Bin 0 -> 7396 bytes .../Originals/SFX/SFX__railgun_fire.wav | 3 + 8 files changed, 2733 insertions(+), 2672 deletions(-) create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX__inventory_menu_trade_item_buy.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX__inventory_menu_trade_item_buy.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX__inventory_menu_trade_item_sell.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX__inventory_menu_trade_item_sell.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX__railgun_fire.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX__railgun_fire.wav diff --git a/Aetheria-Economy_WwiseProject/Actor-Mixer Hierarchy/SFX_Defirm_Unit.wwu b/Aetheria-Economy_WwiseProject/Actor-Mixer Hierarchy/SFX_Defirm_Unit.wwu index 9907db08f..4e83ebdd4 100644 --- a/Aetheria-Economy_WwiseProject/Actor-Mixer Hierarchy/SFX_Defirm_Unit.wwu +++ b/Aetheria-Economy_WwiseProject/Actor-Mixer Hierarchy/SFX_Defirm_Unit.wwu @@ -4,10 +4,14 @@ + + + + - + @@ -23,107 +27,65 @@ - - - - - - - - - - - - - - - - - - - - - - 0 - 0 - 5 - Log3 - - - 2000 - -200 - 37 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - - - - 2.8 - - - - - - - - - - - - - - - 0 - -200 - 5 - - - 1 - 0 - 37 - - - - - - + + + + + + + + + + + + + + + + + + 0 + 0 + 5 + Log3 + + + 2000 + -200 + 37 + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -132,2364 +94,33 @@ - + + - -24.4 + 2.8 - + - + - + 0 - -0.36655 - 21 - - - 1 -200 - 53 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - 1000 - 5 - - - 100 - 1288.95283 - 37 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - -96 - 21 - - - 1 - 0 - 53 - - - - - - - - SFX - - - - - - - - - - - -4.4 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - 1000 - 5 - - - 100 - 1156.09239 - 37 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - -96 - 21 - - - 1 - 0 - 53 - - - - - - - - SFX - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - 1000 - 5 - - - 100 - 1156.09239 - 37 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - -96 - 21 - - - 1 - 0 - 53 - - - - - - - - SFX - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - 1000 - 5 - - - 100 - 1156.09239 - 37 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - -96 - 21 - - - 1 - 0 - 53 - - - - - - - - SFX - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - -6.69195 - 21 - - - 1 - -200 - 53 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - 0 - 5 - - - 71.81706 - 0.12559 - 0 - - - 100 - 0.23097 - 37 - - - - - - - - - - - - - - - - - - - - - 0 - 0.641 - 5 - - - 1 - 0.23866 - 37 - - - - - - - - - - - - - - - - - - - - - 0 - 0.174 - 5 - - - 1 - 0 - 37 - - - - - - - - SFX - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 3.6 - - - - - - - - - - - - - - - 0 - -6.46329 - 21 - - - 1 - -11.55271 - 53 - - - - - - - - - - - - - - - - - - - - - - SFX - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -3.8 - - - - - - - - - - - - - - - - - - - - 0 - -0.07208 - 21 - - - 1 - -200 - 53 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - SFX - Flamethrower SOUND.wav - - - - - - - - - - - - - - - - 2.8 - - - - - - - - - - - - - - - 0 - -200 - 5 - - - 1 - 0 - 37 - - - - - - - - - - - - - - - - - - - - - -24.4 - - - - - - - - - - - - - - - 0 - -0.21807 - 21 - - - 1 - -200 - 53 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - 1000 - 5 - - - 100 - 1288.95283 - 37 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - -96 - 21 - - - 1 - 0 - 53 - - - - - - - - SFX - - - - - - - - - - - -4.4 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - 1000 - 5 - - - 100 - 1156.09239 - 37 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - -96 - 21 - - - 1 - 0 - 53 - - - - - - - - SFX - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - 1000 - 5 - - - 100 - 1156.09239 - 37 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - -96 - 21 - - - 1 - 0 - 53 - - - - - - - - SFX - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - 1000 - 5 - - - 100 - 1156.09239 - 37 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - -96 - 21 - - - 1 - 0 - 53 - - - - - - - - SFX - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - -6.38715 - 21 - - - 1 - -200 - 53 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - 0 - 5 - - - 71.81706 - 0.12559 - 0 - - - 100 - 0.23097 - 37 - - - - - - - - - SFX - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 3.6 - - - - - - - - - - - - - - - 0 - -5.70471 - 21 - - - 1 - -22.60668 - 53 - - - - - - - - - - - - - - - - - - - - - - - - SFX - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -3.8 - - - - - - - - - - - - - - - 0 - -2.57085 - 21 - - - 1 - -200 - 53 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - SFX - Flamethrower SOUND.wav - - - - - - - - - - - - - - - - 2.8 - - - - - - - - - - - - - - - 0 - -200 - 5 - - - 1 - 0 - 37 - - - - - - - - - - - - - - - - - - - - - -24.4 - - - - - - - - - - - - - - - 0 - 0.36655 - 21 - - - 1 - -200 - 53 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - 1000 - 5 - - - 100 - 1288.95283 - 37 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - -96 - 21 - - - 1 - 0 - 53 - - - - - - - - SFX - - - - - - - - - - - -4.4 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - 1000 - 5 - - - 100 - 1156.09239 - 37 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - -96 - 21 - - - 1 - 0 - 53 - - - - - - - - SFX - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - 1000 - 5 - - - 100 - 1156.09239 - 37 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - -96 - 21 - - - 1 - 0 - 53 - - - - - - - - SFX - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - 1000 - 5 - - - 100 - 1156.09239 - 37 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - -96 - 21 - - - 1 - 0 - 53 - - - - - - - - SFX - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - -6.38715 - 21 - - - 1 - -200 - 53 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - 0 - 5 - - - 71.81706 - 0.12559 - 0 - - - 100 - 0.23097 - 37 - - - - - - - - - SFX - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 3.6 - - - - - - - - - - - - - - - 0 - -6.38715 - 21 - - - 1 - -200 - 53 - - - - - - - - - - - - - - - - - - - - - - - SFX - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -3.8 - - - - - - - - - - - - - - - 0 - 0.07208 - 21 - - - 1 - -200 - 53 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - SFX - Flamethrower SOUND.wav - - - - - - - - - - - - - - - - - - - - - - - 0.6 - - - - - - - - - - - - - - - 0 - -12.14909 - 5 - - - 1 - -5 - 0 - - - 10 - 0 - 37 - - - - - - - - - - - - - - - - - 0 - 5.93877 - 21 - - - 1 - -200 - 53 - - - - - - - - - - - - - - - - - - - - - - - - 0 - 0 - 5 - - - 1000 - -200 - 37 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - 0 5 1 - 100 + 0 37 @@ -2497,246 +128,2615 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - 115.44484 - 5 - - - 1 - 20 - 37 - - - - - - - - - - - - - - - - - - - - - - - 0 - 93.44537 - 5 - - - 0.19461 - 86.25361 - 0 - - - 0.35774 - 44.70588 - 0 - - - 0.67468 - 44.65156 - 0 - - - 0.69242 - 3.37148 - 0 - - - 1 - 4.20168 - 37 - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - -96 - 21 - - - 1 - 0 - 53 - - - - - - - - - - - - - - - - - - - - - - 0 - 129.076 - 5 - - - 1 - 0 - 37 - - - - - - - - - - SoundSeed Grain - SFX_Spcshp_reactor_extended_V2.0.wav - - - - - - SFX - - - - - - - - - - - - - - - -15 - - - - - + + + + + - - - - - - - 0 - -4.88957 - 5 - - - 0.49826 - -200 - 0 - - - 1 - -200 - 37 - - - - - - - - - - - - - - - - - - SFX - Aetheia_Overheat_Alarm.wav - - - - + + + + + + -24.4 + + + + + + + + + + + + + + + 0 + -0.36655 + 21 + + + 1 + -200 + 53 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 1000 + 5 + + + 100 + 1288.95283 + 37 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + -96 + 21 + + + 1 + 0 + 53 + + + + + + + + SFX + + + + + + + + + + + -4.4 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 1000 + 5 + + + 100 + 1156.09239 + 37 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + -96 + 21 + + + 1 + 0 + 53 + + + + + + + + SFX + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 1000 + 5 + + + 100 + 1156.09239 + 37 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + -96 + 21 + + + 1 + 0 + 53 + + + + + + + + SFX + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 1000 + 5 + + + 100 + 1156.09239 + 37 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + -96 + 21 + + + 1 + 0 + 53 + + + + + + + + SFX + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + -6.69195 + 21 + + + 1 + -200 + 53 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 0 + 5 + + + 71.81706 + 0.12559 + 0 + + + 100 + 0.23097 + 37 + + + + + + + + + + + + + + + + + + + + + 0 + 0.641 + 5 + + + 1 + 0.23866 + 37 + + + + + + + + + + + + + + + + + + + + + 0 + 0.174 + 5 + + + 1 + 0 + 37 + + + + + + + + SFX + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 3.6 + + + + + + + + + + + + + + + 0 + -6.46329 + 21 + + + 1 + -11.55271 + 53 + + + + + + + + + + + + + + + + + + + + + + SFX + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -3.8 + + + + + + + + + + + + + + + + + + + + 0 + -0.07208 + 21 + + + 1 + -200 + 53 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SFX + Flamethrower SOUND.wav + + + + + + + + + + + + + + + + 2.8 + + + + + + + + + + + + + + + 0 + -200 + 5 + + + 1 + 0 + 37 + + + + + + + + + + + + + + + + + + + + + -24.4 + + + + + + + + + + + + + + + 0 + -0.21807 + 21 + + + 1 + -200 + 53 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 1000 + 5 + + + 100 + 1288.95283 + 37 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + -96 + 21 + + + 1 + 0 + 53 + + + + + + + + SFX + + + + + + + + + + + -4.4 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 1000 + 5 + + + 100 + 1156.09239 + 37 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + -96 + 21 + + + 1 + 0 + 53 + + + + + + + + SFX + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 1000 + 5 + + + 100 + 1156.09239 + 37 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + -96 + 21 + + + 1 + 0 + 53 + + + + + + + + SFX + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 1000 + 5 + + + 100 + 1156.09239 + 37 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + -96 + 21 + + + 1 + 0 + 53 + + + + + + + + SFX + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + -6.38715 + 21 + + + 1 + -200 + 53 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 0 + 5 + + + 71.81706 + 0.12559 + 0 + + + 100 + 0.23097 + 37 + + + + + + + + + SFX + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 3.6 + + + + + + + + + + + + + + + 0 + -5.70471 + 21 + + + 1 + -22.60668 + 53 + + + + + + + + + + + + + + + + + + + + + + + + SFX + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -3.8 + + + + + + + + + + + + + + + 0 + -2.57085 + 21 + + + 1 + -200 + 53 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SFX + Flamethrower SOUND.wav + + + + + + + + + + + + + + + + 2.8 + + + + + + + + + + + + + + + 0 + -200 + 5 + + + 1 + 0 + 37 + + + + + + + + + + + + + + + + + + + + + -24.4 + + + + + + + + + + + + + + + 0 + 0.36655 + 21 + + + 1 + -200 + 53 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 1000 + 5 + + + 100 + 1288.95283 + 37 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + -96 + 21 + + + 1 + 0 + 53 + + + + + + + + SFX + + + + + + + + + + + -4.4 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 1000 + 5 + + + 100 + 1156.09239 + 37 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + -96 + 21 + + + 1 + 0 + 53 + + + + + + + + SFX + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 1000 + 5 + + + 100 + 1156.09239 + 37 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + -96 + 21 + + + 1 + 0 + 53 + + + + + + + + SFX + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 1000 + 5 + + + 100 + 1156.09239 + 37 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + -96 + 21 + + + 1 + 0 + 53 + + + + + + + + SFX + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + -6.38715 + 21 + + + 1 + -200 + 53 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 0 + 5 + + + 71.81706 + 0.12559 + 0 + + + 100 + 0.23097 + 37 + + + + + + + + + SFX + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 3.6 + + + + + + + + + + + + + + + 0 + -6.38715 + 21 + + + 1 + -200 + 53 + + + + + + + + + + + + + + + + + + + + + + + SFX + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -3.8 + + + + + + + + + + + + + + + 0 + 0.07208 + 21 + + + 1 + -200 + 53 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SFX + Flamethrower SOUND.wav + + + + + + + + + + + + + + + + - - - - + + + + + + + + + + + + 0.6 + + + + + + + + + + + + + + + 0 + -12.14909 + 5 + + + 1 + -5 + 0 + + + 10 + 0 + 37 + + + + + + + + + + + + + + + + + 0 + 5.93877 + 21 + + + 1 + -200 + 53 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 0 + 5 + + + 1 + 100 + 37 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 115.44484 + 5 + + + 1 + 20 + 37 + + + + + + + + + + + + + + + + + + + + + + + 0 + 93.44537 + 5 + + + 0.19461 + 86.25361 + 0 + + + 0.35774 + 44.70588 + 0 + + + 0.67468 + 44.65156 + 0 + + + 0.69242 + 3.37148 + 0 + + + 1 + 4.20168 + 37 + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + -96 + 21 + + + 1 + 0 + 53 + + + + + + + + + + + + + + + + + + + + + + 0 + 129.076 + 5 + + + 1 + 0 + 37 + + + + + + + + + + SoundSeed Grain + SFX_Spcshp_reactor_extended_V2.0.wav + + + + + + SFX + + + + + + + + + + + + + -15 + + + + + + + + + + + + + + + 0 + -4.88957 + 5 + + + 0.49826 + -200 + 0 + + + 1 + -200 + 37 + + + + + + + + + + + + + + + + + + + + + SFX + Aetheia_Overheat_Alarm.wav + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SFX + SFX__railgun_fire.wav + + + + + + + + + + + + + @@ -2828,6 +2828,58 @@ + + + + + + + + + + + + + + + + + + SFX + SFX__inventory_menu_trade_item_buy.wav + + + + + + + + + + + + + + + + + + + + + SFX + SFX__inventory_menu_trade_item_sell.wav + + + + + + + + + + + diff --git a/Aetheria-Economy_WwiseProject/Aetheria-Economy_WwiseProject.crossover.wsettings b/Aetheria-Economy_WwiseProject/Aetheria-Economy_WwiseProject.crossover.wsettings index 3addfb259..1ba09e6ef 100644 --- a/Aetheria-Economy_WwiseProject/Aetheria-Economy_WwiseProject.crossover.wsettings +++ b/Aetheria-Economy_WwiseProject/Aetheria-Economy_WwiseProject.crossover.wsettings @@ -3,7 +3,7 @@ - + diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/SFX__inventory_menu_trade_item_buy.akd b/Aetheria-Economy_WwiseProject/Originals/SFX/SFX__inventory_menu_trade_item_buy.akd new file mode 100644 index 0000000000000000000000000000000000000000..bf248e578af86f955b1a716c57a772ffbf018473 GIT binary patch literal 10520 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 literal 0 HcmV?d00001 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/SFX__inventory_menu_trade_item_buy.wav b/Aetheria-Economy_WwiseProject/Originals/SFX/SFX__inventory_menu_trade_item_buy.wav new file mode 100644 index 000000000..43c820d15 --- /dev/null +++ b/Aetheria-Economy_WwiseProject/Originals/SFX/SFX__inventory_menu_trade_item_buy.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:da7057861ec5da940c99b7cfc9948fb4b27fd2648f79b09f7ead90102de76c9d +size 438404 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/SFX__inventory_menu_trade_item_sell.akd b/Aetheria-Economy_WwiseProject/Originals/SFX/SFX__inventory_menu_trade_item_sell.akd new file mode 100644 index 0000000000000000000000000000000000000000..720b099d10eec91d1693f0fe6856ad2ec176fd9b GIT binary patch literal 12076 zcmY+~eOyf0{{Zk4NuCESAq--(#g2sNp3ht>gfK`#nDy9t+Oa}tcQ3+3mi@gYiU3$->Q0m4~9*zov&vT*sd0relos+rKxs$i!7UbADi<>fL@xlig z+==4GZ0A0x_*EoNeI3cA;A)(7N1xU(3({8U@tL@yHY16(nHZcai`{Z%DdL$-h9gsf zEY2#BNyUm2#ED3GS3)Y$FWvqViO0xp6ITY=Yomf&z3o%c^|3YWi&4zPJ-mFv9zOA# zUAz>z|D*6AWO^RS3!X*t;$EA%h>9Ms;bq8Sn!?LwP2pr)PaeFrC%05@#f`|Y<}Py} z<5ydm>au7bvr7AzCdtkSavWI4Ob6F7Wyc#?+V(~kQ%=d!Iy8KyOrj83j_vJ|hGn-R zGfF}+pPeY{U~llKgMGo&aC-^rxT~K1dPY5aQKOAK4;3CN;-^tTxXjZ~>7z_;LDBE? zcu-{?FPOWBht1o=&5ic*QdF{MJ+HlYJvYRBV5T2FFe061wqH*(UC(9ADK2BAhac01 z_%X3}AEx%{!;FR+j0~>9#OrQMd&7;1&riuNMC^T>Xpz)8kC31|B2~d-Rdf^Uax*t= zE!dr?K?1eMqv_|X+W$l`bP2HFL-;MJKn0iyh7!M`4hM@Zvyx3=g;$y_rUht z9NwO1r4Qm^NIP~EPenTA0CU<8Fzv-s<|r&>q^g4%-5kt%+`x>v1}5%V!5mpDnDK0P zMqHB5%gUPbve@&EtRU&%nV%7<3zpU81eW(W+JsWk($5Bs>S@0_vZp=aazDE}3Z7Zj zz8U${yvudyLhI`Gf6-|-2Uk&f>{VXo^8F=l7=MY&*K@e#Mh>rCxrJNbZ{dco=kelp z^LSnhft!$aP!nE^G`f9ELAKV5nFEn-OK_|&VcK^(W<<)_*RoWAl6QYbM04I}*EJ8$s z+dLYL&Gi}eJJ+DsmMD8Af^k819V-5zioFy${@TTZZ|~xH{a^D^$hDGe{nVx!A4NnI&Rn^ww1(&9CWNFtWoj3PdJ`s_Rp z`0YIJI;)Reeb~qDyRV7e{cU5rl5XcuTgcqjZ3nODu!kGtDtT(^HJ+E5z{7T?^Q^>k zyt3_GE{y+|w@4uN$Mr+)A7h9;ql>#e`(a&s!pmcP`t*-Ht=(-Nbn`0qtIiI$s@t_g zf9HQ(sbe>g5`O#40DJ#OYt}CwO3z7%heUsmCzy6zf z(t*P~yt%>+CrWtg&G)=yVGcjN^8=4=UCyVQf9J-;Q(SX@E-xEBj)&g|5ntIq zdNi?zo>|F_t$yVxqwn*q!d5)mSjjWm7x1C=y4cGfBy!={OYYn_h@09D;n~A3@Zhxe zJUsdq4=a7bP2*&)8aD7a&+EKqLr=SLOdys@t?c_YkDRIxUjk&qoLLRn7v5yXNhjs|}yg7|O zwP@^l!$?2EI!;_oipa|PpmbN=RzzQNq- zm&q&Ewc~YXd)sSYc*-mK?BGXEoaKIX8uOGxDi1f{{Xek@kKbeA)+wnxD`yywc@xgV zk_YkfpYymnZx^@Te91hQ_TmLSl6j08&g1STbJN;r9#@vjji)B^n8D|{$>G7>J@C32 zc7jWOSGZwV1uG>Fxw0D98#|ME@Z9!XdvQO`U0ZluG{Cipcoy)kf7qbASFt->|RXs%ID@Q7s+w_P2|wTovk zsX;@o?){4eoH);=%I>_>CxvUgW4IGyxn|=?ZVO$`{XY5e^4%M`DnDYxcOy3~7|FvD zvCc1l;Lba1xDqpsYrB>*wQoANw2tOB&0encU&70-2XO6LCsStNn$2e?*KVK2Egg<= z?W=TNd~E=aVs5(naTb1D|y`a(|MWOYHr&5JtslG@UpWDxlS6(kL+2=!|Hb8j)kGTcwI+s+7ie$ zub!~Di$)&TqYl?;@3NR49$Yat=aqw2aLdIdtRlS=H>_OCon<3=#_{Fc^Vj*jr2lSi zN?XqiGgPLo&tYaC!lMrK;*!U|%v5U#x6%Gw$=krZzcz5E$8~02u|Riyvde&u!4)VJUEFX-1%e~6XzB&@QxJZ9-YUhqc{KhkwC*VKBzyfq!UVa5+! zDSgJ2uw5*xb2Cn6+?93n`*O8m2)@^YAIUIt&FtRXvdxcMR(0WdyPEI_rKvN!nat&9l z19+Cb6Zg(2x;cm)!u{=Oz=Ms2H;>XO5Oj znbzYk=8Qhcw7Va%vX*X~d<^7<#)nyP^~T(K_&O^q#P(cR$qbY1EbmD>UVOL~SKQ*5 zVf^2WJm0{qB`=w{WCxRKD9j;bFbBJXYx6Bky8ND5Ckc$0HZqg*CX?bvGTTaTUiP6L zcP77Q+RpymI-wym^g7A%%5dDqHsd;DE^|cOW!i)dOzgLhIlXFf(c3P^EX6TF?=#Vw z#LQdVxYVu}Q>R5S$@`T|^42nP;VN_Nd(Wi9rA)lkfm`dBGGp0srq(~o93>@8U6#qB zdVkHuF)etQrx$m&dCsh>-!t3fOUyVB*Ca$@memPNx}U`~JvOkof_mKgq!|l#59GR^ zEG+DfJ6CGlW!C03nC8w#rasp)@{!A_W%am{bAl-weqeE{0=arVfSER)Vz!-UnX>f0 ztUMdXq^3zsYF{QB7iKbDx4)SwRAS2IYZxb{Gh#L|Q zvETOL7@l&Jkydk=C`B`ExA{!>n}s>zlbLE*&XjXMFx~j$Ox!q?X_nwRW$aIkgagxL zV%r@Y&XmrjGKo!OYKLqlP1i8#!WE`m?8P)Aw=-jeJJZFlXX=I?*!NeNbqcPCO*V9 z9blZhI-ZHcn={fJx%L{4g9|aGBE4B1dKK3F)26*%hrY& z);(dyA={W~#bc&ARxoM%Qf3{~5M$>vvL$H^(>z|sto0W#^_yH~7;RzN?LN%Z>i|9*fu^RTViP#R!w=ivbEYlV>V%ml+m>N5hk^EP( z^3Qm@22RT2w70UcB8_R^FJy+1c)sigOi`D}%I$w;HL)7jX|qg{tW0T}%hbJlm=xOs zNfz7MWF@&iBQyVzjXUtQcK2k_&x=V5v96{eOlcF$4B-~0_Ugwh zEmIho7{!RO9V26AFzXsK(}wApRQpF+)NYg&=Sx|7OPI3nf-FX1pElYllL_;gIIS-e z@7|EfyB)Hm&y|&xXJj&Sy(~7!m5p=5nc?VCM*iL{6LSdD76vnM-D6qpID|=m-jJ=M zaP8_}l}Z0F*?6NmQ-1o9Y3opC$+R%*ncht5mMKf;^^7!pDyyO2GVQ1CclleEkfqZPWM#@*S*_ZHsSP?Zalp?^`(!**upgCPRhYIol#vNtWaC#pOgiHw zt8tB(x^5U#H(_jhRbZlr2Q%t5Oj$RaNr&*9uWYilco>r!g~-a%8cb@QBwLUAGvlz4 zOni;;ab^off_ll4*Vjyn+$kH0FOv?W$=2&yX3VaSF+>e!eN&aG_X8P8z}K6!V#<*# zSk4kz>o$~0H*sw~Sdpc{V`Q@XYnj;aJ9l8e99CrUUa~BWOp(b(OTN_1E=z4*$V$Nv zOx<6PSr;{7L|Bh;U{hJz+ejwqxUN6yBa=ZEne5w;Pr5$F&wVG8?|+cR^rILLyppAF z#>>htHF5m9GiAbiSvl#8{V_%s1K!D^uOy3`SIcDfeOY>fzh|V%($?v+((RB;PFQ5o z{h_REESIItcnw87ki~=sOcIC4QbHA(JQZYd(eE;u3&+JnS$YJr^l7k6+SivA(>__6zEM^`xZ@l)OIE65+coKm z{ct&-tjF*8Ggel{UzeqE*d9YOWOAV)#!nrwEaG7MB!`CBZsk%m1 z24X+l?u~8ulT7+}Vfk9gQY)-W5q|Hyi849E^2v{=cTzqHm-D5ot?>SkkuRkO%hC*A znUqK;$cV~(u@2Vl-3(bAv{sg`b&-iTmM6n3la<@^NsCd~b{=?bhs&gKCs{K5BufiB z$kNe;vb0`{xul=-$se7t9a8corHM?emV9EXCzDQT`DAM|nfy`*b2b~hyK<3X>o!3s z64O<1M^SHbARC3{Erckfj9Cfhu`40w@NrO3UREzK?&$@mJ&$}AoN@?E$Z)j|SdsbI zEXd291=g`fFpV<;j%F}&0*d!dYDC(1bE)zkl{TkFM9x&B;<;*6Y4=JH+rAQ%j50xV zsgo)w2y>2I{^LAG$Wv7KKiPQ9KIVJx9t5Mnj9U8fD5}qXh(!q_Zh|*j{iB<{HHy9W z5KMO;f+2M%*ftG?u(p`|78ny^CAvHzT>73`xk)W-(;7UJMy|e}S6&7d)+929>qSplnVe#Li8G zlx}ArF8B;Y>kdOwr^DbmZ!(B+lOZN`0#t0A00j?&KwB0Br1N>I2A-$3Q_HCCw`ElA zkWRHoe7S?_koK!cDtbjy@@# z=~_7F0eH`S0JVELK|8Ks;%0^Uem+XQsTGG#uPk!jT=$V!?7X6FJZezpKA$1jFr zWCKnmJ*TGOx>IW?BurRw9m)cCO$RgikE4^^-Cp;E8E1gXzog80o9f%sn$q#{)y zF5d+Hhg2TJ+%@`=gIt8=meA18;$MFPEAsCD2`c)1g0kd%@LQV?o)2DwdjB<3`k_W*ojtPncI3S}#-kczU)7eg4bZR~;Lrw7>j5ODM+V5pW% zP43B5a*U!@BwZW!nfSgX)gtA7O=^5llPVq=f`l-a*Nu?6C>_gbMagJwuID%p(4q|0 zTc3x@E;=Eu&WPeoC(25BLqT0NFbOxl~55`jxME^BTK3ELkB9l1Um(#8;+e-+dm`AZwq9} zZNd7h8#N-*Y_}jHLe^l}U0n5Ofc_izu?v<%6zb}zt`9(deIG)3pNC+ru?40h^85k;J2zb05LQVJ?~1yCzMoH}ck`)6*hUS=x@ISJtlmjYjn`0(_Zlj_2TCe|iVYf4YyE~)s>5)OWH{dS z!JiSIT=H30JO=0L+U*2i6!}XV{diRSMFE_47QpnNCE(p<3B+9e6=JUZ3UTErU`3Tb ztOwK7^&r(-2B#63GYbsJG9Mr{4xr-6GLW7wgO~+NL5D1#RBHODQsqWIj_Z7?xn-jg zat7O|p}URRx};NEP&!p^cBJG6>aF zXTWpDQ!r010%zBMV24~qzv8l1f8<#u6g~S&AHU=l1n*go*UCI7e|ZdcXZ6=#33Su1 z-RY;7qU-9zhaG^7v9BTSq!T*cuA;Af3Fo=zV?k~7J2*b=gXkFtA>~Xr{nOahpvI4a z@NSnN>wGVW$xeXj(>_7Tvt6LJy$jN_TuA%00b++=gQTJ&X!_bqA1d9%d143H=5L`H z<37SOUw8fVnW^CSVK$_#y$H_SBGAsg1#$Hlhzo7t_huO+Ex80jhlgOhzX+6$`yn8M zLDG>M;MgdE+5KC6W${gTTKWg5qbs3w!ab;6RA0YfhgL6+ZK#jD-%M|L&|6=5-(6qa z+zENpTIvHY`0KS78tSk7R!yH&>oO#jtq1pd*C0AD4^GeRs85aPs5eJ_qrcFho<4f+ z2FS{-fQ*bau z?hdJ`HwX2Ar>QOUqVt@?{Gp>Qt zy@L9TS_E-DYC=)tx_Zw?DIj-x0e*hdASmep#NRmt)&QapdVd*WJ7hq`KOXud>rx0l zcnGBFE za5C6ty`foe_JARKJb1NP2BzmpV0%0Tyxr?Tu(>`&6-@#0SUytIuc^rABL!q>X6nx2h8zvApT$;6n7g5egktL=Kc2&ys95q zUPXYhRRpN?Cx|6`LEf+g!bXRKCTSR`+na!6>ln}s4T6HxUJ$n~6twf^!}Qd%U|CrY ztOrDJ-0u#?n)%c_Z#=kr zB-lC*2EUDUz;9M7ylzSSciaMw^Hzv!lmvyAZD8{|NfR0@1GP#M(As|jk*)V0+qXb1j4GxdGL728%Ba$wQAeB>j6waVY2{?Fo^1e@WfLK+mOpsD05Hj!)H3)QmHg_0G_y9u zotOdIiey~t^@6-XQ^1+n9kRyN1=GF)s-0O64AXAY;K*pu)}0Ne?mF=Ho($%GJ;3N& z70RxC1LBMNpdIA_ruuEbv3w9@E$9ZO>?qI%eWYG)2l0N}1}x*#skQPJHP7({&FC9c zoNA}aaW7CF=peRmF<8#{fHHF&nC6cL<1PzThCQO{*#*?L=OJ~rx=Fov%mmxAmLN(8 zsD*ojDcA>e53f`(c-9UK{@19@vl)o* zOQ>~$J2eH!RO^48DpTIk;PW03_iatEjQB{MqYhEECDu3PDAhKqprR5_wJ}yons%nv zPV1<){Z%TyTSBv1X+V9pmpWK0Fx|m5OxrcoSf@M2Oxc38VKUWtUZ>{QZNXCfFD2nO zsUzqTRerTma&Zb3JyugS)R&6m86`TPj;L&^ec}${tQe{roJFnTXey4_M5Qr{sPb+p zHCSFz$AC@LIwY6sYMiCwt)Hp*;|yy2HW1_0Se- zeY=p7C%;qm#Q;jikvysq*b}f%N;DO2yj*-RV6P^HNluJ)Al% z7y}O3M~zeGQ58C4404tl7ip>U_mh+y?m*S?<7q|vDxh64k7_6HrAphi)VLPgtLvO0Q-H%G%*9CQcCrYN=7sQ$C z1(M&FlI%}{BY7QF0I2fDk1Cf!sq~;wAlLsAR1ssb_gH41Zqzu-K$VUmRNHtqRl>0> zvs6J^b6ODRz7@2s{i%Awlafqq`v`xkF)pUo;a*hT2UJ`7HB}A~Ds^i^C4)O9$1ryh z9z?|jI|Pz2k{U1crOJZ}L3y-C5RcGh(3d$&pKn|6LD2EpdQd&)c?42n{KUKrH9NYgx zEkSyoE0Ah)1+j5sDz4rpC+M|@^y(oj@=W;1MGvP^95z|OF^0QuONo@*N?NwKqbfJ#7T( zw=RO1wMiiRBC#DMLA-?LX_tWgj>oQ{0`cuEh>6Mge(alz2?EJzFOckl5GkUofO|zD zByxQSiS-nuX6^!ctQAPjvJevVFhp96ZMAA4woSAk?ZES#`#VIc5sm$83nBe0Lr4aW z2OnpMw05K*?Zo#jd>Epb@H0Kt5VGs{5E74d|1mE_8s;yMz^o8*%^o6|>tKEGduDIW zCqI{l;G>b`%kzX^p3nR8oZFY@uD(3S^yT@QFVCsCp098{cj0)sxaox{d_f6M*)pdVx-EUm;_UCyP=P%d%6|`Lul*u8G4MI9;(9<8e-^~lg&z+Ff^X}6v`VM{Ui*LV zJNe&h|L=YHS=Yz^-)s1HfIA^in%dwX{w^F0hy7Ipz!%qkGlv$@AJ&hc=J8X6$iJGv zhG#M0IlCV;G1r22ai{6cb3Y1KS2u&$jG?eZ*A?7;@qjtOY4rV5LOnZG6?XO4LH?}? zP{YM>`GMdpPQ(Dk(GbRdt7ruf$$Hu~o?_!|k zpWWfU?=f0$?nxoDt`|HS6$(=i1p?pw73d8IXot%-VX9%3F!)keI3Hkwme7jNT&?g8^=8l5_hkd~|$w7rXEvVEZNtp1l1+17e6t);6VadyQxOpKF1{_%q zjs2ED?f4~7ux%-19a;b$VhViPy&qid;#5xc+TBnAtZBR&^f_4ekcRiyiGC>3ko^ zSPpQddpqbkwJCgi&Kt&_XbzvQw*qH#AGn-U2WEA3hh(QGOlNri&UT(t)0F^up6|bV2b*8a%lt%{bA6wmdqD{_CTs z-JcJl>(suqCWO<$;epgKaUi|VhtY5D_MuG$FRED`KpT9jOP|(#CgjG|pv!zd3V+tQ zC+N~I34l5FO?4j#_Gjs%_*N*f*#Vgrr~FShI!G|v)* z>29lp+6~tTw!^E1KP>Zw#qXvFi}FpviRtr&*6R&Ihv~h9{Hh}b|9|kC=XeXTyIKqX zNKZrD`Ku7MXdZKoy35r64P&A4|iD(Xz&`LB8twOFc4n|v1DoR65kruT? z-B2KEhyqY;6pY%U#;7I=N6pYw)Ch&5A!sP-ja>6bKQsaThz6oXXaJgtCZlC&JX(X6 ZqWNe!N=BJzAId`e(K@sj?M92y{{h!1ZkGT6 literal 0 HcmV?d00001 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/SFX__inventory_menu_trade_item_sell.wav b/Aetheria-Economy_WwiseProject/Originals/SFX/SFX__inventory_menu_trade_item_sell.wav new file mode 100644 index 000000000..822e88452 --- /dev/null +++ b/Aetheria-Economy_WwiseProject/Originals/SFX/SFX__inventory_menu_trade_item_sell.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e694ca3c47aead5f3c1a2e25ef4032141c6eb43ca3333ad759fa49d1a1cce066 +size 504044 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/SFX__railgun_fire.akd b/Aetheria-Economy_WwiseProject/Originals/SFX/SFX__railgun_fire.akd new file mode 100644 index 0000000000000000000000000000000000000000..03f42e7601ad0887e2a1a10312b8a748e5c9e5fb GIT binary patch literal 7396 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 Date: Sat, 20 Mar 2021 17:45:29 +0100 Subject: [PATCH 10/51] defirm04 Railgun: charging granular seed Muzzle overcharge fail. --- .../Actor-Mixer Hierarchy/SFX_Defirm_Unit.wwu | 199 ++++++++++++++++++ .../Game Parameters/weapon_events.wwu | 15 ++ .../SoundSeed Grain/SFX__railgun_charging.akd | Bin 0 -> 26612 bytes .../SoundSeed Grain/SFX__railgun_charging.wav | 3 + .../SFX/SFX__railgun_charginf_failure.akd | Bin 0 -> 9920 bytes .../SFX/SFX__railgun_charginf_failure.wav | 3 + 6 files changed, 220 insertions(+) create mode 100644 Aetheria-Economy_WwiseProject/Game Parameters/weapon_events.wwu create mode 100644 Aetheria-Economy_WwiseProject/Originals/Plugins/SoundSeed Grain/SFX__railgun_charging.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/Plugins/SoundSeed Grain/SFX__railgun_charging.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX__railgun_charginf_failure.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX__railgun_charginf_failure.wav diff --git a/Aetheria-Economy_WwiseProject/Actor-Mixer Hierarchy/SFX_Defirm_Unit.wwu b/Aetheria-Economy_WwiseProject/Actor-Mixer Hierarchy/SFX_Defirm_Unit.wwu index 4e83ebdd4..ab13b90d5 100644 --- a/Aetheria-Economy_WwiseProject/Actor-Mixer Hierarchy/SFX_Defirm_Unit.wwu +++ b/Aetheria-Economy_WwiseProject/Actor-Mixer Hierarchy/SFX_Defirm_Unit.wwu @@ -2733,6 +2733,205 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 0 + 5 + + + 0.10095 + -32.41752 + 0 + + + 1 + -55.73771 + 37 + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 0 + 5 + + + 1 + 79.6253 + 37 + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + -96 + 21 + + + 1 + 0 + 53 + + + + + + + + + + + + + + + + + + SoundSeed Grain + SFX__railgun_charging.wav + + + + + + SFX + + + + + + + + + + + + + + + + + + + + + + + SFX + SFX__railgun_charginf_failure.wav + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SFX + SFX__railgun_charginf_failure.wav + + + + + + + + + diff --git a/Aetheria-Economy_WwiseProject/Game Parameters/weapon_events.wwu b/Aetheria-Economy_WwiseProject/Game Parameters/weapon_events.wwu new file mode 100644 index 000000000..8df89efe2 --- /dev/null +++ b/Aetheria-Economy_WwiseProject/Game Parameters/weapon_events.wwu @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/Aetheria-Economy_WwiseProject/Originals/Plugins/SoundSeed Grain/SFX__railgun_charging.akd b/Aetheria-Economy_WwiseProject/Originals/Plugins/SoundSeed Grain/SFX__railgun_charging.akd new file mode 100644 index 0000000000000000000000000000000000000000..e0586a3ff478ced73c592e9eadf1a74c9566be1a GIT binary patch literal 26612 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 yCXDIKfDPgCH&?MM+VPh&wUvK~jSt z?oqd7=InirOWU}15Tvf-o@y{vD%F(Vo_-(CTF+X)|DPvoz4AHxdOmxfefHV=y(a(w ziUYi$3b(R@|KopJbAV_ce$nlPL*5mq!0M{h5?6!DU20Nkl`n;r35pbYPO+XkPNf%& zN^vflR`V8>@8m1;_1lVh!+myiL?z3-a-9`7bh8T`_MzqR77V;uM?KZYSIucu#8Rd( zmg79elqMTkdFC;ue>tBOHffAz-BXhNU?ofFxsuK4oy+#WKg!&pIP>j2 zpXnA}V1?PMSlZE7)E(!=hV6XMvZr~e+85sm(vt|{nx#?c^cE#9x-o+vLRh+YB-6qs zu?p`f7B_Y*3$HQ+vm?L3H2<$zX~=qJ9>0{CeU~uV{fL!JI>v%e9bt0%HWt+D9GkO- zvh>_g5xibu(26Q*`IQ1DlNM^l_;+mj&_CG0Dz(+L%NuB#S53C$<_eZp^)e03{hM_= z-&VE#)SIT%U&n?GT*TZ>-%;1XMNAs!%V5wo1s2z1#Ss@+Lcv=m-LFrBe6CZU&^xRm z$m7pE=3d)}S)4~$&JGtV78bBd=XI85_>QKX8N^Zt4Q9|Rg5|R}tlQ+Dp zA7sL!HSB1u<*Z$Fq?*vOzbeH&WNE{0u!`Z;nC`c4S;Chx+p(Y)oRsO z1JawRmUn3s9xM>T>UUEks`XMg>@leu@&~BqzZ$bN*D)G+V6fWi*Iw$3O*K@(yP?|Y zLJKwE$1?VA08zsS=+wMNZ<%vdCpB}-X*OtzLG5-bgUMI+G1-yMk{5JkzHisCpqh4; zzCMZNclwLHF0Q5)bgHV#k#||nA7>cMaoY7|jOugeGyTQcOd9{3nbRApy3s*Qiz#4s zQcca9a)hn>K2V+2xUs5VbAts8s;f$=^;rIAdY1jyJNDY^DGPt~58FE-L=CF_gywG_ z#+*YdY3Y;&EPTW=W?eOjnOEFqZB4&3eeVtoKJ{U~hxhP4&tpSNbn5L9P1VBHHE>C% zZkY6~x4Le`ZgwRER9U#o48P{H)XBkW;mU8B+kX?Y-D*RMopn*`IiF2uuh{g)-?I)O zfvVw0U#34Bf=doIWv;vpv?B2!oAmlQ3r+G;*X1@>ox&a>ojgK{3x~25J2P17fd*>0 z%S-J;udwnOcbVmGQ&#pzUskY)QJ4TMw4R+kIpe1mzka|*Me9}F7#A}ezhl~tyTs`} zLy}(BRfSheSlLQ{HQ-sCYPi0T9bNr56JmE^{^w25GPa?r)$PyD4QQ#BOnJmAzB8*C ze#6zVJ*%mO|M;kVuAO5^tE#FgWTrZFQD607yRTG3^T}%F=&xl=NZd;@QS&8 z?y}@_f3W1>j_N4EqCRR7t)AP{S1rB}!TWpyyO31L^xu5XHrx+TgI>O57S+HidQW9R z$6rwSeJ)EjHdkHor&+7-bgHGcxBBPd4(f($tyOJ75z$|bXJwm*Fo-rgq{tGM(%Qi? zr_@uQ^sb{CLb8}Vrrl18s* zmd{SG(u%)XQ1E1yojRQr=X7D&U&kN`4f}psVp?;GTZbl_w5;((7jec2c(rKbFPkj=S%n?3Sg%6zkyvy`z`{+={pt_S%vc~BD;`mCDj z+E`Dm6zZr;dWNZG1MMtt*e#}bEoKJoCOvo;)Ps?{?;l#3av?-5os`U?bDy)~gPoWy zH;ZQW@KY<#f_l5n0#>Lp7JNE~mCf$Y(*3$IrNv^_?YNz3-CC;UzdmKbegUdJVFIz7 z*h9+tW-w=qL&W0!nR>iS9re|vaJ6_}S2c9}HWu>Aq&m->pju(Bu;i(Mg-@8vmP9>c zlUkLsblomisXAGJVF61xJcP}WlGXB6UDaa0D{LK}XBEE9Sh%*Gx$cHA+p*!St$d6* zdyQev?rl_a@49N8BAxooEU5)o9mF;*l1d}@F=6~h7O<(1l@#n^n&}qvO?bwRKFep2 z@Pc*7X|L|j_f{>ny0EYXn^<;H9fS^%j)Vs*Sbo85_IlHDrVZ2BisMcu+m5l4MFZ7} zmtEB2{rA|gq-v_6vxqR%NMM@kusT0s)@o;2>GNT%?NF7;eUbaNhLvRPWBPkrnKt!n z=6rpWTDE&pOPl`G64imZYTTyMJB3Owt1#=iO?3ZvE15oI6`LMuWv@3LX7F9GL-)EV zleaykT8|>7pzH@Kx8F*w%PvrD=Mb8(tv5?b$Yll39#F%nc`WGDD5kCZmZnE9W7^H} z3?A-LQd{~mEiak4r#nf>-UUpaeVQ%_%VVyuzh=IU0WAIU0;V5yg{B-?#9&4%1uAwK zWxs3%Y$Fxd)6+EQaw*k~JkCm=u4bX1?q!C8`wXi43Z-^EgGSwy!bSBly&kRHxX5S*nX%M$=qT0ft*QKUssQ)uQp?pzRF3wh zF!8BL?>CpGf8CK)WY%FzA|jY}r!})qh-bD2L#VaeLTb%AM4UD65P8KA1#)Up+o;B@ zcx)%;+rJTWw{OpE54zBTq`lN~ayGS{5NX=|2v!&w%&dLRP`6<e=l0aeKIzhfVRB%r|OD)6J zQi}jgdv%|}{@sdY+!U%+Ijv~TT2g2FMyemtin_aOqpr4nsTTct;o&=uV}pPZX$Up!&8}>YDhNf+5YG=9NKZGSZ_tYG6j>6PhiWWMILPC8Kl(>+{7cMBSozMQ(v>BOeu05nI(MXS z`LQAoJ4~%R7EqXDrrP;R1;*|-!BP{|UKUdMRia`&eu#qHL4bm_4qH|rwY6$OrI7X1 z)kvg<@GL6(wV<$YmIA$lDa772$^P{ed0|UMTYXTGlIBy(i|*9sN~PMV2nrX5J1m<9 zP}}4BRGv9hu?$|qpTj09@BT}X_q3#NGt(hAysKzQ`2tu!F}af4Qur-UaV2k~1uwIx zQ$L@&cgoZ@wzf8t&KR#~i?bB1{wf6?w-#hJ zLxJKLqdaJ;q7CBh>-nu>^Q}jCcaEOeM)dtC?Ee2Snv z+azxpt-$144tcPsNQYM_u(yo@ExuB~=eQB{XoPhq?Xa$qNgkA_z^)w*d6Gqu!y*(o zdC&nrgej2A>kHad1UGA&AY;7=Hf(pm@b4Y+;dliMehO@DrpVo@^Y;8=1SP})7SRrd zSUWfeIbhLb2Z+ZUkZ{5QO@48JbeUg&V+UJO5wu-ugjT&BaQjaq6t=WOgZaE|Z|&f_ z%>g4b9Pr4?0ezm>L7r^~2E43yJXlKO!S=Zwv|I5YoU_BHT^(?SIN&PJUvke5c5clF z;{n2AA&9ptf36)ieCdFs^$zIvw;fW3J0Pg7146>MpIeQfE#PCLjsx6hi=an)2c&GZ z!}Jn6l(gY-w~OF{uLHE{c1SSUp>#d>dqEMD5graTf_s?}EQTToR_!3=+99Ca4o9Eb zp^$O5aUU~`psQ*G*i#7B=keg;^cH!5#r+fuAx+}>N7*6H!0UYj+?XP;-r(^)J!!no z3p}kFuj3d`pUbb4xt+!9tHbY~#_wI5mr3DyOA5ifmWSOu&!3!QCjdgYt-^h?7lNfa zPkUYn+G$Qck6+Ar%+pj}pN^LwbpqsZaUlQA!-qNhdD?EC2aW=y@G_ftcr6cGc^dZt zP3(LA?3N)6r!>wXUrAH8zpoEr17 zz!ZSsKZd~8L&SEXF2-%{it^j(f^!m}Uva!xHodM`c(k!tvcp>hcWZ|`tqvN#auaiI zC2`i@i^A;>==1G+{4-rAT6&MbIWyOwkADWHpDx6t=#6Oh+ks}`ZxZI5kFAx5 zc>R5M@qJW`*de8(cxrKL(Ng6PmbdjVlXRD0|r0d%JJ5WlEt5W_wbMB9-VF~k)n z8WskLM;rQ!?gPHKuJdMm)GkoG{-%YPx4on2`*fTbsy@VuB~?Yk`*kF(SM?JgJ+CGT zrdTno@;W*@|ABEwZeoSE4Sjb0h>HIfteovHMz{V4wZK96Vnj_*cKwI}Vb8Iw$5$9U zPDTBt5|ZC38k4e`h<$q8!r+VD#Pn9(#XjTqVn)Y0Vo->KIH$%S#5595QDB2lSyyxVQR6LD4%_V(;a_eLEKcAd}?^&a;}zQWY&-Nl!sO4;)+!S7p9iArOf%xH9D(6S7Gb~QKyj#dh*;iuF@_Iu zplh>{8X71xbZ0pxbv}$UCR7vi3vOW9tQ}~TAE5Pk5tVA*6jp3_fMI@XF~a(l$n`SO zczT9-{d{M!G%Z0~@<BAAOE)aR?SqxQyCj3!2YdA{+i`Co0xI@yUp0qP3`&I43MfOx}14 zA$h;aaMniV1e9a&_(M2oSUqu8o{#9{9KY-*N{3S^{Q6Lk3U(3*whGoO*U+HbfrT4} zi2Z1!m~i?HV)y2v<*7=fsQJR{^itIA9*$!l`-^uY{l%cT_hfqf4wN%*3!14JCjT}L zoef*!i+mq3eZ*YU?|p|UhwouU7v9bRzhgfA8TZ$2EJEG8#B9wb(z}j)ez`%Mm)7Cy zYunK<>=)FXzk>VEu0yH7hSq0IuwvUnEGu1xus;#=k{@H??(JB9)K5HfubG%Ico6!$ z+J%dF+ZTyzMik|%ajzkwwOJ& zrWn_7FzWjEKzD~WSlnX=R&hw;uI_zB-GopvVqhy#(!C+JfsrJ%#SToJ{2rZa4xnuX zh;rqAY&&rqW@nE=`S5-r=Pz%u;>{h*3|NX&S9*)-34L(R!#8LMAC8hvA#tNl;H1GX zP#e}80}gD(*Xfxkuk=;4YV)!D+*-`e8!kErnnh!ep5oXw5u)b5hHAx|(XhA^>bFEP zEnyR$`D-yw9_P#FBX2QaPZcrld;`(_VgT=#d3fQIKrua=;_W@_vEtku)UI8pTJK_F zY4I3K`>en@J3__e)s4kWy_Z-V@5U-gox&nH&ix{A?Xt~p?Rf0n%|bA?&?jf zbk!5HS{OuEUEc2XE;Jj8@X_>@cr;`KCR}QdT95ivYj}w$)r&A;4w})8R?l=~I zk%GG9-3ar1>5@?$P#-d#K-YHE^71`_nMEXj*Hp~*{Ss5Jeu+}n6C%a8!L**O(Pbxi zbkD-vi~gTcGg5o)&t^7ParVmf*^fgqR4?oO7aVW3D2WZ z5_+POrD6KGDrgOBg!&a;IK9aNv@G0D%Oa$sp4WlJY&zIT8~V~U6zl_~@sT1v_u z@#heIkyv^Jp`m_tgkcdT{j-roW4v!h=L;@l2C+7`5!dc26c)E3PLq?kGglG)(Ap@k zxKGT%hluOVSfbTfO69aS3e4GQvg8e+mPdPtbNPKzP;Up3n_VN?q6s9ZVLpM^(@ikr z6UAjB1o|u#^HoXmgQ3qpd`C zCkckSi-|PhjbNL>eHs~s9|MWa(Ud?=JrhiLU;G*R&zE1@?X`dkVJ|f6NdAauq zT(=?$Sd9+3Wd}iCzEyzhI|ZrPK|a3x1?be1>jl{k@Zo#+?K%^L4>N)*UXb0x1!#5K zBu!o*$f4~7nCmua+qVc>tsDWS6qz99l1W};;<`sq2dqBA!;9@Op;(aK?Gv=2PC@(Q z2LZHeMR4sL*Fn}gU{q5F%&lsIQqI)zg4}AP09iu?`P5(m+A*a+`!yseK-&~v*9TC6fbo@#>Z3=@=xo1pla5z4`B@`$@isxuFGeVBV1h{ldEOkZCye5K#d{WZd?L|*?$ zzL%S6f(E-xAP*>l{3s*DwXs9csv-!gVuE*_O<>^ZhA}2cUuc5w7Mq~$Iy=nC>l z)d&GcjLxAEXRmxoP8 z@V#OLscSqGdvR^zP(0{|#DjBnJOl+A!FnVf3{81D*F?ZfYr&+8`qdKXVW69=wHURSR;&=Pq3i#V>0@VwW!_2uy`c-%9d7RYT=o_{!x z|0xdS6C54~FJb}iavv`7@Q>UN9WV0wF5JN-xB@a5K{ zbrkSAJ=YSqo_lyS6ps$_(R!}`_u)U)fRDec_;~LB@todsj_Wz!^_B%*rRj)tB3xp`*B^+ql^8kfBi=%^7!J> zD?B>H$9=nJKkeCXd-ijl{i0`|<=Jn2T+e@8Uw>S8de&i{^_OQ|;#p_>_xIBCJ>v8C zf6u#~`N%VGeSB{{D0{gw| zi!-e|NtLMoPrj4?iTfYGpnS) zd&Num=BW)6`_0DX1&gqA-woJq>Sml{T7&gl&c@Y8R-*Pa8!tI`;?9SAaZjyH*tFkL zj5Th=yrSc{a_UXIo^}y$X4>$M7vE2OnuEdn)}U|ZTAb>eg%cA;VJzB6p-CCbjW#QzmZFf8y0Le9;vt7c-h^?ID2eGe0amz@k0*H zj-TqE9RJPFwc~qFd=OWp-yX;ITH_A39UV6#x+2y(H!t?47#rInZdj+6^X^8wYt8T2 z_vE6EXC^M_cxdh7j*0&ncCd literal 0 HcmV?d00001 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/SFX__railgun_charginf_failure.wav b/Aetheria-Economy_WwiseProject/Originals/SFX/SFX__railgun_charginf_failure.wav new file mode 100644 index 000000000..c6afa0644 --- /dev/null +++ b/Aetheria-Economy_WwiseProject/Originals/SFX/SFX__railgun_charginf_failure.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e9fd05e7dd46da05f6ac30f61e11f1d252abc403711ceff1dafafb1535c654b1 +size 412892 From 935a0e31293976a5025fdb8a306ca2786c7cfc01 Mon Sep 17 00:00:00 2001 From: Defirm <32074047+voivoontos@users.noreply.github.com> Date: Sat, 20 Mar 2021 19:04:38 +0100 Subject: [PATCH 11/51] defirm05 Weapon: railgun hit --- .../Actor-Mixer Hierarchy/SFX_Defirm_Unit.wwu | 30 ++++++++-- ...a-Economy_WwiseProject.crossover.wsettings | 5 ++ .../Events/SFX_Defirm_unit.wwu | 55 ++++++++++++++++++ .../Originals/SFX/SFX_railgun_hit.akd | Bin 0 -> 12076 bytes .../Originals/SFX/SFX_railgun_hit.wav | 3 + .../Originals/SFX/SFX_railgun_hit2.akd | Bin 0 -> 27328 bytes .../Originals/SFX/SFX_railgun_hit2.wav | 3 + 7 files changed, 92 insertions(+), 4 deletions(-) create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX_railgun_hit.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX_railgun_hit.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX_railgun_hit2.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX_railgun_hit2.wav diff --git a/Aetheria-Economy_WwiseProject/Actor-Mixer Hierarchy/SFX_Defirm_Unit.wwu b/Aetheria-Economy_WwiseProject/Actor-Mixer Hierarchy/SFX_Defirm_Unit.wwu index ab13b90d5..ef831db9a 100644 --- a/Aetheria-Economy_WwiseProject/Actor-Mixer Hierarchy/SFX_Defirm_Unit.wwu +++ b/Aetheria-Economy_WwiseProject/Actor-Mixer Hierarchy/SFX_Defirm_Unit.wwu @@ -2711,7 +2711,7 @@ - + @@ -2733,7 +2733,7 @@ - + @@ -2870,7 +2870,7 @@ - + @@ -2897,7 +2897,7 @@ - + @@ -2932,6 +2932,28 @@ + + + + + + + + + + + + SFX + SFX_railgun_hit2.wav + + + + + + + + + diff --git a/Aetheria-Economy_WwiseProject/Aetheria-Economy_WwiseProject.crossover.wsettings b/Aetheria-Economy_WwiseProject/Aetheria-Economy_WwiseProject.crossover.wsettings index 1ba09e6ef..7d77a5791 100644 --- a/Aetheria-Economy_WwiseProject/Aetheria-Economy_WwiseProject.crossover.wsettings +++ b/Aetheria-Economy_WwiseProject/Aetheria-Economy_WwiseProject.crossover.wsettings @@ -12,10 +12,13 @@ + + + @@ -24,6 +27,8 @@ + + diff --git a/Aetheria-Economy_WwiseProject/Events/SFX_Defirm_unit.wwu b/Aetheria-Economy_WwiseProject/Events/SFX_Defirm_unit.wwu index 9d669da99..a9c9ded41 100644 --- a/Aetheria-Economy_WwiseProject/Events/SFX_Defirm_unit.wwu +++ b/Aetheria-Economy_WwiseProject/Events/SFX_Defirm_unit.wwu @@ -37,6 +37,61 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_railgun_hit.akd b/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_railgun_hit.akd new file mode 100644 index 0000000000000000000000000000000000000000..78b80f0dfe32c5506949037c24d4086f54564b6e GIT binary patch literal 12076 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 z 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 X3qApp!6Xm`B0y96C(zCW?|}aU=`aoH literal 0 HcmV?d00001 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_railgun_hit2.wav b/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_railgun_hit2.wav new file mode 100644 index 000000000..f0b24d70f --- /dev/null +++ b/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_railgun_hit2.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8ce849ee2c14e690839adfd4e75c979fc7730308e402e9fa16266d62adcd8f19 +size 1152044 From d5f54782e6a9c8ca133b910274015b310d028d10 Mon Sep 17 00:00:00 2001 From: Defirm <32074047+voivoontos@users.noreply.github.com> Date: Sat, 20 Mar 2021 19:06:17 +0100 Subject: [PATCH 12/51] defirm06 simple save --- .../Aetheria-Economy_WwiseProject.crossover.wsettings | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/Aetheria-Economy_WwiseProject/Aetheria-Economy_WwiseProject.crossover.wsettings b/Aetheria-Economy_WwiseProject/Aetheria-Economy_WwiseProject.crossover.wsettings index 7d77a5791..6744707f7 100644 --- a/Aetheria-Economy_WwiseProject/Aetheria-Economy_WwiseProject.crossover.wsettings +++ b/Aetheria-Economy_WwiseProject/Aetheria-Economy_WwiseProject.crossover.wsettings @@ -77,13 +77,14 @@ - - + + - + + From 645fcf4b095a6fda3a5fe6b83f1433e030684857 Mon Sep 17 00:00:00 2001 From: Reinier Vens Date: Sun, 21 Mar 2021 01:55:25 +0000 Subject: [PATCH 13/51] Sensor Ping Added ping feature to sensors, pulsing a wave of revealing light into the level Added IEventBehavior interface, used by sensors and weapons, for behaviors containing event subscriptions which need to be reset when EntityInstance is disposed Implemented sensor impact for locked weapons (lock speed varies with sensor acquisition) Added ping cooldown bar to HUD Added spline curve implementations to AetheriaMath, applied better mapping to wormhole transition animation Tweaked loadout generator to prefer larger items to a controllable degree (e.g. very important for cargo bays, less for shop inventory), shop inventory bans non-ship hulls and manages internal space more effectively --- Assets/Materials/Brushes/Ping Light.mat | 83 + Assets/Materials/Brushes/Ping Light.mat.meta | 8 + .../UI/Galaxy Zone Background Primary.mat | 2 +- Assets/Materials/UI/Map Gravity Lines.mat | 2 +- Assets/Resources/Aetheria.inputactions | 31 +- Assets/Resources/Fog Tint.renderTexture | 5 +- Assets/Resources/Prefabs/PingEffect.prefab | 83 + .../Resources/Prefabs/PingEffect.prefab.meta | 7 + Assets/Resources/Prefabs/Ships/Djinni.prefab | 2 + .../Resources/Prefabs/Ships/Longinus.prefab | 2 + .../Resources/Prefabs/Weapons/Adrasteia.meta | 8 + .../Prefabs/Weapons/Adrasteia/ColdFire.prefab | 255 + .../Weapons/Adrasteia/ColdFire.prefab.meta | 7 + Assets/Resources/Prefabs/Weapons/ColferV.meta | 8 + .../Prefabs/Weapons/ColferV/6k Shooter.prefab | 320 + .../Weapons/ColferV/6k Shooter.prefab.meta | 7 + .../Prefabs/Weapons/ColferV/Cannonball.prefab | 320 + .../Weapons/ColferV/Cannonball.prefab.meta | 7 + .../Weapons/ColferV/DeathCluster.prefab | 5165 +++ .../Weapons/ColferV/DeathCluster.prefab.meta | 7 + .../Prefabs/Weapons/ColferV/Emperor.prefab | 34188 ++++++++++++++++ .../Weapons/ColferV/Emperor.prefab.meta | 7 + .../Weapons/ColferV/ShootYerEyeOut.prefab | 320 + .../ColferV/ShootYerEyeOut.prefab.meta | 7 + Assets/Resources/Prefabs/Weapons/DME.meta | 8 + .../Prefabs/Weapons/DME/bananasplit.prefab | 10004 +++++ .../Weapons/DME/bananasplit.prefab.meta | 7 + .../Prefabs/Weapons/DME/prettypretty.prefab | 321 + .../Weapons/DME/prettypretty.prefab.meta | 7 + .../Prefabs/Weapons/DME/railagainst.prefab | 34188 ++++++++++++++++ .../Weapons/DME/railagainst.prefab.meta | 7 + .../Prefabs/Weapons/DME/scorchedvoid.prefab | 5093 +++ .../Weapons/DME/scorchedvoid.prefab.meta | 7 + .../Resources/Prefabs/Weapons/MIRV-1.prefab | 10004 +++++ .../Prefabs/Weapons/MIRV-1.prefab.meta | 7 + .../Resources/Prefabs/Weapons/MIRV-2.prefab | 14945 +++++++ .../Prefabs/Weapons/MIRV-2.prefab.meta | 7 + .../Weapons/{MIRV.prefab => MIRV-3.prefab} | 0 .../{MIRV.prefab.meta => MIRV-3.prefab.meta} | 0 Assets/Resources/Settings.asset | 2 +- Assets/Scenes/ARPG.unity | 78 + Assets/Scenes/Main Menu.unity | 8 +- Assets/Scripts/AetheriaInput.cs | 41 +- Assets/Scripts/Gameplay/ActionGameManager.cs | 8 + Assets/Scripts/Gameplay/EntityInstance.cs | 23 + .../Gameplay/Weapons/GuidedProjectile.cs | 2 +- Assets/Scripts/Sector Display/ZoneRenderer.cs | 4 +- Assets/Scripts/ServerShared/AetheriaMath.cs | 77 + .../ServerShared/Behaviors/Behaviors.cs | 5 + .../ServerShared/Behaviors/ChargedWeapon.cs | 3 +- .../ServerShared/Behaviors/ConstantWeapon.cs | 4 +- .../ServerShared/Behaviors/InstantWeapon.cs | 4 +- .../ServerShared/Behaviors/LockWeapon.cs | 2 +- .../Scripts/ServerShared/Behaviors/Sensor.cs | 125 +- .../Scripts/ServerShared/Behaviors/Weapon.cs | 2 - Assets/Scripts/ServerShared/Entity.cs | 10 +- .../Scripts/ServerShared/LoadoutGenerator.cs | 26 +- Assets/Scripts/ServerShared/Ship.cs | 4 +- Assets/Scripts/UI/SchematicDisplay.cs | 3 + Assets/Shaders/Brushes/PowerBrush.shader | 5 +- GameData/AetherDB.msgpack | 4 +- GameData/PlayerSettings.msgpack | 4 +- 62 files changed, 115821 insertions(+), 79 deletions(-) create mode 100644 Assets/Materials/Brushes/Ping Light.mat create mode 100644 Assets/Materials/Brushes/Ping Light.mat.meta create mode 100644 Assets/Resources/Prefabs/PingEffect.prefab create mode 100644 Assets/Resources/Prefabs/PingEffect.prefab.meta create mode 100644 Assets/Resources/Prefabs/Weapons/Adrasteia.meta create mode 100644 Assets/Resources/Prefabs/Weapons/Adrasteia/ColdFire.prefab create mode 100644 Assets/Resources/Prefabs/Weapons/Adrasteia/ColdFire.prefab.meta create mode 100644 Assets/Resources/Prefabs/Weapons/ColferV.meta create mode 100644 Assets/Resources/Prefabs/Weapons/ColferV/6k Shooter.prefab create mode 100644 Assets/Resources/Prefabs/Weapons/ColferV/6k Shooter.prefab.meta create mode 100644 Assets/Resources/Prefabs/Weapons/ColferV/Cannonball.prefab create mode 100644 Assets/Resources/Prefabs/Weapons/ColferV/Cannonball.prefab.meta create mode 100644 Assets/Resources/Prefabs/Weapons/ColferV/DeathCluster.prefab create mode 100644 Assets/Resources/Prefabs/Weapons/ColferV/DeathCluster.prefab.meta create mode 100644 Assets/Resources/Prefabs/Weapons/ColferV/Emperor.prefab create mode 100644 Assets/Resources/Prefabs/Weapons/ColferV/Emperor.prefab.meta create mode 100644 Assets/Resources/Prefabs/Weapons/ColferV/ShootYerEyeOut.prefab create mode 100644 Assets/Resources/Prefabs/Weapons/ColferV/ShootYerEyeOut.prefab.meta create mode 100644 Assets/Resources/Prefabs/Weapons/DME.meta create mode 100644 Assets/Resources/Prefabs/Weapons/DME/bananasplit.prefab create mode 100644 Assets/Resources/Prefabs/Weapons/DME/bananasplit.prefab.meta create mode 100644 Assets/Resources/Prefabs/Weapons/DME/prettypretty.prefab create mode 100644 Assets/Resources/Prefabs/Weapons/DME/prettypretty.prefab.meta create mode 100644 Assets/Resources/Prefabs/Weapons/DME/railagainst.prefab create mode 100644 Assets/Resources/Prefabs/Weapons/DME/railagainst.prefab.meta create mode 100644 Assets/Resources/Prefabs/Weapons/DME/scorchedvoid.prefab create mode 100644 Assets/Resources/Prefabs/Weapons/DME/scorchedvoid.prefab.meta create mode 100644 Assets/Resources/Prefabs/Weapons/MIRV-1.prefab create mode 100644 Assets/Resources/Prefabs/Weapons/MIRV-1.prefab.meta create mode 100644 Assets/Resources/Prefabs/Weapons/MIRV-2.prefab create mode 100644 Assets/Resources/Prefabs/Weapons/MIRV-2.prefab.meta rename Assets/Resources/Prefabs/Weapons/{MIRV.prefab => MIRV-3.prefab} (100%) rename Assets/Resources/Prefabs/Weapons/{MIRV.prefab.meta => MIRV-3.prefab.meta} (100%) diff --git a/Assets/Materials/Brushes/Ping Light.mat b/Assets/Materials/Brushes/Ping Light.mat new file mode 100644 index 000000000..1af032486 --- /dev/null +++ b/Assets/Materials/Brushes/Ping Light.mat @@ -0,0 +1,83 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Ping Light + m_Shader: {fileID: 4800000, guid: 268da230635cfb34ab4ed6ad39503fa0, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _BumpScale: 1 + - _Cutoff: 0.5 + - _Depth: 0.1 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _Frequency: 6.2832 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossyReflections: 1 + - _Metallic: 0 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _Phase: 0 + - _Power: -2 + - _SinePower: 1.25 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _UVSec: 0 + - _ZWrite: 1 + m_Colors: + - _Color: {r: 0.19999999, g: 0.46133497, b: 1, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + m_BuildTextureStacks: [] diff --git a/Assets/Materials/Brushes/Ping Light.mat.meta b/Assets/Materials/Brushes/Ping Light.mat.meta new file mode 100644 index 000000000..97a6aefeb --- /dev/null +++ b/Assets/Materials/Brushes/Ping Light.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b7f61d4eb8f7e684cb95b6c7e5b84bf9 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Materials/UI/Galaxy Zone Background Primary.mat b/Assets/Materials/UI/Galaxy Zone Background Primary.mat index ddadafc39..a96080009 100644 --- a/Assets/Materials/UI/Galaxy Zone Background Primary.mat +++ b/Assets/Materials/UI/Galaxy Zone Background Primary.mat @@ -93,7 +93,7 @@ Material: - _ZWrite: 0 m_Colors: - _CameraFadeParams: {r: 0, g: Infinity, b: 0, a: 0} - - _Color: {r: 1, g: 1, b: 1, a: 1} + - _Color: {r: 0, g: 0, b: 0, a: 1} - _ColorAddSubDiff: {r: 0, g: 0, b: 0, a: 0} - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0} diff --git a/Assets/Materials/UI/Map Gravity Lines.mat b/Assets/Materials/UI/Map Gravity Lines.mat index 749d876be..e73d377f3 100644 --- a/Assets/Materials/UI/Map Gravity Lines.mat +++ b/Assets/Materials/UI/Map Gravity Lines.mat @@ -86,7 +86,7 @@ Material: - _Mode: 0 - _OcclusionStrength: 1 - _Parallax: 0.02 - - _Scale: 0.5 + - _Scale: 3.8277004 - _SmoothnessTextureChannel: 0 - _SpecularHighlights: 1 - _SrcBlend: 1 diff --git a/Assets/Resources/Aetheria.inputactions b/Assets/Resources/Aetheria.inputactions index 38b255860..eeb940607 100644 --- a/Assets/Resources/Aetheria.inputactions +++ b/Assets/Resources/Aetheria.inputactions @@ -180,6 +180,14 @@ "expectedControlType": "Button", "processors": "", "interactions": "" + }, + { + "name": "Ping", + "type": "Button", + "id": "cfc95f69-9b8a-41d5-a071-003b4e292524", + "expectedControlType": "Button", + "processors": "", + "interactions": "" } ], "bindings": [ @@ -538,10 +546,10 @@ { "name": "", "id": "6e13d87d-e5bb-4363-b153-1e0c1e21e4eb", - "path": "/t", + "path": "/#(Y)", "interactions": "", "processors": "", - "groups": "", + "groups": "Keyboard&Mouse", "action": "Target Previous", "isComposite": false, "isPartOfComposite": false @@ -549,10 +557,10 @@ { "name": "", "id": "e6e3164c-1b59-4eab-99d9-5a3bc294af0b", - "path": "/y", + "path": "/#(U)", "interactions": "", "processors": "", - "groups": "", + "groups": "Keyboard&Mouse", "action": "Target Next", "isComposite": false, "isPartOfComposite": false @@ -560,7 +568,7 @@ { "name": "", "id": "b55dd143-367d-4842-82c8-593c301bcd69", - "path": "/u", + "path": "/#(T)", "interactions": "", "processors": "", "groups": "Keyboard&Mouse", @@ -574,7 +582,7 @@ "path": "/#(H)", "interactions": "", "processors": "", - "groups": "", + "groups": "Keyboard&Mouse", "action": "Toggle Heatsinks", "isComposite": false, "isPartOfComposite": false @@ -611,6 +619,17 @@ "action": "Override Shutdown", "isComposite": false, "isPartOfComposite": false + }, + { + "name": "", + "id": "baa67cdf-3c91-46dd-965c-12370a897414", + "path": "/#(X)", + "interactions": "", + "processors": "", + "groups": "Keyboard&Mouse", + "action": "Ping", + "isComposite": false, + "isPartOfComposite": false } ] }, diff --git a/Assets/Resources/Fog Tint.renderTexture b/Assets/Resources/Fog Tint.renderTexture index 81bbea5f7..a90418a4e 100644 --- a/Assets/Resources/Fog Tint.renderTexture +++ b/Assets/Resources/Fog Tint.renderTexture @@ -12,9 +12,10 @@ RenderTexture: Hash: 00000000000000000000000000000000 m_ForcedFallbackFormat: 4 m_DownscaleFallback: 0 + m_IsAlphaChannelOptional: 0 serializedVersion: 3 - m_Width: 256 - m_Height: 256 + m_Width: 512 + m_Height: 512 m_AntiAliasing: 1 m_MipCount: -1 m_DepthFormat: 0 diff --git a/Assets/Resources/Prefabs/PingEffect.prefab b/Assets/Resources/Prefabs/PingEffect.prefab new file mode 100644 index 000000000..05e06a406 --- /dev/null +++ b/Assets/Resources/Prefabs/PingEffect.prefab @@ -0,0 +1,83 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &3496685214803260731 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3496685214803260728} + - component: {fileID: 3496685214803260729} + - component: {fileID: 3496685214803260730} + m_Layer: 13 + m_Name: PingEffect + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3496685214803260728 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3496685214803260731} + m_LocalRotation: {x: 0.7071068, y: 0, z: 0, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 90, y: 0, z: 0} +--- !u!33 &3496685214803260729 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3496685214803260731} + m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &3496685214803260730 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3496685214803260731} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: b7f61d4eb8f7e684cb95b6c7e5b84bf9, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} diff --git a/Assets/Resources/Prefabs/PingEffect.prefab.meta b/Assets/Resources/Prefabs/PingEffect.prefab.meta new file mode 100644 index 000000000..5843388b6 --- /dev/null +++ b/Assets/Resources/Prefabs/PingEffect.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: bfcaa66e173f6a44cb640aabbcb5e429 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Prefabs/Ships/Djinni.prefab b/Assets/Resources/Prefabs/Ships/Djinni.prefab index 46f9534a6..f673c5f74 100644 --- a/Assets/Resources/Prefabs/Ships/Djinni.prefab +++ b/Assets/Resources/Prefabs/Ships/Djinni.prefab @@ -6928,6 +6928,8 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 1306f57022ae47ceba7441145a065cb1, type: 3} m_Name: m_EditorClassIdentifier: + PingPrefab: {fileID: 3496685214803260728, guid: bfcaa66e173f6a44cb640aabbcb5e429, + type: 3} InvisibleMaterial: {fileID: 2100000, guid: c94a225de88e5ce42af01c34df3521e6, type: 2} Shield: {fileID: 1053924711515204557} HullColliders: diff --git a/Assets/Resources/Prefabs/Ships/Longinus.prefab b/Assets/Resources/Prefabs/Ships/Longinus.prefab index 515a074db..73b21b07c 100644 --- a/Assets/Resources/Prefabs/Ships/Longinus.prefab +++ b/Assets/Resources/Prefabs/Ships/Longinus.prefab @@ -57,6 +57,8 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 1306f57022ae47ceba7441145a065cb1, type: 3} m_Name: m_EditorClassIdentifier: + PingPrefab: {fileID: 3496685214803260728, guid: bfcaa66e173f6a44cb640aabbcb5e429, + type: 3} InvisibleMaterial: {fileID: 2100000, guid: c94a225de88e5ce42af01c34df3521e6, type: 2} Shield: {fileID: 1396696402015347448} HullColliders: diff --git a/Assets/Resources/Prefabs/Weapons/Adrasteia.meta b/Assets/Resources/Prefabs/Weapons/Adrasteia.meta new file mode 100644 index 000000000..e369546fd --- /dev/null +++ b/Assets/Resources/Prefabs/Weapons/Adrasteia.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 6f6df327c504f1342a631bacb599113d +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Prefabs/Weapons/Adrasteia/ColdFire.prefab b/Assets/Resources/Prefabs/Weapons/Adrasteia/ColdFire.prefab new file mode 100644 index 000000000..d32abc517 --- /dev/null +++ b/Assets/Resources/Prefabs/Weapons/Adrasteia/ColdFire.prefab @@ -0,0 +1,255 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &4203591693056891767 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4203591693056891769} + - component: {fileID: 4203591693056891768} + m_Layer: 0 + m_Name: ColdFire + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4203591693056891769 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4203591693056891767} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 4203591693453005872} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &4203591693056891768 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4203591693056891767} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5745a5be5f0c02b4b88bd094ea609c13, type: 3} + m_Name: + m_EditorClassIdentifier: + ProjectilePrototype: {fileID: 4203591693453005875} +--- !u!1 &4203591693453005871 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4203591693453005872} + - component: {fileID: 4203591693453005874} + - component: {fileID: 4203591693453005873} + - component: {fileID: 4203591693453005875} + m_Layer: 0 + m_Name: Laser + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4203591693453005872 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4203591693453005871} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 4203591693056891769} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &4203591693453005874 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4203591693453005871} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 166b726996e49bd4b87608739a5af815, type: 3} + m_Name: + m_EditorClassIdentifier: + IntensityCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 15.359776 + outSlope: 15.359776 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0.17217594 + - serializedVersion: 3 + time: 0.14818993 + value: 1 + inSlope: -0.07577679 + outSlope: -0.07577679 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.07689258 + - serializedVersion: 3 + time: 0.49870214 + value: 0.66603607 + inSlope: 0.021693684 + outSlope: 0.021693684 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.85040694 + value: 0.99160814 + inSlope: -0.19486254 + outSlope: -0.19486254 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: -17.741524 + outSlope: -17.741524 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.08716334 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + Duration: 0.75 + LineRenderer: {fileID: 4203591693453005873} +--- !u!120 &4203591693453005873 +LineRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4203591693453005871} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 0 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 521deb6b226a2f647b1f07d7478f7770, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Positions: + - {x: 0, y: 0, z: 0} + - {x: 0, y: 0, z: 10} + m_Parameters: + serializedVersion: 3 + widthMultiplier: 0.5 + widthCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + colorGradient: + serializedVersion: 2 + key0: {r: 0.05098039, g: 0.26430202, b: 1, a: 1} + key1: {r: 0.054901958, g: 0.61231256, b: 1, a: 1} + key2: {r: 1, g: 1, b: 1, a: 0} + key3: {r: 1, g: 1, b: 1, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 65535 + ctime3: 65535 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + numCornerVertices: 0 + numCapVertices: 2 + alignment: 0 + textureMode: 0 + shadowBias: 0.5 + generateLightingData: 0 + m_UseWorldSpace: 1 + m_Loop: 0 +--- !u!114 &4203591693453005875 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4203591693453005871} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1281fe44325f9b548aa42dc331b17266, type: 3} + m_Name: + m_EditorClassIdentifier: diff --git a/Assets/Resources/Prefabs/Weapons/Adrasteia/ColdFire.prefab.meta b/Assets/Resources/Prefabs/Weapons/Adrasteia/ColdFire.prefab.meta new file mode 100644 index 000000000..8ca0b52e4 --- /dev/null +++ b/Assets/Resources/Prefabs/Weapons/Adrasteia/ColdFire.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: d5623ffa649883b449bd2583e871b0b0 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Prefabs/Weapons/ColferV.meta b/Assets/Resources/Prefabs/Weapons/ColferV.meta new file mode 100644 index 000000000..5f99ffd25 --- /dev/null +++ b/Assets/Resources/Prefabs/Weapons/ColferV.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c26755921b7a20e489bf507a12268116 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Prefabs/Weapons/ColferV/6k Shooter.prefab b/Assets/Resources/Prefabs/Weapons/ColferV/6k Shooter.prefab new file mode 100644 index 000000000..4fb81e4cf --- /dev/null +++ b/Assets/Resources/Prefabs/Weapons/ColferV/6k Shooter.prefab @@ -0,0 +1,320 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &1038711833328602429 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7093708978518643867} + - component: {fileID: 4746410263980518329} + - component: {fileID: 277178765566372861} + - component: {fileID: 654273117314929370} + m_Layer: 0 + m_Name: Bullet + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &7093708978518643867 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1038711833328602429} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 7887646903913370668} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &4746410263980518329 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1038711833328602429} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1281fe44325f9b548aa42dc331b17266, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!96 &277178765566372861 +TrailRenderer: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1038711833328602429} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 9c20b9ccbbbb1b14cb5729e0c8460cd9, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Time: 0.1 + m_Parameters: + serializedVersion: 3 + widthMultiplier: 1 + widthCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: -1 + tangentMode: 69 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: -1 + outSlope: 0 + tangentMode: 69 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + colorGradient: + serializedVersion: 2 + key0: {r: 1, g: 0.99469995, b: 0.45098042, a: 1} + key1: {r: 1, g: 0.3910084, b: 0.049000025, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 31804 + ctime2: 65535 + ctime3: 65535 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 3 + m_NumAlphaKeys: 2 + numCornerVertices: 0 + numCapVertices: 0 + alignment: 0 + textureMode: 0 + shadowBias: 0.5 + generateLightingData: 0 + m_MinVertexDistance: 1 + m_Autodestruct: 0 + m_Emitting: 1 +--- !u!114 &654273117314929370 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1038711833328602429} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4528540a139424748a7b6c47bfecc7fd, type: 3} + m_Name: + m_EditorClassIdentifier: + Trail: {fileID: 277178765566372861} + Gravity: 1 + HitEffect: {fileID: 3196731101172068069} +--- !u!1 &6642079567538326943 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7887646903913370668} + - component: {fileID: 4191762351494344457} + m_Layer: 0 + m_Name: Bullet Manager + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &7887646903913370668 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6642079567538326943} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 7093708978518643867} + - {fileID: 6081895055445446888} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &4191762351494344457 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6642079567538326943} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 49c173e3c2313ca4d9d04d0d87ec0f06, type: 3} + m_Name: + m_EditorClassIdentifier: + ProjectilePrototype: {fileID: 4746410263980518329} +--- !u!1001 &6082388488576249182 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 7887646903913370668} + m_Modifications: + - target: {fileID: 1337198075554910, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, type: 3} + propertyPath: m_Name + value: TinyExplosion + objectReference: {fileID: 0} + - target: {fileID: 4441266138185142, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, type: 3} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4441266138185142, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, type: 3} + propertyPath: m_LocalPosition.x + value: -4.2346153 + objectReference: {fileID: 0} + - target: {fileID: 4441266138185142, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, type: 3} + propertyPath: m_LocalPosition.y + value: 2.42 + objectReference: {fileID: 0} + - target: {fileID: 4441266138185142, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, type: 3} + propertyPath: m_LocalPosition.z + value: -21.91896 + objectReference: {fileID: 0} + - target: {fileID: 4441266138185142, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, type: 3} + propertyPath: m_LocalRotation.w + value: 0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 4441266138185142, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, type: 3} + propertyPath: m_LocalRotation.x + value: -0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 4441266138185142, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4441266138185142, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4441266138185142, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: -90 + objectReference: {fileID: 0} + - target: {fileID: 4441266138185142, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4441266138185142, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 198175801688348628, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, + type: 3} + propertyPath: looping + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 198175801688348628, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, + type: 3} + propertyPath: prewarm + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 198814760465859298, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, + type: 3} + propertyPath: looping + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 198814760465859298, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, + type: 3} + propertyPath: prewarm + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 198942329355805636, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, + type: 3} + propertyPath: looping + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 198942329355805636, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, + type: 3} + propertyPath: prewarm + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, type: 3} +--- !u!4 &6081895055445446888 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4441266138185142, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, + type: 3} + m_PrefabInstance: {fileID: 6082388488576249182} + m_PrefabAsset: {fileID: 0} +--- !u!114 &3196731101172068069 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 8662091027736085435, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, + type: 3} + m_PrefabInstance: {fileID: 6082388488576249182} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1281fe44325f9b548aa42dc331b17266, type: 3} + m_Name: + m_EditorClassIdentifier: diff --git a/Assets/Resources/Prefabs/Weapons/ColferV/6k Shooter.prefab.meta b/Assets/Resources/Prefabs/Weapons/ColferV/6k Shooter.prefab.meta new file mode 100644 index 000000000..bce24d5b7 --- /dev/null +++ b/Assets/Resources/Prefabs/Weapons/ColferV/6k Shooter.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 63e47e903917bc44096ba8662264b167 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Prefabs/Weapons/ColferV/Cannonball.prefab b/Assets/Resources/Prefabs/Weapons/ColferV/Cannonball.prefab new file mode 100644 index 000000000..4fb81e4cf --- /dev/null +++ b/Assets/Resources/Prefabs/Weapons/ColferV/Cannonball.prefab @@ -0,0 +1,320 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &1038711833328602429 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7093708978518643867} + - component: {fileID: 4746410263980518329} + - component: {fileID: 277178765566372861} + - component: {fileID: 654273117314929370} + m_Layer: 0 + m_Name: Bullet + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &7093708978518643867 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1038711833328602429} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 7887646903913370668} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &4746410263980518329 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1038711833328602429} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1281fe44325f9b548aa42dc331b17266, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!96 &277178765566372861 +TrailRenderer: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1038711833328602429} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 9c20b9ccbbbb1b14cb5729e0c8460cd9, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Time: 0.1 + m_Parameters: + serializedVersion: 3 + widthMultiplier: 1 + widthCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: -1 + tangentMode: 69 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: -1 + outSlope: 0 + tangentMode: 69 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + colorGradient: + serializedVersion: 2 + key0: {r: 1, g: 0.99469995, b: 0.45098042, a: 1} + key1: {r: 1, g: 0.3910084, b: 0.049000025, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 31804 + ctime2: 65535 + ctime3: 65535 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 3 + m_NumAlphaKeys: 2 + numCornerVertices: 0 + numCapVertices: 0 + alignment: 0 + textureMode: 0 + shadowBias: 0.5 + generateLightingData: 0 + m_MinVertexDistance: 1 + m_Autodestruct: 0 + m_Emitting: 1 +--- !u!114 &654273117314929370 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1038711833328602429} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4528540a139424748a7b6c47bfecc7fd, type: 3} + m_Name: + m_EditorClassIdentifier: + Trail: {fileID: 277178765566372861} + Gravity: 1 + HitEffect: {fileID: 3196731101172068069} +--- !u!1 &6642079567538326943 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7887646903913370668} + - component: {fileID: 4191762351494344457} + m_Layer: 0 + m_Name: Bullet Manager + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &7887646903913370668 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6642079567538326943} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 7093708978518643867} + - {fileID: 6081895055445446888} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &4191762351494344457 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6642079567538326943} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 49c173e3c2313ca4d9d04d0d87ec0f06, type: 3} + m_Name: + m_EditorClassIdentifier: + ProjectilePrototype: {fileID: 4746410263980518329} +--- !u!1001 &6082388488576249182 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 7887646903913370668} + m_Modifications: + - target: {fileID: 1337198075554910, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, type: 3} + propertyPath: m_Name + value: TinyExplosion + objectReference: {fileID: 0} + - target: {fileID: 4441266138185142, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, type: 3} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4441266138185142, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, type: 3} + propertyPath: m_LocalPosition.x + value: -4.2346153 + objectReference: {fileID: 0} + - target: {fileID: 4441266138185142, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, type: 3} + propertyPath: m_LocalPosition.y + value: 2.42 + objectReference: {fileID: 0} + - target: {fileID: 4441266138185142, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, type: 3} + propertyPath: m_LocalPosition.z + value: -21.91896 + objectReference: {fileID: 0} + - target: {fileID: 4441266138185142, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, type: 3} + propertyPath: m_LocalRotation.w + value: 0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 4441266138185142, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, type: 3} + propertyPath: m_LocalRotation.x + value: -0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 4441266138185142, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4441266138185142, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4441266138185142, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: -90 + objectReference: {fileID: 0} + - target: {fileID: 4441266138185142, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4441266138185142, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 198175801688348628, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, + type: 3} + propertyPath: looping + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 198175801688348628, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, + type: 3} + propertyPath: prewarm + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 198814760465859298, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, + type: 3} + propertyPath: looping + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 198814760465859298, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, + type: 3} + propertyPath: prewarm + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 198942329355805636, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, + type: 3} + propertyPath: looping + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 198942329355805636, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, + type: 3} + propertyPath: prewarm + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, type: 3} +--- !u!4 &6081895055445446888 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4441266138185142, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, + type: 3} + m_PrefabInstance: {fileID: 6082388488576249182} + m_PrefabAsset: {fileID: 0} +--- !u!114 &3196731101172068069 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 8662091027736085435, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, + type: 3} + m_PrefabInstance: {fileID: 6082388488576249182} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1281fe44325f9b548aa42dc331b17266, type: 3} + m_Name: + m_EditorClassIdentifier: diff --git a/Assets/Resources/Prefabs/Weapons/ColferV/Cannonball.prefab.meta b/Assets/Resources/Prefabs/Weapons/ColferV/Cannonball.prefab.meta new file mode 100644 index 000000000..9e6f1192e --- /dev/null +++ b/Assets/Resources/Prefabs/Weapons/ColferV/Cannonball.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 76d5d92dfd78a7d4ab3bd36e37e32738 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Prefabs/Weapons/ColferV/DeathCluster.prefab b/Assets/Resources/Prefabs/Weapons/ColferV/DeathCluster.prefab new file mode 100644 index 000000000..46b22cf21 --- /dev/null +++ b/Assets/Resources/Prefabs/Weapons/ColferV/DeathCluster.prefab @@ -0,0 +1,5165 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &1038711833328602429 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7093708978518643867} + - component: {fileID: 4746410263980518329} + - component: {fileID: 654273117314929370} + - component: {fileID: 1782208234081298454} + m_Layer: 0 + m_Name: Bullet + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &7093708978518643867 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1038711833328602429} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 7266740123558298384} + m_Father: {fileID: 7887646903913370668} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &4746410263980518329 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1038711833328602429} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1281fe44325f9b548aa42dc331b17266, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &654273117314929370 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1038711833328602429} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4528540a139424748a7b6c47bfecc7fd, type: 3} + m_Name: + m_EditorClassIdentifier: + Trail: {fileID: 2983319151296838409} + Gravity: 1 + HitEffect: {fileID: 6014187763460843580} +--- !u!120 &1782208234081298454 +LineRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1038711833328602429} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 0 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: a3d833bf6ee0ed54994a6cfdc76b3539, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Positions: + - {x: 0, y: 0, z: 4} + - {x: 0, y: 0, z: -2} + m_Parameters: + serializedVersion: 3 + widthMultiplier: 1 + widthCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0.5080659 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + colorGradient: + serializedVersion: 2 + key0: {r: 1, g: 0.12916668, b: 0.050000012, a: 1} + key1: {r: 0, g: 0, b: 0, a: 0} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + numCornerVertices: 0 + numCapVertices: 0 + alignment: 0 + textureMode: 0 + shadowBias: 0.5 + generateLightingData: 0 + m_UseWorldSpace: 0 + m_Loop: 0 +--- !u!1 &1666871289929742290 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7266740123558298384} + - component: {fileID: 2983319151296838409} + m_Layer: 0 + m_Name: Trail + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &7266740123558298384 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1666871289929742290} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 7093708978518643867} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!96 &2983319151296838409 +TrailRenderer: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1666871289929742290} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: af2d3f1cfe85b8449964aba7ec8ce480, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Time: 0.025 + m_Parameters: + serializedVersion: 3 + widthMultiplier: 1 + widthCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0.2500019 + inSlope: 0 + outSlope: 0.7499981 + tangentMode: 69 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0.7499981 + outSlope: 0 + tangentMode: 69 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + colorGradient: + serializedVersion: 2 + key0: {r: 0.3962264, g: 0.3962264, b: 0.3962264, a: 1} + key1: {r: 0, g: 0, b: 0, a: 0} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 65535 + ctime3: 65535 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + numCornerVertices: 0 + numCapVertices: 0 + alignment: 0 + textureMode: 0 + shadowBias: 0.5 + generateLightingData: 0 + m_MinVertexDistance: 1 + m_Autodestruct: 0 + m_Emitting: 1 +--- !u!1 &6083979938508346270 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6086720148793020400} + - component: {fileID: 6246154612161467640} + - component: {fileID: 6014187763460843580} + - component: {fileID: 7207477574855530992} + - component: {fileID: 6244989522357989308} + m_Layer: 0 + m_Name: Sparks + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &6086720148793020400 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6083979938508346270} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 2, y: 2, z: 2} + m_Children: [] + m_Father: {fileID: 7887646903913370668} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!199 &6246154612161467640 +ParticleSystemRenderer: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6083979938508346270} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 4294967295 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 776677ab3818fb249adaca05f4e04545, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_RenderMode: 1 + m_SortMode: 1 + m_MinParticleSize: 0 + m_MaxParticleSize: 0.5 + m_CameraVelocityScale: 0 + m_VelocityScale: 0.25 + m_LengthScale: 0 + m_SortingFudge: 0 + m_NormalDirection: 1 + m_ShadowBias: 0 + m_RenderAlignment: 0 + m_Pivot: {x: 0, y: 0, z: 0} + m_Flip: {x: 0, y: 0, z: 0} + m_UseCustomVertexStreams: 1 + m_EnableGPUInstancing: 0 + m_ApplyActiveColorSpace: 0 + m_AllowRoll: 1 + m_FreeformStretching: 0 + m_RotateWithStretchDirection: 1 + m_VertexStreams: 000304 + m_Mesh: {fileID: 0} + m_Mesh1: {fileID: 0} + m_Mesh2: {fileID: 0} + m_Mesh3: {fileID: 0} + m_MaskInteraction: 0 +--- !u!114 &6014187763460843580 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6083979938508346270} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1281fe44325f9b548aa42dc331b17266, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &7207477574855530992 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6083979938508346270} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: db021a309de3d324588c5603de40c29f, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!198 &6244989522357989308 +ParticleSystem: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6083979938508346270} + serializedVersion: 7 + lengthInSec: 2 + simulationSpeed: 2 + stopAction: 0 + cullingMode: 3 + ringBufferMode: 0 + ringBufferLoopRange: {x: 0, y: 1} + looping: 0 + prewarm: 0 + playOnAwake: 1 + useUnscaledTime: 0 + autoRandomSeed: 1 + useRigidbodyForVelocity: 1 + startDelay: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + moveWithTransform: 0 + moveWithCustomTransform: {fileID: 0} + scalingMode: 2 + randomSeed: 0 + InitialModule: + serializedVersion: 3 + enabled: 1 + startLifetime: + serializedVersion: 2 + minMaxState: 3 + scalar: 1 + minScalar: 0.5 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 0 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0.5 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 0 + startSpeed: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 3 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 0 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0.5 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 0 + startColor: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 0.990566, g: 0.4385336, b: 0.19157171, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + startSize: + serializedVersion: 2 + minMaxState: 3 + scalar: 0.2 + minScalar: 0.05 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 0 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0.19999999 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 0 + startSizeY: + serializedVersion: 2 + minMaxState: 3 + scalar: 1 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 0 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 0 + startSizeZ: + serializedVersion: 2 + minMaxState: 3 + scalar: 1 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 0 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 0 + startRotationX: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startRotationY: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startRotation: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + randomizeRotationDirection: 0 + maxNumParticles: 1000 + size3D: 0 + rotation3D: 0 + gravityModifier: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + ShapeModule: + serializedVersion: 6 + enabled: 1 + type: 0 + angle: 32.22 + length: 0.12 + boxThickness: {x: 0, y: 0, z: 0} + radiusThickness: 0 + donutRadius: 0.2 + m_Position: {x: 0, y: 0, z: 0} + m_Rotation: {x: 0, y: 0, z: 0} + m_Scale: {x: 1, y: 1, z: 1} + placementMode: 0 + m_MeshMaterialIndex: 0 + m_MeshNormalOffset: 0 + m_MeshSpawn: + mode: 0 + spread: 0 + speed: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Mesh: {fileID: 0} + m_MeshRenderer: {fileID: 0} + m_SkinnedMeshRenderer: {fileID: 0} + m_Sprite: {fileID: 0} + m_SpriteRenderer: {fileID: 0} + m_UseMeshMaterialIndex: 0 + m_UseMeshColors: 1 + alignToDirection: 0 + m_Texture: {fileID: 0} + m_TextureClipChannel: 3 + m_TextureClipThreshold: 0 + m_TextureUVChannel: 0 + m_TextureColorAffectsParticles: 1 + m_TextureAlphaAffectsParticles: 1 + m_TextureBilinearFiltering: 0 + randomDirectionAmount: 0 + sphericalDirectionAmount: 0 + randomPositionAmount: 0 + radius: + value: 0.43552133 + mode: 0 + spread: 0 + speed: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + arc: + value: 360 + mode: 0 + spread: 0 + speed: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + EmissionModule: + enabled: 1 + serializedVersion: 4 + rateOverTime: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 10 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + rateOverDistance: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_BurstCount: 1 + m_Bursts: + - serializedVersion: 2 + time: 0 + countCurve: + serializedVersion: 2 + minMaxState: 0 + scalar: 10 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + cycleCount: 1 + repeatInterval: 0.05 + probability: 1 + SizeModule: + enabled: 0 + curve: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + RotationModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + curve: + serializedVersion: 2 + minMaxState: 0 + scalar: 0.7853982 + minScalar: 0.7853982 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + ColorModule: + enabled: 1 + gradient: + serializedVersion: 2 + minMaxState: 1 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 0} + key1: {r: 0.91764706, g: 0.39607844, b: 0, a: 1} + key2: {r: 0, g: 0, b: 0, a: 1} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 6168 + atime2: 53199 + atime3: 65535 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 4 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + UVModule: + serializedVersion: 2 + enabled: 0 + mode: 0 + timeMode: 0 + fps: 30 + frameOverTime: + serializedVersion: 2 + minMaxState: 1 + scalar: 0.9999 + minScalar: 0.9999 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startFrame: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + speedRange: {x: 0, y: 1} + tilesX: 1 + tilesY: 1 + animationType: 0 + rowIndex: 0 + cycles: 1 + uvChannelMask: -1 + rowMode: 1 + sprites: + - sprite: {fileID: 0} + flipU: 0 + flipV: 0 + VelocityModule: + enabled: 1 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalX: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalY: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalZ: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalOffsetX: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalOffsetY: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalOffsetZ: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + radial: + serializedVersion: 2 + minMaxState: 1 + scalar: 5 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: -4.1481485 + outSlope: -4.1481485 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.36101347 + - serializedVersion: 3 + time: 0.115407646 + value: 0.32009315 + inSlope: -1.885982 + outSlope: -1.885982 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.13906091 + - serializedVersion: 3 + time: 1 + value: 0.25959396 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + speedModifier: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + inWorldSpace: 1 + InheritVelocityModule: + enabled: 0 + m_Mode: 0 + m_Curve: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + LifetimeByEmitterSpeedModule: + enabled: 0 + m_Curve: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: -0.8 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0.2 + inSlope: -0.8 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Range: {x: 0, y: 1} + ForceModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + inWorldSpace: 0 + randomizePerFrame: 0 + ExternalForcesModule: + serializedVersion: 2 + enabled: 0 + multiplierCurve: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + influenceFilter: 0 + influenceMask: + serializedVersion: 2 + m_Bits: 4294967295 + influenceList: [] + ClampVelocityModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + magnitude: + serializedVersion: 2 + minMaxState: 2 + scalar: 5 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: -2 + outSlope: -2 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxis: 0 + inWorldSpace: 0 + multiplyDragByParticleSize: 1 + multiplyDragByParticleVelocity: 1 + dampen: 1 + drag: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + NoiseModule: + enabled: 1 + strength: + serializedVersion: 2 + minMaxState: 0 + scalar: 0.5 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + strengthY: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + strengthZ: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + frequency: 1 + damping: 1 + octaves: 1 + octaveMultiplier: 0.5 + octaveScale: 2 + quality: 2 + scrollSpeed: + serializedVersion: 2 + minMaxState: 0 + scalar: 2 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remap: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: -1 + inSlope: 0 + outSlope: 2 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 2 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remapY: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: -1 + inSlope: 0 + outSlope: 2 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 2 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remapZ: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: -1 + inSlope: 0 + outSlope: 2 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 2 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remapEnabled: 0 + positionAmount: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + rotationAmount: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + sizeAmount: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + SizeBySpeedModule: + enabled: 0 + curve: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + range: {x: 0, y: 1} + separateAxes: 0 + RotationBySpeedModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + curve: + serializedVersion: 2 + minMaxState: 0 + scalar: 0.7853982 + minScalar: 0.7853982 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + range: {x: 0, y: 1} + ColorBySpeedModule: + enabled: 0 + gradient: + serializedVersion: 2 + minMaxState: 1 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + range: {x: 0, y: 1} + CollisionModule: + enabled: 0 + serializedVersion: 4 + type: 0 + collisionMode: 0 + colliderForce: 0 + multiplyColliderForceByParticleSize: 0 + multiplyColliderForceByParticleSpeed: 0 + multiplyColliderForceByCollisionAngle: 1 + m_Planes: + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + m_Dampen: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Bounce: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_EnergyLossOnCollision: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minKillSpeed: 0 + maxKillSpeed: 10000 + radiusScale: 1 + collidesWith: + serializedVersion: 2 + m_Bits: 4294967295 + maxCollisionShapes: 256 + quality: 0 + voxelSize: 0.5 + collisionMessages: 0 + collidesWithDynamic: 1 + interiorCollisions: 1 + TriggerModule: + enabled: 0 + serializedVersion: 2 + inside: 1 + outside: 0 + enter: 0 + exit: 0 + colliderQueryMode: 0 + radiusScale: 1 + primitives: + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + SubModule: + serializedVersion: 2 + enabled: 0 + subEmitters: + - serializedVersion: 3 + emitter: {fileID: 0} + type: 0 + properties: 0 + emitProbability: 1 + LightsModule: + enabled: 0 + ratio: 0 + light: {fileID: 0} + randomDistribution: 1 + color: 1 + range: 1 + intensity: 1 + rangeCurve: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + intensityCurve: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + maxLights: 20 + TrailModule: + enabled: 0 + mode: 0 + ratio: 1 + lifetime: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minVertexDistance: 0.2 + textureMode: 0 + ribbonCount: 1 + shadowBias: 0.5 + worldSpace: 0 + dieWithParticles: 1 + sizeAffectsWidth: 1 + sizeAffectsLifetime: 0 + inheritParticleColor: 1 + generateLightingData: 0 + splitSubEmitterRibbons: 0 + attachRibbonsToTransform: 0 + colorOverLifetime: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + widthOverTrail: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + colorOverTrail: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + CustomDataModule: + enabled: 0 + mode0: 0 + vectorComponentCount0: 4 + color0: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + colorLabel0: Color + vector0_0: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_0: X + vector0_1: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_1: Y + vector0_2: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_2: Z + vector0_3: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_3: W + mode1: 0 + vectorComponentCount1: 4 + color1: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + colorLabel1: Color + vector1_0: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_0: X + vector1_1: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_1: Y + vector1_2: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_2: Z + vector1_3: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_3: W +--- !u!1 &6642079567538326943 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7887646903913370668} + - component: {fileID: 4191762351494344457} + m_Layer: 0 + m_Name: Machinegun + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &7887646903913370668 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6642079567538326943} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 7093708978518643867} + - {fileID: 6086720148793020400} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &4191762351494344457 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6642079567538326943} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 49c173e3c2313ca4d9d04d0d87ec0f06, type: 3} + m_Name: + m_EditorClassIdentifier: + ProjectilePrototype: {fileID: 4746410263980518329} + InheritVelocity: 0 diff --git a/Assets/Resources/Prefabs/Weapons/ColferV/DeathCluster.prefab.meta b/Assets/Resources/Prefabs/Weapons/ColferV/DeathCluster.prefab.meta new file mode 100644 index 000000000..9fedd2f3c --- /dev/null +++ b/Assets/Resources/Prefabs/Weapons/ColferV/DeathCluster.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: d8970f58aa43a9d45b19349103d6f405 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Prefabs/Weapons/ColferV/Emperor.prefab b/Assets/Resources/Prefabs/Weapons/ColferV/Emperor.prefab new file mode 100644 index 000000000..a5f0b6635 --- /dev/null +++ b/Assets/Resources/Prefabs/Weapons/ColferV/Emperor.prefab @@ -0,0 +1,34188 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &3349407620756205742 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3349407620756205741} + - component: {fileID: 3349407620756205743} + - component: {fileID: 3349407620756205740} + m_Layer: 0 + m_Name: Overcharged + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3349407620756205741 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3349407620756205742} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 3349407621156921369} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!198 &3349407620756205743 +ParticleSystem: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3349407620756205742} + serializedVersion: 7 + lengthInSec: 5 + simulationSpeed: 1 + stopAction: 0 + cullingMode: 0 + ringBufferMode: 0 + ringBufferLoopRange: {x: 0, y: 1} + looping: 1 + prewarm: 0 + playOnAwake: 1 + useUnscaledTime: 0 + autoRandomSeed: 1 + useRigidbodyForVelocity: 1 + startDelay: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + moveWithTransform: 0 + moveWithCustomTransform: {fileID: 0} + scalingMode: 1 + randomSeed: 0 + InitialModule: + serializedVersion: 3 + enabled: 1 + startLifetime: + serializedVersion: 2 + minMaxState: 0 + scalar: 0.75 + minScalar: 5 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startSpeed: + serializedVersion: 2 + minMaxState: 0 + scalar: 2 + minScalar: 5 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startColor: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + startSize: + serializedVersion: 2 + minMaxState: 0 + scalar: 4.46 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startSizeY: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startSizeZ: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startRotationX: + serializedVersion: 2 + minMaxState: 3 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startRotationY: + serializedVersion: 2 + minMaxState: 3 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startRotation: + serializedVersion: 2 + minMaxState: 3 + scalar: 6.283185 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + randomizeRotationDirection: 0 + maxNumParticles: 1000 + size3D: 0 + rotation3D: 0 + gravityModifier: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + ShapeModule: + serializedVersion: 6 + enabled: 1 + type: 4 + angle: 25 + length: 5 + boxThickness: {x: 0, y: 0, z: 0} + radiusThickness: 0 + donutRadius: 0.2 + m_Position: {x: 0, y: 0, z: 0} + m_Rotation: {x: 0, y: 0, z: 0} + m_Scale: {x: 1, y: 1, z: 1} + placementMode: 0 + m_MeshMaterialIndex: 0 + m_MeshNormalOffset: 0 + m_MeshSpawn: + mode: 0 + spread: 0 + speed: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Mesh: {fileID: 0} + m_MeshRenderer: {fileID: 0} + m_SkinnedMeshRenderer: {fileID: 0} + m_Sprite: {fileID: 0} + m_SpriteRenderer: {fileID: 0} + m_UseMeshMaterialIndex: 0 + m_UseMeshColors: 1 + alignToDirection: 0 + m_Texture: {fileID: 0} + m_TextureClipChannel: 3 + m_TextureClipThreshold: 0 + m_TextureUVChannel: 0 + m_TextureColorAffectsParticles: 1 + m_TextureAlphaAffectsParticles: 1 + m_TextureBilinearFiltering: 0 + randomDirectionAmount: 1 + sphericalDirectionAmount: 0 + randomPositionAmount: 0 + radius: + value: 0.0001 + mode: 0 + spread: 0 + speed: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + arc: + value: 360 + mode: 0 + spread: 0 + speed: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + EmissionModule: + enabled: 1 + serializedVersion: 4 + rateOverTime: + serializedVersion: 2 + minMaxState: 0 + scalar: 10 + minScalar: 10 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + rateOverDistance: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_BurstCount: 0 + m_Bursts: [] + SizeModule: + enabled: 1 + curve: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0.43276978 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 2 + outSlope: 2 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + RotationModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + curve: + serializedVersion: 2 + minMaxState: 0 + scalar: 0.7853982 + minScalar: 0.7853982 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + ColorModule: + enabled: 1 + gradient: + serializedVersion: 2 + minMaxState: 1 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 0.20647918, g: 0.22218905, b: 0.3018868, a: 1} + key1: {r: 0.2028302, g: 0.37981224, b: 1, a: 0.3137255} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 35407 + atime2: 65535 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 3 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + UVModule: + serializedVersion: 2 + enabled: 0 + mode: 0 + timeMode: 0 + fps: 30 + frameOverTime: + serializedVersion: 2 + minMaxState: 1 + scalar: 0.9999 + minScalar: 0.9999 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startFrame: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + speedRange: {x: 0, y: 1} + tilesX: 1 + tilesY: 1 + animationType: 0 + rowIndex: 0 + cycles: 1 + uvChannelMask: -1 + rowMode: 1 + sprites: + - sprite: {fileID: 0} + flipU: 0 + flipV: 0 + VelocityModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalX: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalY: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalZ: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalOffsetX: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalOffsetY: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalOffsetZ: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + radial: + serializedVersion: 2 + minMaxState: 1 + scalar: 8 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: -0.092308044 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + speedModifier: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + inWorldSpace: 0 + InheritVelocityModule: + enabled: 0 + m_Mode: 0 + m_Curve: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + LifetimeByEmitterSpeedModule: + enabled: 0 + m_Curve: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: -0.8 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0.2 + inSlope: -0.8 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Range: {x: 0, y: 1} + ForceModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + inWorldSpace: 0 + randomizePerFrame: 0 + ExternalForcesModule: + serializedVersion: 2 + enabled: 0 + multiplierCurve: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + influenceFilter: 0 + influenceMask: + serializedVersion: 2 + m_Bits: 4294967295 + influenceList: [] + ClampVelocityModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + magnitude: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxis: 0 + inWorldSpace: 0 + multiplyDragByParticleSize: 1 + multiplyDragByParticleVelocity: 1 + dampen: 0 + drag: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + NoiseModule: + enabled: 0 + strength: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + strengthY: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + strengthZ: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + frequency: 0.5 + damping: 1 + octaves: 1 + octaveMultiplier: 0.5 + octaveScale: 2 + quality: 2 + scrollSpeed: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remap: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: -1 + inSlope: 0 + outSlope: 2 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 2 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remapY: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: -1 + inSlope: 0 + outSlope: 2 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 2 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remapZ: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: -1 + inSlope: 0 + outSlope: 2 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 2 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remapEnabled: 0 + positionAmount: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + rotationAmount: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + sizeAmount: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + SizeBySpeedModule: + enabled: 0 + curve: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + range: {x: 0, y: 1} + separateAxes: 0 + RotationBySpeedModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + curve: + serializedVersion: 2 + minMaxState: 0 + scalar: 0.7853982 + minScalar: 0.7853982 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + range: {x: 0, y: 1} + ColorBySpeedModule: + enabled: 0 + gradient: + serializedVersion: 2 + minMaxState: 1 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + range: {x: 0, y: 1} + CollisionModule: + enabled: 0 + serializedVersion: 4 + type: 0 + collisionMode: 0 + colliderForce: 0 + multiplyColliderForceByParticleSize: 0 + multiplyColliderForceByParticleSpeed: 0 + multiplyColliderForceByCollisionAngle: 1 + m_Planes: [] + m_Dampen: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Bounce: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_EnergyLossOnCollision: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minKillSpeed: 0 + maxKillSpeed: 10000 + radiusScale: 1 + collidesWith: + serializedVersion: 2 + m_Bits: 4294967295 + maxCollisionShapes: 256 + quality: 0 + voxelSize: 0.5 + collisionMessages: 0 + collidesWithDynamic: 1 + interiorCollisions: 0 + TriggerModule: + enabled: 0 + serializedVersion: 2 + inside: 1 + outside: 0 + enter: 0 + exit: 0 + colliderQueryMode: 0 + radiusScale: 1 + primitives: [] + SubModule: + serializedVersion: 2 + enabled: 0 + subEmitters: + - serializedVersion: 3 + emitter: {fileID: 0} + type: 0 + properties: 0 + emitProbability: 1 + LightsModule: + enabled: 0 + ratio: 0 + light: {fileID: 0} + randomDistribution: 1 + color: 1 + range: 1 + intensity: 1 + rangeCurve: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + intensityCurve: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + maxLights: 20 + TrailModule: + enabled: 0 + mode: 0 + ratio: 1 + lifetime: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minVertexDistance: 0.2 + textureMode: 0 + ribbonCount: 1 + shadowBias: 0.5 + worldSpace: 0 + dieWithParticles: 1 + sizeAffectsWidth: 1 + sizeAffectsLifetime: 0 + inheritParticleColor: 1 + generateLightingData: 0 + splitSubEmitterRibbons: 0 + attachRibbonsToTransform: 0 + colorOverLifetime: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + widthOverTrail: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + colorOverTrail: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + CustomDataModule: + enabled: 0 + mode0: 0 + vectorComponentCount0: 4 + color0: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + colorLabel0: Color + vector0_0: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_0: X + vector0_1: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_1: Y + vector0_2: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_2: Z + vector0_3: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_3: W + mode1: 0 + vectorComponentCount1: 4 + color1: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + colorLabel1: Color + vector1_0: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_0: X + vector1_1: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_1: Y + vector1_2: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_2: Z + vector1_3: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_3: W +--- !u!199 &3349407620756205740 +ParticleSystemRenderer: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3349407620756205742} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 6af0f423a2567be43b16d152d2b60e0c, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_RenderMode: 0 + m_SortMode: 0 + m_MinParticleSize: 0 + m_MaxParticleSize: 0.5 + m_CameraVelocityScale: 0 + m_VelocityScale: 0 + m_LengthScale: 2 + m_SortingFudge: 0 + m_NormalDirection: 1 + m_ShadowBias: 0 + m_RenderAlignment: 0 + m_Pivot: {x: 0, y: 0, z: 0} + m_Flip: {x: 0, y: 0, z: 0} + m_UseCustomVertexStreams: 0 + m_EnableGPUInstancing: 1 + m_ApplyActiveColorSpace: 1 + m_AllowRoll: 1 + m_FreeformStretching: 0 + m_RotateWithStretchDirection: 1 + m_VertexStreams: 00010304 + m_Mesh: {fileID: 0} + m_Mesh1: {fileID: 0} + m_Mesh2: {fileID: 0} + m_Mesh3: {fileID: 0} + m_MaskInteraction: 0 +--- !u!1 &3349407621156921371 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3349407621156921369} + - component: {fileID: 3349407621156921368} + - component: {fileID: 4333490116481007344} + m_Layer: 0 + m_Name: ChargeEffect + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3349407621156921369 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3349407621156921371} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 3349407621879833916} + - {fileID: 3349407620756205741} + - {fileID: 3349407621561594594} + m_Father: {fileID: 1656848774125631793} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &3349407621156921368 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3349407621156921371} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d17593d3a68cb7b48905eb55ea270238, type: 3} + m_Name: + m_EditorClassIdentifier: + ChargeEffect: {fileID: 3349407621879833918} + OverchargeEffect: {fileID: 3349407620756205743} + FailureEffect: {fileID: 3349407621561594596} +--- !u!114 &4333490116481007344 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3349407621156921371} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1281fe44325f9b548aa42dc331b17266, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &3349407621561594599 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3349407621561594594} + - component: {fileID: 3349407621561594596} + - component: {fileID: 3349407621561594597} + m_Layer: 0 + m_Name: Failed + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3349407621561594594 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3349407621561594599} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 3349407621156921369} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!198 &3349407621561594596 +ParticleSystem: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3349407621561594599} + serializedVersion: 7 + lengthInSec: 1 + simulationSpeed: 1 + stopAction: 0 + cullingMode: 0 + ringBufferMode: 0 + ringBufferLoopRange: {x: 0, y: 1} + looping: 0 + prewarm: 0 + playOnAwake: 1 + useUnscaledTime: 0 + autoRandomSeed: 1 + useRigidbodyForVelocity: 1 + startDelay: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + moveWithTransform: 0 + moveWithCustomTransform: {fileID: 0} + scalingMode: 1 + randomSeed: 0 + InitialModule: + serializedVersion: 3 + enabled: 1 + startLifetime: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 5 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startSpeed: + serializedVersion: 2 + minMaxState: 0 + scalar: 10 + minScalar: 5 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startColor: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + startSize: + serializedVersion: 2 + minMaxState: 0 + scalar: 5 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startSizeY: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startSizeZ: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startRotationX: + serializedVersion: 2 + minMaxState: 3 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startRotationY: + serializedVersion: 2 + minMaxState: 3 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startRotation: + serializedVersion: 2 + minMaxState: 3 + scalar: 6.283185 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + randomizeRotationDirection: 0 + maxNumParticles: 1000 + size3D: 0 + rotation3D: 0 + gravityModifier: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + ShapeModule: + serializedVersion: 6 + enabled: 1 + type: 4 + angle: 25 + length: 5 + boxThickness: {x: 0, y: 0, z: 0} + radiusThickness: 0 + donutRadius: 0.2 + m_Position: {x: 0, y: 0, z: 0} + m_Rotation: {x: 0, y: 0, z: 0} + m_Scale: {x: 1, y: 1, z: 1} + placementMode: 0 + m_MeshMaterialIndex: 0 + m_MeshNormalOffset: 0 + m_MeshSpawn: + mode: 0 + spread: 0 + speed: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Mesh: {fileID: 0} + m_MeshRenderer: {fileID: 0} + m_SkinnedMeshRenderer: {fileID: 0} + m_Sprite: {fileID: 0} + m_SpriteRenderer: {fileID: 0} + m_UseMeshMaterialIndex: 0 + m_UseMeshColors: 1 + alignToDirection: 0 + m_Texture: {fileID: 0} + m_TextureClipChannel: 3 + m_TextureClipThreshold: 0 + m_TextureUVChannel: 0 + m_TextureColorAffectsParticles: 1 + m_TextureAlphaAffectsParticles: 1 + m_TextureBilinearFiltering: 0 + randomDirectionAmount: 1 + sphericalDirectionAmount: 0 + randomPositionAmount: 0 + radius: + value: 0.0001 + mode: 0 + spread: 0 + speed: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + arc: + value: 360 + mode: 0 + spread: 0 + speed: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + EmissionModule: + enabled: 1 + serializedVersion: 4 + rateOverTime: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 10 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + rateOverDistance: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_BurstCount: 1 + m_Bursts: + - serializedVersion: 2 + time: 0 + countCurve: + serializedVersion: 2 + minMaxState: 0 + scalar: 100 + minScalar: 30 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + cycleCount: 1 + repeatInterval: 0.01 + probability: 1 + SizeModule: + enabled: 1 + curve: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 2 + outSlope: 2 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + RotationModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + curve: + serializedVersion: 2 + minMaxState: 0 + scalar: 0.7853982 + minScalar: 0.7853982 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + ColorModule: + enabled: 1 + gradient: + serializedVersion: 2 + minMaxState: 1 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 0.20647918, g: 0.22218905, b: 0.3018868, a: 1} + key1: {r: 0.2028302, g: 0.37981224, b: 1, a: 0.3137255} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 35407 + atime2: 65535 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 3 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + UVModule: + serializedVersion: 2 + enabled: 0 + mode: 0 + timeMode: 0 + fps: 30 + frameOverTime: + serializedVersion: 2 + minMaxState: 1 + scalar: 0.9999 + minScalar: 0.9999 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startFrame: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + speedRange: {x: 0, y: 1} + tilesX: 1 + tilesY: 1 + animationType: 0 + rowIndex: 0 + cycles: 1 + uvChannelMask: -1 + rowMode: 1 + sprites: + - sprite: {fileID: 0} + flipU: 0 + flipV: 0 + VelocityModule: + enabled: 1 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalX: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalY: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalZ: + serializedVersion: 2 + minMaxState: 0 + scalar: 2 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalOffsetX: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalOffsetY: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalOffsetZ: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + radial: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: -0.092308044 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + speedModifier: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + inWorldSpace: 0 + InheritVelocityModule: + enabled: 0 + m_Mode: 0 + m_Curve: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + LifetimeByEmitterSpeedModule: + enabled: 0 + m_Curve: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: -0.8 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0.2 + inSlope: -0.8 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Range: {x: 0, y: 1} + ForceModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + inWorldSpace: 0 + randomizePerFrame: 0 + ExternalForcesModule: + serializedVersion: 2 + enabled: 0 + multiplierCurve: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + influenceFilter: 0 + influenceMask: + serializedVersion: 2 + m_Bits: 4294967295 + influenceList: [] + ClampVelocityModule: + enabled: 1 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + magnitude: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxis: 0 + inWorldSpace: 0 + multiplyDragByParticleSize: 1 + multiplyDragByParticleVelocity: 1 + dampen: 0 + drag: + serializedVersion: 2 + minMaxState: 1 + scalar: 0.25 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 2 + outSlope: 2 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + NoiseModule: + enabled: 1 + strength: + serializedVersion: 2 + minMaxState: 0 + scalar: 5 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + strengthY: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + strengthZ: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + frequency: 2 + damping: 1 + octaves: 1 + octaveMultiplier: 0.5 + octaveScale: 2 + quality: 2 + scrollSpeed: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remap: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: -1 + inSlope: 0 + outSlope: 2 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 2 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remapY: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: -1 + inSlope: 0 + outSlope: 2 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 2 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remapZ: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: -1 + inSlope: 0 + outSlope: 2 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 2 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remapEnabled: 0 + positionAmount: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + rotationAmount: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + sizeAmount: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + SizeBySpeedModule: + enabled: 0 + curve: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + range: {x: 0, y: 1} + separateAxes: 0 + RotationBySpeedModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + curve: + serializedVersion: 2 + minMaxState: 0 + scalar: 0.7853982 + minScalar: 0.7853982 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + range: {x: 0, y: 1} + ColorBySpeedModule: + enabled: 0 + gradient: + serializedVersion: 2 + minMaxState: 1 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + range: {x: 0, y: 1} + CollisionModule: + enabled: 0 + serializedVersion: 4 + type: 0 + collisionMode: 0 + colliderForce: 0 + multiplyColliderForceByParticleSize: 0 + multiplyColliderForceByParticleSpeed: 0 + multiplyColliderForceByCollisionAngle: 1 + m_Planes: [] + m_Dampen: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Bounce: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_EnergyLossOnCollision: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minKillSpeed: 0 + maxKillSpeed: 10000 + radiusScale: 1 + collidesWith: + serializedVersion: 2 + m_Bits: 4294967295 + maxCollisionShapes: 256 + quality: 0 + voxelSize: 0.5 + collisionMessages: 0 + collidesWithDynamic: 1 + interiorCollisions: 0 + TriggerModule: + enabled: 0 + serializedVersion: 2 + inside: 1 + outside: 0 + enter: 0 + exit: 0 + colliderQueryMode: 0 + radiusScale: 1 + primitives: [] + SubModule: + serializedVersion: 2 + enabled: 0 + subEmitters: + - serializedVersion: 3 + emitter: {fileID: 0} + type: 0 + properties: 0 + emitProbability: 1 + LightsModule: + enabled: 0 + ratio: 0 + light: {fileID: 0} + randomDistribution: 1 + color: 1 + range: 1 + intensity: 1 + rangeCurve: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + intensityCurve: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + maxLights: 20 + TrailModule: + enabled: 0 + mode: 0 + ratio: 1 + lifetime: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minVertexDistance: 0.2 + textureMode: 0 + ribbonCount: 1 + shadowBias: 0.5 + worldSpace: 0 + dieWithParticles: 1 + sizeAffectsWidth: 1 + sizeAffectsLifetime: 0 + inheritParticleColor: 1 + generateLightingData: 0 + splitSubEmitterRibbons: 0 + attachRibbonsToTransform: 0 + colorOverLifetime: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + widthOverTrail: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + colorOverTrail: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + CustomDataModule: + enabled: 0 + mode0: 0 + vectorComponentCount0: 4 + color0: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + colorLabel0: Color + vector0_0: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_0: X + vector0_1: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_1: Y + vector0_2: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_2: Z + vector0_3: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_3: W + mode1: 0 + vectorComponentCount1: 4 + color1: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + colorLabel1: Color + vector1_0: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_0: X + vector1_1: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_1: Y + vector1_2: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_2: Z + vector1_3: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_3: W +--- !u!199 &3349407621561594597 +ParticleSystemRenderer: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3349407621561594599} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 242a72fcf2cf3cd4b8529d07dff9c18d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_RenderMode: 0 + m_SortMode: 2 + m_MinParticleSize: 0 + m_MaxParticleSize: 0.5 + m_CameraVelocityScale: 0 + m_VelocityScale: 0.5 + m_LengthScale: 1 + m_SortingFudge: 0 + m_NormalDirection: 1 + m_ShadowBias: 0 + m_RenderAlignment: 0 + m_Pivot: {x: 0, y: 0, z: 0} + m_Flip: {x: 0, y: 0, z: 0} + m_UseCustomVertexStreams: 0 + m_EnableGPUInstancing: 1 + m_ApplyActiveColorSpace: 1 + m_AllowRoll: 1 + m_FreeformStretching: 1 + m_RotateWithStretchDirection: 1 + m_VertexStreams: 00010304 + m_Mesh: {fileID: 0} + m_Mesh1: {fileID: 0} + m_Mesh2: {fileID: 0} + m_Mesh3: {fileID: 0} + m_MaskInteraction: 0 +--- !u!1 &3349407621879833905 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3349407621879833916} + - component: {fileID: 3349407621879833918} + - component: {fileID: 3349407621879833919} + m_Layer: 0 + m_Name: Charge + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3349407621879833916 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3349407621879833905} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 3349407621156921369} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!198 &3349407621879833918 +ParticleSystem: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3349407621879833905} + serializedVersion: 7 + lengthInSec: 5 + simulationSpeed: 1 + stopAction: 0 + cullingMode: 0 + ringBufferMode: 0 + ringBufferLoopRange: {x: 0, y: 1} + looping: 1 + prewarm: 0 + playOnAwake: 1 + useUnscaledTime: 0 + autoRandomSeed: 1 + useRigidbodyForVelocity: 1 + startDelay: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + moveWithTransform: 0 + moveWithCustomTransform: {fileID: 0} + scalingMode: 1 + randomSeed: 0 + InitialModule: + serializedVersion: 3 + enabled: 1 + startLifetime: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 5 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startSpeed: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 5 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startColor: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + startSize: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startSizeY: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startSizeZ: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startRotationX: + serializedVersion: 2 + minMaxState: 3 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startRotationY: + serializedVersion: 2 + minMaxState: 3 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startRotation: + serializedVersion: 2 + minMaxState: 3 + scalar: 6.283185 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + randomizeRotationDirection: 0 + maxNumParticles: 1000 + size3D: 0 + rotation3D: 0 + gravityModifier: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + ShapeModule: + serializedVersion: 6 + enabled: 1 + type: 10 + angle: 25 + length: 5 + boxThickness: {x: 0, y: 0, z: 0} + radiusThickness: 0 + donutRadius: 0.2 + m_Position: {x: 0, y: 0, z: 15} + m_Rotation: {x: 0, y: 0, z: 0} + m_Scale: {x: 1, y: 1, z: 1} + placementMode: 0 + m_MeshMaterialIndex: 0 + m_MeshNormalOffset: 0 + m_MeshSpawn: + mode: 0 + spread: 0 + speed: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Mesh: {fileID: 0} + m_MeshRenderer: {fileID: 0} + m_SkinnedMeshRenderer: {fileID: 0} + m_Sprite: {fileID: 0} + m_SpriteRenderer: {fileID: 0} + m_UseMeshMaterialIndex: 0 + m_UseMeshColors: 1 + alignToDirection: 0 + m_Texture: {fileID: 0} + m_TextureClipChannel: 3 + m_TextureClipThreshold: 0 + m_TextureUVChannel: 0 + m_TextureColorAffectsParticles: 1 + m_TextureAlphaAffectsParticles: 1 + m_TextureBilinearFiltering: 0 + randomDirectionAmount: 0 + sphericalDirectionAmount: 0 + randomPositionAmount: 0 + radius: + value: 5 + mode: 0 + spread: 0 + speed: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + arc: + value: 360 + mode: 0 + spread: 0 + speed: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + EmissionModule: + enabled: 1 + serializedVersion: 4 + rateOverTime: + serializedVersion: 2 + minMaxState: 0 + scalar: 25 + minScalar: 10 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + rateOverDistance: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_BurstCount: 0 + m_Bursts: [] + SizeModule: + enabled: 1 + curve: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: -2 + outSlope: -2 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 0.27692413 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + RotationModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + curve: + serializedVersion: 2 + minMaxState: 0 + scalar: 0.7853982 + minScalar: 0.7853982 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + ColorModule: + enabled: 1 + gradient: + serializedVersion: 2 + minMaxState: 1 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 0.2028302, g: 0.37981224, b: 1, a: 0} + key1: {r: 0.23584908, g: 0.23584908, b: 0.23584908, a: 0.3137255} + key2: {r: 0, g: 0, b: 0, a: 1} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 35407 + atime2: 65535 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 3 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + UVModule: + serializedVersion: 2 + enabled: 0 + mode: 0 + timeMode: 0 + fps: 30 + frameOverTime: + serializedVersion: 2 + minMaxState: 1 + scalar: 0.9999 + minScalar: 0.9999 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startFrame: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + speedRange: {x: 0, y: 1} + tilesX: 1 + tilesY: 1 + animationType: 0 + rowIndex: 0 + cycles: 1 + uvChannelMask: -1 + rowMode: 1 + sprites: + - sprite: {fileID: 0} + flipU: 0 + flipV: 0 + VelocityModule: + enabled: 1 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalX: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalY: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalZ: + serializedVersion: 2 + minMaxState: 0 + scalar: 3 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalOffsetX: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalOffsetY: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalOffsetZ: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + radial: + serializedVersion: 2 + minMaxState: 1 + scalar: 24 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: -1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: -0.092308044 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + speedModifier: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + inWorldSpace: 0 + InheritVelocityModule: + enabled: 0 + m_Mode: 0 + m_Curve: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + LifetimeByEmitterSpeedModule: + enabled: 0 + m_Curve: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: -0.8 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0.2 + inSlope: -0.8 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Range: {x: 0, y: 1} + ForceModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + inWorldSpace: 0 + randomizePerFrame: 0 + ExternalForcesModule: + serializedVersion: 2 + enabled: 0 + multiplierCurve: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + influenceFilter: 0 + influenceMask: + serializedVersion: 2 + m_Bits: 4294967295 + influenceList: [] + ClampVelocityModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + magnitude: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxis: 0 + inWorldSpace: 0 + multiplyDragByParticleSize: 1 + multiplyDragByParticleVelocity: 1 + dampen: 0 + drag: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + NoiseModule: + enabled: 1 + strength: + serializedVersion: 2 + minMaxState: 1 + scalar: 2 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: -1 + outSlope: -1 + tangentMode: 34 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: -1 + outSlope: -1 + tangentMode: 34 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + strengthY: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + strengthZ: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + frequency: 0.2 + damping: 1 + octaves: 1 + octaveMultiplier: 0.5 + octaveScale: 2 + quality: 2 + scrollSpeed: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remap: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: -1 + inSlope: 0 + outSlope: 2 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 2 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remapY: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: -1 + inSlope: 0 + outSlope: 2 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 2 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remapZ: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: -1 + inSlope: 0 + outSlope: 2 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 2 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remapEnabled: 0 + positionAmount: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + rotationAmount: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + sizeAmount: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + SizeBySpeedModule: + enabled: 0 + curve: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + range: {x: 0, y: 1} + separateAxes: 0 + RotationBySpeedModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + curve: + serializedVersion: 2 + minMaxState: 0 + scalar: 0.7853982 + minScalar: 0.7853982 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + range: {x: 0, y: 1} + ColorBySpeedModule: + enabled: 0 + gradient: + serializedVersion: 2 + minMaxState: 1 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + range: {x: 0, y: 1} + CollisionModule: + enabled: 0 + serializedVersion: 4 + type: 0 + collisionMode: 0 + colliderForce: 0 + multiplyColliderForceByParticleSize: 0 + multiplyColliderForceByParticleSpeed: 0 + multiplyColliderForceByCollisionAngle: 1 + m_Planes: [] + m_Dampen: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Bounce: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_EnergyLossOnCollision: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minKillSpeed: 0 + maxKillSpeed: 10000 + radiusScale: 1 + collidesWith: + serializedVersion: 2 + m_Bits: 4294967295 + maxCollisionShapes: 256 + quality: 0 + voxelSize: 0.5 + collisionMessages: 0 + collidesWithDynamic: 1 + interiorCollisions: 0 + TriggerModule: + enabled: 0 + serializedVersion: 2 + inside: 1 + outside: 0 + enter: 0 + exit: 0 + colliderQueryMode: 0 + radiusScale: 1 + primitives: [] + SubModule: + serializedVersion: 2 + enabled: 0 + subEmitters: + - serializedVersion: 3 + emitter: {fileID: 0} + type: 0 + properties: 0 + emitProbability: 1 + LightsModule: + enabled: 0 + ratio: 0 + light: {fileID: 0} + randomDistribution: 1 + color: 1 + range: 1 + intensity: 1 + rangeCurve: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + intensityCurve: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + maxLights: 20 + TrailModule: + enabled: 0 + mode: 0 + ratio: 1 + lifetime: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minVertexDistance: 0.2 + textureMode: 0 + ribbonCount: 1 + shadowBias: 0.5 + worldSpace: 0 + dieWithParticles: 1 + sizeAffectsWidth: 1 + sizeAffectsLifetime: 0 + inheritParticleColor: 1 + generateLightingData: 0 + splitSubEmitterRibbons: 0 + attachRibbonsToTransform: 0 + colorOverLifetime: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + widthOverTrail: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + colorOverTrail: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + CustomDataModule: + enabled: 0 + mode0: 0 + vectorComponentCount0: 4 + color0: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + colorLabel0: Color + vector0_0: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_0: X + vector0_1: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_1: Y + vector0_2: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_2: Z + vector0_3: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_3: W + mode1: 0 + vectorComponentCount1: 4 + color1: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + colorLabel1: Color + vector1_0: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_0: X + vector1_1: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_1: Y + vector1_2: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_2: Z + vector1_3: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_3: W +--- !u!199 &3349407621879833919 +ParticleSystemRenderer: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3349407621879833905} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 242a72fcf2cf3cd4b8529d07dff9c18d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_RenderMode: 1 + m_SortMode: 0 + m_MinParticleSize: 0 + m_MaxParticleSize: 0.5 + m_CameraVelocityScale: 0 + m_VelocityScale: 0.25 + m_LengthScale: 0.5 + m_SortingFudge: 0 + m_NormalDirection: 1 + m_ShadowBias: 0 + m_RenderAlignment: 0 + m_Pivot: {x: 0, y: 0, z: 0} + m_Flip: {x: 0, y: 0, z: 0} + m_UseCustomVertexStreams: 0 + m_EnableGPUInstancing: 1 + m_ApplyActiveColorSpace: 1 + m_AllowRoll: 1 + m_FreeformStretching: 1 + m_RotateWithStretchDirection: 1 + m_VertexStreams: 00010304 + m_Mesh: {fileID: 0} + m_Mesh1: {fileID: 0} + m_Mesh2: {fileID: 0} + m_Mesh3: {fileID: 0} + m_MaskInteraction: 0 +--- !u!1 &3353248941128917208 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3351282060156006704} + - component: {fileID: 3192469250988989266} + - component: {fileID: 3191827398981723424} + - component: {fileID: 6248761991871516477} + - component: {fileID: 6896945293058144797} + m_Layer: 0 + m_Name: TinyExplosionBlue + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3351282060156006704 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3353248941128917208} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 3, y: 3, z: 3} + m_Children: + - {fileID: 3358913098587991592} + - {fileID: 3351262445883599580} + m_Father: {fileID: 1656848774125631793} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!198 &3192469250988989266 +ParticleSystem: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3353248941128917208} + serializedVersion: 7 + lengthInSec: 2 + simulationSpeed: 1 + stopAction: 3 + cullingMode: 1 + ringBufferMode: 0 + ringBufferLoopRange: {x: 0, y: 1} + looping: 0 + prewarm: 0 + playOnAwake: 1 + useUnscaledTime: 0 + autoRandomSeed: 1 + useRigidbodyForVelocity: 1 + startDelay: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + moveWithTransform: 0 + moveWithCustomTransform: {fileID: 0} + scalingMode: 1 + randomSeed: 0 + InitialModule: + serializedVersion: 3 + enabled: 1 + startLifetime: + serializedVersion: 2 + minMaxState: 3 + scalar: 0.5 + minScalar: 0.75 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startSpeed: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 2 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startColor: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + startSize: + serializedVersion: 2 + minMaxState: 3 + scalar: 0.5 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startSizeY: + serializedVersion: 2 + minMaxState: 3 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startSizeZ: + serializedVersion: 2 + minMaxState: 3 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startRotationX: + serializedVersion: 2 + minMaxState: 3 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startRotationY: + serializedVersion: 2 + minMaxState: 3 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startRotation: + serializedVersion: 2 + minMaxState: 3 + scalar: 6.283185 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + randomizeRotationDirection: 0 + maxNumParticles: 1000 + size3D: 0 + rotation3D: 0 + gravityModifier: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + ShapeModule: + serializedVersion: 6 + enabled: 1 + type: 0 + angle: 25 + length: 5 + boxThickness: {x: 0, y: 0, z: 0} + radiusThickness: 1 + donutRadius: 0.2 + m_Position: {x: 0, y: 0, z: 0} + m_Rotation: {x: 0, y: 0, z: 0} + m_Scale: {x: 1, y: 1, z: 1} + placementMode: 0 + m_MeshMaterialIndex: 0 + m_MeshNormalOffset: 0 + m_MeshSpawn: + mode: 0 + spread: 0 + speed: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Mesh: {fileID: 0} + m_MeshRenderer: {fileID: 0} + m_SkinnedMeshRenderer: {fileID: 0} + m_Sprite: {fileID: 0} + m_SpriteRenderer: {fileID: 0} + m_UseMeshMaterialIndex: 0 + m_UseMeshColors: 1 + alignToDirection: 0 + m_Texture: {fileID: 0} + m_TextureClipChannel: 3 + m_TextureClipThreshold: 0 + m_TextureUVChannel: 0 + m_TextureColorAffectsParticles: 1 + m_TextureAlphaAffectsParticles: 1 + m_TextureBilinearFiltering: 0 + randomDirectionAmount: 0 + sphericalDirectionAmount: 0 + randomPositionAmount: 0 + radius: + value: 0.2 + mode: 0 + spread: 0 + speed: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + arc: + value: 360 + mode: 0 + spread: 0 + speed: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + EmissionModule: + enabled: 1 + serializedVersion: 4 + rateOverTime: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 10 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + rateOverDistance: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_BurstCount: 1 + m_Bursts: + - serializedVersion: 2 + time: 0 + countCurve: + serializedVersion: 2 + minMaxState: 0 + scalar: 5 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + cycleCount: 1 + repeatInterval: 0.05 + probability: 1 + SizeModule: + enabled: 1 + curve: + serializedVersion: 2 + minMaxState: 1 + scalar: 2 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0.26259232 + inSlope: 13.062219 + outSlope: 13.062219 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.4482506 + - serializedVersion: 3 + time: 0.11442888 + value: 0.8611107 + inSlope: -0.65420204 + outSlope: -0.65420204 + tangentMode: 0 + weightedMode: 0 + inWeight: 1 + outWeight: 0.013850347 + - serializedVersion: 3 + time: 0.31258723 + value: 0.55610156 + inSlope: -0.78903043 + outSlope: -0.78903043 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.81095207 + outWeight: 0.11687849 + - serializedVersion: 3 + time: 1 + value: 0.5624988 + inSlope: 0.6932473 + outSlope: 0.6932473 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.18569358 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + RotationModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + curve: + serializedVersion: 2 + minMaxState: 0 + scalar: 0.7853982 + minScalar: 0.7853982 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + ColorModule: + enabled: 1 + gradient: + serializedVersion: 2 + minMaxState: 1 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 0, g: 0, b: 0, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 1235 + ctime1: 65535 + ctime2: 45489 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 44952 + atime2: 65535 + atime3: 65535 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 3 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + UVModule: + serializedVersion: 2 + enabled: 1 + mode: 0 + timeMode: 0 + fps: 30 + frameOverTime: + serializedVersion: 2 + minMaxState: 1 + scalar: 0.9999 + minScalar: 0.9999 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 2 + outSlope: 2 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.5405963 + value: 0.6172828 + inSlope: 0.40770304 + outSlope: 0.40770304 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.3389682 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1.5884757 + outSlope: 1.5884757 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.069948256 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startFrame: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + speedRange: {x: 0, y: 1} + tilesX: 6 + tilesY: 6 + animationType: 0 + rowIndex: 0 + cycles: 1 + uvChannelMask: -1 + rowMode: 1 + sprites: + - sprite: {fileID: 0} + flipU: 0 + flipV: 0 + VelocityModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalX: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalY: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalZ: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalOffsetX: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalOffsetY: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalOffsetZ: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + radial: + serializedVersion: 2 + minMaxState: 2 + scalar: 4 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: -3.6171548 + outSlope: -3.6171548 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.50351435 + - serializedVersion: 3 + time: 0.2623834 + value: 0.31630546 + inSlope: -0.39157343 + outSlope: -0.39157343 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.15646125 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + speedModifier: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + inWorldSpace: 0 + InheritVelocityModule: + enabled: 0 + m_Mode: 0 + m_Curve: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + LifetimeByEmitterSpeedModule: + enabled: 0 + m_Curve: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: -0.8 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0.2 + inSlope: -0.8 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Range: {x: 0, y: 1} + ForceModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + inWorldSpace: 0 + randomizePerFrame: 0 + ExternalForcesModule: + serializedVersion: 2 + enabled: 0 + multiplierCurve: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + influenceFilter: 0 + influenceMask: + serializedVersion: 2 + m_Bits: 4294967295 + influenceList: [] + ClampVelocityModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + magnitude: + serializedVersion: 2 + minMaxState: 1 + scalar: 2 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: -5.475556 + outSlope: -5.475556 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.104603365 + - serializedVersion: 3 + time: 0.55355835 + value: 0.05569458 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxis: 0 + inWorldSpace: 0 + multiplyDragByParticleSize: 1 + multiplyDragByParticleVelocity: 1 + dampen: 1 + drag: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + NoiseModule: + enabled: 0 + strength: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + strengthY: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + strengthZ: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + frequency: 0.5 + damping: 1 + octaves: 1 + octaveMultiplier: 0.5 + octaveScale: 2 + quality: 2 + scrollSpeed: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remap: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remapY: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remapZ: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remapEnabled: 0 + positionAmount: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + rotationAmount: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + sizeAmount: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + SizeBySpeedModule: + enabled: 0 + curve: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + range: {x: 0, y: 1} + separateAxes: 0 + RotationBySpeedModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + curve: + serializedVersion: 2 + minMaxState: 0 + scalar: 0.7853982 + minScalar: 0.7853982 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + range: {x: 0, y: 1} + ColorBySpeedModule: + enabled: 0 + gradient: + serializedVersion: 2 + minMaxState: 1 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + range: {x: 0, y: 1} + CollisionModule: + enabled: 0 + serializedVersion: 4 + type: 0 + collisionMode: 0 + colliderForce: 0 + multiplyColliderForceByParticleSize: 0 + multiplyColliderForceByParticleSpeed: 0 + multiplyColliderForceByCollisionAngle: 1 + m_Planes: + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + m_Dampen: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Bounce: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_EnergyLossOnCollision: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minKillSpeed: 0 + maxKillSpeed: 10000 + radiusScale: 1 + collidesWith: + serializedVersion: 2 + m_Bits: 4294967295 + maxCollisionShapes: 256 + quality: 0 + voxelSize: 0.5 + collisionMessages: 0 + collidesWithDynamic: 1 + interiorCollisions: 0 + TriggerModule: + enabled: 0 + serializedVersion: 2 + inside: 1 + outside: 0 + enter: 0 + exit: 0 + colliderQueryMode: 0 + radiusScale: 1 + primitives: + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + SubModule: + serializedVersion: 2 + enabled: 0 + subEmitters: + - serializedVersion: 3 + emitter: {fileID: 0} + type: 2 + properties: 0 + emitProbability: 1 + LightsModule: + enabled: 0 + ratio: 0 + light: {fileID: 0} + randomDistribution: 1 + color: 1 + range: 1 + intensity: 1 + rangeCurve: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + intensityCurve: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + maxLights: 20 + TrailModule: + enabled: 0 + mode: 0 + ratio: 1 + lifetime: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minVertexDistance: 0.2 + textureMode: 0 + ribbonCount: 1 + shadowBias: 0.5 + worldSpace: 0 + dieWithParticles: 1 + sizeAffectsWidth: 1 + sizeAffectsLifetime: 0 + inheritParticleColor: 1 + generateLightingData: 0 + splitSubEmitterRibbons: 0 + attachRibbonsToTransform: 0 + colorOverLifetime: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + widthOverTrail: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + colorOverTrail: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + CustomDataModule: + enabled: 0 + mode0: 0 + vectorComponentCount0: 4 + color0: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + colorLabel0: Color + vector0_0: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_0: X + vector0_1: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_1: Y + vector0_2: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_2: Z + vector0_3: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_3: W + mode1: 0 + vectorComponentCount1: 4 + color1: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + colorLabel1: Color + vector1_0: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_0: X + vector1_1: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_1: Y + vector1_2: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_2: Z + vector1_3: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_3: W +--- !u!199 &3191827398981723424 +ParticleSystemRenderer: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3353248941128917208} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 4294967295 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: b2b9914fda5088a4d833db5a6f05c9d6, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_RenderMode: 0 + m_SortMode: 1 + m_MinParticleSize: 0 + m_MaxParticleSize: 5 + m_CameraVelocityScale: 0 + m_VelocityScale: 0 + m_LengthScale: 2 + m_SortingFudge: 0 + m_NormalDirection: 1 + m_ShadowBias: 0 + m_RenderAlignment: 0 + m_Pivot: {x: 0, y: 0, z: 0} + m_Flip: {x: 0.5, y: 0.5, z: 0} + m_UseCustomVertexStreams: 1 + m_EnableGPUInstancing: 1 + m_ApplyActiveColorSpace: 0 + m_AllowRoll: 1 + m_FreeformStretching: 0 + m_RotateWithStretchDirection: 1 + m_VertexStreams: 0003040508 + m_Mesh: {fileID: 0} + m_Mesh1: {fileID: 0} + m_Mesh2: {fileID: 0} + m_Mesh3: {fileID: 0} + m_MaskInteraction: 0 +--- !u!114 &6248761991871516477 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3353248941128917208} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1281fe44325f9b548aa42dc331b17266, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &6896945293058144797 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3353248941128917208} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: db021a309de3d324588c5603de40c29f, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &3353409812427418178 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3351262445883599580} + - component: {fileID: 3192817902838525762} + - component: {fileID: 3191133241829315540} + m_Layer: 0 + m_Name: Shockwave + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3351262445883599580 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3353409812427418178} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 3351282060156006704} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: -90, y: 0, z: 0} +--- !u!198 &3192817902838525762 +ParticleSystem: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3353409812427418178} + serializedVersion: 7 + lengthInSec: 2 + simulationSpeed: 1 + stopAction: 0 + cullingMode: 1 + ringBufferMode: 0 + ringBufferLoopRange: {x: 0, y: 1} + looping: 0 + prewarm: 0 + playOnAwake: 1 + useUnscaledTime: 0 + autoRandomSeed: 1 + useRigidbodyForVelocity: 1 + startDelay: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + moveWithTransform: 0 + moveWithCustomTransform: {fileID: 0} + scalingMode: 1 + randomSeed: 0 + InitialModule: + serializedVersion: 3 + enabled: 1 + startLifetime: + serializedVersion: 2 + minMaxState: 0 + scalar: 0.5 + minScalar: 5 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startSpeed: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 5 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startColor: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + startSize: + serializedVersion: 2 + minMaxState: 0 + scalar: 5 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startSizeY: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startSizeZ: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startRotationX: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startRotationY: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startRotation: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + randomizeRotationDirection: 0 + maxNumParticles: 1000 + size3D: 0 + rotation3D: 0 + gravityModifier: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + ShapeModule: + serializedVersion: 6 + enabled: 0 + type: 4 + angle: 25 + length: 5 + boxThickness: {x: 0, y: 0, z: 0} + radiusThickness: 1 + donutRadius: 0.2 + m_Position: {x: 0, y: 0, z: 0} + m_Rotation: {x: 0, y: 0, z: 0} + m_Scale: {x: 1, y: 1, z: 1} + placementMode: 0 + m_MeshMaterialIndex: 0 + m_MeshNormalOffset: 0 + m_MeshSpawn: + mode: 0 + spread: 0 + speed: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Mesh: {fileID: 0} + m_MeshRenderer: {fileID: 0} + m_SkinnedMeshRenderer: {fileID: 0} + m_Sprite: {fileID: 0} + m_SpriteRenderer: {fileID: 0} + m_UseMeshMaterialIndex: 0 + m_UseMeshColors: 1 + alignToDirection: 0 + m_Texture: {fileID: 0} + m_TextureClipChannel: 3 + m_TextureClipThreshold: 0 + m_TextureUVChannel: 0 + m_TextureColorAffectsParticles: 1 + m_TextureAlphaAffectsParticles: 1 + m_TextureBilinearFiltering: 0 + randomDirectionAmount: 0 + sphericalDirectionAmount: 0 + randomPositionAmount: 0 + radius: + value: 1 + mode: 0 + spread: 0 + speed: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + arc: + value: 360 + mode: 0 + spread: 0 + speed: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + EmissionModule: + enabled: 1 + serializedVersion: 4 + rateOverTime: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 10 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + rateOverDistance: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_BurstCount: 1 + m_Bursts: + - serializedVersion: 2 + time: 0 + countCurve: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + cycleCount: 1 + repeatInterval: 0.01 + probability: 1 + SizeModule: + enabled: 1 + curve: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 3.4814816 + outSlope: 3.4814816 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.09375 + - serializedVersion: 3 + time: 1 + value: 0.7699108 + inSlope: -0.78148794 + outSlope: -0.78148794 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.15853661 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + RotationModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + curve: + serializedVersion: 2 + minMaxState: 0 + scalar: 0.7853982 + minScalar: 0.7853982 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + ColorModule: + enabled: 1 + gradient: + serializedVersion: 2 + minMaxState: 1 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 0} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + UVModule: + serializedVersion: 2 + enabled: 0 + mode: 0 + timeMode: 0 + fps: 30 + frameOverTime: + serializedVersion: 2 + minMaxState: 1 + scalar: 0.9999 + minScalar: 0.9999 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startFrame: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + speedRange: {x: 0, y: 1} + tilesX: 1 + tilesY: 1 + animationType: 0 + rowIndex: 0 + cycles: 1 + uvChannelMask: -1 + rowMode: 1 + sprites: + - sprite: {fileID: 0} + flipU: 0 + flipV: 0 + VelocityModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalX: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalY: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalZ: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalOffsetX: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalOffsetY: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalOffsetZ: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + radial: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + speedModifier: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + inWorldSpace: 0 + InheritVelocityModule: + enabled: 0 + m_Mode: 0 + m_Curve: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + LifetimeByEmitterSpeedModule: + enabled: 0 + m_Curve: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: -0.8 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0.2 + inSlope: -0.8 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Range: {x: 0, y: 1} + ForceModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + inWorldSpace: 0 + randomizePerFrame: 0 + ExternalForcesModule: + serializedVersion: 2 + enabled: 0 + multiplierCurve: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + influenceFilter: 0 + influenceMask: + serializedVersion: 2 + m_Bits: 4294967295 + influenceList: [] + ClampVelocityModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + magnitude: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxis: 0 + inWorldSpace: 0 + multiplyDragByParticleSize: 1 + multiplyDragByParticleVelocity: 1 + dampen: 0 + drag: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + NoiseModule: + enabled: 0 + strength: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + strengthY: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + strengthZ: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + frequency: 0.5 + damping: 1 + octaves: 1 + octaveMultiplier: 0.5 + octaveScale: 2 + quality: 2 + scrollSpeed: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remap: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remapY: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remapZ: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remapEnabled: 0 + positionAmount: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + rotationAmount: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + sizeAmount: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + SizeBySpeedModule: + enabled: 0 + curve: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + range: {x: 0, y: 1} + separateAxes: 0 + RotationBySpeedModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + curve: + serializedVersion: 2 + minMaxState: 0 + scalar: 0.7853982 + minScalar: 0.7853982 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + range: {x: 0, y: 1} + ColorBySpeedModule: + enabled: 0 + gradient: + serializedVersion: 2 + minMaxState: 1 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + range: {x: 0, y: 1} + CollisionModule: + enabled: 0 + serializedVersion: 4 + type: 0 + collisionMode: 0 + colliderForce: 0 + multiplyColliderForceByParticleSize: 0 + multiplyColliderForceByParticleSpeed: 0 + multiplyColliderForceByCollisionAngle: 1 + m_Planes: + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + m_Dampen: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Bounce: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_EnergyLossOnCollision: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minKillSpeed: 0 + maxKillSpeed: 10000 + radiusScale: 1 + collidesWith: + serializedVersion: 2 + m_Bits: 4294967295 + maxCollisionShapes: 256 + quality: 0 + voxelSize: 0.5 + collisionMessages: 0 + collidesWithDynamic: 1 + interiorCollisions: 0 + TriggerModule: + enabled: 0 + serializedVersion: 2 + inside: 1 + outside: 0 + enter: 0 + exit: 0 + colliderQueryMode: 0 + radiusScale: 1 + primitives: + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + SubModule: + serializedVersion: 2 + enabled: 0 + subEmitters: + - serializedVersion: 3 + emitter: {fileID: 0} + type: 0 + properties: 0 + emitProbability: 1 + LightsModule: + enabled: 0 + ratio: 0 + light: {fileID: 0} + randomDistribution: 1 + color: 1 + range: 1 + intensity: 1 + rangeCurve: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + intensityCurve: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + maxLights: 20 + TrailModule: + enabled: 0 + mode: 0 + ratio: 1 + lifetime: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minVertexDistance: 0.2 + textureMode: 0 + ribbonCount: 1 + shadowBias: 0.5 + worldSpace: 0 + dieWithParticles: 1 + sizeAffectsWidth: 1 + sizeAffectsLifetime: 0 + inheritParticleColor: 1 + generateLightingData: 0 + splitSubEmitterRibbons: 0 + attachRibbonsToTransform: 0 + colorOverLifetime: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + widthOverTrail: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + colorOverTrail: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + CustomDataModule: + enabled: 0 + mode0: 0 + vectorComponentCount0: 4 + color0: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + colorLabel0: Color + vector0_0: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_0: X + vector0_1: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_1: Y + vector0_2: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_2: Z + vector0_3: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_3: W + mode1: 0 + vectorComponentCount1: 4 + color1: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + colorLabel1: Color + vector1_0: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_0: X + vector1_1: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_1: Y + vector1_2: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_2: Z + vector1_3: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_3: W +--- !u!199 &3191133241829315540 +ParticleSystemRenderer: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3353409812427418178} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 4294967295 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 681df1d8031e0774b9dc7c3ee0728458, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 1 + m_RenderMode: 0 + m_SortMode: 0 + m_MinParticleSize: 0 + m_MaxParticleSize: 20 + m_CameraVelocityScale: 0 + m_VelocityScale: 0 + m_LengthScale: 2 + m_SortingFudge: 0 + m_NormalDirection: 1 + m_ShadowBias: 0 + m_RenderAlignment: 0 + m_Pivot: {x: 0, y: 0, z: 0} + m_Flip: {x: 0, y: 0, z: 0} + m_UseCustomVertexStreams: 1 + m_EnableGPUInstancing: 1 + m_ApplyActiveColorSpace: 0 + m_AllowRoll: 1 + m_FreeformStretching: 0 + m_RotateWithStretchDirection: 1 + m_VertexStreams: 000304 + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} + m_Mesh1: {fileID: 0} + m_Mesh2: {fileID: 0} + m_Mesh3: {fileID: 0} + m_MaskInteraction: 0 +--- !u!1 &3353982800723161670 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3358913098587991592} + - component: {fileID: 3192971808619105892} + - component: {fileID: 3191876302386132256} + m_Layer: 0 + m_Name: Embers + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3358913098587991592 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3353982800723161670} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 3351282060156006704} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!198 &3192971808619105892 +ParticleSystem: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3353982800723161670} + serializedVersion: 7 + lengthInSec: 2 + simulationSpeed: 1 + stopAction: 0 + cullingMode: 3 + ringBufferMode: 0 + ringBufferLoopRange: {x: 0, y: 1} + looping: 0 + prewarm: 0 + playOnAwake: 1 + useUnscaledTime: 0 + autoRandomSeed: 1 + useRigidbodyForVelocity: 1 + startDelay: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + moveWithTransform: 0 + moveWithCustomTransform: {fileID: 0} + scalingMode: 2 + randomSeed: 0 + InitialModule: + serializedVersion: 3 + enabled: 1 + startLifetime: + serializedVersion: 2 + minMaxState: 3 + scalar: 3 + minScalar: 0.5 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 0 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0.5 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 0 + startSpeed: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 3 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 0 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0.5 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 0 + startColor: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 0.91705996, g: 0.19215685, b: 0.99215686, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + startSize: + serializedVersion: 2 + minMaxState: 3 + scalar: 0.05 + minScalar: 0.01 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 0 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0.19999999 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 0 + startSizeY: + serializedVersion: 2 + minMaxState: 3 + scalar: 1 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 0 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 0 + startSizeZ: + serializedVersion: 2 + minMaxState: 3 + scalar: 1 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 0 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 0 + startRotationX: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startRotationY: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startRotation: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + randomizeRotationDirection: 0 + maxNumParticles: 1000 + size3D: 0 + rotation3D: 0 + gravityModifier: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + ShapeModule: + serializedVersion: 6 + enabled: 1 + type: 0 + angle: 32.22 + length: 0.12 + boxThickness: {x: 0, y: 0, z: 0} + radiusThickness: 0 + donutRadius: 0.2 + m_Position: {x: 0, y: 0, z: 0} + m_Rotation: {x: 0, y: 0, z: 0} + m_Scale: {x: 1, y: 1, z: 1} + placementMode: 0 + m_MeshMaterialIndex: 0 + m_MeshNormalOffset: 0 + m_MeshSpawn: + mode: 0 + spread: 0 + speed: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Mesh: {fileID: 0} + m_MeshRenderer: {fileID: 0} + m_SkinnedMeshRenderer: {fileID: 0} + m_Sprite: {fileID: 0} + m_SpriteRenderer: {fileID: 0} + m_UseMeshMaterialIndex: 0 + m_UseMeshColors: 1 + alignToDirection: 0 + m_Texture: {fileID: 0} + m_TextureClipChannel: 3 + m_TextureClipThreshold: 0 + m_TextureUVChannel: 0 + m_TextureColorAffectsParticles: 1 + m_TextureAlphaAffectsParticles: 1 + m_TextureBilinearFiltering: 0 + randomDirectionAmount: 0 + sphericalDirectionAmount: 0 + randomPositionAmount: 0 + radius: + value: 0.43552133 + mode: 0 + spread: 0 + speed: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + arc: + value: 360 + mode: 0 + spread: 0 + speed: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + EmissionModule: + enabled: 1 + serializedVersion: 4 + rateOverTime: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 10 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + rateOverDistance: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_BurstCount: 1 + m_Bursts: + - serializedVersion: 2 + time: 0 + countCurve: + serializedVersion: 2 + minMaxState: 0 + scalar: 10 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + cycleCount: 1 + repeatInterval: 0.05 + probability: 1 + SizeModule: + enabled: 0 + curve: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + RotationModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + curve: + serializedVersion: 2 + minMaxState: 0 + scalar: 0.7853982 + minScalar: 0.7853982 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + ColorModule: + enabled: 1 + gradient: + serializedVersion: 2 + minMaxState: 1 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 0} + key1: {r: 0.91764706, g: 0.39607844, b: 0, a: 1} + key2: {r: 0, g: 0, b: 0, a: 1} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 6168 + atime2: 53199 + atime3: 65535 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 4 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + UVModule: + serializedVersion: 2 + enabled: 0 + mode: 0 + timeMode: 0 + fps: 30 + frameOverTime: + serializedVersion: 2 + minMaxState: 1 + scalar: 0.9999 + minScalar: 0.9999 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startFrame: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + speedRange: {x: 0, y: 1} + tilesX: 1 + tilesY: 1 + animationType: 0 + rowIndex: 0 + cycles: 1 + uvChannelMask: -1 + rowMode: 1 + sprites: + - sprite: {fileID: 0} + flipU: 0 + flipV: 0 + VelocityModule: + enabled: 1 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalX: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalY: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalZ: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalOffsetX: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalOffsetY: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalOffsetZ: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + radial: + serializedVersion: 2 + minMaxState: 1 + scalar: 10 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: -4.1481485 + outSlope: -4.1481485 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.36101347 + - serializedVersion: 3 + time: 0.115407646 + value: 0.32009315 + inSlope: -1.885982 + outSlope: -1.885982 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.13906091 + - serializedVersion: 3 + time: 1 + value: 0.25959396 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + speedModifier: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + inWorldSpace: 1 + InheritVelocityModule: + enabled: 0 + m_Mode: 0 + m_Curve: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + LifetimeByEmitterSpeedModule: + enabled: 0 + m_Curve: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: -0.8 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0.2 + inSlope: -0.8 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Range: {x: 0, y: 1} + ForceModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + inWorldSpace: 0 + randomizePerFrame: 0 + ExternalForcesModule: + serializedVersion: 2 + enabled: 0 + multiplierCurve: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + influenceFilter: 0 + influenceMask: + serializedVersion: 2 + m_Bits: 4294967295 + influenceList: [] + ClampVelocityModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + magnitude: + serializedVersion: 2 + minMaxState: 2 + scalar: 5 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: -2 + outSlope: -2 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxis: 0 + inWorldSpace: 0 + multiplyDragByParticleSize: 1 + multiplyDragByParticleVelocity: 1 + dampen: 1 + drag: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + NoiseModule: + enabled: 1 + strength: + serializedVersion: 2 + minMaxState: 0 + scalar: 0.5 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + strengthY: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + strengthZ: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + frequency: 1 + damping: 1 + octaves: 1 + octaveMultiplier: 0.5 + octaveScale: 2 + quality: 2 + scrollSpeed: + serializedVersion: 2 + minMaxState: 0 + scalar: 2 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remap: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: -1 + inSlope: 0 + outSlope: 2 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 2 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remapY: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: -1 + inSlope: 0 + outSlope: 2 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 2 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remapZ: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: -1 + inSlope: 0 + outSlope: 2 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 2 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remapEnabled: 0 + positionAmount: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + rotationAmount: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + sizeAmount: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + SizeBySpeedModule: + enabled: 0 + curve: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + range: {x: 0, y: 1} + separateAxes: 0 + RotationBySpeedModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + curve: + serializedVersion: 2 + minMaxState: 0 + scalar: 0.7853982 + minScalar: 0.7853982 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + range: {x: 0, y: 1} + ColorBySpeedModule: + enabled: 0 + gradient: + serializedVersion: 2 + minMaxState: 1 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + range: {x: 0, y: 1} + CollisionModule: + enabled: 0 + serializedVersion: 4 + type: 0 + collisionMode: 0 + colliderForce: 0 + multiplyColliderForceByParticleSize: 0 + multiplyColliderForceByParticleSpeed: 0 + multiplyColliderForceByCollisionAngle: 1 + m_Planes: + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + m_Dampen: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Bounce: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_EnergyLossOnCollision: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minKillSpeed: 0 + maxKillSpeed: 10000 + radiusScale: 1 + collidesWith: + serializedVersion: 2 + m_Bits: 4294967295 + maxCollisionShapes: 256 + quality: 0 + voxelSize: 0.5 + collisionMessages: 0 + collidesWithDynamic: 1 + interiorCollisions: 1 + TriggerModule: + enabled: 0 + serializedVersion: 2 + inside: 1 + outside: 0 + enter: 0 + exit: 0 + colliderQueryMode: 0 + radiusScale: 1 + primitives: + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + SubModule: + serializedVersion: 2 + enabled: 0 + subEmitters: + - serializedVersion: 3 + emitter: {fileID: 0} + type: 0 + properties: 0 + emitProbability: 1 + LightsModule: + enabled: 0 + ratio: 0 + light: {fileID: 0} + randomDistribution: 1 + color: 1 + range: 1 + intensity: 1 + rangeCurve: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + intensityCurve: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + maxLights: 20 + TrailModule: + enabled: 0 + mode: 0 + ratio: 1 + lifetime: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minVertexDistance: 0.2 + textureMode: 0 + ribbonCount: 1 + shadowBias: 0.5 + worldSpace: 0 + dieWithParticles: 1 + sizeAffectsWidth: 1 + sizeAffectsLifetime: 0 + inheritParticleColor: 1 + generateLightingData: 0 + splitSubEmitterRibbons: 0 + attachRibbonsToTransform: 0 + colorOverLifetime: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + widthOverTrail: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + colorOverTrail: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + CustomDataModule: + enabled: 0 + mode0: 0 + vectorComponentCount0: 4 + color0: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + colorLabel0: Color + vector0_0: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_0: X + vector0_1: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_1: Y + vector0_2: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_2: Z + vector0_3: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_3: W + mode1: 0 + vectorComponentCount1: 4 + color1: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + colorLabel1: Color + vector1_0: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_0: X + vector1_1: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_1: Y + vector1_2: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_2: Z + vector1_3: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_3: W +--- !u!199 &3191876302386132256 +ParticleSystemRenderer: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3353982800723161670} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 4294967295 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 776677ab3818fb249adaca05f4e04545, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_RenderMode: 1 + m_SortMode: 1 + m_MinParticleSize: 0 + m_MaxParticleSize: 0.5 + m_CameraVelocityScale: 0 + m_VelocityScale: 0.1 + m_LengthScale: 0 + m_SortingFudge: 0 + m_NormalDirection: 1 + m_ShadowBias: 0 + m_RenderAlignment: 0 + m_Pivot: {x: 0, y: 0, z: 0} + m_Flip: {x: 0, y: 0, z: 0} + m_UseCustomVertexStreams: 1 + m_EnableGPUInstancing: 0 + m_ApplyActiveColorSpace: 0 + m_AllowRoll: 1 + m_FreeformStretching: 0 + m_RotateWithStretchDirection: 1 + m_VertexStreams: 000304 + m_Mesh: {fileID: 0} + m_Mesh1: {fileID: 0} + m_Mesh2: {fileID: 0} + m_Mesh3: {fileID: 0} + m_MaskInteraction: 0 +--- !u!1 &4160300748626113272 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1656848774125631793} + - component: {fileID: 1185770615277969897} + - component: {fileID: 257306165894491449} + m_Layer: 0 + m_Name: Railgun + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1656848774125631793 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4160300748626113272} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 940753248448816131} + - {fileID: 3351282060156006704} + - {fileID: 3349407621156921369} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1185770615277969897 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4160300748626113272} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 90fe995fff18457987112f6f96b45a17, type: 3} + m_Name: + m_EditorClassIdentifier: + Prototype: {fileID: 5741435455277378192} +--- !u!114 &257306165894491449 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4160300748626113272} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: acaf148dd74205a4098665bb4be3f3a5, type: 3} + m_Name: + m_EditorClassIdentifier: + EffectPrototype: {fileID: 4333490116481007344} +--- !u!1 &4564963433458115999 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 940753248448816131} + - component: {fileID: 5741435455277378192} + - component: {fileID: 8878809816622649122} + - component: {fileID: 477671999227863540} + m_Layer: 0 + m_Name: Trail + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &940753248448816131 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4564963433458115999} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 2423173662465485088} + m_Father: {fileID: 1656848774125631793} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &5741435455277378192 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4564963433458115999} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1281fe44325f9b548aa42dc331b17266, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &8878809816622649122 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4564963433458115999} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f8555514e892b2c438fe085da1fdf89d, type: 3} + m_Name: + m_EditorClassIdentifier: + Duration: 1 + IntensityCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 3 + inSlope: -10.4011345 + outSlope: -10.4011345 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0.048672568 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + Line: {fileID: 477671999227863540} + LineEffect: {fileID: 4604247921592577927} + HitEffect: {fileID: 6248761991871516477} +--- !u!120 &477671999227863540 +LineRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4564963433458115999} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 1 + m_DynamicOccludee: 0 + m_MotionVectors: 0 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 9c20b9ccbbbb1b14cb5729e0c8460cd9, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Positions: + - {x: 0, y: 0, z: 0} + - {x: 0, y: 0, z: 100} + m_Parameters: + serializedVersion: 3 + widthMultiplier: 1 + widthCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 69 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + colorGradient: + serializedVersion: 2 + key0: {r: 0, g: 0.050290912, b: 0.7075472, a: 0} + key1: {r: 0.039215684, g: 0.7982905, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + numCornerVertices: 0 + numCapVertices: 2 + alignment: 0 + textureMode: 0 + shadowBias: 0.5 + generateLightingData: 0 + m_UseWorldSpace: 0 + m_Loop: 0 +--- !u!1 &7260365810735698660 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2423173662465485088} + - component: {fileID: 4604247921592577927} + - component: {fileID: 5252588571006147158} + m_Layer: 0 + m_Name: Effect + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2423173662465485088 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7260365810735698660} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 940753248448816131} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: -90, y: 0, z: 0} +--- !u!198 &4604247921592577927 +ParticleSystem: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7260365810735698660} + serializedVersion: 7 + lengthInSec: 0.1 + simulationSpeed: 1 + stopAction: 0 + cullingMode: 0 + ringBufferMode: 0 + ringBufferLoopRange: {x: 0, y: 1} + looping: 0 + prewarm: 0 + playOnAwake: 1 + useUnscaledTime: 0 + autoRandomSeed: 1 + useRigidbodyForVelocity: 1 + startDelay: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + moveWithTransform: 0 + moveWithCustomTransform: {fileID: 0} + scalingMode: 1 + randomSeed: 0 + InitialModule: + serializedVersion: 3 + enabled: 1 + startLifetime: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 5 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startSpeed: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 5 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startColor: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + startSize: + serializedVersion: 2 + minMaxState: 0 + scalar: 3 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startSizeY: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startSizeZ: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startRotationX: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startRotationY: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startRotation: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + randomizeRotationDirection: 0 + maxNumParticles: 1000 + size3D: 0 + rotation3D: 0 + gravityModifier: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + ShapeModule: + serializedVersion: 6 + enabled: 1 + type: 12 + angle: 25 + length: 5 + boxThickness: {x: 0, y: 0, z: 0} + radiusThickness: 1 + donutRadius: 0.2 + m_Position: {x: 0, y: 0, z: 5} + m_Rotation: {x: 0, y: 90, z: 0} + m_Scale: {x: 5, y: 1, z: 1} + placementMode: 0 + m_MeshMaterialIndex: 0 + m_MeshNormalOffset: 0 + m_MeshSpawn: + mode: 0 + spread: 0 + speed: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Mesh: {fileID: 0} + m_MeshRenderer: {fileID: 0} + m_SkinnedMeshRenderer: {fileID: 0} + m_Sprite: {fileID: 0} + m_SpriteRenderer: {fileID: 0} + m_UseMeshMaterialIndex: 0 + m_UseMeshColors: 1 + alignToDirection: 0 + m_Texture: {fileID: 0} + m_TextureClipChannel: 3 + m_TextureClipThreshold: 0 + m_TextureUVChannel: 0 + m_TextureColorAffectsParticles: 1 + m_TextureAlphaAffectsParticles: 1 + m_TextureBilinearFiltering: 0 + randomDirectionAmount: 1 + sphericalDirectionAmount: 0 + randomPositionAmount: 0 + radius: + value: 1 + mode: 1 + spread: 0 + speed: + serializedVersion: 2 + minMaxState: 0 + scalar: -10 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + arc: + value: 360 + mode: 0 + spread: 0 + speed: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + EmissionModule: + enabled: 1 + serializedVersion: 4 + rateOverTime: + serializedVersion: 2 + minMaxState: 0 + scalar: 2 + minScalar: 10 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + rateOverDistance: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_BurstCount: 0 + m_Bursts: [] + SizeModule: + enabled: 1 + curve: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: -2 + outSlope: -2 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + RotationModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + curve: + serializedVersion: 2 + minMaxState: 0 + scalar: 0.7853982 + minScalar: 0.7853982 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + ColorModule: + enabled: 1 + gradient: + serializedVersion: 2 + minMaxState: 1 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 0.14899999, g: 0.34151047, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 0} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 43646 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + UVModule: + serializedVersion: 2 + enabled: 0 + mode: 0 + timeMode: 0 + fps: 30 + frameOverTime: + serializedVersion: 2 + minMaxState: 1 + scalar: 0.9999 + minScalar: 0.9999 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startFrame: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + speedRange: {x: 0, y: 1} + tilesX: 1 + tilesY: 1 + animationType: 0 + rowIndex: 0 + cycles: 1 + uvChannelMask: -1 + rowMode: 1 + sprites: + - sprite: {fileID: 0} + flipU: 0 + flipV: 0 + VelocityModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalX: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalY: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalZ: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalOffsetX: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalOffsetY: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalOffsetZ: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + radial: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + speedModifier: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + inWorldSpace: 0 + InheritVelocityModule: + enabled: 0 + m_Mode: 0 + m_Curve: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + LifetimeByEmitterSpeedModule: + enabled: 0 + m_Curve: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: -0.8 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0.2 + inSlope: -0.8 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Range: {x: 0, y: 1} + ForceModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + inWorldSpace: 0 + randomizePerFrame: 0 + ExternalForcesModule: + serializedVersion: 2 + enabled: 0 + multiplierCurve: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + influenceFilter: 0 + influenceMask: + serializedVersion: 2 + m_Bits: 4294967295 + influenceList: [] + ClampVelocityModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + magnitude: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxis: 0 + inWorldSpace: 0 + multiplyDragByParticleSize: 1 + multiplyDragByParticleVelocity: 1 + dampen: 0 + drag: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + NoiseModule: + enabled: 0 + strength: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + strengthY: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + strengthZ: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + frequency: 0.5 + damping: 1 + octaves: 1 + octaveMultiplier: 0.5 + octaveScale: 2 + quality: 2 + scrollSpeed: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remap: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: -1 + inSlope: 0 + outSlope: 2 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 2 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remapY: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: -1 + inSlope: 0 + outSlope: 2 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 2 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remapZ: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: -1 + inSlope: 0 + outSlope: 2 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 2 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remapEnabled: 0 + positionAmount: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + rotationAmount: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + sizeAmount: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + SizeBySpeedModule: + enabled: 0 + curve: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + range: {x: 0, y: 1} + separateAxes: 0 + RotationBySpeedModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + curve: + serializedVersion: 2 + minMaxState: 0 + scalar: 0.7853982 + minScalar: 0.7853982 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + range: {x: 0, y: 1} + ColorBySpeedModule: + enabled: 0 + gradient: + serializedVersion: 2 + minMaxState: 1 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + range: {x: 0, y: 1} + CollisionModule: + enabled: 0 + serializedVersion: 4 + type: 0 + collisionMode: 0 + colliderForce: 0 + multiplyColliderForceByParticleSize: 0 + multiplyColliderForceByParticleSpeed: 0 + multiplyColliderForceByCollisionAngle: 1 + m_Planes: [] + m_Dampen: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Bounce: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_EnergyLossOnCollision: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minKillSpeed: 0 + maxKillSpeed: 10000 + radiusScale: 1 + collidesWith: + serializedVersion: 2 + m_Bits: 4294967295 + maxCollisionShapes: 256 + quality: 0 + voxelSize: 0.5 + collisionMessages: 0 + collidesWithDynamic: 1 + interiorCollisions: 0 + TriggerModule: + enabled: 0 + serializedVersion: 2 + inside: 1 + outside: 0 + enter: 0 + exit: 0 + colliderQueryMode: 0 + radiusScale: 1 + primitives: [] + SubModule: + serializedVersion: 2 + enabled: 0 + subEmitters: + - serializedVersion: 3 + emitter: {fileID: 0} + type: 0 + properties: 0 + emitProbability: 1 + LightsModule: + enabled: 0 + ratio: 0 + light: {fileID: 0} + randomDistribution: 1 + color: 1 + range: 1 + intensity: 1 + rangeCurve: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + intensityCurve: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + maxLights: 20 + TrailModule: + enabled: 0 + mode: 0 + ratio: 1 + lifetime: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minVertexDistance: 0.2 + textureMode: 0 + ribbonCount: 1 + shadowBias: 0.5 + worldSpace: 0 + dieWithParticles: 1 + sizeAffectsWidth: 1 + sizeAffectsLifetime: 0 + inheritParticleColor: 1 + generateLightingData: 0 + splitSubEmitterRibbons: 0 + attachRibbonsToTransform: 0 + colorOverLifetime: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + widthOverTrail: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + colorOverTrail: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + CustomDataModule: + enabled: 0 + mode0: 0 + vectorComponentCount0: 4 + color0: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + colorLabel0: Color + vector0_0: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_0: X + vector0_1: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_1: Y + vector0_2: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_2: Z + vector0_3: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_3: W + mode1: 0 + vectorComponentCount1: 4 + color1: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + colorLabel1: Color + vector1_0: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_0: X + vector1_1: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_1: Y + vector1_2: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_2: Z + vector1_3: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_3: W +--- !u!199 &5252588571006147158 +ParticleSystemRenderer: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7260365810735698660} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: c743050056b7f9a409136c378f3f62b8, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_RenderMode: 0 + m_SortMode: 0 + m_MinParticleSize: 0 + m_MaxParticleSize: 0.5 + m_CameraVelocityScale: 0 + m_VelocityScale: 0 + m_LengthScale: 2 + m_SortingFudge: 0 + m_NormalDirection: 1 + m_ShadowBias: 0 + m_RenderAlignment: 2 + m_Pivot: {x: 0, y: 0, z: 0} + m_Flip: {x: 0, y: 0, z: 0} + m_UseCustomVertexStreams: 0 + m_EnableGPUInstancing: 1 + m_ApplyActiveColorSpace: 1 + m_AllowRoll: 1 + m_FreeformStretching: 0 + m_RotateWithStretchDirection: 1 + m_VertexStreams: 00010304 + m_Mesh: {fileID: 0} + m_Mesh1: {fileID: 0} + m_Mesh2: {fileID: 0} + m_Mesh3: {fileID: 0} + m_MaskInteraction: 0 diff --git a/Assets/Resources/Prefabs/Weapons/ColferV/Emperor.prefab.meta b/Assets/Resources/Prefabs/Weapons/ColferV/Emperor.prefab.meta new file mode 100644 index 000000000..8564b78e1 --- /dev/null +++ b/Assets/Resources/Prefabs/Weapons/ColferV/Emperor.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 39793bdcabd10f0469a4f761c8063bf1 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Prefabs/Weapons/ColferV/ShootYerEyeOut.prefab b/Assets/Resources/Prefabs/Weapons/ColferV/ShootYerEyeOut.prefab new file mode 100644 index 000000000..4fb81e4cf --- /dev/null +++ b/Assets/Resources/Prefabs/Weapons/ColferV/ShootYerEyeOut.prefab @@ -0,0 +1,320 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &1038711833328602429 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7093708978518643867} + - component: {fileID: 4746410263980518329} + - component: {fileID: 277178765566372861} + - component: {fileID: 654273117314929370} + m_Layer: 0 + m_Name: Bullet + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &7093708978518643867 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1038711833328602429} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 7887646903913370668} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &4746410263980518329 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1038711833328602429} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1281fe44325f9b548aa42dc331b17266, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!96 &277178765566372861 +TrailRenderer: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1038711833328602429} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 9c20b9ccbbbb1b14cb5729e0c8460cd9, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Time: 0.1 + m_Parameters: + serializedVersion: 3 + widthMultiplier: 1 + widthCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: -1 + tangentMode: 69 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: -1 + outSlope: 0 + tangentMode: 69 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + colorGradient: + serializedVersion: 2 + key0: {r: 1, g: 0.99469995, b: 0.45098042, a: 1} + key1: {r: 1, g: 0.3910084, b: 0.049000025, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 31804 + ctime2: 65535 + ctime3: 65535 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 3 + m_NumAlphaKeys: 2 + numCornerVertices: 0 + numCapVertices: 0 + alignment: 0 + textureMode: 0 + shadowBias: 0.5 + generateLightingData: 0 + m_MinVertexDistance: 1 + m_Autodestruct: 0 + m_Emitting: 1 +--- !u!114 &654273117314929370 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1038711833328602429} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4528540a139424748a7b6c47bfecc7fd, type: 3} + m_Name: + m_EditorClassIdentifier: + Trail: {fileID: 277178765566372861} + Gravity: 1 + HitEffect: {fileID: 3196731101172068069} +--- !u!1 &6642079567538326943 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7887646903913370668} + - component: {fileID: 4191762351494344457} + m_Layer: 0 + m_Name: Bullet Manager + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &7887646903913370668 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6642079567538326943} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 7093708978518643867} + - {fileID: 6081895055445446888} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &4191762351494344457 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6642079567538326943} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 49c173e3c2313ca4d9d04d0d87ec0f06, type: 3} + m_Name: + m_EditorClassIdentifier: + ProjectilePrototype: {fileID: 4746410263980518329} +--- !u!1001 &6082388488576249182 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 7887646903913370668} + m_Modifications: + - target: {fileID: 1337198075554910, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, type: 3} + propertyPath: m_Name + value: TinyExplosion + objectReference: {fileID: 0} + - target: {fileID: 4441266138185142, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, type: 3} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4441266138185142, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, type: 3} + propertyPath: m_LocalPosition.x + value: -4.2346153 + objectReference: {fileID: 0} + - target: {fileID: 4441266138185142, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, type: 3} + propertyPath: m_LocalPosition.y + value: 2.42 + objectReference: {fileID: 0} + - target: {fileID: 4441266138185142, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, type: 3} + propertyPath: m_LocalPosition.z + value: -21.91896 + objectReference: {fileID: 0} + - target: {fileID: 4441266138185142, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, type: 3} + propertyPath: m_LocalRotation.w + value: 0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 4441266138185142, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, type: 3} + propertyPath: m_LocalRotation.x + value: -0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 4441266138185142, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4441266138185142, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4441266138185142, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: -90 + objectReference: {fileID: 0} + - target: {fileID: 4441266138185142, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4441266138185142, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 198175801688348628, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, + type: 3} + propertyPath: looping + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 198175801688348628, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, + type: 3} + propertyPath: prewarm + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 198814760465859298, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, + type: 3} + propertyPath: looping + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 198814760465859298, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, + type: 3} + propertyPath: prewarm + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 198942329355805636, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, + type: 3} + propertyPath: looping + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 198942329355805636, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, + type: 3} + propertyPath: prewarm + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, type: 3} +--- !u!4 &6081895055445446888 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4441266138185142, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, + type: 3} + m_PrefabInstance: {fileID: 6082388488576249182} + m_PrefabAsset: {fileID: 0} +--- !u!114 &3196731101172068069 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 8662091027736085435, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, + type: 3} + m_PrefabInstance: {fileID: 6082388488576249182} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1281fe44325f9b548aa42dc331b17266, type: 3} + m_Name: + m_EditorClassIdentifier: diff --git a/Assets/Resources/Prefabs/Weapons/ColferV/ShootYerEyeOut.prefab.meta b/Assets/Resources/Prefabs/Weapons/ColferV/ShootYerEyeOut.prefab.meta new file mode 100644 index 000000000..6ed919d11 --- /dev/null +++ b/Assets/Resources/Prefabs/Weapons/ColferV/ShootYerEyeOut.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 058b746497cab7d4c8c240d06fb0c573 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Prefabs/Weapons/DME.meta b/Assets/Resources/Prefabs/Weapons/DME.meta new file mode 100644 index 000000000..0d7aedd11 --- /dev/null +++ b/Assets/Resources/Prefabs/Weapons/DME.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e8115dafde2dd3343999fe15a498aa42 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Prefabs/Weapons/DME/bananasplit.prefab b/Assets/Resources/Prefabs/Weapons/DME/bananasplit.prefab new file mode 100644 index 000000000..2eb9baee8 --- /dev/null +++ b/Assets/Resources/Prefabs/Weapons/DME/bananasplit.prefab @@ -0,0 +1,10004 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &2200213683735813174 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2200213683735813172} + - component: {fileID: 2698694499776308069} + - component: {fileID: 2200213683735813173} + m_Layer: 0 + m_Name: MIRV Torpedo + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2200213683735813172 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2200213683735813174} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 2200213684891960496} + m_Father: {fileID: 5148235482537864796} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &2698694499776308069 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2200213683735813174} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1281fe44325f9b548aa42dc331b17266, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &2200213683735813173 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2200213683735813174} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 56c973b8f3781c848b6530c2e7efce05, type: 3} + m_Name: + m_EditorClassIdentifier: + HitEffect: {fileID: 3919473840829643297} + ChildProjectile: {fileID: 4168716527889869138} + Children: 3 + SplitTime: 0.5 + SplitSeparationForwardness: 0.75 + SplitSeparationVelocity: 0.5 + Particles: {fileID: 2200213684891960502} + FadeOutTime: 1 + ThrustCurve: + serializedVersion: 2 + m_Curve: [] + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + GuidanceCurve: + serializedVersion: 2 + m_Curve: [] + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + LiftCurve: + serializedVersion: 2 + m_Curve: [] + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + Frequency: 0 + Thrust: 0 + TopSpeed: 0 + Source: {fileID: 0} +--- !u!1 &2200213684891960497 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2200213684891960496} + - component: {fileID: 2200213684891960502} + - component: {fileID: 2200213684891960503} + m_Layer: 0 + m_Name: Particle System + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2200213684891960496 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2200213684891960497} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 2200213683735813172} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: -90, y: 0, z: 0} +--- !u!198 &2200213684891960502 +ParticleSystem: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2200213684891960497} + serializedVersion: 7 + lengthInSec: 5 + simulationSpeed: 1 + stopAction: 0 + cullingMode: 0 + ringBufferMode: 0 + ringBufferLoopRange: {x: 0, y: 1} + looping: 1 + prewarm: 0 + playOnAwake: 1 + useUnscaledTime: 0 + autoRandomSeed: 1 + useRigidbodyForVelocity: 1 + startDelay: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + moveWithTransform: 1 + moveWithCustomTransform: {fileID: 0} + scalingMode: 1 + randomSeed: 0 + InitialModule: + serializedVersion: 3 + enabled: 1 + startLifetime: + serializedVersion: 2 + minMaxState: 0 + scalar: 2 + minScalar: 5 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startSpeed: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 5 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startColor: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + startSize: + serializedVersion: 2 + minMaxState: 0 + scalar: 10 + minScalar: 3 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startSizeY: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startSizeZ: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startRotationX: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startRotationY: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startRotation: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + randomizeRotationDirection: 0 + maxNumParticles: 1000 + size3D: 0 + rotation3D: 0 + gravityModifier: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + ShapeModule: + serializedVersion: 6 + enabled: 0 + type: 4 + angle: 25 + length: 5 + boxThickness: {x: 0, y: 0, z: 0} + radiusThickness: 1 + donutRadius: 0.2 + m_Position: {x: 0, y: 0, z: 0} + m_Rotation: {x: 0, y: 0, z: 0} + m_Scale: {x: 1, y: 1, z: 1} + placementMode: 0 + m_MeshMaterialIndex: 0 + m_MeshNormalOffset: 0 + m_MeshSpawn: + mode: 0 + spread: 0 + speed: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Mesh: {fileID: 0} + m_MeshRenderer: {fileID: 0} + m_SkinnedMeshRenderer: {fileID: 0} + m_Sprite: {fileID: 0} + m_SpriteRenderer: {fileID: 0} + m_UseMeshMaterialIndex: 0 + m_UseMeshColors: 1 + alignToDirection: 0 + m_Texture: {fileID: 0} + m_TextureClipChannel: 3 + m_TextureClipThreshold: 0 + m_TextureUVChannel: 0 + m_TextureColorAffectsParticles: 1 + m_TextureAlphaAffectsParticles: 1 + m_TextureBilinearFiltering: 0 + randomDirectionAmount: 0 + sphericalDirectionAmount: 0 + randomPositionAmount: 0 + radius: + value: 1 + mode: 0 + spread: 0 + speed: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + arc: + value: 360 + mode: 0 + spread: 0 + speed: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + EmissionModule: + enabled: 1 + serializedVersion: 4 + rateOverTime: + serializedVersion: 2 + minMaxState: 0 + scalar: 500 + minScalar: 10 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + rateOverDistance: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_BurstCount: 0 + m_Bursts: [] + SizeModule: + enabled: 0 + curve: + serializedVersion: 2 + minMaxState: 1 + scalar: 4 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 2 + outSlope: 2 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 0.15039083 + value: 0.97053653 + inSlope: -0.04036486 + outSlope: -0.04036486 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.37395254 + value: 0.1353639 + inSlope: 0.03037455 + outSlope: 0.03037455 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.50258505 + - serializedVersion: 3 + time: 0.5234933 + value: 0.965686 + inSlope: -0.015838688 + outSlope: -0.015838688 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.5332359 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.80144876 + value: 0.13683647 + inSlope: 0.11682253 + outSlope: 0.11682253 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + RotationModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + curve: + serializedVersion: 2 + minMaxState: 0 + scalar: 0.7853982 + minScalar: 0.7853982 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + ColorModule: + enabled: 0 + gradient: + serializedVersion: 2 + minMaxState: 1 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + UVModule: + serializedVersion: 2 + enabled: 0 + mode: 0 + timeMode: 1 + fps: 30 + frameOverTime: + serializedVersion: 2 + minMaxState: 1 + scalar: 0.9999 + minScalar: 0.9999 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startFrame: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + speedRange: {x: 0, y: 1} + tilesX: 5 + tilesY: 5 + animationType: 0 + rowIndex: 0 + cycles: 1 + uvChannelMask: -1 + rowMode: 1 + sprites: + - sprite: {fileID: 0} + flipU: 0 + flipV: 0 + VelocityModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalX: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalY: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalZ: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalOffsetX: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalOffsetY: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalOffsetZ: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + radial: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + speedModifier: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + inWorldSpace: 0 + InheritVelocityModule: + enabled: 0 + m_Mode: 0 + m_Curve: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + LifetimeByEmitterSpeedModule: + enabled: 0 + m_Curve: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: -0.8 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0.2 + inSlope: -0.8 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Range: {x: 0, y: 1} + ForceModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + inWorldSpace: 0 + randomizePerFrame: 0 + ExternalForcesModule: + serializedVersion: 2 + enabled: 0 + multiplierCurve: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + influenceFilter: 0 + influenceMask: + serializedVersion: 2 + m_Bits: 4294967295 + influenceList: [] + ClampVelocityModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + magnitude: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxis: 0 + inWorldSpace: 0 + multiplyDragByParticleSize: 1 + multiplyDragByParticleVelocity: 1 + dampen: 0 + drag: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + NoiseModule: + enabled: 1 + strength: + serializedVersion: 2 + minMaxState: 1 + scalar: 5 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: -1 + outSlope: -1 + tangentMode: 34 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: -1 + outSlope: -1 + tangentMode: 34 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + strengthY: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + strengthZ: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + frequency: 0.01 + damping: 1 + octaves: 1 + octaveMultiplier: 0.5 + octaveScale: 2 + quality: 2 + scrollSpeed: + serializedVersion: 2 + minMaxState: 0 + scalar: 0.1 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remap: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: -1 + inSlope: 0 + outSlope: 2 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 2 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remapY: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: -1 + inSlope: 0 + outSlope: 2 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 2 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remapZ: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: -1 + inSlope: 0 + outSlope: 2 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 2 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remapEnabled: 0 + positionAmount: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + rotationAmount: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + sizeAmount: + serializedVersion: 2 + minMaxState: 0 + scalar: 0.1 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + SizeBySpeedModule: + enabled: 0 + curve: + serializedVersion: 2 + minMaxState: 1 + scalar: 5 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 1 + outSlope: 1 + tangentMode: 34 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 1 + tangentMode: 34 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + range: {x: 0, y: 1} + separateAxes: 0 + RotationBySpeedModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + curve: + serializedVersion: 2 + minMaxState: 0 + scalar: 0.7853982 + minScalar: 0.7853982 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + range: {x: 0, y: 1} + ColorBySpeedModule: + enabled: 0 + gradient: + serializedVersion: 2 + minMaxState: 1 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + range: {x: 0, y: 1} + CollisionModule: + enabled: 0 + serializedVersion: 4 + type: 0 + collisionMode: 0 + colliderForce: 0 + multiplyColliderForceByParticleSize: 0 + multiplyColliderForceByParticleSpeed: 0 + multiplyColliderForceByCollisionAngle: 1 + m_Planes: + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + m_Dampen: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Bounce: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_EnergyLossOnCollision: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minKillSpeed: 0 + maxKillSpeed: 10000 + radiusScale: 1 + collidesWith: + serializedVersion: 2 + m_Bits: 4294967295 + maxCollisionShapes: 256 + quality: 0 + voxelSize: 0.5 + collisionMessages: 0 + collidesWithDynamic: 1 + interiorCollisions: 0 + TriggerModule: + enabled: 0 + serializedVersion: 2 + inside: 1 + outside: 0 + enter: 0 + exit: 0 + colliderQueryMode: 0 + radiusScale: 1 + primitives: + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + SubModule: + serializedVersion: 2 + enabled: 0 + subEmitters: + - serializedVersion: 3 + emitter: {fileID: 0} + type: 0 + properties: 0 + emitProbability: 1 + LightsModule: + enabled: 0 + ratio: 0 + light: {fileID: 0} + randomDistribution: 1 + color: 1 + range: 1 + intensity: 1 + rangeCurve: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + intensityCurve: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + maxLights: 20 + TrailModule: + enabled: 1 + mode: 1 + ratio: 1 + lifetime: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minVertexDistance: 0.2 + textureMode: 0 + ribbonCount: 1 + shadowBias: 0.5 + worldSpace: 0 + dieWithParticles: 1 + sizeAffectsWidth: 1 + sizeAffectsLifetime: 0 + inheritParticleColor: 1 + generateLightingData: 0 + splitSubEmitterRibbons: 0 + attachRibbonsToTransform: 1 + colorOverLifetime: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + widthOverTrail: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: -0.84615326 + outSlope: -0.84615326 + tangentMode: 34 + weightedMode: 0 + inWeight: 0 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0.15384674 + inSlope: -0.84615326 + outSlope: -0.84615326 + tangentMode: 34 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + colorOverTrail: + serializedVersion: 2 + minMaxState: 1 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 0, g: 0, b: 0, a: 0} + key1: {r: 0.01, g: 0.01, b: 0.01, a: 1} + key2: {r: 1, g: 0.092499994, b: 0.00999999, a: 1} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 40557 + ctime2: 65535 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 8192 + atime2: 65535 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 3 + m_NumAlphaKeys: 3 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + CustomDataModule: + enabled: 0 + mode0: 1 + vectorComponentCount0: 2 + color0: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + colorLabel0: Color + vector0_0: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_0: X + vector0_1: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_1: Y + vector0_2: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_2: Z + vector0_3: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_3: W + mode1: 0 + vectorComponentCount1: 4 + color1: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + colorLabel1: Color + vector1_0: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_0: X + vector1_1: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_1: Y + vector1_2: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_2: Z + vector1_3: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_3: W +--- !u!199 &2200213684891960503 +ParticleSystemRenderer: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2200213684891960497} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10308, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 2100000, guid: 483c8decd432d5e49ac166734cdd9d37, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_RenderMode: 5 + m_SortMode: 0 + m_MinParticleSize: 0 + m_MaxParticleSize: 0.5 + m_CameraVelocityScale: 0 + m_VelocityScale: 0 + m_LengthScale: 2 + m_SortingFudge: 0 + m_NormalDirection: 1 + m_ShadowBias: 0 + m_RenderAlignment: 0 + m_Pivot: {x: 0, y: 0, z: 0} + m_Flip: {x: 0, y: 0, z: 0} + m_UseCustomVertexStreams: 0 + m_EnableGPUInstancing: 1 + m_ApplyActiveColorSpace: 1 + m_AllowRoll: 1 + m_FreeformStretching: 0 + m_RotateWithStretchDirection: 1 + m_VertexStreams: 00010304 + m_Mesh: {fileID: 0} + m_Mesh1: {fileID: 0} + m_Mesh2: {fileID: 0} + m_Mesh3: {fileID: 0} + m_MaskInteraction: 0 +--- !u!1 &3015547693297330586 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5148235482537864796} + - component: {fileID: 8540408454168213454} + m_Layer: 0 + m_Name: MIRV-1 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &5148235482537864796 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3015547693297330586} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 2200213683735813172} + - {fileID: 5809341335623671595} + - {fileID: 6349448974718639232} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &8540408454168213454 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3015547693297330586} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ee3949bbc28566148b9f661741b6e25d, type: 3} + m_Name: + m_EditorClassIdentifier: + ProjectilePrototype: {fileID: 2698694499776308069} +--- !u!1 &5918150675599634023 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5809341335623671595} + - component: {fileID: 4168716527889869138} + - component: {fileID: 4754867723766222547} + m_Layer: 0 + m_Name: Child Missile + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &5809341335623671595 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5918150675599634023} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 6049529209865607864} + m_Father: {fileID: 5148235482537864796} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &4168716527889869138 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5918150675599634023} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1281fe44325f9b548aa42dc331b17266, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &4754867723766222547 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5918150675599634023} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 56c973b8f3781c848b6530c2e7efce05, type: 3} + m_Name: + m_EditorClassIdentifier: + HitEffect: {fileID: 3919473840829643297} + ChildProjectile: {fileID: 0} + Children: 0 + SplitTime: 0.5 + SplitSeparationForwardness: 0.8 + SplitSeparationVelocity: 0.666 + Particles: {fileID: 5975501607892293245} + FadeOutTime: 1 + ThrustCurve: + serializedVersion: 2 + m_Curve: [] + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + GuidanceCurve: + serializedVersion: 2 + m_Curve: [] + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + LiftCurve: + serializedVersion: 2 + m_Curve: [] + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + Frequency: 0 + Thrust: 0 + TopSpeed: 0 + Source: {fileID: 0} +--- !u!1 &8553191576142351254 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6049529209865607864} + - component: {fileID: 5975501607892293245} + - component: {fileID: 8629497489299652644} + m_Layer: 0 + m_Name: Particle System + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &6049529209865607864 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8553191576142351254} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 5809341335623671595} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: -90, y: 0, z: 0} +--- !u!198 &5975501607892293245 +ParticleSystem: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8553191576142351254} + serializedVersion: 7 + lengthInSec: 5 + simulationSpeed: 1 + stopAction: 0 + cullingMode: 0 + ringBufferMode: 0 + ringBufferLoopRange: {x: 0, y: 1} + looping: 1 + prewarm: 0 + playOnAwake: 1 + useUnscaledTime: 0 + autoRandomSeed: 1 + useRigidbodyForVelocity: 1 + startDelay: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + moveWithTransform: 1 + moveWithCustomTransform: {fileID: 0} + scalingMode: 1 + randomSeed: 0 + InitialModule: + serializedVersion: 3 + enabled: 1 + startLifetime: + serializedVersion: 2 + minMaxState: 0 + scalar: 2 + minScalar: 5 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startSpeed: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 5 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startColor: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + startSize: + serializedVersion: 2 + minMaxState: 0 + scalar: 3 + minScalar: 3 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startSizeY: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startSizeZ: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startRotationX: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startRotationY: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startRotation: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + randomizeRotationDirection: 0 + maxNumParticles: 1000 + size3D: 0 + rotation3D: 0 + gravityModifier: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + ShapeModule: + serializedVersion: 6 + enabled: 0 + type: 4 + angle: 25 + length: 5 + boxThickness: {x: 0, y: 0, z: 0} + radiusThickness: 1 + donutRadius: 0.2 + m_Position: {x: 0, y: 0, z: 0} + m_Rotation: {x: 0, y: 0, z: 0} + m_Scale: {x: 1, y: 1, z: 1} + placementMode: 0 + m_MeshMaterialIndex: 0 + m_MeshNormalOffset: 0 + m_MeshSpawn: + mode: 0 + spread: 0 + speed: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Mesh: {fileID: 0} + m_MeshRenderer: {fileID: 0} + m_SkinnedMeshRenderer: {fileID: 0} + m_Sprite: {fileID: 0} + m_SpriteRenderer: {fileID: 0} + m_UseMeshMaterialIndex: 0 + m_UseMeshColors: 1 + alignToDirection: 0 + m_Texture: {fileID: 0} + m_TextureClipChannel: 3 + m_TextureClipThreshold: 0 + m_TextureUVChannel: 0 + m_TextureColorAffectsParticles: 1 + m_TextureAlphaAffectsParticles: 1 + m_TextureBilinearFiltering: 0 + randomDirectionAmount: 0 + sphericalDirectionAmount: 0 + randomPositionAmount: 0 + radius: + value: 1 + mode: 0 + spread: 0 + speed: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + arc: + value: 360 + mode: 0 + spread: 0 + speed: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + EmissionModule: + enabled: 1 + serializedVersion: 4 + rateOverTime: + serializedVersion: 2 + minMaxState: 0 + scalar: 500 + minScalar: 10 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + rateOverDistance: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_BurstCount: 0 + m_Bursts: [] + SizeModule: + enabled: 0 + curve: + serializedVersion: 2 + minMaxState: 1 + scalar: 4 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 2 + outSlope: 2 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 0.15039083 + value: 0.97053653 + inSlope: -0.04036486 + outSlope: -0.04036486 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.37395254 + value: 0.1353639 + inSlope: 0.03037455 + outSlope: 0.03037455 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.50258505 + - serializedVersion: 3 + time: 0.5234933 + value: 0.965686 + inSlope: -0.015838688 + outSlope: -0.015838688 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.5332359 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.80144876 + value: 0.13683647 + inSlope: 0.11682253 + outSlope: 0.11682253 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + RotationModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + curve: + serializedVersion: 2 + minMaxState: 0 + scalar: 0.7853982 + minScalar: 0.7853982 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + ColorModule: + enabled: 0 + gradient: + serializedVersion: 2 + minMaxState: 1 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + UVModule: + serializedVersion: 2 + enabled: 0 + mode: 0 + timeMode: 1 + fps: 30 + frameOverTime: + serializedVersion: 2 + minMaxState: 1 + scalar: 0.9999 + minScalar: 0.9999 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startFrame: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + speedRange: {x: 0, y: 1} + tilesX: 5 + tilesY: 5 + animationType: 0 + rowIndex: 0 + cycles: 1 + uvChannelMask: -1 + rowMode: 1 + sprites: + - sprite: {fileID: 0} + flipU: 0 + flipV: 0 + VelocityModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalX: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalY: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalZ: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalOffsetX: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalOffsetY: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalOffsetZ: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + radial: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + speedModifier: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + inWorldSpace: 0 + InheritVelocityModule: + enabled: 0 + m_Mode: 0 + m_Curve: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + LifetimeByEmitterSpeedModule: + enabled: 0 + m_Curve: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: -0.8 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0.2 + inSlope: -0.8 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Range: {x: 0, y: 1} + ForceModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + inWorldSpace: 0 + randomizePerFrame: 0 + ExternalForcesModule: + serializedVersion: 2 + enabled: 0 + multiplierCurve: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + influenceFilter: 0 + influenceMask: + serializedVersion: 2 + m_Bits: 4294967295 + influenceList: [] + ClampVelocityModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + magnitude: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxis: 0 + inWorldSpace: 0 + multiplyDragByParticleSize: 1 + multiplyDragByParticleVelocity: 1 + dampen: 0 + drag: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + NoiseModule: + enabled: 1 + strength: + serializedVersion: 2 + minMaxState: 1 + scalar: 5 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: -1 + outSlope: -1 + tangentMode: 34 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: -1 + outSlope: -1 + tangentMode: 34 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + strengthY: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + strengthZ: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + frequency: 0.01 + damping: 1 + octaves: 1 + octaveMultiplier: 0.5 + octaveScale: 2 + quality: 2 + scrollSpeed: + serializedVersion: 2 + minMaxState: 0 + scalar: 0.1 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remap: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: -1 + inSlope: 0 + outSlope: 2 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 2 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remapY: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: -1 + inSlope: 0 + outSlope: 2 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 2 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remapZ: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: -1 + inSlope: 0 + outSlope: 2 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 2 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remapEnabled: 0 + positionAmount: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + rotationAmount: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + sizeAmount: + serializedVersion: 2 + minMaxState: 0 + scalar: 0.1 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + SizeBySpeedModule: + enabled: 0 + curve: + serializedVersion: 2 + minMaxState: 1 + scalar: 5 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 1 + outSlope: 1 + tangentMode: 34 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 1 + tangentMode: 34 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + range: {x: 0, y: 1} + separateAxes: 0 + RotationBySpeedModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + curve: + serializedVersion: 2 + minMaxState: 0 + scalar: 0.7853982 + minScalar: 0.7853982 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + range: {x: 0, y: 1} + ColorBySpeedModule: + enabled: 0 + gradient: + serializedVersion: 2 + minMaxState: 1 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + range: {x: 0, y: 1} + CollisionModule: + enabled: 0 + serializedVersion: 4 + type: 0 + collisionMode: 0 + colliderForce: 0 + multiplyColliderForceByParticleSize: 0 + multiplyColliderForceByParticleSpeed: 0 + multiplyColliderForceByCollisionAngle: 1 + m_Planes: + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + m_Dampen: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Bounce: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_EnergyLossOnCollision: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minKillSpeed: 0 + maxKillSpeed: 10000 + radiusScale: 1 + collidesWith: + serializedVersion: 2 + m_Bits: 4294967295 + maxCollisionShapes: 256 + quality: 0 + voxelSize: 0.5 + collisionMessages: 0 + collidesWithDynamic: 1 + interiorCollisions: 0 + TriggerModule: + enabled: 0 + serializedVersion: 2 + inside: 1 + outside: 0 + enter: 0 + exit: 0 + colliderQueryMode: 0 + radiusScale: 1 + primitives: + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + SubModule: + serializedVersion: 2 + enabled: 0 + subEmitters: + - serializedVersion: 3 + emitter: {fileID: 0} + type: 0 + properties: 0 + emitProbability: 1 + LightsModule: + enabled: 0 + ratio: 0 + light: {fileID: 0} + randomDistribution: 1 + color: 1 + range: 1 + intensity: 1 + rangeCurve: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + intensityCurve: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + maxLights: 20 + TrailModule: + enabled: 1 + mode: 1 + ratio: 1 + lifetime: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minVertexDistance: 0.2 + textureMode: 0 + ribbonCount: 1 + shadowBias: 0.5 + worldSpace: 0 + dieWithParticles: 1 + sizeAffectsWidth: 1 + sizeAffectsLifetime: 0 + inheritParticleColor: 1 + generateLightingData: 0 + splitSubEmitterRibbons: 0 + attachRibbonsToTransform: 1 + colorOverLifetime: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + widthOverTrail: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: -1 + outSlope: -1 + tangentMode: 34 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: -1 + outSlope: -1 + tangentMode: 34 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + colorOverTrail: + serializedVersion: 2 + minMaxState: 1 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 0, g: 0, b: 0, a: 0} + key1: {r: 0.01, g: 0.01, b: 0.01, a: 1} + key2: {r: 1, g: 0.092499994, b: 0.00999999, a: 1} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 40557 + ctime2: 65535 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 8192 + atime2: 65535 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 3 + m_NumAlphaKeys: 3 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + CustomDataModule: + enabled: 0 + mode0: 1 + vectorComponentCount0: 2 + color0: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + colorLabel0: Color + vector0_0: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_0: X + vector0_1: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_1: Y + vector0_2: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_2: Z + vector0_3: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_3: W + mode1: 0 + vectorComponentCount1: 4 + color1: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + colorLabel1: Color + vector1_0: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_0: X + vector1_1: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_1: Y + vector1_2: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_2: Z + vector1_3: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_3: W +--- !u!199 &8629497489299652644 +ParticleSystemRenderer: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8553191576142351254} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10308, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 2100000, guid: 7ee57157df7b89d42b11299114860571, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_RenderMode: 5 + m_SortMode: 0 + m_MinParticleSize: 0 + m_MaxParticleSize: 0.5 + m_CameraVelocityScale: 0 + m_VelocityScale: 0 + m_LengthScale: 2 + m_SortingFudge: 0 + m_NormalDirection: 1 + m_ShadowBias: 0 + m_RenderAlignment: 0 + m_Pivot: {x: 0, y: 0, z: 0} + m_Flip: {x: 0, y: 0, z: 0} + m_UseCustomVertexStreams: 0 + m_EnableGPUInstancing: 1 + m_ApplyActiveColorSpace: 1 + m_AllowRoll: 1 + m_FreeformStretching: 0 + m_RotateWithStretchDirection: 1 + m_VertexStreams: 00010304 + m_Mesh: {fileID: 0} + m_Mesh1: {fileID: 0} + m_Mesh2: {fileID: 0} + m_Mesh3: {fileID: 0} + m_MaskInteraction: 0 +--- !u!1001 &6346338489469324596 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 5148235482537864796} + m_Modifications: + - target: {fileID: 1828176872806910, guid: 64891a0eb28db934898420d80ca07cb3, type: 3} + propertyPath: m_Name + value: SmallExplosion + objectReference: {fileID: 0} + - target: {fileID: 4361801158873524, guid: 64891a0eb28db934898420d80ca07cb3, type: 3} + propertyPath: m_RootOrder + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 4361801158873524, guid: 64891a0eb28db934898420d80ca07cb3, type: 3} + propertyPath: m_LocalPosition.x + value: -0.50997305 + objectReference: {fileID: 0} + - target: {fileID: 4361801158873524, guid: 64891a0eb28db934898420d80ca07cb3, type: 3} + propertyPath: m_LocalPosition.y + value: 2.57 + objectReference: {fileID: 0} + - target: {fileID: 4361801158873524, guid: 64891a0eb28db934898420d80ca07cb3, type: 3} + propertyPath: m_LocalPosition.z + value: -20.12803 + objectReference: {fileID: 0} + - target: {fileID: 4361801158873524, guid: 64891a0eb28db934898420d80ca07cb3, type: 3} + propertyPath: m_LocalRotation.w + value: 0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 4361801158873524, guid: 64891a0eb28db934898420d80ca07cb3, type: 3} + propertyPath: m_LocalRotation.x + value: -0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 4361801158873524, guid: 64891a0eb28db934898420d80ca07cb3, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4361801158873524, guid: 64891a0eb28db934898420d80ca07cb3, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4361801158873524, guid: 64891a0eb28db934898420d80ca07cb3, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: -90 + objectReference: {fileID: 0} + - target: {fileID: 4361801158873524, guid: 64891a0eb28db934898420d80ca07cb3, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4361801158873524, guid: 64891a0eb28db934898420d80ca07cb3, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 64891a0eb28db934898420d80ca07cb3, type: 3} +--- !u!4 &6349448974718639232 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4361801158873524, guid: 64891a0eb28db934898420d80ca07cb3, + type: 3} + m_PrefabInstance: {fileID: 6346338489469324596} + m_PrefabAsset: {fileID: 0} +--- !u!114 &3919473840829643297 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 7959687425165588245, guid: 64891a0eb28db934898420d80ca07cb3, + type: 3} + m_PrefabInstance: {fileID: 6346338489469324596} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1281fe44325f9b548aa42dc331b17266, type: 3} + m_Name: + m_EditorClassIdentifier: diff --git a/Assets/Resources/Prefabs/Weapons/DME/bananasplit.prefab.meta b/Assets/Resources/Prefabs/Weapons/DME/bananasplit.prefab.meta new file mode 100644 index 000000000..4eb0a9e29 --- /dev/null +++ b/Assets/Resources/Prefabs/Weapons/DME/bananasplit.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: c001abc4a4690e7469cdc423a448e873 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Prefabs/Weapons/DME/prettypretty.prefab b/Assets/Resources/Prefabs/Weapons/DME/prettypretty.prefab new file mode 100644 index 000000000..24d1cae07 --- /dev/null +++ b/Assets/Resources/Prefabs/Weapons/DME/prettypretty.prefab @@ -0,0 +1,321 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &1038711833328602429 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7093708978518643867} + - component: {fileID: 4746410263980518329} + - component: {fileID: 277178765566372861} + - component: {fileID: 654273117314929370} + m_Layer: 0 + m_Name: Bullet + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &7093708978518643867 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1038711833328602429} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 7887646903913370668} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &4746410263980518329 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1038711833328602429} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1281fe44325f9b548aa42dc331b17266, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!96 &277178765566372861 +TrailRenderer: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1038711833328602429} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 9c20b9ccbbbb1b14cb5729e0c8460cd9, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Time: 0.1 + m_Parameters: + serializedVersion: 3 + widthMultiplier: 1 + widthCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0.5 + inSlope: 0 + outSlope: -0.5 + tangentMode: 69 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: -0.5 + outSlope: 0 + tangentMode: 69 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + colorGradient: + serializedVersion: 2 + key0: {r: 1, g: 0.99469995, b: 0.45098042, a: 1} + key1: {r: 1, g: 0.3910084, b: 0.049000025, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 31804 + ctime2: 65535 + ctime3: 65535 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 3 + m_NumAlphaKeys: 2 + numCornerVertices: 0 + numCapVertices: 0 + alignment: 0 + textureMode: 0 + shadowBias: 0.5 + generateLightingData: 0 + m_MinVertexDistance: 1 + m_Autodestruct: 0 + m_Emitting: 1 +--- !u!114 &654273117314929370 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1038711833328602429} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4528540a139424748a7b6c47bfecc7fd, type: 3} + m_Name: + m_EditorClassIdentifier: + Trail: {fileID: 277178765566372861} + Gravity: 1 + HitEffect: {fileID: 3196731101172068069} +--- !u!1 &6642079567538326943 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7887646903913370668} + - component: {fileID: 4191762351494344457} + m_Layer: 0 + m_Name: Charged Shotgun + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &7887646903913370668 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6642079567538326943} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 7093708978518643867} + - {fileID: 6081895055445446888} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &4191762351494344457 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6642079567538326943} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 49c173e3c2313ca4d9d04d0d87ec0f06, type: 3} + m_Name: + m_EditorClassIdentifier: + ProjectilePrototype: {fileID: 4746410263980518329} + InheritVelocity: 0 +--- !u!1001 &6082388488576249182 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 7887646903913370668} + m_Modifications: + - target: {fileID: 1337198075554910, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, type: 3} + propertyPath: m_Name + value: TinyExplosion + objectReference: {fileID: 0} + - target: {fileID: 4441266138185142, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, type: 3} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4441266138185142, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, type: 3} + propertyPath: m_LocalPosition.x + value: -4.2346153 + objectReference: {fileID: 0} + - target: {fileID: 4441266138185142, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, type: 3} + propertyPath: m_LocalPosition.y + value: 2.42 + objectReference: {fileID: 0} + - target: {fileID: 4441266138185142, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, type: 3} + propertyPath: m_LocalPosition.z + value: -21.91896 + objectReference: {fileID: 0} + - target: {fileID: 4441266138185142, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, type: 3} + propertyPath: m_LocalRotation.w + value: 0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 4441266138185142, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, type: 3} + propertyPath: m_LocalRotation.x + value: -0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 4441266138185142, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4441266138185142, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4441266138185142, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: -90 + objectReference: {fileID: 0} + - target: {fileID: 4441266138185142, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4441266138185142, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 198175801688348628, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, + type: 3} + propertyPath: looping + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 198175801688348628, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, + type: 3} + propertyPath: prewarm + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 198814760465859298, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, + type: 3} + propertyPath: looping + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 198814760465859298, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, + type: 3} + propertyPath: prewarm + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 198942329355805636, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, + type: 3} + propertyPath: looping + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 198942329355805636, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, + type: 3} + propertyPath: prewarm + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, type: 3} +--- !u!4 &6081895055445446888 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4441266138185142, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, + type: 3} + m_PrefabInstance: {fileID: 6082388488576249182} + m_PrefabAsset: {fileID: 0} +--- !u!114 &3196731101172068069 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 8662091027736085435, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, + type: 3} + m_PrefabInstance: {fileID: 6082388488576249182} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1281fe44325f9b548aa42dc331b17266, type: 3} + m_Name: + m_EditorClassIdentifier: diff --git a/Assets/Resources/Prefabs/Weapons/DME/prettypretty.prefab.meta b/Assets/Resources/Prefabs/Weapons/DME/prettypretty.prefab.meta new file mode 100644 index 000000000..68604dd1d --- /dev/null +++ b/Assets/Resources/Prefabs/Weapons/DME/prettypretty.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 3e2a11529f2c91b44a49cafdef63d480 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Prefabs/Weapons/DME/railagainst.prefab b/Assets/Resources/Prefabs/Weapons/DME/railagainst.prefab new file mode 100644 index 000000000..a5f0b6635 --- /dev/null +++ b/Assets/Resources/Prefabs/Weapons/DME/railagainst.prefab @@ -0,0 +1,34188 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &3349407620756205742 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3349407620756205741} + - component: {fileID: 3349407620756205743} + - component: {fileID: 3349407620756205740} + m_Layer: 0 + m_Name: Overcharged + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3349407620756205741 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3349407620756205742} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 3349407621156921369} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!198 &3349407620756205743 +ParticleSystem: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3349407620756205742} + serializedVersion: 7 + lengthInSec: 5 + simulationSpeed: 1 + stopAction: 0 + cullingMode: 0 + ringBufferMode: 0 + ringBufferLoopRange: {x: 0, y: 1} + looping: 1 + prewarm: 0 + playOnAwake: 1 + useUnscaledTime: 0 + autoRandomSeed: 1 + useRigidbodyForVelocity: 1 + startDelay: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + moveWithTransform: 0 + moveWithCustomTransform: {fileID: 0} + scalingMode: 1 + randomSeed: 0 + InitialModule: + serializedVersion: 3 + enabled: 1 + startLifetime: + serializedVersion: 2 + minMaxState: 0 + scalar: 0.75 + minScalar: 5 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startSpeed: + serializedVersion: 2 + minMaxState: 0 + scalar: 2 + minScalar: 5 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startColor: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + startSize: + serializedVersion: 2 + minMaxState: 0 + scalar: 4.46 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startSizeY: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startSizeZ: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startRotationX: + serializedVersion: 2 + minMaxState: 3 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startRotationY: + serializedVersion: 2 + minMaxState: 3 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startRotation: + serializedVersion: 2 + minMaxState: 3 + scalar: 6.283185 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + randomizeRotationDirection: 0 + maxNumParticles: 1000 + size3D: 0 + rotation3D: 0 + gravityModifier: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + ShapeModule: + serializedVersion: 6 + enabled: 1 + type: 4 + angle: 25 + length: 5 + boxThickness: {x: 0, y: 0, z: 0} + radiusThickness: 0 + donutRadius: 0.2 + m_Position: {x: 0, y: 0, z: 0} + m_Rotation: {x: 0, y: 0, z: 0} + m_Scale: {x: 1, y: 1, z: 1} + placementMode: 0 + m_MeshMaterialIndex: 0 + m_MeshNormalOffset: 0 + m_MeshSpawn: + mode: 0 + spread: 0 + speed: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Mesh: {fileID: 0} + m_MeshRenderer: {fileID: 0} + m_SkinnedMeshRenderer: {fileID: 0} + m_Sprite: {fileID: 0} + m_SpriteRenderer: {fileID: 0} + m_UseMeshMaterialIndex: 0 + m_UseMeshColors: 1 + alignToDirection: 0 + m_Texture: {fileID: 0} + m_TextureClipChannel: 3 + m_TextureClipThreshold: 0 + m_TextureUVChannel: 0 + m_TextureColorAffectsParticles: 1 + m_TextureAlphaAffectsParticles: 1 + m_TextureBilinearFiltering: 0 + randomDirectionAmount: 1 + sphericalDirectionAmount: 0 + randomPositionAmount: 0 + radius: + value: 0.0001 + mode: 0 + spread: 0 + speed: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + arc: + value: 360 + mode: 0 + spread: 0 + speed: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + EmissionModule: + enabled: 1 + serializedVersion: 4 + rateOverTime: + serializedVersion: 2 + minMaxState: 0 + scalar: 10 + minScalar: 10 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + rateOverDistance: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_BurstCount: 0 + m_Bursts: [] + SizeModule: + enabled: 1 + curve: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0.43276978 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 2 + outSlope: 2 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + RotationModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + curve: + serializedVersion: 2 + minMaxState: 0 + scalar: 0.7853982 + minScalar: 0.7853982 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + ColorModule: + enabled: 1 + gradient: + serializedVersion: 2 + minMaxState: 1 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 0.20647918, g: 0.22218905, b: 0.3018868, a: 1} + key1: {r: 0.2028302, g: 0.37981224, b: 1, a: 0.3137255} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 35407 + atime2: 65535 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 3 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + UVModule: + serializedVersion: 2 + enabled: 0 + mode: 0 + timeMode: 0 + fps: 30 + frameOverTime: + serializedVersion: 2 + minMaxState: 1 + scalar: 0.9999 + minScalar: 0.9999 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startFrame: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + speedRange: {x: 0, y: 1} + tilesX: 1 + tilesY: 1 + animationType: 0 + rowIndex: 0 + cycles: 1 + uvChannelMask: -1 + rowMode: 1 + sprites: + - sprite: {fileID: 0} + flipU: 0 + flipV: 0 + VelocityModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalX: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalY: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalZ: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalOffsetX: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalOffsetY: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalOffsetZ: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + radial: + serializedVersion: 2 + minMaxState: 1 + scalar: 8 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: -0.092308044 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + speedModifier: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + inWorldSpace: 0 + InheritVelocityModule: + enabled: 0 + m_Mode: 0 + m_Curve: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + LifetimeByEmitterSpeedModule: + enabled: 0 + m_Curve: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: -0.8 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0.2 + inSlope: -0.8 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Range: {x: 0, y: 1} + ForceModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + inWorldSpace: 0 + randomizePerFrame: 0 + ExternalForcesModule: + serializedVersion: 2 + enabled: 0 + multiplierCurve: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + influenceFilter: 0 + influenceMask: + serializedVersion: 2 + m_Bits: 4294967295 + influenceList: [] + ClampVelocityModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + magnitude: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxis: 0 + inWorldSpace: 0 + multiplyDragByParticleSize: 1 + multiplyDragByParticleVelocity: 1 + dampen: 0 + drag: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + NoiseModule: + enabled: 0 + strength: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + strengthY: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + strengthZ: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + frequency: 0.5 + damping: 1 + octaves: 1 + octaveMultiplier: 0.5 + octaveScale: 2 + quality: 2 + scrollSpeed: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remap: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: -1 + inSlope: 0 + outSlope: 2 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 2 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remapY: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: -1 + inSlope: 0 + outSlope: 2 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 2 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remapZ: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: -1 + inSlope: 0 + outSlope: 2 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 2 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remapEnabled: 0 + positionAmount: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + rotationAmount: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + sizeAmount: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + SizeBySpeedModule: + enabled: 0 + curve: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + range: {x: 0, y: 1} + separateAxes: 0 + RotationBySpeedModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + curve: + serializedVersion: 2 + minMaxState: 0 + scalar: 0.7853982 + minScalar: 0.7853982 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + range: {x: 0, y: 1} + ColorBySpeedModule: + enabled: 0 + gradient: + serializedVersion: 2 + minMaxState: 1 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + range: {x: 0, y: 1} + CollisionModule: + enabled: 0 + serializedVersion: 4 + type: 0 + collisionMode: 0 + colliderForce: 0 + multiplyColliderForceByParticleSize: 0 + multiplyColliderForceByParticleSpeed: 0 + multiplyColliderForceByCollisionAngle: 1 + m_Planes: [] + m_Dampen: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Bounce: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_EnergyLossOnCollision: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minKillSpeed: 0 + maxKillSpeed: 10000 + radiusScale: 1 + collidesWith: + serializedVersion: 2 + m_Bits: 4294967295 + maxCollisionShapes: 256 + quality: 0 + voxelSize: 0.5 + collisionMessages: 0 + collidesWithDynamic: 1 + interiorCollisions: 0 + TriggerModule: + enabled: 0 + serializedVersion: 2 + inside: 1 + outside: 0 + enter: 0 + exit: 0 + colliderQueryMode: 0 + radiusScale: 1 + primitives: [] + SubModule: + serializedVersion: 2 + enabled: 0 + subEmitters: + - serializedVersion: 3 + emitter: {fileID: 0} + type: 0 + properties: 0 + emitProbability: 1 + LightsModule: + enabled: 0 + ratio: 0 + light: {fileID: 0} + randomDistribution: 1 + color: 1 + range: 1 + intensity: 1 + rangeCurve: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + intensityCurve: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + maxLights: 20 + TrailModule: + enabled: 0 + mode: 0 + ratio: 1 + lifetime: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minVertexDistance: 0.2 + textureMode: 0 + ribbonCount: 1 + shadowBias: 0.5 + worldSpace: 0 + dieWithParticles: 1 + sizeAffectsWidth: 1 + sizeAffectsLifetime: 0 + inheritParticleColor: 1 + generateLightingData: 0 + splitSubEmitterRibbons: 0 + attachRibbonsToTransform: 0 + colorOverLifetime: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + widthOverTrail: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + colorOverTrail: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + CustomDataModule: + enabled: 0 + mode0: 0 + vectorComponentCount0: 4 + color0: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + colorLabel0: Color + vector0_0: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_0: X + vector0_1: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_1: Y + vector0_2: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_2: Z + vector0_3: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_3: W + mode1: 0 + vectorComponentCount1: 4 + color1: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + colorLabel1: Color + vector1_0: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_0: X + vector1_1: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_1: Y + vector1_2: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_2: Z + vector1_3: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_3: W +--- !u!199 &3349407620756205740 +ParticleSystemRenderer: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3349407620756205742} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 6af0f423a2567be43b16d152d2b60e0c, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_RenderMode: 0 + m_SortMode: 0 + m_MinParticleSize: 0 + m_MaxParticleSize: 0.5 + m_CameraVelocityScale: 0 + m_VelocityScale: 0 + m_LengthScale: 2 + m_SortingFudge: 0 + m_NormalDirection: 1 + m_ShadowBias: 0 + m_RenderAlignment: 0 + m_Pivot: {x: 0, y: 0, z: 0} + m_Flip: {x: 0, y: 0, z: 0} + m_UseCustomVertexStreams: 0 + m_EnableGPUInstancing: 1 + m_ApplyActiveColorSpace: 1 + m_AllowRoll: 1 + m_FreeformStretching: 0 + m_RotateWithStretchDirection: 1 + m_VertexStreams: 00010304 + m_Mesh: {fileID: 0} + m_Mesh1: {fileID: 0} + m_Mesh2: {fileID: 0} + m_Mesh3: {fileID: 0} + m_MaskInteraction: 0 +--- !u!1 &3349407621156921371 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3349407621156921369} + - component: {fileID: 3349407621156921368} + - component: {fileID: 4333490116481007344} + m_Layer: 0 + m_Name: ChargeEffect + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3349407621156921369 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3349407621156921371} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 3349407621879833916} + - {fileID: 3349407620756205741} + - {fileID: 3349407621561594594} + m_Father: {fileID: 1656848774125631793} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &3349407621156921368 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3349407621156921371} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d17593d3a68cb7b48905eb55ea270238, type: 3} + m_Name: + m_EditorClassIdentifier: + ChargeEffect: {fileID: 3349407621879833918} + OverchargeEffect: {fileID: 3349407620756205743} + FailureEffect: {fileID: 3349407621561594596} +--- !u!114 &4333490116481007344 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3349407621156921371} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1281fe44325f9b548aa42dc331b17266, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &3349407621561594599 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3349407621561594594} + - component: {fileID: 3349407621561594596} + - component: {fileID: 3349407621561594597} + m_Layer: 0 + m_Name: Failed + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3349407621561594594 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3349407621561594599} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 3349407621156921369} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!198 &3349407621561594596 +ParticleSystem: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3349407621561594599} + serializedVersion: 7 + lengthInSec: 1 + simulationSpeed: 1 + stopAction: 0 + cullingMode: 0 + ringBufferMode: 0 + ringBufferLoopRange: {x: 0, y: 1} + looping: 0 + prewarm: 0 + playOnAwake: 1 + useUnscaledTime: 0 + autoRandomSeed: 1 + useRigidbodyForVelocity: 1 + startDelay: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + moveWithTransform: 0 + moveWithCustomTransform: {fileID: 0} + scalingMode: 1 + randomSeed: 0 + InitialModule: + serializedVersion: 3 + enabled: 1 + startLifetime: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 5 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startSpeed: + serializedVersion: 2 + minMaxState: 0 + scalar: 10 + minScalar: 5 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startColor: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + startSize: + serializedVersion: 2 + minMaxState: 0 + scalar: 5 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startSizeY: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startSizeZ: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startRotationX: + serializedVersion: 2 + minMaxState: 3 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startRotationY: + serializedVersion: 2 + minMaxState: 3 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startRotation: + serializedVersion: 2 + minMaxState: 3 + scalar: 6.283185 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + randomizeRotationDirection: 0 + maxNumParticles: 1000 + size3D: 0 + rotation3D: 0 + gravityModifier: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + ShapeModule: + serializedVersion: 6 + enabled: 1 + type: 4 + angle: 25 + length: 5 + boxThickness: {x: 0, y: 0, z: 0} + radiusThickness: 0 + donutRadius: 0.2 + m_Position: {x: 0, y: 0, z: 0} + m_Rotation: {x: 0, y: 0, z: 0} + m_Scale: {x: 1, y: 1, z: 1} + placementMode: 0 + m_MeshMaterialIndex: 0 + m_MeshNormalOffset: 0 + m_MeshSpawn: + mode: 0 + spread: 0 + speed: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Mesh: {fileID: 0} + m_MeshRenderer: {fileID: 0} + m_SkinnedMeshRenderer: {fileID: 0} + m_Sprite: {fileID: 0} + m_SpriteRenderer: {fileID: 0} + m_UseMeshMaterialIndex: 0 + m_UseMeshColors: 1 + alignToDirection: 0 + m_Texture: {fileID: 0} + m_TextureClipChannel: 3 + m_TextureClipThreshold: 0 + m_TextureUVChannel: 0 + m_TextureColorAffectsParticles: 1 + m_TextureAlphaAffectsParticles: 1 + m_TextureBilinearFiltering: 0 + randomDirectionAmount: 1 + sphericalDirectionAmount: 0 + randomPositionAmount: 0 + radius: + value: 0.0001 + mode: 0 + spread: 0 + speed: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + arc: + value: 360 + mode: 0 + spread: 0 + speed: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + EmissionModule: + enabled: 1 + serializedVersion: 4 + rateOverTime: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 10 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + rateOverDistance: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_BurstCount: 1 + m_Bursts: + - serializedVersion: 2 + time: 0 + countCurve: + serializedVersion: 2 + minMaxState: 0 + scalar: 100 + minScalar: 30 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + cycleCount: 1 + repeatInterval: 0.01 + probability: 1 + SizeModule: + enabled: 1 + curve: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 2 + outSlope: 2 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + RotationModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + curve: + serializedVersion: 2 + minMaxState: 0 + scalar: 0.7853982 + minScalar: 0.7853982 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + ColorModule: + enabled: 1 + gradient: + serializedVersion: 2 + minMaxState: 1 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 0.20647918, g: 0.22218905, b: 0.3018868, a: 1} + key1: {r: 0.2028302, g: 0.37981224, b: 1, a: 0.3137255} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 35407 + atime2: 65535 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 3 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + UVModule: + serializedVersion: 2 + enabled: 0 + mode: 0 + timeMode: 0 + fps: 30 + frameOverTime: + serializedVersion: 2 + minMaxState: 1 + scalar: 0.9999 + minScalar: 0.9999 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startFrame: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + speedRange: {x: 0, y: 1} + tilesX: 1 + tilesY: 1 + animationType: 0 + rowIndex: 0 + cycles: 1 + uvChannelMask: -1 + rowMode: 1 + sprites: + - sprite: {fileID: 0} + flipU: 0 + flipV: 0 + VelocityModule: + enabled: 1 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalX: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalY: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalZ: + serializedVersion: 2 + minMaxState: 0 + scalar: 2 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalOffsetX: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalOffsetY: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalOffsetZ: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + radial: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: -0.092308044 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + speedModifier: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + inWorldSpace: 0 + InheritVelocityModule: + enabled: 0 + m_Mode: 0 + m_Curve: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + LifetimeByEmitterSpeedModule: + enabled: 0 + m_Curve: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: -0.8 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0.2 + inSlope: -0.8 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Range: {x: 0, y: 1} + ForceModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + inWorldSpace: 0 + randomizePerFrame: 0 + ExternalForcesModule: + serializedVersion: 2 + enabled: 0 + multiplierCurve: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + influenceFilter: 0 + influenceMask: + serializedVersion: 2 + m_Bits: 4294967295 + influenceList: [] + ClampVelocityModule: + enabled: 1 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + magnitude: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxis: 0 + inWorldSpace: 0 + multiplyDragByParticleSize: 1 + multiplyDragByParticleVelocity: 1 + dampen: 0 + drag: + serializedVersion: 2 + minMaxState: 1 + scalar: 0.25 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 2 + outSlope: 2 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + NoiseModule: + enabled: 1 + strength: + serializedVersion: 2 + minMaxState: 0 + scalar: 5 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + strengthY: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + strengthZ: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + frequency: 2 + damping: 1 + octaves: 1 + octaveMultiplier: 0.5 + octaveScale: 2 + quality: 2 + scrollSpeed: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remap: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: -1 + inSlope: 0 + outSlope: 2 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 2 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remapY: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: -1 + inSlope: 0 + outSlope: 2 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 2 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remapZ: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: -1 + inSlope: 0 + outSlope: 2 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 2 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remapEnabled: 0 + positionAmount: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + rotationAmount: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + sizeAmount: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + SizeBySpeedModule: + enabled: 0 + curve: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + range: {x: 0, y: 1} + separateAxes: 0 + RotationBySpeedModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + curve: + serializedVersion: 2 + minMaxState: 0 + scalar: 0.7853982 + minScalar: 0.7853982 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + range: {x: 0, y: 1} + ColorBySpeedModule: + enabled: 0 + gradient: + serializedVersion: 2 + minMaxState: 1 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + range: {x: 0, y: 1} + CollisionModule: + enabled: 0 + serializedVersion: 4 + type: 0 + collisionMode: 0 + colliderForce: 0 + multiplyColliderForceByParticleSize: 0 + multiplyColliderForceByParticleSpeed: 0 + multiplyColliderForceByCollisionAngle: 1 + m_Planes: [] + m_Dampen: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Bounce: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_EnergyLossOnCollision: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minKillSpeed: 0 + maxKillSpeed: 10000 + radiusScale: 1 + collidesWith: + serializedVersion: 2 + m_Bits: 4294967295 + maxCollisionShapes: 256 + quality: 0 + voxelSize: 0.5 + collisionMessages: 0 + collidesWithDynamic: 1 + interiorCollisions: 0 + TriggerModule: + enabled: 0 + serializedVersion: 2 + inside: 1 + outside: 0 + enter: 0 + exit: 0 + colliderQueryMode: 0 + radiusScale: 1 + primitives: [] + SubModule: + serializedVersion: 2 + enabled: 0 + subEmitters: + - serializedVersion: 3 + emitter: {fileID: 0} + type: 0 + properties: 0 + emitProbability: 1 + LightsModule: + enabled: 0 + ratio: 0 + light: {fileID: 0} + randomDistribution: 1 + color: 1 + range: 1 + intensity: 1 + rangeCurve: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + intensityCurve: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + maxLights: 20 + TrailModule: + enabled: 0 + mode: 0 + ratio: 1 + lifetime: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minVertexDistance: 0.2 + textureMode: 0 + ribbonCount: 1 + shadowBias: 0.5 + worldSpace: 0 + dieWithParticles: 1 + sizeAffectsWidth: 1 + sizeAffectsLifetime: 0 + inheritParticleColor: 1 + generateLightingData: 0 + splitSubEmitterRibbons: 0 + attachRibbonsToTransform: 0 + colorOverLifetime: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + widthOverTrail: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + colorOverTrail: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + CustomDataModule: + enabled: 0 + mode0: 0 + vectorComponentCount0: 4 + color0: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + colorLabel0: Color + vector0_0: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_0: X + vector0_1: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_1: Y + vector0_2: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_2: Z + vector0_3: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_3: W + mode1: 0 + vectorComponentCount1: 4 + color1: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + colorLabel1: Color + vector1_0: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_0: X + vector1_1: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_1: Y + vector1_2: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_2: Z + vector1_3: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_3: W +--- !u!199 &3349407621561594597 +ParticleSystemRenderer: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3349407621561594599} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 242a72fcf2cf3cd4b8529d07dff9c18d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_RenderMode: 0 + m_SortMode: 2 + m_MinParticleSize: 0 + m_MaxParticleSize: 0.5 + m_CameraVelocityScale: 0 + m_VelocityScale: 0.5 + m_LengthScale: 1 + m_SortingFudge: 0 + m_NormalDirection: 1 + m_ShadowBias: 0 + m_RenderAlignment: 0 + m_Pivot: {x: 0, y: 0, z: 0} + m_Flip: {x: 0, y: 0, z: 0} + m_UseCustomVertexStreams: 0 + m_EnableGPUInstancing: 1 + m_ApplyActiveColorSpace: 1 + m_AllowRoll: 1 + m_FreeformStretching: 1 + m_RotateWithStretchDirection: 1 + m_VertexStreams: 00010304 + m_Mesh: {fileID: 0} + m_Mesh1: {fileID: 0} + m_Mesh2: {fileID: 0} + m_Mesh3: {fileID: 0} + m_MaskInteraction: 0 +--- !u!1 &3349407621879833905 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3349407621879833916} + - component: {fileID: 3349407621879833918} + - component: {fileID: 3349407621879833919} + m_Layer: 0 + m_Name: Charge + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3349407621879833916 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3349407621879833905} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 3349407621156921369} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!198 &3349407621879833918 +ParticleSystem: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3349407621879833905} + serializedVersion: 7 + lengthInSec: 5 + simulationSpeed: 1 + stopAction: 0 + cullingMode: 0 + ringBufferMode: 0 + ringBufferLoopRange: {x: 0, y: 1} + looping: 1 + prewarm: 0 + playOnAwake: 1 + useUnscaledTime: 0 + autoRandomSeed: 1 + useRigidbodyForVelocity: 1 + startDelay: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + moveWithTransform: 0 + moveWithCustomTransform: {fileID: 0} + scalingMode: 1 + randomSeed: 0 + InitialModule: + serializedVersion: 3 + enabled: 1 + startLifetime: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 5 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startSpeed: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 5 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startColor: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + startSize: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startSizeY: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startSizeZ: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startRotationX: + serializedVersion: 2 + minMaxState: 3 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startRotationY: + serializedVersion: 2 + minMaxState: 3 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startRotation: + serializedVersion: 2 + minMaxState: 3 + scalar: 6.283185 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + randomizeRotationDirection: 0 + maxNumParticles: 1000 + size3D: 0 + rotation3D: 0 + gravityModifier: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + ShapeModule: + serializedVersion: 6 + enabled: 1 + type: 10 + angle: 25 + length: 5 + boxThickness: {x: 0, y: 0, z: 0} + radiusThickness: 0 + donutRadius: 0.2 + m_Position: {x: 0, y: 0, z: 15} + m_Rotation: {x: 0, y: 0, z: 0} + m_Scale: {x: 1, y: 1, z: 1} + placementMode: 0 + m_MeshMaterialIndex: 0 + m_MeshNormalOffset: 0 + m_MeshSpawn: + mode: 0 + spread: 0 + speed: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Mesh: {fileID: 0} + m_MeshRenderer: {fileID: 0} + m_SkinnedMeshRenderer: {fileID: 0} + m_Sprite: {fileID: 0} + m_SpriteRenderer: {fileID: 0} + m_UseMeshMaterialIndex: 0 + m_UseMeshColors: 1 + alignToDirection: 0 + m_Texture: {fileID: 0} + m_TextureClipChannel: 3 + m_TextureClipThreshold: 0 + m_TextureUVChannel: 0 + m_TextureColorAffectsParticles: 1 + m_TextureAlphaAffectsParticles: 1 + m_TextureBilinearFiltering: 0 + randomDirectionAmount: 0 + sphericalDirectionAmount: 0 + randomPositionAmount: 0 + radius: + value: 5 + mode: 0 + spread: 0 + speed: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + arc: + value: 360 + mode: 0 + spread: 0 + speed: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + EmissionModule: + enabled: 1 + serializedVersion: 4 + rateOverTime: + serializedVersion: 2 + minMaxState: 0 + scalar: 25 + minScalar: 10 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + rateOverDistance: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_BurstCount: 0 + m_Bursts: [] + SizeModule: + enabled: 1 + curve: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: -2 + outSlope: -2 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 0.27692413 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + RotationModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + curve: + serializedVersion: 2 + minMaxState: 0 + scalar: 0.7853982 + minScalar: 0.7853982 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + ColorModule: + enabled: 1 + gradient: + serializedVersion: 2 + minMaxState: 1 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 0.2028302, g: 0.37981224, b: 1, a: 0} + key1: {r: 0.23584908, g: 0.23584908, b: 0.23584908, a: 0.3137255} + key2: {r: 0, g: 0, b: 0, a: 1} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 35407 + atime2: 65535 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 3 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + UVModule: + serializedVersion: 2 + enabled: 0 + mode: 0 + timeMode: 0 + fps: 30 + frameOverTime: + serializedVersion: 2 + minMaxState: 1 + scalar: 0.9999 + minScalar: 0.9999 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startFrame: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + speedRange: {x: 0, y: 1} + tilesX: 1 + tilesY: 1 + animationType: 0 + rowIndex: 0 + cycles: 1 + uvChannelMask: -1 + rowMode: 1 + sprites: + - sprite: {fileID: 0} + flipU: 0 + flipV: 0 + VelocityModule: + enabled: 1 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalX: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalY: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalZ: + serializedVersion: 2 + minMaxState: 0 + scalar: 3 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalOffsetX: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalOffsetY: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalOffsetZ: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + radial: + serializedVersion: 2 + minMaxState: 1 + scalar: 24 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: -1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: -0.092308044 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + speedModifier: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + inWorldSpace: 0 + InheritVelocityModule: + enabled: 0 + m_Mode: 0 + m_Curve: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + LifetimeByEmitterSpeedModule: + enabled: 0 + m_Curve: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: -0.8 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0.2 + inSlope: -0.8 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Range: {x: 0, y: 1} + ForceModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + inWorldSpace: 0 + randomizePerFrame: 0 + ExternalForcesModule: + serializedVersion: 2 + enabled: 0 + multiplierCurve: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + influenceFilter: 0 + influenceMask: + serializedVersion: 2 + m_Bits: 4294967295 + influenceList: [] + ClampVelocityModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + magnitude: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxis: 0 + inWorldSpace: 0 + multiplyDragByParticleSize: 1 + multiplyDragByParticleVelocity: 1 + dampen: 0 + drag: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + NoiseModule: + enabled: 1 + strength: + serializedVersion: 2 + minMaxState: 1 + scalar: 2 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: -1 + outSlope: -1 + tangentMode: 34 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: -1 + outSlope: -1 + tangentMode: 34 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + strengthY: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + strengthZ: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + frequency: 0.2 + damping: 1 + octaves: 1 + octaveMultiplier: 0.5 + octaveScale: 2 + quality: 2 + scrollSpeed: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remap: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: -1 + inSlope: 0 + outSlope: 2 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 2 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remapY: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: -1 + inSlope: 0 + outSlope: 2 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 2 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remapZ: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: -1 + inSlope: 0 + outSlope: 2 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 2 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remapEnabled: 0 + positionAmount: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + rotationAmount: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + sizeAmount: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + SizeBySpeedModule: + enabled: 0 + curve: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + range: {x: 0, y: 1} + separateAxes: 0 + RotationBySpeedModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + curve: + serializedVersion: 2 + minMaxState: 0 + scalar: 0.7853982 + minScalar: 0.7853982 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + range: {x: 0, y: 1} + ColorBySpeedModule: + enabled: 0 + gradient: + serializedVersion: 2 + minMaxState: 1 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + range: {x: 0, y: 1} + CollisionModule: + enabled: 0 + serializedVersion: 4 + type: 0 + collisionMode: 0 + colliderForce: 0 + multiplyColliderForceByParticleSize: 0 + multiplyColliderForceByParticleSpeed: 0 + multiplyColliderForceByCollisionAngle: 1 + m_Planes: [] + m_Dampen: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Bounce: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_EnergyLossOnCollision: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minKillSpeed: 0 + maxKillSpeed: 10000 + radiusScale: 1 + collidesWith: + serializedVersion: 2 + m_Bits: 4294967295 + maxCollisionShapes: 256 + quality: 0 + voxelSize: 0.5 + collisionMessages: 0 + collidesWithDynamic: 1 + interiorCollisions: 0 + TriggerModule: + enabled: 0 + serializedVersion: 2 + inside: 1 + outside: 0 + enter: 0 + exit: 0 + colliderQueryMode: 0 + radiusScale: 1 + primitives: [] + SubModule: + serializedVersion: 2 + enabled: 0 + subEmitters: + - serializedVersion: 3 + emitter: {fileID: 0} + type: 0 + properties: 0 + emitProbability: 1 + LightsModule: + enabled: 0 + ratio: 0 + light: {fileID: 0} + randomDistribution: 1 + color: 1 + range: 1 + intensity: 1 + rangeCurve: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + intensityCurve: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + maxLights: 20 + TrailModule: + enabled: 0 + mode: 0 + ratio: 1 + lifetime: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minVertexDistance: 0.2 + textureMode: 0 + ribbonCount: 1 + shadowBias: 0.5 + worldSpace: 0 + dieWithParticles: 1 + sizeAffectsWidth: 1 + sizeAffectsLifetime: 0 + inheritParticleColor: 1 + generateLightingData: 0 + splitSubEmitterRibbons: 0 + attachRibbonsToTransform: 0 + colorOverLifetime: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + widthOverTrail: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + colorOverTrail: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + CustomDataModule: + enabled: 0 + mode0: 0 + vectorComponentCount0: 4 + color0: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + colorLabel0: Color + vector0_0: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_0: X + vector0_1: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_1: Y + vector0_2: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_2: Z + vector0_3: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_3: W + mode1: 0 + vectorComponentCount1: 4 + color1: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + colorLabel1: Color + vector1_0: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_0: X + vector1_1: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_1: Y + vector1_2: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_2: Z + vector1_3: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_3: W +--- !u!199 &3349407621879833919 +ParticleSystemRenderer: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3349407621879833905} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 242a72fcf2cf3cd4b8529d07dff9c18d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_RenderMode: 1 + m_SortMode: 0 + m_MinParticleSize: 0 + m_MaxParticleSize: 0.5 + m_CameraVelocityScale: 0 + m_VelocityScale: 0.25 + m_LengthScale: 0.5 + m_SortingFudge: 0 + m_NormalDirection: 1 + m_ShadowBias: 0 + m_RenderAlignment: 0 + m_Pivot: {x: 0, y: 0, z: 0} + m_Flip: {x: 0, y: 0, z: 0} + m_UseCustomVertexStreams: 0 + m_EnableGPUInstancing: 1 + m_ApplyActiveColorSpace: 1 + m_AllowRoll: 1 + m_FreeformStretching: 1 + m_RotateWithStretchDirection: 1 + m_VertexStreams: 00010304 + m_Mesh: {fileID: 0} + m_Mesh1: {fileID: 0} + m_Mesh2: {fileID: 0} + m_Mesh3: {fileID: 0} + m_MaskInteraction: 0 +--- !u!1 &3353248941128917208 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3351282060156006704} + - component: {fileID: 3192469250988989266} + - component: {fileID: 3191827398981723424} + - component: {fileID: 6248761991871516477} + - component: {fileID: 6896945293058144797} + m_Layer: 0 + m_Name: TinyExplosionBlue + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3351282060156006704 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3353248941128917208} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 3, y: 3, z: 3} + m_Children: + - {fileID: 3358913098587991592} + - {fileID: 3351262445883599580} + m_Father: {fileID: 1656848774125631793} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!198 &3192469250988989266 +ParticleSystem: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3353248941128917208} + serializedVersion: 7 + lengthInSec: 2 + simulationSpeed: 1 + stopAction: 3 + cullingMode: 1 + ringBufferMode: 0 + ringBufferLoopRange: {x: 0, y: 1} + looping: 0 + prewarm: 0 + playOnAwake: 1 + useUnscaledTime: 0 + autoRandomSeed: 1 + useRigidbodyForVelocity: 1 + startDelay: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + moveWithTransform: 0 + moveWithCustomTransform: {fileID: 0} + scalingMode: 1 + randomSeed: 0 + InitialModule: + serializedVersion: 3 + enabled: 1 + startLifetime: + serializedVersion: 2 + minMaxState: 3 + scalar: 0.5 + minScalar: 0.75 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startSpeed: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 2 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startColor: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + startSize: + serializedVersion: 2 + minMaxState: 3 + scalar: 0.5 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startSizeY: + serializedVersion: 2 + minMaxState: 3 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startSizeZ: + serializedVersion: 2 + minMaxState: 3 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startRotationX: + serializedVersion: 2 + minMaxState: 3 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startRotationY: + serializedVersion: 2 + minMaxState: 3 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startRotation: + serializedVersion: 2 + minMaxState: 3 + scalar: 6.283185 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + randomizeRotationDirection: 0 + maxNumParticles: 1000 + size3D: 0 + rotation3D: 0 + gravityModifier: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + ShapeModule: + serializedVersion: 6 + enabled: 1 + type: 0 + angle: 25 + length: 5 + boxThickness: {x: 0, y: 0, z: 0} + radiusThickness: 1 + donutRadius: 0.2 + m_Position: {x: 0, y: 0, z: 0} + m_Rotation: {x: 0, y: 0, z: 0} + m_Scale: {x: 1, y: 1, z: 1} + placementMode: 0 + m_MeshMaterialIndex: 0 + m_MeshNormalOffset: 0 + m_MeshSpawn: + mode: 0 + spread: 0 + speed: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Mesh: {fileID: 0} + m_MeshRenderer: {fileID: 0} + m_SkinnedMeshRenderer: {fileID: 0} + m_Sprite: {fileID: 0} + m_SpriteRenderer: {fileID: 0} + m_UseMeshMaterialIndex: 0 + m_UseMeshColors: 1 + alignToDirection: 0 + m_Texture: {fileID: 0} + m_TextureClipChannel: 3 + m_TextureClipThreshold: 0 + m_TextureUVChannel: 0 + m_TextureColorAffectsParticles: 1 + m_TextureAlphaAffectsParticles: 1 + m_TextureBilinearFiltering: 0 + randomDirectionAmount: 0 + sphericalDirectionAmount: 0 + randomPositionAmount: 0 + radius: + value: 0.2 + mode: 0 + spread: 0 + speed: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + arc: + value: 360 + mode: 0 + spread: 0 + speed: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + EmissionModule: + enabled: 1 + serializedVersion: 4 + rateOverTime: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 10 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + rateOverDistance: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_BurstCount: 1 + m_Bursts: + - serializedVersion: 2 + time: 0 + countCurve: + serializedVersion: 2 + minMaxState: 0 + scalar: 5 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + cycleCount: 1 + repeatInterval: 0.05 + probability: 1 + SizeModule: + enabled: 1 + curve: + serializedVersion: 2 + minMaxState: 1 + scalar: 2 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0.26259232 + inSlope: 13.062219 + outSlope: 13.062219 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.4482506 + - serializedVersion: 3 + time: 0.11442888 + value: 0.8611107 + inSlope: -0.65420204 + outSlope: -0.65420204 + tangentMode: 0 + weightedMode: 0 + inWeight: 1 + outWeight: 0.013850347 + - serializedVersion: 3 + time: 0.31258723 + value: 0.55610156 + inSlope: -0.78903043 + outSlope: -0.78903043 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.81095207 + outWeight: 0.11687849 + - serializedVersion: 3 + time: 1 + value: 0.5624988 + inSlope: 0.6932473 + outSlope: 0.6932473 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.18569358 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + RotationModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + curve: + serializedVersion: 2 + minMaxState: 0 + scalar: 0.7853982 + minScalar: 0.7853982 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + ColorModule: + enabled: 1 + gradient: + serializedVersion: 2 + minMaxState: 1 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 0, g: 0, b: 0, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 1235 + ctime1: 65535 + ctime2: 45489 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 44952 + atime2: 65535 + atime3: 65535 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 3 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + UVModule: + serializedVersion: 2 + enabled: 1 + mode: 0 + timeMode: 0 + fps: 30 + frameOverTime: + serializedVersion: 2 + minMaxState: 1 + scalar: 0.9999 + minScalar: 0.9999 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 2 + outSlope: 2 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.5405963 + value: 0.6172828 + inSlope: 0.40770304 + outSlope: 0.40770304 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.3389682 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1.5884757 + outSlope: 1.5884757 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.069948256 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startFrame: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + speedRange: {x: 0, y: 1} + tilesX: 6 + tilesY: 6 + animationType: 0 + rowIndex: 0 + cycles: 1 + uvChannelMask: -1 + rowMode: 1 + sprites: + - sprite: {fileID: 0} + flipU: 0 + flipV: 0 + VelocityModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalX: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalY: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalZ: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalOffsetX: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalOffsetY: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalOffsetZ: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + radial: + serializedVersion: 2 + minMaxState: 2 + scalar: 4 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: -3.6171548 + outSlope: -3.6171548 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.50351435 + - serializedVersion: 3 + time: 0.2623834 + value: 0.31630546 + inSlope: -0.39157343 + outSlope: -0.39157343 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.15646125 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + speedModifier: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + inWorldSpace: 0 + InheritVelocityModule: + enabled: 0 + m_Mode: 0 + m_Curve: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + LifetimeByEmitterSpeedModule: + enabled: 0 + m_Curve: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: -0.8 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0.2 + inSlope: -0.8 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Range: {x: 0, y: 1} + ForceModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + inWorldSpace: 0 + randomizePerFrame: 0 + ExternalForcesModule: + serializedVersion: 2 + enabled: 0 + multiplierCurve: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + influenceFilter: 0 + influenceMask: + serializedVersion: 2 + m_Bits: 4294967295 + influenceList: [] + ClampVelocityModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + magnitude: + serializedVersion: 2 + minMaxState: 1 + scalar: 2 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: -5.475556 + outSlope: -5.475556 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.104603365 + - serializedVersion: 3 + time: 0.55355835 + value: 0.05569458 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxis: 0 + inWorldSpace: 0 + multiplyDragByParticleSize: 1 + multiplyDragByParticleVelocity: 1 + dampen: 1 + drag: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + NoiseModule: + enabled: 0 + strength: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + strengthY: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + strengthZ: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + frequency: 0.5 + damping: 1 + octaves: 1 + octaveMultiplier: 0.5 + octaveScale: 2 + quality: 2 + scrollSpeed: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remap: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remapY: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remapZ: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remapEnabled: 0 + positionAmount: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + rotationAmount: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + sizeAmount: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + SizeBySpeedModule: + enabled: 0 + curve: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + range: {x: 0, y: 1} + separateAxes: 0 + RotationBySpeedModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + curve: + serializedVersion: 2 + minMaxState: 0 + scalar: 0.7853982 + minScalar: 0.7853982 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + range: {x: 0, y: 1} + ColorBySpeedModule: + enabled: 0 + gradient: + serializedVersion: 2 + minMaxState: 1 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + range: {x: 0, y: 1} + CollisionModule: + enabled: 0 + serializedVersion: 4 + type: 0 + collisionMode: 0 + colliderForce: 0 + multiplyColliderForceByParticleSize: 0 + multiplyColliderForceByParticleSpeed: 0 + multiplyColliderForceByCollisionAngle: 1 + m_Planes: + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + m_Dampen: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Bounce: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_EnergyLossOnCollision: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minKillSpeed: 0 + maxKillSpeed: 10000 + radiusScale: 1 + collidesWith: + serializedVersion: 2 + m_Bits: 4294967295 + maxCollisionShapes: 256 + quality: 0 + voxelSize: 0.5 + collisionMessages: 0 + collidesWithDynamic: 1 + interiorCollisions: 0 + TriggerModule: + enabled: 0 + serializedVersion: 2 + inside: 1 + outside: 0 + enter: 0 + exit: 0 + colliderQueryMode: 0 + radiusScale: 1 + primitives: + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + SubModule: + serializedVersion: 2 + enabled: 0 + subEmitters: + - serializedVersion: 3 + emitter: {fileID: 0} + type: 2 + properties: 0 + emitProbability: 1 + LightsModule: + enabled: 0 + ratio: 0 + light: {fileID: 0} + randomDistribution: 1 + color: 1 + range: 1 + intensity: 1 + rangeCurve: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + intensityCurve: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + maxLights: 20 + TrailModule: + enabled: 0 + mode: 0 + ratio: 1 + lifetime: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minVertexDistance: 0.2 + textureMode: 0 + ribbonCount: 1 + shadowBias: 0.5 + worldSpace: 0 + dieWithParticles: 1 + sizeAffectsWidth: 1 + sizeAffectsLifetime: 0 + inheritParticleColor: 1 + generateLightingData: 0 + splitSubEmitterRibbons: 0 + attachRibbonsToTransform: 0 + colorOverLifetime: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + widthOverTrail: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + colorOverTrail: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + CustomDataModule: + enabled: 0 + mode0: 0 + vectorComponentCount0: 4 + color0: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + colorLabel0: Color + vector0_0: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_0: X + vector0_1: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_1: Y + vector0_2: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_2: Z + vector0_3: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_3: W + mode1: 0 + vectorComponentCount1: 4 + color1: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + colorLabel1: Color + vector1_0: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_0: X + vector1_1: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_1: Y + vector1_2: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_2: Z + vector1_3: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_3: W +--- !u!199 &3191827398981723424 +ParticleSystemRenderer: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3353248941128917208} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 4294967295 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: b2b9914fda5088a4d833db5a6f05c9d6, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_RenderMode: 0 + m_SortMode: 1 + m_MinParticleSize: 0 + m_MaxParticleSize: 5 + m_CameraVelocityScale: 0 + m_VelocityScale: 0 + m_LengthScale: 2 + m_SortingFudge: 0 + m_NormalDirection: 1 + m_ShadowBias: 0 + m_RenderAlignment: 0 + m_Pivot: {x: 0, y: 0, z: 0} + m_Flip: {x: 0.5, y: 0.5, z: 0} + m_UseCustomVertexStreams: 1 + m_EnableGPUInstancing: 1 + m_ApplyActiveColorSpace: 0 + m_AllowRoll: 1 + m_FreeformStretching: 0 + m_RotateWithStretchDirection: 1 + m_VertexStreams: 0003040508 + m_Mesh: {fileID: 0} + m_Mesh1: {fileID: 0} + m_Mesh2: {fileID: 0} + m_Mesh3: {fileID: 0} + m_MaskInteraction: 0 +--- !u!114 &6248761991871516477 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3353248941128917208} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1281fe44325f9b548aa42dc331b17266, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &6896945293058144797 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3353248941128917208} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: db021a309de3d324588c5603de40c29f, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &3353409812427418178 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3351262445883599580} + - component: {fileID: 3192817902838525762} + - component: {fileID: 3191133241829315540} + m_Layer: 0 + m_Name: Shockwave + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3351262445883599580 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3353409812427418178} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 3351282060156006704} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: -90, y: 0, z: 0} +--- !u!198 &3192817902838525762 +ParticleSystem: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3353409812427418178} + serializedVersion: 7 + lengthInSec: 2 + simulationSpeed: 1 + stopAction: 0 + cullingMode: 1 + ringBufferMode: 0 + ringBufferLoopRange: {x: 0, y: 1} + looping: 0 + prewarm: 0 + playOnAwake: 1 + useUnscaledTime: 0 + autoRandomSeed: 1 + useRigidbodyForVelocity: 1 + startDelay: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + moveWithTransform: 0 + moveWithCustomTransform: {fileID: 0} + scalingMode: 1 + randomSeed: 0 + InitialModule: + serializedVersion: 3 + enabled: 1 + startLifetime: + serializedVersion: 2 + minMaxState: 0 + scalar: 0.5 + minScalar: 5 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startSpeed: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 5 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startColor: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + startSize: + serializedVersion: 2 + minMaxState: 0 + scalar: 5 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startSizeY: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startSizeZ: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startRotationX: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startRotationY: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startRotation: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + randomizeRotationDirection: 0 + maxNumParticles: 1000 + size3D: 0 + rotation3D: 0 + gravityModifier: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + ShapeModule: + serializedVersion: 6 + enabled: 0 + type: 4 + angle: 25 + length: 5 + boxThickness: {x: 0, y: 0, z: 0} + radiusThickness: 1 + donutRadius: 0.2 + m_Position: {x: 0, y: 0, z: 0} + m_Rotation: {x: 0, y: 0, z: 0} + m_Scale: {x: 1, y: 1, z: 1} + placementMode: 0 + m_MeshMaterialIndex: 0 + m_MeshNormalOffset: 0 + m_MeshSpawn: + mode: 0 + spread: 0 + speed: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Mesh: {fileID: 0} + m_MeshRenderer: {fileID: 0} + m_SkinnedMeshRenderer: {fileID: 0} + m_Sprite: {fileID: 0} + m_SpriteRenderer: {fileID: 0} + m_UseMeshMaterialIndex: 0 + m_UseMeshColors: 1 + alignToDirection: 0 + m_Texture: {fileID: 0} + m_TextureClipChannel: 3 + m_TextureClipThreshold: 0 + m_TextureUVChannel: 0 + m_TextureColorAffectsParticles: 1 + m_TextureAlphaAffectsParticles: 1 + m_TextureBilinearFiltering: 0 + randomDirectionAmount: 0 + sphericalDirectionAmount: 0 + randomPositionAmount: 0 + radius: + value: 1 + mode: 0 + spread: 0 + speed: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + arc: + value: 360 + mode: 0 + spread: 0 + speed: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + EmissionModule: + enabled: 1 + serializedVersion: 4 + rateOverTime: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 10 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + rateOverDistance: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_BurstCount: 1 + m_Bursts: + - serializedVersion: 2 + time: 0 + countCurve: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + cycleCount: 1 + repeatInterval: 0.01 + probability: 1 + SizeModule: + enabled: 1 + curve: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 3.4814816 + outSlope: 3.4814816 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.09375 + - serializedVersion: 3 + time: 1 + value: 0.7699108 + inSlope: -0.78148794 + outSlope: -0.78148794 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.15853661 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + RotationModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + curve: + serializedVersion: 2 + minMaxState: 0 + scalar: 0.7853982 + minScalar: 0.7853982 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + ColorModule: + enabled: 1 + gradient: + serializedVersion: 2 + minMaxState: 1 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 0} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + UVModule: + serializedVersion: 2 + enabled: 0 + mode: 0 + timeMode: 0 + fps: 30 + frameOverTime: + serializedVersion: 2 + minMaxState: 1 + scalar: 0.9999 + minScalar: 0.9999 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startFrame: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + speedRange: {x: 0, y: 1} + tilesX: 1 + tilesY: 1 + animationType: 0 + rowIndex: 0 + cycles: 1 + uvChannelMask: -1 + rowMode: 1 + sprites: + - sprite: {fileID: 0} + flipU: 0 + flipV: 0 + VelocityModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalX: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalY: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalZ: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalOffsetX: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalOffsetY: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalOffsetZ: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + radial: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + speedModifier: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + inWorldSpace: 0 + InheritVelocityModule: + enabled: 0 + m_Mode: 0 + m_Curve: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + LifetimeByEmitterSpeedModule: + enabled: 0 + m_Curve: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: -0.8 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0.2 + inSlope: -0.8 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Range: {x: 0, y: 1} + ForceModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + inWorldSpace: 0 + randomizePerFrame: 0 + ExternalForcesModule: + serializedVersion: 2 + enabled: 0 + multiplierCurve: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + influenceFilter: 0 + influenceMask: + serializedVersion: 2 + m_Bits: 4294967295 + influenceList: [] + ClampVelocityModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + magnitude: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxis: 0 + inWorldSpace: 0 + multiplyDragByParticleSize: 1 + multiplyDragByParticleVelocity: 1 + dampen: 0 + drag: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + NoiseModule: + enabled: 0 + strength: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + strengthY: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + strengthZ: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + frequency: 0.5 + damping: 1 + octaves: 1 + octaveMultiplier: 0.5 + octaveScale: 2 + quality: 2 + scrollSpeed: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remap: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remapY: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remapZ: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remapEnabled: 0 + positionAmount: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + rotationAmount: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + sizeAmount: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + SizeBySpeedModule: + enabled: 0 + curve: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + range: {x: 0, y: 1} + separateAxes: 0 + RotationBySpeedModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + curve: + serializedVersion: 2 + minMaxState: 0 + scalar: 0.7853982 + minScalar: 0.7853982 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + range: {x: 0, y: 1} + ColorBySpeedModule: + enabled: 0 + gradient: + serializedVersion: 2 + minMaxState: 1 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + range: {x: 0, y: 1} + CollisionModule: + enabled: 0 + serializedVersion: 4 + type: 0 + collisionMode: 0 + colliderForce: 0 + multiplyColliderForceByParticleSize: 0 + multiplyColliderForceByParticleSpeed: 0 + multiplyColliderForceByCollisionAngle: 1 + m_Planes: + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + m_Dampen: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Bounce: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_EnergyLossOnCollision: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minKillSpeed: 0 + maxKillSpeed: 10000 + radiusScale: 1 + collidesWith: + serializedVersion: 2 + m_Bits: 4294967295 + maxCollisionShapes: 256 + quality: 0 + voxelSize: 0.5 + collisionMessages: 0 + collidesWithDynamic: 1 + interiorCollisions: 0 + TriggerModule: + enabled: 0 + serializedVersion: 2 + inside: 1 + outside: 0 + enter: 0 + exit: 0 + colliderQueryMode: 0 + radiusScale: 1 + primitives: + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + SubModule: + serializedVersion: 2 + enabled: 0 + subEmitters: + - serializedVersion: 3 + emitter: {fileID: 0} + type: 0 + properties: 0 + emitProbability: 1 + LightsModule: + enabled: 0 + ratio: 0 + light: {fileID: 0} + randomDistribution: 1 + color: 1 + range: 1 + intensity: 1 + rangeCurve: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + intensityCurve: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + maxLights: 20 + TrailModule: + enabled: 0 + mode: 0 + ratio: 1 + lifetime: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minVertexDistance: 0.2 + textureMode: 0 + ribbonCount: 1 + shadowBias: 0.5 + worldSpace: 0 + dieWithParticles: 1 + sizeAffectsWidth: 1 + sizeAffectsLifetime: 0 + inheritParticleColor: 1 + generateLightingData: 0 + splitSubEmitterRibbons: 0 + attachRibbonsToTransform: 0 + colorOverLifetime: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + widthOverTrail: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + colorOverTrail: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + CustomDataModule: + enabled: 0 + mode0: 0 + vectorComponentCount0: 4 + color0: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + colorLabel0: Color + vector0_0: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_0: X + vector0_1: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_1: Y + vector0_2: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_2: Z + vector0_3: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_3: W + mode1: 0 + vectorComponentCount1: 4 + color1: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + colorLabel1: Color + vector1_0: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_0: X + vector1_1: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_1: Y + vector1_2: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_2: Z + vector1_3: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_3: W +--- !u!199 &3191133241829315540 +ParticleSystemRenderer: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3353409812427418178} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 4294967295 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 681df1d8031e0774b9dc7c3ee0728458, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 1 + m_RenderMode: 0 + m_SortMode: 0 + m_MinParticleSize: 0 + m_MaxParticleSize: 20 + m_CameraVelocityScale: 0 + m_VelocityScale: 0 + m_LengthScale: 2 + m_SortingFudge: 0 + m_NormalDirection: 1 + m_ShadowBias: 0 + m_RenderAlignment: 0 + m_Pivot: {x: 0, y: 0, z: 0} + m_Flip: {x: 0, y: 0, z: 0} + m_UseCustomVertexStreams: 1 + m_EnableGPUInstancing: 1 + m_ApplyActiveColorSpace: 0 + m_AllowRoll: 1 + m_FreeformStretching: 0 + m_RotateWithStretchDirection: 1 + m_VertexStreams: 000304 + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} + m_Mesh1: {fileID: 0} + m_Mesh2: {fileID: 0} + m_Mesh3: {fileID: 0} + m_MaskInteraction: 0 +--- !u!1 &3353982800723161670 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3358913098587991592} + - component: {fileID: 3192971808619105892} + - component: {fileID: 3191876302386132256} + m_Layer: 0 + m_Name: Embers + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3358913098587991592 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3353982800723161670} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 3351282060156006704} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!198 &3192971808619105892 +ParticleSystem: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3353982800723161670} + serializedVersion: 7 + lengthInSec: 2 + simulationSpeed: 1 + stopAction: 0 + cullingMode: 3 + ringBufferMode: 0 + ringBufferLoopRange: {x: 0, y: 1} + looping: 0 + prewarm: 0 + playOnAwake: 1 + useUnscaledTime: 0 + autoRandomSeed: 1 + useRigidbodyForVelocity: 1 + startDelay: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + moveWithTransform: 0 + moveWithCustomTransform: {fileID: 0} + scalingMode: 2 + randomSeed: 0 + InitialModule: + serializedVersion: 3 + enabled: 1 + startLifetime: + serializedVersion: 2 + minMaxState: 3 + scalar: 3 + minScalar: 0.5 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 0 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0.5 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 0 + startSpeed: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 3 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 0 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0.5 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 0 + startColor: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 0.91705996, g: 0.19215685, b: 0.99215686, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + startSize: + serializedVersion: 2 + minMaxState: 3 + scalar: 0.05 + minScalar: 0.01 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 0 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0.19999999 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 0 + startSizeY: + serializedVersion: 2 + minMaxState: 3 + scalar: 1 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 0 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 0 + startSizeZ: + serializedVersion: 2 + minMaxState: 3 + scalar: 1 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 0 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 0 + startRotationX: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startRotationY: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startRotation: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + randomizeRotationDirection: 0 + maxNumParticles: 1000 + size3D: 0 + rotation3D: 0 + gravityModifier: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + ShapeModule: + serializedVersion: 6 + enabled: 1 + type: 0 + angle: 32.22 + length: 0.12 + boxThickness: {x: 0, y: 0, z: 0} + radiusThickness: 0 + donutRadius: 0.2 + m_Position: {x: 0, y: 0, z: 0} + m_Rotation: {x: 0, y: 0, z: 0} + m_Scale: {x: 1, y: 1, z: 1} + placementMode: 0 + m_MeshMaterialIndex: 0 + m_MeshNormalOffset: 0 + m_MeshSpawn: + mode: 0 + spread: 0 + speed: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Mesh: {fileID: 0} + m_MeshRenderer: {fileID: 0} + m_SkinnedMeshRenderer: {fileID: 0} + m_Sprite: {fileID: 0} + m_SpriteRenderer: {fileID: 0} + m_UseMeshMaterialIndex: 0 + m_UseMeshColors: 1 + alignToDirection: 0 + m_Texture: {fileID: 0} + m_TextureClipChannel: 3 + m_TextureClipThreshold: 0 + m_TextureUVChannel: 0 + m_TextureColorAffectsParticles: 1 + m_TextureAlphaAffectsParticles: 1 + m_TextureBilinearFiltering: 0 + randomDirectionAmount: 0 + sphericalDirectionAmount: 0 + randomPositionAmount: 0 + radius: + value: 0.43552133 + mode: 0 + spread: 0 + speed: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + arc: + value: 360 + mode: 0 + spread: 0 + speed: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + EmissionModule: + enabled: 1 + serializedVersion: 4 + rateOverTime: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 10 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + rateOverDistance: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_BurstCount: 1 + m_Bursts: + - serializedVersion: 2 + time: 0 + countCurve: + serializedVersion: 2 + minMaxState: 0 + scalar: 10 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + cycleCount: 1 + repeatInterval: 0.05 + probability: 1 + SizeModule: + enabled: 0 + curve: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + RotationModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + curve: + serializedVersion: 2 + minMaxState: 0 + scalar: 0.7853982 + minScalar: 0.7853982 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + ColorModule: + enabled: 1 + gradient: + serializedVersion: 2 + minMaxState: 1 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 0} + key1: {r: 0.91764706, g: 0.39607844, b: 0, a: 1} + key2: {r: 0, g: 0, b: 0, a: 1} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 6168 + atime2: 53199 + atime3: 65535 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 4 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + UVModule: + serializedVersion: 2 + enabled: 0 + mode: 0 + timeMode: 0 + fps: 30 + frameOverTime: + serializedVersion: 2 + minMaxState: 1 + scalar: 0.9999 + minScalar: 0.9999 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startFrame: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + speedRange: {x: 0, y: 1} + tilesX: 1 + tilesY: 1 + animationType: 0 + rowIndex: 0 + cycles: 1 + uvChannelMask: -1 + rowMode: 1 + sprites: + - sprite: {fileID: 0} + flipU: 0 + flipV: 0 + VelocityModule: + enabled: 1 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalX: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalY: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalZ: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalOffsetX: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalOffsetY: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalOffsetZ: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + radial: + serializedVersion: 2 + minMaxState: 1 + scalar: 10 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: -4.1481485 + outSlope: -4.1481485 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.36101347 + - serializedVersion: 3 + time: 0.115407646 + value: 0.32009315 + inSlope: -1.885982 + outSlope: -1.885982 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.13906091 + - serializedVersion: 3 + time: 1 + value: 0.25959396 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + speedModifier: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + inWorldSpace: 1 + InheritVelocityModule: + enabled: 0 + m_Mode: 0 + m_Curve: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + LifetimeByEmitterSpeedModule: + enabled: 0 + m_Curve: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: -0.8 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0.2 + inSlope: -0.8 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Range: {x: 0, y: 1} + ForceModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + inWorldSpace: 0 + randomizePerFrame: 0 + ExternalForcesModule: + serializedVersion: 2 + enabled: 0 + multiplierCurve: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + influenceFilter: 0 + influenceMask: + serializedVersion: 2 + m_Bits: 4294967295 + influenceList: [] + ClampVelocityModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + magnitude: + serializedVersion: 2 + minMaxState: 2 + scalar: 5 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: -2 + outSlope: -2 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxis: 0 + inWorldSpace: 0 + multiplyDragByParticleSize: 1 + multiplyDragByParticleVelocity: 1 + dampen: 1 + drag: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + NoiseModule: + enabled: 1 + strength: + serializedVersion: 2 + minMaxState: 0 + scalar: 0.5 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + strengthY: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + strengthZ: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + frequency: 1 + damping: 1 + octaves: 1 + octaveMultiplier: 0.5 + octaveScale: 2 + quality: 2 + scrollSpeed: + serializedVersion: 2 + minMaxState: 0 + scalar: 2 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remap: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: -1 + inSlope: 0 + outSlope: 2 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 2 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remapY: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: -1 + inSlope: 0 + outSlope: 2 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 2 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remapZ: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: -1 + inSlope: 0 + outSlope: 2 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 2 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remapEnabled: 0 + positionAmount: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + rotationAmount: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + sizeAmount: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + SizeBySpeedModule: + enabled: 0 + curve: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + range: {x: 0, y: 1} + separateAxes: 0 + RotationBySpeedModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + curve: + serializedVersion: 2 + minMaxState: 0 + scalar: 0.7853982 + minScalar: 0.7853982 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + range: {x: 0, y: 1} + ColorBySpeedModule: + enabled: 0 + gradient: + serializedVersion: 2 + minMaxState: 1 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + range: {x: 0, y: 1} + CollisionModule: + enabled: 0 + serializedVersion: 4 + type: 0 + collisionMode: 0 + colliderForce: 0 + multiplyColliderForceByParticleSize: 0 + multiplyColliderForceByParticleSpeed: 0 + multiplyColliderForceByCollisionAngle: 1 + m_Planes: + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + m_Dampen: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Bounce: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_EnergyLossOnCollision: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minKillSpeed: 0 + maxKillSpeed: 10000 + radiusScale: 1 + collidesWith: + serializedVersion: 2 + m_Bits: 4294967295 + maxCollisionShapes: 256 + quality: 0 + voxelSize: 0.5 + collisionMessages: 0 + collidesWithDynamic: 1 + interiorCollisions: 1 + TriggerModule: + enabled: 0 + serializedVersion: 2 + inside: 1 + outside: 0 + enter: 0 + exit: 0 + colliderQueryMode: 0 + radiusScale: 1 + primitives: + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + SubModule: + serializedVersion: 2 + enabled: 0 + subEmitters: + - serializedVersion: 3 + emitter: {fileID: 0} + type: 0 + properties: 0 + emitProbability: 1 + LightsModule: + enabled: 0 + ratio: 0 + light: {fileID: 0} + randomDistribution: 1 + color: 1 + range: 1 + intensity: 1 + rangeCurve: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + intensityCurve: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + maxLights: 20 + TrailModule: + enabled: 0 + mode: 0 + ratio: 1 + lifetime: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minVertexDistance: 0.2 + textureMode: 0 + ribbonCount: 1 + shadowBias: 0.5 + worldSpace: 0 + dieWithParticles: 1 + sizeAffectsWidth: 1 + sizeAffectsLifetime: 0 + inheritParticleColor: 1 + generateLightingData: 0 + splitSubEmitterRibbons: 0 + attachRibbonsToTransform: 0 + colorOverLifetime: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + widthOverTrail: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + colorOverTrail: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + CustomDataModule: + enabled: 0 + mode0: 0 + vectorComponentCount0: 4 + color0: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + colorLabel0: Color + vector0_0: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_0: X + vector0_1: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_1: Y + vector0_2: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_2: Z + vector0_3: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_3: W + mode1: 0 + vectorComponentCount1: 4 + color1: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + colorLabel1: Color + vector1_0: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_0: X + vector1_1: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_1: Y + vector1_2: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_2: Z + vector1_3: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_3: W +--- !u!199 &3191876302386132256 +ParticleSystemRenderer: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3353982800723161670} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 4294967295 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 776677ab3818fb249adaca05f4e04545, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_RenderMode: 1 + m_SortMode: 1 + m_MinParticleSize: 0 + m_MaxParticleSize: 0.5 + m_CameraVelocityScale: 0 + m_VelocityScale: 0.1 + m_LengthScale: 0 + m_SortingFudge: 0 + m_NormalDirection: 1 + m_ShadowBias: 0 + m_RenderAlignment: 0 + m_Pivot: {x: 0, y: 0, z: 0} + m_Flip: {x: 0, y: 0, z: 0} + m_UseCustomVertexStreams: 1 + m_EnableGPUInstancing: 0 + m_ApplyActiveColorSpace: 0 + m_AllowRoll: 1 + m_FreeformStretching: 0 + m_RotateWithStretchDirection: 1 + m_VertexStreams: 000304 + m_Mesh: {fileID: 0} + m_Mesh1: {fileID: 0} + m_Mesh2: {fileID: 0} + m_Mesh3: {fileID: 0} + m_MaskInteraction: 0 +--- !u!1 &4160300748626113272 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1656848774125631793} + - component: {fileID: 1185770615277969897} + - component: {fileID: 257306165894491449} + m_Layer: 0 + m_Name: Railgun + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1656848774125631793 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4160300748626113272} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 940753248448816131} + - {fileID: 3351282060156006704} + - {fileID: 3349407621156921369} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1185770615277969897 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4160300748626113272} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 90fe995fff18457987112f6f96b45a17, type: 3} + m_Name: + m_EditorClassIdentifier: + Prototype: {fileID: 5741435455277378192} +--- !u!114 &257306165894491449 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4160300748626113272} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: acaf148dd74205a4098665bb4be3f3a5, type: 3} + m_Name: + m_EditorClassIdentifier: + EffectPrototype: {fileID: 4333490116481007344} +--- !u!1 &4564963433458115999 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 940753248448816131} + - component: {fileID: 5741435455277378192} + - component: {fileID: 8878809816622649122} + - component: {fileID: 477671999227863540} + m_Layer: 0 + m_Name: Trail + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &940753248448816131 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4564963433458115999} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 2423173662465485088} + m_Father: {fileID: 1656848774125631793} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &5741435455277378192 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4564963433458115999} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1281fe44325f9b548aa42dc331b17266, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &8878809816622649122 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4564963433458115999} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f8555514e892b2c438fe085da1fdf89d, type: 3} + m_Name: + m_EditorClassIdentifier: + Duration: 1 + IntensityCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 3 + inSlope: -10.4011345 + outSlope: -10.4011345 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0.048672568 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + Line: {fileID: 477671999227863540} + LineEffect: {fileID: 4604247921592577927} + HitEffect: {fileID: 6248761991871516477} +--- !u!120 &477671999227863540 +LineRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4564963433458115999} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 1 + m_DynamicOccludee: 0 + m_MotionVectors: 0 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 9c20b9ccbbbb1b14cb5729e0c8460cd9, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Positions: + - {x: 0, y: 0, z: 0} + - {x: 0, y: 0, z: 100} + m_Parameters: + serializedVersion: 3 + widthMultiplier: 1 + widthCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 69 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + colorGradient: + serializedVersion: 2 + key0: {r: 0, g: 0.050290912, b: 0.7075472, a: 0} + key1: {r: 0.039215684, g: 0.7982905, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + numCornerVertices: 0 + numCapVertices: 2 + alignment: 0 + textureMode: 0 + shadowBias: 0.5 + generateLightingData: 0 + m_UseWorldSpace: 0 + m_Loop: 0 +--- !u!1 &7260365810735698660 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2423173662465485088} + - component: {fileID: 4604247921592577927} + - component: {fileID: 5252588571006147158} + m_Layer: 0 + m_Name: Effect + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2423173662465485088 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7260365810735698660} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 940753248448816131} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: -90, y: 0, z: 0} +--- !u!198 &4604247921592577927 +ParticleSystem: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7260365810735698660} + serializedVersion: 7 + lengthInSec: 0.1 + simulationSpeed: 1 + stopAction: 0 + cullingMode: 0 + ringBufferMode: 0 + ringBufferLoopRange: {x: 0, y: 1} + looping: 0 + prewarm: 0 + playOnAwake: 1 + useUnscaledTime: 0 + autoRandomSeed: 1 + useRigidbodyForVelocity: 1 + startDelay: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + moveWithTransform: 0 + moveWithCustomTransform: {fileID: 0} + scalingMode: 1 + randomSeed: 0 + InitialModule: + serializedVersion: 3 + enabled: 1 + startLifetime: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 5 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startSpeed: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 5 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startColor: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + startSize: + serializedVersion: 2 + minMaxState: 0 + scalar: 3 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startSizeY: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startSizeZ: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startRotationX: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startRotationY: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startRotation: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + randomizeRotationDirection: 0 + maxNumParticles: 1000 + size3D: 0 + rotation3D: 0 + gravityModifier: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + ShapeModule: + serializedVersion: 6 + enabled: 1 + type: 12 + angle: 25 + length: 5 + boxThickness: {x: 0, y: 0, z: 0} + radiusThickness: 1 + donutRadius: 0.2 + m_Position: {x: 0, y: 0, z: 5} + m_Rotation: {x: 0, y: 90, z: 0} + m_Scale: {x: 5, y: 1, z: 1} + placementMode: 0 + m_MeshMaterialIndex: 0 + m_MeshNormalOffset: 0 + m_MeshSpawn: + mode: 0 + spread: 0 + speed: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Mesh: {fileID: 0} + m_MeshRenderer: {fileID: 0} + m_SkinnedMeshRenderer: {fileID: 0} + m_Sprite: {fileID: 0} + m_SpriteRenderer: {fileID: 0} + m_UseMeshMaterialIndex: 0 + m_UseMeshColors: 1 + alignToDirection: 0 + m_Texture: {fileID: 0} + m_TextureClipChannel: 3 + m_TextureClipThreshold: 0 + m_TextureUVChannel: 0 + m_TextureColorAffectsParticles: 1 + m_TextureAlphaAffectsParticles: 1 + m_TextureBilinearFiltering: 0 + randomDirectionAmount: 1 + sphericalDirectionAmount: 0 + randomPositionAmount: 0 + radius: + value: 1 + mode: 1 + spread: 0 + speed: + serializedVersion: 2 + minMaxState: 0 + scalar: -10 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + arc: + value: 360 + mode: 0 + spread: 0 + speed: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + EmissionModule: + enabled: 1 + serializedVersion: 4 + rateOverTime: + serializedVersion: 2 + minMaxState: 0 + scalar: 2 + minScalar: 10 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + rateOverDistance: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_BurstCount: 0 + m_Bursts: [] + SizeModule: + enabled: 1 + curve: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: -2 + outSlope: -2 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + RotationModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + curve: + serializedVersion: 2 + minMaxState: 0 + scalar: 0.7853982 + minScalar: 0.7853982 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + ColorModule: + enabled: 1 + gradient: + serializedVersion: 2 + minMaxState: 1 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 0.14899999, g: 0.34151047, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 0} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 43646 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + UVModule: + serializedVersion: 2 + enabled: 0 + mode: 0 + timeMode: 0 + fps: 30 + frameOverTime: + serializedVersion: 2 + minMaxState: 1 + scalar: 0.9999 + minScalar: 0.9999 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startFrame: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + speedRange: {x: 0, y: 1} + tilesX: 1 + tilesY: 1 + animationType: 0 + rowIndex: 0 + cycles: 1 + uvChannelMask: -1 + rowMode: 1 + sprites: + - sprite: {fileID: 0} + flipU: 0 + flipV: 0 + VelocityModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalX: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalY: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalZ: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalOffsetX: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalOffsetY: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalOffsetZ: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + radial: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + speedModifier: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + inWorldSpace: 0 + InheritVelocityModule: + enabled: 0 + m_Mode: 0 + m_Curve: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + LifetimeByEmitterSpeedModule: + enabled: 0 + m_Curve: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: -0.8 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0.2 + inSlope: -0.8 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Range: {x: 0, y: 1} + ForceModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + inWorldSpace: 0 + randomizePerFrame: 0 + ExternalForcesModule: + serializedVersion: 2 + enabled: 0 + multiplierCurve: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + influenceFilter: 0 + influenceMask: + serializedVersion: 2 + m_Bits: 4294967295 + influenceList: [] + ClampVelocityModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + magnitude: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxis: 0 + inWorldSpace: 0 + multiplyDragByParticleSize: 1 + multiplyDragByParticleVelocity: 1 + dampen: 0 + drag: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + NoiseModule: + enabled: 0 + strength: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + strengthY: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + strengthZ: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + frequency: 0.5 + damping: 1 + octaves: 1 + octaveMultiplier: 0.5 + octaveScale: 2 + quality: 2 + scrollSpeed: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remap: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: -1 + inSlope: 0 + outSlope: 2 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 2 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remapY: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: -1 + inSlope: 0 + outSlope: 2 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 2 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remapZ: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: -1 + inSlope: 0 + outSlope: 2 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 2 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remapEnabled: 0 + positionAmount: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + rotationAmount: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + sizeAmount: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + SizeBySpeedModule: + enabled: 0 + curve: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + range: {x: 0, y: 1} + separateAxes: 0 + RotationBySpeedModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + curve: + serializedVersion: 2 + minMaxState: 0 + scalar: 0.7853982 + minScalar: 0.7853982 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + range: {x: 0, y: 1} + ColorBySpeedModule: + enabled: 0 + gradient: + serializedVersion: 2 + minMaxState: 1 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + range: {x: 0, y: 1} + CollisionModule: + enabled: 0 + serializedVersion: 4 + type: 0 + collisionMode: 0 + colliderForce: 0 + multiplyColliderForceByParticleSize: 0 + multiplyColliderForceByParticleSpeed: 0 + multiplyColliderForceByCollisionAngle: 1 + m_Planes: [] + m_Dampen: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Bounce: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_EnergyLossOnCollision: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minKillSpeed: 0 + maxKillSpeed: 10000 + radiusScale: 1 + collidesWith: + serializedVersion: 2 + m_Bits: 4294967295 + maxCollisionShapes: 256 + quality: 0 + voxelSize: 0.5 + collisionMessages: 0 + collidesWithDynamic: 1 + interiorCollisions: 0 + TriggerModule: + enabled: 0 + serializedVersion: 2 + inside: 1 + outside: 0 + enter: 0 + exit: 0 + colliderQueryMode: 0 + radiusScale: 1 + primitives: [] + SubModule: + serializedVersion: 2 + enabled: 0 + subEmitters: + - serializedVersion: 3 + emitter: {fileID: 0} + type: 0 + properties: 0 + emitProbability: 1 + LightsModule: + enabled: 0 + ratio: 0 + light: {fileID: 0} + randomDistribution: 1 + color: 1 + range: 1 + intensity: 1 + rangeCurve: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + intensityCurve: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + maxLights: 20 + TrailModule: + enabled: 0 + mode: 0 + ratio: 1 + lifetime: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minVertexDistance: 0.2 + textureMode: 0 + ribbonCount: 1 + shadowBias: 0.5 + worldSpace: 0 + dieWithParticles: 1 + sizeAffectsWidth: 1 + sizeAffectsLifetime: 0 + inheritParticleColor: 1 + generateLightingData: 0 + splitSubEmitterRibbons: 0 + attachRibbonsToTransform: 0 + colorOverLifetime: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + widthOverTrail: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + colorOverTrail: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + CustomDataModule: + enabled: 0 + mode0: 0 + vectorComponentCount0: 4 + color0: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + colorLabel0: Color + vector0_0: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_0: X + vector0_1: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_1: Y + vector0_2: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_2: Z + vector0_3: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_3: W + mode1: 0 + vectorComponentCount1: 4 + color1: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + colorLabel1: Color + vector1_0: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_0: X + vector1_1: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_1: Y + vector1_2: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_2: Z + vector1_3: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_3: W +--- !u!199 &5252588571006147158 +ParticleSystemRenderer: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7260365810735698660} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: c743050056b7f9a409136c378f3f62b8, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_RenderMode: 0 + m_SortMode: 0 + m_MinParticleSize: 0 + m_MaxParticleSize: 0.5 + m_CameraVelocityScale: 0 + m_VelocityScale: 0 + m_LengthScale: 2 + m_SortingFudge: 0 + m_NormalDirection: 1 + m_ShadowBias: 0 + m_RenderAlignment: 2 + m_Pivot: {x: 0, y: 0, z: 0} + m_Flip: {x: 0, y: 0, z: 0} + m_UseCustomVertexStreams: 0 + m_EnableGPUInstancing: 1 + m_ApplyActiveColorSpace: 1 + m_AllowRoll: 1 + m_FreeformStretching: 0 + m_RotateWithStretchDirection: 1 + m_VertexStreams: 00010304 + m_Mesh: {fileID: 0} + m_Mesh1: {fileID: 0} + m_Mesh2: {fileID: 0} + m_Mesh3: {fileID: 0} + m_MaskInteraction: 0 diff --git a/Assets/Resources/Prefabs/Weapons/DME/railagainst.prefab.meta b/Assets/Resources/Prefabs/Weapons/DME/railagainst.prefab.meta new file mode 100644 index 000000000..15c1f7610 --- /dev/null +++ b/Assets/Resources/Prefabs/Weapons/DME/railagainst.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 44a9bc08f2f3178448aabe69a2c218dc +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Prefabs/Weapons/DME/scorchedvoid.prefab b/Assets/Resources/Prefabs/Weapons/DME/scorchedvoid.prefab new file mode 100644 index 000000000..4d3180bd4 --- /dev/null +++ b/Assets/Resources/Prefabs/Weapons/DME/scorchedvoid.prefab @@ -0,0 +1,5093 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &2200213683735813174 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2200213683735813172} + - component: {fileID: 2698694499776308069} + - component: {fileID: 2200213683735813173} + m_Layer: 0 + m_Name: Micromissile + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2200213683735813172 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2200213683735813174} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 2200213684891960496} + m_Father: {fileID: 5148235482537864796} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &2698694499776308069 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2200213683735813174} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1281fe44325f9b548aa42dc331b17266, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &2200213683735813173 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2200213683735813174} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 56c973b8f3781c848b6530c2e7efce05, type: 3} + m_Name: + m_EditorClassIdentifier: + HitEffect: {fileID: 0} + ChildProjectile: {fileID: 0} + AirburstProjectile: {fileID: 0} + AirburstCount: 0 + AirburstDirectionality: 0 + AirburstDistance: 0 + AirburstRange: 0 + AirburstVelocity: 0 + Children: 0 + SplitTime: 0 + SplitSeparationForwardness: 0 + SplitSeparationVelocity: 0 + Particles: {fileID: 2200213684891960502} + FadeOutTime: 1 + ThrustCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0.5 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + GuidanceCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0.5 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 0.9608628 + value: 0.9977624 + inSlope: 0.112816334 + outSlope: 0.112816334 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + LiftCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0.0023040771 + value: 0.73749924 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 0.17710531 + value: 0.81192774 + inSlope: -0.8198446 + outSlope: -0.8198446 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.38233894 + value: 0.09487492 + inSlope: -0.08619904 + outSlope: -0.08619904 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.7232835 + value: 0.09761685 + inSlope: 0.13605312 + outSlope: 0.13605312 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.5938519 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + Frequency: 0.25 + Thrust: 500 + TopSpeed: 250 + Source: {fileID: 0} + Target: {fileID: 0} +--- !u!1 &2200213684891960497 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2200213684891960496} + - component: {fileID: 2200213684891960502} + - component: {fileID: 2200213684891960503} + m_Layer: 0 + m_Name: Particle System + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2200213684891960496 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2200213684891960497} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 2200213683735813172} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: -90, y: 0, z: 0} +--- !u!198 &2200213684891960502 +ParticleSystem: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2200213684891960497} + serializedVersion: 7 + lengthInSec: 5 + simulationSpeed: 1 + stopAction: 0 + cullingMode: 0 + ringBufferMode: 0 + ringBufferLoopRange: {x: 0, y: 1} + looping: 1 + prewarm: 0 + playOnAwake: 1 + useUnscaledTime: 0 + autoRandomSeed: 1 + useRigidbodyForVelocity: 1 + startDelay: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + moveWithTransform: 1 + moveWithCustomTransform: {fileID: 0} + scalingMode: 1 + randomSeed: 0 + InitialModule: + serializedVersion: 3 + enabled: 1 + startLifetime: + serializedVersion: 2 + minMaxState: 0 + scalar: 0.5 + minScalar: 5 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startSpeed: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 5 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startColor: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + startSize: + serializedVersion: 2 + minMaxState: 0 + scalar: 5 + minScalar: 3 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startSizeY: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startSizeZ: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startRotationX: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startRotationY: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startRotation: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + randomizeRotationDirection: 0 + maxNumParticles: 1000 + size3D: 0 + rotation3D: 0 + gravityModifier: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + ShapeModule: + serializedVersion: 6 + enabled: 0 + type: 4 + angle: 25 + length: 5 + boxThickness: {x: 0, y: 0, z: 0} + radiusThickness: 1 + donutRadius: 0.2 + m_Position: {x: 0, y: 0, z: 0} + m_Rotation: {x: 0, y: 0, z: 0} + m_Scale: {x: 1, y: 1, z: 1} + placementMode: 0 + m_MeshMaterialIndex: 0 + m_MeshNormalOffset: 0 + m_MeshSpawn: + mode: 0 + spread: 0 + speed: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Mesh: {fileID: 0} + m_MeshRenderer: {fileID: 0} + m_SkinnedMeshRenderer: {fileID: 0} + m_Sprite: {fileID: 0} + m_SpriteRenderer: {fileID: 0} + m_UseMeshMaterialIndex: 0 + m_UseMeshColors: 1 + alignToDirection: 0 + m_Texture: {fileID: 0} + m_TextureClipChannel: 3 + m_TextureClipThreshold: 0 + m_TextureUVChannel: 0 + m_TextureColorAffectsParticles: 1 + m_TextureAlphaAffectsParticles: 1 + m_TextureBilinearFiltering: 0 + randomDirectionAmount: 0 + sphericalDirectionAmount: 0 + randomPositionAmount: 0 + radius: + value: 1 + mode: 0 + spread: 0 + speed: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + arc: + value: 360 + mode: 0 + spread: 0 + speed: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + EmissionModule: + enabled: 1 + serializedVersion: 4 + rateOverTime: + serializedVersion: 2 + minMaxState: 0 + scalar: 500 + minScalar: 10 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + rateOverDistance: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_BurstCount: 0 + m_Bursts: [] + SizeModule: + enabled: 0 + curve: + serializedVersion: 2 + minMaxState: 1 + scalar: 4 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 2 + outSlope: 2 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 0.15039083 + value: 0.97053653 + inSlope: -0.04036486 + outSlope: -0.04036486 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.37395254 + value: 0.1353639 + inSlope: 0.03037455 + outSlope: 0.03037455 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.50258505 + - serializedVersion: 3 + time: 0.5234933 + value: 0.965686 + inSlope: -0.015838688 + outSlope: -0.015838688 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.5332359 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.80144876 + value: 0.13683647 + inSlope: 0.11682253 + outSlope: 0.11682253 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + RotationModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + curve: + serializedVersion: 2 + minMaxState: 0 + scalar: 0.7853982 + minScalar: 0.7853982 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + ColorModule: + enabled: 0 + gradient: + serializedVersion: 2 + minMaxState: 1 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + UVModule: + serializedVersion: 2 + enabled: 0 + mode: 0 + timeMode: 1 + fps: 30 + frameOverTime: + serializedVersion: 2 + minMaxState: 1 + scalar: 0.9999 + minScalar: 0.9999 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startFrame: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + speedRange: {x: 0, y: 1} + tilesX: 5 + tilesY: 5 + animationType: 0 + rowIndex: 0 + cycles: 1 + uvChannelMask: -1 + rowMode: 1 + sprites: + - sprite: {fileID: 0} + flipU: 0 + flipV: 0 + VelocityModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalX: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalY: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalZ: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalOffsetX: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalOffsetY: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalOffsetZ: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + radial: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + speedModifier: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + inWorldSpace: 0 + InheritVelocityModule: + enabled: 0 + m_Mode: 0 + m_Curve: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + LifetimeByEmitterSpeedModule: + enabled: 0 + m_Curve: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: -0.8 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0.2 + inSlope: -0.8 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Range: {x: 0, y: 1} + ForceModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + inWorldSpace: 0 + randomizePerFrame: 0 + ExternalForcesModule: + serializedVersion: 2 + enabled: 0 + multiplierCurve: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + influenceFilter: 0 + influenceMask: + serializedVersion: 2 + m_Bits: 4294967295 + influenceList: [] + ClampVelocityModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + magnitude: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxis: 0 + inWorldSpace: 0 + multiplyDragByParticleSize: 1 + multiplyDragByParticleVelocity: 1 + dampen: 0 + drag: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + NoiseModule: + enabled: 1 + strength: + serializedVersion: 2 + minMaxState: 1 + scalar: 5 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: -1 + outSlope: -1 + tangentMode: 34 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: -1 + outSlope: -1 + tangentMode: 34 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + strengthY: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + strengthZ: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + frequency: 0.01 + damping: 1 + octaves: 1 + octaveMultiplier: 0.5 + octaveScale: 2 + quality: 2 + scrollSpeed: + serializedVersion: 2 + minMaxState: 0 + scalar: 0.1 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remap: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: -1 + inSlope: 0 + outSlope: 2 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 2 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remapY: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: -1 + inSlope: 0 + outSlope: 2 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 2 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remapZ: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: -1 + inSlope: 0 + outSlope: 2 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 2 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remapEnabled: 0 + positionAmount: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + rotationAmount: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + sizeAmount: + serializedVersion: 2 + minMaxState: 0 + scalar: 0.1 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + SizeBySpeedModule: + enabled: 0 + curve: + serializedVersion: 2 + minMaxState: 1 + scalar: 5 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 1 + outSlope: 1 + tangentMode: 34 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 1 + tangentMode: 34 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + range: {x: 0, y: 1} + separateAxes: 0 + RotationBySpeedModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + curve: + serializedVersion: 2 + minMaxState: 0 + scalar: 0.7853982 + minScalar: 0.7853982 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + range: {x: 0, y: 1} + ColorBySpeedModule: + enabled: 0 + gradient: + serializedVersion: 2 + minMaxState: 1 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + range: {x: 0, y: 1} + CollisionModule: + enabled: 0 + serializedVersion: 4 + type: 0 + collisionMode: 0 + colliderForce: 0 + multiplyColliderForceByParticleSize: 0 + multiplyColliderForceByParticleSpeed: 0 + multiplyColliderForceByCollisionAngle: 1 + m_Planes: + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + m_Dampen: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Bounce: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_EnergyLossOnCollision: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minKillSpeed: 0 + maxKillSpeed: 10000 + radiusScale: 1 + collidesWith: + serializedVersion: 2 + m_Bits: 4294967295 + maxCollisionShapes: 256 + quality: 0 + voxelSize: 0.5 + collisionMessages: 0 + collidesWithDynamic: 1 + interiorCollisions: 0 + TriggerModule: + enabled: 0 + serializedVersion: 2 + inside: 1 + outside: 0 + enter: 0 + exit: 0 + colliderQueryMode: 0 + radiusScale: 1 + primitives: + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + SubModule: + serializedVersion: 2 + enabled: 0 + subEmitters: + - serializedVersion: 3 + emitter: {fileID: 0} + type: 0 + properties: 0 + emitProbability: 1 + LightsModule: + enabled: 0 + ratio: 0 + light: {fileID: 0} + randomDistribution: 1 + color: 1 + range: 1 + intensity: 1 + rangeCurve: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + intensityCurve: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + maxLights: 20 + TrailModule: + enabled: 1 + mode: 1 + ratio: 1 + lifetime: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minVertexDistance: 0.2 + textureMode: 0 + ribbonCount: 1 + shadowBias: 0.5 + worldSpace: 0 + dieWithParticles: 1 + sizeAffectsWidth: 1 + sizeAffectsLifetime: 0 + inheritParticleColor: 1 + generateLightingData: 0 + splitSubEmitterRibbons: 0 + attachRibbonsToTransform: 1 + colorOverLifetime: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + widthOverTrail: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0.9168857 + outSlope: 0.9168857 + tangentMode: 34 + weightedMode: 0 + inWeight: 0 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.8737863 + value: 0.8011621 + inSlope: -2.132811 + outSlope: -2.132811 + tangentMode: 34 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0.14705849 + inSlope: -5.182508 + outSlope: -5.182508 + tangentMode: 34 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + colorOverTrail: + serializedVersion: 2 + minMaxState: 1 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 0, g: 0, b: 0, a: 0} + key1: {r: 0.01, g: 0.01, b: 0.01, a: 1} + key2: {r: 1, g: 0.092499994, b: 0.00999999, a: 1} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 40557 + ctime2: 65535 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 8192 + atime2: 65535 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 3 + m_NumAlphaKeys: 3 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + CustomDataModule: + enabled: 0 + mode0: 1 + vectorComponentCount0: 2 + color0: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + colorLabel0: Color + vector0_0: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_0: X + vector0_1: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_1: Y + vector0_2: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_2: Z + vector0_3: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_3: W + mode1: 0 + vectorComponentCount1: 4 + color1: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + colorLabel1: Color + vector1_0: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_0: X + vector1_1: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_1: Y + vector1_2: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_2: Z + vector1_3: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_3: W +--- !u!199 &2200213684891960503 +ParticleSystemRenderer: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2200213684891960497} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10308, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 2100000, guid: 483c8decd432d5e49ac166734cdd9d37, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_RenderMode: 5 + m_SortMode: 0 + m_MinParticleSize: 0 + m_MaxParticleSize: 0.5 + m_CameraVelocityScale: 0 + m_VelocityScale: 0 + m_LengthScale: 2 + m_SortingFudge: 0 + m_NormalDirection: 1 + m_ShadowBias: 0 + m_RenderAlignment: 0 + m_Pivot: {x: 0, y: 0, z: 0} + m_Flip: {x: 0, y: 0, z: 0} + m_UseCustomVertexStreams: 0 + m_EnableGPUInstancing: 1 + m_ApplyActiveColorSpace: 1 + m_AllowRoll: 1 + m_FreeformStretching: 0 + m_RotateWithStretchDirection: 1 + m_VertexStreams: 00010304 + m_Mesh: {fileID: 0} + m_Mesh1: {fileID: 0} + m_Mesh2: {fileID: 0} + m_Mesh3: {fileID: 0} + m_MaskInteraction: 0 +--- !u!1 &3015547693297330586 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5148235482537864796} + - component: {fileID: 8540408454168213454} + m_Layer: 0 + m_Name: SRM + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &5148235482537864796 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3015547693297330586} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 2200213683735813172} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &8540408454168213454 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3015547693297330586} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ee3949bbc28566148b9f661741b6e25d, type: 3} + m_Name: + m_EditorClassIdentifier: + ProjectilePrototype: {fileID: 2698694499776308069} diff --git a/Assets/Resources/Prefabs/Weapons/DME/scorchedvoid.prefab.meta b/Assets/Resources/Prefabs/Weapons/DME/scorchedvoid.prefab.meta new file mode 100644 index 000000000..f1f4c4557 --- /dev/null +++ b/Assets/Resources/Prefabs/Weapons/DME/scorchedvoid.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: ae107f652dc6e6341a779cef636bfb49 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Prefabs/Weapons/MIRV-1.prefab b/Assets/Resources/Prefabs/Weapons/MIRV-1.prefab new file mode 100644 index 000000000..2eb9baee8 --- /dev/null +++ b/Assets/Resources/Prefabs/Weapons/MIRV-1.prefab @@ -0,0 +1,10004 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &2200213683735813174 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2200213683735813172} + - component: {fileID: 2698694499776308069} + - component: {fileID: 2200213683735813173} + m_Layer: 0 + m_Name: MIRV Torpedo + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2200213683735813172 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2200213683735813174} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 2200213684891960496} + m_Father: {fileID: 5148235482537864796} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &2698694499776308069 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2200213683735813174} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1281fe44325f9b548aa42dc331b17266, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &2200213683735813173 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2200213683735813174} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 56c973b8f3781c848b6530c2e7efce05, type: 3} + m_Name: + m_EditorClassIdentifier: + HitEffect: {fileID: 3919473840829643297} + ChildProjectile: {fileID: 4168716527889869138} + Children: 3 + SplitTime: 0.5 + SplitSeparationForwardness: 0.75 + SplitSeparationVelocity: 0.5 + Particles: {fileID: 2200213684891960502} + FadeOutTime: 1 + ThrustCurve: + serializedVersion: 2 + m_Curve: [] + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + GuidanceCurve: + serializedVersion: 2 + m_Curve: [] + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + LiftCurve: + serializedVersion: 2 + m_Curve: [] + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + Frequency: 0 + Thrust: 0 + TopSpeed: 0 + Source: {fileID: 0} +--- !u!1 &2200213684891960497 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2200213684891960496} + - component: {fileID: 2200213684891960502} + - component: {fileID: 2200213684891960503} + m_Layer: 0 + m_Name: Particle System + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2200213684891960496 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2200213684891960497} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 2200213683735813172} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: -90, y: 0, z: 0} +--- !u!198 &2200213684891960502 +ParticleSystem: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2200213684891960497} + serializedVersion: 7 + lengthInSec: 5 + simulationSpeed: 1 + stopAction: 0 + cullingMode: 0 + ringBufferMode: 0 + ringBufferLoopRange: {x: 0, y: 1} + looping: 1 + prewarm: 0 + playOnAwake: 1 + useUnscaledTime: 0 + autoRandomSeed: 1 + useRigidbodyForVelocity: 1 + startDelay: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + moveWithTransform: 1 + moveWithCustomTransform: {fileID: 0} + scalingMode: 1 + randomSeed: 0 + InitialModule: + serializedVersion: 3 + enabled: 1 + startLifetime: + serializedVersion: 2 + minMaxState: 0 + scalar: 2 + minScalar: 5 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startSpeed: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 5 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startColor: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + startSize: + serializedVersion: 2 + minMaxState: 0 + scalar: 10 + minScalar: 3 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startSizeY: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startSizeZ: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startRotationX: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startRotationY: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startRotation: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + randomizeRotationDirection: 0 + maxNumParticles: 1000 + size3D: 0 + rotation3D: 0 + gravityModifier: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + ShapeModule: + serializedVersion: 6 + enabled: 0 + type: 4 + angle: 25 + length: 5 + boxThickness: {x: 0, y: 0, z: 0} + radiusThickness: 1 + donutRadius: 0.2 + m_Position: {x: 0, y: 0, z: 0} + m_Rotation: {x: 0, y: 0, z: 0} + m_Scale: {x: 1, y: 1, z: 1} + placementMode: 0 + m_MeshMaterialIndex: 0 + m_MeshNormalOffset: 0 + m_MeshSpawn: + mode: 0 + spread: 0 + speed: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Mesh: {fileID: 0} + m_MeshRenderer: {fileID: 0} + m_SkinnedMeshRenderer: {fileID: 0} + m_Sprite: {fileID: 0} + m_SpriteRenderer: {fileID: 0} + m_UseMeshMaterialIndex: 0 + m_UseMeshColors: 1 + alignToDirection: 0 + m_Texture: {fileID: 0} + m_TextureClipChannel: 3 + m_TextureClipThreshold: 0 + m_TextureUVChannel: 0 + m_TextureColorAffectsParticles: 1 + m_TextureAlphaAffectsParticles: 1 + m_TextureBilinearFiltering: 0 + randomDirectionAmount: 0 + sphericalDirectionAmount: 0 + randomPositionAmount: 0 + radius: + value: 1 + mode: 0 + spread: 0 + speed: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + arc: + value: 360 + mode: 0 + spread: 0 + speed: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + EmissionModule: + enabled: 1 + serializedVersion: 4 + rateOverTime: + serializedVersion: 2 + minMaxState: 0 + scalar: 500 + minScalar: 10 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + rateOverDistance: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_BurstCount: 0 + m_Bursts: [] + SizeModule: + enabled: 0 + curve: + serializedVersion: 2 + minMaxState: 1 + scalar: 4 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 2 + outSlope: 2 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 0.15039083 + value: 0.97053653 + inSlope: -0.04036486 + outSlope: -0.04036486 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.37395254 + value: 0.1353639 + inSlope: 0.03037455 + outSlope: 0.03037455 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.50258505 + - serializedVersion: 3 + time: 0.5234933 + value: 0.965686 + inSlope: -0.015838688 + outSlope: -0.015838688 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.5332359 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.80144876 + value: 0.13683647 + inSlope: 0.11682253 + outSlope: 0.11682253 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + RotationModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + curve: + serializedVersion: 2 + minMaxState: 0 + scalar: 0.7853982 + minScalar: 0.7853982 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + ColorModule: + enabled: 0 + gradient: + serializedVersion: 2 + minMaxState: 1 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + UVModule: + serializedVersion: 2 + enabled: 0 + mode: 0 + timeMode: 1 + fps: 30 + frameOverTime: + serializedVersion: 2 + minMaxState: 1 + scalar: 0.9999 + minScalar: 0.9999 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startFrame: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + speedRange: {x: 0, y: 1} + tilesX: 5 + tilesY: 5 + animationType: 0 + rowIndex: 0 + cycles: 1 + uvChannelMask: -1 + rowMode: 1 + sprites: + - sprite: {fileID: 0} + flipU: 0 + flipV: 0 + VelocityModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalX: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalY: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalZ: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalOffsetX: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalOffsetY: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalOffsetZ: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + radial: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + speedModifier: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + inWorldSpace: 0 + InheritVelocityModule: + enabled: 0 + m_Mode: 0 + m_Curve: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + LifetimeByEmitterSpeedModule: + enabled: 0 + m_Curve: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: -0.8 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0.2 + inSlope: -0.8 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Range: {x: 0, y: 1} + ForceModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + inWorldSpace: 0 + randomizePerFrame: 0 + ExternalForcesModule: + serializedVersion: 2 + enabled: 0 + multiplierCurve: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + influenceFilter: 0 + influenceMask: + serializedVersion: 2 + m_Bits: 4294967295 + influenceList: [] + ClampVelocityModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + magnitude: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxis: 0 + inWorldSpace: 0 + multiplyDragByParticleSize: 1 + multiplyDragByParticleVelocity: 1 + dampen: 0 + drag: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + NoiseModule: + enabled: 1 + strength: + serializedVersion: 2 + minMaxState: 1 + scalar: 5 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: -1 + outSlope: -1 + tangentMode: 34 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: -1 + outSlope: -1 + tangentMode: 34 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + strengthY: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + strengthZ: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + frequency: 0.01 + damping: 1 + octaves: 1 + octaveMultiplier: 0.5 + octaveScale: 2 + quality: 2 + scrollSpeed: + serializedVersion: 2 + minMaxState: 0 + scalar: 0.1 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remap: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: -1 + inSlope: 0 + outSlope: 2 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 2 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remapY: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: -1 + inSlope: 0 + outSlope: 2 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 2 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remapZ: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: -1 + inSlope: 0 + outSlope: 2 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 2 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remapEnabled: 0 + positionAmount: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + rotationAmount: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + sizeAmount: + serializedVersion: 2 + minMaxState: 0 + scalar: 0.1 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + SizeBySpeedModule: + enabled: 0 + curve: + serializedVersion: 2 + minMaxState: 1 + scalar: 5 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 1 + outSlope: 1 + tangentMode: 34 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 1 + tangentMode: 34 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + range: {x: 0, y: 1} + separateAxes: 0 + RotationBySpeedModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + curve: + serializedVersion: 2 + minMaxState: 0 + scalar: 0.7853982 + minScalar: 0.7853982 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + range: {x: 0, y: 1} + ColorBySpeedModule: + enabled: 0 + gradient: + serializedVersion: 2 + minMaxState: 1 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + range: {x: 0, y: 1} + CollisionModule: + enabled: 0 + serializedVersion: 4 + type: 0 + collisionMode: 0 + colliderForce: 0 + multiplyColliderForceByParticleSize: 0 + multiplyColliderForceByParticleSpeed: 0 + multiplyColliderForceByCollisionAngle: 1 + m_Planes: + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + m_Dampen: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Bounce: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_EnergyLossOnCollision: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minKillSpeed: 0 + maxKillSpeed: 10000 + radiusScale: 1 + collidesWith: + serializedVersion: 2 + m_Bits: 4294967295 + maxCollisionShapes: 256 + quality: 0 + voxelSize: 0.5 + collisionMessages: 0 + collidesWithDynamic: 1 + interiorCollisions: 0 + TriggerModule: + enabled: 0 + serializedVersion: 2 + inside: 1 + outside: 0 + enter: 0 + exit: 0 + colliderQueryMode: 0 + radiusScale: 1 + primitives: + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + SubModule: + serializedVersion: 2 + enabled: 0 + subEmitters: + - serializedVersion: 3 + emitter: {fileID: 0} + type: 0 + properties: 0 + emitProbability: 1 + LightsModule: + enabled: 0 + ratio: 0 + light: {fileID: 0} + randomDistribution: 1 + color: 1 + range: 1 + intensity: 1 + rangeCurve: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + intensityCurve: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + maxLights: 20 + TrailModule: + enabled: 1 + mode: 1 + ratio: 1 + lifetime: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minVertexDistance: 0.2 + textureMode: 0 + ribbonCount: 1 + shadowBias: 0.5 + worldSpace: 0 + dieWithParticles: 1 + sizeAffectsWidth: 1 + sizeAffectsLifetime: 0 + inheritParticleColor: 1 + generateLightingData: 0 + splitSubEmitterRibbons: 0 + attachRibbonsToTransform: 1 + colorOverLifetime: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + widthOverTrail: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: -0.84615326 + outSlope: -0.84615326 + tangentMode: 34 + weightedMode: 0 + inWeight: 0 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0.15384674 + inSlope: -0.84615326 + outSlope: -0.84615326 + tangentMode: 34 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + colorOverTrail: + serializedVersion: 2 + minMaxState: 1 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 0, g: 0, b: 0, a: 0} + key1: {r: 0.01, g: 0.01, b: 0.01, a: 1} + key2: {r: 1, g: 0.092499994, b: 0.00999999, a: 1} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 40557 + ctime2: 65535 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 8192 + atime2: 65535 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 3 + m_NumAlphaKeys: 3 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + CustomDataModule: + enabled: 0 + mode0: 1 + vectorComponentCount0: 2 + color0: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + colorLabel0: Color + vector0_0: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_0: X + vector0_1: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_1: Y + vector0_2: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_2: Z + vector0_3: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_3: W + mode1: 0 + vectorComponentCount1: 4 + color1: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + colorLabel1: Color + vector1_0: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_0: X + vector1_1: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_1: Y + vector1_2: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_2: Z + vector1_3: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_3: W +--- !u!199 &2200213684891960503 +ParticleSystemRenderer: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2200213684891960497} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10308, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 2100000, guid: 483c8decd432d5e49ac166734cdd9d37, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_RenderMode: 5 + m_SortMode: 0 + m_MinParticleSize: 0 + m_MaxParticleSize: 0.5 + m_CameraVelocityScale: 0 + m_VelocityScale: 0 + m_LengthScale: 2 + m_SortingFudge: 0 + m_NormalDirection: 1 + m_ShadowBias: 0 + m_RenderAlignment: 0 + m_Pivot: {x: 0, y: 0, z: 0} + m_Flip: {x: 0, y: 0, z: 0} + m_UseCustomVertexStreams: 0 + m_EnableGPUInstancing: 1 + m_ApplyActiveColorSpace: 1 + m_AllowRoll: 1 + m_FreeformStretching: 0 + m_RotateWithStretchDirection: 1 + m_VertexStreams: 00010304 + m_Mesh: {fileID: 0} + m_Mesh1: {fileID: 0} + m_Mesh2: {fileID: 0} + m_Mesh3: {fileID: 0} + m_MaskInteraction: 0 +--- !u!1 &3015547693297330586 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5148235482537864796} + - component: {fileID: 8540408454168213454} + m_Layer: 0 + m_Name: MIRV-1 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &5148235482537864796 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3015547693297330586} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 2200213683735813172} + - {fileID: 5809341335623671595} + - {fileID: 6349448974718639232} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &8540408454168213454 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3015547693297330586} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ee3949bbc28566148b9f661741b6e25d, type: 3} + m_Name: + m_EditorClassIdentifier: + ProjectilePrototype: {fileID: 2698694499776308069} +--- !u!1 &5918150675599634023 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5809341335623671595} + - component: {fileID: 4168716527889869138} + - component: {fileID: 4754867723766222547} + m_Layer: 0 + m_Name: Child Missile + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &5809341335623671595 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5918150675599634023} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 6049529209865607864} + m_Father: {fileID: 5148235482537864796} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &4168716527889869138 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5918150675599634023} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1281fe44325f9b548aa42dc331b17266, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &4754867723766222547 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5918150675599634023} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 56c973b8f3781c848b6530c2e7efce05, type: 3} + m_Name: + m_EditorClassIdentifier: + HitEffect: {fileID: 3919473840829643297} + ChildProjectile: {fileID: 0} + Children: 0 + SplitTime: 0.5 + SplitSeparationForwardness: 0.8 + SplitSeparationVelocity: 0.666 + Particles: {fileID: 5975501607892293245} + FadeOutTime: 1 + ThrustCurve: + serializedVersion: 2 + m_Curve: [] + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + GuidanceCurve: + serializedVersion: 2 + m_Curve: [] + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + LiftCurve: + serializedVersion: 2 + m_Curve: [] + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + Frequency: 0 + Thrust: 0 + TopSpeed: 0 + Source: {fileID: 0} +--- !u!1 &8553191576142351254 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6049529209865607864} + - component: {fileID: 5975501607892293245} + - component: {fileID: 8629497489299652644} + m_Layer: 0 + m_Name: Particle System + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &6049529209865607864 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8553191576142351254} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 5809341335623671595} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: -90, y: 0, z: 0} +--- !u!198 &5975501607892293245 +ParticleSystem: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8553191576142351254} + serializedVersion: 7 + lengthInSec: 5 + simulationSpeed: 1 + stopAction: 0 + cullingMode: 0 + ringBufferMode: 0 + ringBufferLoopRange: {x: 0, y: 1} + looping: 1 + prewarm: 0 + playOnAwake: 1 + useUnscaledTime: 0 + autoRandomSeed: 1 + useRigidbodyForVelocity: 1 + startDelay: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + moveWithTransform: 1 + moveWithCustomTransform: {fileID: 0} + scalingMode: 1 + randomSeed: 0 + InitialModule: + serializedVersion: 3 + enabled: 1 + startLifetime: + serializedVersion: 2 + minMaxState: 0 + scalar: 2 + minScalar: 5 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startSpeed: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 5 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startColor: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + startSize: + serializedVersion: 2 + minMaxState: 0 + scalar: 3 + minScalar: 3 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startSizeY: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startSizeZ: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startRotationX: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startRotationY: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startRotation: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + randomizeRotationDirection: 0 + maxNumParticles: 1000 + size3D: 0 + rotation3D: 0 + gravityModifier: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + ShapeModule: + serializedVersion: 6 + enabled: 0 + type: 4 + angle: 25 + length: 5 + boxThickness: {x: 0, y: 0, z: 0} + radiusThickness: 1 + donutRadius: 0.2 + m_Position: {x: 0, y: 0, z: 0} + m_Rotation: {x: 0, y: 0, z: 0} + m_Scale: {x: 1, y: 1, z: 1} + placementMode: 0 + m_MeshMaterialIndex: 0 + m_MeshNormalOffset: 0 + m_MeshSpawn: + mode: 0 + spread: 0 + speed: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Mesh: {fileID: 0} + m_MeshRenderer: {fileID: 0} + m_SkinnedMeshRenderer: {fileID: 0} + m_Sprite: {fileID: 0} + m_SpriteRenderer: {fileID: 0} + m_UseMeshMaterialIndex: 0 + m_UseMeshColors: 1 + alignToDirection: 0 + m_Texture: {fileID: 0} + m_TextureClipChannel: 3 + m_TextureClipThreshold: 0 + m_TextureUVChannel: 0 + m_TextureColorAffectsParticles: 1 + m_TextureAlphaAffectsParticles: 1 + m_TextureBilinearFiltering: 0 + randomDirectionAmount: 0 + sphericalDirectionAmount: 0 + randomPositionAmount: 0 + radius: + value: 1 + mode: 0 + spread: 0 + speed: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + arc: + value: 360 + mode: 0 + spread: 0 + speed: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + EmissionModule: + enabled: 1 + serializedVersion: 4 + rateOverTime: + serializedVersion: 2 + minMaxState: 0 + scalar: 500 + minScalar: 10 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + rateOverDistance: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_BurstCount: 0 + m_Bursts: [] + SizeModule: + enabled: 0 + curve: + serializedVersion: 2 + minMaxState: 1 + scalar: 4 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 2 + outSlope: 2 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 0.15039083 + value: 0.97053653 + inSlope: -0.04036486 + outSlope: -0.04036486 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.37395254 + value: 0.1353639 + inSlope: 0.03037455 + outSlope: 0.03037455 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.50258505 + - serializedVersion: 3 + time: 0.5234933 + value: 0.965686 + inSlope: -0.015838688 + outSlope: -0.015838688 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.5332359 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.80144876 + value: 0.13683647 + inSlope: 0.11682253 + outSlope: 0.11682253 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + RotationModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + curve: + serializedVersion: 2 + minMaxState: 0 + scalar: 0.7853982 + minScalar: 0.7853982 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + ColorModule: + enabled: 0 + gradient: + serializedVersion: 2 + minMaxState: 1 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + UVModule: + serializedVersion: 2 + enabled: 0 + mode: 0 + timeMode: 1 + fps: 30 + frameOverTime: + serializedVersion: 2 + minMaxState: 1 + scalar: 0.9999 + minScalar: 0.9999 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startFrame: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + speedRange: {x: 0, y: 1} + tilesX: 5 + tilesY: 5 + animationType: 0 + rowIndex: 0 + cycles: 1 + uvChannelMask: -1 + rowMode: 1 + sprites: + - sprite: {fileID: 0} + flipU: 0 + flipV: 0 + VelocityModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalX: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalY: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalZ: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalOffsetX: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalOffsetY: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalOffsetZ: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + radial: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + speedModifier: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + inWorldSpace: 0 + InheritVelocityModule: + enabled: 0 + m_Mode: 0 + m_Curve: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + LifetimeByEmitterSpeedModule: + enabled: 0 + m_Curve: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: -0.8 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0.2 + inSlope: -0.8 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Range: {x: 0, y: 1} + ForceModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + inWorldSpace: 0 + randomizePerFrame: 0 + ExternalForcesModule: + serializedVersion: 2 + enabled: 0 + multiplierCurve: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + influenceFilter: 0 + influenceMask: + serializedVersion: 2 + m_Bits: 4294967295 + influenceList: [] + ClampVelocityModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + magnitude: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxis: 0 + inWorldSpace: 0 + multiplyDragByParticleSize: 1 + multiplyDragByParticleVelocity: 1 + dampen: 0 + drag: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + NoiseModule: + enabled: 1 + strength: + serializedVersion: 2 + minMaxState: 1 + scalar: 5 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: -1 + outSlope: -1 + tangentMode: 34 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: -1 + outSlope: -1 + tangentMode: 34 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + strengthY: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + strengthZ: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + frequency: 0.01 + damping: 1 + octaves: 1 + octaveMultiplier: 0.5 + octaveScale: 2 + quality: 2 + scrollSpeed: + serializedVersion: 2 + minMaxState: 0 + scalar: 0.1 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remap: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: -1 + inSlope: 0 + outSlope: 2 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 2 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remapY: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: -1 + inSlope: 0 + outSlope: 2 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 2 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remapZ: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: -1 + inSlope: 0 + outSlope: 2 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 2 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remapEnabled: 0 + positionAmount: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + rotationAmount: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + sizeAmount: + serializedVersion: 2 + minMaxState: 0 + scalar: 0.1 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + SizeBySpeedModule: + enabled: 0 + curve: + serializedVersion: 2 + minMaxState: 1 + scalar: 5 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 1 + outSlope: 1 + tangentMode: 34 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 1 + tangentMode: 34 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + range: {x: 0, y: 1} + separateAxes: 0 + RotationBySpeedModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + curve: + serializedVersion: 2 + minMaxState: 0 + scalar: 0.7853982 + minScalar: 0.7853982 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + range: {x: 0, y: 1} + ColorBySpeedModule: + enabled: 0 + gradient: + serializedVersion: 2 + minMaxState: 1 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + range: {x: 0, y: 1} + CollisionModule: + enabled: 0 + serializedVersion: 4 + type: 0 + collisionMode: 0 + colliderForce: 0 + multiplyColliderForceByParticleSize: 0 + multiplyColliderForceByParticleSpeed: 0 + multiplyColliderForceByCollisionAngle: 1 + m_Planes: + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + m_Dampen: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Bounce: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_EnergyLossOnCollision: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minKillSpeed: 0 + maxKillSpeed: 10000 + radiusScale: 1 + collidesWith: + serializedVersion: 2 + m_Bits: 4294967295 + maxCollisionShapes: 256 + quality: 0 + voxelSize: 0.5 + collisionMessages: 0 + collidesWithDynamic: 1 + interiorCollisions: 0 + TriggerModule: + enabled: 0 + serializedVersion: 2 + inside: 1 + outside: 0 + enter: 0 + exit: 0 + colliderQueryMode: 0 + radiusScale: 1 + primitives: + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + SubModule: + serializedVersion: 2 + enabled: 0 + subEmitters: + - serializedVersion: 3 + emitter: {fileID: 0} + type: 0 + properties: 0 + emitProbability: 1 + LightsModule: + enabled: 0 + ratio: 0 + light: {fileID: 0} + randomDistribution: 1 + color: 1 + range: 1 + intensity: 1 + rangeCurve: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + intensityCurve: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + maxLights: 20 + TrailModule: + enabled: 1 + mode: 1 + ratio: 1 + lifetime: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minVertexDistance: 0.2 + textureMode: 0 + ribbonCount: 1 + shadowBias: 0.5 + worldSpace: 0 + dieWithParticles: 1 + sizeAffectsWidth: 1 + sizeAffectsLifetime: 0 + inheritParticleColor: 1 + generateLightingData: 0 + splitSubEmitterRibbons: 0 + attachRibbonsToTransform: 1 + colorOverLifetime: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + widthOverTrail: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: -1 + outSlope: -1 + tangentMode: 34 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: -1 + outSlope: -1 + tangentMode: 34 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + colorOverTrail: + serializedVersion: 2 + minMaxState: 1 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 0, g: 0, b: 0, a: 0} + key1: {r: 0.01, g: 0.01, b: 0.01, a: 1} + key2: {r: 1, g: 0.092499994, b: 0.00999999, a: 1} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 40557 + ctime2: 65535 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 8192 + atime2: 65535 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 3 + m_NumAlphaKeys: 3 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + CustomDataModule: + enabled: 0 + mode0: 1 + vectorComponentCount0: 2 + color0: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + colorLabel0: Color + vector0_0: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_0: X + vector0_1: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_1: Y + vector0_2: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_2: Z + vector0_3: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_3: W + mode1: 0 + vectorComponentCount1: 4 + color1: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + colorLabel1: Color + vector1_0: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_0: X + vector1_1: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_1: Y + vector1_2: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_2: Z + vector1_3: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_3: W +--- !u!199 &8629497489299652644 +ParticleSystemRenderer: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8553191576142351254} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10308, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 2100000, guid: 7ee57157df7b89d42b11299114860571, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_RenderMode: 5 + m_SortMode: 0 + m_MinParticleSize: 0 + m_MaxParticleSize: 0.5 + m_CameraVelocityScale: 0 + m_VelocityScale: 0 + m_LengthScale: 2 + m_SortingFudge: 0 + m_NormalDirection: 1 + m_ShadowBias: 0 + m_RenderAlignment: 0 + m_Pivot: {x: 0, y: 0, z: 0} + m_Flip: {x: 0, y: 0, z: 0} + m_UseCustomVertexStreams: 0 + m_EnableGPUInstancing: 1 + m_ApplyActiveColorSpace: 1 + m_AllowRoll: 1 + m_FreeformStretching: 0 + m_RotateWithStretchDirection: 1 + m_VertexStreams: 00010304 + m_Mesh: {fileID: 0} + m_Mesh1: {fileID: 0} + m_Mesh2: {fileID: 0} + m_Mesh3: {fileID: 0} + m_MaskInteraction: 0 +--- !u!1001 &6346338489469324596 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 5148235482537864796} + m_Modifications: + - target: {fileID: 1828176872806910, guid: 64891a0eb28db934898420d80ca07cb3, type: 3} + propertyPath: m_Name + value: SmallExplosion + objectReference: {fileID: 0} + - target: {fileID: 4361801158873524, guid: 64891a0eb28db934898420d80ca07cb3, type: 3} + propertyPath: m_RootOrder + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 4361801158873524, guid: 64891a0eb28db934898420d80ca07cb3, type: 3} + propertyPath: m_LocalPosition.x + value: -0.50997305 + objectReference: {fileID: 0} + - target: {fileID: 4361801158873524, guid: 64891a0eb28db934898420d80ca07cb3, type: 3} + propertyPath: m_LocalPosition.y + value: 2.57 + objectReference: {fileID: 0} + - target: {fileID: 4361801158873524, guid: 64891a0eb28db934898420d80ca07cb3, type: 3} + propertyPath: m_LocalPosition.z + value: -20.12803 + objectReference: {fileID: 0} + - target: {fileID: 4361801158873524, guid: 64891a0eb28db934898420d80ca07cb3, type: 3} + propertyPath: m_LocalRotation.w + value: 0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 4361801158873524, guid: 64891a0eb28db934898420d80ca07cb3, type: 3} + propertyPath: m_LocalRotation.x + value: -0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 4361801158873524, guid: 64891a0eb28db934898420d80ca07cb3, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4361801158873524, guid: 64891a0eb28db934898420d80ca07cb3, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4361801158873524, guid: 64891a0eb28db934898420d80ca07cb3, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: -90 + objectReference: {fileID: 0} + - target: {fileID: 4361801158873524, guid: 64891a0eb28db934898420d80ca07cb3, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4361801158873524, guid: 64891a0eb28db934898420d80ca07cb3, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 64891a0eb28db934898420d80ca07cb3, type: 3} +--- !u!4 &6349448974718639232 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4361801158873524, guid: 64891a0eb28db934898420d80ca07cb3, + type: 3} + m_PrefabInstance: {fileID: 6346338489469324596} + m_PrefabAsset: {fileID: 0} +--- !u!114 &3919473840829643297 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 7959687425165588245, guid: 64891a0eb28db934898420d80ca07cb3, + type: 3} + m_PrefabInstance: {fileID: 6346338489469324596} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1281fe44325f9b548aa42dc331b17266, type: 3} + m_Name: + m_EditorClassIdentifier: diff --git a/Assets/Resources/Prefabs/Weapons/MIRV-1.prefab.meta b/Assets/Resources/Prefabs/Weapons/MIRV-1.prefab.meta new file mode 100644 index 000000000..5c5839fff --- /dev/null +++ b/Assets/Resources/Prefabs/Weapons/MIRV-1.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: b024cfd7ea2feba4a9e3a749df8c6791 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Prefabs/Weapons/MIRV-2.prefab b/Assets/Resources/Prefabs/Weapons/MIRV-2.prefab new file mode 100644 index 000000000..d1703e139 --- /dev/null +++ b/Assets/Resources/Prefabs/Weapons/MIRV-2.prefab @@ -0,0 +1,14945 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &1818218625107927546 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3019734325911159152} + - component: {fileID: 460210518454378304} + - component: {fileID: 5863197320400809791} + m_Layer: 0 + m_Name: Child Missile (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3019734325911159152 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1818218625107927546} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 758271817841168523} + m_Father: {fileID: 5148235482537864796} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &460210518454378304 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1818218625107927546} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1281fe44325f9b548aa42dc331b17266, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &5863197320400809791 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1818218625107927546} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 56c973b8f3781c848b6530c2e7efce05, type: 3} + m_Name: + m_EditorClassIdentifier: + HitEffect: {fileID: 3919473840829643297} + ChildProjectile: {fileID: 0} + Children: 0 + SplitTime: 0.75 + SplitSeparationForwardness: 0.8 + SplitSeparationVelocity: 0.666 + Particles: {fileID: 4706592574721084539} + FadeOutTime: 1 + ThrustCurve: + serializedVersion: 2 + m_Curve: [] + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + GuidanceCurve: + serializedVersion: 2 + m_Curve: [] + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + LiftCurve: + serializedVersion: 2 + m_Curve: [] + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + Frequency: 0 + Thrust: 0 + TopSpeed: 0 + Source: {fileID: 0} +--- !u!1 &2200213683735813174 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2200213683735813172} + - component: {fileID: 2698694499776308069} + - component: {fileID: 2200213683735813173} + m_Layer: 0 + m_Name: MIRV Torpedo + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2200213683735813172 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2200213683735813174} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 2200213684891960496} + m_Father: {fileID: 5148235482537864796} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &2698694499776308069 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2200213683735813174} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1281fe44325f9b548aa42dc331b17266, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &2200213683735813173 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2200213683735813174} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 56c973b8f3781c848b6530c2e7efce05, type: 3} + m_Name: + m_EditorClassIdentifier: + HitEffect: {fileID: 3919473840829643297} + ChildProjectile: {fileID: 4168716527889869138} + Children: 4 + SplitTime: 0.333 + SplitSeparationForwardness: 0.75 + SplitSeparationVelocity: 0.5 + Particles: {fileID: 2200213684891960502} + FadeOutTime: 1 + ThrustCurve: + serializedVersion: 2 + m_Curve: [] + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + GuidanceCurve: + serializedVersion: 2 + m_Curve: [] + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + LiftCurve: + serializedVersion: 2 + m_Curve: [] + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + Frequency: 0 + Thrust: 0 + TopSpeed: 0 + Source: {fileID: 0} +--- !u!1 &2200213684891960497 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2200213684891960496} + - component: {fileID: 2200213684891960502} + - component: {fileID: 2200213684891960503} + m_Layer: 0 + m_Name: Particle System + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2200213684891960496 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2200213684891960497} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 2200213683735813172} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: -90, y: 0, z: 0} +--- !u!198 &2200213684891960502 +ParticleSystem: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2200213684891960497} + serializedVersion: 7 + lengthInSec: 5 + simulationSpeed: 1 + stopAction: 0 + cullingMode: 0 + ringBufferMode: 0 + ringBufferLoopRange: {x: 0, y: 1} + looping: 1 + prewarm: 0 + playOnAwake: 1 + useUnscaledTime: 0 + autoRandomSeed: 1 + useRigidbodyForVelocity: 1 + startDelay: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + moveWithTransform: 1 + moveWithCustomTransform: {fileID: 0} + scalingMode: 1 + randomSeed: 0 + InitialModule: + serializedVersion: 3 + enabled: 1 + startLifetime: + serializedVersion: 2 + minMaxState: 0 + scalar: 2 + minScalar: 5 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startSpeed: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 5 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startColor: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + startSize: + serializedVersion: 2 + minMaxState: 0 + scalar: 10 + minScalar: 3 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startSizeY: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startSizeZ: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startRotationX: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startRotationY: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startRotation: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + randomizeRotationDirection: 0 + maxNumParticles: 1000 + size3D: 0 + rotation3D: 0 + gravityModifier: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + ShapeModule: + serializedVersion: 6 + enabled: 0 + type: 4 + angle: 25 + length: 5 + boxThickness: {x: 0, y: 0, z: 0} + radiusThickness: 1 + donutRadius: 0.2 + m_Position: {x: 0, y: 0, z: 0} + m_Rotation: {x: 0, y: 0, z: 0} + m_Scale: {x: 1, y: 1, z: 1} + placementMode: 0 + m_MeshMaterialIndex: 0 + m_MeshNormalOffset: 0 + m_MeshSpawn: + mode: 0 + spread: 0 + speed: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Mesh: {fileID: 0} + m_MeshRenderer: {fileID: 0} + m_SkinnedMeshRenderer: {fileID: 0} + m_Sprite: {fileID: 0} + m_SpriteRenderer: {fileID: 0} + m_UseMeshMaterialIndex: 0 + m_UseMeshColors: 1 + alignToDirection: 0 + m_Texture: {fileID: 0} + m_TextureClipChannel: 3 + m_TextureClipThreshold: 0 + m_TextureUVChannel: 0 + m_TextureColorAffectsParticles: 1 + m_TextureAlphaAffectsParticles: 1 + m_TextureBilinearFiltering: 0 + randomDirectionAmount: 0 + sphericalDirectionAmount: 0 + randomPositionAmount: 0 + radius: + value: 1 + mode: 0 + spread: 0 + speed: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + arc: + value: 360 + mode: 0 + spread: 0 + speed: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + EmissionModule: + enabled: 1 + serializedVersion: 4 + rateOverTime: + serializedVersion: 2 + minMaxState: 0 + scalar: 500 + minScalar: 10 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + rateOverDistance: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_BurstCount: 0 + m_Bursts: [] + SizeModule: + enabled: 0 + curve: + serializedVersion: 2 + minMaxState: 1 + scalar: 4 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 2 + outSlope: 2 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 0.15039083 + value: 0.97053653 + inSlope: -0.04036486 + outSlope: -0.04036486 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.37395254 + value: 0.1353639 + inSlope: 0.03037455 + outSlope: 0.03037455 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.50258505 + - serializedVersion: 3 + time: 0.5234933 + value: 0.965686 + inSlope: -0.015838688 + outSlope: -0.015838688 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.5332359 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.80144876 + value: 0.13683647 + inSlope: 0.11682253 + outSlope: 0.11682253 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + RotationModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + curve: + serializedVersion: 2 + minMaxState: 0 + scalar: 0.7853982 + minScalar: 0.7853982 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + ColorModule: + enabled: 0 + gradient: + serializedVersion: 2 + minMaxState: 1 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + UVModule: + serializedVersion: 2 + enabled: 0 + mode: 0 + timeMode: 1 + fps: 30 + frameOverTime: + serializedVersion: 2 + minMaxState: 1 + scalar: 0.9999 + minScalar: 0.9999 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startFrame: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + speedRange: {x: 0, y: 1} + tilesX: 5 + tilesY: 5 + animationType: 0 + rowIndex: 0 + cycles: 1 + uvChannelMask: -1 + rowMode: 1 + sprites: + - sprite: {fileID: 0} + flipU: 0 + flipV: 0 + VelocityModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalX: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalY: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalZ: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalOffsetX: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalOffsetY: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalOffsetZ: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + radial: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + speedModifier: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + inWorldSpace: 0 + InheritVelocityModule: + enabled: 0 + m_Mode: 0 + m_Curve: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + LifetimeByEmitterSpeedModule: + enabled: 0 + m_Curve: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: -0.8 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0.2 + inSlope: -0.8 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Range: {x: 0, y: 1} + ForceModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + inWorldSpace: 0 + randomizePerFrame: 0 + ExternalForcesModule: + serializedVersion: 2 + enabled: 0 + multiplierCurve: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + influenceFilter: 0 + influenceMask: + serializedVersion: 2 + m_Bits: 4294967295 + influenceList: [] + ClampVelocityModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + magnitude: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxis: 0 + inWorldSpace: 0 + multiplyDragByParticleSize: 1 + multiplyDragByParticleVelocity: 1 + dampen: 0 + drag: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + NoiseModule: + enabled: 1 + strength: + serializedVersion: 2 + minMaxState: 1 + scalar: 5 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: -1 + outSlope: -1 + tangentMode: 34 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: -1 + outSlope: -1 + tangentMode: 34 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + strengthY: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + strengthZ: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + frequency: 0.01 + damping: 1 + octaves: 1 + octaveMultiplier: 0.5 + octaveScale: 2 + quality: 2 + scrollSpeed: + serializedVersion: 2 + minMaxState: 0 + scalar: 0.1 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remap: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: -1 + inSlope: 0 + outSlope: 2 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 2 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remapY: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: -1 + inSlope: 0 + outSlope: 2 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 2 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remapZ: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: -1 + inSlope: 0 + outSlope: 2 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 2 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remapEnabled: 0 + positionAmount: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + rotationAmount: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + sizeAmount: + serializedVersion: 2 + minMaxState: 0 + scalar: 0.1 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + SizeBySpeedModule: + enabled: 0 + curve: + serializedVersion: 2 + minMaxState: 1 + scalar: 5 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 1 + outSlope: 1 + tangentMode: 34 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 1 + tangentMode: 34 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + range: {x: 0, y: 1} + separateAxes: 0 + RotationBySpeedModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + curve: + serializedVersion: 2 + minMaxState: 0 + scalar: 0.7853982 + minScalar: 0.7853982 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + range: {x: 0, y: 1} + ColorBySpeedModule: + enabled: 0 + gradient: + serializedVersion: 2 + minMaxState: 1 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + range: {x: 0, y: 1} + CollisionModule: + enabled: 0 + serializedVersion: 4 + type: 0 + collisionMode: 0 + colliderForce: 0 + multiplyColliderForceByParticleSize: 0 + multiplyColliderForceByParticleSpeed: 0 + multiplyColliderForceByCollisionAngle: 1 + m_Planes: + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + m_Dampen: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Bounce: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_EnergyLossOnCollision: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minKillSpeed: 0 + maxKillSpeed: 10000 + radiusScale: 1 + collidesWith: + serializedVersion: 2 + m_Bits: 4294967295 + maxCollisionShapes: 256 + quality: 0 + voxelSize: 0.5 + collisionMessages: 0 + collidesWithDynamic: 1 + interiorCollisions: 0 + TriggerModule: + enabled: 0 + serializedVersion: 2 + inside: 1 + outside: 0 + enter: 0 + exit: 0 + colliderQueryMode: 0 + radiusScale: 1 + primitives: + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + SubModule: + serializedVersion: 2 + enabled: 0 + subEmitters: + - serializedVersion: 3 + emitter: {fileID: 0} + type: 0 + properties: 0 + emitProbability: 1 + LightsModule: + enabled: 0 + ratio: 0 + light: {fileID: 0} + randomDistribution: 1 + color: 1 + range: 1 + intensity: 1 + rangeCurve: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + intensityCurve: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + maxLights: 20 + TrailModule: + enabled: 1 + mode: 1 + ratio: 1 + lifetime: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minVertexDistance: 0.2 + textureMode: 0 + ribbonCount: 1 + shadowBias: 0.5 + worldSpace: 0 + dieWithParticles: 1 + sizeAffectsWidth: 1 + sizeAffectsLifetime: 0 + inheritParticleColor: 1 + generateLightingData: 0 + splitSubEmitterRibbons: 0 + attachRibbonsToTransform: 1 + colorOverLifetime: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + widthOverTrail: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: -0.84615326 + outSlope: -0.84615326 + tangentMode: 34 + weightedMode: 0 + inWeight: 0 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0.15384674 + inSlope: -0.84615326 + outSlope: -0.84615326 + tangentMode: 34 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + colorOverTrail: + serializedVersion: 2 + minMaxState: 1 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 0, g: 0, b: 0, a: 0} + key1: {r: 0.01, g: 0.01, b: 0.01, a: 1} + key2: {r: 1, g: 0.092499994, b: 0.00999999, a: 1} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 40557 + ctime2: 65535 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 8192 + atime2: 65535 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 3 + m_NumAlphaKeys: 3 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + CustomDataModule: + enabled: 0 + mode0: 1 + vectorComponentCount0: 2 + color0: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + colorLabel0: Color + vector0_0: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_0: X + vector0_1: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_1: Y + vector0_2: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_2: Z + vector0_3: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_3: W + mode1: 0 + vectorComponentCount1: 4 + color1: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + colorLabel1: Color + vector1_0: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_0: X + vector1_1: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_1: Y + vector1_2: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_2: Z + vector1_3: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_3: W +--- !u!199 &2200213684891960503 +ParticleSystemRenderer: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2200213684891960497} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10308, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 2100000, guid: 483c8decd432d5e49ac166734cdd9d37, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_RenderMode: 5 + m_SortMode: 0 + m_MinParticleSize: 0 + m_MaxParticleSize: 0.5 + m_CameraVelocityScale: 0 + m_VelocityScale: 0 + m_LengthScale: 2 + m_SortingFudge: 0 + m_NormalDirection: 1 + m_ShadowBias: 0 + m_RenderAlignment: 0 + m_Pivot: {x: 0, y: 0, z: 0} + m_Flip: {x: 0, y: 0, z: 0} + m_UseCustomVertexStreams: 0 + m_EnableGPUInstancing: 1 + m_ApplyActiveColorSpace: 1 + m_AllowRoll: 1 + m_FreeformStretching: 0 + m_RotateWithStretchDirection: 1 + m_VertexStreams: 00010304 + m_Mesh: {fileID: 0} + m_Mesh1: {fileID: 0} + m_Mesh2: {fileID: 0} + m_Mesh3: {fileID: 0} + m_MaskInteraction: 0 +--- !u!1 &3015547693297330586 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5148235482537864796} + - component: {fileID: 8540408454168213454} + m_Layer: 0 + m_Name: MIRV-2 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &5148235482537864796 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3015547693297330586} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 2200213683735813172} + - {fileID: 5809341335623671595} + - {fileID: 3019734325911159152} + - {fileID: 6349448974718639232} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &8540408454168213454 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3015547693297330586} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ee3949bbc28566148b9f661741b6e25d, type: 3} + m_Name: + m_EditorClassIdentifier: + ProjectilePrototype: {fileID: 2698694499776308069} +--- !u!1 &5918150675599634023 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5809341335623671595} + - component: {fileID: 4168716527889869138} + - component: {fileID: 4754867723766222547} + m_Layer: 0 + m_Name: Child Missile + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &5809341335623671595 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5918150675599634023} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 6049529209865607864} + m_Father: {fileID: 5148235482537864796} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &4168716527889869138 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5918150675599634023} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1281fe44325f9b548aa42dc331b17266, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &4754867723766222547 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5918150675599634023} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 56c973b8f3781c848b6530c2e7efce05, type: 3} + m_Name: + m_EditorClassIdentifier: + HitEffect: {fileID: 3919473840829643297} + ChildProjectile: {fileID: 460210518454378304} + Children: 4 + SplitTime: 0.666 + SplitSeparationForwardness: 0.8 + SplitSeparationVelocity: 0.666 + Particles: {fileID: 5975501607892293245} + FadeOutTime: 1 + ThrustCurve: + serializedVersion: 2 + m_Curve: [] + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + GuidanceCurve: + serializedVersion: 2 + m_Curve: [] + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + LiftCurve: + serializedVersion: 2 + m_Curve: [] + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + Frequency: 0 + Thrust: 0 + TopSpeed: 0 + Source: {fileID: 0} +--- !u!1 &7748563760128711297 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 758271817841168523} + - component: {fileID: 4706592574721084539} + - component: {fileID: 3745955764450875543} + m_Layer: 0 + m_Name: Particle System + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &758271817841168523 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7748563760128711297} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 3019734325911159152} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: -90, y: 0, z: 0} +--- !u!198 &4706592574721084539 +ParticleSystem: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7748563760128711297} + serializedVersion: 7 + lengthInSec: 5 + simulationSpeed: 1 + stopAction: 0 + cullingMode: 0 + ringBufferMode: 0 + ringBufferLoopRange: {x: 0, y: 1} + looping: 1 + prewarm: 0 + playOnAwake: 1 + useUnscaledTime: 0 + autoRandomSeed: 1 + useRigidbodyForVelocity: 1 + startDelay: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + moveWithTransform: 1 + moveWithCustomTransform: {fileID: 0} + scalingMode: 1 + randomSeed: 0 + InitialModule: + serializedVersion: 3 + enabled: 1 + startLifetime: + serializedVersion: 2 + minMaxState: 0 + scalar: 2 + minScalar: 5 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startSpeed: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 5 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startColor: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + startSize: + serializedVersion: 2 + minMaxState: 0 + scalar: 3 + minScalar: 3 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startSizeY: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startSizeZ: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startRotationX: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startRotationY: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startRotation: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + randomizeRotationDirection: 0 + maxNumParticles: 1000 + size3D: 0 + rotation3D: 0 + gravityModifier: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + ShapeModule: + serializedVersion: 6 + enabled: 0 + type: 4 + angle: 25 + length: 5 + boxThickness: {x: 0, y: 0, z: 0} + radiusThickness: 1 + donutRadius: 0.2 + m_Position: {x: 0, y: 0, z: 0} + m_Rotation: {x: 0, y: 0, z: 0} + m_Scale: {x: 1, y: 1, z: 1} + placementMode: 0 + m_MeshMaterialIndex: 0 + m_MeshNormalOffset: 0 + m_MeshSpawn: + mode: 0 + spread: 0 + speed: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Mesh: {fileID: 0} + m_MeshRenderer: {fileID: 0} + m_SkinnedMeshRenderer: {fileID: 0} + m_Sprite: {fileID: 0} + m_SpriteRenderer: {fileID: 0} + m_UseMeshMaterialIndex: 0 + m_UseMeshColors: 1 + alignToDirection: 0 + m_Texture: {fileID: 0} + m_TextureClipChannel: 3 + m_TextureClipThreshold: 0 + m_TextureUVChannel: 0 + m_TextureColorAffectsParticles: 1 + m_TextureAlphaAffectsParticles: 1 + m_TextureBilinearFiltering: 0 + randomDirectionAmount: 0 + sphericalDirectionAmount: 0 + randomPositionAmount: 0 + radius: + value: 1 + mode: 0 + spread: 0 + speed: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + arc: + value: 360 + mode: 0 + spread: 0 + speed: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + EmissionModule: + enabled: 1 + serializedVersion: 4 + rateOverTime: + serializedVersion: 2 + minMaxState: 0 + scalar: 500 + minScalar: 10 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + rateOverDistance: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_BurstCount: 0 + m_Bursts: [] + SizeModule: + enabled: 0 + curve: + serializedVersion: 2 + minMaxState: 1 + scalar: 4 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 2 + outSlope: 2 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 0.15039083 + value: 0.97053653 + inSlope: -0.04036486 + outSlope: -0.04036486 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.37395254 + value: 0.1353639 + inSlope: 0.03037455 + outSlope: 0.03037455 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.50258505 + - serializedVersion: 3 + time: 0.5234933 + value: 0.965686 + inSlope: -0.015838688 + outSlope: -0.015838688 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.5332359 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.80144876 + value: 0.13683647 + inSlope: 0.11682253 + outSlope: 0.11682253 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + RotationModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + curve: + serializedVersion: 2 + minMaxState: 0 + scalar: 0.7853982 + minScalar: 0.7853982 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + ColorModule: + enabled: 0 + gradient: + serializedVersion: 2 + minMaxState: 1 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + UVModule: + serializedVersion: 2 + enabled: 0 + mode: 0 + timeMode: 1 + fps: 30 + frameOverTime: + serializedVersion: 2 + minMaxState: 1 + scalar: 0.9999 + minScalar: 0.9999 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startFrame: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + speedRange: {x: 0, y: 1} + tilesX: 5 + tilesY: 5 + animationType: 0 + rowIndex: 0 + cycles: 1 + uvChannelMask: -1 + rowMode: 1 + sprites: + - sprite: {fileID: 0} + flipU: 0 + flipV: 0 + VelocityModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalX: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalY: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalZ: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalOffsetX: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalOffsetY: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalOffsetZ: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + radial: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + speedModifier: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + inWorldSpace: 0 + InheritVelocityModule: + enabled: 0 + m_Mode: 0 + m_Curve: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + LifetimeByEmitterSpeedModule: + enabled: 0 + m_Curve: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: -0.8 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0.2 + inSlope: -0.8 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Range: {x: 0, y: 1} + ForceModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + inWorldSpace: 0 + randomizePerFrame: 0 + ExternalForcesModule: + serializedVersion: 2 + enabled: 0 + multiplierCurve: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + influenceFilter: 0 + influenceMask: + serializedVersion: 2 + m_Bits: 4294967295 + influenceList: [] + ClampVelocityModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + magnitude: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxis: 0 + inWorldSpace: 0 + multiplyDragByParticleSize: 1 + multiplyDragByParticleVelocity: 1 + dampen: 0 + drag: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + NoiseModule: + enabled: 1 + strength: + serializedVersion: 2 + minMaxState: 1 + scalar: 5 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: -1 + outSlope: -1 + tangentMode: 34 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: -1 + outSlope: -1 + tangentMode: 34 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + strengthY: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + strengthZ: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + frequency: 0.01 + damping: 1 + octaves: 1 + octaveMultiplier: 0.5 + octaveScale: 2 + quality: 2 + scrollSpeed: + serializedVersion: 2 + minMaxState: 0 + scalar: 0.1 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remap: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: -1 + inSlope: 0 + outSlope: 2 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 2 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remapY: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: -1 + inSlope: 0 + outSlope: 2 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 2 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remapZ: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: -1 + inSlope: 0 + outSlope: 2 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 2 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remapEnabled: 0 + positionAmount: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + rotationAmount: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + sizeAmount: + serializedVersion: 2 + minMaxState: 0 + scalar: 0.1 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + SizeBySpeedModule: + enabled: 0 + curve: + serializedVersion: 2 + minMaxState: 1 + scalar: 5 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 1 + outSlope: 1 + tangentMode: 34 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 1 + tangentMode: 34 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + range: {x: 0, y: 1} + separateAxes: 0 + RotationBySpeedModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + curve: + serializedVersion: 2 + minMaxState: 0 + scalar: 0.7853982 + minScalar: 0.7853982 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + range: {x: 0, y: 1} + ColorBySpeedModule: + enabled: 0 + gradient: + serializedVersion: 2 + minMaxState: 1 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + range: {x: 0, y: 1} + CollisionModule: + enabled: 0 + serializedVersion: 4 + type: 0 + collisionMode: 0 + colliderForce: 0 + multiplyColliderForceByParticleSize: 0 + multiplyColliderForceByParticleSpeed: 0 + multiplyColliderForceByCollisionAngle: 1 + m_Planes: + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + m_Dampen: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Bounce: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_EnergyLossOnCollision: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minKillSpeed: 0 + maxKillSpeed: 10000 + radiusScale: 1 + collidesWith: + serializedVersion: 2 + m_Bits: 4294967295 + maxCollisionShapes: 256 + quality: 0 + voxelSize: 0.5 + collisionMessages: 0 + collidesWithDynamic: 1 + interiorCollisions: 0 + TriggerModule: + enabled: 0 + serializedVersion: 2 + inside: 1 + outside: 0 + enter: 0 + exit: 0 + colliderQueryMode: 0 + radiusScale: 1 + primitives: + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + SubModule: + serializedVersion: 2 + enabled: 0 + subEmitters: + - serializedVersion: 3 + emitter: {fileID: 0} + type: 0 + properties: 0 + emitProbability: 1 + LightsModule: + enabled: 0 + ratio: 0 + light: {fileID: 0} + randomDistribution: 1 + color: 1 + range: 1 + intensity: 1 + rangeCurve: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + intensityCurve: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + maxLights: 20 + TrailModule: + enabled: 1 + mode: 1 + ratio: 1 + lifetime: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minVertexDistance: 0.2 + textureMode: 0 + ribbonCount: 1 + shadowBias: 0.5 + worldSpace: 0 + dieWithParticles: 1 + sizeAffectsWidth: 1 + sizeAffectsLifetime: 0 + inheritParticleColor: 1 + generateLightingData: 0 + splitSubEmitterRibbons: 0 + attachRibbonsToTransform: 1 + colorOverLifetime: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + widthOverTrail: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: -1 + outSlope: -1 + tangentMode: 34 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: -1 + outSlope: -1 + tangentMode: 34 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + colorOverTrail: + serializedVersion: 2 + minMaxState: 1 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 0, g: 0, b: 0, a: 0} + key1: {r: 0.01, g: 0.01, b: 0.01, a: 1} + key2: {r: 1, g: 0.092499994, b: 0.00999999, a: 1} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 40557 + ctime2: 65535 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 8192 + atime2: 65535 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 3 + m_NumAlphaKeys: 3 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + CustomDataModule: + enabled: 0 + mode0: 1 + vectorComponentCount0: 2 + color0: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + colorLabel0: Color + vector0_0: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_0: X + vector0_1: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_1: Y + vector0_2: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_2: Z + vector0_3: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_3: W + mode1: 0 + vectorComponentCount1: 4 + color1: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + colorLabel1: Color + vector1_0: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_0: X + vector1_1: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_1: Y + vector1_2: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_2: Z + vector1_3: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_3: W +--- !u!199 &3745955764450875543 +ParticleSystemRenderer: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7748563760128711297} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10308, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 2100000, guid: 7ee57157df7b89d42b11299114860571, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_RenderMode: 5 + m_SortMode: 0 + m_MinParticleSize: 0 + m_MaxParticleSize: 0.5 + m_CameraVelocityScale: 0 + m_VelocityScale: 0 + m_LengthScale: 2 + m_SortingFudge: 0 + m_NormalDirection: 1 + m_ShadowBias: 0 + m_RenderAlignment: 0 + m_Pivot: {x: 0, y: 0, z: 0} + m_Flip: {x: 0, y: 0, z: 0} + m_UseCustomVertexStreams: 0 + m_EnableGPUInstancing: 1 + m_ApplyActiveColorSpace: 1 + m_AllowRoll: 1 + m_FreeformStretching: 0 + m_RotateWithStretchDirection: 1 + m_VertexStreams: 00010304 + m_Mesh: {fileID: 0} + m_Mesh1: {fileID: 0} + m_Mesh2: {fileID: 0} + m_Mesh3: {fileID: 0} + m_MaskInteraction: 0 +--- !u!1 &8553191576142351254 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6049529209865607864} + - component: {fileID: 5975501607892293245} + - component: {fileID: 8629497489299652644} + m_Layer: 0 + m_Name: Particle System + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &6049529209865607864 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8553191576142351254} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 5809341335623671595} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: -90, y: 0, z: 0} +--- !u!198 &5975501607892293245 +ParticleSystem: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8553191576142351254} + serializedVersion: 7 + lengthInSec: 5 + simulationSpeed: 1 + stopAction: 0 + cullingMode: 0 + ringBufferMode: 0 + ringBufferLoopRange: {x: 0, y: 1} + looping: 1 + prewarm: 0 + playOnAwake: 1 + useUnscaledTime: 0 + autoRandomSeed: 1 + useRigidbodyForVelocity: 1 + startDelay: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + moveWithTransform: 1 + moveWithCustomTransform: {fileID: 0} + scalingMode: 1 + randomSeed: 0 + InitialModule: + serializedVersion: 3 + enabled: 1 + startLifetime: + serializedVersion: 2 + minMaxState: 0 + scalar: 2 + minScalar: 5 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startSpeed: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 5 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startColor: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + startSize: + serializedVersion: 2 + minMaxState: 0 + scalar: 3 + minScalar: 3 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startSizeY: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startSizeZ: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startRotationX: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startRotationY: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startRotation: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + randomizeRotationDirection: 0 + maxNumParticles: 1000 + size3D: 0 + rotation3D: 0 + gravityModifier: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + ShapeModule: + serializedVersion: 6 + enabled: 0 + type: 4 + angle: 25 + length: 5 + boxThickness: {x: 0, y: 0, z: 0} + radiusThickness: 1 + donutRadius: 0.2 + m_Position: {x: 0, y: 0, z: 0} + m_Rotation: {x: 0, y: 0, z: 0} + m_Scale: {x: 1, y: 1, z: 1} + placementMode: 0 + m_MeshMaterialIndex: 0 + m_MeshNormalOffset: 0 + m_MeshSpawn: + mode: 0 + spread: 0 + speed: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Mesh: {fileID: 0} + m_MeshRenderer: {fileID: 0} + m_SkinnedMeshRenderer: {fileID: 0} + m_Sprite: {fileID: 0} + m_SpriteRenderer: {fileID: 0} + m_UseMeshMaterialIndex: 0 + m_UseMeshColors: 1 + alignToDirection: 0 + m_Texture: {fileID: 0} + m_TextureClipChannel: 3 + m_TextureClipThreshold: 0 + m_TextureUVChannel: 0 + m_TextureColorAffectsParticles: 1 + m_TextureAlphaAffectsParticles: 1 + m_TextureBilinearFiltering: 0 + randomDirectionAmount: 0 + sphericalDirectionAmount: 0 + randomPositionAmount: 0 + radius: + value: 1 + mode: 0 + spread: 0 + speed: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + arc: + value: 360 + mode: 0 + spread: 0 + speed: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + EmissionModule: + enabled: 1 + serializedVersion: 4 + rateOverTime: + serializedVersion: 2 + minMaxState: 0 + scalar: 500 + minScalar: 10 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + rateOverDistance: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_BurstCount: 0 + m_Bursts: [] + SizeModule: + enabled: 0 + curve: + serializedVersion: 2 + minMaxState: 1 + scalar: 4 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 2 + outSlope: 2 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 0.15039083 + value: 0.97053653 + inSlope: -0.04036486 + outSlope: -0.04036486 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.37395254 + value: 0.1353639 + inSlope: 0.03037455 + outSlope: 0.03037455 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.50258505 + - serializedVersion: 3 + time: 0.5234933 + value: 0.965686 + inSlope: -0.015838688 + outSlope: -0.015838688 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.5332359 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.80144876 + value: 0.13683647 + inSlope: 0.11682253 + outSlope: 0.11682253 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + RotationModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + curve: + serializedVersion: 2 + minMaxState: 0 + scalar: 0.7853982 + minScalar: 0.7853982 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + ColorModule: + enabled: 0 + gradient: + serializedVersion: 2 + minMaxState: 1 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + UVModule: + serializedVersion: 2 + enabled: 0 + mode: 0 + timeMode: 1 + fps: 30 + frameOverTime: + serializedVersion: 2 + minMaxState: 1 + scalar: 0.9999 + minScalar: 0.9999 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startFrame: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + speedRange: {x: 0, y: 1} + tilesX: 5 + tilesY: 5 + animationType: 0 + rowIndex: 0 + cycles: 1 + uvChannelMask: -1 + rowMode: 1 + sprites: + - sprite: {fileID: 0} + flipU: 0 + flipV: 0 + VelocityModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalX: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalY: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalZ: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalOffsetX: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalOffsetY: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalOffsetZ: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + radial: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + speedModifier: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + inWorldSpace: 0 + InheritVelocityModule: + enabled: 0 + m_Mode: 0 + m_Curve: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + LifetimeByEmitterSpeedModule: + enabled: 0 + m_Curve: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: -0.8 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0.2 + inSlope: -0.8 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Range: {x: 0, y: 1} + ForceModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + inWorldSpace: 0 + randomizePerFrame: 0 + ExternalForcesModule: + serializedVersion: 2 + enabled: 0 + multiplierCurve: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + influenceFilter: 0 + influenceMask: + serializedVersion: 2 + m_Bits: 4294967295 + influenceList: [] + ClampVelocityModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + magnitude: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxis: 0 + inWorldSpace: 0 + multiplyDragByParticleSize: 1 + multiplyDragByParticleVelocity: 1 + dampen: 0 + drag: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + NoiseModule: + enabled: 1 + strength: + serializedVersion: 2 + minMaxState: 1 + scalar: 5 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: -1 + outSlope: -1 + tangentMode: 34 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: -1 + outSlope: -1 + tangentMode: 34 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + strengthY: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + strengthZ: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + frequency: 0.01 + damping: 1 + octaves: 1 + octaveMultiplier: 0.5 + octaveScale: 2 + quality: 2 + scrollSpeed: + serializedVersion: 2 + minMaxState: 0 + scalar: 0.1 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remap: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: -1 + inSlope: 0 + outSlope: 2 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 2 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remapY: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: -1 + inSlope: 0 + outSlope: 2 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 2 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remapZ: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: -1 + inSlope: 0 + outSlope: 2 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 2 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remapEnabled: 0 + positionAmount: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + rotationAmount: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + sizeAmount: + serializedVersion: 2 + minMaxState: 0 + scalar: 0.1 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + SizeBySpeedModule: + enabled: 0 + curve: + serializedVersion: 2 + minMaxState: 1 + scalar: 5 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 1 + outSlope: 1 + tangentMode: 34 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 1 + tangentMode: 34 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + range: {x: 0, y: 1} + separateAxes: 0 + RotationBySpeedModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + curve: + serializedVersion: 2 + minMaxState: 0 + scalar: 0.7853982 + minScalar: 0.7853982 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + range: {x: 0, y: 1} + ColorBySpeedModule: + enabled: 0 + gradient: + serializedVersion: 2 + minMaxState: 1 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + range: {x: 0, y: 1} + CollisionModule: + enabled: 0 + serializedVersion: 4 + type: 0 + collisionMode: 0 + colliderForce: 0 + multiplyColliderForceByParticleSize: 0 + multiplyColliderForceByParticleSpeed: 0 + multiplyColliderForceByCollisionAngle: 1 + m_Planes: + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + m_Dampen: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Bounce: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_EnergyLossOnCollision: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minKillSpeed: 0 + maxKillSpeed: 10000 + radiusScale: 1 + collidesWith: + serializedVersion: 2 + m_Bits: 4294967295 + maxCollisionShapes: 256 + quality: 0 + voxelSize: 0.5 + collisionMessages: 0 + collidesWithDynamic: 1 + interiorCollisions: 0 + TriggerModule: + enabled: 0 + serializedVersion: 2 + inside: 1 + outside: 0 + enter: 0 + exit: 0 + colliderQueryMode: 0 + radiusScale: 1 + primitives: + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + SubModule: + serializedVersion: 2 + enabled: 0 + subEmitters: + - serializedVersion: 3 + emitter: {fileID: 0} + type: 0 + properties: 0 + emitProbability: 1 + LightsModule: + enabled: 0 + ratio: 0 + light: {fileID: 0} + randomDistribution: 1 + color: 1 + range: 1 + intensity: 1 + rangeCurve: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + intensityCurve: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + maxLights: 20 + TrailModule: + enabled: 1 + mode: 1 + ratio: 1 + lifetime: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minVertexDistance: 0.2 + textureMode: 0 + ribbonCount: 1 + shadowBias: 0.5 + worldSpace: 0 + dieWithParticles: 1 + sizeAffectsWidth: 1 + sizeAffectsLifetime: 0 + inheritParticleColor: 1 + generateLightingData: 0 + splitSubEmitterRibbons: 0 + attachRibbonsToTransform: 1 + colorOverLifetime: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + widthOverTrail: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: -1 + outSlope: -1 + tangentMode: 34 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: -1 + outSlope: -1 + tangentMode: 34 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + colorOverTrail: + serializedVersion: 2 + minMaxState: 1 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 0, g: 0, b: 0, a: 0} + key1: {r: 0.01, g: 0.01, b: 0.01, a: 1} + key2: {r: 1, g: 0.092499994, b: 0.00999999, a: 1} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 40557 + ctime2: 65535 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 8192 + atime2: 65535 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 3 + m_NumAlphaKeys: 3 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + CustomDataModule: + enabled: 0 + mode0: 1 + vectorComponentCount0: 2 + color0: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + colorLabel0: Color + vector0_0: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_0: X + vector0_1: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_1: Y + vector0_2: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_2: Z + vector0_3: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_3: W + mode1: 0 + vectorComponentCount1: 4 + color1: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + colorLabel1: Color + vector1_0: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_0: X + vector1_1: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_1: Y + vector1_2: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_2: Z + vector1_3: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_3: W +--- !u!199 &8629497489299652644 +ParticleSystemRenderer: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8553191576142351254} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10308, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 2100000, guid: 7ee57157df7b89d42b11299114860571, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_RenderMode: 5 + m_SortMode: 0 + m_MinParticleSize: 0 + m_MaxParticleSize: 0.5 + m_CameraVelocityScale: 0 + m_VelocityScale: 0 + m_LengthScale: 2 + m_SortingFudge: 0 + m_NormalDirection: 1 + m_ShadowBias: 0 + m_RenderAlignment: 0 + m_Pivot: {x: 0, y: 0, z: 0} + m_Flip: {x: 0, y: 0, z: 0} + m_UseCustomVertexStreams: 0 + m_EnableGPUInstancing: 1 + m_ApplyActiveColorSpace: 1 + m_AllowRoll: 1 + m_FreeformStretching: 0 + m_RotateWithStretchDirection: 1 + m_VertexStreams: 00010304 + m_Mesh: {fileID: 0} + m_Mesh1: {fileID: 0} + m_Mesh2: {fileID: 0} + m_Mesh3: {fileID: 0} + m_MaskInteraction: 0 +--- !u!1001 &6346338489469324596 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 5148235482537864796} + m_Modifications: + - target: {fileID: 1828176872806910, guid: 64891a0eb28db934898420d80ca07cb3, type: 3} + propertyPath: m_Name + value: SmallExplosion + objectReference: {fileID: 0} + - target: {fileID: 4361801158873524, guid: 64891a0eb28db934898420d80ca07cb3, type: 3} + propertyPath: m_RootOrder + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 4361801158873524, guid: 64891a0eb28db934898420d80ca07cb3, type: 3} + propertyPath: m_LocalPosition.x + value: -0.50997305 + objectReference: {fileID: 0} + - target: {fileID: 4361801158873524, guid: 64891a0eb28db934898420d80ca07cb3, type: 3} + propertyPath: m_LocalPosition.y + value: 2.57 + objectReference: {fileID: 0} + - target: {fileID: 4361801158873524, guid: 64891a0eb28db934898420d80ca07cb3, type: 3} + propertyPath: m_LocalPosition.z + value: -20.12803 + objectReference: {fileID: 0} + - target: {fileID: 4361801158873524, guid: 64891a0eb28db934898420d80ca07cb3, type: 3} + propertyPath: m_LocalRotation.w + value: 0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 4361801158873524, guid: 64891a0eb28db934898420d80ca07cb3, type: 3} + propertyPath: m_LocalRotation.x + value: -0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 4361801158873524, guid: 64891a0eb28db934898420d80ca07cb3, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4361801158873524, guid: 64891a0eb28db934898420d80ca07cb3, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4361801158873524, guid: 64891a0eb28db934898420d80ca07cb3, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: -90 + objectReference: {fileID: 0} + - target: {fileID: 4361801158873524, guid: 64891a0eb28db934898420d80ca07cb3, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4361801158873524, guid: 64891a0eb28db934898420d80ca07cb3, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 64891a0eb28db934898420d80ca07cb3, type: 3} +--- !u!4 &6349448974718639232 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4361801158873524, guid: 64891a0eb28db934898420d80ca07cb3, + type: 3} + m_PrefabInstance: {fileID: 6346338489469324596} + m_PrefabAsset: {fileID: 0} +--- !u!114 &3919473840829643297 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 7959687425165588245, guid: 64891a0eb28db934898420d80ca07cb3, + type: 3} + m_PrefabInstance: {fileID: 6346338489469324596} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1281fe44325f9b548aa42dc331b17266, type: 3} + m_Name: + m_EditorClassIdentifier: diff --git a/Assets/Resources/Prefabs/Weapons/MIRV-2.prefab.meta b/Assets/Resources/Prefabs/Weapons/MIRV-2.prefab.meta new file mode 100644 index 000000000..90aed6efa --- /dev/null +++ b/Assets/Resources/Prefabs/Weapons/MIRV-2.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: c3bf41490837b2744b4c8198d0a05515 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Prefabs/Weapons/MIRV.prefab b/Assets/Resources/Prefabs/Weapons/MIRV-3.prefab similarity index 100% rename from Assets/Resources/Prefabs/Weapons/MIRV.prefab rename to Assets/Resources/Prefabs/Weapons/MIRV-3.prefab diff --git a/Assets/Resources/Prefabs/Weapons/MIRV.prefab.meta b/Assets/Resources/Prefabs/Weapons/MIRV-3.prefab.meta similarity index 100% rename from Assets/Resources/Prefabs/Weapons/MIRV.prefab.meta rename to Assets/Resources/Prefabs/Weapons/MIRV-3.prefab.meta diff --git a/Assets/Resources/Settings.asset b/Assets/Resources/Settings.asset index 22d1b6ea7..360b140a1 100644 --- a/Assets/Resources/Settings.asset +++ b/Assets/Resources/Settings.asset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:13b8cc1d1b4954fe7f39b91c2bcca411ecdfd756d6d7c4757e5a88ac12197068 +oid sha256:48ed12406c9160150f0ce423e76d76eb1d53eb44a3dfc114286eee8e790af83c size 11391 diff --git a/Assets/Scenes/ARPG.unity b/Assets/Scenes/ARPG.unity index db533fb23..8a52dc6e8 100644 --- a/Assets/Scenes/ARPG.unity +++ b/Assets/Scenes/ARPG.unity @@ -5430,6 +5430,7 @@ MonoBehaviour: VisibilityLabel: {fileID: 858665366} HullDurabilityLabel: {fileID: 2101419019} DistanceLabel: {fileID: 517688448} + SensorCooldownFill: {fileID: 0} EnergyFill: {fileID: 0} HullDurabilityFill: {fileID: 1904825248} HeatstrokeMeterFill: {fileID: 0} @@ -14322,6 +14323,7 @@ RectTransform: - {fileID: 1724695813} - {fileID: 1803753853} - {fileID: 2122035460} + - {fileID: 1943948575} m_Father: {fileID: 1833294217} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -25903,6 +25905,81 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1938407917} m_CullTransparentMesh: 0 +--- !u!1 &1943948574 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1943948575} + - component: {fileID: 1943948577} + - component: {fileID: 1943948576} + m_Layer: 5 + m_Name: Ping Cooldown + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1943948575 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1943948574} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 979798551} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0.28, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1943948576 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1943948574} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0.83333325, b: 1, a: 0.2509804} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1943948577 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1943948574} + m_CullTransparentMesh: 0 --- !u!1 &1952022815 GameObject: m_ObjectHideFlags: 0 @@ -34086,6 +34163,7 @@ MonoBehaviour: VisibilityLabel: {fileID: 2122035461} HullDurabilityLabel: {fileID: 697075017} DistanceLabel: {fileID: 0} + SensorCooldownFill: {fileID: 1943948575} EnergyFill: {fileID: 271575215} HullDurabilityFill: {fileID: 753112995} HeatstrokeMeterFill: {fileID: 1029396711} diff --git a/Assets/Scenes/Main Menu.unity b/Assets/Scenes/Main Menu.unity index ec58486f3..23fd3668d 100644 --- a/Assets/Scenes/Main Menu.unity +++ b/Assets/Scenes/Main Menu.unity @@ -1302,8 +1302,8 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 741153267} - m_LocalRotation: {x: 0.015506899, y: 0.9502416, z: -0.3074132, w: 0.04793321} - m_LocalPosition: {x: -117.52, y: -77.08742, z: 149.09026} + m_LocalRotation: {x: 0.015506903, y: 0.9502416, z: -0.30741313, w: 0.047933225} + m_LocalPosition: {x: -117.51999, y: -77.08743, z: 149.09026} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: - {fileID: 412917866} @@ -1773,8 +1773,8 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 965376321} - m_LocalRotation: {x: 0.015506899, y: 0.9502416, z: -0.3074132, w: 0.04793321} - m_LocalPosition: {x: -117.52, y: -77.08742, z: 149.09026} + m_LocalRotation: {x: 0.015506903, y: 0.9502416, z: -0.30741313, w: 0.047933225} + m_LocalPosition: {x: -117.51999, y: -77.08743, z: 149.09026} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 0} diff --git a/Assets/Scripts/AetheriaInput.cs b/Assets/Scripts/AetheriaInput.cs index cefbd5755..af416db3a 100644 --- a/Assets/Scripts/AetheriaInput.cs +++ b/Assets/Scripts/AetheriaInput.cs @@ -193,6 +193,14 @@ public class @AetheriaInput : IInputActionCollection, IDisposable ""expectedControlType"": ""Button"", ""processors"": """", ""interactions"": """" + }, + { + ""name"": ""Ping"", + ""type"": ""Button"", + ""id"": ""cfc95f69-9b8a-41d5-a071-003b4e292524"", + ""expectedControlType"": ""Button"", + ""processors"": """", + ""interactions"": """" } ], ""bindings"": [ @@ -551,10 +559,10 @@ public class @AetheriaInput : IInputActionCollection, IDisposable { ""name"": """", ""id"": ""6e13d87d-e5bb-4363-b153-1e0c1e21e4eb"", - ""path"": ""/t"", + ""path"": ""/#(Y)"", ""interactions"": """", ""processors"": """", - ""groups"": """", + ""groups"": ""Keyboard&Mouse"", ""action"": ""Target Previous"", ""isComposite"": false, ""isPartOfComposite"": false @@ -562,10 +570,10 @@ public class @AetheriaInput : IInputActionCollection, IDisposable { ""name"": """", ""id"": ""e6e3164c-1b59-4eab-99d9-5a3bc294af0b"", - ""path"": ""/y"", + ""path"": ""/#(U)"", ""interactions"": """", ""processors"": """", - ""groups"": """", + ""groups"": ""Keyboard&Mouse"", ""action"": ""Target Next"", ""isComposite"": false, ""isPartOfComposite"": false @@ -573,7 +581,7 @@ public class @AetheriaInput : IInputActionCollection, IDisposable { ""name"": """", ""id"": ""b55dd143-367d-4842-82c8-593c301bcd69"", - ""path"": ""/u"", + ""path"": ""/#(T)"", ""interactions"": """", ""processors"": """", ""groups"": ""Keyboard&Mouse"", @@ -587,7 +595,7 @@ public class @AetheriaInput : IInputActionCollection, IDisposable ""path"": ""/#(H)"", ""interactions"": """", ""processors"": """", - ""groups"": """", + ""groups"": ""Keyboard&Mouse"", ""action"": ""Toggle Heatsinks"", ""isComposite"": false, ""isPartOfComposite"": false @@ -624,6 +632,17 @@ public class @AetheriaInput : IInputActionCollection, IDisposable ""action"": ""Override Shutdown"", ""isComposite"": false, ""isPartOfComposite"": false + }, + { + ""name"": """", + ""id"": ""baa67cdf-3c91-46dd-965c-12370a897414"", + ""path"": ""/#(X)"", + ""interactions"": """", + ""processors"": """", + ""groups"": ""Keyboard&Mouse"", + ""action"": ""Ping"", + ""isComposite"": false, + ""isPartOfComposite"": false } ] }, @@ -1212,6 +1231,7 @@ public class @AetheriaInput : IInputActionCollection, IDisposable m_Player_EnterWormhole = m_Player.FindAction("EnterWormhole", throwIfNotFound: true); m_Player_ToggleShield = m_Player.FindAction("Toggle Shield", throwIfNotFound: true); m_Player_OverrideShutdown = m_Player.FindAction("Override Shutdown", throwIfNotFound: true); + m_Player_Ping = m_Player.FindAction("Ping", throwIfNotFound: true); // UI m_UI = asset.FindActionMap("UI", throwIfNotFound: true); m_UI_Navigate = m_UI.FindAction("Navigate", throwIfNotFound: true); @@ -1299,6 +1319,7 @@ public class @AetheriaInput : IInputActionCollection, IDisposable private readonly InputAction m_Player_EnterWormhole; private readonly InputAction m_Player_ToggleShield; private readonly InputAction m_Player_OverrideShutdown; + private readonly InputAction m_Player_Ping; public struct PlayerActions { private @AetheriaInput m_Wrapper; @@ -1325,6 +1346,7 @@ public class @AetheriaInput : IInputActionCollection, IDisposable public InputAction @EnterWormhole => m_Wrapper.m_Player_EnterWormhole; public InputAction @ToggleShield => m_Wrapper.m_Player_ToggleShield; public InputAction @OverrideShutdown => m_Wrapper.m_Player_OverrideShutdown; + public InputAction @Ping => m_Wrapper.m_Player_Ping; public InputActionMap Get() { return m_Wrapper.m_Player; } public void Enable() { Get().Enable(); } public void Disable() { Get().Disable(); } @@ -1400,6 +1422,9 @@ public class @AetheriaInput : IInputActionCollection, IDisposable @OverrideShutdown.started -= m_Wrapper.m_PlayerActionsCallbackInterface.OnOverrideShutdown; @OverrideShutdown.performed -= m_Wrapper.m_PlayerActionsCallbackInterface.OnOverrideShutdown; @OverrideShutdown.canceled -= m_Wrapper.m_PlayerActionsCallbackInterface.OnOverrideShutdown; + @Ping.started -= m_Wrapper.m_PlayerActionsCallbackInterface.OnPing; + @Ping.performed -= m_Wrapper.m_PlayerActionsCallbackInterface.OnPing; + @Ping.canceled -= m_Wrapper.m_PlayerActionsCallbackInterface.OnPing; } m_Wrapper.m_PlayerActionsCallbackInterface = instance; if (instance != null) @@ -1470,6 +1495,9 @@ public class @AetheriaInput : IInputActionCollection, IDisposable @OverrideShutdown.started += instance.OnOverrideShutdown; @OverrideShutdown.performed += instance.OnOverrideShutdown; @OverrideShutdown.canceled += instance.OnOverrideShutdown; + @Ping.started += instance.OnPing; + @Ping.performed += instance.OnPing; + @Ping.canceled += instance.OnPing; } } } @@ -1671,6 +1699,7 @@ public class @AetheriaInput : IInputActionCollection, IDisposable void OnEnterWormhole(InputAction.CallbackContext context); void OnToggleShield(InputAction.CallbackContext context); void OnOverrideShutdown(InputAction.CallbackContext context); + void OnPing(InputAction.CallbackContext context); } public interface IUIActions { diff --git a/Assets/Scripts/Gameplay/ActionGameManager.cs b/Assets/Scripts/Gameplay/ActionGameManager.cs index 18f6d5c13..47d706637 100644 --- a/Assets/Scripts/Gameplay/ActionGameManager.cs +++ b/Assets/Scripts/Gameplay/ActionGameManager.cs @@ -283,6 +283,11 @@ public class ActionGameManager : MonoBehaviour CurrentEntity.OverrideShutdown = !CurrentEntity.OverrideShutdown; }; + _input.Player.Ping.performed += context => + { + CurrentEntity.Sensor?.Ping(); + }; + _input.Player.ToggleHeatsinks.performed += context => { CurrentEntity.HeatsinksEnabled = !CurrentEntity.HeatsinksEnabled; @@ -639,6 +644,9 @@ public class ActionGameManager : MonoBehaviour DockingBay = null; DockCamera.enabled = false; FollowCamera.enabled = true; + + if (length(CurrentEntity.Direction) > .1f) + _viewDirection = float3(CurrentEntity.Direction.x,0,CurrentEntity.Direction.y); Cursor.lockState = CursorLockMode.Locked; GameplayUI.SetActive(true); diff --git a/Assets/Scripts/Gameplay/EntityInstance.cs b/Assets/Scripts/Gameplay/EntityInstance.cs index 910e31c0d..99ce20184 100644 --- a/Assets/Scripts/Gameplay/EntityInstance.cs +++ b/Assets/Scripts/Gameplay/EntityInstance.cs @@ -10,6 +10,7 @@ using float2 = Unity.Mathematics.float2; public class EntityInstance : MonoBehaviour { + public Transform PingPrefab; public Material InvisibleMaterial; public static Transform EffectManagerParent; public ShieldManager Shield; @@ -37,6 +38,9 @@ public class EntityInstance : MonoBehaviour private bool _unfadedElementsVisible = false; private float _fadeTime; private bool _destroyed; + private (Transform transform, MeshRenderer meshRenderer) _currentPing; + private float _pingBrightness; + private Sensor _sensor; private (Reactor reactor, GameObject sfxSource) _reactor; private Dictionary _radiatorSfx = new Dictionary(); @@ -152,6 +156,20 @@ public class EntityInstance : MonoBehaviour { foreach (var behavior in item.Behaviors) { + if (behavior is Sensor sensor) + { + _sensor = sensor; + sensor.OnPingStart += () => + { + var pingInstance = Instantiate(PingPrefab); + var pingMesh = pingInstance.GetComponent(); + pingInstance.position = entity.Position; + _pingBrightness = pingMesh.material.GetFloat("_Depth"); + _currentPing = (pingInstance, pingMesh); + }; + sensor.OnPingEnd += () => Destroy(_currentPing.transform.gameObject); + } + if (behavior is InstantWeapon instantWeapon) { var data = (InstantWeaponData) instantWeapon.Data; @@ -427,6 +445,11 @@ public class EntityInstance : MonoBehaviour public virtual void Update() { + if (_currentPing.transform) + { + _currentPing.transform.localScale = _sensor.PingRadius * Vector3.one; + _currentPing.meshRenderer.material.SetFloat("_Depth", _pingBrightness * _sensor.PingBrightness); + } if (_fading) { if (_fadingIn) diff --git a/Assets/Scripts/Gameplay/Weapons/GuidedProjectile.cs b/Assets/Scripts/Gameplay/Weapons/GuidedProjectile.cs index d1ae0d6bf..e03b2dc31 100644 --- a/Assets/Scripts/Gameplay/Weapons/GuidedProjectile.cs +++ b/Assets/Scripts/Gameplay/Weapons/GuidedProjectile.cs @@ -104,7 +104,7 @@ public class GuidedProjectile : MonoBehaviour var perpendicularRandom = randomDirection.x * right + randomDirection.y * up; child.Velocity = normalize(lerp(perpendicularRandom, dir, SplitSeparationForwardness)) * length(Velocity) * SplitSeparationVelocity; child.Range = Range; - child.Damage = Damage; + child.Damage = Damage / Children; child.Penetration = Penetration; child.Spread = Spread; child.DamageType = DamageType; diff --git a/Assets/Scripts/Sector Display/ZoneRenderer.cs b/Assets/Scripts/Sector Display/ZoneRenderer.cs index be2ad3423..24b204c8e 100644 --- a/Assets/Scripts/Sector Display/ZoneRenderer.cs +++ b/Assets/Scripts/Sector Display/ZoneRenderer.cs @@ -288,8 +288,8 @@ public class ZoneRenderer : MonoBehaviour { foreach (var behavior in item.Behaviors) { - if(behavior is Weapon weapon) - weapon.ResetEvents(); + if(behavior is IEventBehavior eventBehavior) + eventBehavior.ResetEvents(); } } diff --git a/Assets/Scripts/ServerShared/AetheriaMath.cs b/Assets/Scripts/ServerShared/AetheriaMath.cs index 5cab8cfb9..21a80a117 100644 --- a/Assets/Scripts/ServerShared/AetheriaMath.cs +++ b/Assets/Scripts/ServerShared/AetheriaMath.cs @@ -112,4 +112,81 @@ public static class AetheriaMath return sqrt(dx * dx + dy * dy); } + + //Returns a position between 4 float3s with Catmull-Rom spline algorithm + //http://www.iquilezles.org/www/articles/minispline/minispline.htm + public static float GetCatmullRomPosition(float p0, float p1, float p2, float p3, float t) + { + //The coefficients of the cubic polynomial (except the 0.5f * which I added later for performance) + var a = 2f * p1; + var b = p2 - p0; + var c = 2f * p0 - 5f * p1 + 4f * p2 - p3; + var d = -p0 + 3f * p1 - 3f * p2 + p3; + + //The cubic polynomial: a + b * t + c * t^2 + d * t^3 + var pos = 0.5f * (a + (b * t) + (c * t * t) + (d * t * t * t)); + + return pos; + } + + public static float3 GetCatmullRomPosition(float3 p0, float3 p1, float3 p2, float3 p3, float t) + { + //The coefficients of the cubic polynomial (except the 0.5f * which I added later for performance) + var a = 2f * p1; + var b = p2 - p0; + var c = 2f * p0 - 5f * p1 + 4f * p2 - p3; + var d = -p0 + 3f * p1 - 3f * p2 + p3; + + //The cubic polynomial: a + b * t + c * t^2 + d * t^3 + var pos = 0.5f * (a + (b * t) + (c * t * t) + (d * t * t * t)); + + return pos; + } + + // https://catlikecoding.com/unity/tutorials/curves-and-splines/ + public static float GetQuadraticSplinePosition(float p0, float p1, float p2, float t) + { + t = saturate(t); + var oneMinusT = 1f - t; + return + oneMinusT * oneMinusT * p0 + + 2f * oneMinusT * t * p1 + + t * t * p2; + } + + public static float3 GetQuadraticSplinePosition(float3 p0, float3 p1, float3 p2, float t) + { + t = saturate(t); + var oneMinusT = 1f - t; + return + oneMinusT * oneMinusT * p0 + + 2f * oneMinusT * t * p1 + + t * t * p2; + } + + public static float3 GetCubicSplinePosition (float p0, float p1, float p2, float p3, float t) { + t = saturate(t); + var oneMinusT = 1f - t; + return + oneMinusT * oneMinusT * oneMinusT * p0 + + 3f * oneMinusT * oneMinusT * t * p1 + + 3f * oneMinusT * t * t * p2 + + t * t * t * p3; + } + + public static float3 GetCubicSplinePosition (float3 p0, float3 p1, float3 p2, float3 p3, float t) { + t = saturate(t); + var oneMinusT = 1f - t; + return + oneMinusT * oneMinusT * oneMinusT * p0 + + 3f * oneMinusT * oneMinusT * t * p1 + + 3f * oneMinusT * t * t * p2 + + t * t * t * p3; + } + + public static float Smoothstep(float x) + { + x = saturate(x); + return x * x * (3 - 2 * x); + } } diff --git a/Assets/Scripts/ServerShared/Behaviors/Behaviors.cs b/Assets/Scripts/ServerShared/Behaviors/Behaviors.cs index bd20e3520..70fb815a7 100644 --- a/Assets/Scripts/ServerShared/Behaviors/Behaviors.cs +++ b/Assets/Scripts/ServerShared/Behaviors/Behaviors.cs @@ -35,6 +35,11 @@ public interface IDisposableBehavior void Dispose(); } +public interface IEventBehavior +{ + void ResetEvents(); +} + public interface IInitializableBehavior { void Initialize(); diff --git a/Assets/Scripts/ServerShared/Behaviors/ChargedWeapon.cs b/Assets/Scripts/ServerShared/Behaviors/ChargedWeapon.cs index 8510e4cde..b5170658f 100644 --- a/Assets/Scripts/ServerShared/Behaviors/ChargedWeapon.cs +++ b/Assets/Scripts/ServerShared/Behaviors/ChargedWeapon.cs @@ -51,7 +51,7 @@ public class ChargedWeaponData : InstantWeaponData } } -public class ChargedWeapon : InstantWeapon +public class ChargedWeapon : InstantWeapon, IEventBehavior { private ChargedWeaponData _data; private bool _charging; @@ -79,6 +79,7 @@ public class ChargedWeapon : InstantWeapon public override void ResetEvents() { + base.ResetEvents(); OnStartCharging = null; OnStopCharging = null; OnCharged = null; diff --git a/Assets/Scripts/ServerShared/Behaviors/ConstantWeapon.cs b/Assets/Scripts/ServerShared/Behaviors/ConstantWeapon.cs index 8fdd7301b..2ffc9ec88 100644 --- a/Assets/Scripts/ServerShared/Behaviors/ConstantWeapon.cs +++ b/Assets/Scripts/ServerShared/Behaviors/ConstantWeapon.cs @@ -20,7 +20,7 @@ public class ConstantWeaponData : WeaponData } } -public class ConstantWeapon : Weapon, IProgressBehavior +public class ConstantWeapon : Weapon, IProgressBehavior, IEventBehavior { private ConstantWeaponData _data; private int _ammo = 1; @@ -49,7 +49,7 @@ public class ConstantWeapon : Weapon, IProgressBehavior public event Action OnStartFiring; public event Action OnStopFiring; - public override void ResetEvents() + public void ResetEvents() { OnReloadBegin = null; OnReloadComplete = null; diff --git a/Assets/Scripts/ServerShared/Behaviors/InstantWeapon.cs b/Assets/Scripts/ServerShared/Behaviors/InstantWeapon.cs index f09e5c409..120a2f40f 100644 --- a/Assets/Scripts/ServerShared/Behaviors/InstantWeapon.cs +++ b/Assets/Scripts/ServerShared/Behaviors/InstantWeapon.cs @@ -27,7 +27,7 @@ public class InstantWeaponData : WeaponData } } -public class InstantWeapon : Weapon, IProgressBehavior +public class InstantWeapon : Weapon, IProgressBehavior, IEventBehavior { private InstantWeaponData _data; @@ -63,7 +63,7 @@ public class InstantWeapon : Weapon, IProgressBehavior public event Action OnCooldownComplete; public event Action OnFire; - public override void ResetEvents() + public virtual void ResetEvents() { OnReloadBegin = null; OnReloadComplete = null; diff --git a/Assets/Scripts/ServerShared/Behaviors/LockWeapon.cs b/Assets/Scripts/ServerShared/Behaviors/LockWeapon.cs index 4061f382f..d105c2418 100644 --- a/Assets/Scripts/ServerShared/Behaviors/LockWeapon.cs +++ b/Assets/Scripts/ServerShared/Behaviors/LockWeapon.cs @@ -81,7 +81,7 @@ public class LockWeapon : InstantWeapon if (degrees < LockAngle) { var lerp = 1 - unlerp(0, 90, degrees); - _lock = saturate(_lock + pow(lerp, DirectionImpact) * delta * LockSpeed); + _lock = saturate(_lock + pow(lerp, DirectionImpact) * delta * LockSpeed * pow(Entity.EntityInfoGathered[Entity.Target.Value], SensorImpact)); } else _lock = saturate(_lock - delta * Decay); } diff --git a/Assets/Scripts/ServerShared/Behaviors/Sensor.cs b/Assets/Scripts/ServerShared/Behaviors/Sensor.cs index 5f91642b7..869dd6ac5 100644 --- a/Assets/Scripts/ServerShared/Behaviors/Sensor.cs +++ b/Assets/Scripts/ServerShared/Behaviors/Sensor.cs @@ -2,6 +2,8 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ +using System; +using System.Collections.Generic; using MessagePack; using Newtonsoft.Json; using Unity.Mathematics; @@ -10,11 +12,32 @@ using static Unity.Mathematics.math; [InspectableField, MessagePackObject, JsonObject(MemberSerialization.OptIn), RuntimeInspectable] public class SensorData : BehaviorData { - [InspectableField, JsonProperty("sensitivity"), Key(3), RuntimeInspectable] + [InspectableField, JsonProperty("sensitivity"), Key(3), RuntimeInspectable] public PerformanceStat Sensitivity = new PerformanceStat(); - [InspectableAnimationCurve, JsonProperty("sensitivityCurve"), Key(4), RuntimeInspectable] + [InspectableAnimationCurve, JsonProperty("sensitivityCurve"), Key(4), RuntimeInspectable] public float4[] SensitivityCurve; + + [InspectableField, JsonProperty("pingBoost"), Key(5), RuntimeInspectable] + public PerformanceStat PingBoost; + + [InspectableField, JsonProperty("pingEnergy"), Key(6), RuntimeInspectable] + public PerformanceStat PingEnergy; + + [InspectableField, JsonProperty("pingVisibility"), Key(7), RuntimeInspectable] + public PerformanceStat PingVisibility; + + [InspectableField, JsonProperty("pingRange"), Key(8), RuntimeInspectable] + public PerformanceStat PingRange; + + [InspectableField, JsonProperty("pingCooldown"), Key(9), RuntimeInspectable] + public PerformanceStat PingCooldown; + + [InspectableField, JsonProperty("pingDuration"), Key(10)] + public float PingDuration = 2; + + [InspectableField, JsonProperty("pingRadiusExponent"), Key(11)] + public float PingRadiusExponent = .5f; public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item) { @@ -22,15 +45,55 @@ public class SensorData : BehaviorData } } -public class Sensor : IBehavior +public class Sensor : IBehavior, IEventBehavior { private SensorData _data; + private float _pingCooldown; + private float _pingLerp; + private bool _pinging; + private float _pingRadius; + private HashSet _pingedEntities = new HashSet(); private Entity Entity { get; } private EquippedItem Item { get; } private ItemManager Context { get; } public BehaviorData Data => _data; + + public float Cooldown + { + get => saturate(_pingCooldown); + } + + public float PingRadius + { + get => _pingRadius; + } + + public float PingBrightness => pow(1 - _pingLerp, _data.PingRadiusExponent); + + public event Action OnPingStart; + public event Action OnPingEnd; + + public void ResetEvents() + { + OnPingStart = null; + OnPingEnd = null; + } + + public void Ping() + { + if(_pingCooldown < 0 && Item.Entity.TryConsumeEnergy(Item.Evaluate(_data.PingEnergy))) + { + Item.Entity.VisibilitySources[this] = Item.Evaluate(_data.PingVisibility); + _pinging = true; + _pingCooldown = 1; + _pingLerp = 0; + _pingRadius = 0; + _pingedEntities.Clear(); + OnPingStart?.Invoke(); + } + } public Sensor(ItemManager context, SensorData data, Entity entity, EquippedItem item) { @@ -42,6 +105,19 @@ public class Sensor : IBehavior public bool Execute(float delta) { + if (_pinging) + { + _pingLerp += delta / _data.PingDuration; + _pingRadius = lerp(0, Item.Evaluate(_data.PingRange), pow(_pingLerp, _data.PingRadiusExponent)); + if (_pingLerp > 1) + { + _pinging = false; + OnPingEnd?.Invoke(); + } + } + + _pingCooldown -= delta / Item.Evaluate(_data.PingCooldown); + // TODO: Handle Active Detection / Visibility From Reflected Radiance var hardpoint = Entity.Hardpoints[Item.Position.x, Item.Position.y]; var forward = hardpoint != null && Entity.HardpointTransforms.ContainsKey(hardpoint) ? @@ -54,35 +130,32 @@ public class Sensor : IBehavior var diff = entity.Position.xz - Entity.Position.xz; var angle = acos(dot(forward, normalize(diff))); var dist = length(diff); - float previous; + float previous, next; Entity.EntityInfoGathered.TryGetValue(entity, out previous); - var next = saturate( - previous + - entity.Visibility * - Item.Evaluate(_data.Sensitivity) * - _data.SensitivityCurve.Evaluate(angle / PI) * - delta / dist); + if (!_pingedEntities.Contains(entity) && dist < _pingRadius) + { + _pingedEntities.Add(entity); + next = saturate( + previous + + entity.Visibility * + Item.Evaluate(_data.Sensitivity) * + Item.Evaluate(_data.PingBoost) * + dist); + } + else + { + next = saturate( + previous + + entity.Visibility * + Item.Evaluate(_data.Sensitivity) * + _data.SensitivityCurve.Evaluate(angle / PI) * + delta / dist); + } next *= 1 - Context.GameplaySettings.TargetInfoDecay * delta; //Context.Log($"{entity.Name} visibility {(int)(previous * 100)}% -> {(int)(next * 100)}%"); Entity.EntityInfoGathered[entity] = next; } } return true; - // var ship = Hardpoint.Ship.Ship.transform; - // var contacts = - // Physics.OverlapSphere(ship.position, _data.Range.Evaluate(Hardpoint)).Where(c=>c.attachedRigidbody?.GetComponent()!=null).Select(c=>c.attachedRigidbody.GetComponent()); - // foreach (var contact in contacts) - // { - // var diff = (contact.transform.position - ship.position).Flatland(); - // var angle = acos(dot(ship.forward.Flatland().normalized, - // diff.normalized)) / (float)PI; - // var sens = _data.Sensitivity.Evaluate(Hardpoint) * - // Hardpoint.Ship.HullData.VisibilityCurve.Evaluate(saturate(angle)); - // var vis = contact.Visibility / diff.sqrMagnitude; - // if(vis > 1/sens) - // Hardpoint.Ship.Contacts[contact] = Time.time; - // } - // - // Hardpoint.Ship.VisibilitySources[this] = _data.Radiance.Evaluate(Hardpoint) / _data.RadianceMasking.Evaluate(Hardpoint); } } \ No newline at end of file diff --git a/Assets/Scripts/ServerShared/Behaviors/Weapon.cs b/Assets/Scripts/ServerShared/Behaviors/Weapon.cs index 6e599384a..0640d19dc 100644 --- a/Assets/Scripts/ServerShared/Behaviors/Weapon.cs +++ b/Assets/Scripts/ServerShared/Behaviors/Weapon.cs @@ -109,8 +109,6 @@ public abstract class Weapon : IActivatedBehavior _itemData = context.GetData(item.EquippableItem); } - public virtual void ResetEvents(){} - protected virtual void UpdateStats() { Damage = Item.Evaluate(_data.Damage); diff --git a/Assets/Scripts/ServerShared/Entity.cs b/Assets/Scripts/ServerShared/Entity.cs index f4f653b8a..f7c37ac00 100644 --- a/Assets/Scripts/ServerShared/Entity.cs +++ b/Assets/Scripts/ServerShared/Entity.cs @@ -96,6 +96,7 @@ public abstract class Entity public Shield Shield { get; private set; } public Cockpit Cockpit { get; private set; } + public Sensor Sensor { get; private set; } public float Heatstroke { get; private set; } public float TargetRange { get; private set; } @@ -125,6 +126,7 @@ public abstract class Entity public virtual void Activate() { + //ItemManager.Log($"Entity {Name} is activating!"); _active = true; Heatstroke = 0; foreach (var item in Equipment) @@ -134,6 +136,7 @@ public abstract class Entity initializableBehavior.Initialize(); } //foreach(var entity in Zone.Entities) EntityInfoGathered.Add(entity, 0); + _subscriptions.Add(Zone.Entities.ObserveAdd().Subscribe(add => EntityInfoGathered.Add(add.Value, 0))); _subscriptions.Add(Zone.Entities.ObserveRemove().Subscribe(remove => { if (Target.Value == remove.Value) Target.Value = null; @@ -150,6 +153,7 @@ public abstract class Entity public virtual void Deactivate() { + //ItemManager.Log($"Entity {Name} is deactivating!"); foreach(var s in _subscriptions) s.Dispose(); _subscriptions.Clear(); _active = false; @@ -379,6 +383,8 @@ public abstract class Entity Shield = null; if (b is Cockpit) Cockpit = null; + if (b is Sensor) + Sensor = null; } return item.EquippableItem; @@ -559,6 +565,8 @@ public abstract class Entity Shield = shield; if (b is Cockpit cockpit) Cockpit = cockpit; + if (b is Sensor sensor) + Sensor = sensor; } // equippedItem.OnOnline += () => ItemOnline.OnNext(equippedItem); @@ -585,7 +593,7 @@ public abstract class Entity bay.DockedShip = ship; ship.SetParent(this); Zone.Entities.Remove(ship); - Deactivate(); + ship.Deactivate(); ship.Docked.OnNext(this); } diff --git a/Assets/Scripts/ServerShared/LoadoutGenerator.cs b/Assets/Scripts/ServerShared/LoadoutGenerator.cs index f98893a1e..4104e9d20 100644 --- a/Assets/Scripts/ServerShared/LoadoutGenerator.cs +++ b/Assets/Scripts/ServerShared/LoadoutGenerator.cs @@ -58,7 +58,7 @@ public class LoadoutGenerator var emptyShape = entity.UnoccupiedSpace; - var dockingBayData = RandomItem(item => item.Shape.FitsWithin(emptyShape, out _, out _)); + var dockingBayData = RandomItem(2, item => item.Shape.FitsWithin(emptyShape, out _, out _)); if (dockingBayData == null) throw new InvalidLoadoutException("No compatible docking bay found for station!"); dockingBayData.Shape.FitsWithin(emptyShape, out var cargoRotation, out var cargoPosition); @@ -70,7 +70,9 @@ public class LoadoutGenerator } var cargo = entity.CargoBays.First(); - var inventory = RandomItems(16, data => !(data is CargoBayData)); + var inventory = RandomItems(16, 1, + data => !(data is HullData hull && hull.HullType != HullType.Ship) && !(data is CargoBayData)) + .OrderByDescending(item=>item.Shape.Coordinates.Length); foreach (var item in inventory) { var instance = ItemManager.CreateInstance(item); @@ -93,7 +95,7 @@ public class LoadoutGenerator ).FirstOrDefault(); } - public T[] RandomItems(int count, Predicate filter = null) where T : EquippableItemData + public T[] RandomItems(int count, float sizeExponent, Predicate filter = null) where T : EquippableItemData { return ItemManager.ItemData.GetAll() .Where(item => Sector.ContainsFaction(item.Manufacturer) && @@ -101,21 +103,21 @@ public class LoadoutGenerator (filter?.Invoke(item) ?? true)) .WeightedRandomElements(ref Random, item => (Faction == null || item.Manufacturer == Faction.ID ? 1 : Faction.Allegiance[item.Manufacturer]) * // Prioritize items from allied manufacturers - item.Shape.Coordinates.Length * item.Shape.Coordinates.Length / // Prioritize larger items + pow(item.Shape.Coordinates.Length, sizeExponent) / // Prioritize larger items Zone.Distance[Sector.HomeZones[ItemManager.ItemData.Get(item.Manufacturer)]] / // Penalize distance to manufacturer headquarters pow(item.Price, PriceExponent), // Penalize item price to a controllable degree count ); } - public T RandomItem(Predicate filter = null) where T : EquippableItemData + public T RandomItem(float sizeExponent, Predicate filter = null) where T : EquippableItemData { - return RandomItems(1, filter).FirstOrDefault(); + return RandomItems(1, sizeExponent, filter).FirstOrDefault(); } - public T RandomItem(HardpointData hardpoint, Predicate filter = null) where T : EquippableItemData + public T RandomItem(HardpointData hardpoint, float sizeExponent, Predicate filter = null) where T : EquippableItemData { - return RandomItem(item => item.HardpointType == hardpoint.Type && + return RandomItem(sizeExponent, item => item.HardpointType == hardpoint.Type && (filter?.Invoke(item) ?? true) && item.Shape.FitsWithin(hardpoint.Shape, hardpoint.Rotation, out _)); } @@ -129,7 +131,7 @@ public class LoadoutGenerator { if (hardpoint.Type == HardpointType.ControlModule) { - var controllerData = RandomItem(hardpoint, + var controllerData = RandomItem(hardpoint, 2, item => item.Behaviors.Any(b => entity is Ship && b is CockpitData || entity is OrbitalEntity && b is TurretControllerData)); if (controllerData == null) throw new InvalidLoadoutException("No compatible controller found for entity!"); var controller = ItemManager.CreateInstance(controllerData) as EquippableItem; @@ -143,7 +145,7 @@ public class LoadoutGenerator // If a previously selected item fits, use that one (this is why we must process larger hardpoints first) var itemData = previousItems .FirstOrDefault(i => i.HardpointType == hardpoint.Type && i.Shape.FitsWithin(hardpoint.Shape, hardpoint.Rotation, out _)); - itemData ??= RandomItem(hardpoint); + itemData ??= RandomItem(hardpoint, 2); if (itemData == null) ItemManager.Log($"No compatible item found for entity {Enum.GetName(typeof(HardpointType), hardpoint.Type)} hardpoint!"); else { @@ -160,7 +162,7 @@ public class LoadoutGenerator var emptyShape = entity.UnoccupiedSpace; - var cargoData = RandomItem(item => + var cargoData = RandomItem(3, item => !(item is DockingBayData) && item.Shape.FitsWithin(emptyShape, out _, out _)); if (cargoData == null) throw new InvalidLoadoutException("No compatible cargo bay found for entity!"); @@ -173,7 +175,7 @@ public class LoadoutGenerator emptyShape = entity.UnoccupiedSpace; - var capacitorData = RandomItem(item => + var capacitorData = RandomItem(2, item => item.Behaviors.Any(b => b is CapacitorData) && item.Shape.FitsWithin(emptyShape, out _, out _)); if (capacitorData == null) throw new InvalidLoadoutException("No compatible capacitor found for entity!"); diff --git a/Assets/Scripts/ServerShared/Ship.cs b/Assets/Scripts/ServerShared/Ship.cs index fe754cc98..30cef236f 100644 --- a/Assets/Scripts/ServerShared/Ship.cs +++ b/Assets/Scripts/ServerShared/Ship.cs @@ -300,7 +300,7 @@ public class Ship : Entity { var exitLerp = (_wormholeAnimationProgress - ItemManager.GameplaySettings.WormholeExitCurveStart) / (1 - ItemManager.GameplaySettings.WormholeExitCurveStart); - exitLerp *= exitLerp; // Square the interpolation variable to produce curve with zero slope at start + exitLerp = AetheriaMath.Smoothstep(exitLerp); // Square the interpolation variable to produce curve with zero slope at start Position.xz = _wormholePosition + normalize(_wormholeExitVelocity) * exitLerp * ItemManager.GameplaySettings.WormholeExitRadius; Rotation = quaternion.LookRotation( lerp(float3(0, 1, 0), forward, exitLerp), @@ -326,7 +326,7 @@ public class Ship : Entity if (_wormholeAnimationProgress < 1 - ItemManager.GameplaySettings.WormholeExitCurveStart) { var enterLerp = _wormholeAnimationProgress / (1 - ItemManager.GameplaySettings.WormholeExitCurveStart); - enterLerp *= enterLerp; // Square the interpolation variable to produce curve with zero slope at vertical + enterLerp = AetheriaMath.Smoothstep(enterLerp); // Square the interpolation variable to produce curve with zero slope at vertical Position.xz = lerp(_wormholeEntryPosition, _wormholePosition, enterLerp); Rotation = quaternion.LookRotation( lerp(forward, float3(0, -1, 0), enterLerp), diff --git a/Assets/Scripts/UI/SchematicDisplay.cs b/Assets/Scripts/UI/SchematicDisplay.cs index a026193fb..e777dd3e1 100644 --- a/Assets/Scripts/UI/SchematicDisplay.cs +++ b/Assets/Scripts/UI/SchematicDisplay.cs @@ -32,6 +32,7 @@ public class SchematicDisplay : MonoBehaviour public TextMeshProUGUI HullDurabilityLabel; public TextMeshProUGUI DistanceLabel; + public RectTransform SensorCooldownFill; public RectTransform EnergyFill; public RectTransform HullDurabilityFill; public RectTransform HeatstrokeMeterFill; @@ -251,6 +252,8 @@ public class SchematicDisplay : MonoBehaviour HeatstrokeLimitFill.anchorMax = new Vector2(_cockpit.Item.Temperature / Settings.GameplaySettings.HeatstrokeTemperature, 1); } + SensorCooldownFill.anchorMax = new Vector2(_entity.Sensor?.Cooldown ?? 0, 1); + if (_capacitors.Length == 0) { EnergyFill.anchorMax = Vector2.up; diff --git a/Assets/Shaders/Brushes/PowerBrush.shader b/Assets/Shaders/Brushes/PowerBrush.shader index 535f7881e..d3b77c406 100644 --- a/Assets/Shaders/Brushes/PowerBrush.shader +++ b/Assets/Shaders/Brushes/PowerBrush.shader @@ -50,13 +50,14 @@ Category { float powerPulse( float x, float power ) { - x = saturate(abs(x)); + x = saturate(abs(x))-.001; return pow((x + 1.0f) * (1.0f - x), power); } fixed4 frag (v2f i) : SV_Target { - return _Depth * powerPulse(length(i.texcoord-float2(.5,.5))*2,_Power) * _Color; + float dist = length(i.texcoord-float2(.5,.5))*2; + return _Depth * powerPulse(dist,_Power) * _Color * smoothstep(1, .95, dist); } ENDCG } diff --git a/GameData/AetherDB.msgpack b/GameData/AetherDB.msgpack index a21e0f250..a5bde333d 100644 --- a/GameData/AetherDB.msgpack +++ b/GameData/AetherDB.msgpack @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:4d5e69f20ef9532a0b9a29a6fb7d08ce20943d3e82bb27ce751ebdb06ededf07 -size 68289 +oid sha256:48cf9f69725dc6b5ae37dcbd3b312590adb7b06f92932a446fa225f8e523ed1a +size 82685 diff --git a/GameData/PlayerSettings.msgpack b/GameData/PlayerSettings.msgpack index d96ad2dd4..2bec95fc7 100644 --- a/GameData/PlayerSettings.msgpack +++ b/GameData/PlayerSettings.msgpack @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:0dd709305e5cd8fee63759672728e92a08b064061784821ba6eddebbca2af1d6 -size 28117 +oid sha256:82a1f89ba5a772944a219c9dbb0ffa5f80ebf64001b0b9277b58dc357b2e2298 +size 49024 From 1a2168c9cae550ece6b1ba26dc33524d26581349 Mon Sep 17 00:00:00 2001 From: Ferenc Fodor Date: Sun, 21 Mar 2021 03:06:42 +0100 Subject: [PATCH 14/51] Updated Icons --- Assets/Resources/Sprites/Icons/Weapons/CalliberL.png | 4 ++-- Assets/Resources/Sprites/Icons/Weapons/CalliberM.png | 4 ++-- Assets/Resources/Sprites/Icons/Weapons/CalliberS.png | 4 ++-- Assets/Resources/Sprites/Icons/Weapons/CalliberXL.png | 4 ++-- Assets/Resources/Sprites/Icons/Weapons/JET.png | 4 ++-- Assets/Resources/Sprites/Icons/Weapons/JET.png.meta | 2 +- Assets/Resources/Sprites/Icons/Weapons/M.png | 4 ++-- Assets/Resources/Sprites/Icons/Weapons/M.png.meta | 2 +- Assets/Resources/Sprites/Icons/Weapons/PrefixC.png | 4 ++-- Assets/Resources/Sprites/Icons/Weapons/PrefixC.png.meta | 2 +- Assets/Resources/Sprites/Icons/Weapons/PrefixG.png | 4 ++-- Assets/Resources/Sprites/Icons/Weapons/PrefixG.png.meta | 2 +- 12 files changed, 20 insertions(+), 20 deletions(-) diff --git a/Assets/Resources/Sprites/Icons/Weapons/CalliberL.png b/Assets/Resources/Sprites/Icons/Weapons/CalliberL.png index c5c97e3d3..2ffdc4434 100644 --- a/Assets/Resources/Sprites/Icons/Weapons/CalliberL.png +++ b/Assets/Resources/Sprites/Icons/Weapons/CalliberL.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:c16e9c56669dd97f4267b663e5affa29e714bb7b706d180210c583c4041c57a2 -size 9685 +oid sha256:423bfca04a5ded4ea7cd7f5e0f6078d6cd24eee4174187a5da6352a2f71ebf56 +size 9458 diff --git a/Assets/Resources/Sprites/Icons/Weapons/CalliberM.png b/Assets/Resources/Sprites/Icons/Weapons/CalliberM.png index 3e94125c5..738561ca6 100644 --- a/Assets/Resources/Sprites/Icons/Weapons/CalliberM.png +++ b/Assets/Resources/Sprites/Icons/Weapons/CalliberM.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:c9c260fb5580537b862eddb37d3259bc92a040b53162b5e77d375412a0568097 -size 16086 +oid sha256:2dc42d77eaea2403017e41b6c888b7ed90d2de6f3360477a860678f9355aee4d +size 19946 diff --git a/Assets/Resources/Sprites/Icons/Weapons/CalliberS.png b/Assets/Resources/Sprites/Icons/Weapons/CalliberS.png index f66ceebe0..fa80b5e83 100644 --- a/Assets/Resources/Sprites/Icons/Weapons/CalliberS.png +++ b/Assets/Resources/Sprites/Icons/Weapons/CalliberS.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:0024196521d71ffd4741f3e801d3afc46d0cb1e651dbe065d686e9bda00e8161 -size 19182 +oid sha256:847e4a2177065b5d462fb75d25ff3ffbf8a24d89540571df9dea0ecf1360e789 +size 24143 diff --git a/Assets/Resources/Sprites/Icons/Weapons/CalliberXL.png b/Assets/Resources/Sprites/Icons/Weapons/CalliberXL.png index e58f05b8a..915101e85 100644 --- a/Assets/Resources/Sprites/Icons/Weapons/CalliberXL.png +++ b/Assets/Resources/Sprites/Icons/Weapons/CalliberXL.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:f362e153c1af7521d12c594ac85c7298ae95b75dbb69cd703eb5d8ed344d7fb2 -size 19891 +oid sha256:287a3aeabccc25211627464a48657554af3d2ce54238cffa99112647bcabd88e +size 22126 diff --git a/Assets/Resources/Sprites/Icons/Weapons/JET.png b/Assets/Resources/Sprites/Icons/Weapons/JET.png index 195f63d04..fbb8fa98c 100644 --- a/Assets/Resources/Sprites/Icons/Weapons/JET.png +++ b/Assets/Resources/Sprites/Icons/Weapons/JET.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:cb3a7348cdcd7978b5a5ad41fc4fc4583162c94ffb49fee826fa4c537580ec3a -size 24970 +oid sha256:4ed1fe7e9bedeacaee18790dc1c56bfed338eb3ed836685c5bbc5cd461965815 +size 26788 diff --git a/Assets/Resources/Sprites/Icons/Weapons/JET.png.meta b/Assets/Resources/Sprites/Icons/Weapons/JET.png.meta index 62a0e09dc..5446db37f 100644 --- a/Assets/Resources/Sprites/Icons/Weapons/JET.png.meta +++ b/Assets/Resources/Sprites/Icons/Weapons/JET.png.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 22c588c2189912745b8213e5380fe3f6 +guid: 9ae7f8b405224394aa497f6900f86909 TextureImporter: internalIDToNameTable: [] externalObjects: {} diff --git a/Assets/Resources/Sprites/Icons/Weapons/M.png b/Assets/Resources/Sprites/Icons/Weapons/M.png index 36afc9c56..c945b46db 100644 --- a/Assets/Resources/Sprites/Icons/Weapons/M.png +++ b/Assets/Resources/Sprites/Icons/Weapons/M.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:e7c34c770755652e317b940221bc6589b91692c5ad51fae8441941b787c6ef9d -size 18510 +oid sha256:5996da777033739aec31a6278cc5b2211373236ccf41b330e2b96b28e6e92a03 +size 18634 diff --git a/Assets/Resources/Sprites/Icons/Weapons/M.png.meta b/Assets/Resources/Sprites/Icons/Weapons/M.png.meta index 4757961f7..fc34d3f96 100644 --- a/Assets/Resources/Sprites/Icons/Weapons/M.png.meta +++ b/Assets/Resources/Sprites/Icons/Weapons/M.png.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 16b077cce6b051e4da86a05792d7b8c0 +guid: 05a60cc71bb0a1b4cab9c229775dcc91 TextureImporter: internalIDToNameTable: [] externalObjects: {} diff --git a/Assets/Resources/Sprites/Icons/Weapons/PrefixC.png b/Assets/Resources/Sprites/Icons/Weapons/PrefixC.png index 36ba6c769..8e8b74be5 100644 --- a/Assets/Resources/Sprites/Icons/Weapons/PrefixC.png +++ b/Assets/Resources/Sprites/Icons/Weapons/PrefixC.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:428efeaa2278d54fb90ced995ed6d7260df93b4f99a2e5f18093e0b1da0b185b -size 28253 +oid sha256:a0fc7a9fe2b9e593c77d8fe525bdf0512d24b0006cc2f1a6f9a03536cce32237 +size 27977 diff --git a/Assets/Resources/Sprites/Icons/Weapons/PrefixC.png.meta b/Assets/Resources/Sprites/Icons/Weapons/PrefixC.png.meta index 65277b516..85a672211 100644 --- a/Assets/Resources/Sprites/Icons/Weapons/PrefixC.png.meta +++ b/Assets/Resources/Sprites/Icons/Weapons/PrefixC.png.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 1c7427c9505bd8b4ba02008827d297a3 +guid: e267ba096b10c724faa537bc12177ffa TextureImporter: internalIDToNameTable: [] externalObjects: {} diff --git a/Assets/Resources/Sprites/Icons/Weapons/PrefixG.png b/Assets/Resources/Sprites/Icons/Weapons/PrefixG.png index 6cc889054..51b2f7598 100644 --- a/Assets/Resources/Sprites/Icons/Weapons/PrefixG.png +++ b/Assets/Resources/Sprites/Icons/Weapons/PrefixG.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:21786f0c92b12ce663e6628fe3e7c856a93f079bac1d976d82794bd52e2c263d -size 26777 +oid sha256:d575aa0be1c2b0cad608d392a887a46fbd3eeb22b3bd7beb397ef97066ae0199 +size 26888 diff --git a/Assets/Resources/Sprites/Icons/Weapons/PrefixG.png.meta b/Assets/Resources/Sprites/Icons/Weapons/PrefixG.png.meta index 6b5bbbf91..a85f3ce5f 100644 --- a/Assets/Resources/Sprites/Icons/Weapons/PrefixG.png.meta +++ b/Assets/Resources/Sprites/Icons/Weapons/PrefixG.png.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: fd78904cc0d4b5c44ba9bf1d5c84282d +guid: 8381f89e37ef36b4e8689e3218c988fe TextureImporter: internalIDToNameTable: [] externalObjects: {} From 6e1952680135328c46dc62847d43d2b9d9f70ded Mon Sep 17 00:00:00 2001 From: Defirm <32074047+voivoontos@users.noreply.github.com> Date: Sun, 21 Mar 2021 19:37:23 +0100 Subject: [PATCH 15/51] defirm 07 sensor ping railgun hit --- .../Actor-Mixer Hierarchy/SFX_Defirm_Unit.wwu | 47 ++++++- ...omy_WwiseProject.crossover.validationcache | 19 +-- ...a-Economy_WwiseProject.crossover.wsettings | 22 ++-- .../Events/SFX_Defirm_unit.wwu | 55 -------- .../Events/Ship Audio.wwu | 67 ++++++++++ .../Originals/SFX/SFX__ship_sensor_ping.akd | Bin 0 -> 15064 bytes .../Originals/SFX/SFX__ship_sensor_ping.wav | 3 + .../Originals/SFX/SFX_railgun_hit3.akd | Bin 0 -> 34120 bytes .../Originals/SFX/SFX_railgun_hit3.wav | 3 + .../Default Work Unit.wwu | 121 +++++++++++++++++- 10 files changed, 261 insertions(+), 76 deletions(-) create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX__ship_sensor_ping.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX__ship_sensor_ping.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX_railgun_hit3.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX_railgun_hit3.wav diff --git a/Aetheria-Economy_WwiseProject/Actor-Mixer Hierarchy/SFX_Defirm_Unit.wwu b/Aetheria-Economy_WwiseProject/Actor-Mixer Hierarchy/SFX_Defirm_Unit.wwu index ef831db9a..591a42fc7 100644 --- a/Aetheria-Economy_WwiseProject/Actor-Mixer Hierarchy/SFX_Defirm_Unit.wwu +++ b/Aetheria-Economy_WwiseProject/Actor-Mixer Hierarchy/SFX_Defirm_Unit.wwu @@ -2390,7 +2390,7 @@ 10 - 0 + -2.80358 37 @@ -2916,7 +2916,7 @@ - + @@ -2949,15 +2949,56 @@ + + SFX + SFX_railgun_hit3.wav + + + + - + + + + + + -2.3 + + + + + + + + + + + + + + + + + + + SFX + SFX__ship_sensor_ping.wav + + + + + + + + + diff --git a/Aetheria-Economy_WwiseProject/Aetheria-Economy_WwiseProject.crossover.validationcache b/Aetheria-Economy_WwiseProject/Aetheria-Economy_WwiseProject.crossover.validationcache index f40ef973a..0f7dd9a2e 100644 --- a/Aetheria-Economy_WwiseProject/Aetheria-Economy_WwiseProject.crossover.validationcache +++ b/Aetheria-Economy_WwiseProject/Aetheria-Economy_WwiseProject.crossover.validationcache @@ -5,7 +5,7 @@ - + @@ -14,11 +14,12 @@ + - - - - + + + + @@ -27,10 +28,10 @@ - - - - + + + + diff --git a/Aetheria-Economy_WwiseProject/Aetheria-Economy_WwiseProject.crossover.wsettings b/Aetheria-Economy_WwiseProject/Aetheria-Economy_WwiseProject.crossover.wsettings index 6744707f7..dbf9cbd01 100644 --- a/Aetheria-Economy_WwiseProject/Aetheria-Economy_WwiseProject.crossover.wsettings +++ b/Aetheria-Economy_WwiseProject/Aetheria-Economy_WwiseProject.crossover.wsettings @@ -3,14 +3,17 @@ - + + + + @@ -24,7 +27,9 @@ + + @@ -60,7 +65,7 @@ - + @@ -77,20 +82,20 @@ - - + + - - + + - + - + @@ -123,6 +128,7 @@ + diff --git a/Aetheria-Economy_WwiseProject/Events/SFX_Defirm_unit.wwu b/Aetheria-Economy_WwiseProject/Events/SFX_Defirm_unit.wwu index a9c9ded41..9d669da99 100644 --- a/Aetheria-Economy_WwiseProject/Events/SFX_Defirm_unit.wwu +++ b/Aetheria-Economy_WwiseProject/Events/SFX_Defirm_unit.wwu @@ -37,61 +37,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Aetheria-Economy_WwiseProject/Events/Ship Audio.wwu b/Aetheria-Economy_WwiseProject/Events/Ship Audio.wwu index 2135acf00..474b26e93 100644 --- a/Aetheria-Economy_WwiseProject/Events/Ship Audio.wwu +++ b/Aetheria-Economy_WwiseProject/Events/Ship Audio.wwu @@ -135,6 +135,73 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/SFX__ship_sensor_ping.akd b/Aetheria-Economy_WwiseProject/Originals/SFX/SFX__ship_sensor_ping.akd new file mode 100644 index 0000000000000000000000000000000000000000..a2f8fecf39644c3bbaa57e0d495becc5d119e8b2 GIT binary patch literal 15064 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

ps+-p6ME!p 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 yBwzx)fw#a$-~|v5TmbF^8-Q3K4%iG_1 - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.98 + + + + 1 + + + + 42 + + + + 0.52 + + + + 0.99 + + + + 0 + + + + 1 + + + + + + + From 47189c8a7e50cfd59c92bf498a25815e218fd406 Mon Sep 17 00:00:00 2001 From: Reinier Vens Date: Mon, 22 Mar 2021 05:22:31 +0000 Subject: [PATCH 16/51] Equipment Data Simplification Removed blueprint system for crafting (and excised anything depending on that) Implemented smootherstep and used it for wormhole animation Quality dependent durability and heat exponents are now global instead of item specific Database list view now groups equipment by manufacturer Thrusters can now consume energy Weapons can have reloads even when they don't have ammo --- Assets/Materials/UI/Map Gravity Lines.mat | 2 +- .../Resources/Prefabs/Weapons/Alakrita.meta | 8 + .../Prefabs/Weapons/Alakrita/Spectra.prefab | 237 + .../Weapons/Alakrita/Spectra.prefab.meta | 7 + .../Resources/Prefabs/Weapons/Lightsail.meta | 8 + .../ClearPath.prefab} | 0 .../ClearPath.prefab.meta} | 0 Assets/Resources/Prefabs/Weapons/Lucent.meta | 8 + .../Prefabs/Weapons/Lucent/RainbowLite.prefab | 255 + .../Weapons/Lucent/RainbowLite.prefab.meta | 7 + .../Prefabs/Weapons/Lucent/TaranisLG.prefab | 268 + .../Weapons/Lucent/TaranisLG.prefab.meta | 7 + .../Resources/Prefabs/Weapons/NiteLife.meta | 8 + .../Weapons/NiteLife/ChargeBlast SG.prefab | 325 ++ .../NiteLife/ChargeBlast SG.prefab.meta | 7 + .../Weapons/NiteLife/ChargeBlast+-.prefab | 295 + .../NiteLife/ChargeBlast+-.prefab.meta | 7 + .../Weapons/NiteLife/FastBlast+-.prefab | 5169 +++++++++++++++++ .../Weapons/NiteLife/FastBlast+-.prefab.meta | 7 + Assets/Resources/Settings.asset | 4 +- Assets/Scripts/Editor/DatabaseInspector.cs | 324 +- Assets/Scripts/Editor/DatabaseView.cs | 314 +- Assets/Scripts/Gameplay/EntityInstance.cs | 4 +- Assets/Scripts/Gameplay/ShipInstance.cs | 3 +- .../Weapons/GuidedProjectileManager.cs | 4 +- Assets/Scripts/ServerShared/AetheriaMath.cs | 6 + .../ServerShared/Behaviors/Behaviors.cs | 2 - .../ServerShared/Behaviors/FactoryBehavior.cs | 287 - .../Behaviors/FactoryBehavior.cs.meta | 11 - .../ServerShared/Behaviors/InstantWeapon.cs | 29 +- .../ServerShared/Behaviors/StatModifier.cs | 10 + .../ServerShared/Behaviors/Thruster.cs | 26 +- Assets/Scripts/ServerShared/BlueprintData.cs | 86 - .../ServerShared/BlueprintData.cs.meta | 11 - Assets/Scripts/ServerShared/DatabaseEntry.cs | 3 +- Assets/Scripts/ServerShared/Entity.cs | 24 +- Assets/Scripts/ServerShared/ItemData.cs | 25 +- Assets/Scripts/ServerShared/ItemInstance.cs | 8 +- Assets/Scripts/ServerShared/ItemManager.cs | 180 +- Assets/Scripts/ServerShared/LoadoutData.cs | 33 - .../Scripts/ServerShared/LoadoutData.cs.meta | 3 - Assets/Scripts/ServerShared/Settings.cs | 6 + Assets/Scripts/ServerShared/Ship.cs | 4 +- Assets/Scripts/TechTreeMsagl.cs | 438 -- Assets/Scripts/TechTreeMsagl.cs.meta | 11 - Assets/Scripts/UI/PropertiesPanel.cs | 2 +- .../ProjectData/AkWwiseProjectData.asset | 4 +- GameData/AetherDB.msgpack | 4 +- GameData/PlayerSettings.msgpack | 4 +- 49 files changed, 6945 insertions(+), 1550 deletions(-) create mode 100644 Assets/Resources/Prefabs/Weapons/Alakrita.meta create mode 100644 Assets/Resources/Prefabs/Weapons/Alakrita/Spectra.prefab create mode 100644 Assets/Resources/Prefabs/Weapons/Alakrita/Spectra.prefab.meta create mode 100644 Assets/Resources/Prefabs/Weapons/Lightsail.meta rename Assets/Resources/Prefabs/Weapons/{Machinegun.prefab => Lightsail/ClearPath.prefab} (100%) rename Assets/Resources/Prefabs/Weapons/{Machinegun.prefab.meta => Lightsail/ClearPath.prefab.meta} (100%) create mode 100644 Assets/Resources/Prefabs/Weapons/Lucent.meta create mode 100644 Assets/Resources/Prefabs/Weapons/Lucent/RainbowLite.prefab create mode 100644 Assets/Resources/Prefabs/Weapons/Lucent/RainbowLite.prefab.meta create mode 100644 Assets/Resources/Prefabs/Weapons/Lucent/TaranisLG.prefab create mode 100644 Assets/Resources/Prefabs/Weapons/Lucent/TaranisLG.prefab.meta create mode 100644 Assets/Resources/Prefabs/Weapons/NiteLife.meta create mode 100644 Assets/Resources/Prefabs/Weapons/NiteLife/ChargeBlast SG.prefab create mode 100644 Assets/Resources/Prefabs/Weapons/NiteLife/ChargeBlast SG.prefab.meta create mode 100644 Assets/Resources/Prefabs/Weapons/NiteLife/ChargeBlast+-.prefab create mode 100644 Assets/Resources/Prefabs/Weapons/NiteLife/ChargeBlast+-.prefab.meta create mode 100644 Assets/Resources/Prefabs/Weapons/NiteLife/FastBlast+-.prefab create mode 100644 Assets/Resources/Prefabs/Weapons/NiteLife/FastBlast+-.prefab.meta delete mode 100644 Assets/Scripts/ServerShared/Behaviors/FactoryBehavior.cs delete mode 100644 Assets/Scripts/ServerShared/Behaviors/FactoryBehavior.cs.meta delete mode 100644 Assets/Scripts/ServerShared/BlueprintData.cs delete mode 100644 Assets/Scripts/ServerShared/BlueprintData.cs.meta delete mode 100644 Assets/Scripts/ServerShared/LoadoutData.cs delete mode 100644 Assets/Scripts/ServerShared/LoadoutData.cs.meta delete mode 100644 Assets/Scripts/TechTreeMsagl.cs delete mode 100644 Assets/Scripts/TechTreeMsagl.cs.meta diff --git a/Assets/Materials/UI/Map Gravity Lines.mat b/Assets/Materials/UI/Map Gravity Lines.mat index e73d377f3..886f9fb90 100644 --- a/Assets/Materials/UI/Map Gravity Lines.mat +++ b/Assets/Materials/UI/Map Gravity Lines.mat @@ -86,7 +86,7 @@ Material: - _Mode: 0 - _OcclusionStrength: 1 - _Parallax: 0.02 - - _Scale: 3.8277004 + - _Scale: 4.910362 - _SmoothnessTextureChannel: 0 - _SpecularHighlights: 1 - _SrcBlend: 1 diff --git a/Assets/Resources/Prefabs/Weapons/Alakrita.meta b/Assets/Resources/Prefabs/Weapons/Alakrita.meta new file mode 100644 index 000000000..b37f36297 --- /dev/null +++ b/Assets/Resources/Prefabs/Weapons/Alakrita.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1047a499ac7066e49ac8b8153e0e88f3 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Prefabs/Weapons/Alakrita/Spectra.prefab b/Assets/Resources/Prefabs/Weapons/Alakrita/Spectra.prefab new file mode 100644 index 000000000..741fb12f4 --- /dev/null +++ b/Assets/Resources/Prefabs/Weapons/Alakrita/Spectra.prefab @@ -0,0 +1,237 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &4203591693056891767 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4203591693056891769} + - component: {fileID: 4203591693056891768} + m_Layer: 0 + m_Name: Spectra + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4203591693056891769 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4203591693056891767} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 4203591693453005872} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &4203591693056891768 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4203591693056891767} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5745a5be5f0c02b4b88bd094ea609c13, type: 3} + m_Name: + m_EditorClassIdentifier: + ProjectilePrototype: {fileID: 4203591693453005875} +--- !u!1 &4203591693453005871 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4203591693453005872} + - component: {fileID: 4203591693453005874} + - component: {fileID: 4203591693453005873} + - component: {fileID: 4203591693453005875} + m_Layer: 0 + m_Name: Pulse Laser + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4203591693453005872 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4203591693453005871} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 4203591693056891769} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &4203591693453005874 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4203591693453005871} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 166b726996e49bd4b87608739a5af815, type: 3} + m_Name: + m_EditorClassIdentifier: + IntensityCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 15.359776 + outSlope: 15.359776 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0.17217594 + - serializedVersion: 3 + time: 0.14818993 + value: 1 + inSlope: -0.07577679 + outSlope: -0.07577679 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.07689258 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: -0.09546486 + outSlope: -0.09546486 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.07746119 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + Duration: 0.15 + LineRenderer: {fileID: 4203591693453005873} +--- !u!120 &4203591693453005873 +LineRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4203591693453005871} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 0 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 521deb6b226a2f647b1f07d7478f7770, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Positions: + - {x: 0, y: 0, z: 0} + - {x: 0, y: 0, z: 10} + m_Parameters: + serializedVersion: 3 + widthMultiplier: 1 + widthCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + colorGradient: + serializedVersion: 2 + key0: {r: 0.05098039, g: 1, b: 0.05098039, a: 1} + key1: {r: 0.05098039, g: 1, b: 0.05098039, a: 1} + key2: {r: 1, g: 1, b: 1, a: 0} + key3: {r: 1, g: 1, b: 1, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 65535 + ctime3: 65535 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + numCornerVertices: 0 + numCapVertices: 2 + alignment: 0 + textureMode: 0 + shadowBias: 0.5 + generateLightingData: 0 + m_UseWorldSpace: 1 + m_Loop: 0 +--- !u!114 &4203591693453005875 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4203591693453005871} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1281fe44325f9b548aa42dc331b17266, type: 3} + m_Name: + m_EditorClassIdentifier: diff --git a/Assets/Resources/Prefabs/Weapons/Alakrita/Spectra.prefab.meta b/Assets/Resources/Prefabs/Weapons/Alakrita/Spectra.prefab.meta new file mode 100644 index 000000000..c7e893096 --- /dev/null +++ b/Assets/Resources/Prefabs/Weapons/Alakrita/Spectra.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 157c2c2f52f8a5544a48159e47675f42 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Prefabs/Weapons/Lightsail.meta b/Assets/Resources/Prefabs/Weapons/Lightsail.meta new file mode 100644 index 000000000..824a83386 --- /dev/null +++ b/Assets/Resources/Prefabs/Weapons/Lightsail.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 72ee3ccd53cd65c43aac50e566147097 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Prefabs/Weapons/Machinegun.prefab b/Assets/Resources/Prefabs/Weapons/Lightsail/ClearPath.prefab similarity index 100% rename from Assets/Resources/Prefabs/Weapons/Machinegun.prefab rename to Assets/Resources/Prefabs/Weapons/Lightsail/ClearPath.prefab diff --git a/Assets/Resources/Prefabs/Weapons/Machinegun.prefab.meta b/Assets/Resources/Prefabs/Weapons/Lightsail/ClearPath.prefab.meta similarity index 100% rename from Assets/Resources/Prefabs/Weapons/Machinegun.prefab.meta rename to Assets/Resources/Prefabs/Weapons/Lightsail/ClearPath.prefab.meta diff --git a/Assets/Resources/Prefabs/Weapons/Lucent.meta b/Assets/Resources/Prefabs/Weapons/Lucent.meta new file mode 100644 index 000000000..2af5b033b --- /dev/null +++ b/Assets/Resources/Prefabs/Weapons/Lucent.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 595692ab92bed5145a8bd108bafdb8c1 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Prefabs/Weapons/Lucent/RainbowLite.prefab b/Assets/Resources/Prefabs/Weapons/Lucent/RainbowLite.prefab new file mode 100644 index 000000000..8588be10e --- /dev/null +++ b/Assets/Resources/Prefabs/Weapons/Lucent/RainbowLite.prefab @@ -0,0 +1,255 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &4203591693056891767 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4203591693056891769} + - component: {fileID: 4203591693056891768} + m_Layer: 0 + m_Name: RainbowLite + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4203591693056891769 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4203591693056891767} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 4203591693453005872} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &4203591693056891768 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4203591693056891767} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5745a5be5f0c02b4b88bd094ea609c13, type: 3} + m_Name: + m_EditorClassIdentifier: + ProjectilePrototype: {fileID: 4203591693453005875} +--- !u!1 &4203591693453005871 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4203591693453005872} + - component: {fileID: 4203591693453005874} + - component: {fileID: 4203591693453005873} + - component: {fileID: 4203591693453005875} + m_Layer: 0 + m_Name: Laser + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4203591693453005872 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4203591693453005871} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 4203591693056891769} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &4203591693453005874 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4203591693453005871} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 166b726996e49bd4b87608739a5af815, type: 3} + m_Name: + m_EditorClassIdentifier: + IntensityCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 15.359776 + outSlope: 15.359776 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0.17217594 + - serializedVersion: 3 + time: 0.14818993 + value: 1 + inSlope: -0.07577679 + outSlope: -0.07577679 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.07689258 + - serializedVersion: 3 + time: 0.49870214 + value: 0.66603607 + inSlope: 0.021693684 + outSlope: 0.021693684 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.85040694 + value: 0.99160814 + inSlope: -0.19486254 + outSlope: -0.19486254 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: -17.741524 + outSlope: -17.741524 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.08716334 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + Duration: 0.75 + LineRenderer: {fileID: 4203591693453005873} +--- !u!120 &4203591693453005873 +LineRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4203591693453005871} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 0 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 521deb6b226a2f647b1f07d7478f7770, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Positions: + - {x: 0, y: 0, z: 0} + - {x: 0, y: 0, z: 10} + m_Parameters: + serializedVersion: 3 + widthMultiplier: 0.5 + widthCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + colorGradient: + serializedVersion: 2 + key0: {r: 0.7216981, g: 0.9664325, b: 1, a: 1} + key1: {r: 0.7877358, g: 0.958054, b: 1, a: 1} + key2: {r: 1, g: 1, b: 1, a: 0} + key3: {r: 1, g: 1, b: 1, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 65535 + ctime3: 65535 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + numCornerVertices: 0 + numCapVertices: 2 + alignment: 0 + textureMode: 0 + shadowBias: 0.5 + generateLightingData: 0 + m_UseWorldSpace: 1 + m_Loop: 0 +--- !u!114 &4203591693453005875 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4203591693453005871} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1281fe44325f9b548aa42dc331b17266, type: 3} + m_Name: + m_EditorClassIdentifier: diff --git a/Assets/Resources/Prefabs/Weapons/Lucent/RainbowLite.prefab.meta b/Assets/Resources/Prefabs/Weapons/Lucent/RainbowLite.prefab.meta new file mode 100644 index 000000000..7301a6ae2 --- /dev/null +++ b/Assets/Resources/Prefabs/Weapons/Lucent/RainbowLite.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: a44ad75c47816e44187b99352f0569ca +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Prefabs/Weapons/Lucent/TaranisLG.prefab b/Assets/Resources/Prefabs/Weapons/Lucent/TaranisLG.prefab new file mode 100644 index 000000000..324903a71 --- /dev/null +++ b/Assets/Resources/Prefabs/Weapons/Lucent/TaranisLG.prefab @@ -0,0 +1,268 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &776367907867687054 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4033498549525708839} + - component: {fileID: 5568196571670878057} + - component: {fileID: 4364339867848153585} + m_Layer: 0 + m_Name: Bolt + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4033498549525708839 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 776367907867687054} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 8454157079536979760} + m_Father: {fileID: 6101924816820053886} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &5568196571670878057 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 776367907867687054} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5c75d76a7b418d3479761187b2d420bc, type: 3} + m_Name: + m_EditorClassIdentifier: + LightningCompute: {fileID: 8454157079536979775} + HitRadius: 5 +--- !u!114 &4364339867848153585 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 776367907867687054} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1281fe44325f9b548aa42dc331b17266, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &7951616788986827504 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6101924816820053886} + - component: {fileID: 54194200898280364} + m_Layer: 0 + m_Name: Lightning Rifle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &6101924816820053886 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7951616788986827504} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 4033498549525708839} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &54194200898280364 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7951616788986827504} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9aff863873a6a6d41a619e63a0898c3d, type: 3} + m_Name: + m_EditorClassIdentifier: + Prototype: {fileID: 4364339867848153585} +--- !u!1001 &1379448248635655934 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 4033498549525708839} + m_Modifications: + - target: {fileID: 7383646976225659329, guid: eb3a880755444d144a4d7f13ef11df77, + type: 3} + propertyPath: Animate + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7383646976225659329, guid: eb3a880755444d144a4d7f13ef11df77, + type: 3} + propertyPath: MorphSpeed + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 7383646976225659329, guid: eb3a880755444d144a4d7f13ef11df77, + type: 3} + propertyPath: StartWidth + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7383646976225659329, guid: eb3a880755444d144a4d7f13ef11df77, + type: 3} + propertyPath: LeaderWidth + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 7383646976225659329, guid: eb3a880755444d144a4d7f13ef11df77, + type: 3} + propertyPath: BranchLength + value: 32 + objectReference: {fileID: 0} + - target: {fileID: 7383646976225659329, guid: eb3a880755444d144a4d7f13ef11df77, + type: 3} + propertyPath: EndPosition.x + value: -3424.384 + objectReference: {fileID: 0} + - target: {fileID: 7383646976225659329, guid: eb3a880755444d144a4d7f13ef11df77, + type: 3} + propertyPath: EndPosition.y + value: -311.8413 + objectReference: {fileID: 0} + - target: {fileID: 7383646976225659329, guid: eb3a880755444d144a4d7f13ef11df77, + type: 3} + propertyPath: EndPosition.z + value: 6464.0195 + objectReference: {fileID: 0} + - target: {fileID: 7383646976225659329, guid: eb3a880755444d144a4d7f13ef11df77, + type: 3} + propertyPath: PulseDuration + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 7383646976225659329, guid: eb3a880755444d144a4d7f13ef11df77, + type: 3} + propertyPath: LeaderDuration + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 7383646976225659329, guid: eb3a880755444d144a4d7f13ef11df77, + type: 3} + propertyPath: NoiseAmplitude + value: 32 + objectReference: {fileID: 0} + - target: {fileID: 7383646976225659329, guid: eb3a880755444d144a4d7f13ef11df77, + type: 3} + propertyPath: NoiseLacunarity + value: 6 + objectReference: {fileID: 0} + - target: {fileID: 7383646976225659329, guid: eb3a880755444d144a4d7f13ef11df77, + type: 3} + propertyPath: StartPosition.x + value: -4001.9797 + objectReference: {fileID: 0} + - target: {fileID: 7383646976225659329, guid: eb3a880755444d144a4d7f13ef11df77, + type: 3} + propertyPath: StartPosition.y + value: -362.0634 + objectReference: {fileID: 0} + - target: {fileID: 7383646976225659329, guid: eb3a880755444d144a4d7f13ef11df77, + type: 3} + propertyPath: StartPosition.z + value: 6939.794 + objectReference: {fileID: 0} + - target: {fileID: 7383646976225659342, guid: eb3a880755444d144a4d7f13ef11df77, + type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7383646976225659342, guid: eb3a880755444d144a4d7f13ef11df77, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7383646976225659342, guid: eb3a880755444d144a4d7f13ef11df77, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7383646976225659342, guid: eb3a880755444d144a4d7f13ef11df77, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7383646976225659342, guid: eb3a880755444d144a4d7f13ef11df77, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7383646976225659342, guid: eb3a880755444d144a4d7f13ef11df77, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 7383646976225659342, guid: eb3a880755444d144a4d7f13ef11df77, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 7383646976225659342, guid: eb3a880755444d144a4d7f13ef11df77, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 7383646976225659342, guid: eb3a880755444d144a4d7f13ef11df77, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7383646976225659342, guid: eb3a880755444d144a4d7f13ef11df77, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7383646976225659342, guid: eb3a880755444d144a4d7f13ef11df77, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7383646976225659343, guid: eb3a880755444d144a4d7f13ef11df77, + type: 3} + propertyPath: m_Name + value: Lightning + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: eb3a880755444d144a4d7f13ef11df77, type: 3} +--- !u!4 &8454157079536979760 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 7383646976225659342, guid: eb3a880755444d144a4d7f13ef11df77, + type: 3} + m_PrefabInstance: {fileID: 1379448248635655934} + m_PrefabAsset: {fileID: 0} +--- !u!114 &8454157079536979775 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 7383646976225659329, guid: eb3a880755444d144a4d7f13ef11df77, + type: 3} + m_PrefabInstance: {fileID: 1379448248635655934} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 044c2be5da0fc2340a09f856be731cea, type: 3} + m_Name: + m_EditorClassIdentifier: diff --git a/Assets/Resources/Prefabs/Weapons/Lucent/TaranisLG.prefab.meta b/Assets/Resources/Prefabs/Weapons/Lucent/TaranisLG.prefab.meta new file mode 100644 index 000000000..5da4bc2eb --- /dev/null +++ b/Assets/Resources/Prefabs/Weapons/Lucent/TaranisLG.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: dfdb222a2d25725419f9f7fb60b1f5fe +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Prefabs/Weapons/NiteLife.meta b/Assets/Resources/Prefabs/Weapons/NiteLife.meta new file mode 100644 index 000000000..67d1f847e --- /dev/null +++ b/Assets/Resources/Prefabs/Weapons/NiteLife.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: dd6e57f254f321442926907ba5e9009d +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Prefabs/Weapons/NiteLife/ChargeBlast SG.prefab b/Assets/Resources/Prefabs/Weapons/NiteLife/ChargeBlast SG.prefab new file mode 100644 index 000000000..4ea1b6d4e --- /dev/null +++ b/Assets/Resources/Prefabs/Weapons/NiteLife/ChargeBlast SG.prefab @@ -0,0 +1,325 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &1038711833328602429 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7093708978518643867} + - component: {fileID: 4746410263980518329} + - component: {fileID: 277178765566372861} + - component: {fileID: 654273117314929370} + m_Layer: 0 + m_Name: Bullet + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &7093708978518643867 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1038711833328602429} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 7887646903913370668} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &4746410263980518329 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1038711833328602429} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1281fe44325f9b548aa42dc331b17266, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!96 &277178765566372861 +TrailRenderer: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1038711833328602429} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 9c20b9ccbbbb1b14cb5729e0c8460cd9, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Time: 0.1 + m_Parameters: + serializedVersion: 3 + widthMultiplier: 1 + widthCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0.5 + inSlope: 0 + outSlope: -0.5 + tangentMode: 69 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: -0.5 + outSlope: 0 + tangentMode: 69 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + colorGradient: + serializedVersion: 2 + key0: {r: 0.45098042, g: 0.8169934, b: 1, a: 1} + key1: {r: 1, g: 0.04705882, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 31804 + ctime2: 65535 + ctime3: 65535 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 3 + m_NumAlphaKeys: 2 + numCornerVertices: 0 + numCapVertices: 0 + alignment: 0 + textureMode: 0 + shadowBias: 0.5 + generateLightingData: 0 + m_MinVertexDistance: 1 + m_Autodestruct: 0 + m_Emitting: 1 +--- !u!114 &654273117314929370 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1038711833328602429} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4528540a139424748a7b6c47bfecc7fd, type: 3} + m_Name: + m_EditorClassIdentifier: + Trail: {fileID: 277178765566372861} + Gravity: 1 + Drag: 0.1 + HitEffect: {fileID: 3196731101172068069} + AirburstDistance: 0 + AirburstRange: 0 + DirectHitDamageMultiplier: 1 +--- !u!1 &6642079567538326943 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7887646903913370668} + - component: {fileID: 4191762351494344457} + m_Layer: 0 + m_Name: ChargeBlast SG + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &7887646903913370668 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6642079567538326943} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 7093708978518643867} + - {fileID: 6081895055445446888} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &4191762351494344457 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6642079567538326943} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 49c173e3c2313ca4d9d04d0d87ec0f06, type: 3} + m_Name: + m_EditorClassIdentifier: + ProjectilePrototype: {fileID: 4746410263980518329} + InheritVelocity: 0 +--- !u!1001 &6082388488576249182 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 7887646903913370668} + m_Modifications: + - target: {fileID: 1337198075554910, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, type: 3} + propertyPath: m_Name + value: TinyExplosion + objectReference: {fileID: 0} + - target: {fileID: 4441266138185142, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, type: 3} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4441266138185142, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, type: 3} + propertyPath: m_LocalPosition.x + value: -4.2346153 + objectReference: {fileID: 0} + - target: {fileID: 4441266138185142, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, type: 3} + propertyPath: m_LocalPosition.y + value: 2.42 + objectReference: {fileID: 0} + - target: {fileID: 4441266138185142, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, type: 3} + propertyPath: m_LocalPosition.z + value: -21.91896 + objectReference: {fileID: 0} + - target: {fileID: 4441266138185142, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, type: 3} + propertyPath: m_LocalRotation.w + value: 0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 4441266138185142, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, type: 3} + propertyPath: m_LocalRotation.x + value: -0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 4441266138185142, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4441266138185142, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4441266138185142, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: -90 + objectReference: {fileID: 0} + - target: {fileID: 4441266138185142, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4441266138185142, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 198175801688348628, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, + type: 3} + propertyPath: looping + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 198175801688348628, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, + type: 3} + propertyPath: prewarm + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 198814760465859298, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, + type: 3} + propertyPath: looping + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 198814760465859298, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, + type: 3} + propertyPath: prewarm + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 198942329355805636, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, + type: 3} + propertyPath: looping + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 198942329355805636, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, + type: 3} + propertyPath: prewarm + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, type: 3} +--- !u!4 &6081895055445446888 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4441266138185142, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, + type: 3} + m_PrefabInstance: {fileID: 6082388488576249182} + m_PrefabAsset: {fileID: 0} +--- !u!114 &3196731101172068069 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 8662091027736085435, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, + type: 3} + m_PrefabInstance: {fileID: 6082388488576249182} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1281fe44325f9b548aa42dc331b17266, type: 3} + m_Name: + m_EditorClassIdentifier: diff --git a/Assets/Resources/Prefabs/Weapons/NiteLife/ChargeBlast SG.prefab.meta b/Assets/Resources/Prefabs/Weapons/NiteLife/ChargeBlast SG.prefab.meta new file mode 100644 index 000000000..12191de8f --- /dev/null +++ b/Assets/Resources/Prefabs/Weapons/NiteLife/ChargeBlast SG.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 63d8ae17f011efa46baa2098b495c687 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Prefabs/Weapons/NiteLife/ChargeBlast+-.prefab b/Assets/Resources/Prefabs/Weapons/NiteLife/ChargeBlast+-.prefab new file mode 100644 index 000000000..074e4eadc --- /dev/null +++ b/Assets/Resources/Prefabs/Weapons/NiteLife/ChargeBlast+-.prefab @@ -0,0 +1,295 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &1038711833328602429 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7093708978518643867} + - component: {fileID: 4746410263980518329} + - component: {fileID: 277178765566372861} + - component: {fileID: 654273117314929370} + m_Layer: 0 + m_Name: Bullet + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &7093708978518643867 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1038711833328602429} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 7887646903913370668} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &4746410263980518329 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1038711833328602429} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1281fe44325f9b548aa42dc331b17266, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!96 &277178765566372861 +TrailRenderer: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1038711833328602429} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 9c20b9ccbbbb1b14cb5729e0c8460cd9, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Time: 0.1 + m_Parameters: + serializedVersion: 3 + widthMultiplier: 1 + widthCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: -1 + tangentMode: 69 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: -1 + outSlope: 0 + tangentMode: 69 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + colorGradient: + serializedVersion: 2 + key0: {r: 0.45098042, g: 0.7254902, b: 1, a: 1} + key1: {r: 1, g: 0.04705882, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 31804 + ctime2: 65535 + ctime3: 65535 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 3 + m_NumAlphaKeys: 2 + numCornerVertices: 0 + numCapVertices: 0 + alignment: 0 + textureMode: 0 + shadowBias: 0.5 + generateLightingData: 0 + m_MinVertexDistance: 1 + m_Autodestruct: 0 + m_Emitting: 1 +--- !u!114 &654273117314929370 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1038711833328602429} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4528540a139424748a7b6c47bfecc7fd, type: 3} + m_Name: + m_EditorClassIdentifier: + Trail: {fileID: 277178765566372861} + Gravity: 1 + Drag: 0.1 + HitEffect: {fileID: 2076706580412196357} + AirburstDistance: 0 + AirburstRange: 0 + DirectHitDamageMultiplier: 1 +--- !u!1 &6642079567538326943 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7887646903913370668} + - component: {fileID: 4191762351494344457} + m_Layer: 0 + m_Name: ChargeBlast+- + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &7887646903913370668 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6642079567538326943} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 7093708978518643867} + - {fileID: 7272146861310695432} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &4191762351494344457 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6642079567538326943} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 49c173e3c2313ca4d9d04d0d87ec0f06, type: 3} + m_Name: + m_EditorClassIdentifier: + ProjectilePrototype: {fileID: 4746410263980518329} + InheritVelocity: 0 +--- !u!1001 &7269966779758257598 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 7887646903913370668} + m_Modifications: + - target: {fileID: 1337198075554910, guid: 57ac85c583dd3cf4eb11d09aa058e940, type: 3} + propertyPath: m_Name + value: TinyExplosionBlue + objectReference: {fileID: 0} + - target: {fileID: 4441266138185142, guid: 57ac85c583dd3cf4eb11d09aa058e940, type: 3} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4441266138185142, guid: 57ac85c583dd3cf4eb11d09aa058e940, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4441266138185142, guid: 57ac85c583dd3cf4eb11d09aa058e940, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4441266138185142, guid: 57ac85c583dd3cf4eb11d09aa058e940, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4441266138185142, guid: 57ac85c583dd3cf4eb11d09aa058e940, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4441266138185142, guid: 57ac85c583dd3cf4eb11d09aa058e940, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4441266138185142, guid: 57ac85c583dd3cf4eb11d09aa058e940, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4441266138185142, guid: 57ac85c583dd3cf4eb11d09aa058e940, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4441266138185142, guid: 57ac85c583dd3cf4eb11d09aa058e940, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4441266138185142, guid: 57ac85c583dd3cf4eb11d09aa058e940, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4441266138185142, guid: 57ac85c583dd3cf4eb11d09aa058e940, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 57ac85c583dd3cf4eb11d09aa058e940, type: 3} +--- !u!4 &7272146861310695432 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4441266138185142, guid: 57ac85c583dd3cf4eb11d09aa058e940, + type: 3} + m_PrefabInstance: {fileID: 7269966779758257598} + m_PrefabAsset: {fileID: 0} +--- !u!114 &2076706580412196357 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 8662091027736085435, guid: 57ac85c583dd3cf4eb11d09aa058e940, + type: 3} + m_PrefabInstance: {fileID: 7269966779758257598} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1281fe44325f9b548aa42dc331b17266, type: 3} + m_Name: + m_EditorClassIdentifier: diff --git a/Assets/Resources/Prefabs/Weapons/NiteLife/ChargeBlast+-.prefab.meta b/Assets/Resources/Prefabs/Weapons/NiteLife/ChargeBlast+-.prefab.meta new file mode 100644 index 000000000..bf27e1af3 --- /dev/null +++ b/Assets/Resources/Prefabs/Weapons/NiteLife/ChargeBlast+-.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 87b80322dca18e34bb624c36faef4917 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Prefabs/Weapons/NiteLife/FastBlast+-.prefab b/Assets/Resources/Prefabs/Weapons/NiteLife/FastBlast+-.prefab new file mode 100644 index 000000000..cc0bd66d2 --- /dev/null +++ b/Assets/Resources/Prefabs/Weapons/NiteLife/FastBlast+-.prefab @@ -0,0 +1,5169 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &1038711833328602429 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7093708978518643867} + - component: {fileID: 4746410263980518329} + - component: {fileID: 654273117314929370} + - component: {fileID: 1782208234081298454} + m_Layer: 0 + m_Name: Bullet + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &7093708978518643867 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1038711833328602429} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 7266740123558298384} + m_Father: {fileID: 7887646903913370668} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &4746410263980518329 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1038711833328602429} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1281fe44325f9b548aa42dc331b17266, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &654273117314929370 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1038711833328602429} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4528540a139424748a7b6c47bfecc7fd, type: 3} + m_Name: + m_EditorClassIdentifier: + Trail: {fileID: 2983319151296838409} + Gravity: 1 + Drag: 0.1 + HitEffect: {fileID: 6014187763460843580} + AirburstDistance: 0 + AirburstRange: 0 + DirectHitDamageMultiplier: 1 +--- !u!120 &1782208234081298454 +LineRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1038711833328602429} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 0 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: a3d833bf6ee0ed54994a6cfdc76b3539, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Positions: + - {x: 0, y: 0, z: 4} + - {x: 0, y: 0, z: -2} + m_Parameters: + serializedVersion: 3 + widthMultiplier: 1 + widthCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0.5080659 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + colorGradient: + serializedVersion: 2 + key0: {r: 0.05098039, g: 0.05098039, b: 1, a: 1} + key1: {r: 0, g: 0, b: 0, a: 0} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + numCornerVertices: 0 + numCapVertices: 0 + alignment: 0 + textureMode: 0 + shadowBias: 0.5 + generateLightingData: 0 + m_UseWorldSpace: 0 + m_Loop: 0 +--- !u!1 &1666871289929742290 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7266740123558298384} + - component: {fileID: 2983319151296838409} + m_Layer: 0 + m_Name: Trail + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &7266740123558298384 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1666871289929742290} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 7093708978518643867} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!96 &2983319151296838409 +TrailRenderer: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1666871289929742290} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: af2d3f1cfe85b8449964aba7ec8ce480, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Time: 0.025 + m_Parameters: + serializedVersion: 3 + widthMultiplier: 1 + widthCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0.2500019 + inSlope: 0 + outSlope: 0.7499981 + tangentMode: 69 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0.7499981 + outSlope: 0 + tangentMode: 69 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + colorGradient: + serializedVersion: 2 + key0: {r: 0.029800005, g: 0.40726656, b: 0.59599996, a: 1} + key1: {r: 0, g: 0, b: 0, a: 0} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 65535 + ctime3: 65535 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + numCornerVertices: 0 + numCapVertices: 0 + alignment: 0 + textureMode: 0 + shadowBias: 0.5 + generateLightingData: 0 + m_MinVertexDistance: 1 + m_Autodestruct: 0 + m_Emitting: 1 +--- !u!1 &6083979938508346270 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6086720148793020400} + - component: {fileID: 6246154612161467640} + - component: {fileID: 6014187763460843580} + - component: {fileID: 7207477574855530992} + - component: {fileID: 6244989522357989308} + m_Layer: 0 + m_Name: Sparks + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &6086720148793020400 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6083979938508346270} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 2, y: 2, z: 2} + m_Children: [] + m_Father: {fileID: 7887646903913370668} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!199 &6246154612161467640 +ParticleSystemRenderer: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6083979938508346270} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 4294967295 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 776677ab3818fb249adaca05f4e04545, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_RenderMode: 1 + m_SortMode: 1 + m_MinParticleSize: 0 + m_MaxParticleSize: 0.5 + m_CameraVelocityScale: 0 + m_VelocityScale: 0.25 + m_LengthScale: 0 + m_SortingFudge: 0 + m_NormalDirection: 1 + m_ShadowBias: 0 + m_RenderAlignment: 0 + m_Pivot: {x: 0, y: 0, z: 0} + m_Flip: {x: 0, y: 0, z: 0} + m_UseCustomVertexStreams: 1 + m_EnableGPUInstancing: 0 + m_ApplyActiveColorSpace: 0 + m_AllowRoll: 1 + m_FreeformStretching: 0 + m_RotateWithStretchDirection: 1 + m_VertexStreams: 000304 + m_Mesh: {fileID: 0} + m_Mesh1: {fileID: 0} + m_Mesh2: {fileID: 0} + m_Mesh3: {fileID: 0} + m_MaskInteraction: 0 +--- !u!114 &6014187763460843580 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6083979938508346270} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1281fe44325f9b548aa42dc331b17266, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &7207477574855530992 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6083979938508346270} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: db021a309de3d324588c5603de40c29f, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!198 &6244989522357989308 +ParticleSystem: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6083979938508346270} + serializedVersion: 7 + lengthInSec: 2 + simulationSpeed: 2 + stopAction: 0 + cullingMode: 3 + ringBufferMode: 0 + ringBufferLoopRange: {x: 0, y: 1} + looping: 0 + prewarm: 0 + playOnAwake: 1 + useUnscaledTime: 0 + autoRandomSeed: 1 + useRigidbodyForVelocity: 1 + startDelay: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + moveWithTransform: 0 + moveWithCustomTransform: {fileID: 0} + scalingMode: 2 + randomSeed: 0 + InitialModule: + serializedVersion: 3 + enabled: 1 + startLifetime: + serializedVersion: 2 + minMaxState: 3 + scalar: 1 + minScalar: 0.5 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 0 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0.5 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 0 + startSpeed: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 3 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 0 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0.5 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 0 + startColor: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 0.990566, g: 0.4385336, b: 0.19157171, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + startSize: + serializedVersion: 2 + minMaxState: 3 + scalar: 0.2 + minScalar: 0.05 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 0 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0.19999999 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 0 + startSizeY: + serializedVersion: 2 + minMaxState: 3 + scalar: 1 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 0 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 0 + startSizeZ: + serializedVersion: 2 + minMaxState: 3 + scalar: 1 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 0 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 0 + startRotationX: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startRotationY: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startRotation: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + randomizeRotationDirection: 0 + maxNumParticles: 1000 + size3D: 0 + rotation3D: 0 + gravityModifier: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + ShapeModule: + serializedVersion: 6 + enabled: 1 + type: 0 + angle: 32.22 + length: 0.12 + boxThickness: {x: 0, y: 0, z: 0} + radiusThickness: 0 + donutRadius: 0.2 + m_Position: {x: 0, y: 0, z: 0} + m_Rotation: {x: 0, y: 0, z: 0} + m_Scale: {x: 1, y: 1, z: 1} + placementMode: 0 + m_MeshMaterialIndex: 0 + m_MeshNormalOffset: 0 + m_MeshSpawn: + mode: 0 + spread: 0 + speed: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Mesh: {fileID: 0} + m_MeshRenderer: {fileID: 0} + m_SkinnedMeshRenderer: {fileID: 0} + m_Sprite: {fileID: 0} + m_SpriteRenderer: {fileID: 0} + m_UseMeshMaterialIndex: 0 + m_UseMeshColors: 1 + alignToDirection: 0 + m_Texture: {fileID: 0} + m_TextureClipChannel: 3 + m_TextureClipThreshold: 0 + m_TextureUVChannel: 0 + m_TextureColorAffectsParticles: 1 + m_TextureAlphaAffectsParticles: 1 + m_TextureBilinearFiltering: 0 + randomDirectionAmount: 0 + sphericalDirectionAmount: 0 + randomPositionAmount: 0 + radius: + value: 0.43552133 + mode: 0 + spread: 0 + speed: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + arc: + value: 360 + mode: 0 + spread: 0 + speed: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + EmissionModule: + enabled: 1 + serializedVersion: 4 + rateOverTime: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 10 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + rateOverDistance: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_BurstCount: 1 + m_Bursts: + - serializedVersion: 2 + time: 0 + countCurve: + serializedVersion: 2 + minMaxState: 0 + scalar: 10 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + cycleCount: 1 + repeatInterval: 0.05 + probability: 1 + SizeModule: + enabled: 0 + curve: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + RotationModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + curve: + serializedVersion: 2 + minMaxState: 0 + scalar: 0.7853982 + minScalar: 0.7853982 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + ColorModule: + enabled: 1 + gradient: + serializedVersion: 2 + minMaxState: 1 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 0} + key1: {r: 0.91764706, g: 0.39607844, b: 0, a: 1} + key2: {r: 0, g: 0, b: 0, a: 1} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 6168 + atime2: 53199 + atime3: 65535 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 4 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + UVModule: + serializedVersion: 2 + enabled: 0 + mode: 0 + timeMode: 0 + fps: 30 + frameOverTime: + serializedVersion: 2 + minMaxState: 1 + scalar: 0.9999 + minScalar: 0.9999 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startFrame: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + speedRange: {x: 0, y: 1} + tilesX: 1 + tilesY: 1 + animationType: 0 + rowIndex: 0 + cycles: 1 + uvChannelMask: -1 + rowMode: 1 + sprites: + - sprite: {fileID: 0} + flipU: 0 + flipV: 0 + VelocityModule: + enabled: 1 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalX: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalY: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalZ: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalOffsetX: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalOffsetY: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalOffsetZ: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + radial: + serializedVersion: 2 + minMaxState: 1 + scalar: 5 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: -4.1481485 + outSlope: -4.1481485 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.36101347 + - serializedVersion: 3 + time: 0.115407646 + value: 0.32009315 + inSlope: -1.885982 + outSlope: -1.885982 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.13906091 + - serializedVersion: 3 + time: 1 + value: 0.25959396 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + speedModifier: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + inWorldSpace: 1 + InheritVelocityModule: + enabled: 0 + m_Mode: 0 + m_Curve: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + LifetimeByEmitterSpeedModule: + enabled: 0 + m_Curve: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: -0.8 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0.2 + inSlope: -0.8 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Range: {x: 0, y: 1} + ForceModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + inWorldSpace: 0 + randomizePerFrame: 0 + ExternalForcesModule: + serializedVersion: 2 + enabled: 0 + multiplierCurve: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + influenceFilter: 0 + influenceMask: + serializedVersion: 2 + m_Bits: 4294967295 + influenceList: [] + ClampVelocityModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + magnitude: + serializedVersion: 2 + minMaxState: 2 + scalar: 5 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: -2 + outSlope: -2 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxis: 0 + inWorldSpace: 0 + multiplyDragByParticleSize: 1 + multiplyDragByParticleVelocity: 1 + dampen: 1 + drag: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + NoiseModule: + enabled: 1 + strength: + serializedVersion: 2 + minMaxState: 0 + scalar: 0.5 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + strengthY: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + strengthZ: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + frequency: 1 + damping: 1 + octaves: 1 + octaveMultiplier: 0.5 + octaveScale: 2 + quality: 2 + scrollSpeed: + serializedVersion: 2 + minMaxState: 0 + scalar: 2 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remap: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: -1 + inSlope: 0 + outSlope: 2 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 2 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remapY: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: -1 + inSlope: 0 + outSlope: 2 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 2 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remapZ: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: -1 + inSlope: 0 + outSlope: 2 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 2 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remapEnabled: 0 + positionAmount: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + rotationAmount: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + sizeAmount: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + SizeBySpeedModule: + enabled: 0 + curve: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + range: {x: 0, y: 1} + separateAxes: 0 + RotationBySpeedModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + curve: + serializedVersion: 2 + minMaxState: 0 + scalar: 0.7853982 + minScalar: 0.7853982 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + range: {x: 0, y: 1} + ColorBySpeedModule: + enabled: 0 + gradient: + serializedVersion: 2 + minMaxState: 1 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + range: {x: 0, y: 1} + CollisionModule: + enabled: 0 + serializedVersion: 4 + type: 0 + collisionMode: 0 + colliderForce: 0 + multiplyColliderForceByParticleSize: 0 + multiplyColliderForceByParticleSpeed: 0 + multiplyColliderForceByCollisionAngle: 1 + m_Planes: + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + m_Dampen: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Bounce: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_EnergyLossOnCollision: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minKillSpeed: 0 + maxKillSpeed: 10000 + radiusScale: 1 + collidesWith: + serializedVersion: 2 + m_Bits: 4294967295 + maxCollisionShapes: 256 + quality: 0 + voxelSize: 0.5 + collisionMessages: 0 + collidesWithDynamic: 1 + interiorCollisions: 1 + TriggerModule: + enabled: 0 + serializedVersion: 2 + inside: 1 + outside: 0 + enter: 0 + exit: 0 + colliderQueryMode: 0 + radiusScale: 1 + primitives: + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + SubModule: + serializedVersion: 2 + enabled: 0 + subEmitters: + - serializedVersion: 3 + emitter: {fileID: 0} + type: 0 + properties: 0 + emitProbability: 1 + LightsModule: + enabled: 0 + ratio: 0 + light: {fileID: 0} + randomDistribution: 1 + color: 1 + range: 1 + intensity: 1 + rangeCurve: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + intensityCurve: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + maxLights: 20 + TrailModule: + enabled: 0 + mode: 0 + ratio: 1 + lifetime: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minVertexDistance: 0.2 + textureMode: 0 + ribbonCount: 1 + shadowBias: 0.5 + worldSpace: 0 + dieWithParticles: 1 + sizeAffectsWidth: 1 + sizeAffectsLifetime: 0 + inheritParticleColor: 1 + generateLightingData: 0 + splitSubEmitterRibbons: 0 + attachRibbonsToTransform: 0 + colorOverLifetime: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + widthOverTrail: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + colorOverTrail: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + CustomDataModule: + enabled: 0 + mode0: 0 + vectorComponentCount0: 4 + color0: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + colorLabel0: Color + vector0_0: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_0: X + vector0_1: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_1: Y + vector0_2: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_2: Z + vector0_3: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_3: W + mode1: 0 + vectorComponentCount1: 4 + color1: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + colorLabel1: Color + vector1_0: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_0: X + vector1_1: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_1: Y + vector1_2: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_2: Z + vector1_3: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_3: W +--- !u!1 &6642079567538326943 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7887646903913370668} + - component: {fileID: 4191762351494344457} + m_Layer: 0 + m_Name: FastBlast+- + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &7887646903913370668 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6642079567538326943} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 7093708978518643867} + - {fileID: 6086720148793020400} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &4191762351494344457 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6642079567538326943} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 49c173e3c2313ca4d9d04d0d87ec0f06, type: 3} + m_Name: + m_EditorClassIdentifier: + ProjectilePrototype: {fileID: 4746410263980518329} + InheritVelocity: 0 diff --git a/Assets/Resources/Prefabs/Weapons/NiteLife/FastBlast+-.prefab.meta b/Assets/Resources/Prefabs/Weapons/NiteLife/FastBlast+-.prefab.meta new file mode 100644 index 000000000..73b483117 --- /dev/null +++ b/Assets/Resources/Prefabs/Weapons/NiteLife/FastBlast+-.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: f394fe1d41c7ece49a8000fb9c30fc6c +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Settings.asset b/Assets/Resources/Settings.asset index 360b140a1..9ac441697 100644 --- a/Assets/Resources/Settings.asset +++ b/Assets/Resources/Settings.asset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:48ed12406c9160150f0ce423e76d76eb1d53eb44a3dfc114286eee8e790af83c -size 11391 +oid sha256:6b704c433b7f8c86d7aa2270d211ed9bfaed697f9710cb7ff6ab887ef3e98432 +size 11394 diff --git a/Assets/Scripts/Editor/DatabaseInspector.cs b/Assets/Scripts/Editor/DatabaseInspector.cs index 3660438e4..3d861a384 100644 --- a/Assets/Scripts/Editor/DatabaseInspector.cs +++ b/Assets/Scripts/Editor/DatabaseInspector.cs @@ -204,78 +204,6 @@ public class DatabaseInspector : EditorWindow Inspect(field.Name.SplitCamelCase(), ref dict, link.EntryType, ranged.Min, ranged.Max); else Inspect(field.Name.SplitCamelCase(), ref dict, link.EntryType); } - else if (type == typeof(List)) - { - var list = (List) field.GetValue(obj); - if(list==null) field.SetValue(obj, list = new List()); - - var blueprint = obj as BlueprintData; - var blueprintItem = DatabaseCache.Get(blueprint.Item); - if (blueprintItem is EquippableItemData equippableBlueprintItem) - { - Space(); - LabelField(field.Name.SplitCamelCase(), EditorStyles.boldLabel); - - using (var v = new VerticalScope(GUI.skin.box)) - { - var ingredients = blueprint.Ingredients.Keys - .Select(i => DatabaseCache.Get(i)) - .Where(i => i is CraftedItemData) - .Cast().ToArray(); - var ingredientNames = ingredients.Select(i => i.Name).ToArray(); - foreach (var effect in list) - { - using (var v2 = new VerticalScope(_list.ListItemStyle)) - { - using (var h = new HorizontalScope()) - { - GUILayout.Label("Ingredient", GUILayout.Width(width)); - if(ingredients.Length==0) - GUILayout.Label("No Ingredients!"); - else - { - var selectedIngredientIndex = - Array.FindIndex(ingredients, item => item.ID == effect.Ingredient); - if (selectedIngredientIndex == -1) - { - selectedIngredientIndex = 0; - GUI.changed = true; - } - var newSelection = Popup(selectedIngredientIndex, ingredientNames); - if (newSelection != selectedIngredientIndex) - GUI.changed = true; - effect.Ingredient = ingredients[newSelection].ID; - } - - var rect = GetControlRect(false, - GUILayout.Width(EditorGUIUtility.singleLineHeight)); - GUI.DrawTexture(rect, Icons.Instance.minus, ScaleMode.StretchToFill, true, 1, - LabelColor, 0, 0); - if (GUI.Button(rect, GUIContent.none, GUIStyle.none)) - { - list.Remove(effect); - break; - } - } - - Inspect(ref effect.StatReference, equippableBlueprintItem); - } - - } - - using (var h = new HorizontalScope(_list.ListItemStyle)) - { - GUILayout.Label("Add new Stat Effect", GUILayout.ExpandWidth(true)); - var rect = GetControlRect(false, GUILayout.Width(EditorGUIUtility.singleLineHeight)); - GUI.DrawTexture(rect, Icons.Instance.plus, ScaleMode.StretchToFill, true, 1, LabelColor, 0, 0); - if (GUI.Button(rect, GUIContent.none, GUIStyle.none)) - { - list.Add(new BlueprintStatEffect()); - } - } - } - } - } else if (type == typeof(List) && link != null) { var list = (List) field.GetValue(obj); @@ -735,6 +663,14 @@ public class DatabaseInspector : EditorWindow } } } + var rect = GetControlRect(false, + GUILayout.Width(EditorGUIUtility.singleLineHeight)); + GUI.DrawTexture(rect, Icons.Instance.minus, ScaleMode.StretchToFill, true, 1, + LabelColor, 0, 0); + if (GUI.Button(rect, GUIContent.none, GUIStyle.none)) + { + return Guid.Empty; + } } return value; @@ -974,103 +910,6 @@ public class DatabaseInspector : EditorWindow } } } - - public void Inspect(string label, ref StatReference effect) - { - using (new HorizontalScope()) - { - GUILayout.Label(label, GUILayout.Width(width)); - - using (new VerticalScope()) - { - var targetObjects = typeof(BehaviorData).GetAllChildClasses() - .Concat(typeof(EquippableItemData).GetAllChildClasses()).ToArray(); - var objectNames = targetObjects.Select(b => b.Name).ToArray(); - var selectedIndex = Array.IndexOf(objectNames, effect.Target); - if (selectedIndex == -1) - { - selectedIndex = 0; - GUI.changed = true; - } - using (new HorizontalScope()) - { - GUILayout.Label("Target", GUILayout.Width(width)); - var newSelection = Popup(selectedIndex, objectNames); - if (newSelection != selectedIndex) - GUI.changed = true; - effect.Target = objectNames[newSelection]; - } - - using (new HorizontalScope()) - { - GUILayout.Label("Stat", GUILayout.Width(width)); - var stats = targetObjects[selectedIndex].GetFields() - .Where(f => f.FieldType == typeof(PerformanceStat)).ToArray(); - if(stats.Length==0) - GUILayout.Label("No Stats!"); - else - { - var statNames = stats.Select(s => s.Name).ToArray(); - var selectedStatIndex = Array.IndexOf(statNames, effect.Stat); - if (selectedStatIndex == -1) - { - selectedStatIndex = 0; - GUI.changed = true; - } - var newSelection = Popup(selectedStatIndex, statNames); - if (newSelection != selectedStatIndex) - GUI.changed = true; - effect.Stat = statNames[newSelection]; - } - } - } - } - } - - public void Inspect(ref StatReference effect, EquippableItemData item) - { - using (new VerticalScope()) - { - var behaviorNames = new []{item.Name}.Concat(item.Behaviors.Select(b => b.GetType().Name)).ToArray(); - var selectedBehaviorIndex = Array.IndexOf(behaviorNames, effect.Target); - if (selectedBehaviorIndex == -1) - { - selectedBehaviorIndex = 0; - GUI.changed = true; - } - using (new HorizontalScope()) - { - GUILayout.Label("Behavior", GUILayout.Width(width)); - var newSelection = Popup(selectedBehaviorIndex, behaviorNames); - if (newSelection != selectedBehaviorIndex) - GUI.changed = true; - effect.Target = behaviorNames[newSelection]; - } - - using (new HorizontalScope()) - { - GUILayout.Label("Stat", GUILayout.Width(width)); - var stats = (selectedBehaviorIndex == 0 ? item.GetType() : item.Behaviors[selectedBehaviorIndex-1].GetType()).GetFields() - .Where(f => f.FieldType == typeof(PerformanceStat)).ToArray(); - if(stats.Length==0) - GUILayout.Label("No Stats!"); - else - { - var statNames = stats.Select(s => s.Name).ToArray(); - var selectedStatIndex = Array.IndexOf(statNames, effect.Stat); - if (selectedStatIndex == -1) - { - selectedStatIndex = 0; - GUI.changed = true; - } - var newSelection = Popup(selectedStatIndex, statNames); - if (newSelection != selectedStatIndex) - GUI.changed = true; - effect.Stat = statNames[newSelection]; - } - } - } - } public Shape Inspect(string label, Shape value, HullData hull = null) { @@ -1144,6 +983,58 @@ public class DatabaseInspector : EditorWindow return value; } + public void Inspect(string label, ref StatReference effect) + { + using (new HorizontalScope()) + { + GUILayout.Label(label, GUILayout.Width(width)); + + using (new VerticalScope()) + { + var targetObjects = typeof(BehaviorData).GetAllChildClasses() + .Concat(typeof(EquippableItemData).GetAllChildClasses()).ToArray(); + var objectNames = targetObjects.Select(b => b.Name).ToArray(); + var selectedIndex = Array.IndexOf(objectNames, effect.Target); + if (selectedIndex == -1) + { + selectedIndex = 0; + GUI.changed = true; + } + using (new HorizontalScope()) + { + GUILayout.Label("Target", GUILayout.Width(width)); + var newSelection = Popup(selectedIndex, objectNames); + if (newSelection != selectedIndex) + GUI.changed = true; + effect.Target = objectNames[newSelection]; + } + + using (new HorizontalScope()) + { + GUILayout.Label("Stat", GUILayout.Width(width)); + var stats = targetObjects[selectedIndex].GetFields() + .Where(f => f.FieldType == typeof(PerformanceStat)).ToArray(); + if(stats.Length==0) + GUILayout.Label("No Stats!"); + else + { + var statNames = stats.Select(s => s.Name).ToArray(); + var selectedStatIndex = Array.IndexOf(statNames, effect.Stat); + if (selectedStatIndex == -1) + { + selectedStatIndex = 0; + GUI.changed = true; + } + var newSelection = Popup(selectedStatIndex, statNames); + if (newSelection != selectedStatIndex) + GUI.changed = true; + effect.Stat = statNames[newSelection]; + } + } + } + } + } + public PerformanceStat Inspect(string label, PerformanceStat value, bool isSimple = false) { if(value == null) @@ -1167,13 +1058,13 @@ public class DatabaseInspector : EditorWindow GUILayout.Label("", GUILayout.Width(width)); if (!isSimple) { - GUILayout.Label("H", _labelStyle); - value.HeatDependent = Toggle(value.HeatDependent); - GUILayout.Label("HEx", _labelStyle, GUILayout.Width(labelWidth + 5)); + GUILayout.Label("H", _labelStyle, GUILayout.Width(labelWidth)); value.HeatExponentMultiplier = DelayedFloatField(value.HeatExponentMultiplier); - GUILayout.Label("D", _labelStyle); - value.DurabilityDependent = Toggle(value.DurabilityDependent); - GUILayout.Label("QEx", _labelStyle, GUILayout.Width(labelWidth + 5)); + + GUILayout.Label("D", _labelStyle, GUILayout.Width(labelWidth)); + value.DurabilityExponentMultiplier = DelayedFloatField(value.DurabilityExponentMultiplier); + + GUILayout.Label("Q", _labelStyle, GUILayout.Width(labelWidth)); value.QualityExponent = DelayedFloatField(value.QualityExponent); } else @@ -1222,6 +1113,9 @@ public class DatabaseInspector : EditorWindow return; } + if(entry is INamedEntry namedEntry) + GUILayout.Label(namedEntry.EntryName, EditorStyles.boldLabel); + _view = BeginScrollView( _view, false, @@ -1282,86 +1176,6 @@ public class DatabaseInspector : EditorWindow } #endregion - #region Loadout - var loadout = entry as LoadoutData; - if (loadout != null) - { - Space(); - LabelField("Loadout Hull", EditorStyles.boldLabel); - - if (DatabaseCache.Get(loadout.Hull) is HullData loadoutHull) - { - // Reserve slots in the loadout for all equippable (non-hull) hardpoints - var hardpoints = loadoutHull.Hardpoints.Where(h => h.Type != HardpointType.Hull).ToArray(); - if (loadout.Gear.Count < hardpoints.Length) - loadout.Gear.AddRange(Enumerable.Repeat(Guid.Empty, hardpoints.Length - loadout.Gear.Count)); - - Space(); - using (var h = new HorizontalScope()) - { - // GUILayout.Label($"Equipped Items: {loadout.Gear.Sum(i=>((ItemData) DatabaseCache.Get(i))?.Size ?? 0)}/{loadoutHull.Capacity.Min}", EditorStyles.boldLabel); - GUILayout.Label($"Mass: {loadout.Gear.Sum(i=>((ItemData) DatabaseCache.Get(i))?.Mass ?? 0)}", EditorStyles.boldLabel, GUILayout.ExpandWidth(false)); - } - - int itemIndex = 0; - using (var v = new VerticalScope(GUI.skin.box)) - { - for (; itemIndex < hardpoints.Length; itemIndex++) - { - var hp = hardpoints[itemIndex]; - - var loadoutItem = DatabaseCache.Get(loadout.Gear[itemIndex]) as EquippableItemData; - - if (loadoutItem != null && loadoutItem.HardpointType != hp.Type) - { - loadout.Gear[itemIndex] = Guid.Empty; - Debug.Log($"Invalid Item \"{loadoutItem.Name}\" in {Enum.GetName(typeof(HardpointType),hp.Type)} hardpoint for loadout \"{loadout.Name}\""); - GUI.changed = true; - } - - using (var h = new HorizontalScope(_list.ListItemStyle)) - { - if (h.rect.Contains(current.mousePosition) && - (currentEventType == EventType.DragUpdated || currentEventType == EventType.DragPerform)) - { - var guid = (Guid) DragAndDrop.GetGenericData("Item"); - var draggedEquippable = DatabaseCache.Get(guid) as EquippableItemData; - var good = draggedEquippable != null && draggedEquippable.HardpointType == hp.Type; - if (currentEventType == EventType.DragUpdated) - DragAndDrop.visualMode = good ? DragAndDropVisualMode.Copy : DragAndDropVisualMode.Rejected; - else if (currentEventType == EventType.DragPerform && good) - { - DragAndDrop.AcceptDrag(); - loadout.Gear[itemIndex] = guid; - - GUI.changed = true; - } - } - - GUILayout.Label(Enum.GetName(typeof(HardpointType), hp.Type)); - if (loadoutItem == null || loadoutItem.HardpointType != hp.Type) - GUILayout.Label("Empty Hardpoint", GUILayout.ExpandWidth(false)); - else - { - GUILayout.Label(loadoutItem.Name, GUILayout.ExpandWidth(false)); - var rect = GetControlRect(false, GUILayout.Width(EditorGUIUtility.singleLineHeight)); - GUI.DrawTexture(rect, Icons.Instance.minus, ScaleMode.StretchToFill, true, 1, Color.black, 0, 0); - if (GUI.Button(rect, GUIContent.none, GUIStyle.none)) - loadout.Gear[itemIndex] = Guid.Empty; - } - } - } - } - - for (; itemIndex < loadout.Gear.Count; itemIndex++) - { - loadout.Gear.RemoveAt(itemIndex--); - GUI.changed = true; - } - } - } - #endregion - if (EditorGUI.EndChangeCheck()) { if(!previousBytes.ByteEquals(MessagePackSerializer.Serialize(entry))) diff --git a/Assets/Scripts/Editor/DatabaseView.cs b/Assets/Scripts/Editor/DatabaseView.cs index e61712ce9..c3bfcb10e 100644 --- a/Assets/Scripts/Editor/DatabaseView.cs +++ b/Assets/Scripts/Editor/DatabaseView.cs @@ -48,9 +48,9 @@ public class DatabaseListView : EditorWindow private const float LineHeight = 20; private Vector2 _view; private RethinkQueryStatus _queryStatus; - private Dictionary> _itemBlueprints = new Dictionary>(); - private HashSet _itemBlueprintFoldouts = new HashSet(); private HashSet _itemGroupFoldouts = new HashSet(); + private HashSet _itemManufacturerFoldouts = new HashSet(); + private HashSet<(Guid, HardpointType)> _itemManufacturerTypeFoldouts = new HashSet<(Guid, HardpointType)>(); private string _filePath => Path.Combine(ActionGameManager.GameDataDirectory.FullName, _fileName); private string _fileName = "AetherDB.msgpack"; @@ -65,30 +65,17 @@ public class DatabaseListView : EditorWindow // Create database cache _databaseCache = new DatabaseCache(_filePath); - var onInsert = new Action(entry => - { - if (entry is ItemData itemData) - { - if(!_itemBlueprints.ContainsKey(itemData.ID)) - _itemBlueprints[itemData.ID] = new HashSet(); - } - if (entry is BlueprintData blueprintData) - { - if(!_itemBlueprints.ContainsKey(blueprintData.Item)) - _itemBlueprints[blueprintData.Item] = new HashSet(); - _itemBlueprints[blueprintData.Item].Add(blueprintData.ID); - } - }); - _databaseCache.OnDataInsertLocal += onInsert; - _databaseCache.OnDataInsertRemote += onInsert; + // var onInsert = new Action(entry => + // { + // }); + // _databaseCache.OnDataInsertLocal += onInsert; + // _databaseCache.OnDataInsertRemote += onInsert; - var onDelete = new Action(entry => - { - if (entry is BlueprintData blueprintData) - _itemBlueprints[blueprintData.Item].Remove(blueprintData.ID); - }); - _databaseCache.OnDataDeleteLocal += onDelete; - _databaseCache.OnDataDeleteRemote += onDelete; + // var onDelete = new Action(entry => + // { + // }); + // _databaseCache.OnDataDeleteLocal += onDelete; + // _databaseCache.OnDataDeleteRemote += onDelete; _databaseCache.OnDataUpdateLocal += _ => Repaint(); _databaseCache.OnDataInsertLocal += _ => Repaint(); @@ -176,23 +163,6 @@ public class DatabaseListView : EditorWindow } } - using (new HorizontalScope()) - { - if (GUILayout.Button("Delete Orphaned Blueprints")) - { - int count = 0; - foreach (var blueprintData in _databaseCache.GetAll().ToArray()) - { - if (_databaseCache.Get(blueprintData.Item) == null) - { - _databaseCache.Delete(blueprintData); - count++; - } - } - Debug.Log($"Deleted {count} orphaned blueprints!"); - } - } - if (_queryStatus != null && _queryStatus.RetrievedItems < _queryStatus.GalaxyEntries + _queryStatus.ItemsEntries) { var progressRect = GetControlRect(false, 20); @@ -231,175 +201,169 @@ public class DatabaseListView : EditorWindow } if (_itemTypeFoldouts[i]) { - var typedItems = items.Where(e => e.GetType() == _itemTypes[i]).OrderBy(item => item.Name); - IEnumerable> itemGroups = new List>(); - if(_itemTypes[i] == typeof(SimpleCommodityData)) - itemGroups = typedItems.GroupBy(item => Enum.GetName(typeof(SimpleCommodityCategory), (item as SimpleCommodityData).Category)); - else if(_itemTypes[i] == typeof(CompoundCommodityData)) - itemGroups = typedItems.GroupBy(item => Enum.GetName(typeof(CompoundCommodityCategory), (item as CompoundCommodityData).Category)); - else if(_itemTypes[i] == typeof(GearData) || _itemTypes[i] == typeof(WeaponItemData)) - itemGroups = typedItems.GroupBy(item => Enum.GetName(typeof(HardpointType), (item as GearData).Hardpoint) ?? "Invalid Hardpoint"); - else if (_itemTypes[i] == typeof(HullData)) - itemGroups = typedItems.GroupBy(item => Enum.GetName(typeof(HullType), (item as HullData).HullType)); - else itemGroups = typedItems.GroupBy(item => "All"); - - foreach (var itemGroup in itemGroups) + if (_itemTypes[i] == typeof(SimpleCommodityData) || + _itemTypes[i] == typeof(CompoundCommodityData) || + _itemTypes[i] == typeof(HullData)) { - using (var h = new HorizontalScope(ListItemStyle)) - { - GUILayout.Space(20); - if (Foldout(_itemGroupFoldouts.Contains(itemGroup.Key), FormatTypeName(itemGroup.Key), true)) - _itemGroupFoldouts.Add(itemGroup.Key); - else _itemGroupFoldouts.Remove(itemGroup.Key); - } + var typedItems = items + .Where(e => e.GetType() == _itemTypes[i]) + .OrderBy(item => item.Name); + IEnumerable> itemGroups = new List>(); + if(_itemTypes[i] == typeof(SimpleCommodityData)) + itemGroups = typedItems.GroupBy(item => Enum.GetName(typeof(SimpleCommodityCategory), (item as SimpleCommodityData).Category)); + else if(_itemTypes[i] == typeof(CompoundCommodityData)) + itemGroups = typedItems.GroupBy(item => Enum.GetName(typeof(CompoundCommodityCategory), (item as CompoundCommodityData).Category)); + else if (_itemTypes[i] == typeof(HullData)) + itemGroups = typedItems.GroupBy(item => Enum.GetName(typeof(HullType), (item as HullData).HullType)); + else itemGroups = typedItems.GroupBy(item => "All"); - if (_itemGroupFoldouts.Contains(itemGroup.Key)) + foreach (var itemGroup in itemGroups) { - foreach (var item in itemGroup) + using (var h = new HorizontalScope(ListItemStyle)) { - var style = ListItemStyle; - var selected = SelectedItem == item.ID; - using (new HorizontalScope(selected?SelectedStyle:style)) - { - using (var h = new HorizontalScope()) - { - if (h.rect.Contains(currentEvent.mousePosition)) - { - if (currentEventType == EventType.MouseDrag) - { - DragAndDrop.PrepareStartDrag(); - DragAndDrop.SetGenericData("Item", item.ID); - DragAndDrop.StartDrag("Database Item"); - } - else if (currentEventType == EventType.MouseUp) - Select(item); - } + GUILayout.Space(20); + if (Foldout(_itemGroupFoldouts.Contains(itemGroup.Key), FormatTypeName(itemGroup.Key), true)) + _itemGroupFoldouts.Add(itemGroup.Key); + else _itemGroupFoldouts.Remove(itemGroup.Key); + } - GUILayout.Space(30); - GUILayout.Label(item.Name, selected ? EditorStyles.whiteLabel : GUI.skin.label); - } - - using (var h = new HorizontalScope(GUILayout.Width(15))) - { - if (GUI.Button(h.rect, GUIContent.none, GUIStyle.none)) - { - if(_itemBlueprintFoldouts.Contains(item.ID)) - _itemBlueprintFoldouts.Remove(item.ID); - else - _itemBlueprintFoldouts.Add(item.ID); - } - GUILayout.Label(_itemBlueprints[item.ID].Count.ToString()); - var rect = GetControlRect(false, GUILayout.Width(EditorGUIUtility.singleLineHeight)); - if (Event.current.type == EventType.Repaint) - { - var controlId = GUIUtility.GetControlID(1337, FocusType.Keyboard, position); - EditorStyles.foldout.Draw(rect, GUIContent.none, controlId, _itemBlueprintFoldouts.Contains(item.ID)); - } - } - } - - if (_itemBlueprintFoldouts.Contains(item.ID)) + if (_itemGroupFoldouts.Contains(itemGroup.Key)) + { + foreach (var item in itemGroup) { - foreach (var blueprintData in _itemBlueprints[item.ID] - .Select(id => _databaseCache.Get(id)) - .OrderBy(bp => bp.Quality)) + var style = ListItemStyle; + var selected = SelectedItem == item.ID; + using (new HorizontalScope(selected?SelectedStyle:style)) { - var blueprintStyle = ListItemStyle; - var blueprintSelected = SelectedItem == blueprintData.ID; - using (var h = new HorizontalScope(blueprintSelected ? SelectedStyle : blueprintStyle)) + using (var h = new HorizontalScope()) { if (h.rect.Contains(currentEvent.mousePosition)) { if (currentEventType == EventType.MouseDrag) { DragAndDrop.PrepareStartDrag(); - DragAndDrop.SetGenericData("Item", blueprintData.ID); + DragAndDrop.SetGenericData("Item", item.ID); DragAndDrop.StartDrag("Database Item"); } else if (currentEventType == EventType.MouseUp) - Select(blueprintData); + Select(item); } - GUILayout.Space(40); - GUILayout.Label(blueprintData.Name, - blueprintSelected ? EditorStyles.whiteLabel : GUI.skin.label); + GUILayout.Space(30); + GUILayout.Label(item.Name, selected ? EditorStyles.whiteLabel : GUI.skin.label); } } - - using (var h = new HorizontalScope(ListItemStyle)) - { - if (GUI.Button(h.rect, GUIContent.none, GUIStyle.none)) - { - var blueprint = new BlueprintData - { - Item = item.ID, - Name = item.Name - }; - _databaseCache.Add(blueprint); - Select(blueprint); - } - GUILayout.Space(40); - GUILayout.Label("New Blueprint"); - var rect = GetControlRect(false, GUILayout.Width(EditorGUIUtility.singleLineHeight)); - GUI.DrawTexture(rect, Icons.Instance.plus, ScaleMode.StretchToFill, true, 1, LabelColor, - 0, 0); - } } } - + } + } + else + { + if (!typeof(EquippableItemData).IsAssignableFrom(_itemTypes[i])) + throw new InvalidCastException($"Type {_itemTypes[i].Name} is invalid! Expected equippable item."); + var typedItems = items + .Where(e => e.GetType() == _itemTypes[i]) + .Cast() + .OrderBy(item => item.Name); + var manufacturerGroups = typedItems.GroupBy(item => item.Manufacturer); + foreach (var manufacturerGroup in manufacturerGroups) + { + var manufacturer = _databaseCache.Get(manufacturerGroup.Key); + var manufacturerName = manufacturer?.Name ?? "None"; using (var h = new HorizontalScope(ListItemStyle)) { - if (GUI.Button(h.rect, GUIContent.none, GUIStyle.none)) + GUILayout.Space(20); + if (Foldout(_itemManufacturerFoldouts.Contains(manufacturerGroup.Key), manufacturerName, true)) + _itemManufacturerFoldouts.Add(manufacturerGroup.Key); + else _itemManufacturerFoldouts.Remove(manufacturerGroup.Key); + } + + if (_itemManufacturerFoldouts.Contains(manufacturerGroup.Key)) + { + if (_itemTypes[i] == typeof(GearData) || _itemTypes[i] == typeof(WeaponItemData)) { - CreateItem(_itemTypes[i], newItem => + var itemGroups = manufacturerGroup.GroupBy(item => item.HardpointType); + + foreach (var itemGroup in itemGroups) { - if(newItem is SimpleCommodityData simpleCommodityData) + using (var h = new HorizontalScope(ListItemStyle)) { - simpleCommodityData.Category = - (SimpleCommodityCategory) Enum.Parse(typeof(SimpleCommodityCategory), - itemGroup.Key); - simpleCommodityData.Name = $"New {itemGroup.Key}"; + GUILayout.Space(30); + if (Foldout(_itemManufacturerTypeFoldouts.Contains((manufacturerGroup.Key, itemGroup.Key)), Enum.GetName(typeof(HardpointType), itemGroup.Key), true)) + _itemManufacturerTypeFoldouts.Add((manufacturerGroup.Key, itemGroup.Key)); + else _itemManufacturerTypeFoldouts.Remove((manufacturerGroup.Key, itemGroup.Key)); } - else if(newItem is CompoundCommodityData compoundCommodityData) + + if (_itemManufacturerTypeFoldouts.Contains((manufacturerGroup.Key, itemGroup.Key))) { - compoundCommodityData.Category = - (CompoundCommodityCategory) Enum.Parse( - typeof(CompoundCommodityCategory), itemGroup.Key); - compoundCommodityData.Name = $"New {itemGroup.Key}"; + foreach (var item in itemGroup) + { + var style = ListItemStyle; + var selected = SelectedItem == item.ID; + using (new HorizontalScope(selected?SelectedStyle:style)) + { + using (var h = new HorizontalScope()) + { + if (h.rect.Contains(currentEvent.mousePosition)) + { + if (currentEventType == EventType.MouseDrag) + { + DragAndDrop.PrepareStartDrag(); + DragAndDrop.SetGenericData("Item", item.ID); + DragAndDrop.StartDrag("Database Item"); + } + else if (currentEventType == EventType.MouseUp) + Select(item); + } + + GUILayout.Space(40); + GUILayout.Label(item.Name, selected ? EditorStyles.whiteLabel : GUI.skin.label); + } + } + } } - else if(newItem is GearData gearData) - { - gearData.Hardpoint = - (HardpointType) Enum.Parse(typeof(HardpointType), itemGroup.Key); - gearData.Name = $"New {itemGroup.Key}"; - } - else if(newItem is HullData hullData) - { - hullData.HullType = (HullType) Enum.Parse(typeof(HullType), itemGroup.Key); - hullData.Name = $"New {itemGroup.Key}"; - } - }); + } + } + else + { + foreach (var item in manufacturerGroup) + { + var style = ListItemStyle; + var selected = SelectedItem == item.ID; + using (new HorizontalScope(selected?SelectedStyle:style)) + { + using (var h = new HorizontalScope()) + { + if (h.rect.Contains(currentEvent.mousePosition)) + { + if (currentEventType == EventType.MouseDrag) + { + DragAndDrop.PrepareStartDrag(); + DragAndDrop.SetGenericData("Item", item.ID); + DragAndDrop.StartDrag("Database Item"); + } + else if (currentEventType == EventType.MouseUp) + Select(item); + } + + GUILayout.Space(30); + GUILayout.Label(item.Name, selected ? EditorStyles.whiteLabel : GUI.skin.label); + } + } + } } - GUILayout.Space(30); - GUILayout.Label("New " + itemGroup.Key); - var rect = GetControlRect(false, GUILayout.Width(EditorGUIUtility.singleLineHeight)); - GUI.DrawTexture(rect, Icons.Instance.plus, ScaleMode.StretchToFill, true, 1, LabelColor, 0, 0); } } - } - if (!itemGroups.Any()) + using (var h = new HorizontalScope(ListItemStyle)) { - using (var h = new HorizontalScope(ListItemStyle)) - { - if(GUI.Button(h.rect, GUIContent.none, GUIStyle.none)) - CreateItem(_itemTypes[i]); - GUILayout.Space(20); - GUILayout.Label("New " + _itemTypes[i].Name); - var rect = GetControlRect(false, GUILayout.Width(EditorGUIUtility.singleLineHeight)); - GUI.DrawTexture(rect, Icons.Instance.plus, ScaleMode.StretchToFill, true, 1, LabelColor, 0, 0); - } + if(GUI.Button(h.rect, GUIContent.none, GUIStyle.none)) + CreateItem(_itemTypes[i]); + GUILayout.Space(20); + GUILayout.Label("New " + FormatTypeName(_itemTypes[i].Name)); + var rect = GetControlRect(false, GUILayout.Width(EditorGUIUtility.singleLineHeight)); + GUI.DrawTexture(rect, Icons.Instance.plus, ScaleMode.StretchToFill, true, 1, LabelColor, 0, 0); } } } diff --git a/Assets/Scripts/Gameplay/EntityInstance.cs b/Assets/Scripts/Gameplay/EntityInstance.cs index 99ce20184..a4d83a005 100644 --- a/Assets/Scripts/Gameplay/EntityInstance.cs +++ b/Assets/Scripts/Gameplay/EntityInstance.cs @@ -493,7 +493,7 @@ public class EntityInstance : MonoBehaviour AkSoundEngine.SetObjectPosition(r.Value, r.Value.transform); AkSoundEngine.SetRTPCValue("performance_durability", r.Key.Item.DurabilityPerformance, r.Value); AkSoundEngine.SetRTPCValue("performance_thermal", r.Key.Item.ThermalPerformance, r.Value); - AkSoundEngine.SetRTPCValue("performance_quality", r.Key.Item.ItemManager.CompoundQuality(r.Key.Item.EquippableItem), r.Value); + AkSoundEngine.SetRTPCValue("performance_quality", r.Key.Item.EquippableItem.Quality, r.Value); } if (_reactor.reactor != null) @@ -503,7 +503,7 @@ public class EntityInstance : MonoBehaviour AkSoundEngine.SetRTPCValue("reactor_load", _reactor.reactor.CurrentLoadRatio, _reactor.sfxSource); AkSoundEngine.SetRTPCValue("performance_durability", _reactor.reactor.Item.DurabilityPerformance, _reactor.sfxSource); AkSoundEngine.SetRTPCValue("performance_thermal", _reactor.reactor.Item.ThermalPerformance, _reactor.sfxSource); - AkSoundEngine.SetRTPCValue("performance_quality", _reactor.reactor.Item.ItemManager.CompoundQuality(_reactor.reactor.Item.EquippableItem), _reactor.sfxSource); + AkSoundEngine.SetRTPCValue("performance_quality", _reactor.reactor.Item.EquippableItem.Quality, _reactor.sfxSource); } foreach (var x in RadiatorMeshes) diff --git a/Assets/Scripts/Gameplay/ShipInstance.cs b/Assets/Scripts/Gameplay/ShipInstance.cs index 2c498a878..1e105f944 100644 --- a/Assets/Scripts/Gameplay/ShipInstance.cs +++ b/Assets/Scripts/Gameplay/ShipInstance.cs @@ -96,8 +96,7 @@ public class ShipInstance : EntityInstance AkSoundEngine.SetRTPCValue("thruster_throttle", throttle, thrusterInstance.SfxSource); AkSoundEngine.SetRTPCValue("performance_durability", thrusterInstance.Thruster.Item.DurabilityPerformance, thrusterInstance.SfxSource); AkSoundEngine.SetRTPCValue("performance_thermal", thrusterInstance.Thruster.Item.ThermalPerformance, thrusterInstance.SfxSource); - AkSoundEngine.SetRTPCValue("performance_quality", - thrusterInstance.Thruster.Item.ItemManager.CompoundQuality(thrusterInstance.Thruster.Item.EquippableItem), thrusterInstance.SfxSource); + AkSoundEngine.SetRTPCValue("performance_quality", thrusterInstance.Thruster.Item.EquippableItem.Quality, thrusterInstance.SfxSource); } } diff --git a/Assets/Scripts/Gameplay/Weapons/GuidedProjectileManager.cs b/Assets/Scripts/Gameplay/Weapons/GuidedProjectileManager.cs index 8311b0cc5..218b1b994 100644 --- a/Assets/Scripts/Gameplay/Weapons/GuidedProjectileManager.cs +++ b/Assets/Scripts/Gameplay/Weapons/GuidedProjectileManager.cs @@ -38,7 +38,7 @@ public class GuidedProjectileManager : InstantWeaponEffectManager var p = ProjectilePrototype.Instantiate(); p.Source = source.transform; p.SourceEntity = source.Entity; - p.Target = target?.transform; + p.Target = target.transform; p.Frequency = guidance.DodgeFrequency; var hp = source.Entity.Hardpoints[item.Position.x, item.Position.y]; var barrel = source.GetBarrel(hp); @@ -56,6 +56,6 @@ public class GuidedProjectileManager : InstantWeaponEffectManager p.TopSpeed = item.Evaluate(guidance.MissileVelocity); p.TargetPosition = () => source.Entity.Position + length( (float3)source.LookAtPoint.position - source.Entity.Position) * source.Entity.LookDirection; } - else Debug.LogError($"Weapon {item.EquippableItem.Name} linked to {name} effect, but is not a Launcher!"); + else Debug.LogError($"Weapon {item.Data.Name} linked to {name} effect, but is not a Launcher!"); } } diff --git a/Assets/Scripts/ServerShared/AetheriaMath.cs b/Assets/Scripts/ServerShared/AetheriaMath.cs index 21a80a117..72bc642a1 100644 --- a/Assets/Scripts/ServerShared/AetheriaMath.cs +++ b/Assets/Scripts/ServerShared/AetheriaMath.cs @@ -189,4 +189,10 @@ public static class AetheriaMath x = saturate(x); return x * x * (3 - 2 * x); } + + public static float Smootherstep(float x) + { + x = saturate(x); + return x * x * x * (x * (x * 6 - 15) + 10); + } } diff --git a/Assets/Scripts/ServerShared/Behaviors/Behaviors.cs b/Assets/Scripts/ServerShared/Behaviors/Behaviors.cs index 70fb815a7..dc296844a 100644 --- a/Assets/Scripts/ServerShared/Behaviors/Behaviors.cs +++ b/Assets/Scripts/ServerShared/Behaviors/Behaviors.cs @@ -77,7 +77,6 @@ public interface IPopulationAssignment } [MessagePackObject, - Union(0, typeof(FactoryPersistence)), JsonObject(MemberSerialization.OptIn), JsonConverter(typeof(JsonKnownTypesConverter))] public abstract class PersistentBehaviorData @@ -97,7 +96,6 @@ public abstract class PersistentBehaviorData Union(9, typeof(WearData)), Union(10, typeof(VelocityConversionData)), Union(11, typeof(VelocityLimitData)), - Union(12, typeof(FactoryData)), // Union(13, typeof(PatrolControllerData)), // Union(14, typeof(TowingControllerData)), Union(15, typeof(CooldownData)), diff --git a/Assets/Scripts/ServerShared/Behaviors/FactoryBehavior.cs b/Assets/Scripts/ServerShared/Behaviors/FactoryBehavior.cs deleted file mode 100644 index 7de244126..000000000 --- a/Assets/Scripts/ServerShared/Behaviors/FactoryBehavior.cs +++ /dev/null @@ -1,287 +0,0 @@ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ - -using System; -using System.Collections.Generic; -using System.Linq; -using MessagePack; -using Newtonsoft.Json; -using Unity.Mathematics; -using static Unity.Mathematics.math; -using Random = Unity.Mathematics.Random; - -[MessagePackObject, JsonObject(MemberSerialization.OptIn)] -public class FactoryData : BehaviorData -{ - [InspectableField, JsonProperty("toolingTime"), Key(1)] - public PerformanceStat ToolingTime = new PerformanceStat(); - - [InspectableField, JsonProperty("automation"), Key(2)] - public int AutomationPoints; - - [InspectableField, JsonProperty("automationQuality"), Key(3)] - public float AutomationQuality = .5f; - - [InspectableDatabaseLink(typeof(PersonalityAttribute)), JsonProperty("productionProfile"), Key(4)] - public Dictionary ProductionProfile = new Dictionary(); - - public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item) - { - return new Factory(context, this, entity, item); - } -} - -public class Factory : IBehavior//, IPersistentBehavior, IPopulationAssignment -{ - public float ProductionQuality; - public double RetoolingTime; - public string ItemName; - public Guid ItemUnderConstruction; - public bool Active; - public int AssignedPopulation { get; set; } - - public Entity Entity { get; } - public EquippedItem Item { get; } - public ItemManager Context { get; } - - public BehaviorData Data => _data; - - public float ToolingTime { get; private set; } - - public Guid Blueprint - { - get => _blueprint; - set - { - if (value != _blueprint) - { - _blueprint = value; - Active = false; - if(value != Guid.Empty) - { - ItemName = Context.ItemData.Get(Context.ItemData.Get(value).Item).Name; - RetoolingTime = ToolingTime; - _retooling = true; - } - } - } - } - - private FactoryData _data; - - private Guid _blueprint; - private bool _retooling = false; - private float _currentProductionQuality; - - public Factory(ItemManager context, FactoryData data, Entity entity, EquippedItem item) - { - Context = context; - _data = data; - Entity = entity; - Item = item; - } - - public bool Execute(float delta) - { - // ToolingTime = Context.Evaluate(_data.ToolingTime, Item, Entity); - // var blueprint = Context.ItemData.Get(_blueprint); - // if (blueprint == null) - // return false; - // - // if (ItemUnderConstruction != Guid.Empty) - // { - // Entity.IncompleteCargo[ItemUnderConstruction] = - // Entity.IncompleteCargo[ItemUnderConstruction] - delta * (AssignedPopulation + _data.AutomationPoints) / - // pow(lerp(blueprint.QualityFloor, 1, saturate(_currentProductionQuality)), - // blueprint.ProductionExponent); - // - // if(Entity.IncompleteCargo[ItemUnderConstruction] < 0) - // { - // var item = Context.ItemData.Get(ItemUnderConstruction); - // if (item is SimpleCommodity simpleCommodity) - // Entity.AddCargo(simpleCommodity); - // else if (item is CraftedItemInstance craftedItemInstance) - // Entity.AddCargo(craftedItemInstance); - // Entity.IncompleteCargo.Remove(ItemUnderConstruction); - // ItemUnderConstruction = Guid.Empty; - // foreach (var attribute in _data.ProductionProfile) - // Entity.Personality[attribute.Key] = lerp(Entity.Personality[attribute.Key], attribute.Value, - // Context.GameplaySettings.ProductionPersonalityLerp * ((float) AssignedPopulation / Entity.Population)); - // } - // - // return true; - // } - // - // if (RetoolingTime > 0) - // { - // RetoolingTime -= delta; - // return false; - // } - // - // if (_retooling) - // { - // _retooling = false; - // } - // - // if (Active) - // { - // var profileDistance = 0f; - // if (_data.ProductionProfile.Any()) - // profileDistance = _data.ProductionProfile.Sum(x => abs(x.Value - Entity.Personality[x.Key])) / - // _data.ProductionProfile.Count; - // var personalityQuality = - // (_data.AutomationPoints * _data.AutomationQuality + AssignedPopulation * (1 - profileDistance)) / - // (_data.AutomationPoints + AssignedPopulation); - // ItemUnderConstruction = Entity.Build(blueprint, - // blueprint.Quality * - // pow(personalityQuality, blueprint.PersonalityExponent) * - // pow(ProductionQuality, blueprint.QualityExponent) * - // // Applying exponents to two random numbers and averaging them produces a range of interesting probability distributions for quality - // (pow(Context.Random.NextFloat(), blueprint.RandomQualityExponent) + - // pow(Context.Random.NextFloat(), blueprint.RandomQualityExponent)) / 2, ItemName); - // } - // - return false; - } - // - // // TODO Update Factory Persistence - // public PersistentBehaviorData Store() - // { - // return new FactoryPersistence - // { - // Blueprint = _blueprint, - // RetoolingTime = RetoolingTime, - // AssignedPopulation = AssignedPopulation, - // ProductionQuality = ProductionQuality - // }; - // } - // - // public void Restore(PersistentBehaviorData data) - // { - // var factoryPersistence = data as FactoryPersistence; - // _blueprint = factoryPersistence.Blueprint; - // RetoolingTime = factoryPersistence.RetoolingTime; - // AssignedPopulation = factoryPersistence.AssignedPopulation; - // ProductionQuality = factoryPersistence.ProductionQuality; - // } - // - // public Guid Build(BlueprintData blueprint, float quality, string name, bool direct = false) - // { - // if (direct) - // { - // if(blueprint.FactoryItem!=Guid.Empty) - // throw new ArgumentException("Attempted to directly build a blueprint which requires a factory!"); - // var blueprintItem = Context.Cache.Get(blueprint.Item); - // if(blueprintItem == null) - // throw new ArgumentException("Attempted to directly build a blueprint for a missing or incompatible item!"); - // } - // - // //var newItemID = Guid.Empty; - // - // // GetBlueprintIngredients will assign the output lists with the items matching the blueprint, and return false if they are not found - // if (!GetBlueprintIngredients(blueprint, out var simpleIngredients, out var compoundIngredients)) - // return Guid.Empty; - // - // // These will be bundled with the data for the compound commodity instance - // var ingredients = new List(); - // ingredients.AddRange(compoundIngredients.Select(RemoveCargo)); - // ingredients.AddRange(simpleIngredients.Select(sc => RemoveCargo(sc, blueprint.Ingredients[sc.Data]))); - // - // var blueprintItemData = Context.Cache.Get(blueprint.Item); - // - // // Creating new crafted item instances is a bit more complicated - // if (blueprintItemData is CraftedItemData) - // { - // CraftedItemInstance newItem; - // - // if (blueprintItemData is EquippableItemData equippableItemData) - // { - // var newGear = new EquippableItem - // { - // Context = Context, - // Data = blueprintItemData.ID, - // Ingredients = ingredients.Select(ii=>ii.ID).ToList(), - // Quality = quality, - // Blueprint = blueprint.ID, - // Name = name, - // SourceEntity = ID - // }; - // newGear.Durability = Context.Evaluate(equippableItemData.Durability, newGear); - // newItem = newGear; - // } - // else - // { - // newItem = new CompoundCommodity - // { - // Context = Context, - // Data = blueprintItemData.ID, - // Ingredients = ingredients.Select(ii=>ii.ID).ToList(), - // Quality = quality, - // Blueprint = blueprint.ID, - // Name = name, - // SourceEntity = ID - // }; - // } - // Context.Cache.Add(newItem); - // if (direct) - // IncompleteGear[newItem.ID] = blueprint.ProductionTime; - // else - // IncompleteCargo[newItem.ID] = blueprint.ProductionTime; - // return newItem.ID; - // } - // - // var newSimpleCommodity = new SimpleCommodity - // { - // Context = Context, - // Data = blueprintItemData.ID, - // Quantity = 1 - // }; - // Context.Cache.Add(newSimpleCommodity); - // IncompleteCargo[newSimpleCommodity.ID] = blueprint.ProductionTime; - // return newSimpleCommodity.ID; - // } - // - // public bool GetBlueprintIngredients(BlueprintData blueprint, out List simpleIngredients, - // out List compoundIngredients) - // { - // simpleIngredients = new List(); - // compoundIngredients = new List(); - // var hasAllIngredients = true; - // var cargoInstances = Cargo.Select(c => Context.Cache.Get(c)); - // foreach (var kvp in blueprint.Ingredients) - // { - // var itemData = Context.Cache.Get(kvp.Key); - // if (itemData is SimpleCommodityData) - // { - // var matchingItem = cargoInstances.FirstOrDefault(ii => - // { - // if (!(ii is SimpleCommodity simpleCommodity)) return false; - // return simpleCommodity.Data == itemData.ID && simpleCommodity.Quantity >= kvp.Value; - // }) as SimpleCommodity; - // hasAllIngredients = hasAllIngredients && matchingItem != null; - // if(matchingItem != null) - // simpleIngredients.Add(matchingItem); - // } - // else - // { - // var matchingItems = - // cargoInstances.Where(ii => (ii as CompoundCommodity)?.Data == itemData.ID).Cast().ToArray(); - // hasAllIngredients = hasAllIngredients && matchingItems.Length >= kvp.Value; - // if(matchingItems.Length >= kvp.Value) - // compoundIngredients.AddRange(matchingItems.Take(kvp.Value)); - // } - // } - // - // return hasAllIngredients; - // } -} - -[MessagePackObject, JsonObject(MemberSerialization.OptIn)] -public class FactoryPersistence : PersistentBehaviorData -{ - [JsonProperty("blueprint"), Key(0)] public Guid Blueprint; - [JsonProperty("retoolingTime"), Key(2)] public double RetoolingTime; - [JsonProperty("assignedPopulation"), Key(5)] public int AssignedPopulation; - [JsonProperty("productionQuality"), Key(6)] public float ProductionQuality; -} \ No newline at end of file diff --git a/Assets/Scripts/ServerShared/Behaviors/FactoryBehavior.cs.meta b/Assets/Scripts/ServerShared/Behaviors/FactoryBehavior.cs.meta deleted file mode 100644 index 5ad3748b6..000000000 --- a/Assets/Scripts/ServerShared/Behaviors/FactoryBehavior.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 7f6378c7d7a9be24c9830679aabe55ba -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Scripts/ServerShared/Behaviors/InstantWeapon.cs b/Assets/Scripts/ServerShared/Behaviors/InstantWeapon.cs index 120a2f40f..5fccf64c6 100644 --- a/Assets/Scripts/ServerShared/Behaviors/InstantWeapon.cs +++ b/Assets/Scripts/ServerShared/Behaviors/InstantWeapon.cs @@ -103,10 +103,13 @@ public class InstantWeapon : Weapon, IProgressBehavior, IEventBehavior private bool UseAmmo() { - if (_data.AmmoType != Guid.Empty) + if (_data.MagazineSize <= 1) return true; + + if (_ammo > 0) _ammo--; + else { - if (_data.MagazineSize > 1 && _ammo > 0) _ammo--; - else + var hasAmmo = true; + if (_data.AmmoType != Guid.Empty) { var cargo = Entity.FindItemInCargo(_data.AmmoType); if (cargo != null) @@ -114,18 +117,18 @@ public class InstantWeapon : Weapon, IProgressBehavior, IEventBehavior var item = cargo.ItemsOfType[_data.AmmoType][0]; if (item is SimpleCommodity simpleCommodity) cargo.Remove(simpleCommodity, 1); - - if(_data.MagazineSize > 1) - { - OnReloadBegin?.Invoke(); - _cooldown = 1; - _coolingDown = true; - _firing = false; - } } - _burstRemaining = 0; - return false; + else hasAmmo = false; } + if(hasAmmo) + { + OnReloadBegin?.Invoke(); + _cooldown = 1; + _coolingDown = true; + _firing = false; + } + _burstRemaining = 0; + return false; } return true; diff --git a/Assets/Scripts/ServerShared/Behaviors/StatModifier.cs b/Assets/Scripts/ServerShared/Behaviors/StatModifier.cs index 3a1464872..a43133345 100644 --- a/Assets/Scripts/ServerShared/Behaviors/StatModifier.cs +++ b/Assets/Scripts/ServerShared/Behaviors/StatModifier.cs @@ -101,4 +101,14 @@ public enum StatModifierType { Constant, Multiplier +} + +[InspectableField, MessagePackObject, JsonObject(MemberSerialization.OptIn)] +public class StatReference +{ + [InspectableType(typeof(BehaviorData)), JsonProperty("behavior"), Key(1)] + public string Target; + + [InspectableField, JsonProperty("stat"), Key(2)] + public string Stat; } \ No newline at end of file diff --git a/Assets/Scripts/ServerShared/Behaviors/Thruster.cs b/Assets/Scripts/ServerShared/Behaviors/Thruster.cs index c738ce8f9..43948eb89 100644 --- a/Assets/Scripts/ServerShared/Behaviors/Thruster.cs +++ b/Assets/Scripts/ServerShared/Behaviors/Thruster.cs @@ -19,7 +19,10 @@ public class ThrusterData : BehaviorData [InspectableField, JsonProperty("heat"), Key(3), RuntimeInspectable] public PerformanceStat Heat = new PerformanceStat(); - [InspectablePrefab, JsonProperty("Particles"), Key(4)] + [InspectableField, JsonProperty("energy"), Key(4), RuntimeInspectable] + public PerformanceStat EnergyUsage = new PerformanceStat(); + + [InspectablePrefab, JsonProperty("Particles"), Key(5)] public string ParticlesPrefab; public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item) @@ -66,13 +69,18 @@ public class Thruster : IAnalogBehavior public bool Execute(float delta) { - Thrust = Item.Evaluate(_data.Thrust); - Entity.Velocity -= Entity.Direction.Rotate(Item.EquippableItem.Rotation) * _input * Thrust / Entity.Mass * delta; - Entity.Direction = mul(Entity.Direction, Unity.Mathematics.float2x2.Rotate(_input * Torque * Thrust * Context.GameplaySettings.TorqueMultiplier / Entity.Mass * delta)); - Item.AddHeat(_input * Item.Evaluate(_data.Heat) * delta); - var vis = _input * Item.Evaluate(_data.Visibility); - if(!Entity.VisibilitySources.ContainsKey(this) || vis > Entity.VisibilitySources[this]) - Entity.VisibilitySources[this] = vis; - return _input > .01f; + if(_input > .01f && Item.Entity.TryConsumeEnergy(_input * Item.Evaluate(_data.EnergyUsage))) + { + Thrust = Item.Evaluate(_data.Thrust); + Entity.Velocity -= Entity.Direction.Rotate(Item.EquippableItem.Rotation) * _input * Thrust / Entity.Mass * delta; + Entity.Direction = mul(Entity.Direction, + Unity.Mathematics.float2x2.Rotate(_input * Torque * Thrust * Context.GameplaySettings.TorqueMultiplier / Entity.Mass * delta)); + Item.AddHeat(_input * Item.Evaluate(_data.Heat) * delta); + var vis = _input * Item.Evaluate(_data.Visibility); + if (!Entity.VisibilitySources.ContainsKey(this) || vis > Entity.VisibilitySources[this]) + Entity.VisibilitySources[this] = vis; + return true; + } + return false; } } \ No newline at end of file diff --git a/Assets/Scripts/ServerShared/BlueprintData.cs b/Assets/Scripts/ServerShared/BlueprintData.cs deleted file mode 100644 index 5e0b5e721..000000000 --- a/Assets/Scripts/ServerShared/BlueprintData.cs +++ /dev/null @@ -1,86 +0,0 @@ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ - -using System; -using System.Collections; -using System.Collections.Generic; -using MessagePack; -using Newtonsoft.Json; -using Unity.Mathematics; -using static Unity.Mathematics.math; - -[RethinkTable("Items"), MessagePackObject, JsonObject(MemberSerialization.OptIn)] -public class BlueprintData : DatabaseEntry, INamedEntry -{ - [InspectableField, JsonProperty("name"), Key(1)] - public string Name; - - [InspectableDatabaseLink(typeof(ItemData)), JsonProperty("ingredients"), Key(2)] - public Dictionary Ingredients = new Dictionary(); - - [JsonProperty("item"), Key(3)] - public Guid Item; - - [InspectableField, JsonProperty("productionTime"), Key(4)] - public float ProductionTime; - - [InspectableField, JsonProperty("quality"), Key(5)] - public float Quality; - - [InspectableField, JsonProperty("qualityExponent"), Key(6)] - public float QualityExponent = 1; - - [InspectableField, JsonProperty("productionExponent"), Key(7)] - public float ProductionExponent = 1; - - [InspectableField, JsonProperty("randomExponent"), Key(8)] - public float RandomQualityExponent = 1; - - [InspectableField, JsonProperty("personalityExponent"), Key(9)] - public float PersonalityExponent = 1; - - [InspectableField, JsonProperty("qualityFloor"), Key(10)] - public float QualityFloor = .25f; - - [InspectableField, JsonProperty("statEffects"), Key(11)] - public List StatEffects = new List(); - - [InspectableField, JsonProperty("researchTime"), Key(12)] - public float ResearchTime; - - [InspectableDatabaseLink(typeof(BlueprintData)), JsonProperty("researchDependencies"), Key(13)] - public List Dependencies = new List(); - - [InspectableDatabaseLink(typeof(CraftedItemData)), JsonProperty("factoryItem"), Key(14)] - public Guid FactoryItem; - - [InspectableDatabaseLink(typeof(SimpleCommodityData)), JsonProperty("resourceRequirements"), Key(15)] - public Dictionary ResourceRequirements = new Dictionary(); - - [IgnoreMember] public string EntryName - { - get => Name; - set => Name = value; - } -} - -[InspectableField, MessagePackObject, JsonObject(MemberSerialization.OptIn)] -public class BlueprintStatEffect -{ - [InspectableField, JsonProperty("ingredient"), Key(1)] - public Guid Ingredient; - - [InspectableField, JsonProperty("stat"), Key(2)] - public StatReference StatReference = new StatReference(); -} - -[InspectableField, MessagePackObject, JsonObject(MemberSerialization.OptIn)] -public class StatReference -{ - [InspectableType(typeof(BehaviorData)), JsonProperty("behavior"), Key(1)] - public string Target; - - [InspectableField, JsonProperty("stat"), Key(2)] - public string Stat; -} diff --git a/Assets/Scripts/ServerShared/BlueprintData.cs.meta b/Assets/Scripts/ServerShared/BlueprintData.cs.meta deleted file mode 100644 index c956b95d8..000000000 --- a/Assets/Scripts/ServerShared/BlueprintData.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: f2b1f367d240824408eb1e151c60bc79 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Scripts/ServerShared/DatabaseEntry.cs b/Assets/Scripts/ServerShared/DatabaseEntry.cs index f8ae785af..d7c68d5d6 100644 --- a/Assets/Scripts/ServerShared/DatabaseEntry.cs +++ b/Assets/Scripts/ServerShared/DatabaseEntry.cs @@ -25,7 +25,6 @@ public interface INamedEntry Union(4, typeof(SimpleCommodity)), Union(5, typeof(CompoundCommodity)), Union(6, typeof(EquippableItem)), - Union(7, typeof(BlueprintData)), Union(8, typeof(GalaxyMapLayerData)), Union(9, typeof(NameFile)), //Union(10, typeof(ZoneData)), @@ -37,7 +36,7 @@ public interface INamedEntry Union(16, typeof(BodyData)), Union(17, typeof(PersonalityAttribute)), Union(18, typeof(AgentTask)), - Union(19, typeof(LoadoutData)), + // Union(19, typeof(LoadoutData)), Union(20, typeof(Ship)), Union(21, typeof(Mining)), Union(22, typeof(StationTowing)), diff --git a/Assets/Scripts/ServerShared/Entity.cs b/Assets/Scripts/ServerShared/Entity.cs index f7c37ac00..3efa186b9 100644 --- a/Assets/Scripts/ServerShared/Entity.cs +++ b/Assets/Scripts/ServerShared/Entity.cs @@ -169,7 +169,7 @@ public abstract class Entity Zone = zone; Hull = hull; HullData = itemManager.GetData(hull) as HullData; - Name = hull.Name; + Name = HullData.Name; MapEntity(); TriggerGroups = new (List triggers, List items)[itemManager.GameplaySettings.TriggerGroupCount]; for(int i=0; i performanceThreshold || Entity.OverrideShutdown && EquippableItem.OverrideShutdown; diff --git a/Assets/Scripts/ServerShared/ItemData.cs b/Assets/Scripts/ServerShared/ItemData.cs index 7964402e2..2437045d4 100644 --- a/Assets/Scripts/ServerShared/ItemData.cs +++ b/Assets/Scripts/ServerShared/ItemData.cs @@ -316,11 +316,11 @@ public abstract class EquippableItemData : CraftedItemData [InspectableTemperature, JsonProperty("maxTemp"), Key(14)] public float MaximumTemperature; - [InspectableField, JsonProperty("durabilityExponent"), Key(15), SimplePerformanceStat] - public PerformanceStat DurabilityExponent = new PerformanceStat(); - - [InspectableField, JsonProperty("heatExponent"), Key(16), SimplePerformanceStat] - public PerformanceStat HeatExponent = new PerformanceStat(); + // [InspectableField, JsonProperty("durabilityExponent"), Key(15), SimplePerformanceStat] + // public PerformanceStat DurabilityExponent = new PerformanceStat(); + // + // [InspectableField, JsonProperty("heatExponent"), Key(16), SimplePerformanceStat] + // public PerformanceStat HeatExponent = new PerformanceStat(); [InspectableAnimationCurve, JsonProperty("performanceCurve"), Key(17)] public float4[] HeatPerformanceCurve; @@ -495,17 +495,14 @@ public class PerformanceStat [JsonProperty("max"), Key(1)] public float Max; - [JsonProperty("durabilityDependent"), Key(2)] - public bool DurabilityDependent; + [JsonProperty("heatExponentMultiplier"), Key(2)] + public float HeatExponentMultiplier; - [JsonProperty("qualityExponent"), Key(3)] + [JsonProperty("durabilityExponentMultiplier"), Key(3)] + public float DurabilityExponentMultiplier; + + [JsonProperty("qualityExponent"), Key(4)] public float QualityExponent; - - [JsonProperty("heatDependent"), Key(4)] - public bool HeatDependent; - - [JsonProperty("heatExponentMultiplier"), Key(5)] - public float HeatExponentMultiplier = 1; //[JsonProperty("id"), Key(5)] public Guid ID = Guid.NewGuid(); diff --git a/Assets/Scripts/ServerShared/ItemInstance.cs b/Assets/Scripts/ServerShared/ItemInstance.cs index b76b535ba..80d2e3021 100644 --- a/Assets/Scripts/ServerShared/ItemInstance.cs +++ b/Assets/Scripts/ServerShared/ItemInstance.cs @@ -34,13 +34,13 @@ public abstract class CraftedItemInstance : ItemInstance { [JsonProperty("quality"), Key(2)] public float Quality; - [JsonProperty("ingredients"), Key(3)] public List Ingredients = new List(); + //[JsonProperty("ingredients"), Key(3)] public List Ingredients = new List(); - [JsonProperty("blueprint"), Key(4)] public Guid Blueprint; + //[JsonProperty("blueprint"), Key(4)] public Guid Blueprint; - [JsonProperty("name"), Key(5)] public string Name; + //[JsonProperty("name"), Key(3)] public string Name; - [JsonProperty("sourceEntity"), Key(6)] public Guid SourceEntity; + //[JsonProperty("sourceEntity"), Key(4)] public Guid SourceEntity; } [MessagePackObject, JsonObject(MemberSerialization.OptIn)] diff --git a/Assets/Scripts/ServerShared/ItemManager.cs b/Assets/Scripts/ServerShared/ItemManager.cs index 195c976d7..4952c2a37 100644 --- a/Assets/Scripts/ServerShared/ItemManager.cs +++ b/Assets/Scripts/ServerShared/ItemManager.cs @@ -24,9 +24,6 @@ public class ItemManager private Action _logger; - private Dictionary AffectedStats = - new Dictionary(); - private double _time; private float _deltaTime; private Dictionary _zones = new Dictionary(); @@ -158,118 +155,20 @@ public class ItemManager return 0; } - public PerformanceStat GetAffectedStat(BlueprintData blueprint, BlueprintStatEffect effect) - { - // We've already cached this effect's stat, return it directly - if (AffectedStats.ContainsKey(effect)) return AffectedStats[effect]; - - // Get the data for the item the blueprint is for, return null if not found or not equippable - var blueprintItem = ItemData.Get(blueprint.Item); - if (blueprintItem == null) - { - _logger($"Attempted to get stat effect but Blueprint {blueprint.ID} is not for an equippable item!"); - return AffectedStats[effect] = null; - } - - // Get the first behavior of the type specified in the blueprint stat effect, return null if not found - var effectObject = effect.StatReference.Target == blueprintItem.Name ? (object) blueprintItem : - blueprintItem.Behaviors.FirstOrDefault(b => b.GetType().Name == effect.StatReference.Target); - if (effectObject == null) - { - _logger($"Attempted to get stat effect for Blueprint {blueprint.ID} but stat references missing behavior \"{effect.StatReference.Target}\"!"); - return AffectedStats[effect] = null; - } - - // Get the first field in the behavior matching the name specified in the stat effect, return null if not found - var type = effectObject.GetType(); - var field = type.GetField(effect.StatReference.Stat); - if (field == null) - { - _logger($"Attempted to get stat effect for Blueprint {blueprint.ID} but object {effect.StatReference.Target} does not have a stat named \"{effect.StatReference.Stat}\"!"); - return AffectedStats[effect] = null; - } - - // Finally we've confirmed the stat effect is valid, return the affected stat - return AffectedStats[effect] = field.GetValue(effectObject) as PerformanceStat; - } - - private readonly Dictionary ItemQuality = new Dictionary(); - - public float CompoundQuality(CraftedItemInstance item) - { - if (ItemQuality.ContainsKey(item)) return ItemQuality[item]; - - var quality = item.Quality; - - var craftedIngredients = item.Ingredients.Where(i => i is CraftedItemInstance).ToArray(); - if (craftedIngredients.Length > 0) - { - var ingredientQualityWeight = ItemData.Get(item.Data).IngredientQualityWeight; - quality = quality * (1 - ingredientQualityWeight) + - craftedIngredients.Cast().Average(CompoundQuality) * ingredientQualityWeight; - } - - ItemQuality[item] = quality; - - return ItemQuality[item]; - } - - private readonly Dictionary<(PerformanceStat stat, EquippableItem item), float> StatQuality = new Dictionary<(PerformanceStat stat, EquippableItem item), float>(); - - // Determine quality of either the item itself or the specific ingredient this stat depends on - public float Quality(PerformanceStat stat, EquippableItem item) - { - if (StatQuality.ContainsKey((stat, item))) - return StatQuality[(stat, item)]; - - var quality = CalcQuality(stat, item); - StatQuality[(stat, item)] = quality; - return quality; - } - - private float CalcQuality(PerformanceStat stat, EquippableItem item) - { - var itemData = GetData(item); - var blueprint = ItemData.Get(item.Blueprint); - var activeEffects = blueprint.StatEffects.Where(x => GetAffectedStat(blueprint, x) == stat).ToArray(); - float quality; - if (!activeEffects.Any()) - quality = CompoundQuality(item); - else - { - var ingredients = item.Ingredients.Where(i => activeEffects.Any(e => e.Ingredient == i.Data)).ToArray(); - var distinctIngredients = ingredients.Select(i => i.Data).Distinct(); - if(distinctIngredients.Count() != activeEffects.Length) - { - _logger($"Item {itemData.Name} does not have the ingredients specified by the stat effects of its blueprint!"); - return 0; - } - - float sum = 0; - foreach (var i in ingredients) - { - if (i is CraftedItemInstance ci) - sum += CompoundQuality(ci); - else _logger($"Blueprint stat effect for item {itemData.Name} specifies invalid (non crafted) ingredient!"); - } - - quality = sum / ingredients.Length; - } - - return quality; - } - // Returns stat when not equipped public float Evaluate(PerformanceStat stat, EquippableItem item) { - var quality = pow(Quality(stat, item), stat.QualityExponent); - - var result = lerp(stat.Min, stat.Max, quality); - - if (float.IsNaN(result)) - return stat.Min; - + var data = GetData(item); + var quality = pow(item.Quality, stat.QualityExponent); + var durabilityExponent = lerp( + GameplaySettings.DurabilityQualityMin, + GameplaySettings.DurabilityQualityMax, + pow(item.Quality, GameplaySettings.DurabilityQualityExponent)); + var durability = pow(item.Durability / data.Durability, durabilityExponent * stat.DurabilityExponentMultiplier); + var result = lerp(stat.Min, stat.Max, quality * durability); + if (float.IsNaN(result)) throw new InvalidOperationException("Performance Stat evaluating as NaN: input data is invalid!"); return result; + } public int GetPrice(CraftedItemInstance item) @@ -317,57 +216,10 @@ public class ItemManager { if (item == null) { - _logger("Attempted to create crafted item instance using missing or incorrect item id!"); + _logger("Attempted to create crafted item instance using missing or incorrect item data!"); return null; } - var blueprint = ItemData.GetAll().FirstOrDefault(b => b.Item == item.ID); - if (blueprint == null) - { - _logger("Attempted to create crafted item instance which has no blueprint!"); - return null; - } - - bool invalidIngredientFound = false; - ItemData invalidIngredient = null; - var ingredients = new List(); - foreach (var ingredient in blueprint.Ingredients) - { - var itemData = ItemData.Get(ingredient.Key); - if (itemData is SimpleCommodityData simpleIngredientData) - { - var itemInstance = CreateInstance(simpleIngredientData, ingredient.Value); - if(itemInstance == null) - { - invalidIngredientFound = true; - invalidIngredient = itemData; - } - else ingredients.Add(itemInstance); - } - else - { - var craftedIngredientData = ItemData.Get(ingredient.Key); - for (int i = 0; i < ingredient.Value; i++) - { - var itemInstance = CreateInstance(craftedIngredientData); - if (itemInstance == null) - { - invalidIngredientFound = true; - invalidIngredient = itemData; - break; - } - - ingredients.Add(itemInstance); - } - } - - } - - if (invalidIngredientFound) - { - _logger($"Unable to create crafted item ingredient: {invalidIngredient?.Name??"null"} for item {item.Name}"); - } - var quality = Random.NextFloat(); var tier = GameplaySettings.Tiers[0]; foreach (var t in GameplaySettings.Tiers) @@ -381,10 +233,7 @@ public class ItemManager var newGear = new EquippableItem { Data = item.ID, - Ingredients = ingredients, - Quality = tier.Quality, - Blueprint = blueprint.ID, - Name = $"{item.Name}" + Quality = tier.Quality }; newGear.Durability = equippableItemData.Durability; return newGear; @@ -393,10 +242,7 @@ public class ItemManager var newCommodity = new CompoundCommodity { Data = item.ID, - Ingredients = ingredients, - Quality = tier.Quality, - Blueprint = blueprint.ID, - Name = $"{item.Name}" + Quality = tier.Quality }; return newCommodity; } diff --git a/Assets/Scripts/ServerShared/LoadoutData.cs b/Assets/Scripts/ServerShared/LoadoutData.cs deleted file mode 100644 index eb0fff6ff..000000000 --- a/Assets/Scripts/ServerShared/LoadoutData.cs +++ /dev/null @@ -1,33 +0,0 @@ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ - -using System; -using System.Collections.Generic; -using MessagePack; -using Newtonsoft.Json; - -[RethinkTable("Items"), Inspectable, MessagePackObject, JsonObject(MemberSerialization.OptIn)] -public class LoadoutData : DatabaseEntry, INamedEntry -{ - [InspectableField, JsonProperty("name"), Key(1)] - public string Name; - - [InspectableDatabaseLink(typeof(HullData)), JsonProperty("hull"), Key(2)] - public Guid Hull; - - [JsonProperty("items"), Key(3)] - public List Gear = new List(); - - [InspectableDatabaseLink(typeof(SimpleCommodityData)), JsonProperty("simpleCargo"), Key(4)] - public Dictionary SimpleCargo = new Dictionary(); - - [InspectableDatabaseLink(typeof(CraftedItemData)), JsonProperty("compoundCargo"), Key(5)] - public Dictionary CompoundCargo = new Dictionary(); - - [IgnoreMember] public string EntryName - { - get => Name; - set => Name = value; - } -} \ No newline at end of file diff --git a/Assets/Scripts/ServerShared/LoadoutData.cs.meta b/Assets/Scripts/ServerShared/LoadoutData.cs.meta deleted file mode 100644 index 1573b4757..000000000 --- a/Assets/Scripts/ServerShared/LoadoutData.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: 897e13bb0462456b800522cd213bf70d -timeCreated: 1591829121 \ No newline at end of file diff --git a/Assets/Scripts/ServerShared/Settings.cs b/Assets/Scripts/ServerShared/Settings.cs index ba0e1e7bb..08c0aa806 100644 --- a/Assets/Scripts/ServerShared/Settings.cs +++ b/Assets/Scripts/ServerShared/Settings.cs @@ -135,6 +135,12 @@ public class GameplaySettings public EntitySettings DefaultEntitySettings; public RarityTier[] Tiers; public ExponentialLerp QualityPriceModifier; + public float DurabilityQualityExponent = 2; + public float DurabilityQualityMin = 2; + public float DurabilityQualityMax = .25f; + public float ThermalQualityExponent = 2; + public float ThermalQualityMin = 2; + public float ThermalQualityMax = .25f; public float DefaultShutdownPerformance = .25f; public float SevereHeatstrokeRiskThreshold = .25f; public float WormholeDepth = 1000; diff --git a/Assets/Scripts/ServerShared/Ship.cs b/Assets/Scripts/ServerShared/Ship.cs index 30cef236f..3d32ea3fe 100644 --- a/Assets/Scripts/ServerShared/Ship.cs +++ b/Assets/Scripts/ServerShared/Ship.cs @@ -300,7 +300,7 @@ public class Ship : Entity { var exitLerp = (_wormholeAnimationProgress - ItemManager.GameplaySettings.WormholeExitCurveStart) / (1 - ItemManager.GameplaySettings.WormholeExitCurveStart); - exitLerp = AetheriaMath.Smoothstep(exitLerp); // Square the interpolation variable to produce curve with zero slope at start + exitLerp = AetheriaMath.Smootherstep(exitLerp); // Square the interpolation variable to produce curve with zero slope at start Position.xz = _wormholePosition + normalize(_wormholeExitVelocity) * exitLerp * ItemManager.GameplaySettings.WormholeExitRadius; Rotation = quaternion.LookRotation( lerp(float3(0, 1, 0), forward, exitLerp), @@ -326,7 +326,7 @@ public class Ship : Entity if (_wormholeAnimationProgress < 1 - ItemManager.GameplaySettings.WormholeExitCurveStart) { var enterLerp = _wormholeAnimationProgress / (1 - ItemManager.GameplaySettings.WormholeExitCurveStart); - enterLerp = AetheriaMath.Smoothstep(enterLerp); // Square the interpolation variable to produce curve with zero slope at vertical + enterLerp = AetheriaMath.Smootherstep(enterLerp); // Square the interpolation variable to produce curve with zero slope at vertical Position.xz = lerp(_wormholeEntryPosition, _wormholePosition, enterLerp); Rotation = quaternion.LookRotation( lerp(forward, float3(0, -1, 0), enterLerp), diff --git a/Assets/Scripts/TechTreeMsagl.cs b/Assets/Scripts/TechTreeMsagl.cs deleted file mode 100644 index 42c1e6a12..000000000 --- a/Assets/Scripts/TechTreeMsagl.cs +++ /dev/null @@ -1,438 +0,0 @@ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ - -using System; -using System.Collections; -using System.Collections.Generic; -using System.Linq; -using Microsoft.Msagl.Core.Geometry; -using Microsoft.Msagl.Core.Geometry.Curves; -using Microsoft.Msagl.Core.Layout; -using Microsoft.Msagl.Layout.Layered; -using NaughtyAttributes; -using TMPro; -using UnityEngine; -using Random = UnityEngine.Random; -using Unity.Mathematics; -using static Unity.Mathematics.math; - -public class TechTreeMsagl : MonoBehaviour -{ - [Section("Assets")] - public string IconsPath; - public Prototype Ring; - public Prototype Tech; - public Prototype RadialLink; - public Prototype Arrow; - - [Section("UI Links")] - public PropertiesPanel PropertiesPanel; - - [Section("Graph Generation")] - public bool TestMode; - public int TechCount = 50; - public int SeedTechs = 5; - public int RollingWindowSize = 50; - public bool Radial; - public float MultipleDependencyProbability; - public int DependencyDepth; - public int DependencyAncestorDepth; - - [Section("Layout")] - public PackingMethod PackingMethod; - - [Section("Radial")] - public int Sections; - public float PaddingRadians; - public int StartTier = 3; - public float Scale = 1; - public int LinkPoints = 16; - public int LinkDepth = 5; - public float LinkTargetDistance = .75f; - public int RingDepth = 6; - public float ArrowDepth = 3; - public float LayerDistance; - - [Section("Colors")] - public float Saturation = .95f; - public float HueMin = 0; - public float HueMax = 1; - public float Brightness = 1; - public float RingInnerSaturation; - public float RingOuterSaturation; - public float RingInnerBrightness; - public float RingOuterBrightness; - public int RingColorKeys; - public float FillOpacity = .25f; - public float GlowOpacity = .5f; - public Material TechFillMaterial; - public Material TechGlowMaterial; - public Material TechArrowMaterial; - public Material TechLinkMaterial; - - public ItemManager Context; - - private List _ringInstances = new List(); - private List _techInstances = new List(); - private List _linkInstances = new List(); - private List _arrowInstances = new List(); - private Texture2D[] _icons; - - public BlueprintData[] Blueprints { get; set; } - - void Start() - { - if(TestMode) - Initialize(); - } - - public void Initialize() - { - _icons = Resources.LoadAll(IconsPath); - } - - void Update() - { - if(TestMode && Input.GetKeyDown(KeyCode.Space)) - GenerateTechs(); - } - - Node NewNode(object data) => new Node(new Ellipse(1,1,new Point()), data); - - List GetRegion(GeometryGraph graph, Node node, int depth, int maxAncestorDistance) - { - Node ancestor = node; - int actualDepth = 0; - while (actualDepth < depth) - { - var edge = graph.Edges.FirstOrDefault(e => e.Target == ancestor); - if (edge == null) break; - var next = edge.Source; - if (next == null) - break; - ancestor = next; - actualDepth++; - } - - var skipGenerations = actualDepth - maxAncestorDistance; - - var region = new List(); - Node[] children = {ancestor}; - for (int i = 0; i < actualDepth - 1; i++) - { - children = children.SelectMany(n => graph.Edges.Where(e => e.Source == n).Select(e => e.Target)).ToArray(); - if(i >= skipGenerations) - region.AddRange(children); - } - - return region; - } - - public void GenerateTechs() - { - foreach (var instance in _ringInstances) instance.ReturnToPool(); - _ringInstances.Clear(); - - foreach (var instance in _techInstances) instance.ReturnToPool(); - _techInstances.Clear(); - - foreach (var instance in _linkInstances) instance.ReturnToPool(); - _linkInstances.Clear(); - - foreach (var instance in _arrowInstances) instance.ReturnToPool(); - _arrowInstances.Clear(); - - var graph = new GeometryGraph(); - - var settings = new SugiyamaLayoutSettings(); - - if (TestMode) - { - for (int i = 0; i < TechCount; i++) - { - var node = NewNode(i); - graph.Nodes.Add(node); - if(i>SeedTechs) graph.Edges.Add(new Edge(graph.Nodes[Random.Range(max(0,i-RollingWindowSize),i-1)], node)); - } - foreach (var vertex in graph.Nodes.Where(v=>!graph.Edges.Any(e=>e.Source==v||e.Target==v))) - { - graph.Edges.Add(new Edge(vertex, graph.Nodes[Random.Range(0,TechCount-1)])); - } - } - else - { - var nodeMap = new Dictionary(); - foreach (var blueprint in Blueprints) - { - var node = NewNode(blueprint); - nodeMap[blueprint] = node; - graph.Nodes.Add(node); - } - - foreach (var targetBlueprint in Blueprints) - { - foreach (var sourceBlueprint in Blueprints.Where(sb => - targetBlueprint.Dependencies.Any(dep => sb.ID == dep))) - { - var edge = new Edge(nodeMap[sourceBlueprint], nodeMap[targetBlueprint]); - graph.Edges.Add(edge); - var splitName = sourceBlueprint.Name.Split(' '); - if (splitName.Length > 1) - { - var nameStart = string.Join(" ", splitName.Take(splitName.Length - 1)); - if(targetBlueprint.Name.StartsWith(nameStart)) - edge.Weight *= 10; - } - } - } - } - - settings.BrandesThreshold = 9999; - - var islands = graph.GetClusteredConnectedComponents(); - var islandMap = - graph.Nodes.ToDictionary(n => n, n => islands.Find(c => c.Nodes.Any(cn => cn.UserData == n))); - - if (TestMode) - { - foreach (var island in islands) - { - foreach (var node in island.Nodes) - { - var region = GetRegion(island, node, DependencyAncestorDepth, DependencyDepth); - while (Random.value < MultipleDependencyProbability && region.Count > 0) - { - var dependency = region[Random.Range(0,region.Count)]; - graph.Edges.Add(new Edge(dependency.UserData as Node, node.UserData as Node)); - region.Remove(dependency); - } - } - } - } - - var islandsBySize = islands.OrderByDescending(i => i.Nodes.Count); - var largestIsland = islandsBySize.First(); - foreach (var island in islandsBySize.Skip(1)) - settings.VerticalConstraints.SameLayerConstraints.Insert(new Tuple( - largestIsland.Nodes[Random.Range(0,largestIsland.Nodes.Count)].UserData as Node, island.Nodes[Random.Range(0,island.Nodes.Count)].UserData as Node)); - - settings.PackingMethod = PackingMethod; - settings.Transformation = PlaneTransformation.Rotation(PI); - var layout = new LayeredLayout(graph, settings); - layout.Run(); - - var positions = graph.Nodes.ToDictionary(n => n, n => (float2) n.Center); - var islandCenters = islands.ToDictionary(i => i, - i => i.Nodes.Aggregate(float2(0, 0), (total, v) => total + positions[v.UserData as Node]) / i.Nodes.Count); - - Rect bounds = Rect.MinMaxRect( - positions.Values.Min(v=>v.x), - positions.Values.Min(v=>v.y), - positions.Values.Max(v=>v.x), - positions.Values.Max(v=>v.y)); - - var tiers = - Mathf.RoundToInt(graph.Nodes.Max(n => Rect.PointToNormalized(bounds, n.Center).y) / - graph.Nodes.Min(n => - { - var normalized = Rect.PointToNormalized(bounds, n.Center); - return normalized.y > .001f ? normalized.y : 1; - })); - - // var islandsBySize = islands.OrderByDescending(i => i.Nodes.Count); - // var largestIsland = islandsBySize.First(); - // foreach(var island in islandsBySize.Skip(1)) - // settings.AddSameLayerNeighbors(largestIsland.Nodes.RandomElement().UserData as Node, island.Nodes.RandomElement().UserData as Node); - // - // layout = new LayeredLayout(graph, settings); - // layout.Run(); - - positions = graph.Nodes.ToDictionary(n => n, n => (float2) n.Center); - islandCenters = islands.ToDictionary(i => i, - i => i.Nodes.Aggregate(float2(0, 0), (total, v) => total + positions[v.UserData as Node]) / i.Nodes.Count); - - bounds = Rect.MinMaxRect( - positions.Values.Min(v=>v.x), - positions.Values.Min(v=>v.y), - positions.Values.Max(v=>v.x), - positions.Values.Max(v=>v.y)); - - Debug.Log($"Generated {tiers} tiers of techs!"); - - var islandColors = islandCenters.ToDictionary( - i=>i.Key, - i=>Color.HSVToRGB(lerp(HueMin, HueMax, Rect.PointToNormalized(bounds, i.Value).x), Saturation, Brightness)); - - var islandFillMaterials = islandColors.ToDictionary(i => i.Key, i => - { - var mat = new Material(TechFillMaterial); - var col = i.Value; - col.a = FillOpacity; - mat.SetColor("_TintColor", col); - return mat; - }); - - var islandGlowMaterials = islandColors.ToDictionary(i => i.Key, i => - { - var mat = new Material(TechGlowMaterial); - var col = i.Value; - col.a = GlowOpacity; - mat.SetColor("_TintColor", col); - return mat; - }); - - var islandArrowMaterials = islandColors.ToDictionary(i => i.Key, i => - { - var mat = new Material(TechArrowMaterial); - var col = i.Value; - col.a = 1; - mat.SetColor("_TintColor", col); - return mat; - }); - - var islandLinkMaterials = islandColors.ToDictionary(i => i.Key, i => - { - var mat = new Material(TechLinkMaterial); - var col = i.Value; - col.a = 1; - mat.SetColor("_TintColor", col); - return mat; - }); - - if(Radial) - positions = positions.ToDictionary( - kvp => kvp.Key, - kvp => - { - var normalized = Rect.PointToNormalized(bounds, kvp.Value); - var rads = normalized.x * (PI * 2 - PaddingRadians) + PaddingRadians / 2; - return float2(sin(rads), -cos(rads)) * ((normalized.y * tiers + StartTier + .5f) * LayerDistance) * Scale; - }); - else - positions = positions.ToDictionary( - kvp => kvp.Key, - kvp => - { - var normalized = Rect.PointToNormalized(bounds, kvp.Value); - return float2( - normalized.x * LayerDistance * tiers * (bounds.width / bounds.height), - (normalized.y * tiers / 2 + StartTier + .5f) * LayerDistance); - }); - - foreach (var vertex in graph.Nodes.Where(positions.ContainsKey)) - { - var tech = Tech.Instantiate(); - tech.transform.position = (Vector2) positions[vertex]; - tech.Label.text = $"{(TestMode ? ((int) vertex.UserData).ToString() : ((BlueprintData) vertex.UserData).ID.ToString().Substring(0,2))}"; - var gradient = tech.Label.colorGradient; - gradient.bottomLeft = gradient.bottomRight = islandColors[islandMap[vertex]]; - tech.Label.colorGradient = gradient; - tech.Icon.material.SetTexture("_MainTex", _icons[Random.Range(0,_icons.Length-1)]); - tech.Fill.material = islandFillMaterials[islandMap[vertex]]; - tech.Glow.material = islandGlowMaterials[islandMap[vertex]]; - if (!TestMode) - tech.Fill.GetComponent().OnClick += (collider, data) => - { - PropertiesPanel.Clear(); - var blueprint = (BlueprintData) vertex.UserData; - PropertiesPanel.Title.text = blueprint.Name; - PropertiesPanel.AddProperty("Research Time", () => $"{blueprint.ResearchTime:0.##} MH"); - PropertiesPanel.AddProperty("Produces", () => $"{Context.ItemData.Get(blueprint.Item).Name}"); - PropertiesPanel.AddProperty("Production Quality", () => $"{Mathf.RoundToInt(blueprint.Quality * 100)}%"); - PropertiesPanel.AddProperty("Production Time", () => $"{blueprint.ProductionTime:0.##} MH"); - - var ingredientsList = PropertiesPanel.AddList("Ingredients"); - foreach (var ingredient in blueprint.Ingredients) - { - var ingredientData = Context.ItemData.Get(ingredient.Key); - ingredientsList.AddProperty(ingredientData.Name, () => ingredient.Value.ToString()); - } - ingredientsList.SetExpanded(true, true); - - var dependenciesList = PropertiesPanel.AddList("Dependencies"); - foreach (var dependency in blueprint.Dependencies) - { - var dependencyBlueprint = Context.ItemData.Get(dependency); - dependenciesList.AddProperty(dependencyBlueprint.Name); - } - dependenciesList.SetExpanded(true, true); - - var descendantsList = PropertiesPanel.AddList("Descendants"); - foreach (var descendant in Blueprints.Where(bp => bp.Dependencies.Any(dep => blueprint.ID == dep))) - { - descendantsList.AddProperty(descendant.Name); - } - descendantsList.SetExpanded(true, true); - }; - _techInstances.Add(tech.GetComponent()); - } - - foreach (var edge in graph.Edges) - { - var link = RadialLink.Instantiate(); - link.material = islandLinkMaterials[islandMap[edge.Source]]; - link.positionCount = LinkPoints; - var p1r = length(positions[edge.Source]); - var p2r = length(positions[edge.Target]); - var p1a = (atan2(positions[edge.Source].y, positions[edge.Source].x) + PI * 2.5f) % (PI * 2); - var p2a = (atan2(positions[edge.Target].y, positions[edge.Target].x) + PI * 2.5f) % (PI * 2); - var p1 = float2(sin(p1a) * p1r, -cos(p1a) * p1r); - var p2 = float2(sin(p2a) * p2r, -cos(p2a) * p2r); - var dist = length(p2 - p1); - var distProp = (dist - LinkTargetDistance) / dist; - var dir = new float2(); - var lastPos = new float2(); - link.SetPositions(Enumerable.Range(0,LinkPoints).Select(i=> - { - var lerp = (float) i / (LinkPoints-1) * distProp; - var angle = math.lerp(p1a, p2a, (lerp)); - var radius = math.lerp(p1r, p2r, lerp); - var pos = Radial ? float2(sin(angle) * radius, -cos(angle) * radius) : math.lerp(positions[edge.Source], positions[edge.Target], lerp); - dir = normalize(pos - lastPos); - lastPos = pos; - return (Vector3) float3(lastPos, LinkDepth); - }).ToArray()); - _linkInstances.Add(link.GetComponent()); - - var arrow = Arrow.Instantiate(); - arrow.transform.position = new Vector3(lastPos.x, lastPos.y, ArrowDepth); - arrow.transform.rotation = Quaternion.Euler(0,0,atan2(dir.y, dir.x) * Mathf.Rad2Deg); - arrow.Icon.material = islandArrowMaterials[islandMap[edge.Source]]; - _arrowInstances.Add(arrow.GetComponent()); - } - - if (Radial) - { - for (int i = 1; i <= tiers; i++) - { - var ring = Ring.Instantiate(); - var ringPositions = new Vector3[Sections]; - for (int s = 0; s < Sections; s++) - { - var rads = ((float) s / (Sections-1)) * (PI * 2 - PaddingRadians) + PaddingRadians / 2; - ringPositions[s] = new Vector3(sin(rads), -cos(rads), 0) * ((i + StartTier) * (LayerDistance) * Scale); - ringPositions[s].z = RingDepth; - } - - ring.positionCount = Sections; - ring.SetPositions(ringPositions); - var tierLerp = (float) i / (tiers - 1); - ring.colorGradient = new Gradient - { - alphaKeys = new []{new GradientAlphaKey(1,0), new GradientAlphaKey(1,1)}, - colorKeys = Enumerable.Range(0,RingColorKeys).Select(x=> - { - var ringLerp = (float) x / (RingColorKeys - 1); - return new GradientColorKey( - Color.HSVToRGB(HueMin + (HueMax - HueMin) * ringLerp, - lerp(RingInnerSaturation, RingOuterSaturation, tierLerp), - lerp(RingInnerBrightness, RingOuterBrightness, tierLerp)), ringLerp); - }).ToArray() - }; - - _ringInstances.Add(ring.GetComponent()); - } - } - } -} diff --git a/Assets/Scripts/TechTreeMsagl.cs.meta b/Assets/Scripts/TechTreeMsagl.cs.meta deleted file mode 100644 index e1e9fa084..000000000 --- a/Assets/Scripts/TechTreeMsagl.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: d47bb1c8e9ce08e41877db523d91a2f6 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Scripts/UI/PropertiesPanel.cs b/Assets/Scripts/UI/PropertiesPanel.cs index eb4298452..83d046ac7 100644 --- a/Assets/Scripts/UI/PropertiesPanel.cs +++ b/Assets/Scripts/UI/PropertiesPanel.cs @@ -379,7 +379,7 @@ public class PropertiesPanel : MonoBehaviour { var tier = entity.ItemManager.GetTier(gear); Title.text = - $"{gear.Name} ({tier.tier.Name}{new string('+', tier.upgrades)})"; + $"{data.Name} ({tier.tier.Name}{new string('+', tier.upgrades)})"; var gearData = Context.GetData(gear); AddProperty("Durability", () => $"{gear.Durability.SignificantDigits(Context.GameplaySettings.SignificantDigits)}/{gearData.Durability.SignificantDigits(Context.GameplaySettings.SignificantDigits)}"); diff --git a/Assets/Wwise/Editor/ProjectData/AkWwiseProjectData.asset b/Assets/Wwise/Editor/ProjectData/AkWwiseProjectData.asset index b52f50de9..513d46007 100644 --- a/Assets/Wwise/Editor/ProjectData/AkWwiseProjectData.asset +++ b/Assets/Wwise/Editor/ProjectData/AkWwiseProjectData.asset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:ce8df10517a839cab7279e216bf7fc43ce71a5a09e8b35c299694cc4edcd3683 -size 13259 +oid sha256:50636706ebeee1d481d793b7f39ecefad3ace95d064d2ed1b93410f51c04403e +size 17630 diff --git a/GameData/AetherDB.msgpack b/GameData/AetherDB.msgpack index a5bde333d..bbc916125 100644 --- a/GameData/AetherDB.msgpack +++ b/GameData/AetherDB.msgpack @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:48cf9f69725dc6b5ae37dcbd3b312590adb7b06f92932a446fa225f8e523ed1a -size 82685 +oid sha256:4bfaaecac4a9ba313e48fcfe71939d8208fb26f5e8fa156e1208d3dbaa5606bb +size 69783 diff --git a/GameData/PlayerSettings.msgpack b/GameData/PlayerSettings.msgpack index 2bec95fc7..c3066274e 100644 --- a/GameData/PlayerSettings.msgpack +++ b/GameData/PlayerSettings.msgpack @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:82a1f89ba5a772944a219c9dbb0ffa5f80ebf64001b0b9277b58dc357b2e2298 -size 49024 +oid sha256:5ec0689c8e2c4a036409e31c7400f1fe0693951f750e3c86f99536365c183708 +size 76785 From 64a8589b7ff71c28374b242c997efd607069fccb Mon Sep 17 00:00:00 2001 From: Reinier Vens Date: Mon, 22 Mar 2021 06:10:00 +0000 Subject: [PATCH 17/51] Ammo Consumption Hotfix Weapons weren't firing for some reason --- Assets/Materials/UI/Map Gravity Lines.mat | 2 +- Assets/Scenes/Main Menu.unity | 12 ++-- .../Weapons/GuidedProjectileManager.cs | 3 +- .../ServerShared/Behaviors/InstantWeapon.cs | 65 ++++++++++--------- GameData/AetherDB.msgpack | 4 +- GameData/PlayerSettings.msgpack | 4 +- 6 files changed, 45 insertions(+), 45 deletions(-) diff --git a/Assets/Materials/UI/Map Gravity Lines.mat b/Assets/Materials/UI/Map Gravity Lines.mat index 886f9fb90..d904b859a 100644 --- a/Assets/Materials/UI/Map Gravity Lines.mat +++ b/Assets/Materials/UI/Map Gravity Lines.mat @@ -86,7 +86,7 @@ Material: - _Mode: 0 - _OcclusionStrength: 1 - _Parallax: 0.02 - - _Scale: 4.910362 + - _Scale: 1.33001 - _SmoothnessTextureChannel: 0 - _SpecularHighlights: 1 - _SrcBlend: 1 diff --git a/Assets/Scenes/Main Menu.unity b/Assets/Scenes/Main Menu.unity index 23fd3668d..e6315a752 100644 --- a/Assets/Scenes/Main Menu.unity +++ b/Assets/Scenes/Main Menu.unity @@ -249,7 +249,7 @@ PrefabInstance: - target: {fileID: 878382121558056004, guid: 2758dfa2744d7ad4d8877545189d116e, type: 3} propertyPath: m_AnchoredPosition.x - value: 60.98 + value: 0 objectReference: {fileID: 0} - target: {fileID: 878382121558056004, guid: 2758dfa2744d7ad4d8877545189d116e, type: 3} @@ -1302,8 +1302,8 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 741153267} - m_LocalRotation: {x: 0.015506903, y: 0.9502416, z: -0.30741313, w: 0.047933225} - m_LocalPosition: {x: -117.51999, y: -77.08743, z: 149.09026} + m_LocalRotation: {x: 0.0155069195, y: 0.9502416, z: -0.30741316, w: 0.047933277} + m_LocalPosition: {x: -117.52002, y: -77.087425, z: 149.09026} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: - {fileID: 412917866} @@ -1773,8 +1773,8 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 965376321} - m_LocalRotation: {x: 0.015506903, y: 0.9502416, z: -0.30741313, w: 0.047933225} - m_LocalPosition: {x: -117.51999, y: -77.08743, z: 149.09026} + m_LocalRotation: {x: 0.0155069195, y: 0.9502416, z: -0.30741316, w: 0.047933277} + m_LocalPosition: {x: -117.52002, y: -77.087425, z: 149.09026} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 0} @@ -2722,7 +2722,7 @@ PrefabInstance: - target: {fileID: 878382121558056004, guid: 2758dfa2744d7ad4d8877545189d116e, type: 3} propertyPath: m_AnchoredPosition.x - value: 55.675 + value: 0 objectReference: {fileID: 0} - target: {fileID: 878382121558056004, guid: 2758dfa2744d7ad4d8877545189d116e, type: 3} diff --git a/Assets/Scripts/Gameplay/Weapons/GuidedProjectileManager.cs b/Assets/Scripts/Gameplay/Weapons/GuidedProjectileManager.cs index 218b1b994..988ab0227 100644 --- a/Assets/Scripts/Gameplay/Weapons/GuidedProjectileManager.cs +++ b/Assets/Scripts/Gameplay/Weapons/GuidedProjectileManager.cs @@ -10,9 +10,9 @@ public class GuidedProjectileManager : InstantWeaponEffectManager public override void Fire(InstantWeapon weapon, EquippedItem item, EntityInstance source, EntityInstance target) { - if (target == null) return; if(weapon.Data is LauncherData launcher) { + if (target == null) return; var p = ProjectilePrototype.Instantiate(); p.Source = source.transform; p.SourceEntity = source.Entity; @@ -38,7 +38,6 @@ public class GuidedProjectileManager : InstantWeaponEffectManager var p = ProjectilePrototype.Instantiate(); p.Source = source.transform; p.SourceEntity = source.Entity; - p.Target = target.transform; p.Frequency = guidance.DodgeFrequency; var hp = source.Entity.Hardpoints[item.Position.x, item.Position.y]; var barrel = source.GetBarrel(hp); diff --git a/Assets/Scripts/ServerShared/Behaviors/InstantWeapon.cs b/Assets/Scripts/ServerShared/Behaviors/InstantWeapon.cs index 5fccf64c6..02f5a6bf8 100644 --- a/Assets/Scripts/ServerShared/Behaviors/InstantWeapon.cs +++ b/Assets/Scripts/ServerShared/Behaviors/InstantWeapon.cs @@ -74,13 +74,14 @@ public class InstantWeapon : Weapon, IProgressBehavior, IEventBehavior public InstantWeapon(ItemManager context, InstantWeaponData data, Entity entity, EquippedItem item) : base(context,data,entity,item) { _data = data; + _ammo = data.MagazineSize; } protected void Trigger() { - // If 1 ammo is consumed per burst, perform ammo consumption here + // If 1 ammo is consumed per burst, perform ammo and energy consumption here // UseAmmo returns false when triggering reload; cancel firing if that is the case - if(_data.SingleAmmoBurst && !UseAmmo()) return; + if(_data.SingleAmmoBurst && (!Entity.TryConsumeEnergy(Energy) || !UseAmmo())) return; _burstRemaining = (int) BurstCount; _burstInterval = BurstTime / _burstRemaining; @@ -105,33 +106,34 @@ public class InstantWeapon : Weapon, IProgressBehavior, IEventBehavior { if (_data.MagazineSize <= 1) return true; - if (_ammo > 0) _ammo--; - else + if (_ammo > 0) { - var hasAmmo = true; - if (_data.AmmoType != Guid.Empty) - { - var cargo = Entity.FindItemInCargo(_data.AmmoType); - if (cargo != null) - { - var item = cargo.ItemsOfType[_data.AmmoType][0]; - if (item is SimpleCommodity simpleCommodity) - cargo.Remove(simpleCommodity, 1); - } - else hasAmmo = false; - } - if(hasAmmo) - { - OnReloadBegin?.Invoke(); - _cooldown = 1; - _coolingDown = true; - _firing = false; - } - _burstRemaining = 0; - return false; + _ammo--; + return true; } + + var hasAmmo = true; + if (_data.AmmoType != Guid.Empty) + { + var cargo = Entity.FindItemInCargo(_data.AmmoType); + if (cargo != null) + { + var item = cargo.ItemsOfType[_data.AmmoType][0]; + if (item is SimpleCommodity simpleCommodity) + cargo.Remove(simpleCommodity, 1); + } + else hasAmmo = false; + } + if(hasAmmo) + { + OnReloadBegin?.Invoke(); + _cooldown = 1; + _coolingDown = true; + _firing = false; + } + _burstRemaining = 0; + return false; - return true; } public override bool Execute(float delta) @@ -139,11 +141,11 @@ public class InstantWeapon : Weapon, IProgressBehavior, IEventBehavior base.Execute(delta); if (_coolingDown) { - _cooldown -= delta / (_data.AmmoType != Guid.Empty && _ammo == 0 ? _data.ReloadTime : Cooldown); + _cooldown -= delta / (_data.MagazineSize > 0 && _ammo == 0 ? _data.ReloadTime : Cooldown); if (_cooldown < 0) { _coolingDown = false; - if (_data.AmmoType != Guid.Empty && _ammo == 0) + if (_data.MagazineSize > 0 && _ammo == 0) { _ammo = _data.MagazineSize; OnReloadComplete?.Invoke(); @@ -156,14 +158,13 @@ public class InstantWeapon : Weapon, IProgressBehavior, IEventBehavior _burstTimer += delta; while (_burstRemaining > 0 && _burstTimer > 0) { - if (!Entity.TryConsumeEnergy(Energy)) + // If multiple ammo is consumed per burst, perform ammo and energy consumption here + // UseAmmo returns false when triggering reload; cancel firing if that is the case + if (!_data.SingleAmmoBurst && (!Entity.TryConsumeEnergy(Energy) || !UseAmmo())) { _burstRemaining = 0; return false; } - // If 1 ammo is consumed per shot in the burst, perform ammo consumption here - // UseAmmo returns false when triggering reload; cancel firing if that is the case - if (!_data.SingleAmmoBurst && !UseAmmo()) return false; _burstRemaining--; _burstTimer -= _burstInterval; diff --git a/GameData/AetherDB.msgpack b/GameData/AetherDB.msgpack index bbc916125..4251f866e 100644 --- a/GameData/AetherDB.msgpack +++ b/GameData/AetherDB.msgpack @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:4bfaaecac4a9ba313e48fcfe71939d8208fb26f5e8fa156e1208d3dbaa5606bb -size 69783 +oid sha256:7614cfd2dcf83ffc3f73d98fb6f85e12fb341be330c7bd72460133a5d6f14281 +size 67141 diff --git a/GameData/PlayerSettings.msgpack b/GameData/PlayerSettings.msgpack index c3066274e..ed04ea775 100644 --- a/GameData/PlayerSettings.msgpack +++ b/GameData/PlayerSettings.msgpack @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:5ec0689c8e2c4a036409e31c7400f1fe0693951f750e3c86f99536365c183708 -size 76785 +oid sha256:f914616fca6c1f79f6b9b03c29056574195127622453e5ad3bac1b1b3db17fae +size 29254 From 11a9365f9175f62cc9dcc61cd1e74889059f8754 Mon Sep 17 00:00:00 2001 From: Reinier Vens Date: Sat, 27 Mar 2021 10:03:24 +0000 Subject: [PATCH 18/51] Trailer Stuff & More Changed title font to Montserrat Added trailer-specific camera transitions Added key to hide UI Fixed input listening while console is open Added animated zone reveal effect in galaxy map Added Ping action for sensors Added debug console commands (e.g. give command to get any item in legendary+ quality) Temporarily disabled wwise Fixed infinite loop in weapon penetration code Guided missiles now predict target position Fixed hitscan weapons Fixed invisible enemies bug Fixed various loadout generator issues (can now generate turrets!) Fixed wormhole crash when enemy is targeted Saving/loading current zone time when exiting game (planets keep their positions) Created slime simulation in test scene - WIP --- ...conomy_WwiseProject.rwvens.validationcache | 15 +- .../Aetheria-Economy_WwiseProject.wproj | 29 +- Assets/Fonts/Ubuntu/Montserrat-Thin SDF.asset | 3 + .../Ubuntu/Montserrat-Thin SDF.asset.meta | 8 + Assets/Fonts/Ubuntu/Montserrat-Thin.ttf | 3 + Assets/Fonts/Ubuntu/Montserrat-Thin.ttf.meta | 21 + .../Brushes/Sector Boundary Test.mat | 80 + .../Brushes/Sector Boundary Test.mat.meta | 8 + Assets/Materials/Brushes/Sector Tint Test.mat | 83 + .../Brushes/Sector Tint Test.mat.meta | 8 + Assets/Materials/Fog Marching Test.mat | 65 + Assets/Materials/Fog Marching Test.mat.meta | 8 + Assets/Materials/Gas Giant.mat | 6 +- Assets/Materials/UI/Map Gravity Lines.mat | 2 +- Assets/Prefabs/RPG/Planets/Gas Giant.prefab | 8 +- Assets/Prefabs/RPG/Slime Renderer.prefab | 118 + Assets/Prefabs/RPG/Slime Renderer.prefab.meta | 7 + Assets/Resources/Aetheria.inputactions | 19 + Assets/Resources/LDR_LLL1_0.png.meta | 8 +- Assets/Resources/Prefabs/Weapons/AU.meta | 8 + .../Resources/Prefabs/Weapons/AU/Earp.prefab | 320 + .../Prefabs/Weapons/AU/Earp.prefab.meta | 7 + .../Prefabs/Weapons/AU/Leonid.prefab | 5159 +++++++++++++++++ .../Prefabs/Weapons/AU/Leonid.prefab.meta | 7 + Assets/Resources/Settings.asset | 4 +- Assets/Resources/Slime Gravity.renderTexture | 38 + .../Slime Gravity.renderTexture.meta | 8 + Assets/Scenes/ARPG.unity | 648 ++- .../Postprocessing Profile Death.asset | 4 +- .../Postprocessing Profile.asset | 4 +- Assets/Scenes/Main Menu.unity | 26 +- Assets/Scenes/TestScene.unity | 1896 ++++-- .../TestScene_Profiles/PP Profile.asset | 4 +- Assets/Scripts/AetheriaInput.cs | 29 + Assets/Scripts/Gameplay/ActionGameManager.cs | 274 +- Assets/Scripts/Gameplay/EntityInstance.cs | 56 +- Assets/Scripts/Gameplay/ShipInstance.cs | 32 +- .../Gameplay/Weapons/GuidedProjectile.cs | 11 +- .../Weapons/GuidedProjectileManager.cs | 7 +- .../Gameplay/Weapons/HitscanManager.cs | 10 +- .../ServerShared/Behaviors/InstantWeapon.cs | 6 +- .../ServerShared/Behaviors/VelocityLimit.cs | 1 + Assets/Scripts/ServerShared/Entity.cs | 4 +- Assets/Scripts/ServerShared/ItemManager.cs | 42 +- .../Scripts/ServerShared/LoadoutGenerator.cs | 11 +- Assets/Scripts/ServerShared/Ship.cs | 1 + Assets/Scripts/ServerShared/Zone.cs | 22 +- Assets/Scripts/ServerShared/ZoneData.cs | 3 + Assets/Scripts/ServerShared/ZoneGenerator.cs | 4 +- Assets/Scripts/UI/ConsoleView.cs | 15 + Assets/{ => Scripts/UI}/ItemFilter.cs | 0 Assets/{ => Scripts/UI}/ItemFilter.cs.meta | 0 Assets/Scripts/UI/PropertiesPanel.cs | 41 +- Assets/Scripts/UI/SectorMap.cs | 397 +- Assets/{ => Scripts/UI}/SectorRenderer.cs | 57 + .../{ => Scripts/UI}/SectorRenderer.cs.meta | 0 Assets/Scripts/UI/TradeMenu.cs | 1 + ...{Sector Display.meta => Zone Display.meta} | 0 .../BlueNoiseProvider.cs | 0 .../BlueNoiseProvider.cs.meta | 0 .../CopyTransform.cs | 0 .../CopyTransform.cs.meta | 0 .../GasGiantObject.cs | 0 .../GasGiantObject.cs.meta | 0 .../GradientMapper.cs | 0 .../GradientMapper.cs.meta | 0 .../GravityObject.cs | 0 .../GravityObject.cs.meta | 0 .../MapView.cs | 0 .../MapView.cs.meta | 0 .../PlanetObject.cs | 0 .../PlanetObject.cs.meta | 0 .../SnapToGrid.cs | 0 .../SnapToGrid.cs.meta | 0 .../SunMaterial.cs | 0 .../SunMaterial.cs.meta | 0 .../SunObject.cs | 0 .../SunObject.cs.meta | 0 .../VolumeSampling.cs | 2 +- .../VolumeSampling.cs.meta | 0 .../WaveScroll.cs | 0 .../WaveScroll.cs.meta | 0 .../ZoneRenderer.cs | 11 +- .../ZoneRenderer.cs.meta | 0 Assets/Shaders/Compute/Slime.meta | 8 + .../Compute/Slime/RenderAccumulation.shader | 54 + .../Slime/RenderAccumulation.shader.meta | 10 + .../Compute/Slime/Slime Accumulation.mat | 97 + .../Compute/Slime/Slime Accumulation.mat.meta | 8 + Assets/Shaders/Compute/Slime/Slime.compute | 301 + .../Shaders/Compute/Slime/Slime.compute.meta | 9 + Assets/Shaders/Compute/Slime/Slime.cs | 229 + Assets/Shaders/Compute/Slime/Slime.cs.meta | 11 + Assets/Shaders/Compute/Slime/Slime.shader | 159 + .../Shaders/Compute/Slime/Slime.shader.meta | 9 + .../Compute/Slime/SlimeParticles.shader | 136 + .../Compute/Slime/SlimeParticles.shader.meta | 3 + Assets/Shaders/Compute/Slime/SlimeTrails.mat | 82 + .../Compute/Slime/SlimeTrails.mat.meta | 8 + .../Shaders/Compute/Slime/SlimeVertex.cginc | 20 + .../Compute/Slime/SlimeVertex.cginc.meta | 3 + .../Shaders/Compute/Stardust/Stardust.compute | 4 +- Assets/Shaders/Compute/Stardust/Stardust.cs | 5 - .../LiberationSans SDF - Fallback.asset | 4 +- Assets/WwiseSettings.xml | 4 +- GameData/AetherDB.msgpack | 4 +- GameData/PlayerSettings.msgpack | 4 +- UserSettings/EditorUserSettings.asset | 2 +- 108 files changed, 10018 insertions(+), 825 deletions(-) create mode 100644 Assets/Fonts/Ubuntu/Montserrat-Thin SDF.asset create mode 100644 Assets/Fonts/Ubuntu/Montserrat-Thin SDF.asset.meta create mode 100644 Assets/Fonts/Ubuntu/Montserrat-Thin.ttf create mode 100644 Assets/Fonts/Ubuntu/Montserrat-Thin.ttf.meta create mode 100644 Assets/Materials/Brushes/Sector Boundary Test.mat create mode 100644 Assets/Materials/Brushes/Sector Boundary Test.mat.meta create mode 100644 Assets/Materials/Brushes/Sector Tint Test.mat create mode 100644 Assets/Materials/Brushes/Sector Tint Test.mat.meta create mode 100644 Assets/Materials/Fog Marching Test.mat create mode 100644 Assets/Materials/Fog Marching Test.mat.meta create mode 100644 Assets/Prefabs/RPG/Slime Renderer.prefab create mode 100644 Assets/Prefabs/RPG/Slime Renderer.prefab.meta create mode 100644 Assets/Resources/Prefabs/Weapons/AU.meta create mode 100644 Assets/Resources/Prefabs/Weapons/AU/Earp.prefab create mode 100644 Assets/Resources/Prefabs/Weapons/AU/Earp.prefab.meta create mode 100644 Assets/Resources/Prefabs/Weapons/AU/Leonid.prefab create mode 100644 Assets/Resources/Prefabs/Weapons/AU/Leonid.prefab.meta create mode 100644 Assets/Resources/Slime Gravity.renderTexture create mode 100644 Assets/Resources/Slime Gravity.renderTexture.meta rename Assets/{ => Scripts/UI}/ItemFilter.cs (100%) rename Assets/{ => Scripts/UI}/ItemFilter.cs.meta (100%) rename Assets/{ => Scripts/UI}/SectorRenderer.cs (64%) rename Assets/{ => Scripts/UI}/SectorRenderer.cs.meta (100%) rename Assets/Scripts/{Sector Display.meta => Zone Display.meta} (100%) rename Assets/Scripts/{Sector Display => Zone Display}/BlueNoiseProvider.cs (100%) rename Assets/Scripts/{Sector Display => Zone Display}/BlueNoiseProvider.cs.meta (100%) rename Assets/Scripts/{Sector Display => Zone Display}/CopyTransform.cs (100%) rename Assets/Scripts/{Sector Display => Zone Display}/CopyTransform.cs.meta (100%) rename Assets/Scripts/{Sector Display => Zone Display}/GasGiantObject.cs (100%) rename Assets/Scripts/{Sector Display => Zone Display}/GasGiantObject.cs.meta (100%) rename Assets/Scripts/{Sector Display => Zone Display}/GradientMapper.cs (100%) rename Assets/Scripts/{Sector Display => Zone Display}/GradientMapper.cs.meta (100%) rename Assets/Scripts/{Sector Display => Zone Display}/GravityObject.cs (100%) rename Assets/Scripts/{Sector Display => Zone Display}/GravityObject.cs.meta (100%) rename Assets/Scripts/{Sector Display => Zone Display}/MapView.cs (100%) rename Assets/Scripts/{Sector Display => Zone Display}/MapView.cs.meta (100%) rename Assets/Scripts/{Sector Display => Zone Display}/PlanetObject.cs (100%) rename Assets/Scripts/{Sector Display => Zone Display}/PlanetObject.cs.meta (100%) rename Assets/Scripts/{Sector Display => Zone Display}/SnapToGrid.cs (100%) rename Assets/Scripts/{Sector Display => Zone Display}/SnapToGrid.cs.meta (100%) rename Assets/Scripts/{Sector Display => Zone Display}/SunMaterial.cs (100%) rename Assets/Scripts/{Sector Display => Zone Display}/SunMaterial.cs.meta (100%) rename Assets/Scripts/{Sector Display => Zone Display}/SunObject.cs (100%) rename Assets/Scripts/{Sector Display => Zone Display}/SunObject.cs.meta (100%) rename Assets/Scripts/{Sector Display => Zone Display}/VolumeSampling.cs (98%) rename Assets/Scripts/{Sector Display => Zone Display}/VolumeSampling.cs.meta (100%) rename Assets/Scripts/{Sector Display => Zone Display}/WaveScroll.cs (100%) rename Assets/Scripts/{Sector Display => Zone Display}/WaveScroll.cs.meta (100%) rename Assets/Scripts/{Sector Display => Zone Display}/ZoneRenderer.cs (98%) rename Assets/Scripts/{Sector Display => Zone Display}/ZoneRenderer.cs.meta (100%) create mode 100644 Assets/Shaders/Compute/Slime.meta create mode 100644 Assets/Shaders/Compute/Slime/RenderAccumulation.shader create mode 100644 Assets/Shaders/Compute/Slime/RenderAccumulation.shader.meta create mode 100644 Assets/Shaders/Compute/Slime/Slime Accumulation.mat create mode 100644 Assets/Shaders/Compute/Slime/Slime Accumulation.mat.meta create mode 100644 Assets/Shaders/Compute/Slime/Slime.compute create mode 100644 Assets/Shaders/Compute/Slime/Slime.compute.meta create mode 100644 Assets/Shaders/Compute/Slime/Slime.cs create mode 100644 Assets/Shaders/Compute/Slime/Slime.cs.meta create mode 100644 Assets/Shaders/Compute/Slime/Slime.shader create mode 100644 Assets/Shaders/Compute/Slime/Slime.shader.meta create mode 100644 Assets/Shaders/Compute/Slime/SlimeParticles.shader create mode 100644 Assets/Shaders/Compute/Slime/SlimeParticles.shader.meta create mode 100644 Assets/Shaders/Compute/Slime/SlimeTrails.mat create mode 100644 Assets/Shaders/Compute/Slime/SlimeTrails.mat.meta create mode 100644 Assets/Shaders/Compute/Slime/SlimeVertex.cginc create mode 100644 Assets/Shaders/Compute/Slime/SlimeVertex.cginc.meta diff --git a/Aetheria-Economy_WwiseProject/Aetheria-Economy_WwiseProject.rwvens.validationcache b/Aetheria-Economy_WwiseProject/Aetheria-Economy_WwiseProject.rwvens.validationcache index c01104806..c13fd0420 100644 --- a/Aetheria-Economy_WwiseProject/Aetheria-Economy_WwiseProject.rwvens.validationcache +++ b/Aetheria-Economy_WwiseProject/Aetheria-Economy_WwiseProject.rwvens.validationcache @@ -30,8 +30,8 @@ - - + + @@ -40,12 +40,14 @@ + - - + + + @@ -54,8 +56,9 @@ - + - + + diff --git a/Aetheria-Economy_WwiseProject/Aetheria-Economy_WwiseProject.wproj b/Aetheria-Economy_WwiseProject/Aetheria-Economy_WwiseProject.wproj index 23c937450..03d6b9714 100644 --- a/Aetheria-Economy_WwiseProject/Aetheria-Economy_WwiseProject.wproj +++ b/Aetheria-Economy_WwiseProject/Aetheria-Economy_WwiseProject.wproj @@ -25,7 +25,34 @@ GeneratedSoundBanks\Windows\ - + diff --git a/Assets/Fonts/Ubuntu/Montserrat-Thin SDF.asset b/Assets/Fonts/Ubuntu/Montserrat-Thin SDF.asset new file mode 100644 index 000000000..209517e47 --- /dev/null +++ b/Assets/Fonts/Ubuntu/Montserrat-Thin SDF.asset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c2d9e7d9f2b5f37c3c55fc27ca9616e03fa6c8771bcd8bff61017b7a38909e70 +size 8440214 diff --git a/Assets/Fonts/Ubuntu/Montserrat-Thin SDF.asset.meta b/Assets/Fonts/Ubuntu/Montserrat-Thin SDF.asset.meta new file mode 100644 index 000000000..8499a855f --- /dev/null +++ b/Assets/Fonts/Ubuntu/Montserrat-Thin SDF.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1c5e8a01819db8d4b812bf3d3eecd389 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Fonts/Ubuntu/Montserrat-Thin.ttf b/Assets/Fonts/Ubuntu/Montserrat-Thin.ttf new file mode 100644 index 000000000..73b318a16 --- /dev/null +++ b/Assets/Fonts/Ubuntu/Montserrat-Thin.ttf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:33f1468236d083256d262231f4085918eeac454b09ac27909fe0fafbede9af9a +size 51812 diff --git a/Assets/Fonts/Ubuntu/Montserrat-Thin.ttf.meta b/Assets/Fonts/Ubuntu/Montserrat-Thin.ttf.meta new file mode 100644 index 000000000..82f4153fd --- /dev/null +++ b/Assets/Fonts/Ubuntu/Montserrat-Thin.ttf.meta @@ -0,0 +1,21 @@ +fileFormatVersion: 2 +guid: 39baae53551530c46a09203705373952 +TrueTypeFontImporter: + externalObjects: {} + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontNames: + - Montserrat + fallbackFontReferences: [] + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + useLegacyBoundsCalculation: 0 + shouldRoundAdvanceValue: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Materials/Brushes/Sector Boundary Test.mat b/Assets/Materials/Brushes/Sector Boundary Test.mat new file mode 100644 index 000000000..90caa3e28 --- /dev/null +++ b/Assets/Materials/Brushes/Sector Boundary Test.mat @@ -0,0 +1,80 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Sector Boundary Test + m_Shader: {fileID: 4800000, guid: 268da230635cfb34ab4ed6ad39503fa0, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _BumpScale: 1 + - _Cutoff: 0.5 + - _Depth: 150 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossyReflections: 1 + - _Metallic: 0 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _Power: 0.25 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _UVSec: 0 + - _ZWrite: 1 + m_Colors: + - _Color: {r: 1, g: 1, b: 1, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + m_BuildTextureStacks: [] diff --git a/Assets/Materials/Brushes/Sector Boundary Test.mat.meta b/Assets/Materials/Brushes/Sector Boundary Test.mat.meta new file mode 100644 index 000000000..86c71a04a --- /dev/null +++ b/Assets/Materials/Brushes/Sector Boundary Test.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 65e5206f4614c85449f822f5bab55199 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Materials/Brushes/Sector Tint Test.mat b/Assets/Materials/Brushes/Sector Tint Test.mat new file mode 100644 index 000000000..ef2c3da21 --- /dev/null +++ b/Assets/Materials/Brushes/Sector Tint Test.mat @@ -0,0 +1,83 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Sector Tint Test + m_Shader: {fileID: 4800000, guid: 268da230635cfb34ab4ed6ad39503fa0, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _BumpScale: 1 + - _Cutoff: 0.5 + - _Depth: 0.25 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _Frequency: 6.2832 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossyReflections: 1 + - _Metallic: 0 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _Phase: 0 + - _Power: 0.5 + - _SinePower: 1.25 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _UVSec: 0 + - _ZWrite: 1 + m_Colors: + - _Color: {r: 0.3726415, g: 0.70283014, b: 1, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + m_BuildTextureStacks: [] diff --git a/Assets/Materials/Brushes/Sector Tint Test.mat.meta b/Assets/Materials/Brushes/Sector Tint Test.mat.meta new file mode 100644 index 000000000..dd1167126 --- /dev/null +++ b/Assets/Materials/Brushes/Sector Tint Test.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7b4b425f2959c6444b35fca367641ee2 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Materials/Fog Marching Test.mat b/Assets/Materials/Fog Marching Test.mat new file mode 100644 index 000000000..89b46a198 --- /dev/null +++ b/Assets/Materials/Fog Marching Test.mat @@ -0,0 +1,65 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Fog Marching Test + m_Shader: {fileID: 4800000, guid: 7a890b6ceccf53c44bfc54b18b5daa58, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _Displacement: + m_Texture: {fileID: 8400000, guid: 06ec5ef8a5830fc44b1ac1a6e123add5, type: 2} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _Patch: + m_Texture: {fileID: 8400000, guid: c618a6b20b3c7394590c59a9fa467e86, type: 2} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _Surface: + m_Texture: {fileID: 8400000, guid: 2fc21a9d3e9647948b56e384cd9378b3, type: 2} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TintTexture: + m_Texture: {fileID: 8400000, guid: d196505464047f04a97f28689041209b, type: 2} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _AlphaFloor: 0 + - _DepthBlend: 512 + - _DepthCeiling: 4096 + - _Gamma: 0.66 + - _GridCeilingBlend: -300 + - _GridCeilingDensity: 0.01 + - _GridCeilingFollow: 0 + - _GridCeilingOffset: 0 + - _GridFillDensity: 0 + - _GridFloorBlend: 93.3 + - _GridFloorDensity: 4 + - _GridFloorOffset: 25 + - _GridPatchBlend: 22.7 + - _GridPatchDensity: 0.1 + - _NoiseFrequency: 0.01 + - _NoiseSpeed: 0.02 + - _NoiseStrength: 75 + - _SafetyDistance: 50 + - _StepExponent: 2 + - _TintExponent: 8 + m_Colors: + - _Tint: {r: 2.0078435, g: 2.0078435, b: 2.0078435, a: 1} + m_BuildTextureStacks: [] diff --git a/Assets/Materials/Fog Marching Test.mat.meta b/Assets/Materials/Fog Marching Test.mat.meta new file mode 100644 index 000000000..9f0e3d586 --- /dev/null +++ b/Assets/Materials/Fog Marching Test.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ad63650ae6d6cc542a5aad16694b3c46 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Materials/Gas Giant.mat b/Assets/Materials/Gas Giant.mat index 6634750d2..2550f56ee 100644 --- a/Assets/Materials/Gas Giant.mat +++ b/Assets/Materials/Gas Giant.mat @@ -28,7 +28,7 @@ Material: m_Scale: {x: 1, y: 1} m_Offset: {x: 0, y: 0} - _ColorRamp: - m_Texture: {fileID: 0} + m_Texture: {fileID: 2800000, guid: 4f6a7385479a85a40be0c3030504c7c5, type: 3} m_Scale: {x: 1, y: 1} m_Offset: {x: 0, y: 0} - _DetailAlbedoMap: @@ -104,8 +104,8 @@ Material: - _OffsetFadePower: -0.75 - _Parallax: 0.02 - _RayStepSize: -0.00625 - - _SecondOffsetDepthExponent: 0 - - _SecondOffsetDistance: -0.2 + - _SecondOffsetDepthExponent: -2 + - _SecondOffsetDistance: -0.05 - _SecondOffsetFadePower: -8 - _SecondOffsetRotationFadePower: 0.25 - _SmoothnessTextureChannel: 0 diff --git a/Assets/Materials/UI/Map Gravity Lines.mat b/Assets/Materials/UI/Map Gravity Lines.mat index d904b859a..8cac61716 100644 --- a/Assets/Materials/UI/Map Gravity Lines.mat +++ b/Assets/Materials/UI/Map Gravity Lines.mat @@ -86,7 +86,7 @@ Material: - _Mode: 0 - _OcclusionStrength: 1 - _Parallax: 0.02 - - _Scale: 1.33001 + - _Scale: 5.603361 - _SmoothnessTextureChannel: 0 - _SpecularHighlights: 1 - _SrcBlend: 1 diff --git a/Assets/Prefabs/RPG/Planets/Gas Giant.prefab b/Assets/Prefabs/RPG/Planets/Gas Giant.prefab index ef3fb7b6b..eb58d6b0a 100644 --- a/Assets/Prefabs/RPG/Planets/Gas Giant.prefab +++ b/Assets/Prefabs/RPG/Planets/Gas Giant.prefab @@ -404,10 +404,10 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 3c2eb8fe081f14940a7208cbdc3d97f9, type: 3} m_Name: m_EditorClassIdentifier: - SpeedMultiplier: 0.0025 + SpeedMultiplier: 0.005 FirstOffsetDomainRotationSpeed: 5 - FirstOffsetRotationSpeed: 0 + FirstOffsetRotationSpeed: 20 SecondOffsetDomainRotationSpeed: 10 - SecondOffsetRotationSpeed: -25 - AlbedoRotationSpeed: -3 + SecondOffsetRotationSpeed: -50 + AlbedoRotationSpeed: 15 LightingDirection: {x: 1, y: 0, z: 1} diff --git a/Assets/Prefabs/RPG/Slime Renderer.prefab b/Assets/Prefabs/RPG/Slime Renderer.prefab new file mode 100644 index 000000000..79640312e --- /dev/null +++ b/Assets/Prefabs/RPG/Slime Renderer.prefab @@ -0,0 +1,118 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &6977256487485077368 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6977256487485077373} + - component: {fileID: 6977256487485077374} + - component: {fileID: 6977256487485077375} + - component: {fileID: 5262902644310250487} + m_Layer: 0 + m_Name: Slime Renderer + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &6977256487485077373 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6977256487485077368} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &6977256487485077374 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6977256487485077368} + m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &6977256487485077375 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6977256487485077368} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 817815ac1f000054ab738bb243cd7dba, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!114 &5262902644310250487 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6977256487485077368} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8ffec49d55e3429418714ceb048bfeae, type: 3} + m_Name: + m_EditorClassIdentifier: + TargetCamera: {fileID: 0} + GravityCamera: {fileID: 0} + SlimeCompute: {fileID: 7200000, guid: 33eea2339ec4dc143b0e192a0b7f0a33, type: 3} + AccumulationMaterial: {fileID: 2100000, guid: 817815ac1f000054ab738bb243cd7dba, + type: 2} + ParticleMaterial: {fileID: 0} + GravityTexture: {fileID: 0} + TextureSize: 2048 + ZoneRadius: 512 + AgentCount: 1048576 + ParticleCount: 65536 + SlimeSettings: + Deposition: 1 + Diffusion: 0.5 + Decay: 1 + TurnSpeed: 12 + RandomSteering: 1 + Speed: 25 + Drive: 16 + SensorDistance: 8 + SensorSpread: 0.64 + SensorSize: 1 diff --git a/Assets/Prefabs/RPG/Slime Renderer.prefab.meta b/Assets/Prefabs/RPG/Slime Renderer.prefab.meta new file mode 100644 index 000000000..76f046fed --- /dev/null +++ b/Assets/Prefabs/RPG/Slime Renderer.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: efd1f097ce29ffa48bb0045d6502f55d +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Aetheria.inputactions b/Assets/Resources/Aetheria.inputactions index eeb940607..bb037beab 100644 --- a/Assets/Resources/Aetheria.inputactions +++ b/Assets/Resources/Aetheria.inputactions @@ -188,6 +188,14 @@ "expectedControlType": "Button", "processors": "", "interactions": "" + }, + { + "name": "Hide UI", + "type": "Button", + "id": "1cdb2515-91e1-4895-879d-8a7347e60b21", + "expectedControlType": "Button", + "processors": "", + "interactions": "" } ], "bindings": [ @@ -630,6 +638,17 @@ "action": "Ping", "isComposite": false, "isPartOfComposite": false + }, + { + "name": "", + "id": "3f898572-d165-4e29-93c3-95c3efce5df9", + "path": "/f2", + "interactions": "", + "processors": "", + "groups": "Keyboard&Mouse", + "action": "Hide UI", + "isComposite": false, + "isPartOfComposite": false } ] }, diff --git a/Assets/Resources/LDR_LLL1_0.png.meta b/Assets/Resources/LDR_LLL1_0.png.meta index cf719bbe1..cb0f45504 100644 --- a/Assets/Resources/LDR_LLL1_0.png.meta +++ b/Assets/Resources/LDR_LLL1_0.png.meta @@ -35,9 +35,9 @@ TextureImporter: filterMode: 0 aniso: -1 mipBias: -100 - wrapU: -1 - wrapV: -1 - wrapW: -1 + wrapU: 0 + wrapV: 0 + wrapW: 0 nPOTScale: 1 lightmap: 0 compressionQuality: 50 @@ -55,6 +55,8 @@ TextureImporter: textureType: 0 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 diff --git a/Assets/Resources/Prefabs/Weapons/AU.meta b/Assets/Resources/Prefabs/Weapons/AU.meta new file mode 100644 index 000000000..a857fa6fa --- /dev/null +++ b/Assets/Resources/Prefabs/Weapons/AU.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8f9cbfd6f56feab4b9a92aaef70203db +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Prefabs/Weapons/AU/Earp.prefab b/Assets/Resources/Prefabs/Weapons/AU/Earp.prefab new file mode 100644 index 000000000..4fb81e4cf --- /dev/null +++ b/Assets/Resources/Prefabs/Weapons/AU/Earp.prefab @@ -0,0 +1,320 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &1038711833328602429 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7093708978518643867} + - component: {fileID: 4746410263980518329} + - component: {fileID: 277178765566372861} + - component: {fileID: 654273117314929370} + m_Layer: 0 + m_Name: Bullet + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &7093708978518643867 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1038711833328602429} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 7887646903913370668} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &4746410263980518329 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1038711833328602429} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1281fe44325f9b548aa42dc331b17266, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!96 &277178765566372861 +TrailRenderer: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1038711833328602429} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 9c20b9ccbbbb1b14cb5729e0c8460cd9, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Time: 0.1 + m_Parameters: + serializedVersion: 3 + widthMultiplier: 1 + widthCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: -1 + tangentMode: 69 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: -1 + outSlope: 0 + tangentMode: 69 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + colorGradient: + serializedVersion: 2 + key0: {r: 1, g: 0.99469995, b: 0.45098042, a: 1} + key1: {r: 1, g: 0.3910084, b: 0.049000025, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 31804 + ctime2: 65535 + ctime3: 65535 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 3 + m_NumAlphaKeys: 2 + numCornerVertices: 0 + numCapVertices: 0 + alignment: 0 + textureMode: 0 + shadowBias: 0.5 + generateLightingData: 0 + m_MinVertexDistance: 1 + m_Autodestruct: 0 + m_Emitting: 1 +--- !u!114 &654273117314929370 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1038711833328602429} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4528540a139424748a7b6c47bfecc7fd, type: 3} + m_Name: + m_EditorClassIdentifier: + Trail: {fileID: 277178765566372861} + Gravity: 1 + HitEffect: {fileID: 3196731101172068069} +--- !u!1 &6642079567538326943 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7887646903913370668} + - component: {fileID: 4191762351494344457} + m_Layer: 0 + m_Name: Bullet Manager + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &7887646903913370668 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6642079567538326943} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 7093708978518643867} + - {fileID: 6081895055445446888} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &4191762351494344457 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6642079567538326943} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 49c173e3c2313ca4d9d04d0d87ec0f06, type: 3} + m_Name: + m_EditorClassIdentifier: + ProjectilePrototype: {fileID: 4746410263980518329} +--- !u!1001 &6082388488576249182 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 7887646903913370668} + m_Modifications: + - target: {fileID: 1337198075554910, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, type: 3} + propertyPath: m_Name + value: TinyExplosion + objectReference: {fileID: 0} + - target: {fileID: 4441266138185142, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, type: 3} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4441266138185142, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, type: 3} + propertyPath: m_LocalPosition.x + value: -4.2346153 + objectReference: {fileID: 0} + - target: {fileID: 4441266138185142, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, type: 3} + propertyPath: m_LocalPosition.y + value: 2.42 + objectReference: {fileID: 0} + - target: {fileID: 4441266138185142, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, type: 3} + propertyPath: m_LocalPosition.z + value: -21.91896 + objectReference: {fileID: 0} + - target: {fileID: 4441266138185142, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, type: 3} + propertyPath: m_LocalRotation.w + value: 0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 4441266138185142, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, type: 3} + propertyPath: m_LocalRotation.x + value: -0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 4441266138185142, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4441266138185142, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4441266138185142, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: -90 + objectReference: {fileID: 0} + - target: {fileID: 4441266138185142, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4441266138185142, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 198175801688348628, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, + type: 3} + propertyPath: looping + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 198175801688348628, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, + type: 3} + propertyPath: prewarm + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 198814760465859298, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, + type: 3} + propertyPath: looping + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 198814760465859298, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, + type: 3} + propertyPath: prewarm + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 198942329355805636, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, + type: 3} + propertyPath: looping + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 198942329355805636, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, + type: 3} + propertyPath: prewarm + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, type: 3} +--- !u!4 &6081895055445446888 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4441266138185142, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, + type: 3} + m_PrefabInstance: {fileID: 6082388488576249182} + m_PrefabAsset: {fileID: 0} +--- !u!114 &3196731101172068069 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 8662091027736085435, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, + type: 3} + m_PrefabInstance: {fileID: 6082388488576249182} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1281fe44325f9b548aa42dc331b17266, type: 3} + m_Name: + m_EditorClassIdentifier: diff --git a/Assets/Resources/Prefabs/Weapons/AU/Earp.prefab.meta b/Assets/Resources/Prefabs/Weapons/AU/Earp.prefab.meta new file mode 100644 index 000000000..85ee1cd5c --- /dev/null +++ b/Assets/Resources/Prefabs/Weapons/AU/Earp.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 1cc2308a1f24cc043aafc00a3788f3ca +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Prefabs/Weapons/AU/Leonid.prefab b/Assets/Resources/Prefabs/Weapons/AU/Leonid.prefab new file mode 100644 index 000000000..db858d9a9 --- /dev/null +++ b/Assets/Resources/Prefabs/Weapons/AU/Leonid.prefab @@ -0,0 +1,5159 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &2200213683735813174 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2200213683735813172} + - component: {fileID: 2698694499776308069} + - component: {fileID: 2200213683735813173} + m_Layer: 0 + m_Name: Micromissile + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2200213683735813172 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2200213683735813174} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 2200213684891960496} + m_Father: {fileID: 5148235482537864796} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &2698694499776308069 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2200213683735813174} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1281fe44325f9b548aa42dc331b17266, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &2200213683735813173 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2200213683735813174} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 56c973b8f3781c848b6530c2e7efce05, type: 3} + m_Name: + m_EditorClassIdentifier: + HitEffect: {fileID: 332779026898239585} + ChildProjectile: {fileID: 0} + AirburstProjectile: {fileID: 0} + AirburstCount: 0 + AirburstDirectionality: 0 + AirburstDistance: 0 + AirburstRange: 0 + AirburstVelocity: 0 + Children: 0 + SplitTime: 0 + SplitSeparationForwardness: 0 + SplitSeparationVelocity: 0 + Particles: {fileID: 2200213684891960502} + FadeOutTime: 1 + ThrustCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0.5 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + GuidanceCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0.5 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 0.9608628 + value: 0.9977624 + inSlope: 0.112816334 + outSlope: 0.112816334 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + LiftCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0.0023040771 + value: 0.73749924 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 0.17710531 + value: 0.81192774 + inSlope: -0.8198446 + outSlope: -0.8198446 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.38233894 + value: 0.09487492 + inSlope: -0.08619904 + outSlope: -0.08619904 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.7232835 + value: 0.09761685 + inSlope: 0.13605312 + outSlope: 0.13605312 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.5938519 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + Frequency: 0.25 + Thrust: 500 + TopSpeed: 250 + Source: {fileID: 0} +--- !u!1 &2200213684891960497 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2200213684891960496} + - component: {fileID: 2200213684891960502} + - component: {fileID: 2200213684891960503} + m_Layer: 0 + m_Name: Particle System + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2200213684891960496 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2200213684891960497} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 2200213683735813172} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: -90, y: 0, z: 0} +--- !u!198 &2200213684891960502 +ParticleSystem: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2200213684891960497} + serializedVersion: 7 + lengthInSec: 5 + simulationSpeed: 1 + stopAction: 0 + cullingMode: 0 + ringBufferMode: 0 + ringBufferLoopRange: {x: 0, y: 1} + looping: 1 + prewarm: 0 + playOnAwake: 1 + useUnscaledTime: 0 + autoRandomSeed: 1 + useRigidbodyForVelocity: 1 + startDelay: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + moveWithTransform: 1 + moveWithCustomTransform: {fileID: 0} + scalingMode: 1 + randomSeed: 0 + InitialModule: + serializedVersion: 3 + enabled: 1 + startLifetime: + serializedVersion: 2 + minMaxState: 0 + scalar: 2 + minScalar: 5 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startSpeed: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 5 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startColor: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + startSize: + serializedVersion: 2 + minMaxState: 0 + scalar: 5 + minScalar: 3 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startSizeY: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startSizeZ: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startRotationX: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startRotationY: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startRotation: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + randomizeRotationDirection: 0 + maxNumParticles: 1000 + size3D: 0 + rotation3D: 0 + gravityModifier: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + ShapeModule: + serializedVersion: 6 + enabled: 0 + type: 4 + angle: 25 + length: 5 + boxThickness: {x: 0, y: 0, z: 0} + radiusThickness: 1 + donutRadius: 0.2 + m_Position: {x: 0, y: 0, z: 0} + m_Rotation: {x: 0, y: 0, z: 0} + m_Scale: {x: 1, y: 1, z: 1} + placementMode: 0 + m_MeshMaterialIndex: 0 + m_MeshNormalOffset: 0 + m_MeshSpawn: + mode: 0 + spread: 0 + speed: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Mesh: {fileID: 0} + m_MeshRenderer: {fileID: 0} + m_SkinnedMeshRenderer: {fileID: 0} + m_Sprite: {fileID: 0} + m_SpriteRenderer: {fileID: 0} + m_UseMeshMaterialIndex: 0 + m_UseMeshColors: 1 + alignToDirection: 0 + m_Texture: {fileID: 0} + m_TextureClipChannel: 3 + m_TextureClipThreshold: 0 + m_TextureUVChannel: 0 + m_TextureColorAffectsParticles: 1 + m_TextureAlphaAffectsParticles: 1 + m_TextureBilinearFiltering: 0 + randomDirectionAmount: 0 + sphericalDirectionAmount: 0 + randomPositionAmount: 0 + radius: + value: 1 + mode: 0 + spread: 0 + speed: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + arc: + value: 360 + mode: 0 + spread: 0 + speed: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + EmissionModule: + enabled: 1 + serializedVersion: 4 + rateOverTime: + serializedVersion: 2 + minMaxState: 0 + scalar: 500 + minScalar: 10 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + rateOverDistance: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_BurstCount: 0 + m_Bursts: [] + SizeModule: + enabled: 0 + curve: + serializedVersion: 2 + minMaxState: 1 + scalar: 4 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 2 + outSlope: 2 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 0.15039083 + value: 0.97053653 + inSlope: -0.04036486 + outSlope: -0.04036486 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.37395254 + value: 0.1353639 + inSlope: 0.03037455 + outSlope: 0.03037455 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.50258505 + - serializedVersion: 3 + time: 0.5234933 + value: 0.965686 + inSlope: -0.015838688 + outSlope: -0.015838688 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.5332359 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.80144876 + value: 0.13683647 + inSlope: 0.11682253 + outSlope: 0.11682253 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + RotationModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + curve: + serializedVersion: 2 + minMaxState: 0 + scalar: 0.7853982 + minScalar: 0.7853982 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + ColorModule: + enabled: 0 + gradient: + serializedVersion: 2 + minMaxState: 1 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + UVModule: + serializedVersion: 2 + enabled: 0 + mode: 0 + timeMode: 1 + fps: 30 + frameOverTime: + serializedVersion: 2 + minMaxState: 1 + scalar: 0.9999 + minScalar: 0.9999 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startFrame: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + speedRange: {x: 0, y: 1} + tilesX: 5 + tilesY: 5 + animationType: 0 + rowIndex: 0 + cycles: 1 + uvChannelMask: -1 + rowMode: 1 + sprites: + - sprite: {fileID: 0} + flipU: 0 + flipV: 0 + VelocityModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalX: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalY: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalZ: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalOffsetX: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalOffsetY: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalOffsetZ: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + radial: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + speedModifier: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + inWorldSpace: 0 + InheritVelocityModule: + enabled: 0 + m_Mode: 0 + m_Curve: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + LifetimeByEmitterSpeedModule: + enabled: 0 + m_Curve: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: -0.8 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0.2 + inSlope: -0.8 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Range: {x: 0, y: 1} + ForceModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + inWorldSpace: 0 + randomizePerFrame: 0 + ExternalForcesModule: + serializedVersion: 2 + enabled: 0 + multiplierCurve: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + influenceFilter: 0 + influenceMask: + serializedVersion: 2 + m_Bits: 4294967295 + influenceList: [] + ClampVelocityModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + magnitude: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxis: 0 + inWorldSpace: 0 + multiplyDragByParticleSize: 1 + multiplyDragByParticleVelocity: 1 + dampen: 0 + drag: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + NoiseModule: + enabled: 1 + strength: + serializedVersion: 2 + minMaxState: 1 + scalar: 5 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: -1 + outSlope: -1 + tangentMode: 34 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: -1 + outSlope: -1 + tangentMode: 34 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + strengthY: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + strengthZ: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + frequency: 0.01 + damping: 1 + octaves: 1 + octaveMultiplier: 0.5 + octaveScale: 2 + quality: 2 + scrollSpeed: + serializedVersion: 2 + minMaxState: 0 + scalar: 0.1 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remap: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: -1 + inSlope: 0 + outSlope: 2 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 2 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remapY: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: -1 + inSlope: 0 + outSlope: 2 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 2 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remapZ: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: -1 + inSlope: 0 + outSlope: 2 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 2 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remapEnabled: 0 + positionAmount: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + rotationAmount: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + sizeAmount: + serializedVersion: 2 + minMaxState: 0 + scalar: 0.1 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + SizeBySpeedModule: + enabled: 0 + curve: + serializedVersion: 2 + minMaxState: 1 + scalar: 5 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 1 + outSlope: 1 + tangentMode: 34 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 1 + tangentMode: 34 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + range: {x: 0, y: 1} + separateAxes: 0 + RotationBySpeedModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + curve: + serializedVersion: 2 + minMaxState: 0 + scalar: 0.7853982 + minScalar: 0.7853982 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + range: {x: 0, y: 1} + ColorBySpeedModule: + enabled: 0 + gradient: + serializedVersion: 2 + minMaxState: 1 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + range: {x: 0, y: 1} + CollisionModule: + enabled: 0 + serializedVersion: 4 + type: 0 + collisionMode: 0 + colliderForce: 0 + multiplyColliderForceByParticleSize: 0 + multiplyColliderForceByParticleSpeed: 0 + multiplyColliderForceByCollisionAngle: 1 + m_Planes: + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + m_Dampen: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Bounce: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_EnergyLossOnCollision: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minKillSpeed: 0 + maxKillSpeed: 10000 + radiusScale: 1 + collidesWith: + serializedVersion: 2 + m_Bits: 4294967295 + maxCollisionShapes: 256 + quality: 0 + voxelSize: 0.5 + collisionMessages: 0 + collidesWithDynamic: 1 + interiorCollisions: 0 + TriggerModule: + enabled: 0 + serializedVersion: 2 + inside: 1 + outside: 0 + enter: 0 + exit: 0 + colliderQueryMode: 0 + radiusScale: 1 + primitives: + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + SubModule: + serializedVersion: 2 + enabled: 0 + subEmitters: + - serializedVersion: 3 + emitter: {fileID: 0} + type: 0 + properties: 0 + emitProbability: 1 + LightsModule: + enabled: 0 + ratio: 0 + light: {fileID: 0} + randomDistribution: 1 + color: 1 + range: 1 + intensity: 1 + rangeCurve: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + intensityCurve: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + maxLights: 20 + TrailModule: + enabled: 1 + mode: 1 + ratio: 1 + lifetime: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minVertexDistance: 0.2 + textureMode: 0 + ribbonCount: 1 + shadowBias: 0.5 + worldSpace: 0 + dieWithParticles: 1 + sizeAffectsWidth: 1 + sizeAffectsLifetime: 0 + inheritParticleColor: 1 + generateLightingData: 0 + splitSubEmitterRibbons: 0 + attachRibbonsToTransform: 1 + colorOverLifetime: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + widthOverTrail: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: -1 + outSlope: -1 + tangentMode: 34 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: -1 + outSlope: -1 + tangentMode: 34 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + colorOverTrail: + serializedVersion: 2 + minMaxState: 1 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 0, g: 0, b: 0, a: 0} + key1: {r: 0.01, g: 0.01, b: 0.01, a: 1} + key2: {r: 1, g: 0.092499994, b: 0.00999999, a: 1} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 40557 + ctime2: 65535 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 8192 + atime2: 65535 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 3 + m_NumAlphaKeys: 3 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + CustomDataModule: + enabled: 0 + mode0: 1 + vectorComponentCount0: 2 + color0: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + colorLabel0: Color + vector0_0: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_0: X + vector0_1: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_1: Y + vector0_2: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_2: Z + vector0_3: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_3: W + mode1: 0 + vectorComponentCount1: 4 + color1: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + colorLabel1: Color + vector1_0: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_0: X + vector1_1: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_1: Y + vector1_2: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_2: Z + vector1_3: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_3: W +--- !u!199 &2200213684891960503 +ParticleSystemRenderer: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2200213684891960497} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10308, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 2100000, guid: 483c8decd432d5e49ac166734cdd9d37, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_RenderMode: 5 + m_SortMode: 0 + m_MinParticleSize: 0 + m_MaxParticleSize: 0.5 + m_CameraVelocityScale: 0 + m_VelocityScale: 0 + m_LengthScale: 2 + m_SortingFudge: 0 + m_NormalDirection: 1 + m_ShadowBias: 0 + m_RenderAlignment: 0 + m_Pivot: {x: 0, y: 0, z: 0} + m_Flip: {x: 0, y: 0, z: 0} + m_UseCustomVertexStreams: 0 + m_EnableGPUInstancing: 1 + m_ApplyActiveColorSpace: 1 + m_AllowRoll: 1 + m_FreeformStretching: 0 + m_RotateWithStretchDirection: 1 + m_VertexStreams: 00010304 + m_Mesh: {fileID: 0} + m_Mesh1: {fileID: 0} + m_Mesh2: {fileID: 0} + m_Mesh3: {fileID: 0} + m_MaskInteraction: 0 +--- !u!1 &3015547693297330586 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5148235482537864796} + - component: {fileID: 8540408454168213454} + m_Layer: 0 + m_Name: Micromissile + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &5148235482537864796 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3015547693297330586} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 2200213683735813172} + - {fileID: 7703202934816564928} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &8540408454168213454 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3015547693297330586} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ee3949bbc28566148b9f661741b6e25d, type: 3} + m_Name: + m_EditorClassIdentifier: + ProjectilePrototype: {fileID: 2698694499776308069} +--- !u!1001 &7703470150373816180 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 5148235482537864796} + m_Modifications: + - target: {fileID: 1828176872806910, guid: 64891a0eb28db934898420d80ca07cb3, type: 3} + propertyPath: m_Name + value: SmallExplosion + objectReference: {fileID: 0} + - target: {fileID: 4361801158873524, guid: 64891a0eb28db934898420d80ca07cb3, type: 3} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4361801158873524, guid: 64891a0eb28db934898420d80ca07cb3, type: 3} + propertyPath: m_LocalPosition.x + value: -0.50997305 + objectReference: {fileID: 0} + - target: {fileID: 4361801158873524, guid: 64891a0eb28db934898420d80ca07cb3, type: 3} + propertyPath: m_LocalPosition.y + value: 2.57 + objectReference: {fileID: 0} + - target: {fileID: 4361801158873524, guid: 64891a0eb28db934898420d80ca07cb3, type: 3} + propertyPath: m_LocalPosition.z + value: -20.12803 + objectReference: {fileID: 0} + - target: {fileID: 4361801158873524, guid: 64891a0eb28db934898420d80ca07cb3, type: 3} + propertyPath: m_LocalRotation.w + value: 0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 4361801158873524, guid: 64891a0eb28db934898420d80ca07cb3, type: 3} + propertyPath: m_LocalRotation.x + value: -0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 4361801158873524, guid: 64891a0eb28db934898420d80ca07cb3, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4361801158873524, guid: 64891a0eb28db934898420d80ca07cb3, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4361801158873524, guid: 64891a0eb28db934898420d80ca07cb3, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: -90 + objectReference: {fileID: 0} + - target: {fileID: 4361801158873524, guid: 64891a0eb28db934898420d80ca07cb3, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4361801158873524, guid: 64891a0eb28db934898420d80ca07cb3, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 64891a0eb28db934898420d80ca07cb3, type: 3} +--- !u!4 &7703202934816564928 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4361801158873524, guid: 64891a0eb28db934898420d80ca07cb3, + type: 3} + m_PrefabInstance: {fileID: 7703470150373816180} + m_PrefabAsset: {fileID: 0} +--- !u!114 &332779026898239585 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 7959687425165588245, guid: 64891a0eb28db934898420d80ca07cb3, + type: 3} + m_PrefabInstance: {fileID: 7703470150373816180} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1281fe44325f9b548aa42dc331b17266, type: 3} + m_Name: + m_EditorClassIdentifier: diff --git a/Assets/Resources/Prefabs/Weapons/AU/Leonid.prefab.meta b/Assets/Resources/Prefabs/Weapons/AU/Leonid.prefab.meta new file mode 100644 index 000000000..59a26a438 --- /dev/null +++ b/Assets/Resources/Prefabs/Weapons/AU/Leonid.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: ce69da110ba4dab45b90d4c9c9b0f5b5 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Settings.asset b/Assets/Resources/Settings.asset index 9ac441697..09fc7f5fc 100644 --- a/Assets/Resources/Settings.asset +++ b/Assets/Resources/Settings.asset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:6b704c433b7f8c86d7aa2270d211ed9bfaed697f9710cb7ff6ab887ef3e98432 -size 11394 +oid sha256:a3465a4e853cc9022a272e6be4210aacd246f6cb5ce6b3856d01e619ead23ddd +size 11570 diff --git a/Assets/Resources/Slime Gravity.renderTexture b/Assets/Resources/Slime Gravity.renderTexture new file mode 100644 index 000000000..1217fbd13 --- /dev/null +++ b/Assets/Resources/Slime Gravity.renderTexture @@ -0,0 +1,38 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!84 &8400000 +RenderTexture: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Slime Gravity + m_ImageContentsHash: + serializedVersion: 2 + Hash: 00000000000000000000000000000000 + m_ForcedFallbackFormat: 4 + m_DownscaleFallback: 0 + m_IsAlphaChannelOptional: 0 + serializedVersion: 3 + m_Width: 1024 + m_Height: 1024 + m_AntiAliasing: 1 + m_MipCount: -1 + m_DepthFormat: 0 + m_ColorFormat: 49 + m_MipMap: 0 + m_GenerateMips: 1 + m_SRGB: 0 + m_UseDynamicScale: 0 + m_BindMS: 0 + m_EnableCompatibleFormat: 1 + m_TextureSettings: + serializedVersion: 2 + m_FilterMode: 1 + m_Aniso: 0 + m_MipBias: 0 + m_WrapU: 1 + m_WrapV: 1 + m_WrapW: 1 + m_Dimension: 2 + m_VolumeDepth: 1 diff --git a/Assets/Resources/Slime Gravity.renderTexture.meta b/Assets/Resources/Slime Gravity.renderTexture.meta new file mode 100644 index 000000000..f99fa5d61 --- /dev/null +++ b/Assets/Resources/Slime Gravity.renderTexture.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: cc403ed0b6a104445b6534b1877c5556 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scenes/ARPG.unity b/Assets/Scenes/ARPG.unity index 8a52dc6e8..19cb02023 100644 --- a/Assets/Scenes/ARPG.unity +++ b/Assets/Scenes/ARPG.unity @@ -1890,7 +1890,7 @@ RectTransform: - {fileID: 1868140981} - {fileID: 1080776604} m_Father: {fileID: 761574181} - m_RootOrder: 8 + m_RootOrder: 7 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} @@ -2231,7 +2231,7 @@ Transform: - {fileID: 488792361} - {fileID: 970624070} m_Father: {fileID: 1665127616} - m_RootOrder: 4 + m_RootOrder: 6 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &200920995 GameObject: @@ -3011,8 +3011,6 @@ GameObject: - component: {fileID: 225222197} - component: {fileID: 225222202} - component: {fileID: 225222201} - - component: {fileID: 225222200} - - component: {fileID: 225222199} - component: {fileID: 225222198} m_Layer: 0 m_Name: Sector Camera @@ -3033,7 +3031,7 @@ Transform: m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 1665127616} - m_RootOrder: 6 + m_RootOrder: 8 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!114 &225222198 MonoBehaviour: @@ -3050,42 +3048,6 @@ MonoBehaviour: _shader: {fileID: 4800000, guid: 2d020ca820b3647479e78b8c3d26e3a6, type: 3} _downSampleMode: 2 _iteration: 4 ---- !u!114 &225222199 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 225222196} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4ae335524e949404bb57f1612ec4b9b5, type: 3} - m_Name: - m_EditorClassIdentifier: - isDefaultListener: 1 - listenerId: 0 ---- !u!114 &225222200 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 225222196} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f27db6b94e477054e96392f94dc50c9d, type: 3} - m_Name: - m_EditorClassIdentifier: - m_listeners: - initialListenerList: [] - useDefaultListeners: 1 - isEnvironmentAware: 0 - isStaticObject: 0 - m_positionOffsetData: - KeepMe: 0 - positionOffset: {x: 0, y: 0, z: 0} - m_posOffsetData: {fileID: 0} - listenerMask: 1 --- !u!114 &225222201 MonoBehaviour: m_ObjectHideFlags: 0 @@ -4545,6 +4507,7 @@ GameObject: serializedVersion: 6 m_Component: - component: {fileID: 346000247} + - component: {fileID: 346000248} m_Layer: 5 m_Name: Gameplay m_TagString: Untagged @@ -4577,13 +4540,25 @@ RectTransform: - {fileID: 146394775} - {fileID: 1787772780} m_Father: {fileID: 761574181} - m_RootOrder: 3 + m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 1, y: 1} m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} +--- !u!225 &346000248 +CanvasGroup: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 346000246} + m_Enabled: 1 + m_Alpha: 1 + m_Interactable: 1 + m_BlocksRaycasts: 1 + m_IgnoreParentGroups: 0 --- !u!114 &346333149 stripped MonoBehaviour: m_CorrespondingSourceObject: {fileID: 1713457305180270767, guid: 2758dfa2744d7ad4d8877545189d116e, @@ -4716,7 +4691,7 @@ MonoBehaviour: m_PivotOffset: {x: 0, y: 0, z: 0} m_AmplitudeGain: 0.25 m_FrequencyGain: 0.5 - mNoiseOffsets: {x: 0, y: 0, z: 0} + mNoiseOffsets: {x: 191.71204, y: -207.06473, z: 153.18213} --- !u!114 &359038943 MonoBehaviour: m_ObjectHideFlags: 3 @@ -4893,7 +4868,7 @@ Transform: m_Children: - {fileID: 359038939} m_Father: {fileID: 1665127616} - m_RootOrder: 1 + m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!114 &393266593 MonoBehaviour: @@ -7163,7 +7138,7 @@ RectTransform: m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 761574181} - m_RootOrder: 9 + m_RootOrder: 8 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0} @@ -8327,6 +8302,95 @@ MeshFilter: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 542243545} m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &543699678 +GameObject: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 543699679} + - component: {fileID: 543699683} + - component: {fileID: 543699682} + - component: {fileID: 543699681} + - component: {fileID: 543699680} + m_Layer: 0 + m_Name: cm + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &543699679 +Transform: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 543699678} + m_LocalRotation: {x: -0.2677866, y: 0.37796336, z: -0.115197934, w: 0.87872833} + m_LocalPosition: {x: 0.27700424, y: 0.74153686, z: 4.1357794} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1644480538} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &543699680 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 543699678} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a4c41ac9245b87c4192012080077d830, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Damping: 0 +--- !u!114 &543699681 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 543699678} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 36d1163fa822e8b418a0a603ec078d5c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Damping: 0 +--- !u!114 &543699682 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 543699678} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 68bb026fafb42b14791938953eaace77, type: 3} + m_Name: + m_EditorClassIdentifier: + m_NoiseProfile: {fileID: 11400000, guid: 46965f9cbaf525742a6da4c2172a99cd, type: 2} + m_PivotOffset: {x: 0, y: 0, z: 0} + m_AmplitudeGain: 0.25 + m_FrequencyGain: 0.5 + mNoiseOffsets: {x: 475.8005, y: 564.4719, z: 192.36002} +--- !u!114 &543699683 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 543699678} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ac0b09e7857660247b1477e93731de29, type: 3} + m_Name: + m_EditorClassIdentifier: --- !u!1 &545103407 GameObject: m_ObjectHideFlags: 0 @@ -8984,7 +9048,7 @@ RectTransform: - {fileID: 738229276} - {fileID: 947321578} m_Father: {fileID: 761574181} - m_RootOrder: 6 + m_RootOrder: 5 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} @@ -11282,7 +11346,6 @@ RectTransform: m_Children: - {fileID: 1273980439} - {fileID: 411347519} - - {fileID: 1723136546} - {fileID: 346000247} - {fileID: 1726632265} - {fileID: 1420548308} @@ -11290,6 +11353,7 @@ RectTransform: - {fileID: 1157981992} - {fileID: 178733680} - {fileID: 472507698} + - {fileID: 1723136546} m_Father: {fileID: 0} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -12281,7 +12345,7 @@ Transform: - {fileID: 1075335641} - {fileID: 166261017} m_Father: {fileID: 1665127616} - m_RootOrder: 5 + m_RootOrder: 7 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &831892783 GameObject: @@ -12897,7 +12961,7 @@ Transform: m_Children: - {fileID: 1319157835} m_Father: {fileID: 1665127616} - m_RootOrder: 0 + m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &906767441 GameObject: @@ -14695,7 +14759,7 @@ Transform: m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 1665127616} - m_RootOrder: 7 + m_RootOrder: 9 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!20 &1005979868 Camera: @@ -14800,14 +14864,11 @@ MonoBehaviour: Credits: 100000000 TargetSpottedBlinkFrequency: 20 TargetSpottedBlinkOffset: -0.25 - NameFile: {fileID: 4900000, guid: 8ba25d5d0ecee31408c7ce7460b4e015, type: 3} - NameGeneratorMinLength: 5 - NameGeneratorMaxLength: 10 - NameGeneratorOrder: 4 - DeathPPTransitionTime: 3 + DeathPPTransitionTime: 1 DeathPP: {fileID: 803284856} HeatstrokePP: {fileID: 1404901906} SevereHeatstrokePP: {fileID: 837424435} + EffectManagerParent: {fileID: 134113271} TradeMenu: {fileID: 522642869} HostileTargetIndicator: {fileID: 1787772783} ViewDot: {fileID: 146394778} @@ -14823,16 +14884,18 @@ MonoBehaviour: ZoneRenderer: {fileID: 1009503731} DockCamera: {fileID: 393266593} FollowCamera: {fileID: 887677622} - GameplayUI: {fileID: 346000246} + WormholeCamera: {fileID: 1644480539} + GameplayUI: {fileID: 346000248} Menu: {fileID: 1726632268} MenuMap: {fileID: 630131162} - SectorMap: {fileID: 0} + SectorMap: {fileID: 2132980328} SchematicDisplay: {fileID: 7628189704109037584} TargetSchematicDisplay: {fileID: 410701129} Inventory: {fileID: 1997243495} ShipPanel: {fileID: 7628189704109037582} TargetShipPanel: {fileID: 410701133} Dialog: {fileID: 620555924} + IntroDuration: 10 --- !u!4 &1009503730 Transform: m_ObjectHideFlags: 0 @@ -14862,7 +14925,6 @@ MonoBehaviour: WormholePrefab: {fileID: 463084220523011477, guid: 4a77c480b4bb2a148954bd57dfe91d0b, type: 3} EntityFadeTime: 3 - EffectManagerParent: {fileID: 134113271} FogCameraParent: {fileID: 1547889399} Settings: {fileID: 11400000, guid: cd2344e2001a37544aab0960c164d4ff, type: 2} ZoneRoot: {fileID: 2095699057} @@ -14944,6 +15006,8 @@ MonoBehaviour: AsteroidSpritesheetWidth: 4 AsteroidSpritesheetHeight: 4 LODHandler: {fileID: 1009503736} + SlimeRenderer: {fileID: 0} + SlimeGravityCamera: {fileID: 0} Tour: 0 TourSwitchTime: 10 TourFollowDistance: 100 @@ -15736,6 +15800,80 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1060591358} m_CullTransparentMesh: 0 +--- !u!1 &1066823973 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1066823974} + - component: {fileID: 1066823975} + m_Layer: 0 + m_Name: Slime Gravity Renderer + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1066823974 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1066823973} + m_LocalRotation: {x: 0.7071068, y: 0, z: 0, w: 0.7071068} + m_LocalPosition: {x: 0, y: 10, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1665127616} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 90, y: 0, z: 0} +--- !u!20 &1066823975 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1066823973} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 2 + m_BackGroundColor: {r: 0, g: 0, b: 0, a: 0} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_FocalLength: 50 + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 60 + orthographic: 1 + orthographic size: 1000 + m_Depth: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 1536 + m_RenderingPath: 1 + m_TargetTexture: {fileID: 8400000, guid: cc403ed0b6a104445b6534b1877c5556, type: 2} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 1 + m_AllowMSAA: 0 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 0 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 --- !u!1 &1075335640 GameObject: m_ObjectHideFlags: 0 @@ -16488,7 +16626,7 @@ RectTransform: - {fileID: 1505831357} - {fileID: 1741914910} m_Father: {fileID: 761574181} - m_RootOrder: 7 + m_RootOrder: 6 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} @@ -16911,6 +17049,168 @@ MonoBehaviour: m_FlexibleWidth: -1 m_FlexibleHeight: -1 m_LayoutPriority: 1 +--- !u!1001 &1175122070 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 2056162322} + m_Modifications: + - target: {fileID: 3462739465108434284, guid: c7113183a38d6f84b8ffe6fa7c342896, + type: 3} + propertyPath: m_Name + value: Text Button + objectReference: {fileID: 0} + - target: {fileID: 3462739465108434285, guid: c7113183a38d6f84b8ffe6fa7c342896, + type: 3} + propertyPath: m_Pivot.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3462739465108434285, guid: c7113183a38d6f84b8ffe6fa7c342896, + type: 3} + propertyPath: m_Pivot.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3462739465108434285, guid: c7113183a38d6f84b8ffe6fa7c342896, + type: 3} + propertyPath: m_RootOrder + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 3462739465108434285, guid: c7113183a38d6f84b8ffe6fa7c342896, + type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3462739465108434285, guid: c7113183a38d6f84b8ffe6fa7c342896, + type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3462739465108434285, guid: c7113183a38d6f84b8ffe6fa7c342896, + type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3462739465108434285, guid: c7113183a38d6f84b8ffe6fa7c342896, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3462739465108434285, guid: c7113183a38d6f84b8ffe6fa7c342896, + type: 3} + propertyPath: m_SizeDelta.x + value: 128 + objectReference: {fileID: 0} + - target: {fileID: 3462739465108434285, guid: c7113183a38d6f84b8ffe6fa7c342896, + type: 3} + propertyPath: m_SizeDelta.y + value: 32 + objectReference: {fileID: 0} + - target: {fileID: 3462739465108434285, guid: c7113183a38d6f84b8ffe6fa7c342896, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3462739465108434285, guid: c7113183a38d6f84b8ffe6fa7c342896, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3462739465108434285, guid: c7113183a38d6f84b8ffe6fa7c342896, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3462739465108434285, guid: c7113183a38d6f84b8ffe6fa7c342896, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3462739465108434285, guid: c7113183a38d6f84b8ffe6fa7c342896, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3462739465108434285, guid: c7113183a38d6f84b8ffe6fa7c342896, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3462739465108434285, guid: c7113183a38d6f84b8ffe6fa7c342896, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3462739465108434285, guid: c7113183a38d6f84b8ffe6fa7c342896, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3462739465108434285, guid: c7113183a38d6f84b8ffe6fa7c342896, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3462739465108434285, guid: c7113183a38d6f84b8ffe6fa7c342896, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3462739465108434285, guid: c7113183a38d6f84b8ffe6fa7c342896, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3462739465108434285, guid: c7113183a38d6f84b8ffe6fa7c342896, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3462739465108434287, guid: c7113183a38d6f84b8ffe6fa7c342896, + type: 3} + propertyPath: m_text + value: Preview Path + objectReference: {fileID: 0} + - target: {fileID: 3462739465108434287, guid: c7113183a38d6f84b8ffe6fa7c342896, + type: 3} + propertyPath: m_fontSize + value: 18 + objectReference: {fileID: 0} + - target: {fileID: 3462739465108434287, guid: c7113183a38d6f84b8ffe6fa7c342896, + type: 3} + propertyPath: m_fontSizeBase + value: 18 + objectReference: {fileID: 0} + - target: {fileID: 3462739465108434287, guid: c7113183a38d6f84b8ffe6fa7c342896, + type: 3} + propertyPath: m_VerticalAlignment + value: 512 + objectReference: {fileID: 0} + - target: {fileID: 3462739465108434287, guid: c7113183a38d6f84b8ffe6fa7c342896, + type: 3} + propertyPath: m_HorizontalAlignment + value: 2 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: c7113183a38d6f84b8ffe6fa7c342896, type: 3} +--- !u!224 &1175122071 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 3462739465108434285, guid: c7113183a38d6f84b8ffe6fa7c342896, + type: 3} + m_PrefabInstance: {fileID: 1175122070} + m_PrefabAsset: {fileID: 0} +--- !u!114 &1175122072 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 3462739465108434286, guid: c7113183a38d6f84b8ffe6fa7c342896, + type: 3} + m_PrefabInstance: {fileID: 1175122070} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: --- !u!114 &1176624628 stripped MonoBehaviour: m_CorrespondingSourceObject: {fileID: 3501282941175030939, guid: 2758dfa2744d7ad4d8877545189d116e, @@ -17366,6 +17666,95 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 2da0c512f12947e489f739169773d7ca, type: 3} m_Name: m_EditorClassIdentifier: +--- !u!1001 &1254851253 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 6977256487485077368, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: m_Name + value: Slime Renderer + objectReference: {fileID: 0} + - target: {fileID: 6977256487485077368, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: m_Layer + value: 13 + objectReference: {fileID: 0} + - target: {fileID: 6977256487485077373, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: m_RootOrder + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 6977256487485077373, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: m_LocalScale.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6977256487485077373, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: m_LocalScale.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6977256487485077373, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: m_LocalScale.z + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6977256487485077373, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6977256487485077373, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6977256487485077373, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6977256487485077373, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: m_LocalRotation.w + value: 0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 6977256487485077373, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: m_LocalRotation.x + value: 0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 6977256487485077373, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 6977256487485077373, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 6977256487485077373, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 90 + objectReference: {fileID: 0} + - target: {fileID: 6977256487485077373, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6977256487485077373, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: efd1f097ce29ffa48bb0045d6502f55d, type: 3} --- !u!1 &1261700233 GameObject: m_ObjectHideFlags: 0 @@ -19352,7 +19741,7 @@ RectTransform: m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 761574181} - m_RootOrder: 5 + m_RootOrder: 4 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 1, y: 1} @@ -20986,7 +21375,7 @@ Transform: - {fileID: 1537342002} - {fileID: 39508928} m_Father: {fileID: 1665127616} - m_RootOrder: 3 + m_RootOrder: 5 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!114 &1547889400 MonoBehaviour: @@ -21052,7 +21441,7 @@ PrefabInstance: - target: {fileID: 878382121558056004, guid: 2758dfa2744d7ad4d8877545189d116e, type: 3} propertyPath: m_AnchoredPosition.x - value: 55.675 + value: 0 objectReference: {fileID: 0} - target: {fileID: 878382121558056004, guid: 2758dfa2744d7ad4d8877545189d116e, type: 3} @@ -22221,7 +22610,7 @@ PrefabInstance: - target: {fileID: 878382121558056004, guid: 2758dfa2744d7ad4d8877545189d116e, type: 3} propertyPath: m_AnchoredPosition.x - value: 60.98 + value: 0 objectReference: {fileID: 0} - target: {fileID: 878382121558056004, guid: 2758dfa2744d7ad4d8877545189d116e, type: 3} @@ -22793,6 +23182,73 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1641720214} m_CullTransparentMesh: 0 +--- !u!1 &1644480537 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1644480538} + - component: {fileID: 1644480539} + m_Layer: 0 + m_Name: Wormhole Rig + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1644480538 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1644480537} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 543699679} + m_Father: {fileID: 1665127616} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1644480539 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1644480537} + m_Enabled: 0 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 45e653bab7fb20e499bda25e1b646fea, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ExcludedPropertiesInInspector: + - m_Script + m_LockStageInInspector: + m_StreamingVersion: 20170927 + m_Priority: 10 + m_StandbyUpdate: 2 + m_LookAt: {fileID: 0} + m_Follow: {fileID: 0} + m_Lens: + FieldOfView: 60 + OrthographicSize: 5 + NearClipPlane: 0.3 + FarClipPlane: 8192 + Dutch: 0 + LensShift: {x: 0, y: 0} + m_Transitions: + m_BlendHint: 0 + m_InheritPosition: 0 + m_OnCameraLive: + m_PersistentCalls: + m_Calls: [] + m_LegacyBlendHint: 0 + m_ComponentOwner: {fileID: 543699679} --- !u!1 &1647230681 GameObject: m_ObjectHideFlags: 0 @@ -22853,9 +23309,11 @@ Transform: m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: + - {fileID: 1644480538} - {fileID: 887677623} - {fileID: 393266592} - {fileID: 2115559090} + - {fileID: 1066823974} - {fileID: 1547889399} - {fileID: 199435031} - {fileID: 826773974} @@ -23439,7 +23897,7 @@ RectTransform: m_Children: - {fileID: 460484049} m_Father: {fileID: 761574181} - m_RootOrder: 2 + m_RootOrder: 9 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0.5} m_AnchorMax: {x: 1, y: 1} @@ -23458,6 +23916,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 60214997723e68547b9c784ebda51d9a, type: 3} m_Name: m_EditorClassIdentifier: + GameManager: {fileID: 1009503729} ViewContainer: {fileID: 460484048} LogTextArea: {fileID: 825923021} InputArea: {fileID: 1973552682} @@ -23573,7 +24032,7 @@ RectTransform: - {fileID: 2056162322} - {fileID: 1783772015} m_Father: {fileID: 761574181} - m_RootOrder: 4 + m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 1, y: 1} @@ -26445,12 +26904,22 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 59b26802254e34b4bb26f48d0d8b51bf, type: 3} m_Name: m_EditorClassIdentifier: + Canvas: {fileID: 761574180} + Map: {fileID: 2132980328} GameManager: {fileID: 1009503729} + MainCamera: {fileID: 2115559089} SectorCamera: {fileID: 225222202} SectorBackgroundRenderer: {fileID: 1566772337} ZoomSpeed: 0.025 MinViewSize: 0.1 MaxViewSize: 2 + PathAnimationButton: {fileID: 1175122072} + PathAnimationDamping: 0.01 + PathAnimationDuration: 30 + PathAnimationDurationPadding: 1.1 + LegendPanel: {fileID: 1005841431} + LinkAnimationDuration: 1 + IconAnimationDuration: 0.5 --- !u!222 &1998350932 CanvasRenderer: m_ObjectHideFlags: 0 @@ -26942,6 +27411,7 @@ RectTransform: m_Children: - {fileID: 1998350929} - {fileID: 1005841432} + - {fileID: 1175122071} m_Father: {fileID: 1726632265} m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -27786,7 +28256,7 @@ Transform: m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 1665127616} - m_RootOrder: 2 + m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!114 &2115559091 MonoBehaviour: @@ -28299,7 +28769,7 @@ MonoBehaviour: ZoneLinkMaterial: {fileID: 2100000, guid: a8d716e09aea7ce48a1220980f19b494, type: 2} MegaPrimaryBoost: 0.75 MegaSecondaryBoost: 2 - MegaLinkBoost: 2 + MegaLinkBoost: 3 EntranceIcon: {fileID: 2800000, guid: 9025249fbeb4b594680d2749b521bb41, type: 3} ExitIcon: {fileID: 2800000, guid: cb18d00f3b884e24da71c10aa20a1a18, type: 3} BossIcon: {fileID: 2800000, guid: 66887e71b9b25b94baa1da4bf12b490d, type: 3} @@ -28308,6 +28778,50 @@ MonoBehaviour: IconDistance: 1 IconBackgroundSize: 3 LabelDistance: 0.4 + LinkWidth: 0.002 + CriticalLinkWidth: 0.005 + IconScaleAnimation: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0.06951711 + outSlope: 0.06951711 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0.40278435 + - serializedVersion: 3 + time: 0.14126952 + value: 0.86514527 + inSlope: 7.18391 + outSlope: 7.18391 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.18275645 + outWeight: 0.050399058 + - serializedVersion: 3 + time: 0.5151206 + value: 0.7759909 + inSlope: 0.021693684 + outSlope: 0.021693684 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: -0.19486254 + outSlope: -0.19486254 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 --- !u!4 &2132980329 Transform: m_ObjectHideFlags: 0 diff --git a/Assets/Scenes/ARPG_Profiles/Postprocessing Profile Death.asset b/Assets/Scenes/ARPG_Profiles/Postprocessing Profile Death.asset index dd707b620..5151b26ec 100644 --- a/Assets/Scenes/ARPG_Profiles/Postprocessing Profile Death.asset +++ b/Assets/Scenes/ARPG_Profiles/Postprocessing Profile Death.asset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:ec11ada2de5bddcc73f1d0172f95887a2bee6ce4c028292a6b33cbb6c96ac78f -size 26338 +oid sha256:478cb1f1349c7b06a2867ae804b9d32ed946d7966fdff1a39a2c804389072ec9 +size 26337 diff --git a/Assets/Scenes/ARPG_Profiles/Postprocessing Profile.asset b/Assets/Scenes/ARPG_Profiles/Postprocessing Profile.asset index 58a75ec3c..7eec6ac0f 100644 --- a/Assets/Scenes/ARPG_Profiles/Postprocessing Profile.asset +++ b/Assets/Scenes/ARPG_Profiles/Postprocessing Profile.asset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:567805de3c4efaf1908e2e0faa4822c68fc3ca7e8037433660ace6d22cdd2ede -size 25673 +oid sha256:0734611d7369efd5a964a04decf9862804d1ea04014261c65c495ac740daa0d1 +size 26335 diff --git a/Assets/Scenes/Main Menu.unity b/Assets/Scenes/Main Menu.unity index e6315a752..6f60d0f11 100644 --- a/Assets/Scenes/Main Menu.unity +++ b/Assets/Scenes/Main Menu.unity @@ -229,12 +229,12 @@ PrefabInstance: - target: {fileID: 878382121558056004, guid: 2758dfa2744d7ad4d8877545189d116e, type: 3} propertyPath: m_AnchorMax.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 878382121558056004, guid: 2758dfa2744d7ad4d8877545189d116e, type: 3} propertyPath: m_AnchorMin.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 878382121558056004, guid: 2758dfa2744d7ad4d8877545189d116e, type: 3} @@ -249,12 +249,12 @@ PrefabInstance: - target: {fileID: 878382121558056004, guid: 2758dfa2744d7ad4d8877545189d116e, type: 3} propertyPath: m_AnchoredPosition.x - value: 0 + value: 60.98 objectReference: {fileID: 0} - target: {fileID: 878382121558056004, guid: 2758dfa2744d7ad4d8877545189d116e, type: 3} propertyPath: m_AnchoredPosition.y - value: 0 + value: -16 objectReference: {fileID: 0} - target: {fileID: 1713457305180270767, guid: 2758dfa2744d7ad4d8877545189d116e, type: 3} @@ -2702,12 +2702,12 @@ PrefabInstance: - target: {fileID: 878382121558056004, guid: 2758dfa2744d7ad4d8877545189d116e, type: 3} propertyPath: m_AnchorMax.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 878382121558056004, guid: 2758dfa2744d7ad4d8877545189d116e, type: 3} propertyPath: m_AnchorMin.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 878382121558056004, guid: 2758dfa2744d7ad4d8877545189d116e, type: 3} @@ -2722,12 +2722,12 @@ PrefabInstance: - target: {fileID: 878382121558056004, guid: 2758dfa2744d7ad4d8877545189d116e, type: 3} propertyPath: m_AnchoredPosition.x - value: 0 + value: 55.675 objectReference: {fileID: 0} - target: {fileID: 878382121558056004, guid: 2758dfa2744d7ad4d8877545189d116e, type: 3} propertyPath: m_AnchoredPosition.y - value: 0 + value: -16 objectReference: {fileID: 0} - target: {fileID: 1713457305180270767, guid: 2758dfa2744d7ad4d8877545189d116e, type: 3} @@ -3966,10 +3966,10 @@ RectTransform: m_Father: {fileID: 6584140821722344271} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 144.0148} m_Pivot: {x: 0, y: 1} --- !u!114 &6584140821494235354 MonoBehaviour: @@ -4009,8 +4009,8 @@ MonoBehaviour: terminus' m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: f65e20c70af9671428dd62c7c635e417, type: 2} - m_sharedMaterial: {fileID: 21790448164444372, guid: f65e20c70af9671428dd62c7c635e417, + m_fontAsset: {fileID: 11400000, guid: 1c5e8a01819db8d4b812bf3d3eecd389, type: 2} + m_sharedMaterial: {fileID: -3344498693056860517, guid: 1c5e8a01819db8d4b812bf3d3eecd389, type: 2} m_fontSharedMaterials: [] m_fontMaterial: {fileID: 0} diff --git a/Assets/Scenes/TestScene.unity b/Assets/Scenes/TestScene.unity index 7deaa14db..e64082f0f 100644 --- a/Assets/Scenes/TestScene.unity +++ b/Assets/Scenes/TestScene.unity @@ -160,7 +160,7 @@ RectTransform: m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} m_AnchoredPosition: {x: 1.3049984, y: 0} - m_SizeDelta: {x: 0, y: 0} + m_SizeDelta: {x: 2.14, y: 0.45} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &62236175 MonoBehaviour: @@ -341,10 +341,10 @@ RectTransform: m_Father: {fileID: 1187011252} m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 36, y: -72} + m_SizeDelta: {x: 64, y: 12} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &67477254 MonoBehaviour: @@ -537,188 +537,6 @@ MonoBehaviour: m_FlexibleWidth: -1 m_FlexibleHeight: -1 m_LayoutPriority: 1 ---- !u!1 &104940725 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 104940730} - - component: {fileID: 104940729} - - component: {fileID: 104940727} - - component: {fileID: 104940728} - - component: {fileID: 104940731} - - component: {fileID: 104940726} - m_Layer: 0 - m_Name: Main Camera - m_TagString: MainCamera - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &104940726 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 104940725} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4ae335524e949404bb57f1612ec4b9b5, type: 3} - m_Name: - m_EditorClassIdentifier: - isDefaultListener: 1 - listenerId: 0 ---- !u!124 &104940727 -Behaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 104940725} - m_Enabled: 1 ---- !u!114 &104940728 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 104940725} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 948f4100a11a5c24981795d21301da5c, type: 3} - m_Name: - m_EditorClassIdentifier: - volumeTrigger: {fileID: 104940730} - volumeLayer: - serializedVersion: 2 - m_Bits: 256 - stopNaNPropagation: 1 - finalBlitToCameraTarget: 0 - antialiasingMode: 3 - temporalAntialiasing: - jitterSpread: 0.75 - sharpness: 0.25 - stationaryBlending: 0.95 - motionBlending: 0 - subpixelMorphologicalAntialiasing: - quality: 2 - fastApproximateAntialiasing: - fastMode: 0 - keepAlpha: 0 - fog: - enabled: 1 - excludeSkybox: 1 - debugLayer: - lightMeter: - width: 512 - height: 256 - showCurves: 1 - histogram: - width: 512 - height: 256 - channel: 3 - waveform: - exposure: 0.12 - height: 256 - vectorscope: - size: 256 - exposure: 0.12 - overlaySettings: - linearDepth: 0 - motionColorIntensity: 4 - motionGridSize: 64 - colorBlindnessType: 0 - colorBlindnessStrength: 1 - m_Resources: {fileID: 11400000, guid: d82512f9c8e5d4a4d938b575d47f88d4, type: 2} - m_ShowToolkit: 0 - m_ShowCustomSorter: 0 - breakBeforeColorGrading: 0 - m_BeforeTransparentBundles: [] - m_BeforeStackBundles: [] - m_AfterStackBundles: [] ---- !u!20 &104940729 -Camera: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 104940725} - m_Enabled: 1 - serializedVersion: 2 - m_ClearFlags: 2 - m_BackGroundColor: {r: 0.199, g: 0.199, b: 0.199, a: 0.019607844} - m_projectionMatrixMode: 1 - m_GateFitMode: 2 - m_FOVAxisMode: 0 - m_SensorSize: {x: 36, y: 24} - m_LensShift: {x: 0, y: 0} - m_FocalLength: 50 - m_NormalizedViewPortRect: - serializedVersion: 2 - x: 0 - y: 0 - width: 1 - height: 1 - near clip plane: 0.3 - far clip plane: 1000 - field of view: 60 - orthographic: 0 - orthographic size: 5 - m_Depth: 0 - m_CullingMask: - serializedVersion: 2 - m_Bits: 4294967295 - m_RenderingPath: -1 - m_TargetTexture: {fileID: 0} - m_TargetDisplay: 0 - m_TargetEye: 3 - m_HDR: 1 - m_AllowMSAA: 1 - m_AllowDynamicResolution: 0 - m_ForceIntoRT: 0 - m_OcclusionCulling: 1 - m_StereoConvergence: 10 - m_StereoSeparation: 0.022 ---- !u!4 &104940730 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 104940725} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -10} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 310526803} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &104940731 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 104940725} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f27db6b94e477054e96392f94dc50c9d, type: 3} - m_Name: - m_EditorClassIdentifier: - m_listeners: - initialListenerList: [] - useDefaultListeners: 1 - isEnvironmentAware: 0 - isStaticObject: 0 - m_positionOffsetData: - KeepMe: 0 - positionOffset: {x: 0, y: 0, z: 0} - m_posOffsetData: {fileID: 0} - listenerMask: 1 --- !u!1 &115022188 GameObject: m_ObjectHideFlags: 0 @@ -890,6 +708,87 @@ MeshFilter: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 162042368} m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &215995290 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 215995291} + - component: {fileID: 215995293} + - component: {fileID: 215995292} + m_Layer: 10 + m_Name: Waves Small + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &215995291 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 215995290} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 789220865} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!23 &215995292 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 215995290} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 0 + m_MotionVectors: 2 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: e97eca60a6e85da46bb97bdfec12326b, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &215995293 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 215995290} + m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} --- !u!1 &240056260 GameObject: m_ObjectHideFlags: 0 @@ -1032,10 +931,10 @@ RectTransform: m_Father: {fileID: 1187011252} m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 36, y: -44} + m_SizeDelta: {x: 64, y: 12} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &302169898 MonoBehaviour: @@ -1057,51 +956,6 @@ MonoBehaviour: m_FlexibleWidth: -1 m_FlexibleHeight: -1 m_LayoutPriority: 1 ---- !u!1 &310526802 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 310526803} - - component: {fileID: 310526804} - m_Layer: 0 - m_Name: CameraCenter - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 0 ---- !u!4 &310526803 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 310526802} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 104940730} - m_Father: {fileID: 0} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &310526804 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 310526802} - m_Enabled: 0 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 47e64413aeb5ae740b410d70fb05d20c, type: 3} - m_Name: - m_EditorClassIdentifier: - rotSpeed: {x: 0, y: 15, z: 0} --- !u!1 &344649055 GameObject: m_ObjectHideFlags: 0 @@ -1120,7 +974,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 1 + m_IsActive: 0 --- !u!114 &344649056 MonoBehaviour: m_ObjectHideFlags: 0 @@ -1195,13 +1049,87 @@ RectTransform: m_Children: - {fileID: 676739119} m_Father: {fileID: 0} - m_RootOrder: 10 + m_RootOrder: 8 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0} m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0, y: 0} +--- !u!1 &375851675 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 375851676} + - component: {fileID: 375851677} + m_Layer: 0 + m_Name: Tint + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &375851676 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 375851675} + m_LocalRotation: {x: 0, y: 0.7071068, z: -0.7071068, w: 0} + m_LocalPosition: {x: 0, y: 10, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1532567794} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 90, y: 180, z: 0} +--- !u!20 &375851677 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 375851675} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 2 + m_BackGroundColor: {r: 0, g: 0, b: 0, a: 0} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_FocalLength: 50 + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 60 + orthographic: 1 + orthographic size: 512 + m_Depth: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 8192 + m_RenderingPath: 1 + m_TargetTexture: {fileID: 8400000, guid: d196505464047f04a97f28689041209b, type: 2} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 1 + m_AllowMSAA: 0 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 0 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 --- !u!1001 &426221916 PrefabInstance: m_ObjectHideFlags: 0 @@ -1227,7 +1155,7 @@ PrefabInstance: - target: {fileID: 9112456537762432107, guid: 897fa55d98f1f7f40b889f93ce9146f4, type: 3} propertyPath: m_RootOrder - value: 4 + value: 3 objectReference: {fileID: 0} - target: {fileID: 9112456537762432107, guid: 897fa55d98f1f7f40b889f93ce9146f4, type: 3} @@ -1581,10 +1509,10 @@ RectTransform: m_Father: {fileID: 1236141028} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 36, y: -10} + m_SizeDelta: {x: 64, y: 12} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &652433665 MonoBehaviour: @@ -1830,7 +1758,7 @@ RectTransform: m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} + m_SizeDelta: {x: 144, y: 82} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &676739120 MonoBehaviour: @@ -2078,10 +2006,10 @@ RectTransform: m_Father: {fileID: 1187011252} m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 36, y: -58} + m_SizeDelta: {x: 64, y: 12} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &719378463 MonoBehaviour: @@ -2103,6 +2031,74 @@ MonoBehaviour: m_FlexibleWidth: -1 m_FlexibleHeight: -1 m_LayoutPriority: 1 +--- !u!1 &753458616 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 753458617} + m_Layer: 0 + m_Name: Zone Brushes + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &753458617 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 753458616} + m_LocalRotation: {x: 0.7071068, y: 0, z: 0, w: 0.7071068} + m_LocalPosition: {x: 0, y: -5, z: 0} + m_LocalScale: {x: 1024, y: 1024, z: 1024} + m_Children: + - {fileID: 1807969627} + - {fileID: 1466792827} + - {fileID: 789220865} + - {fileID: 1328848283} + - {fileID: 6977256487279145164} + m_Father: {fileID: 0} + m_RootOrder: 11 + m_LocalEulerAnglesHint: {x: 90, y: 0, z: 0} +--- !u!1 &789220864 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 789220865} + m_Layer: 0 + m_Name: Fog Surface + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &789220865 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 789220864} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1489231075} + - {fileID: 1223346183} + - {fileID: 215995291} + m_Father: {fileID: 753458617} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &801092328 GameObject: m_ObjectHideFlags: 0 @@ -2365,6 +2361,87 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 840997726} m_CullTransparentMesh: 1 +--- !u!1 &855309154 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 855309155} + - component: {fileID: 855309157} + - component: {fileID: 855309156} + m_Layer: 12 + m_Name: Displacement + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &855309155 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 855309154} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1328848283} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!23 &855309156 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 855309154} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 0 + m_MotionVectors: 2 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: e5ea41a9e3aa5e64e8c30a66caac256c, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &855309157 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 855309154} + m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} --- !u!1001 &924112690 PrefabInstance: m_ObjectHideFlags: 0 @@ -2389,7 +2466,7 @@ PrefabInstance: - target: {fileID: 9112456537762432107, guid: 897fa55d98f1f7f40b889f93ce9146f4, type: 3} propertyPath: m_RootOrder - value: 5 + value: 4 objectReference: {fileID: 0} - target: {fileID: 9112456537762432107, guid: 897fa55d98f1f7f40b889f93ce9146f4, type: 3} @@ -2443,6 +2520,228 @@ PrefabInstance: objectReference: {fileID: 0} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 897fa55d98f1f7f40b889f93ce9146f4, type: 3} +--- !u!1 &942014700 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 942014701} + - component: {fileID: 942014702} + m_Layer: 0 + m_Name: Surface Displacement + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &942014701 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 942014700} + m_LocalRotation: {x: 0, y: 0.7071068, z: -0.7071068, w: 0} + m_LocalPosition: {x: 0, y: 10, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1532567794} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 90, y: 180, z: 0} +--- !u!20 &942014702 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 942014700} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 2 + m_BackGroundColor: {r: 0, g: 0, b: 0, a: 0} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_FocalLength: 50 + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 60 + orthographic: 1 + orthographic size: 512 + m_Depth: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 1536 + m_RenderingPath: 1 + m_TargetTexture: {fileID: 8400000, guid: 2fc21a9d3e9647948b56e384cd9378b3, type: 2} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 1 + m_AllowMSAA: 0 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 0 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!1 &983613690 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 983613692} + - component: {fileID: 983613691} + m_Layer: 0 + m_Name: Slime Gravity Renderer + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!20 &983613691 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 983613690} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 2 + m_BackGroundColor: {r: 0, g: 0, b: 0, a: 0} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_FocalLength: 50 + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 60 + orthographic: 1 + orthographic size: 512 + m_Depth: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 1536 + m_RenderingPath: 1 + m_TargetTexture: {fileID: 8400000, guid: cc403ed0b6a104445b6534b1877c5556, type: 2} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 1 + m_AllowMSAA: 0 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 0 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!4 &983613692 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 983613690} + m_LocalRotation: {x: 0.7071068, y: -0, z: -0, w: 0.7071068} + m_LocalPosition: {x: 0, y: 10, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 10 + m_LocalEulerAnglesHint: {x: 90, y: 0, z: 0} +--- !u!1 &1073373262 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1073373264} + - component: {fileID: 1073373263} + m_Layer: 0 + m_Name: Patch + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!20 &1073373263 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1073373262} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 2 + m_BackGroundColor: {r: 0, g: 0, b: 0, a: 0} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_FocalLength: 50 + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 60 + orthographic: 1 + orthographic size: 512 + m_Depth: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 2048 + m_RenderingPath: 1 + m_TargetTexture: {fileID: 8400000, guid: c618a6b20b3c7394590c59a9fa467e86, type: 2} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 1 + m_AllowMSAA: 0 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 0 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!4 &1073373264 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1073373262} + m_LocalRotation: {x: 0, y: 0.7071068, z: -0.7071068, w: 0} + m_LocalPosition: {x: 0, y: 10, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1532567794} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 90, y: 180, z: 0} --- !u!1 &1124877094 GameObject: m_ObjectHideFlags: 0 @@ -2524,7 +2823,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 1 + m_IsActive: 0 --- !u!4 &1183010124 Transform: m_ObjectHideFlags: 0 @@ -2540,7 +2839,7 @@ Transform: - {fileID: 507446970} - {fileID: 2067021207} m_Father: {fileID: 0} - m_RootOrder: 9 + m_RootOrder: 7 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!114 &1183010125 MonoBehaviour: @@ -2557,23 +2856,6 @@ MonoBehaviour: InfluenceCamera: {fileID: 1462895484} InfluenceRendererPrototype: {fileID: 507446967} SectorRenderer: {fileID: 1940409866} - Settings: - LinkDensity: 0.5 - ZoneCount: 128 - NameGeneratorMinLength: 5 - NameGeneratorMaxLength: 10 - NameGeneratorOrder: 4 - MegaCount: 6 - BossCount: 3 - NoisePosition: 27.806286 - CloudExponent: 10 - CloudAmplitude: 0.01 - NoiseAmplitude: 1 - NoiseOffset: 0.3 - NoiseGain: 0.7 - NoiseLacunarity: 2 - NoiseFrequency: 1 - Zoom: 1 ZonePrototype: {fileID: 1124877096} LinkPrototype: {fileID: 1955533723} IconPrototype: {fileID: 801092330} @@ -2593,6 +2875,14 @@ MonoBehaviour: IconDistance: 1 IconBackgroundSize: 3 LabelDistance: 0.4 + LinkWidth: 0 + CriticalLinkWidth: 0 + IconScaleAnimation: + serializedVersion: 2 + m_Curve: [] + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 --- !u!1 &1187011251 GameObject: m_ObjectHideFlags: 0 @@ -2629,10 +2919,10 @@ RectTransform: m_Father: {fileID: 676739119} m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 36, y: 0} - m_SizeDelta: {x: 0, y: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 36, y: -41} + m_SizeDelta: {x: 72, y: 82} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &1187011253 MonoBehaviour: @@ -2770,6 +3060,87 @@ MeshFilter: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1190354608} m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1223346182 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1223346183} + - component: {fileID: 1223346185} + - component: {fileID: 1223346184} + m_Layer: 10 + m_Name: Waves Medium + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1223346183 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1223346182} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 789220865} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!23 &1223346184 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1223346182} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 0 + m_MotionVectors: 2 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: ebb28acd4b6552d42b312d7451f34337, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &1223346185 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1223346182} + m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} --- !u!1 &1236141027 GameObject: m_ObjectHideFlags: 0 @@ -2803,10 +3174,10 @@ RectTransform: m_Father: {fileID: 676739119} m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 108, y: 0} - m_SizeDelta: {x: 0, y: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 108, y: -10} + m_SizeDelta: {x: 72, y: 20} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &1236141029 MonoBehaviour: @@ -2848,7 +3219,7 @@ MonoBehaviour: m_ChildScaleWidth: 0 m_ChildScaleHeight: 0 m_ReverseArrangement: 0 ---- !u!1 &1311199031 +--- !u!1 &1307174805 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -2856,55 +3227,254 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1311199033} - - component: {fileID: 1311199032} + - component: {fileID: 1307174806} + - component: {fileID: 1307174807} m_Layer: 0 - m_Name: WwiseGlobal + m_Name: Patch Displacement m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!114 &1311199032 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1311199031} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: a4eab75687879a445a2a2397d86a2172, type: 3} - m_Name: - m_EditorClassIdentifier: - InitializationSettings: {fileID: 11400000, guid: ca1886ece3dfc5e49902e78defccd355, - type: 2} - basePath: - language: - defaultPoolSize: 0 - lowerPoolSize: 0 - streamingPoolSize: 0 - memoryCutoffThreshold: 0 - monitorPoolSize: 0 - monitorQueuePoolSize: 0 - callbackManagerBufferSize: 0 - spatialAudioPoolSize: 0 - maxSoundPropagationDepth: 0 - diffractionFlags: 11 - engineLogging: 0 ---- !u!4 &1311199033 +--- !u!4 &1307174806 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1311199031} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} + m_GameObject: {fileID: 1307174805} + m_LocalRotation: {x: 0, y: 0.7071068, z: -0.7071068, w: 0} + m_LocalPosition: {x: 0, y: 10, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1532567794} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 90, y: 180, z: 0} +--- !u!20 &1307174807 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1307174805} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 2 + m_BackGroundColor: {r: 0, g: 0, b: 0, a: 0} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_FocalLength: 50 + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 60 + orthographic: 1 + orthographic size: 512 + m_Depth: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 5632 + m_RenderingPath: 1 + m_TargetTexture: {fileID: 8400000, guid: 06ec5ef8a5830fc44b1ac1a6e123add5, type: 2} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 1 + m_AllowMSAA: 0 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 0 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!1 &1314993065 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1314993073} + - component: {fileID: 1314993072} + - component: {fileID: 1314993071} + - component: {fileID: 1314993069} + m_Layer: 0 + m_Name: Main Camera + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1314993069 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1314993065} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8c03374f22d0a3d4882018de66894a84, type: 3} + m_Name: + m_EditorClassIdentifier: + _volMaterial: {fileID: 2100000, guid: ad63650ae6d6cc542a5aad16694b3c46, type: 2} + GridTransform: {fileID: 753458617} +--- !u!114 &1314993071 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1314993065} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 948f4100a11a5c24981795d21301da5c, type: 3} + m_Name: + m_EditorClassIdentifier: + volumeTrigger: {fileID: 1314993073} + volumeLayer: + serializedVersion: 2 + m_Bits: 1048832 + stopNaNPropagation: 1 + finalBlitToCameraTarget: 0 + antialiasingMode: 3 + temporalAntialiasing: + jitterSpread: 1 + sharpness: 0 + stationaryBlending: 0.98 + motionBlending: 0.98 + subpixelMorphologicalAntialiasing: + quality: 2 + fastApproximateAntialiasing: + fastMode: 0 + keepAlpha: 0 + fog: + enabled: 1 + excludeSkybox: 1 + debugLayer: + lightMeter: + width: 512 + height: 256 + showCurves: 1 + histogram: + width: 512 + height: 256 + channel: 3 + waveform: + exposure: 0.12 + height: 256 + vectorscope: + size: 256 + exposure: 0.12 + overlaySettings: + linearDepth: 0 + motionColorIntensity: 4 + motionGridSize: 64 + colorBlindnessType: 0 + colorBlindnessStrength: 1 + m_Resources: {fileID: 11400000, guid: d82512f9c8e5d4a4d938b575d47f88d4, type: 2} + m_ShowToolkit: 0 + m_ShowCustomSorter: 0 + breakBeforeColorGrading: 0 + m_BeforeTransparentBundles: [] + m_BeforeStackBundles: [] + m_AfterStackBundles: [] +--- !u!20 &1314993072 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1314993065} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 2 + m_BackGroundColor: {r: 0, g: 0, b: 0, a: 1} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_FocalLength: 50 + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 4096 + field of view: 60 + orthographic: 0 + orthographic size: 5 + m_Depth: -1 + m_CullingMask: + serializedVersion: 2 + m_Bits: 33 + m_RenderingPath: 3 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 1 + m_AllowMSAA: 0 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!4 &1314993073 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1314993065} + m_LocalRotation: {x: 0.15998425, y: 0.38291913, z: -0.06751901, w: 0.9073143} + m_LocalPosition: {x: -57, y: -66, z: -289} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 6 + m_RootOrder: 9 + m_LocalEulerAnglesHint: {x: 20, y: 45.763, z: 0} +--- !u!1 &1328848282 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1328848283} + m_Layer: 0 + m_Name: Fog Patches + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1328848283 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1328848282} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1563996706} + - {fileID: 1584275846} + - {fileID: 855309155} + m_Father: {fileID: 753458617} + m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1388747984 GameObject: @@ -2948,16 +3518,14 @@ GameObject: - component: {fileID: 1404197278} - component: {fileID: 1404197277} - component: {fileID: 1404197275} - - component: {fileID: 1404197279} - - component: {fileID: 1404197276} - component: {fileID: 1404197280} m_Layer: 0 m_Name: Sector Camera - m_TagString: MainCamera + m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 1 + m_IsActive: 0 --- !u!114 &1404197275 MonoBehaviour: m_ObjectHideFlags: 0 @@ -2970,7 +3538,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 948f4100a11a5c24981795d21301da5c, type: 3} m_Name: m_EditorClassIdentifier: - volumeTrigger: {fileID: 104940730} + volumeTrigger: {fileID: 0} volumeLayer: serializedVersion: 2 m_Bits: 1048832 @@ -3018,20 +3586,6 @@ MonoBehaviour: m_BeforeTransparentBundles: [] m_BeforeStackBundles: [] m_AfterStackBundles: [] ---- !u!114 &1404197276 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1404197274} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4ae335524e949404bb57f1612ec4b9b5, type: 3} - m_Name: - m_EditorClassIdentifier: - isDefaultListener: 1 - listenerId: 0 --- !u!20 &1404197277 Camera: m_ObjectHideFlags: 0 @@ -3063,7 +3617,7 @@ Camera: m_Depth: 0 m_CullingMask: serializedVersion: 2 - m_Bits: 524288 + m_Bits: 1 m_RenderingPath: -1 m_TargetTexture: {fileID: 0} m_TargetDisplay: 0 @@ -3087,30 +3641,8 @@ Transform: m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 7 + m_RootOrder: 5 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &1404197279 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1404197274} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f27db6b94e477054e96392f94dc50c9d, type: 3} - m_Name: - m_EditorClassIdentifier: - m_listeners: - initialListenerList: [] - useDefaultListeners: 1 - isEnvironmentAware: 0 - isStaticObject: 0 - m_positionOffsetData: - KeepMe: 0 - positionOffset: {x: 0, y: 0, z: 0} - m_posOffsetData: {fileID: 0} - listenerMask: 1 --- !u!114 &1404197280 MonoBehaviour: m_ObjectHideFlags: 0 @@ -3144,7 +3676,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 1 + m_IsActive: 0 --- !u!20 &1462895484 Camera: m_ObjectHideFlags: 0 @@ -3200,7 +3732,7 @@ Transform: m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 8 + m_RootOrder: 6 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!114 &1462895486 MonoBehaviour: @@ -3238,6 +3770,168 @@ MonoBehaviour: positionOffset: {x: 0, y: 0, z: 0} m_posOffsetData: {fileID: 0} listenerMask: 1 +--- !u!1 &1466792826 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1466792827} + - component: {fileID: 1466792830} + - component: {fileID: 1466792829} + m_Layer: 13 + m_Name: Ambient Fog Light + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1466792827 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1466792826} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 753458617} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!23 &1466792829 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1466792826} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 0 + m_MotionVectors: 2 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 7b4b425f2959c6444b35fca367641ee2, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &1466792830 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1466792826} + m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1489231074 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1489231075} + - component: {fileID: 1489231077} + - component: {fileID: 1489231076} + m_Layer: 10 + m_Name: Waves Large + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1489231075 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1489231074} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 789220865} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!23 &1489231076 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1489231074} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 0 + m_MotionVectors: 2 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: b72cec4037c5ff44397e1b39448c9982, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &1489231077 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1489231074} + m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} --- !u!1 &1520024705 GameObject: m_ObjectHideFlags: 0 @@ -3334,6 +4028,40 @@ MeshFilter: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1520024705} m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1532567792 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1532567794} + m_Layer: 0 + m_Name: FogRenderers + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1532567794 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1532567792} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1073373264} + - {fileID: 1307174806} + - {fileID: 942014701} + - {fileID: 375851676} + m_Father: {fileID: 0} + m_RootOrder: 12 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1538186654 GameObject: m_ObjectHideFlags: 0 @@ -3469,6 +4197,168 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1538186654} m_CullTransparentMesh: 1 +--- !u!1 &1563996705 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1563996706} + - component: {fileID: 1563996708} + - component: {fileID: 1563996707} + m_Layer: 11 + m_Name: Depth Micro + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1563996706 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1563996705} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1328848283} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!23 &1563996707 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1563996705} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 0 + m_MotionVectors: 2 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 1c402faf2ced255409ffcfafca7af422, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &1563996708 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1563996705} + m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1584275845 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1584275846} + - component: {fileID: 1584275848} + - component: {fileID: 1584275847} + m_Layer: 11 + m_Name: Depth Macro + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1584275846 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1584275845} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1328848283} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!23 &1584275847 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1584275845} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 0 + m_MotionVectors: 2 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 0e38792b096624c4cbce26cf019b2a18, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &1584275848 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1584275845} + m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} --- !u!1 &1691202845 GameObject: m_ObjectHideFlags: 0 @@ -3544,6 +4434,87 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1691202845} m_CullTransparentMesh: 1 +--- !u!1 &1807969626 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1807969627} + - component: {fileID: 1807969630} + - component: {fileID: 1807969629} + m_Layer: 9 + m_Name: Boundary + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1807969627 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1807969626} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 753458617} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!23 &1807969629 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1807969626} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 0 + m_MotionVectors: 2 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 65e5206f4614c85449f822f5bab55199, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &1807969630 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1807969626} + m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} --- !u!1 &1808942505 GameObject: m_ObjectHideFlags: 0 @@ -3725,7 +4696,7 @@ Transform: m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 2 + m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!850595691 &1821185769 LightingSettings: @@ -3821,10 +4792,10 @@ RectTransform: m_Father: {fileID: 1187011252} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 36, y: -30} + m_SizeDelta: {x: 64, y: 12} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &1928037891 MonoBehaviour: @@ -4078,7 +5049,7 @@ Transform: m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 1 + m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &2008674249 GameObject: @@ -4398,6 +5369,201 @@ Transform: m_Father: {fileID: 1183010124} m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1001 &6977256487279145163 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 753458617} + m_Modifications: + - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: ZoneFloor + value: -100 + objectReference: {fileID: 0} + - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: AgentCount + value: 262144 + objectReference: {fileID: 0} + - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: TextureSize + value: 1024 + objectReference: {fileID: 0} + - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: ZoneCeiling + value: -50 + objectReference: {fileID: 0} + - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: TargetCamera + value: + objectReference: {fileID: 1314993072} + - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: GravityCamera + value: + objectReference: {fileID: 983613691} + - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: TrailEndWidth + value: 0.1 + objectReference: {fileID: 0} + - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: GravityTexture + value: + objectReference: {fileID: 8400000, guid: cc403ed0b6a104445b6534b1877c5556, type: 2} + - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: NoiseAmplitude + value: 5 + objectReference: {fileID: 0} + - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: NoiseFrequency + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: TrailStartWidth + value: 0.25 + objectReference: {fileID: 0} + - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: ParticleMaterial + value: + objectReference: {fileID: 2100000, guid: 3b53e1eb5d8a5d34f9bc8c1928ceba76, type: 2} + - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: ParticleHeightRange + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SlimeSettings.Decay + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SlimeSettings.Drive + value: 223.83 + objectReference: {fileID: 0} + - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SlimeSettings.Speed + value: 20 + objectReference: {fileID: 0} + - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: ParticleHeightOffset + value: 23.77 + objectReference: {fileID: 0} + - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SlimeSettings.TurnSpeed + value: 50 + objectReference: {fileID: 0} + - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SlimeSettings.SensorSpread + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SlimeSettings.SensorDistance + value: 12 + objectReference: {fileID: 0} + - target: {fileID: 6977256487485077368, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: m_Name + value: Slime Renderer + objectReference: {fileID: 0} + - target: {fileID: 6977256487485077368, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: m_Layer + value: 13 + objectReference: {fileID: 0} + - target: {fileID: 6977256487485077373, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: m_RootOrder + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 6977256487485077373, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: m_LocalScale.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6977256487485077373, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: m_LocalScale.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6977256487485077373, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: m_LocalScale.z + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6977256487485077373, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6977256487485077373, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6977256487485077373, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6977256487485077373, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6977256487485077373, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6977256487485077373, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6977256487485077373, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6977256487485077373, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6977256487485077373, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6977256487485077373, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: efd1f097ce29ffa48bb0045d6502f55d, type: 3} +--- !u!4 &6977256487279145164 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 6977256487485077373, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + m_PrefabInstance: {fileID: 6977256487279145163} + m_PrefabAsset: {fileID: 0} --- !u!1001 &7383646976240752633 PrefabInstance: m_ObjectHideFlags: 0 @@ -4409,11 +5575,11 @@ PrefabInstance: type: 3} propertyPath: Camera value: - objectReference: {fileID: 104940729} + objectReference: {fileID: 0} - target: {fileID: 7383646976225659342, guid: eb3a880755444d144a4d7f13ef11df77, type: 3} propertyPath: m_RootOrder - value: 3 + value: 2 objectReference: {fileID: 0} - target: {fileID: 7383646976225659342, guid: eb3a880755444d144a4d7f13ef11df77, type: 3} diff --git a/Assets/Scenes/TestScene_Profiles/PP Profile.asset b/Assets/Scenes/TestScene_Profiles/PP Profile.asset index d910d3303..c86eeb715 100644 --- a/Assets/Scenes/TestScene_Profiles/PP Profile.asset +++ b/Assets/Scenes/TestScene_Profiles/PP Profile.asset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:b42dddbb85ed2fd6636fbf95746dbb3e8ebc819a330780764521fe5a2844b5e8 -size 22214 +oid sha256:ff80c77bc4c4b8f03de953589368556166c7ddce59f85f36544db2632af51fad +size 22212 diff --git a/Assets/Scripts/AetheriaInput.cs b/Assets/Scripts/AetheriaInput.cs index af416db3a..6211a0f96 100644 --- a/Assets/Scripts/AetheriaInput.cs +++ b/Assets/Scripts/AetheriaInput.cs @@ -201,6 +201,14 @@ public class @AetheriaInput : IInputActionCollection, IDisposable ""expectedControlType"": ""Button"", ""processors"": """", ""interactions"": """" + }, + { + ""name"": ""Hide UI"", + ""type"": ""Button"", + ""id"": ""1cdb2515-91e1-4895-879d-8a7347e60b21"", + ""expectedControlType"": ""Button"", + ""processors"": """", + ""interactions"": """" } ], ""bindings"": [ @@ -643,6 +651,17 @@ public class @AetheriaInput : IInputActionCollection, IDisposable ""action"": ""Ping"", ""isComposite"": false, ""isPartOfComposite"": false + }, + { + ""name"": """", + ""id"": ""3f898572-d165-4e29-93c3-95c3efce5df9"", + ""path"": ""/f2"", + ""interactions"": """", + ""processors"": """", + ""groups"": ""Keyboard&Mouse"", + ""action"": ""Hide UI"", + ""isComposite"": false, + ""isPartOfComposite"": false } ] }, @@ -1232,6 +1251,7 @@ public class @AetheriaInput : IInputActionCollection, IDisposable m_Player_ToggleShield = m_Player.FindAction("Toggle Shield", throwIfNotFound: true); m_Player_OverrideShutdown = m_Player.FindAction("Override Shutdown", throwIfNotFound: true); m_Player_Ping = m_Player.FindAction("Ping", throwIfNotFound: true); + m_Player_HideUI = m_Player.FindAction("Hide UI", throwIfNotFound: true); // UI m_UI = asset.FindActionMap("UI", throwIfNotFound: true); m_UI_Navigate = m_UI.FindAction("Navigate", throwIfNotFound: true); @@ -1320,6 +1340,7 @@ public class @AetheriaInput : IInputActionCollection, IDisposable private readonly InputAction m_Player_ToggleShield; private readonly InputAction m_Player_OverrideShutdown; private readonly InputAction m_Player_Ping; + private readonly InputAction m_Player_HideUI; public struct PlayerActions { private @AetheriaInput m_Wrapper; @@ -1347,6 +1368,7 @@ public class @AetheriaInput : IInputActionCollection, IDisposable public InputAction @ToggleShield => m_Wrapper.m_Player_ToggleShield; public InputAction @OverrideShutdown => m_Wrapper.m_Player_OverrideShutdown; public InputAction @Ping => m_Wrapper.m_Player_Ping; + public InputAction @HideUI => m_Wrapper.m_Player_HideUI; public InputActionMap Get() { return m_Wrapper.m_Player; } public void Enable() { Get().Enable(); } public void Disable() { Get().Disable(); } @@ -1425,6 +1447,9 @@ public class @AetheriaInput : IInputActionCollection, IDisposable @Ping.started -= m_Wrapper.m_PlayerActionsCallbackInterface.OnPing; @Ping.performed -= m_Wrapper.m_PlayerActionsCallbackInterface.OnPing; @Ping.canceled -= m_Wrapper.m_PlayerActionsCallbackInterface.OnPing; + @HideUI.started -= m_Wrapper.m_PlayerActionsCallbackInterface.OnHideUI; + @HideUI.performed -= m_Wrapper.m_PlayerActionsCallbackInterface.OnHideUI; + @HideUI.canceled -= m_Wrapper.m_PlayerActionsCallbackInterface.OnHideUI; } m_Wrapper.m_PlayerActionsCallbackInterface = instance; if (instance != null) @@ -1498,6 +1523,9 @@ public class @AetheriaInput : IInputActionCollection, IDisposable @Ping.started += instance.OnPing; @Ping.performed += instance.OnPing; @Ping.canceled += instance.OnPing; + @HideUI.started += instance.OnHideUI; + @HideUI.performed += instance.OnHideUI; + @HideUI.canceled += instance.OnHideUI; } } } @@ -1700,6 +1728,7 @@ public class @AetheriaInput : IInputActionCollection, IDisposable void OnToggleShield(InputAction.CallbackContext context); void OnOverrideShutdown(InputAction.CallbackContext context); void OnPing(InputAction.CallbackContext context); + void OnHideUI(InputAction.CallbackContext context); } public interface IUIActions { diff --git a/Assets/Scripts/Gameplay/ActionGameManager.cs b/Assets/Scripts/Gameplay/ActionGameManager.cs index 47d706637..378d7b305 100644 --- a/Assets/Scripts/Gameplay/ActionGameManager.cs +++ b/Assets/Scripts/Gameplay/ActionGameManager.cs @@ -68,12 +68,6 @@ public class ActionGameManager : MonoBehaviour public float TargetSpottedBlinkFrequency = 20; public float TargetSpottedBlinkOffset = -.25f; - [Header("Name Generation")] - public TextAsset NameFile; - public int NameGeneratorMinLength = 5; - public int NameGeneratorMaxLength = 10; - public int NameGeneratorOrder = 4; - [Header("Postprocessing")] public float DeathPPTransitionTime; public PostProcessVolume DeathPP; @@ -81,6 +75,7 @@ public class ActionGameManager : MonoBehaviour public PostProcessVolume SevereHeatstrokePP; [Header("Scene Links")] + public Transform EffectManagerParent; public TradeMenu TradeMenu; public Prototype HostileTargetIndicator; public PlaceUIElementWorldspace ViewDot; @@ -91,7 +86,8 @@ public class ActionGameManager : MonoBehaviour [FormerlySerializedAs("SectorRenderer")] public ZoneRenderer ZoneRenderer; public CinemachineVirtualCamera DockCamera; public CinemachineVirtualCamera FollowCamera; - public GameObject GameplayUI; + public CinemachineVirtualCamera WormholeCamera; + public CanvasGroup GameplayUI; public MenuPanel Menu; public MapRenderer MenuMap; //public SectorRenderer SectorRenderer; @@ -101,7 +97,9 @@ public class ActionGameManager : MonoBehaviour public InventoryMenu Inventory; public InventoryPanel ShipPanel; public InventoryPanel TargetShipPanel; - [FormerlySerializedAs("ConfirmationDialog")] public ConfirmationDialog Dialog; + public ConfirmationDialog Dialog; + + public float IntroDuration; //public PlayerInput Input; @@ -111,7 +109,6 @@ public class ActionGameManager : MonoBehaviour private DirectoryInfo _loadoutPath; private bool _editMode; private float _time; - private AetheriaInput _input; private int _zoomLevelIndex; private Entity _currentEntity; @@ -123,7 +120,9 @@ public class ActionGameManager : MonoBehaviour private Dictionary _visibleHostileIndicators = new Dictionary(); private List _shipSubscriptions = new List(); private float _severeHeatstrokePhase; + private bool _uiHidden; + public AetheriaInput Input { get; private set; } public EquippedDockingBay DockingBay { get; private set; } public Entity DockedEntity { get; private set; } @@ -164,12 +163,13 @@ public class ActionGameManager : MonoBehaviour public void SaveState() { - PlayerSettings.CurrentRun = new SavedGame(CurrentSector, Zone, CurrentEntity); + PlayerSettings.CurrentRun = new SavedGame(CurrentSector, Zone, DockedEntity??CurrentEntity); SavePlayerSettings(); } void Start() { + EntityInstance.EffectManagerParent = EffectManagerParent; AkSoundEngine.RegisterGameObj(gameObject); ConsoleController.MessageReceiver = this; @@ -182,18 +182,18 @@ public class ActionGameManager : MonoBehaviour #region Input Handling - _input = new AetheriaInput(); - _input.Global.Enable(); - _input.UI.Enable(); + Input = new AetheriaInput(); + Input.Global.Enable(); + Input.UI.Enable(); _zoomLevelIndex = Settings.DefaultMinimapZoom; - _input.Player.MinimapZoom.performed += context => + Input.Player.MinimapZoom.performed += context => { _zoomLevelIndex = (_zoomLevelIndex + 1) % Settings.MinimapZoomLevels.Length; ZoneRenderer.MinimapDistance = Settings.MinimapZoomLevels[_zoomLevelIndex]; }; - _input.Global.MapToggle.performed += context => + Input.Global.MapToggle.performed += context => { if (Menu.gameObject.activeSelf && Menu.CurrentTab == MenuTab.Map) { @@ -201,8 +201,8 @@ public class ActionGameManager : MonoBehaviour Menu.gameObject.SetActive(false); if (CurrentEntity != null && CurrentEntity.Parent == null) { - _input.Player.Enable(); - GameplayUI.SetActive(true); + Input.Player.Enable(); + GameplayUI.gameObject.SetActive(true); SchematicDisplay.ShowShip(CurrentEntity); ShipPanel.Display(CurrentEntity, true); @@ -212,13 +212,13 @@ public class ActionGameManager : MonoBehaviour } Cursor.lockState = CursorLockMode.None; - _input.Player.Disable(); - GameplayUI.SetActive(false); + Input.Player.Disable(); + GameplayUI.gameObject.SetActive(false); Menu.ShowTab(MenuTab.Map); MenuMap.Position = CurrentEntity.Position.xz; }; - _input.Global.Inventory.performed += context => + Input.Global.Inventory.performed += context => { if (Menu.gameObject.activeSelf && Menu.CurrentTab == MenuTab.Inventory) { @@ -226,8 +226,8 @@ public class ActionGameManager : MonoBehaviour Menu.gameObject.SetActive(false); if (CurrentEntity != null && CurrentEntity.Parent == null) { - _input.Player.Enable(); - GameplayUI.SetActive(true); + Input.Player.Enable(); + GameplayUI.gameObject.SetActive(true); SchematicDisplay.ShowShip(CurrentEntity); ShipPanel.Display(CurrentEntity, true); @@ -236,12 +236,12 @@ public class ActionGameManager : MonoBehaviour } Cursor.lockState = CursorLockMode.None; - _input.Player.Disable(); + Input.Player.Disable(); Menu.ShowTab(MenuTab.Inventory); - GameplayUI.SetActive(false); + GameplayUI.gameObject.SetActive(false); }; - _input.Global.Dock.performed += context => + Input.Global.Dock.performed += context => { if (CurrentEntity == null) { @@ -255,7 +255,7 @@ public class ActionGameManager : MonoBehaviour else Undock(); }; - _input.Player.EnterWormhole.performed += context => + Input.Player.EnterWormhole.performed += context => { if(CurrentEntity is Ship ship) { @@ -264,10 +264,17 @@ public class ActionGameManager : MonoBehaviour if (length(wormhole.Position - CurrentEntity.Position.xz) < Settings.GameplaySettings.WormholeExitRadius) { var oldZone = Zone; + // var wormholeCameraFollow = new GameObject("Wormhole Camera Follow").transform; + // wormholeCameraFollow.position = new Vector3(wormhole.Position.x, -50, wormhole.Position.y); + // wormholeCameraFollow.rotation = Quaternion.LookRotation(Vector3.down, ship.LookDirection); + // WormholeCamera.enabled = true; + // WormholeCamera.Follow = wormholeCameraFollow; + // FollowCamera.enabled = false; ship.EnterWormhole(wormhole.Position); ship.OnEnteredWormhole += () => { - GenerateLevel(wormhole.Target); + PopulateLevel(wormhole.Target); + SectorMap.QueueZoneReveal(wormhole.Target.AdjacentZones); ship.ExitWormhole(ZoneRenderer.WormholeInstances.Keys.First(w=>w.Target==oldZone.SectorZone).Position, Settings.GameplaySettings.WormholeExitVelocity * ItemManager.Random.NextFloat2Direction()); CurrentEntity.Zone = Zone; @@ -278,23 +285,29 @@ public class ActionGameManager : MonoBehaviour } }; - _input.Player.OverrideShutdown.performed += context => + Input.Player.HideUI.performed += context => + { + _uiHidden = !_uiHidden; + GameplayUI.alpha = _uiHidden ? 0 : 1; + }; + + Input.Player.OverrideShutdown.performed += context => { CurrentEntity.OverrideShutdown = !CurrentEntity.OverrideShutdown; }; - _input.Player.Ping.performed += context => + Input.Player.Ping.performed += context => { CurrentEntity.Sensor?.Ping(); }; - _input.Player.ToggleHeatsinks.performed += context => + Input.Player.ToggleHeatsinks.performed += context => { CurrentEntity.HeatsinksEnabled = !CurrentEntity.HeatsinksEnabled; AkSoundEngine.PostEvent(CurrentEntity.HeatsinksEnabled ? "UI_Success" : "UI_Fail", gameObject); }; - _input.Player.ToggleShield.performed += context => + Input.Player.ToggleShield.performed += context => { if (CurrentEntity.Shield != null) { @@ -305,27 +318,27 @@ public class ActionGameManager : MonoBehaviour #region Targeting - _input.Player.TargetReticle.performed += context => + Input.Player.TargetReticle.performed += context => { var underReticle = Zone.Entities.Where(x => x != CurrentEntity) .MaxBy(x => dot(normalize(x.Position - CurrentEntity.Position), CurrentEntity.LookDirection)); CurrentEntity.Target.Value = CurrentEntity.Target.Value == underReticle ? null : underReticle; }; - _input.Player.TargetNearest.performed += context => + Input.Player.TargetNearest.performed += context => { CurrentEntity.Target.Value = Zone.Entities.Where(x=>x!=CurrentEntity) .MaxBy(x => length(x.Position - CurrentEntity.Position)); }; - _input.Player.TargetNext.performed += context => + Input.Player.TargetNext.performed += context => { var targets = Zone.Entities.Where(x => x != CurrentEntity).OrderBy(x => length(x.Position - CurrentEntity.Position)).ToArray(); var currentTargetIndex = Array.IndexOf(targets, CurrentEntity.Target.Value); CurrentEntity.Target.Value = targets[(currentTargetIndex + 1) % targets.Length]; }; - _input.Player.TargetPrevious.performed += context => + Input.Player.TargetPrevious.performed += context => { var targets = Zone.Entities.Where(x => x != CurrentEntity).OrderBy(x => length(x.Position - CurrentEntity.Position)).ToArray(); var currentTargetIndex = Array.IndexOf(targets, CurrentEntity.Target.Value); @@ -337,31 +350,31 @@ public class ActionGameManager : MonoBehaviour #region Trigger Groups - _input.Player.PreviousWeaponGroup.performed += context => + Input.Player.PreviousWeaponGroup.performed += context => { if (CurrentEntity.Parent != null) return; SchematicDisplay.SelectedGroupIndex--; }; - _input.Player.NextWeaponGroup.performed += context => + Input.Player.NextWeaponGroup.performed += context => { if (CurrentEntity.Parent != null) return; SchematicDisplay.SelectedGroupIndex++; }; - _input.Player.PreviousWeapon.performed += context => + Input.Player.PreviousWeapon.performed += context => { if (CurrentEntity.Parent != null) return; SchematicDisplay.SelectedItemIndex--; }; - _input.Player.NextWeapon.performed += context => + Input.Player.NextWeapon.performed += context => { if (CurrentEntity.Parent != null) return; SchematicDisplay.SelectedItemIndex++; }; - _input.Player.ToggleWeaponGroup.performed += context => + Input.Player.ToggleWeaponGroup.performed += context => { if (CurrentEntity.Parent != null) return; var item = SchematicDisplay.SchematicItems[SchematicDisplay.SelectedItemIndex]; @@ -381,73 +394,73 @@ public class ActionGameManager : MonoBehaviour SchematicDisplay.UpdateTriggerGroups(); }; - _input.Player.FireGroup1.started += context => + Input.Player.FireGroup1.started += context => { if (CurrentEntity.Parent != null) return; foreach (var s in CurrentEntity.TriggerGroups[0].weapons) s.Activate(); }; - _input.Player.FireGroup1.canceled += context => + Input.Player.FireGroup1.canceled += context => { if (CurrentEntity.Parent != null) return; foreach (var s in CurrentEntity.TriggerGroups[0].weapons) s.Deactivate(); }; - _input.Player.FireGroup2.started += context => + Input.Player.FireGroup2.started += context => { if (CurrentEntity.Parent != null) return; foreach (var s in CurrentEntity.TriggerGroups[1].weapons) s.Activate(); }; - _input.Player.FireGroup2.canceled += context => + Input.Player.FireGroup2.canceled += context => { if (CurrentEntity.Parent != null) return; foreach (var s in CurrentEntity.TriggerGroups[1].weapons) s.Deactivate(); }; - _input.Player.FireGroup3.started += context => + Input.Player.FireGroup3.started += context => { if (CurrentEntity.Parent != null) return; foreach (var s in CurrentEntity.TriggerGroups[2].weapons) s.Activate(); }; - _input.Player.FireGroup3.canceled += context => + Input.Player.FireGroup3.canceled += context => { if (CurrentEntity.Parent != null) return; foreach (var s in CurrentEntity.TriggerGroups[2].weapons) s.Deactivate(); }; - _input.Player.FireGroup4.started += context => + Input.Player.FireGroup4.started += context => { if (CurrentEntity.Parent != null) return; foreach (var s in CurrentEntity.TriggerGroups[3].weapons) s.Activate(); }; - _input.Player.FireGroup4.canceled += context => + Input.Player.FireGroup4.canceled += context => { if (CurrentEntity.Parent != null) return; foreach (var s in CurrentEntity.TriggerGroups[3].weapons) s.Deactivate(); }; - _input.Player.FireGroup5.started += context => + Input.Player.FireGroup5.started += context => { if (CurrentEntity.Parent != null) return; foreach (var s in CurrentEntity.TriggerGroups[4].weapons) s.Activate(); }; - _input.Player.FireGroup5.canceled += context => + Input.Player.FireGroup5.canceled += context => { if (CurrentEntity.Parent != null) return; foreach (var s in CurrentEntity.TriggerGroups[4].weapons) s.Deactivate(); }; - _input.Player.FireGroup6.started += context => + Input.Player.FireGroup6.started += context => { if (CurrentEntity.Parent != null) return; foreach (var s in CurrentEntity.TriggerGroups[5].weapons) s.Activate(); }; - _input.Player.FireGroup6.canceled += context => + Input.Player.FireGroup6.canceled += context => { if (CurrentEntity.Parent != null) return; foreach (var s in CurrentEntity.TriggerGroups[5].weapons) s.Deactivate(); @@ -458,9 +471,81 @@ public class ActionGameManager : MonoBehaviour #endregion StartGame(); + + ConsoleController.AddCommand("give", + args => + { + var itemName = string.Join(" ", args); + var item = ItemManager.ItemData.GetAll() + .FirstOrDefault(itemData => string.Equals(itemData.Name, itemName, StringComparison.InvariantCultureIgnoreCase)); + if (item != null) + { + _currentEntity.CargoBays.First().TryStore(ItemManager.CreateInstance(item, .95f)); + } + }); + + ConsoleController.AddCommand("trackmissile", + _ => + { + foreach (var missileManager in FindObjectsOfType()) + { + missileManager.OnFireGuided.Where(x => x.source == _currentEntity).Take(1).Subscribe(x => + { + FollowCamera.Follow = x.missile.transform; + FollowCamera.LookAt = x.target; + x.missile.OnKill += () => + { + FollowCamera.LookAt = ZoneRenderer.EntityInstances[CurrentEntity].LookAtPoint; + FollowCamera.Follow = ZoneRenderer.EntityInstances[CurrentEntity].transform; + }; + }); + } + }); + + ConsoleController.AddCommand("pingscene", + _ => + { + var startTime = Time.time; + Observable.EveryUpdate().TakeWhile(_ => Time.time - startTime < 5).Subscribe( + _ => Debug.Log($"{(int) (Time.time - startTime)}"), + () => + { + var nearestFaction = CurrentSector.Factions.MinBy(f => CurrentSector.HomeZones[f].Distance[Zone.SectorZone]); + var nearestFactionHomeZone = CurrentSector.HomeZones[nearestFaction]; + var factionPresence = nearestFaction.InfluenceDistance - nearestFactionHomeZone.Distance[Zone.SectorZone] + 1; + + var loadoutGenerator = new LoadoutGenerator( + ref ItemManager.Random, + ItemManager, + CurrentSector, + Zone.SectorZone, + nearestFaction, + .5f); + + for (int i = 0; i < 8; i++) + { + var ship = EntitySerializer.Unpack(ItemManager, Zone, loadoutGenerator.GenerateShipLoadout(), true); + ship.Position.xz = _currentEntity.Position.xz + + ItemManager.Random.NextFloat2Direction() * ItemManager.Random.NextFloat(50, 500); + ship.Zone = Zone; + Zone.Entities.Add(ship); + ship.Activate(); + } + + for (int i = 0; i < 8; i++) + { + var turret = EntitySerializer.Unpack(ItemManager, Zone, loadoutGenerator.GenerateTurretLoadout(), true); + turret.Position.xz = _currentEntity.Position.xz + + ItemManager.Random.NextFloat2Direction() * ItemManager.Random.NextFloat(50, 500); + turret.Zone = Zone; + Zone.Entities.Add(turret); + turret.Activate(); + } + }); + }); } - public void GenerateLevel(SectorZone sectorZone) + public void PopulateLevel(SectorZone sectorZone) { if (sectorZone == null) throw new ArgumentNullException(nameof(sectorZone)); @@ -502,7 +587,8 @@ public class ActionGameManager : MonoBehaviour { if (PlayerSettings.CurrentRun == null) { - GenerateLevel(CurrentSector.Entrance); + SectorMap.QueueZoneReveal(CurrentSector.Entrance.AdjacentZones.Prepend(CurrentSector.Entrance)); + PopulateLevel(CurrentSector.Entrance); var loadoutGenerator = new LoadoutGenerator(ref ItemManager.Random, ItemManager, CurrentSector, Zone.SectorZone, null, 2); var ship = EntitySerializer.Unpack(ItemManager, Zone, loadoutGenerator.GenerateShipLoadout(), true); // EntitySerializer.Unpack(ItemManager, Zone, Loadouts.First(x => x.Name == StarterShipTemplate), true); @@ -515,16 +601,48 @@ public class ActionGameManager : MonoBehaviour } else { - GenerateLevel(CurrentSector.Zones[PlayerSettings.CurrentRun.CurrentZone]); + PopulateLevel(CurrentSector.Zones[PlayerSettings.CurrentRun.CurrentZone]); var targetEntity = Zone.Entities[PlayerSettings.CurrentRun.CurrentZoneEntity]; if (targetEntity is OrbitalEntity orbitalEntity) DoDock(orbitalEntity, orbitalEntity.DockingBays.First()); else + { + //StartCoroutine(IntroCutscene(targetEntity as Ship)); BindToEntity(targetEntity); + } } } } + private IEnumerator IntroCutscene(Ship ship) + { + ZoneRenderer.PerspectiveEntity = ship; + var entityPosition = ship.Position.xz; + var followOrbit = Zone.Orbits.Keys.MinBy(o => lengthsq(Zone.GetOrbitPosition(o) - entityPosition)); + var followPlanet = ZoneRenderer.Planets[Zone.Planets.FirstOrDefault(p => p.Value.Orbit == followOrbit).Key]; + DockCamera.Follow = followPlanet.Body.transform; + var rootOrbit = followOrbit; + while (Zone.Orbits[rootOrbit].Data.Parent != Guid.Empty) + rootOrbit = Zone.Orbits[rootOrbit].Data.Parent; + var rootPlanet = ZoneRenderer.Planets[Zone.Planets.FirstOrDefault(p => p.Value.Orbit == rootOrbit).Key]; + DockCamera.LookAt = rootPlanet.Body.transform; + + var shipVelocity = ship.GetBehavior().Limit; + var followOrbitPosition = Zone.GetOrbitPosition(followOrbit); + var shipDirection = normalize(Zone.GetOrbitPosition(rootOrbit) - followOrbitPosition); + ship.Position.xz = followOrbitPosition - shipDirection * shipVelocity * IntroDuration; + + var startTime = Time.time; + while (Time.time - startTime < IntroDuration) + { + ship.Direction = shipDirection; + ship.Velocity = shipDirection * shipVelocity; + yield return null; + } + + BindToEntity(ship); + } + public void Dock() { if (CurrentEntity.Parent != null) return; @@ -560,8 +678,10 @@ public class ActionGameManager : MonoBehaviour var orbital = (OrbitalEntity) entity; DockCamera.Follow = ZoneRenderer.EntityInstances[orbital].transform; var parentOrbit = Zone.Orbits[orbital.OrbitData].Data.Parent; - var parentPlanet = ZoneRenderer.Planets[Zone.Planets.FirstOrDefault(p => p.Value.Orbit == parentOrbit).Key]; - DockCamera.LookAt = parentPlanet.Body.transform; + var parentOrbitPlanet = Zone.Planets.FirstOrDefault(p => p.Value.Orbit == parentOrbit).Key; + if (ZoneRenderer.Planets.ContainsKey(parentOrbitPlanet)) + DockCamera.LookAt = ZoneRenderer.Planets[parentOrbitPlanet].Body.transform; + else DockCamera.LookAt = ZoneRenderer.ZoneRoot; Menu.ShowTab(MenuTab.Inventory); } @@ -619,9 +739,9 @@ public class ActionGameManager : MonoBehaviour _visibleHostileIndicators.Clear(); if(_lockingIndicators!=null) foreach(var (_, indicator, _) in _lockingIndicators) indicator.GetComponent().ReturnToPool(); - _input.Player.Disable(); + Input.Player.Disable(); Cursor.lockState = CursorLockMode.None; - GameplayUI.SetActive(false); + GameplayUI.gameObject.SetActive(false); foreach(var subscription in _shipSubscriptions) subscription.Dispose(); _shipSubscriptions.Clear(); @@ -649,8 +769,8 @@ public class ActionGameManager : MonoBehaviour _viewDirection = float3(CurrentEntity.Direction.x,0,CurrentEntity.Direction.y); Cursor.lockState = CursorLockMode.Locked; - GameplayUI.SetActive(true); - _input.Player.Enable(); + Input.Player.Enable(); + GameplayUI.gameObject.SetActive(true); ShipPanel.Display(CurrentEntity, true); SchematicDisplay.ShowShip(CurrentEntity); @@ -706,24 +826,25 @@ public class ActionGameManager : MonoBehaviour var deathTime = Time.time; UnbindEntity(); CurrentEntity = null; - Dialog.Clear(); - Dialog.Title.text = "You have died!"; - Dialog.Show(() => - { - PlayerSettings.CurrentRun = null; - StartGame(); - }, null, "Try again!"); - Dialog.transform.position = new Vector3(Screen.width / 2, Screen.height / 2); + // Dialog.Clear(); + // Dialog.Title.text = "You have died!"; + // Dialog.Show(() => + // { + // PlayerSettings.CurrentRun = null; + // StartGame(); + // }, null, "Try again!"); + // Dialog.transform.position = new Vector3(Screen.width / 2, Screen.height / 2); //Dialog.MoveToCursor(); Observable.EveryUpdate() - .Select(_ => (Time.time - deathTime) / DeathPPTransitionTime) - .Where(t => t < 1) - .Subscribe(t => + .Where(_ => Time.time - deathTime < DeathPPTransitionTime) + .Subscribe(_ => { + var t = (Time.time - deathTime) / DeathPPTransitionTime; HeatstrokePP.weight = 1 - t; SevereHeatstrokePP.weight = 1 - t; DeathPP.weight = t; - }, () => + }, + () => { HeatstrokePP.weight = 0; SevereHeatstrokePP.weight = 0; @@ -789,7 +910,7 @@ public class ActionGameManager : MonoBehaviour !(indicator.Key.EntityInfoGathered[CurrentEntity] > Settings.GameplaySettings.TargetDetectionInfoThreshold) || sin(TargetSpottedBlinkFrequency * Time.time) + TargetSpottedBlinkOffset > 0; } - var look = _input.Player.Look.ReadValue(); + var look = Input.Player.Look.ReadValue(); _entityYawPitch = float2(_entityYawPitch.x + look.x * Sensitivity.x, clamp(_entityYawPitch.y + look.y * Sensitivity.y, -.45f * PI, .45f * PI)); _viewDirection = mul(float3(0, 0, 1), Unity.Mathematics.float3x3.Euler(float3(_entityYawPitch.yx, 0), RotationOrder.YXZ)); CurrentEntity.LookDirection = _viewDirection; @@ -801,12 +922,11 @@ public class ActionGameManager : MonoBehaviour if(CurrentEntity is Ship ship) { - ship.MovementDirection = _input.Player.Move.ReadValue(); + ship.MovementDirection = Input.Player.Move.ReadValue(); } } } - Zone.Update(_time, Time.deltaTime); - ZoneRenderer.GameTime = _time; + Zone.Update(Time.deltaTime); } private void LateUpdate() diff --git a/Assets/Scripts/Gameplay/EntityInstance.cs b/Assets/Scripts/Gameplay/EntityInstance.cs index a4d83a005..ce1a4be2c 100644 --- a/Assets/Scripts/Gameplay/EntityInstance.cs +++ b/Assets/Scripts/Gameplay/EntityInstance.cs @@ -236,20 +236,20 @@ public class EntityInstance : MonoBehaviour } } } - if(hp.Type == HardpointType.Reactor) - { - var reactorHardpoint = EquipmentHardpoints.FirstOrDefault(x => x.name == hp.Transform); - if (reactorHardpoint) - { - var reactor = item.GetBehavior(); - if( reactor != null && !string.IsNullOrEmpty(item.Data.SoundEffectTrigger) ) - { - AkSoundEngine.RegisterGameObj(reactorHardpoint.gameObject); - AkSoundEngine.PostEvent(item.Data.SoundEffectTrigger, reactorHardpoint.gameObject); - _reactor = (reactor, reactorHardpoint.gameObject); - } - } - } + // if(hp.Type == HardpointType.Reactor) + // { + // var reactorHardpoint = EquipmentHardpoints.FirstOrDefault(x => x.name == hp.Transform); + // if (reactorHardpoint) + // { + // var reactor = item.GetBehavior(); + // if( reactor != null && !string.IsNullOrEmpty(item.Data.SoundEffectTrigger) ) + // { + // AkSoundEngine.RegisterGameObj(reactorHardpoint.gameObject); + // AkSoundEngine.PostEvent(item.Data.SoundEffectTrigger, reactorHardpoint.gameObject); + // _reactor = (reactor, reactorHardpoint.gameObject); + // } + // } + // } } } RadiatorMeshes = new Dictionary(); @@ -356,6 +356,7 @@ public class EntityInstance : MonoBehaviour { distance = cellDist; hitCell = v; + hitPos = v + float2(.5f); } } @@ -383,14 +384,15 @@ public class EntityInstance : MonoBehaviour // Find the local 2D vector corresponding to the direction of the incoming hit var localHitDirection = transform.InverseTransformDirection(hit.Direction); var penetrationVector = normalize(float2(localHitDirection.x, localHitDirection.z)); - + // TODO: Bresenham's line algorithm // March a ray through the ship from the hit position var penetrationPoint = hitPos; - var penetrationDistance = 0; - while (penetrationDistance < hit.Penetration) + var penetrationDistance = 0f; + while (penetrationDistance < hit.Penetration && hullData.Shape[int2(penetrationPoint)]) { - penetrationPoint += penetrationVector * .5f; + penetrationDistance += .5f; hitShape[int2(penetrationPoint)] = true; + penetrationPoint += penetrationVector * .5f; } } @@ -496,15 +498,15 @@ public class EntityInstance : MonoBehaviour AkSoundEngine.SetRTPCValue("performance_quality", r.Key.Item.EquippableItem.Quality, r.Value); } - if (_reactor.reactor != null) - { - _reactor.sfxSource.SetActive(_reactor.reactor.Item.Online.Value); - AkSoundEngine.SetObjectPosition(_reactor.sfxSource, _reactor.sfxSource.transform); - AkSoundEngine.SetRTPCValue("reactor_load", _reactor.reactor.CurrentLoadRatio, _reactor.sfxSource); - AkSoundEngine.SetRTPCValue("performance_durability", _reactor.reactor.Item.DurabilityPerformance, _reactor.sfxSource); - AkSoundEngine.SetRTPCValue("performance_thermal", _reactor.reactor.Item.ThermalPerformance, _reactor.sfxSource); - AkSoundEngine.SetRTPCValue("performance_quality", _reactor.reactor.Item.EquippableItem.Quality, _reactor.sfxSource); - } + // if (_reactor.reactor != null) + // { + // _reactor.sfxSource.SetActive(_reactor.reactor.Item.Online.Value); + // AkSoundEngine.SetObjectPosition(_reactor.sfxSource, _reactor.sfxSource.transform); + // AkSoundEngine.SetRTPCValue("reactor_load", _reactor.reactor.CurrentLoadRatio, _reactor.sfxSource); + // AkSoundEngine.SetRTPCValue("performance_durability", _reactor.reactor.Item.DurabilityPerformance, _reactor.sfxSource); + // AkSoundEngine.SetRTPCValue("performance_thermal", _reactor.reactor.Item.ThermalPerformance, _reactor.sfxSource); + // AkSoundEngine.SetRTPCValue("performance_quality", _reactor.reactor.Item.EquippableItem.Quality, _reactor.sfxSource); + // } foreach (var x in RadiatorMeshes) { diff --git a/Assets/Scripts/Gameplay/ShipInstance.cs b/Assets/Scripts/Gameplay/ShipInstance.cs index 1e105f944..956fa85f9 100644 --- a/Assets/Scripts/Gameplay/ShipInstance.cs +++ b/Assets/Scripts/Gameplay/ShipInstance.cs @@ -35,11 +35,11 @@ public class ShipInstance : EntityInstance var thrusterHardpoint = ThrusterHardpoints .FirstOrDefault(t => t.name == thruster.Entity.Hardpoints[thruster.Item.Position.x, thruster.Item.Position.y].Transform); particlesShape.meshRenderer = thrusterHardpoint?.Emitter; - if (!string.IsNullOrEmpty(thruster.Item.Data.SoundEffectTrigger) && thrusterHardpoint != null) - { - AkSoundEngine.RegisterGameObj(thrusterHardpoint.gameObject); - AkSoundEngine.PostEvent(thruster.Item.Data.SoundEffectTrigger, thrusterHardpoint.gameObject); - } + // if (!string.IsNullOrEmpty(thruster.Item.Data.SoundEffectTrigger) && thrusterHardpoint != null) + // { + // AkSoundEngine.RegisterGameObj(thrusterHardpoint.gameObject); + // AkSoundEngine.PostEvent(thruster.Item.Data.SoundEffectTrigger, thrusterHardpoint.gameObject); + // } return new ThrusterInstance { @@ -87,17 +87,17 @@ public class ShipInstance : EntityInstance var data = Entity.ItemManager.GetData(item); thrusterInstance.MaxParticleCount = thrusterInstance.System.particleCount; emissionModule.rateOverTimeMultiplier = thrusterInstance.BaseEmission * thrusterInstance.Thruster.Axis * (item.Durability / data.Durability); - if (thrusterInstance.SfxSource) - { - var throttle = 0f; - if (thrusterInstance.System.particleCount > 0) - throttle = (float) thrusterInstance.System.particleCount / thrusterInstance.MaxParticleCount; - AkSoundEngine.SetObjectPosition(thrusterInstance.SfxSource, thrusterInstance.SfxSource.transform); - AkSoundEngine.SetRTPCValue("thruster_throttle", throttle, thrusterInstance.SfxSource); - AkSoundEngine.SetRTPCValue("performance_durability", thrusterInstance.Thruster.Item.DurabilityPerformance, thrusterInstance.SfxSource); - AkSoundEngine.SetRTPCValue("performance_thermal", thrusterInstance.Thruster.Item.ThermalPerformance, thrusterInstance.SfxSource); - AkSoundEngine.SetRTPCValue("performance_quality", thrusterInstance.Thruster.Item.EquippableItem.Quality, thrusterInstance.SfxSource); - } + // if (thrusterInstance.SfxSource) + // { + // var throttle = 0f; + // if (thrusterInstance.System.particleCount > 0) + // throttle = (float) thrusterInstance.System.particleCount / thrusterInstance.MaxParticleCount; + // AkSoundEngine.SetObjectPosition(thrusterInstance.SfxSource, thrusterInstance.SfxSource.transform); + // AkSoundEngine.SetRTPCValue("thruster_throttle", throttle, thrusterInstance.SfxSource); + // AkSoundEngine.SetRTPCValue("performance_durability", thrusterInstance.Thruster.Item.DurabilityPerformance, thrusterInstance.SfxSource); + // AkSoundEngine.SetRTPCValue("performance_thermal", thrusterInstance.Thruster.Item.ThermalPerformance, thrusterInstance.SfxSource); + // AkSoundEngine.SetRTPCValue("performance_quality", thrusterInstance.Thruster.Item.EquippableItem.Quality, thrusterInstance.SfxSource); + // } } transform.rotation = Ship.Rotation; diff --git a/Assets/Scripts/Gameplay/Weapons/GuidedProjectile.cs b/Assets/Scripts/Gameplay/Weapons/GuidedProjectile.cs index e03b2dc31..e5a90a61a 100644 --- a/Assets/Scripts/Gameplay/Weapons/GuidedProjectile.cs +++ b/Assets/Scripts/Gameplay/Weapons/GuidedProjectile.cs @@ -7,6 +7,7 @@ using static Unity.Mathematics.math; using static Unity.Mathematics.noise; using Random = UnityEngine.Random; using static Noise1D; +using float3 = Unity.Mathematics.float3; public class GuidedProjectile : MonoBehaviour { @@ -31,6 +32,8 @@ public class GuidedProjectile : MonoBehaviour private float _prevDist; private bool _active; private bool _alive; + private Vector3 _targetVelocity; + private Vector3 _previousTargetPosition; public Transform Target { get; set; } public float3 StartPosition { get; set; } @@ -42,6 +45,8 @@ public class GuidedProjectile : MonoBehaviour public DamageType DamageType { get; set; } public Entity SourceEntity { get; set; } + public event Action OnKill; + void OnEnable() { _active = _alive = true; @@ -67,12 +72,15 @@ public class GuidedProjectile : MonoBehaviour StartCoroutine(FadeOut()); return; } + var position = (float3) t.position; var targetPosition = TargetPosition?.Invoke() ?? Target.position; + _targetVelocity = lerp(_targetVelocity, targetPosition - _previousTargetPosition, saturate(Time.deltaTime * 5)); + _previousTargetPosition = targetPosition; + targetPosition = AetheriaMath.FirstOrderIntercept(position,float3.zero, TopSpeed, targetPosition, _targetVelocity); var diff = targetPosition - transform.position; var targetDist = diff.magnitude; - var position = (float3) t.position; var sourceDist = length(StartPosition.xz - position.xz); if (sourceDist > Range || dot(diff,Velocity) < 0) @@ -212,6 +220,7 @@ public class GuidedProjectile : MonoBehaviour { yield return null; } + OnKill?.Invoke(); GetComponent().ReturnToPool(); } } \ No newline at end of file diff --git a/Assets/Scripts/Gameplay/Weapons/GuidedProjectileManager.cs b/Assets/Scripts/Gameplay/Weapons/GuidedProjectileManager.cs index 988ab0227..14b18b1f9 100644 --- a/Assets/Scripts/Gameplay/Weapons/GuidedProjectileManager.cs +++ b/Assets/Scripts/Gameplay/Weapons/GuidedProjectileManager.cs @@ -1,5 +1,7 @@ -using System.Collections; +using System; +using System.Collections; using System.Collections.Generic; +using UniRx; using Unity.Mathematics; using UnityEngine; using static Unity.Mathematics.math; @@ -8,6 +10,8 @@ public class GuidedProjectileManager : InstantWeaponEffectManager { public Prototype ProjectilePrototype; + public Subject<(Entity source, Transform target, GuidedProjectile missile)> OnFireGuided = new Subject<(Entity source, Transform target, GuidedProjectile missile)>(); + public override void Fire(InstantWeapon weapon, EquippedItem item, EntityInstance source, EntityInstance target) { if(weapon.Data is LauncherData launcher) @@ -32,6 +36,7 @@ public class GuidedProjectileManager : InstantWeaponEffectManager p.Velocity = barrel.forward * weapon.Velocity; p.Thrust = item.Evaluate(launcher.Thrust); p.TopSpeed = item.Evaluate(launcher.MissileVelocity); + OnFireGuided.OnNext((source.Entity, target.transform, p)); } else if(weapon.Data is GuidedWeaponData guidance) { diff --git a/Assets/Scripts/Gameplay/Weapons/HitscanManager.cs b/Assets/Scripts/Gameplay/Weapons/HitscanManager.cs index 93af6cbcc..046b99434 100644 --- a/Assets/Scripts/Gameplay/Weapons/HitscanManager.cs +++ b/Assets/Scripts/Gameplay/Weapons/HitscanManager.cs @@ -1,3 +1,5 @@ +using UnityEngine; + public class HitscanManager : InstantWeaponEffectManager { public Prototype Prototype; @@ -8,8 +10,12 @@ public class HitscanManager : InstantWeaponEffectManager var hp = source.Entity.Hardpoints[item.Position.x, item.Position.y]; var barrel = source.GetBarrel(hp); var t = p.transform; - t.position = barrel.position; - t.forward = barrel.forward; + t.SetParent(barrel, false); + t.localRotation = Quaternion.identity; + t.localPosition = Vector3.zero; + // t.position = barrel.position; + // t.forward = barrel.forward; + p.Range = weapon.Range; p.Damage = weapon.Damage; p.Penetration = weapon.Penetration; p.Spread = weapon.DamageSpread; diff --git a/Assets/Scripts/ServerShared/Behaviors/InstantWeapon.cs b/Assets/Scripts/ServerShared/Behaviors/InstantWeapon.cs index 02f5a6bf8..2b727458c 100644 --- a/Assets/Scripts/ServerShared/Behaviors/InstantWeapon.cs +++ b/Assets/Scripts/ServerShared/Behaviors/InstantWeapon.cs @@ -178,8 +178,8 @@ public class InstantWeapon : Weapon, IProgressBehavior, IEventBehavior public override void Activate() { - if(CanFire) - Trigger(); - base.Activate(); + // if(CanFire) + // Trigger(); + // base.Activate(); } } \ No newline at end of file diff --git a/Assets/Scripts/ServerShared/Behaviors/VelocityLimit.cs b/Assets/Scripts/ServerShared/Behaviors/VelocityLimit.cs index e36700cdf..f0e6701d1 100644 --- a/Assets/Scripts/ServerShared/Behaviors/VelocityLimit.cs +++ b/Assets/Scripts/ServerShared/Behaviors/VelocityLimit.cs @@ -38,6 +38,7 @@ public class VelocityLimit : IBehavior _data = data; Entity = entity; Item = item; + Limit = Item.Evaluate(_data.TopSpeed); } public void Initialize() diff --git a/Assets/Scripts/ServerShared/Entity.cs b/Assets/Scripts/ServerShared/Entity.cs index 3efa186b9..df6fe6cca 100644 --- a/Assets/Scripts/ServerShared/Entity.cs +++ b/Assets/Scripts/ServerShared/Entity.cs @@ -135,8 +135,8 @@ public abstract class Entity if(behavior is IInitializableBehavior initializableBehavior) initializableBehavior.Initialize(); } - //foreach(var entity in Zone.Entities) EntityInfoGathered.Add(entity, 0); - _subscriptions.Add(Zone.Entities.ObserveAdd().Subscribe(add => EntityInfoGathered.Add(add.Value, 0))); + foreach(var entity in Zone.Entities) EntityInfoGathered[entity] = 0; + _subscriptions.Add(Zone.Entities.ObserveAdd().Subscribe(add => EntityInfoGathered[add.Value] = 0)); _subscriptions.Add(Zone.Entities.ObserveRemove().Subscribe(remove => { if (Target.Value == remove.Value) Target.Value = null; diff --git a/Assets/Scripts/ServerShared/ItemManager.cs b/Assets/Scripts/ServerShared/ItemManager.cs index 4952c2a37..cb09b4f50 100644 --- a/Assets/Scripts/ServerShared/ItemManager.cs +++ b/Assets/Scripts/ServerShared/ItemManager.cs @@ -166,7 +166,8 @@ public class ItemManager pow(item.Quality, GameplaySettings.DurabilityQualityExponent)); var durability = pow(item.Durability / data.Durability, durabilityExponent * stat.DurabilityExponentMultiplier); var result = lerp(stat.Min, stat.Max, quality * durability); - if (float.IsNaN(result)) throw new InvalidOperationException("Performance Stat evaluating as NaN: input data is invalid!"); + if (float.IsNaN(result)) + throw new InvalidOperationException($"Performance Stat on {data.Name} evaluating as NaN: input data is invalid! Durability: {item.Durability} / {data.Durability}"); return result; } @@ -211,6 +212,27 @@ public class ItemManager } return null; } + + public CraftedItemInstance CreateInstance(CraftedItemData item, float quality) + { + if (item is EquippableItemData equippableItemData) + { + var newGear = new EquippableItem + { + Data = item.ID, + Quality = quality + }; + newGear.Durability = equippableItemData.Durability; + return newGear; + } + + var newCommodity = new CompoundCommodity + { + Data = item.ID, + Quality = quality + }; + return newCommodity; + } public CraftedItemInstance CreateInstance(CraftedItemData item) { @@ -227,24 +249,8 @@ public class ItemManager if (t.Rarity > quality) tier = t; } - - if (item is EquippableItemData equippableItemData) - { - var newGear = new EquippableItem - { - Data = item.ID, - Quality = tier.Quality - }; - newGear.Durability = equippableItemData.Durability; - return newGear; - } - var newCommodity = new CompoundCommodity - { - Data = item.ID, - Quality = tier.Quality - }; - return newCommodity; + return CreateInstance(item, tier.Quality); } public (RarityTier tier, int upgrades) GetTier(CraftedItemInstance item) diff --git a/Assets/Scripts/ServerShared/LoadoutGenerator.cs b/Assets/Scripts/ServerShared/LoadoutGenerator.cs index 4104e9d20..6fc1d635e 100644 --- a/Assets/Scripts/ServerShared/LoadoutGenerator.cs +++ b/Assets/Scripts/ServerShared/LoadoutGenerator.cs @@ -99,7 +99,7 @@ public class LoadoutGenerator { return ItemManager.ItemData.GetAll() .Where(item => Sector.ContainsFaction(item.Manufacturer) && - (Faction == null || item.Manufacturer == Faction.ID || Faction.Allegiance.ContainsKey(item.Manufacturer)) && + (Faction == null || Faction.Allegiance.ContainsKey(item.Manufacturer)) && (filter?.Invoke(item) ?? true)) .WeightedRandomElements(ref Random, item => (Faction == null || item.Manufacturer == Faction.ID ? 1 : Faction.Allegiance[item.Manufacturer]) * // Prioritize items from allied manufacturers @@ -133,7 +133,8 @@ public class LoadoutGenerator { var controllerData = RandomItem(hardpoint, 2, item => item.Behaviors.Any(b => entity is Ship && b is CockpitData || entity is OrbitalEntity && b is TurretControllerData)); - if (controllerData == null) throw new InvalidLoadoutException("No compatible controller found for entity!"); + if (controllerData == null) + throw new InvalidLoadoutException("No compatible controller found for entity!"); var controller = ItemManager.CreateInstance(controllerData) as EquippableItem; if (!entity.TryEquip(controller)) { @@ -145,12 +146,16 @@ public class LoadoutGenerator // If a previously selected item fits, use that one (this is why we must process larger hardpoints first) var itemData = previousItems .FirstOrDefault(i => i.HardpointType == hardpoint.Type && i.Shape.FitsWithin(hardpoint.Shape, hardpoint.Rotation, out _)); + var previousItem = entity.Equipment.FirstOrDefault(item => item.Data == itemData); itemData ??= RandomItem(hardpoint, 2); if (itemData == null) ItemManager.Log($"No compatible item found for entity {Enum.GetName(typeof(HardpointType), hardpoint.Type)} hardpoint!"); else { //throw new InvalidLoadoutException($"No compatible item found for entity {Enum.GetName(typeof(HardpointType), hardpoint.Type)} hardpoint!"); - var item = ItemManager.CreateInstance(itemData) as EquippableItem; + EquippableItem item; + if(previousItem!=null) + item = ItemManager.CreateInstance(itemData, previousItem.EquippableItem.Quality) as EquippableItem; + else item = ItemManager.CreateInstance(itemData) as EquippableItem; if (!entity.TryEquip(item)) { throw new InvalidLoadoutException($"Failed to equip selected {Enum.GetName(typeof(HardpointType), hardpoint.Type)}!"); diff --git a/Assets/Scripts/ServerShared/Ship.cs b/Assets/Scripts/ServerShared/Ship.cs index 3d32ea3fe..7b8127e9f 100644 --- a/Assets/Scripts/ServerShared/Ship.cs +++ b/Assets/Scripts/ServerShared/Ship.cs @@ -78,6 +78,7 @@ public class Ship : Entity public void EnterWormhole(float2 wormholePosition) { + Target.Value = null; _wormholeAnimationProgress = 0; _enteringWormhole = true; _wormholeEntryPosition = Position.xz; diff --git a/Assets/Scripts/ServerShared/Zone.cs b/Assets/Scripts/ServerShared/Zone.cs index e637fafd3..a253ea99a 100644 --- a/Assets/Scripts/ServerShared/Zone.cs +++ b/Assets/Scripts/ServerShared/Zone.cs @@ -30,17 +30,22 @@ public class Zone private HashSet _updatedOrbits = new HashSet(); private ItemManager _itemManager; - private float _time; + private double _time; private Random _random; public List Agents = new List(); private List BeltUpdates = new List(); + public float Time + { + get => (float) _time; + } public ZonePack Pack { get; } public SectorZone SectorZone { get; } public Zone(ItemManager itemManager, PlanetSettings settings, ZonePack pack, SectorZone sectorZone) { + _time = pack.Time; SectorZone = sectorZone; Pack = pack; _itemManager = itemManager; @@ -102,7 +107,8 @@ public class Zone Mass = Pack.Mass, Entities = Entities.Select(EntitySerializer.Pack).ToList(), Orbits = Orbits.Values.Select(o=>o.Data).ToList(), - Planets = Planets.Values.ToList() + Planets = Planets.Values.ToList(), + Time = _time }; } @@ -111,9 +117,9 @@ public class Zone Orbits.Add(orbit.ID, new Orbit(Settings, orbit)); } - public void Update(float time, float deltaTime) + public void Update(float deltaTime) { - _time = time; + _time += deltaTime; _updatedOrbits.Clear(); foreach (var t in BeltUpdates) t.Wait(); @@ -228,10 +234,10 @@ public class Zone } else size = Settings.AsteroidSize.Evaluate(beltData.Asteroids[i].Size); - belt.NewRotations[i] = _time * beltData.Asteroids[i].RotationSpeed % (PI * 2); + belt.NewRotations[i] = (float) (_time * beltData.Asteroids[i].RotationSpeed % (PI * 2)); belt.NewScales[i] = size; - var pos = OrbitData.Evaluate(frac(_time / Settings.OrbitPeriod.Evaluate(beltData.Asteroids[i].Distance) + - beltData.Asteroids[i].Phase)) * beltData.Asteroids[i].Distance + orbitPosition; + var pos = OrbitData.Evaluate((float) frac(_time / Settings.OrbitPeriod.Evaluate(beltData.Asteroids[i].Distance) + + beltData.Asteroids[i].Phase)) * beltData.Asteroids[i].Distance + orbitPosition; belt.NewVelocities[i] = pos - belt.Positions[i].xz; belt.NewPositions[i] = float3(pos.x, GetHeight(pos), pos.y); } @@ -319,7 +325,7 @@ public class Zone var depth = gas.GravityWavesDepth.Value; var frequency = Settings.WaveFrequency.Evaluate(body.BodyData.Mass.Value); var speed = gas.GravityWavesSpeed.Value; - result -= RadialWaves(sqrt(distSqr) / waveRadius, 8, 1.25f, frequency, _time * speed) * depth; + result -= RadialWaves(sqrt(distSqr) / waveRadius, 8, 1.25f, frequency, (float) (_time * speed)) * depth; } } } diff --git a/Assets/Scripts/ServerShared/ZoneData.cs b/Assets/Scripts/ServerShared/ZoneData.cs index c76321563..c06046a01 100644 --- a/Assets/Scripts/ServerShared/ZoneData.cs +++ b/Assets/Scripts/ServerShared/ZoneData.cs @@ -30,6 +30,9 @@ public class ZonePack [JsonProperty("mass"), Key(4)] public float Mass = 10000; + + [JsonProperty("time"), Key(5)] + public double Time; } // [RethinkTable("Galaxy"), MessagePackObject, JsonObject(MemberSerialization.OptIn)] diff --git a/Assets/Scripts/ServerShared/ZoneGenerator.cs b/Assets/Scripts/ServerShared/ZoneGenerator.cs index a633de98e..f31151ef2 100644 --- a/Assets/Scripts/ServerShared/ZoneGenerator.cs +++ b/Assets/Scripts/ServerShared/ZoneGenerator.cs @@ -223,9 +223,9 @@ public static class ZoneGenerator var nearestFaction = sector.Factions.MinBy(f => sector.HomeZones[f].Distance[sectorZone]); var nearestFactionHomeZone = sector.HomeZones[nearestFaction]; - var factionPresence = nearestFaction.InfluenceDistance - nearestFactionHomeZone.Distance[sectorZone]; + var factionPresence = nearestFaction.InfluenceDistance - nearestFactionHomeZone.Distance[sectorZone] + 1; - var loadoutGenerator = new LoadoutGenerator(ref random, itemManager, sector, sectorZone, nearestFaction, 1); + var loadoutGenerator = new LoadoutGenerator(ref random, itemManager, sector, sectorZone, nearestFaction, .5f); for (int i = 0; i < factionPresence; i++) { pack.Entities.Add(loadoutGenerator.GenerateShipLoadout()); diff --git a/Assets/Scripts/UI/ConsoleView.cs b/Assets/Scripts/UI/ConsoleView.cs index bf7b522e0..a2b5b2f8c 100644 --- a/Assets/Scripts/UI/ConsoleView.cs +++ b/Assets/Scripts/UI/ConsoleView.cs @@ -13,12 +13,14 @@ using UnityEngine.InputSystem; public class ConsoleView : MonoBehaviour { bool _didShow = false; + public ActionGameManager GameManager; public GameObject ViewContainer; //Container for console view, should be a child of this GameObject public TextMeshProUGUI LogTextArea; public TextMeshProUGUI InputArea; public ScrollRect Scroll; private string _inputString = ""; + private CursorLockMode _previousCursorLockMode; public string InputString { @@ -110,7 +112,20 @@ public class ConsoleView : MonoBehaviour { ViewContainer.SetActive(visible); Visible = visible; if(visible) + { + GameManager.Input.Global.Disable(); + GameManager.Input.Player.Disable(); + GameManager.Input.UI.Disable(); + _previousCursorLockMode = Cursor.lockState; Cursor.lockState = CursorLockMode.None; + } + else + { + GameManager.Input.Global.Enable(); + GameManager.Input.Player.Enable(); + GameManager.Input.UI.Enable(); + Cursor.lockState = _previousCursorLockMode; + } } void OnVisibilityChanged(bool visible) { diff --git a/Assets/ItemFilter.cs b/Assets/Scripts/UI/ItemFilter.cs similarity index 100% rename from Assets/ItemFilter.cs rename to Assets/Scripts/UI/ItemFilter.cs diff --git a/Assets/ItemFilter.cs.meta b/Assets/Scripts/UI/ItemFilter.cs.meta similarity index 100% rename from Assets/ItemFilter.cs.meta rename to Assets/Scripts/UI/ItemFilter.cs.meta diff --git a/Assets/Scripts/UI/PropertiesPanel.cs b/Assets/Scripts/UI/PropertiesPanel.cs index 83d046ac7..fdc4cc252 100644 --- a/Assets/Scripts/UI/PropertiesPanel.cs +++ b/Assets/Scripts/UI/PropertiesPanel.cs @@ -377,28 +377,35 @@ public class PropertiesPanel : MonoBehaviour AddProperty("Thermal Mass", () => Context.GetThermalMass(item).SignificantDigits(Context.GameplaySettings.SignificantDigits)); if (item is EquippableItem gear) { - var tier = entity.ItemManager.GetTier(gear); + var (tier, upgrades) = entity.ItemManager.GetTier(gear); Title.text = - $"{data.Name} ({tier.tier.Name}{new string('+', tier.upgrades)})"; - var gearData = Context.GetData(gear); - AddProperty("Durability", () => - $"{gear.Durability.SignificantDigits(Context.GameplaySettings.SignificantDigits)}/{gearData.Durability.SignificantDigits(Context.GameplaySettings.SignificantDigits)}"); - foreach (var behavior in gearData.Behaviors) + $"{data.Name} ({tier.Name}{new string('+', upgrades)})"; + if (gear.Durability < .01f) { - var type = behavior.GetType(); - if (type.GetCustomAttribute(typeof(RuntimeInspectable)) != null) + AddProperty("Item destroyed!"); + } + else + { + var gearData = Context.GetData(gear); + AddProperty("Durability", () => + $"{gear.Durability.SignificantDigits(Context.GameplaySettings.SignificantDigits)}/{gearData.Durability.SignificantDigits(Context.GameplaySettings.SignificantDigits)}"); + foreach (var behavior in gearData.Behaviors) { - foreach (var field in type.GetFields().Where(f => f.GetCustomAttribute() != null)) + var type = behavior.GetType(); + if (type.GetCustomAttribute(typeof(RuntimeInspectable)) != null) { - var fieldType = field.FieldType; - if (fieldType == typeof(float)) - AddProperty(field.Name, () => $"{((float) field.GetValue(behavior)).SignificantDigits(Context.GameplaySettings.SignificantDigits)}"); - else if (fieldType == typeof(int)) - AddProperty(field.Name, () => $"{(int) field.GetValue(behavior)}"); - else if (fieldType == typeof(PerformanceStat)) + foreach (var field in type.GetFields().Where(f => f.GetCustomAttribute() != null)) { - var stat = (PerformanceStat) field.GetValue(behavior); - AddProperty(field.Name, () => $"{Context.Evaluate(stat, gear).SignificantDigits(Context.GameplaySettings.SignificantDigits)}"); + var fieldType = field.FieldType; + if (fieldType == typeof(float)) + AddProperty(field.Name, () => $"{((float) field.GetValue(behavior)).SignificantDigits(Context.GameplaySettings.SignificantDigits)}"); + else if (fieldType == typeof(int)) + AddProperty(field.Name, () => $"{(int) field.GetValue(behavior)}"); + else if (fieldType == typeof(PerformanceStat)) + { + var stat = (PerformanceStat) field.GetValue(behavior); + AddProperty(field.Name, () => $"{Context.Evaluate(stat, gear).SignificantDigits(Context.GameplaySettings.SignificantDigits)}"); + } } } } diff --git a/Assets/Scripts/UI/SectorMap.cs b/Assets/Scripts/UI/SectorMap.cs index 841c4551f..b0b87f1ec 100644 --- a/Assets/Scripts/UI/SectorMap.cs +++ b/Assets/Scripts/UI/SectorMap.cs @@ -35,9 +35,205 @@ public class SectorMap : MonoBehaviour public float IconDistance = 1; public float IconBackgroundSize = 3; public float LabelDistance = .4f; + public float LinkWidth; + public float CriticalLinkWidth; + public AnimationCurve IconScaleAnimation; - private Dictionary _factionMaterials = - new Dictionary(); + private HashSet _revealedZones = new HashSet(); + private HashSet<(SectorZone, SectorZone)> _revealedLinks = new HashSet<(SectorZone, SectorZone)>(); + + private Dictionary _factionMaterials = + new Dictionary(); + + private Dictionary _zoneInstances = new Dictionary(); + private Queue> _queuedZoneReveals = new Queue>(); + + public void QueueZoneReveal(IEnumerable zones) + { + _queuedZoneReveals.Enqueue(zones); + } + + public void StartReveal(float linkDuration, float iconDuration) + { + if (_queuedZoneReveals.Count > 0) + { + StartCoroutine(RevealZone(_queuedZoneReveals.Dequeue(), linkDuration, iconDuration)); + } + } + + public IEnumerator RevealZone(IEnumerable zones, float linkDuration, float iconDuration) + { + var linksToReveal = new List<(float2 start, float2 end, Transform linkInstance, bool critical)>(); + var zoneTransforms = new List(); + var zoneInstanceScale = ZonePrototype.transform.localScale; + + foreach (var zone in zones) + { + if (!_revealedZones.Contains(zone)) + { + var zoneInstance = ZonePrototype.Instantiate(); + _zoneInstances[zone] = zoneInstance; + var zoneInstanceTransform = zoneInstance.transform; + zoneTransforms.Add(zoneInstanceTransform); + zoneInstanceTransform.localPosition = new Vector3(zone.Position.x, zone.Position.y); + if(zone.Owner != null) + { + zoneInstance.Primary.sharedMaterial = _factionMaterials[zone.Owner].primaryMaterial; + zoneInstance.Secondary.sharedMaterial = _factionMaterials[zone.Owner].secondaryMaterial; + if(zone == ActionGameManager.CurrentSector.HomeZones[zone.Owner]) + zoneInstance.Secondary.transform.localScale = Vector3.one * 4; + } + else + { + zoneInstance.Secondary.gameObject.SetActive(false); + } + + var isOnCriticalPath = ActionGameManager.CurrentSector.ExitPath.Contains(zone); + foreach (var adjacentZone in zone.AdjacentZones) + { + // If the adjacent zone is in the set already revealed, then show the link + if (_revealedZones.Contains(adjacentZone) && + !(_revealedLinks.Contains((zone, adjacentZone)) || + _revealedLinks.Contains((adjacentZone, zone)))) + { + var link = LinkPrototype.Instantiate(); + var critical = isOnCriticalPath && ActionGameManager.CurrentSector.ExitPath.Contains(adjacentZone); + linksToReveal.Add((zone.Position, adjacentZone.Position, link, critical)); + if (zone.Owner != null && zone.Owner == adjacentZone.Owner) + link.GetComponent().sharedMaterial = _factionMaterials[zone.Owner].linkMaterial; + + var dir = normalize(zone.Position - adjacentZone.Position); + link.rotation = Quaternion.Euler(0,0,atan2(dir.y,dir.x) * Mathf.Rad2Deg); + + placeLink(zone.Position, adjacentZone.Position, link, 0, critical); + } + } + _revealedZones.Add(zone); + + // Determine center of mass for adjacent zone links, used for placement of label and icons + var linkDirection = normalize(zone.AdjacentZones + .Aggregate(float2.zero, (v, adjacentZone) => v + normalize(adjacentZone.Position - zone.Position))); + + var zoneText = zoneInstance.Label; + zoneText.text = zone.Name; + var zoneTextTransform = zoneText.GetComponent(); + zoneTextTransform.pivot = new Vector2(sign(linkDirection.x)/2+.5f,sign(linkDirection.y)/2+.5f); + zoneTextTransform.localPosition = new Vector3(-linkDirection.x * LabelDistance, -linkDirection.y * LabelDistance, -1); + + if (zone == ActionGameManager.CurrentSector.Entrance) + { + var iconInstance = IconPrototype.Instantiate(); + iconInstance.material.mainTexture = EntranceIcon; + var iconTransform = iconInstance.transform; + iconTransform.SetParent(zoneInstanceTransform); + iconTransform.localScale = Vector3.one; + iconTransform.localPosition = new Vector3(-linkDirection.x * IconDistance, -linkDirection.y * IconDistance); + } + + if (zone == ActionGameManager.CurrentSector.Exit) + { + var iconInstance = IconPrototype.Instantiate(); + iconInstance.material.mainTexture = ExitIcon; + var iconTransform = iconInstance.transform; + iconTransform.SetParent(zoneInstanceTransform); + iconTransform.localScale = Vector3.one; + iconTransform.localPosition = new Vector3(-linkDirection.x * IconDistance, -linkDirection.y * IconDistance); + } + + var homeMega = ActionGameManager.CurrentSector.HomeZones.Keys + .FirstOrDefault(m => ActionGameManager.CurrentSector.HomeZones[m] == zone); + if (homeMega != null) + { + var backgroundInstance = IconBackgroundPrototype.Instantiate(); + var iconInstance = IconPrototype.Instantiate(); + + backgroundInstance.material.SetColor("_Color", homeMega.SecondaryColor.ToColor()); + iconInstance.material.mainTexture = HomeIcon; + iconInstance.material.SetColor("_Color", homeMega.PrimaryColor.ToColor()); + + var backgroundTransform = backgroundInstance.transform; + var iconTransform = iconInstance.transform; + + backgroundTransform.SetParent(zoneInstanceTransform); + iconTransform.SetParent(zoneInstanceTransform); + + backgroundTransform.localScale = Vector3.one * IconBackgroundSize; + iconTransform.localScale = Vector3.one; + + backgroundTransform.localPosition = new Vector3(-linkDirection.x * IconDistance, -linkDirection.y * IconDistance, .5f); + iconTransform.localPosition = new Vector3(-linkDirection.x * IconDistance, -linkDirection.y * IconDistance); + } + + var bossMega = ActionGameManager.CurrentSector.BossZones.Keys + .FirstOrDefault(m => ActionGameManager.CurrentSector.BossZones[m] == zone); + if (bossMega != null) + { + var backgroundInstance = IconBackgroundPrototype.Instantiate(); + var iconInstance = IconPrototype.Instantiate(); + + backgroundInstance.material.SetColor("_Color", bossMega.SecondaryColor.ToColor()); + iconInstance.material.mainTexture = BossIcon; + iconInstance.material.SetColor("_Color", bossMega.PrimaryColor.ToColor()); + + var backgroundTransform = backgroundInstance.transform; + var iconTransform = iconInstance.transform; + + backgroundTransform.SetParent(zoneInstanceTransform); + iconTransform.SetParent(zoneInstanceTransform); + + backgroundTransform.localScale = Vector3.one * IconBackgroundSize; + iconTransform.localScale = Vector3.one; + + if (homeMega != null) + { + backgroundTransform.localPosition = new Vector3(linkDirection.x * IconDistance, linkDirection.y * IconDistance, .5f); + iconTransform.localPosition = new Vector3(linkDirection.x * IconDistance, linkDirection.y * IconDistance); + } + else + { + backgroundTransform.localPosition = new Vector3(-linkDirection.x * IconDistance, -linkDirection.y * IconDistance, .5f); + iconTransform.localPosition = new Vector3(-linkDirection.x * IconDistance, -linkDirection.y * IconDistance); + } + } + } + } + foreach (var tr in zoneTransforms) tr.gameObject.SetActive(false); + + // Local function for animating the placement of a link + void placeLink(float2 start, float2 end, Transform link, float t, bool critical) + { + var pos = lerp(start, end, t / 2); + link.localPosition = new Vector3(pos.x, pos.y); + + var localScale = link.localScale; + localScale = new Vector3(length(start - end)*t, critical ? CriticalLinkWidth : LinkWidth, 1); + link.localScale = localScale; + } + + var startTime = Time.time; + while (Time.time - startTime < linkDuration) + { + var t = (Time.time - startTime) / linkDuration; + foreach (var (start, end, link, critical) in linksToReveal) placeLink(end, start, link, t, critical); + + yield return null; + } + foreach (var (start, end, link, critical) in linksToReveal) placeLink(start, end, link, 1, critical); + + foreach (var tr in zoneTransforms) tr.gameObject.SetActive(true); + startTime = Time.time; + while (Time.time - startTime < iconDuration) + { + var t = (Time.time - startTime) / iconDuration; + foreach (var tr in zoneTransforms) tr.localScale = zoneInstanceScale * IconScaleAnimation.Evaluate(t); + RenderInfluence(); + + yield return null; + } + foreach (var tr in zoneTransforms) tr.localScale = zoneInstanceScale; + + StartReveal(linkDuration, iconDuration); + } public void Start() { @@ -48,171 +244,31 @@ public class SectorMap : MonoBehaviour } foreach (var mega in ActionGameManager.CurrentSector.Factions) { + var influenceTexture = new RenderTexture(1024, 1024, 0, RenderTextureFormat.RHalf); + var influenceRenderer = InfluenceRendererPrototype.Instantiate(); + + influenceRenderer.material.mainTexture = influenceTexture; + influenceRenderer.material.SetColor("_Color1", mega.PrimaryColor.ToColor()); + influenceRenderer.material.SetColor("_Color2", mega.SecondaryColor.ToColor()); + influenceRenderer.material.SetFloat("_FillTilt", Random.value * PI); + var primary = Instantiate(ZonePrimaryMaterial); primary.SetColor("_Color", (mega.PrimaryColor * MegaPrimaryBoost).ToColor()); + var secondary = Instantiate(ZoneSecondaryMaterial); secondary.SetColor("_Color", (mega.SecondaryColor * MegaSecondaryBoost).ToColor()); + var link = Instantiate(ZoneLinkMaterial); link.SetColor("_Color", (mega.PrimaryColor * MegaLinkBoost).ToColor()); - _factionMaterials.Add(mega, (new RenderTexture(1024, 1024, 0, RenderTextureFormat.RHalf), primary, secondary, link)); + + _factionMaterials.Add(mega, (influenceRenderer, influenceTexture, primary, secondary, link)); + var legendElement = LegendPrototype.Instantiate(); legendElement.Primary.color = mega.PrimaryColor.ToColor(); legendElement.Secondary.color = mega.SecondaryColor.ToColor(); legendElement.Label.text = mega.ShortName; } - var visitedZones = new HashSet(); - //Debug.Log($"Found {sector.Zones.Count(z=>!z.AdjacentZones.Any())} orphaned zones!"); - - var zoneInstances = new Dictionary(); - foreach (var zone in ActionGameManager.CurrentSector.Zones) - { - var zoneInstance = ZonePrototype.Instantiate(); - zoneInstances[zone] = zoneInstance; - var zoneInstanceTransform = zoneInstance.transform; - zoneInstanceTransform.localPosition = new Vector3(zone.Position.x, zone.Position.y); - if(zone.Owner != null) - { - zoneInstance.Primary.sharedMaterial = _factionMaterials[zone.Owner].primaryMaterial; - zoneInstance.Secondary.sharedMaterial = _factionMaterials[zone.Owner].secondaryMaterial; - } - //zoneInstance.Background.transform.localScale = Vector3.one * (sector.HomeZones.Values.Any(os=>os==zone) ? 4 : 2); - var linkDirection = float2.zero; - foreach (var link in zone.AdjacentZones) - { - linkDirection += normalize(link.Position - zone.Position); - if (!visitedZones.Contains(link)) - { - var linkInstance = LinkPrototype.Instantiate(); - var pos = (zone.Position + link.Position) / 2; - linkInstance.localPosition = new Vector3(pos.x, pos.y); - if (zone.Owner != null && zone.Owner == link.Owner) - linkInstance.GetComponent().sharedMaterial = _factionMaterials[zone.Owner].linkMaterial; - - var localScale = linkInstance.localScale; - localScale = new Vector3(length(zone.Position - link.Position), localScale.y, localScale.z); - linkInstance.localScale = localScale; - - var dir = normalize(zone.Position - link.Position); - linkInstance.rotation = Quaternion.Euler(0,0,atan2(dir.y,dir.x) * Mathf.Rad2Deg); - } - } - - linkDirection = normalize(linkDirection); - var zoneText = zoneInstance.Label; - zoneText.text = zone.Name; - var zoneTextTransform = zoneText.GetComponent(); - zoneTextTransform.pivot = new Vector2(sign(linkDirection.x)/2+.5f,sign(linkDirection.y)/2+.5f); - zoneTextTransform.localPosition = new Vector3(-linkDirection.x * LabelDistance, -linkDirection.y * LabelDistance, -1); - visitedZones.Add(zone); - - if (zone == ActionGameManager.CurrentSector.Entrance) - { - var iconInstance = IconPrototype.Instantiate(); - iconInstance.material.mainTexture = EntranceIcon; - var iconTransform = iconInstance.transform; - iconTransform.SetParent(zoneInstanceTransform); - iconTransform.localScale = Vector3.one; - iconTransform.localPosition = new Vector3(-linkDirection.x * IconDistance, -linkDirection.y * IconDistance); - } - - if (zone == ActionGameManager.CurrentSector.Exit) - { - var iconInstance = IconPrototype.Instantiate(); - iconInstance.material.mainTexture = ExitIcon; - var iconTransform = iconInstance.transform; - iconTransform.SetParent(zoneInstanceTransform); - iconTransform.localScale = Vector3.one; - iconTransform.localPosition = new Vector3(-linkDirection.x * IconDistance, -linkDirection.y * IconDistance); - } - - var homeMega = ActionGameManager.CurrentSector.HomeZones.Keys - .FirstOrDefault(m => ActionGameManager.CurrentSector.HomeZones[m] == zone); - if (homeMega != null) - { - var backgroundInstance = IconBackgroundPrototype.Instantiate(); - var iconInstance = IconPrototype.Instantiate(); - - backgroundInstance.material.SetColor("_Color", homeMega.SecondaryColor.ToColor()); - iconInstance.material.mainTexture = HomeIcon; - iconInstance.material.SetColor("_Color", homeMega.PrimaryColor.ToColor()); - - var backgroundTransform = backgroundInstance.transform; - var iconTransform = iconInstance.transform; - - backgroundTransform.SetParent(zoneInstanceTransform); - iconTransform.SetParent(zoneInstanceTransform); - - backgroundTransform.localScale = Vector3.one * IconBackgroundSize; - iconTransform.localScale = Vector3.one; - - backgroundTransform.localPosition = new Vector3(-linkDirection.x * IconDistance, -linkDirection.y * IconDistance, .5f); - iconTransform.localPosition = new Vector3(-linkDirection.x * IconDistance, -linkDirection.y * IconDistance); - } - - var bossMega = ActionGameManager.CurrentSector.BossZones.Keys - .FirstOrDefault(m => ActionGameManager.CurrentSector.BossZones[m] == zone); - if (bossMega != null) - { - var backgroundInstance = IconBackgroundPrototype.Instantiate(); - var iconInstance = IconPrototype.Instantiate(); - - backgroundInstance.material.SetColor("_Color", bossMega.SecondaryColor.ToColor()); - iconInstance.material.mainTexture = BossIcon; - iconInstance.material.SetColor("_Color", bossMega.PrimaryColor.ToColor()); - - var backgroundTransform = backgroundInstance.transform; - var iconTransform = iconInstance.transform; - - backgroundTransform.SetParent(zoneInstanceTransform); - iconTransform.SetParent(zoneInstanceTransform); - - backgroundTransform.localScale = Vector3.one * IconBackgroundSize; - iconTransform.localScale = Vector3.one; - - if (homeMega != null) - { - backgroundTransform.localPosition = new Vector3(linkDirection.x * IconDistance, linkDirection.y * IconDistance, .5f); - iconTransform.localPosition = new Vector3(linkDirection.x * IconDistance, linkDirection.y * IconDistance); - } - else - { - backgroundTransform.localPosition = new Vector3(-linkDirection.x * IconDistance, -linkDirection.y * IconDistance, .5f); - iconTransform.localPosition = new Vector3(-linkDirection.x * IconDistance, -linkDirection.y * IconDistance); - } - } - } - - // Render Influence Textures - foreach (var mega in ActionGameManager.CurrentSector.Factions) - { - var influenceRenderer = InfluenceRendererPrototype.Instantiate(); - foreach (var zone in ActionGameManager.CurrentSector.Zones) - { - var instance = zoneInstances[zone]; - var influence = 0f; - if (zone.Factions.Length > 0) - { - if (zone.Factions.Contains(mega)) - { - influence = 10; - if (zone.Owner != mega) - influence *= .5f; - } - else influence = -10; - } - instance.Influence.material.SetFloat("_Depth", influence); - } - - InfluenceCamera.targetTexture = _factionMaterials[mega].influence; - InfluenceCamera.Render(); - - influenceRenderer.material.mainTexture = _factionMaterials[mega].influence; - influenceRenderer.material.SetColor("_Color1", mega.PrimaryColor.ToColor()); - influenceRenderer.material.SetColor("_Color2", mega.SecondaryColor.ToColor()); - influenceRenderer.material.SetFloat("_FillTilt", Random.value * PI); - } - SectorRenderer.material.SetFloat("CloudAmplitude", ActionGameManager.CurrentSector.Settings.CloudAmplitude); SectorRenderer.material.SetFloat("CloudExponent", ActionGameManager.CurrentSector.Settings.CloudExponent); SectorRenderer.material.SetFloat("NoisePosition", ActionGameManager.CurrentSector.Settings.NoisePosition); @@ -222,4 +278,35 @@ public class SectorMap : MonoBehaviour SectorRenderer.material.SetFloat("NoiseLacunarity", ActionGameManager.CurrentSector.Settings.NoiseLacunarity); SectorRenderer.material.SetFloat("NoiseFrequency", ActionGameManager.CurrentSector.Settings.NoiseFrequency); } + + private void RenderInfluence() + { + // Render Influence Textures + foreach (var mega in ActionGameManager.CurrentSector.Factions) + { + foreach (var zone in ActionGameManager.CurrentSector.Zones) + { + if(_zoneInstances.ContainsKey(zone)) + { + var instance = _zoneInstances[zone]; + var influence = 0f; + if (zone.Factions.Length > 0) + { + if (zone.Factions.Contains(mega)) + { + influence = 10; + if (zone.Owner != mega) + influence *= .5f; + } + else influence = -10; + } + + instance.Influence.material.SetFloat("_Depth", influence); + } + } + + InfluenceCamera.targetTexture = _factionMaterials[mega].influence; + InfluenceCamera.Render(); + } + } } diff --git a/Assets/SectorRenderer.cs b/Assets/Scripts/UI/SectorRenderer.cs similarity index 64% rename from Assets/SectorRenderer.cs rename to Assets/Scripts/UI/SectorRenderer.cs index 55daa982f..830c3755a 100644 --- a/Assets/SectorRenderer.cs +++ b/Assets/Scripts/UI/SectorRenderer.cs @@ -1,5 +1,6 @@ using System.Collections; using System.Collections.Generic; +using System.Linq; using UnityEngine; using UnityEngine.EventSystems; using UnityEngine.UI; @@ -9,12 +10,22 @@ using float2 = Unity.Mathematics.float2; public class SectorRenderer : MonoBehaviour, IBeginDragHandler, IDragHandler, IScrollHandler { + public Canvas Canvas; + public SectorMap Map; public ActionGameManager GameManager; + public Camera MainCamera; public Camera SectorCamera; public MeshRenderer SectorBackgroundRenderer; public float ZoomSpeed; public float MinViewSize = .1f; public float MaxViewSize = 2; + public Button PathAnimationButton; + public float PathAnimationDamping; + public float PathAnimationDuration; + public float PathAnimationDurationPadding = 1.1f; + public GameObject LegendPanel; + public float LinkAnimationDuration; + public float IconAnimationDuration; private float2 _startMousePosition; private float2 _startMapPosition; @@ -40,6 +51,45 @@ public class SectorRenderer : MonoBehaviour, IBeginDragHandler, IDragHandler, IS _sectorBackgroundDepth = _sectorBackgroundTransform.position.z; _sectorCameraTransform = SectorCamera.transform; _sectorCameraDepth = _sectorCameraTransform.position.z; + PathAnimationButton.onClick.AddListener(() => + { + Map.StartCoroutine(AnimatePath()); + }); + } + + private IEnumerator AnimatePath() + { + var pathZones = ActionGameManager.CurrentSector.ExitPath; + LegendPanel.SetActive(false); + PathAnimationButton.gameObject.SetActive(false); + foreach (var zones in ActionGameManager.CurrentSector.Zones + .GroupBy(z=>z.Distance[ActionGameManager.CurrentSector.Entrance]) + .OrderBy(g=>g.Key)) + { + Map.QueueZoneReveal(zones); + } + + var revealCount = ActionGameManager.CurrentSector.Entrance.Distance[ActionGameManager.CurrentSector.Exit]; + Map.StartReveal( + PathAnimationDuration / revealCount * (LinkAnimationDuration / (IconAnimationDuration + LinkAnimationDuration)), + PathAnimationDuration / revealCount * (IconAnimationDuration / (IconAnimationDuration + LinkAnimationDuration))); + MainCamera.enabled = false; + SectorCamera.targetTexture = null; + Canvas.gameObject.SetActive(false); + SectorCamera.gameObject.SetActive(true); + + var pathAnimationLerp = 0f; + while (pathAnimationLerp < 1) + { + var currentTargetZone = pathZones[(int) (pathZones.Length * pathAnimationLerp)]; + _position = lerp(_position, currentTargetZone.Position, PathAnimationDamping); + pathAnimationLerp += Time.deltaTime / (PathAnimationDuration * PathAnimationDurationPadding); + UpdateCamera(); + yield return null; + } + + LegendPanel.SetActive(true); + PathAnimationButton.gameObject.SetActive(true); } private void OnEnable() @@ -48,6 +98,8 @@ public class SectorRenderer : MonoBehaviour, IBeginDragHandler, IDragHandler, IS SectorCamera.gameObject.SetActive(true); _position = GameManager.Zone.SectorZone.Position; _viewSize = .25f; + + Map.StartReveal(LinkAnimationDuration, IconAnimationDuration); } private void OnDisable() @@ -76,6 +128,11 @@ public class SectorRenderer : MonoBehaviour, IBeginDragHandler, IDragHandler, IS _outputImage.material.SetTexture("_DetailTex", _outputTexture); } + UpdateCamera(); + } + + void UpdateCamera() + { var halfSize = _viewSize / 2; var bounds = float4( _position.x - _aspectRatio * halfSize, diff --git a/Assets/SectorRenderer.cs.meta b/Assets/Scripts/UI/SectorRenderer.cs.meta similarity index 100% rename from Assets/SectorRenderer.cs.meta rename to Assets/Scripts/UI/SectorRenderer.cs.meta diff --git a/Assets/Scripts/UI/TradeMenu.cs b/Assets/Scripts/UI/TradeMenu.cs index 5aedc2076..19d2a084d 100644 --- a/Assets/Scripts/UI/TradeMenu.cs +++ b/Assets/Scripts/UI/TradeMenu.cs @@ -34,6 +34,7 @@ public class TradeMenu : MonoBehaviour private void OnEnable() { + if (GameManager.DockedEntity == null) return; _targetCargo = GameManager.DockingBay; TargetCargoLabel.text = "Docking Bay"; Properties.Context = GameManager.ItemManager; diff --git a/Assets/Scripts/Sector Display.meta b/Assets/Scripts/Zone Display.meta similarity index 100% rename from Assets/Scripts/Sector Display.meta rename to Assets/Scripts/Zone Display.meta diff --git a/Assets/Scripts/Sector Display/BlueNoiseProvider.cs b/Assets/Scripts/Zone Display/BlueNoiseProvider.cs similarity index 100% rename from Assets/Scripts/Sector Display/BlueNoiseProvider.cs rename to Assets/Scripts/Zone Display/BlueNoiseProvider.cs diff --git a/Assets/Scripts/Sector Display/BlueNoiseProvider.cs.meta b/Assets/Scripts/Zone Display/BlueNoiseProvider.cs.meta similarity index 100% rename from Assets/Scripts/Sector Display/BlueNoiseProvider.cs.meta rename to Assets/Scripts/Zone Display/BlueNoiseProvider.cs.meta diff --git a/Assets/Scripts/Sector Display/CopyTransform.cs b/Assets/Scripts/Zone Display/CopyTransform.cs similarity index 100% rename from Assets/Scripts/Sector Display/CopyTransform.cs rename to Assets/Scripts/Zone Display/CopyTransform.cs diff --git a/Assets/Scripts/Sector Display/CopyTransform.cs.meta b/Assets/Scripts/Zone Display/CopyTransform.cs.meta similarity index 100% rename from Assets/Scripts/Sector Display/CopyTransform.cs.meta rename to Assets/Scripts/Zone Display/CopyTransform.cs.meta diff --git a/Assets/Scripts/Sector Display/GasGiantObject.cs b/Assets/Scripts/Zone Display/GasGiantObject.cs similarity index 100% rename from Assets/Scripts/Sector Display/GasGiantObject.cs rename to Assets/Scripts/Zone Display/GasGiantObject.cs diff --git a/Assets/Scripts/Sector Display/GasGiantObject.cs.meta b/Assets/Scripts/Zone Display/GasGiantObject.cs.meta similarity index 100% rename from Assets/Scripts/Sector Display/GasGiantObject.cs.meta rename to Assets/Scripts/Zone Display/GasGiantObject.cs.meta diff --git a/Assets/Scripts/Sector Display/GradientMapper.cs b/Assets/Scripts/Zone Display/GradientMapper.cs similarity index 100% rename from Assets/Scripts/Sector Display/GradientMapper.cs rename to Assets/Scripts/Zone Display/GradientMapper.cs diff --git a/Assets/Scripts/Sector Display/GradientMapper.cs.meta b/Assets/Scripts/Zone Display/GradientMapper.cs.meta similarity index 100% rename from Assets/Scripts/Sector Display/GradientMapper.cs.meta rename to Assets/Scripts/Zone Display/GradientMapper.cs.meta diff --git a/Assets/Scripts/Sector Display/GravityObject.cs b/Assets/Scripts/Zone Display/GravityObject.cs similarity index 100% rename from Assets/Scripts/Sector Display/GravityObject.cs rename to Assets/Scripts/Zone Display/GravityObject.cs diff --git a/Assets/Scripts/Sector Display/GravityObject.cs.meta b/Assets/Scripts/Zone Display/GravityObject.cs.meta similarity index 100% rename from Assets/Scripts/Sector Display/GravityObject.cs.meta rename to Assets/Scripts/Zone Display/GravityObject.cs.meta diff --git a/Assets/Scripts/Sector Display/MapView.cs b/Assets/Scripts/Zone Display/MapView.cs similarity index 100% rename from Assets/Scripts/Sector Display/MapView.cs rename to Assets/Scripts/Zone Display/MapView.cs diff --git a/Assets/Scripts/Sector Display/MapView.cs.meta b/Assets/Scripts/Zone Display/MapView.cs.meta similarity index 100% rename from Assets/Scripts/Sector Display/MapView.cs.meta rename to Assets/Scripts/Zone Display/MapView.cs.meta diff --git a/Assets/Scripts/Sector Display/PlanetObject.cs b/Assets/Scripts/Zone Display/PlanetObject.cs similarity index 100% rename from Assets/Scripts/Sector Display/PlanetObject.cs rename to Assets/Scripts/Zone Display/PlanetObject.cs diff --git a/Assets/Scripts/Sector Display/PlanetObject.cs.meta b/Assets/Scripts/Zone Display/PlanetObject.cs.meta similarity index 100% rename from Assets/Scripts/Sector Display/PlanetObject.cs.meta rename to Assets/Scripts/Zone Display/PlanetObject.cs.meta diff --git a/Assets/Scripts/Sector Display/SnapToGrid.cs b/Assets/Scripts/Zone Display/SnapToGrid.cs similarity index 100% rename from Assets/Scripts/Sector Display/SnapToGrid.cs rename to Assets/Scripts/Zone Display/SnapToGrid.cs diff --git a/Assets/Scripts/Sector Display/SnapToGrid.cs.meta b/Assets/Scripts/Zone Display/SnapToGrid.cs.meta similarity index 100% rename from Assets/Scripts/Sector Display/SnapToGrid.cs.meta rename to Assets/Scripts/Zone Display/SnapToGrid.cs.meta diff --git a/Assets/Scripts/Sector Display/SunMaterial.cs b/Assets/Scripts/Zone Display/SunMaterial.cs similarity index 100% rename from Assets/Scripts/Sector Display/SunMaterial.cs rename to Assets/Scripts/Zone Display/SunMaterial.cs diff --git a/Assets/Scripts/Sector Display/SunMaterial.cs.meta b/Assets/Scripts/Zone Display/SunMaterial.cs.meta similarity index 100% rename from Assets/Scripts/Sector Display/SunMaterial.cs.meta rename to Assets/Scripts/Zone Display/SunMaterial.cs.meta diff --git a/Assets/Scripts/Sector Display/SunObject.cs b/Assets/Scripts/Zone Display/SunObject.cs similarity index 100% rename from Assets/Scripts/Sector Display/SunObject.cs rename to Assets/Scripts/Zone Display/SunObject.cs diff --git a/Assets/Scripts/Sector Display/SunObject.cs.meta b/Assets/Scripts/Zone Display/SunObject.cs.meta similarity index 100% rename from Assets/Scripts/Sector Display/SunObject.cs.meta rename to Assets/Scripts/Zone Display/SunObject.cs.meta diff --git a/Assets/Scripts/Sector Display/VolumeSampling.cs b/Assets/Scripts/Zone Display/VolumeSampling.cs similarity index 98% rename from Assets/Scripts/Sector Display/VolumeSampling.cs rename to Assets/Scripts/Zone Display/VolumeSampling.cs index 71b8dd85c..706919fda 100644 --- a/Assets/Scripts/Sector Display/VolumeSampling.cs +++ b/Assets/Scripts/Zone Display/VolumeSampling.cs @@ -41,7 +41,7 @@ public class VolumeSampling : MonoBehaviour // Shader needs to know the position and scale of cameras used to render input textures if(GridTransform != null) - _volMaterial.SetVector("_GridTransform", new Vector4(GridTransform.position.x,GridTransform.position.z,GridTransform.localScale.x*4)); + _volMaterial.SetVector("_GridTransform", new Vector4(GridTransform.position.x,GridTransform.position.z,GridTransform.localScale.x)); Graphics.Blit( source, destination, _volMaterial, 0 ); } diff --git a/Assets/Scripts/Sector Display/VolumeSampling.cs.meta b/Assets/Scripts/Zone Display/VolumeSampling.cs.meta similarity index 100% rename from Assets/Scripts/Sector Display/VolumeSampling.cs.meta rename to Assets/Scripts/Zone Display/VolumeSampling.cs.meta diff --git a/Assets/Scripts/Sector Display/WaveScroll.cs b/Assets/Scripts/Zone Display/WaveScroll.cs similarity index 100% rename from Assets/Scripts/Sector Display/WaveScroll.cs rename to Assets/Scripts/Zone Display/WaveScroll.cs diff --git a/Assets/Scripts/Sector Display/WaveScroll.cs.meta b/Assets/Scripts/Zone Display/WaveScroll.cs.meta similarity index 100% rename from Assets/Scripts/Sector Display/WaveScroll.cs.meta rename to Assets/Scripts/Zone Display/WaveScroll.cs.meta diff --git a/Assets/Scripts/Sector Display/ZoneRenderer.cs b/Assets/Scripts/Zone Display/ZoneRenderer.cs similarity index 98% rename from Assets/Scripts/Sector Display/ZoneRenderer.cs rename to Assets/Scripts/Zone Display/ZoneRenderer.cs index 24b204c8e..17b0cb6ba 100644 --- a/Assets/Scripts/Sector Display/ZoneRenderer.cs +++ b/Assets/Scripts/Zone Display/ZoneRenderer.cs @@ -20,7 +20,6 @@ public class ZoneRenderer : MonoBehaviour { public Transform WormholePrefab; public float EntityFadeTime; - public Transform EffectManagerParent; public Transform FogCameraParent; public GameSettings Settings; public Transform ZoneRoot; @@ -36,6 +35,8 @@ public class ZoneRenderer : MonoBehaviour public int AsteroidSpritesheetWidth = 4; public int AsteroidSpritesheetHeight = 4; public LODHandler LODHandler; + public Slime SlimeRenderer; + public Camera SlimeGravityCamera; [Header("Tour")] public bool Tour; @@ -88,6 +89,7 @@ public class ZoneRenderer : MonoBehaviour get => _perspectiveEntity; set { + //if (_perspectiveEntity == value) return; _perspectiveEntity = value; _perspectiveSubscriptions[0]?.Dispose(); _perspectiveSubscriptions[1]?.Dispose(); @@ -112,8 +114,6 @@ public class ZoneRenderer : MonoBehaviour } } - public float GameTime { get; set; } - public float ViewDistance { set @@ -139,7 +139,6 @@ public class ZoneRenderer : MonoBehaviour void Start() { - EntityInstance.EffectManagerParent = EffectManagerParent; ViewDistance = Settings.DefaultViewDistance; MinimapDistance = Settings.MinimapZoomLevels[Settings.DefaultMinimapZoom]; @@ -153,6 +152,8 @@ public class ZoneRenderer : MonoBehaviour _maxDepth = 0; Zone = zone; SectorBrushes.localScale = zone.Pack.Radius * 2 * Vector3.one; + SlimeGravityCamera.orthographicSize = zone.Pack.Radius; + SlimeRenderer.ZoneRadius = zone.Pack.Radius; foreach(var p in zone.Planets.Values) LoadPlanet(p); @@ -440,7 +441,7 @@ public class ZoneRenderer : MonoBehaviour planet.Value.Body.transform.localPosition = new Vector3(0, Zone.GetHeight(p) + planetInstance.BodyRadius.Value * 2, 0); if(planet.Value is GasGiantObject gasGiantObject) { - gasGiantObject.GravityWaves.material.SetFloat("_Phase", GameTime * ((GasGiant) Zone.PlanetInstances[planet.Key]).GravityWavesSpeed.Value); + gasGiantObject.GravityWaves.material.SetFloat("_Phase", Zone.Time * ((GasGiant) Zone.PlanetInstances[planet.Key]).GravityWavesSpeed.Value); if(!(planet.Value is SunObject)) { var toParent = normalize(Zone.GetOrbitPosition(Zone.Orbits[planetInstance.BodyData.Orbit].Data.Parent) - p); diff --git a/Assets/Scripts/Sector Display/ZoneRenderer.cs.meta b/Assets/Scripts/Zone Display/ZoneRenderer.cs.meta similarity index 100% rename from Assets/Scripts/Sector Display/ZoneRenderer.cs.meta rename to Assets/Scripts/Zone Display/ZoneRenderer.cs.meta diff --git a/Assets/Shaders/Compute/Slime.meta b/Assets/Shaders/Compute/Slime.meta new file mode 100644 index 000000000..09a506a93 --- /dev/null +++ b/Assets/Shaders/Compute/Slime.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c4f8746e2c2a794408521ecd19539f1c +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Shaders/Compute/Slime/RenderAccumulation.shader b/Assets/Shaders/Compute/Slime/RenderAccumulation.shader new file mode 100644 index 000000000..8862a8fd5 --- /dev/null +++ b/Assets/Shaders/Compute/Slime/RenderAccumulation.shader @@ -0,0 +1,54 @@ +Shader "Unlit/RenderAccumulation" +{ + Properties + { + _MainTex ("Texture", 2D) = "white" {} + } + SubShader + { + Tags { "Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent" "PreviewType"="Plane" } + Blend One One + ColorMask RGB + Cull Off Lighting Off ZWrite Off + + Pass + { + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + + #include "UnityCG.cginc" + + struct appdata + { + float4 vertex : POSITION; + float2 uv : TEXCOORD0; + }; + + struct v2f + { + float2 uv : TEXCOORD0; + float4 vertex : SV_POSITION; + }; + + sampler2D _MainTex; + float4 _MainTex_ST; + + v2f vert (appdata v) + { + v2f o; + o.vertex = UnityObjectToClipPos(v.vertex); + o.uv = TRANSFORM_TEX(v.uv, _MainTex); + return o; + } + + fixed4 frag (v2f i) : SV_Target + { + // sample the texture + float x = tex2D(_MainTex, i.uv).r; + return float4(x,x,x,1); + } + ENDCG + } + } +} diff --git a/Assets/Shaders/Compute/Slime/RenderAccumulation.shader.meta b/Assets/Shaders/Compute/Slime/RenderAccumulation.shader.meta new file mode 100644 index 000000000..76da2ec84 --- /dev/null +++ b/Assets/Shaders/Compute/Slime/RenderAccumulation.shader.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 1775d5166e85428488b54c358301ec7b +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + preprocessorOverride: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Shaders/Compute/Slime/Slime Accumulation.mat b/Assets/Shaders/Compute/Slime/Slime Accumulation.mat new file mode 100644 index 000000000..6721cb760 --- /dev/null +++ b/Assets/Shaders/Compute/Slime/Slime Accumulation.mat @@ -0,0 +1,97 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Slime Accumulation + m_Shader: {fileID: 4800000, guid: 1775d5166e85428488b54c358301ec7b, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 0 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _BlendOp: 0 + - _BumpScale: 1 + - _CameraFadingEnabled: 0 + - _CameraFarFadeDistance: 2 + - _CameraNearFadeDistance: 1 + - _ColorMode: 0 + - _Cull: 2 + - _Cutoff: 0.5 + - _DetailNormalMapScale: 1 + - _DistortionBlend: 0.5 + - _DistortionEnabled: 0 + - _DistortionStrength: 1 + - _DistortionStrengthScaled: 0 + - _DstBlend: 0 + - _EmissionEnabled: 0 + - _FlipbookMode: 0 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossyReflections: 1 + - _LightingEnabled: 0 + - _Metallic: 0 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _SmoothnessTextureChannel: 0 + - _SoftParticlesEnabled: 0 + - _SoftParticlesFarFadeDistance: 1 + - _SoftParticlesNearFadeDistance: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _UVSec: 0 + - _ZWrite: 1 + m_Colors: + - _CameraFadeParams: {r: 0, g: Infinity, b: 0, a: 0} + - _Color: {r: 1, g: 1, b: 1, a: 1} + - _ColorAddSubDiff: {r: 0, g: 0, b: 0, a: 0} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0} + m_BuildTextureStacks: [] diff --git a/Assets/Shaders/Compute/Slime/Slime Accumulation.mat.meta b/Assets/Shaders/Compute/Slime/Slime Accumulation.mat.meta new file mode 100644 index 000000000..b4260af36 --- /dev/null +++ b/Assets/Shaders/Compute/Slime/Slime Accumulation.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 817815ac1f000054ab738bb243cd7dba +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Shaders/Compute/Slime/Slime.compute b/Assets/Shaders/Compute/Slime/Slime.compute new file mode 100644 index 000000000..03736a85d --- /dev/null +++ b/Assets/Shaders/Compute/Slime/Slime.compute @@ -0,0 +1,301 @@ +#include "SlimeVertex.cginc" +#include "UnityCG.cginc" +#define NUM_THREAD_X 64 + +// Each #kernel tells which function to compile; you can have many kernels +#pragma kernel UpdateAgents +#pragma kernel Diffuse +#pragma kernel CreateAgentParticles +#pragma kernel CreateParticleGeometry + +// Struct for storing the current state of each simulated slime agent +struct Agent +{ + float2 position; + float angle; +}; + +struct Particle +{ + float3 start; + float3 middle; + float3 end; +}; + +// Accumulation Buffer +RWTexture2D accumulation; + +// Output of the diffusion kernel +RWTexture2D diffusedAccumulation; + +// Agent data buffer +RWStructuredBuffer agents; + +// Use this texture to sample level terrain shape for shenanigans +Texture2D Heightmap; +SamplerState samplerHeightmap; + +int randomOffset; +int numAgents; +float speed; +//float deltaTime; +int textureWidth; +float zoneRadius; +float deposition; +float diffusion; +float decay; +float sensorDistance; +float sensorSpread; +int sensorSize; +float randomSteering; +float turnSpeed; +float drive; + +// Hash function from H. Schechter & R. Bridson, goo.gl/RXiKaH +inline uint hash(uint s) +{ + s ^= 2747636419u; + s *= 2654435769u; + s ^= s >> 16; + s *= 2654435769u; + s ^= s >> 16; + s *= 2654435769u; + return s; +} + +inline float random(uint seed) +{ + return float(hash(seed)) / 4294967295.0; // 2^32-1 +} + +inline float2 uvToPos(float2 uv) +{ + return (uv - float2(.5, .5)) * (zoneRadius * 2); +} + +inline float2 posToUv(float2 pos) +{ + return pos / (zoneRadius * 2) + float2(.5, .5); +} + +float sense(float2 position, float angle, float directionSign) +{ + float sensorAngle = angle + directionSign * sensorSpread; + float2 sensorDir = float2(cos(sensorAngle), sin(sensorAngle)); + int2 sensorCenter = position + sensorDir * sensorDistance; + + float sum = 0; + for(int x = -sensorSize; x <= sensorSize; x++) + { + for(int y = -sensorSize; y <= sensorSize; y++) + { + int2 sample = sensorCenter + int2(x, y); + if(sample.x >= 0 && sample.x < textureWidth && sample.y >= 0 && sample.y < textureWidth) + { + sum += accumulation[sample]; + } + } + } + return sum; +} + +inline float unlerp(float x, float min, float max) +{ + return (x - min) / (max - min); +} + +[numthreads(NUM_THREAD_X,1,1)] +void UpdateAgents (uint3 id : SV_DispatchThreadID) +{ + if (id.x >= numAgents) return; + + Agent agent = agents[id.x]; + + // Move Agents based on direction and speed + float2 direction = float2(cos(agent.angle), sin(agent.angle)); + agent.position += direction * speed; + + float r = random(id.x + randomOffset); + + // Clamp position within bounds and randomize direction + if(dot(agent.position, agent.position) > zoneRadius * zoneRadius || isnan(agent.position.x)) + { + agent.position = normalize(agent.position) * zoneRadius; + //agent.position = float2(0,0); + agent.angle = r * UNITY_TWO_PI; + } + + // if(isnan(agent.position.x)) + // { + // agent.position = float2(0,0); + // agent.angle = r * UNITY_TWO_PI; + // } + + float2 texPos = posToUv(agent.position) * textureWidth; + + // Acquire sensory data + float forwardSensor = sense(texPos, agent.angle, 0); + float leftSensor = sense(texPos, agent.angle, -1); + float rightSensor = sense(texPos, agent.angle, 1); + + // Determine the range of the sensor inputs + float minSensor = min(min(leftSensor, rightSensor), forwardSensor); + float maxSensor = max(max(max(leftSensor, rightSensor), forwardSensor), .01); + float range = min(maxSensor - minSensor, .01); + + // Normalize sensor inputs + forwardSensor = unlerp(forwardSensor, minSensor, maxSensor); + leftSensor = unlerp(leftSensor, minSensor, maxSensor); + rightSensor = unlerp(rightSensor, minSensor, maxSensor); + + // Which direction it wants to turn in + float desire = leftSensor - rightSensor; + + // Strength of its directional preference + float motivation = pow(range / maxSensor, 1 / drive); + + agent.angle += turnSpeed * lerp(r * 2 - 1, desire, motivation); + + agents[id.x] = agent; + accumulation[int2(texPos)] += deposition; +} + +[numthreads(8,8,1)] +void Diffuse (uint3 id : SV_DispatchThreadID) +{ + if(id.x >= textureWidth || id.y >= textureWidth) return; + + float previous = accumulation[id.xy]; + + float sum = 0; + for(int x = -1; x <= 1; x++) + { + for(int y=-1; y <= 1; y++) + { + int2 sample = int2(id.x+x, id.y+y); + if(sample.x >= 0 && sample.x < textureWidth && sample.y >= 0 && sample.y < textureWidth) + { + sum += accumulation[sample]; + } + } + } + float average = sum / 9; + + diffusedAccumulation[id.xy] = lerp(previous, average, diffusion) * decay; +} + +// Buffer containing the leading position of the agent particle +RWStructuredBuffer particles; + +// Output buffer for particle trail geometry +RWStructuredBuffer vertexBuffer; + +// Perlin noise parameters +float noiseAmplitude; +float time; +float heightRange; +float heightOffset; +float trailDamping; +int particleCount; + +#define HASHSCALE 0.1031 +float hashp(float p) +{ + float3 p3 = frac(p.xxx * HASHSCALE); + p3 += dot(p3, p3.yzx + 19.19); + return frac((p3.x + p3.y) * p3.z); +} + +float fade(float t) { return t*t*t*(t*(6.*t-15.)+10.); } + +float grad(float hash, float p) +{ + int i = int(1e4*hash); + return (i & 1) == 0 ? p : -p; +} + +float perlinNoise1D(float p) +{ + float pi = floor(p), pf = p - pi, w = fade(pf); + return lerp(grad(hashp(pi), pf), grad(hashp(pi + 1.0), pf - 1.0), w) * 2.0; +} + +[numthreads(NUM_THREAD_X,1,1)] +void CreateAgentParticles (uint3 id : SV_DispatchThreadID) +{ + Agent agent = agents[id.x]; + float sequence = (float)id.x/particleCount; + float height = Heightmap.SampleLevel(samplerHeightmap, posToUv(agent.position), 0); + float particleHeight = -height + random(id.x) * heightRange + heightOffset; + Particle particle = particles[id.x]; + particle.end = lerp(particle.end, particle.middle, trailDamping); + particle.middle = lerp(particle.middle, particle.start, trailDamping); + particle.start = lerp(particle.start, float3( + agent.position.x + perlinNoise1D(id.x*3 + time + sequence) * noiseAmplitude, + particleHeight + perlinNoise1D(id.x*3 + 1 + time + sequence) * noiseAmplitude, + agent.position.y + perlinNoise1D(id.x*3 + 2 + time + sequence) * noiseAmplitude), trailDamping); + particles[id.x] = particle; +} + +// https://catlikecoding.com/unity/tutorials/curves-and-splines/ +inline float3 QuadraticSplinePosition(float3 p0, float3 p1, float3 p2, float t) +{ + //return lerp(lerp(p0,p1,t),lerp(p1,p2,t),t); + float oneMinusT = 1 - t; + return + oneMinusT * oneMinusT * p0 + + 2 * oneMinusT * t * p1 + + t * t * p2; +} + +inline float3 QuadraticSplineDerivative (float3 p0, float3 p1, float3 p2, float t) { + return + 2 * (1 - t) * (p1 - p0) + + 2 * t * (p2 - p1); +} + +int trailPoints; +float trailStartWidth; +float trailEndWidth; +float3 cameraPos; + +inline float3 calcToCameraDir(float3 pos) +{ + return normalize(cameraPos - pos); +} + +[numthreads(NUM_THREAD_X,1,1)] +void CreateParticleGeometry (uint3 id : SV_DispatchThreadID) +{ + Vertex v0 = GetDefaultVertex(); + Vertex v1 = GetDefaultVertex(); + + int idx = id.x; + int particleIndex = id.x / trailPoints; + int trailIndex = id.x % trailPoints; + float trailLerp = (float) trailIndex / trailPoints; + + Particle particle = particles[particleIndex]; + + //float3 pos = float3(particle, 0, trailIndex); + //float3 dir = float3(0,0,1); + //float3 pos = lerp(particle.start, particle.end, trailLerp); + //float3 dir = normalize(particle.end-particle.start); + float3 pos = QuadraticSplinePosition(particle.start, particle.middle, particle.end, trailLerp); + float3 dir = QuadraticSplineDerivative(particle.start, particle.middle, particle.end, trailLerp); + + float width = lerp(trailStartWidth, trailEndWidth, trailLerp); + + float3 toCameraDir = calcToCameraDir(pos); + float3 right = normalize(cross(dir, toCameraDir)) * width * 0.5f; + + v0.pos = pos - right; + v0.uv = float2(trailLerp, 0); + + v1.pos = pos + right; + v1.uv = float2(trailLerp, 1); + + uint vId = idx * 2; + vertexBuffer[vId] = v0; + vertexBuffer[vId+1] = v1; +} \ No newline at end of file diff --git a/Assets/Shaders/Compute/Slime/Slime.compute.meta b/Assets/Shaders/Compute/Slime/Slime.compute.meta new file mode 100644 index 000000000..80cb14b62 --- /dev/null +++ b/Assets/Shaders/Compute/Slime/Slime.compute.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 33eea2339ec4dc143b0e192a0b7f0a33 +ComputeShaderImporter: + externalObjects: {} + currentAPIMask: 4 + preprocessorOverride: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Shaders/Compute/Slime/Slime.cs b/Assets/Shaders/Compute/Slime/Slime.cs new file mode 100644 index 000000000..2f7fa5dde --- /dev/null +++ b/Assets/Shaders/Compute/Slime/Slime.cs @@ -0,0 +1,229 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.Runtime.InteropServices; +using MessagePack; +using UnityEngine; +using UnityEngine.Experimental.Rendering; +using UnityEngine.Rendering; +using Random = UnityEngine.Random; +using static Unity.Mathematics.math; + +public class Slime : MonoBehaviour +{ + #region variables + + [Header("Scene Links")] + public Camera TargetCamera; + + [Header("Materials")] + public ComputeShader SlimeCompute; + public Material AccumulationMaterial; + public Material ParticleMaterial; + public RenderTexture GravityTexture; + + [Header("Performance")] + public int TextureSize = 1024; + public float ZoneRadius = 512; + public int AgentCount = 524288; + public int ParticleCount = 65536; + public int TrailPoints = 8; + + [Header("Parameters")] + public SlimeSettings SlimeSettings; + public float ZoneCeiling; + public float ZoneFloor; + public float NoiseFrequency = 1; + public float NoiseAmplitude = 5; + public float ParticleHeightRange; + public float ParticleHeightOffset; + public float TrailStartWidth = .5f; + public float TrailEndWidth = .1f; + public float TrailDamping = .05f; + + private const int GROUP_SIZE = 64; + private int _updateAgentsKernel; + private int _diffuseKernel; + private int _particleKernel; + private int _geometryKernel; + + private int IndexBufferSize => ParticleCount * 6 * (TrailPoints - 1); + + #endregion + + #region buffers + + private ComputeBuffer _agentsBuffer; + private RenderTexture _accumulationTexture; + private RenderTexture _previousAccumulationTexture; + + private ComputeBuffer _particlesBuffer; + + private ComputeBuffer _indexBuffer; + private ComputeBuffer _vertexBuffer; + + #endregion + + #region Structs + + struct Agent + { + public Vector2 Position; + public float Angle; + } + + struct Particle + { + public Vector3 Start; + public Vector3 Middle; + public Vector3 End; + } + + struct Vertex + { + public Vector3 Position; + public Vector2 UV; + } + + #endregion + + void Start() + { + _updateAgentsKernel = SlimeCompute.FindKernel("UpdateAgents"); + _diffuseKernel = SlimeCompute.FindKernel("Diffuse"); + _particleKernel = SlimeCompute.FindKernel("CreateAgentParticles"); + _geometryKernel = SlimeCompute.FindKernel("CreateParticleGeometry"); + + _accumulationTexture = new RenderTexture(TextureSize, TextureSize, 1, RenderTextureFormat.RFloat); + _accumulationTexture.enableRandomWrite = true; + _previousAccumulationTexture = new RenderTexture(TextureSize, TextureSize, 1, RenderTextureFormat.RFloat); + _previousAccumulationTexture.enableRandomWrite = true; + AccumulationMaterial.SetTexture("_MainTex", _accumulationTexture); + + _agentsBuffer = new ComputeBuffer(AgentCount, Marshal.SizeOf(typeof(Agent))); + var agents = new Agent[AgentCount]; + for (var i = 0; i < agents.Length; i++) + { + agents[i] = new Agent + { + Position = Random.insideUnitCircle * ZoneRadius, + Angle = Random.value * Mathf.PI * 2 + }; + } + _agentsBuffer.SetData(agents); + + _particlesBuffer = new ComputeBuffer(ParticleCount, Marshal.SizeOf(typeof(Particle))); + + _vertexBuffer = new ComputeBuffer(ParticleCount * 2 * TrailPoints, Marshal.SizeOf(typeof(Vertex))); + + var indexData = new int[IndexBufferSize]; + var index = 0; + for (int iTrail = 0; iTrail < ParticleCount; iTrail++) + { + var trailOffset = iTrail * TrailPoints * 2; + for (int iTrailPoint = 0; iTrailPoint < TrailPoints - 1; iTrailPoint++) + { + var offset = trailOffset + iTrailPoint * 2; + indexData[index++] = 0 + offset; + indexData[index++] = 1 + offset; + indexData[index++] = 2 + offset; + indexData[index++] = 2 + offset; + indexData[index++] = 1 + offset; + indexData[index++] = 3 + offset; + } + } + + _indexBuffer = new ComputeBuffer(indexData.Length, Marshal.SizeOf(typeof(uint))); // 1 trail point to 2 triangles (6 vertices) + _indexBuffer.SetData(indexData); + } + + // Update is called once per frame + void Update() + { + SlimeCompute.SetInt("randomOffset", Random.Range(0,65536)); + SlimeCompute.SetInt("textureWidth", TextureSize); + SlimeCompute.SetInt("numAgents", AgentCount); + SlimeCompute.SetFloat("zoneRadius", ZoneRadius); + SlimeCompute.SetFloat("deposition", SlimeSettings.Deposition * Time.deltaTime); + SlimeCompute.SetFloat("diffusion", SlimeSettings.Diffusion * Time.deltaTime); + SlimeCompute.SetFloat("decay", max(1 - SlimeSettings.Decay * Time.deltaTime, 0.01f)); + SlimeCompute.SetFloat("speed", SlimeSettings.Speed * Time.deltaTime); + SlimeCompute.SetFloat("turnSpeed", SlimeSettings.TurnSpeed * Time.deltaTime); + SlimeCompute.SetFloat("randomSteering", SlimeSettings.RandomSteering); + SlimeCompute.SetFloat("sensorDistance", SlimeSettings.SensorDistance); + SlimeCompute.SetFloat("drive", SlimeSettings.Drive); + SlimeCompute.SetFloat("sensorSpread", SlimeSettings.SensorSpread * Mathf.PI / 2); + SlimeCompute.SetInt("sensorSize", SlimeSettings.SensorSize); + + SlimeCompute.SetBuffer(_updateAgentsKernel, "agents", _agentsBuffer); + SlimeCompute.SetTexture(_updateAgentsKernel, "accumulation", _accumulationTexture); + SlimeCompute.SetTexture(_updateAgentsKernel, "Heightmap", GravityTexture); + + var numberOfGroups = Mathf.CeilToInt((float)AgentCount / GROUP_SIZE); + SlimeCompute.Dispatch(_updateAgentsKernel, numberOfGroups, 1, 1); + + Graphics.Blit(_accumulationTexture, _previousAccumulationTexture); + SlimeCompute.SetTexture(_diffuseKernel, "accumulation", _previousAccumulationTexture); + SlimeCompute.SetTexture(_diffuseKernel, "diffusedAccumulation", _accumulationTexture); + numberOfGroups = Mathf.CeilToInt((float)TextureSize / 8); + SlimeCompute.Dispatch(_diffuseKernel, numberOfGroups, numberOfGroups, 1); + + SlimeCompute.SetTexture(_particleKernel, "Heightmap", GravityTexture); + SlimeCompute.SetBuffer(_particleKernel, "agents", _agentsBuffer); + SlimeCompute.SetBuffer(_particleKernel, "particles", _particlesBuffer); + SlimeCompute.SetFloat("time", Time.time * NoiseFrequency); + SlimeCompute.SetFloat("noiseAmplitude", NoiseAmplitude); + SlimeCompute.SetFloat("heightRange", ParticleHeightRange); + SlimeCompute.SetFloat("heightOffset", ParticleHeightOffset); + SlimeCompute.SetFloat("trailDamping", TrailDamping); + SlimeCompute.SetInt("particleCount", ParticleCount); + + numberOfGroups = ParticleCount / GROUP_SIZE; + SlimeCompute.Dispatch(_particleKernel, numberOfGroups, 1, 1); + + SlimeCompute.SetInt("trailPoints", TrailPoints); + SlimeCompute.SetFloat("trailStartWidth", TrailStartWidth); + SlimeCompute.SetFloat("trailEndWidth", TrailEndWidth); + SlimeCompute.SetVector("cameraPos", TargetCamera.transform.position); + SlimeCompute.SetBuffer(_geometryKernel, "particles", _particlesBuffer); + SlimeCompute.SetBuffer(_geometryKernel, "vertexBuffer", _vertexBuffer); + + numberOfGroups = ParticleCount * TrailPoints / GROUP_SIZE; + SlimeCompute.Dispatch(_geometryKernel, numberOfGroups, 1, 1); + + ParticleMaterial.SetBuffer("_IndexBuffer", _indexBuffer); + ParticleMaterial.SetBuffer("_VertexBuffer", _vertexBuffer); + Graphics.DrawProcedural( + ParticleMaterial, + new Bounds(Vector3.zero, ZoneRadius * Vector3.one), + MeshTopology.Triangles, + IndexBufferSize, + 1, + TargetCamera, + null, + ShadowCastingMode.Off, + false, + 0); + } + + private void OnDisable() + { + _accumulationTexture.Release(); + _agentsBuffer.Release(); + } +} + +[Serializable, MessagePackObject(keyAsPropertyName:true)] +public class SlimeSettings +{ + public float Deposition; + public float Diffusion; + public float Decay; + public float TurnSpeed; + public float RandomSteering; + public float Speed; + public float Drive; + public float SensorDistance; + public float SensorSpread; + public int SensorSize; +} diff --git a/Assets/Shaders/Compute/Slime/Slime.cs.meta b/Assets/Shaders/Compute/Slime/Slime.cs.meta new file mode 100644 index 000000000..34464dd01 --- /dev/null +++ b/Assets/Shaders/Compute/Slime/Slime.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 8ffec49d55e3429418714ceb048bfeae +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Shaders/Compute/Slime/Slime.shader b/Assets/Shaders/Compute/Slime/Slime.shader new file mode 100644 index 000000000..28699295f --- /dev/null +++ b/Assets/Shaders/Compute/Slime/Slime.shader @@ -0,0 +1,159 @@ +Shader "Aetheria/Stardust (Compute)" +{ + Properties { + [HDR] _TintColor("Tint Color", Color) = (0.5,0.5,0.5,0.5) + _EmissionGain("Emission Gain", Range(0, 1)) = 0.3 + _Power("Power", Float) = 2 + } + + SubShader { + Tags { "Queue"="AlphaTest" "RenderType"="TransparentCutout" "IgnoreProjector"="True" } + Pass { + + CGPROGRAM + #pragma vertex particle_vertex + #pragma fragment frag + + #pragma target 5.0 + #include "UnityCG.cginc" + #include "Assets/Shaders/Dither Functions.cginc" + + struct Particle + { + float3 position; + float3 color; + float size; + }; + + StructuredBuffer particles; + StructuredBuffer quadPoints; + + float4 _TintColor; + float _EmissionGain; + float _Power; + + struct v2f + { + float4 pos : SV_POSITION; + float2 uv : TEXCOORD0; + float4 screenPos : TEXCOORD1; + float4 color : COLOR; + }; + + //Vertex shader with no inputs + //Uses the system values SV_VertexID and SV_InstanceID to read from compute buffers + v2f particle_vertex(uint id : SV_VertexID, uint inst : SV_InstanceID) + { + v2f o; + + //Only transform world pos by view matrix + //To Create a billboarding effect + float3 worldPosition = particles[inst].position; + + float4 cameraSpacePosition = mul(UNITY_MATRIX_V, float4(worldPosition, 1.0f)); + + float3 quadPoint = float3(quadPoints[id].xy, 0.0f) * particles[inst].size; + o.pos = mul(UNITY_MATRIX_P, cameraSpacePosition + float4(quadPoint, 0.0f)); + + //Shift coordinates for uvs + o.uv = quadPoints[id] + 0.5f; + + //transfer color of particle and global tint to vertex + o.color = float4(particles[inst].color, 1) * _TintColor; + o.screenPos = ComputeScreenPos(o.pos); + + return o; + } + + float powerPulse( float x, float power ) + { + x = saturate(abs(x)); + return pow((x + 1.0f) * (1.0f - x), power); + } + + float4 frag(v2f i) : COLOR + { + float emission = powerPulse(length(i.uv-float2(.5,.5))*2,_Power); + float2 screenUV = i.screenPos.xy / i.screenPos.w; + ditherClip(screenUV, emission * i.color.a); + return i.color * emission * (exp(_EmissionGain * 5.0f)); + } + ENDCG + } + Pass + { + Name "ShadowCaster" + Tags { "LightMode" = "ShadowCaster" } + + CGPROGRAM + #pragma vertex particle_vertex + #pragma fragment frag + + #pragma target 5.0 + #include "UnityCG.cginc" + #include "Assets/Shaders/Dither Functions.cginc" + + struct Particle + { + float3 position; + float3 color; + float size; + }; + + StructuredBuffer particles; + StructuredBuffer quadPoints; + + float4 _TintColor; + float _EmissionGain; + float _Power; + + struct v2f + { + float4 pos : SV_POSITION; + float2 uv : TEXCOORD0; + float4 screenPos : TEXCOORD1; + float4 color : COLOR; + }; + + //Vertex shader with no inputs + //Uses the system values SV_VertexID and SV_InstanceID to read from compute buffers + v2f particle_vertex(uint id : SV_VertexID, uint inst : SV_InstanceID) + { + v2f o; + + //Only transform world pos by view matrix + //To Create a billboarding effect + float3 worldPosition = particles[inst].position; + + float4 cameraSpacePosition = mul(UNITY_MATRIX_V, float4(worldPosition, 1.0f)); + + float3 quadPoint = float3(quadPoints[id].xy, 0.0f) * particles[inst].size; + o.pos = mul(UNITY_MATRIX_P, cameraSpacePosition + float4(quadPoint, 0.0f)); + + //Shift coordinates for uvs + o.uv = quadPoints[id] + 0.5f; + + //transfer color of particle and global tint to vertex + o.color = float4(particles[inst].color, 1) * _TintColor; + o.screenPos = ComputeScreenPos(o.pos); + + return o; + } + + float powerPulse( float x, float power ) + { + x = saturate(abs(x)); + return pow((x + 1.0f) * (1.0f - x), power); + } + + float4 frag(v2f i) : COLOR + { + float emission = powerPulse(length(i.uv-float2(.5,.5))*2,_Power); + float2 screenUV = i.screenPos.xy / i.screenPos.w; + ditherClip(screenUV, emission * i.color.a); + SHADOW_CASTER_FRAGMENT(i) + } + ENDCG + } + } +} \ No newline at end of file diff --git a/Assets/Shaders/Compute/Slime/Slime.shader.meta b/Assets/Shaders/Compute/Slime/Slime.shader.meta new file mode 100644 index 000000000..298093f98 --- /dev/null +++ b/Assets/Shaders/Compute/Slime/Slime.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: c848f868eca8c46478b322cbae002d21 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Shaders/Compute/Slime/SlimeParticles.shader b/Assets/Shaders/Compute/Slime/SlimeParticles.shader new file mode 100644 index 000000000..f14a99af8 --- /dev/null +++ b/Assets/Shaders/Compute/Slime/SlimeParticles.shader @@ -0,0 +1,136 @@ +Shader "Aetheria/Slime Particles" { +Properties { + _StartColor("StartColor", Color) = (1,1,1,1) + _EndColor("EndColor", Color) = (0,0,0,1) + _Intensity("Intensity", Float) = 1 + _Roundedness("Roundedness", Float) = .1 +} + +SubShader { +Pass{ + Tags { "RenderType"="Opaque" } + + CGPROGRAM + #pragma target 5.0 + + #pragma vertex vert + #pragma fragment frag + + #include "UnityCG.cginc" + #include "SlimeVertex.cginc" + #include "Assets/Shaders/Dither Functions.cginc" + + float _Intensity; + float _Roundedness; + fixed4 _StartColor; + fixed4 _EndColor; + StructuredBuffer _IndexBuffer; + StructuredBuffer _VertexBuffer; + + Vertex GetVertex(uint indexBufferIdx) { + uint idx = _IndexBuffer[indexBufferIdx]; + return _VertexBuffer[idx]; + } + + struct vs_out { + float4 pos : SV_POSITION; + float4 col : COLOR; + float2 uv : TEXCOORD; + float4 screenPos : TEXCOORD1; + }; + + vs_out vert (uint id : SV_VertexID, uint iId : SV_InstanceID) + { + vs_out Out; + Vertex vtx = GetVertex(id); + + Out.pos = UnityObjectToClipPos(float4(vtx.pos, 1.0)); + Out.uv = vtx.uv; + Out.col = lerp(_StartColor, _EndColor, vtx.uv.x); + Out.screenPos = ComputeScreenPos(float4(vtx.pos, 1.0)); + + return Out; + } + + fixed4 frag (vs_out In) : COLOR0 + { + // Simple quadratic curve "texture" + float x = 1 - 2 * abs(In.uv.y - .5); + //return float4(x,In.uv.x, 0 ,1); + float i = x * x * smoothstep(0, _Roundedness, In.uv.x) * (1-In.uv.x) * _Intensity; + + // Apply screen space dithering + float2 screenUV = In.screenPos.xy / In.screenPos.w; + ditherClip(screenUV, i); + + return In.col * i; + } + + ENDCG + + } +Pass{ + Name "ShadowCaster" + Tags { "LightMode" = "ShadowCaster" } + + CGPROGRAM + #pragma target 5.0 + + #pragma vertex vert + #pragma fragment frag + + #include "UnityCG.cginc" + #include "SlimeVertex.cginc" + #include "Assets/Shaders/Dither Functions.cginc" + + float _Intensity; + float _Roundedness; + StructuredBuffer _IndexBuffer; + StructuredBuffer _VertexBuffer; + + Vertex GetVertex(uint indexBufferIdx) { + uint idx = _IndexBuffer[indexBufferIdx]; + return _VertexBuffer[idx]; + } + + struct vs_out { + float4 pos : SV_POSITION; + float4 col : COLOR; + float2 uv : TEXCOORD; + float4 screenPos : TEXCOORD1; + }; + + vs_out vert (uint id : SV_VertexID, uint iId : SV_InstanceID) + { + vs_out Out; + Vertex vtx = GetVertex(id); + + Out.pos = UnityObjectToClipPos(float4(vtx.pos, 1.0)); + Out.uv = vtx.uv; + Out.col = 1; + Out.screenPos = ComputeScreenPos(float4(vtx.pos, 1.0)); + + return Out; + } + + fixed4 frag (vs_out In) : COLOR0 + { + // Simple quadratic curve "texture" + float x = 1 - 2 * abs(In.uv.y - .5); + float i = x * x * smoothstep(0, _Roundedness, In.uv.x) * (1-In.uv.x) * _Intensity; + + // Apply screen space dithering + float2 screenUV = In.screenPos.xy / In.screenPos.w; + ditherClip(screenUV, i); + + SHADOW_CASTER_FRAGMENT(In) + } + + ENDCG + + } +} + +Fallback Off +} + diff --git a/Assets/Shaders/Compute/Slime/SlimeParticles.shader.meta b/Assets/Shaders/Compute/Slime/SlimeParticles.shader.meta new file mode 100644 index 000000000..a31d6689c --- /dev/null +++ b/Assets/Shaders/Compute/Slime/SlimeParticles.shader.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: ce0edf879efdfd147a9fda662bb77ef4 +timeCreated: 1612395387 \ No newline at end of file diff --git a/Assets/Shaders/Compute/Slime/SlimeTrails.mat b/Assets/Shaders/Compute/Slime/SlimeTrails.mat new file mode 100644 index 000000000..8f8425369 --- /dev/null +++ b/Assets/Shaders/Compute/Slime/SlimeTrails.mat @@ -0,0 +1,82 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: SlimeTrails + m_Shader: {fileID: 4800000, guid: ce0edf879efdfd147a9fda662bb77ef4, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _BumpScale: 1 + - _Cutoff: 0.5 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossyReflections: 1 + - _Intensity: 24.1 + - _Metallic: 0 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _Roundedness: 0.1 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _UVSec: 0 + - _ZWrite: 1 + m_Colors: + - _Color: {r: 1, g: 1, b: 1, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + - _EndColor: {r: 0.5849056, g: 0.19037023, b: 0.40103197, a: 1} + - _StartColor: {r: 0.9339623, g: 0.31624126, b: 0.13656995, a: 1} + m_BuildTextureStacks: [] diff --git a/Assets/Shaders/Compute/Slime/SlimeTrails.mat.meta b/Assets/Shaders/Compute/Slime/SlimeTrails.mat.meta new file mode 100644 index 000000000..d8bff922c --- /dev/null +++ b/Assets/Shaders/Compute/Slime/SlimeTrails.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3b53e1eb5d8a5d34f9bc8c1928ceba76 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Shaders/Compute/Slime/SlimeVertex.cginc b/Assets/Shaders/Compute/Slime/SlimeVertex.cginc new file mode 100644 index 000000000..96e020668 --- /dev/null +++ b/Assets/Shaders/Compute/Slime/SlimeVertex.cginc @@ -0,0 +1,20 @@ +#ifndef SLIME_VERTEX_INCLUDED +#define SLIME_VERTEX_INCLUDED + +struct Vertex +{ + float3 pos; + float2 uv; +}; + +inline Vertex GetDefaultVertex() { + + Vertex ret; + ret.pos = (0).xxx; + ret.uv = (-1).xx; + + return ret; +} + + +#endif // SLIME_VERTEX_INCLUDED diff --git a/Assets/Shaders/Compute/Slime/SlimeVertex.cginc.meta b/Assets/Shaders/Compute/Slime/SlimeVertex.cginc.meta new file mode 100644 index 000000000..f28fcc48e --- /dev/null +++ b/Assets/Shaders/Compute/Slime/SlimeVertex.cginc.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: c65df586c8bb4d46a5ed08410ea43579 +timeCreated: 1616800817 \ No newline at end of file diff --git a/Assets/Shaders/Compute/Stardust/Stardust.compute b/Assets/Shaders/Compute/Stardust/Stardust.compute index 4ceebda8a..ad79ecd10 100644 --- a/Assets/Shaders/Compute/Stardust/Stardust.compute +++ b/Assets/Shaders/Compute/Stardust/Stardust.compute @@ -13,13 +13,13 @@ RWStructuredBuffer particles; // Use this texture to spawn particles over terrain Texture2D Heightmap; -SamplerState samplerHeightmap; +SamplerState samplerHeightmap; // Use this texture to choose the color of the particle Texture2D HueTexture; SamplerState samplerHueTexture; -uniform float4x4 noiseOffsetMatrix; +//uniform float4x4 noiseOffsetMatrix; float time; float3 transform; diff --git a/Assets/Shaders/Compute/Stardust/Stardust.cs b/Assets/Shaders/Compute/Stardust/Stardust.cs index 82183b6f3..5d4f099b2 100644 --- a/Assets/Shaders/Compute/Stardust/Stardust.cs +++ b/Assets/Shaders/Compute/Stardust/Stardust.cs @@ -29,12 +29,8 @@ public class Stardust : MonoBehaviour //public Transform TargetTransform; public Camera GravityCamera; - private Vector3[] _vertices; - private const int GROUP_SIZE = 128; private int _updateParticlesKernel; - - private float _maxTemperature = 0; #endregion #region Structs @@ -65,7 +61,6 @@ public class Stardust : MonoBehaviour //Create particle buffer _particlesBuffer = new ComputeBuffer(Span * Span, PARTICLE_STRIDE); -// _temperature = new ComputeBuffer(128, TEMP_STRIDE); Particle[] particles = new Particle[Span * Span]; diff --git a/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Fallback.asset b/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Fallback.asset index 95acc7bfd..74a076a51 100644 --- a/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Fallback.asset +++ b/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Fallback.asset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:654b92db6060267b074c52439d799d78af20ff8e1f412799ec8eb714c7ac1cb9 -size 534185 +oid sha256:38cb30498503efdf14d88d5bb75e20296a4d22df4e257b6f26e9a327e4e255a3 +size 534653 diff --git a/Assets/WwiseSettings.xml b/Assets/WwiseSettings.xml index 8645173a3..797b3beca 100644 --- a/Assets/WwiseSettings.xml +++ b/Assets/WwiseSettings.xml @@ -2,8 +2,8 @@ true true - true - true + false + false false true true diff --git a/GameData/AetherDB.msgpack b/GameData/AetherDB.msgpack index 4251f866e..65f10e00d 100644 --- a/GameData/AetherDB.msgpack +++ b/GameData/AetherDB.msgpack @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:7614cfd2dcf83ffc3f73d98fb6f85e12fb341be330c7bd72460133a5d6f14281 -size 67141 +oid sha256:a9be613366ded4b1b3bd6b76ea80004c7f42638822ea26671a8d31e6245267dc +size 78023 diff --git a/GameData/PlayerSettings.msgpack b/GameData/PlayerSettings.msgpack index ed04ea775..b004789a1 100644 --- a/GameData/PlayerSettings.msgpack +++ b/GameData/PlayerSettings.msgpack @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:f914616fca6c1f79f6b9b03c29056574195127622453e5ad3bac1b1b3db17fae -size 29254 +oid sha256:3f1ed3931b1a6b0235d45ec961e3e5c05e6437398319b045d4dfa417cf6d0c2a +size 90830 diff --git a/UserSettings/EditorUserSettings.asset b/UserSettings/EditorUserSettings.asset index 0f2118614..e241e21d4 100644 --- a/UserSettings/EditorUserSettings.asset +++ b/UserSettings/EditorUserSettings.asset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:e2a4311cc59f90f70a8406d44edb74bea447aae948dba0fbaab2e7e03e517784 +oid sha256:7c6216d4180f1c0f2a7f14a0a4ba0f0d7265b969c20453eb9d5769062d201a8d size 1749 From 7a9af46820e2d4ecfe694eb2c12f193b8e724e9a Mon Sep 17 00:00:00 2001 From: Reinier Vens Date: Sun, 28 Mar 2021 03:17:55 +0100 Subject: [PATCH 19/51] Gravity Slime Adjusted the "slime" particles to adjust their parameters according to the current gravitational potential and gradient! --- Assets/Materials/Brushes/Fog Tint.mat | 4 +- Assets/Materials/Brushes/Gravity Waves.mat | 4 +- Assets/Materials/Brushes/Sector Tint Test.mat | 2 +- Assets/Scenes/TestScene.unity | 569 +++++++++++++++++- Assets/Scripts/ServerShared/Extensions.cs | 9 + Assets/Shaders/Compute/Slime/Slime.compute | 154 +++-- Assets/Shaders/Compute/Slime/Slime.cs | 79 ++- .../Compute/Slime/SlimeParticles.shader | 8 +- Assets/Shaders/Compute/Slime/SlimeTrails.mat | 4 +- .../Shaders/Compute/Slime/SlimeVertex.cginc | 1 + 10 files changed, 753 insertions(+), 81 deletions(-) diff --git a/Assets/Materials/Brushes/Fog Tint.mat b/Assets/Materials/Brushes/Fog Tint.mat index 06bd02ee6..bcf7c4eac 100644 --- a/Assets/Materials/Brushes/Fog Tint.mat +++ b/Assets/Materials/Brushes/Fog Tint.mat @@ -58,7 +58,7 @@ Material: m_Floats: - _BumpScale: 1 - _Cutoff: 0.5 - - _Depth: 0.33 + - _Depth: 1.3 - _DetailNormalMapScale: 1 - _DstBlend: 0 - _Frequency: 6.2832 @@ -70,7 +70,7 @@ Material: - _OcclusionStrength: 1 - _Parallax: 0.02 - _Phase: 0 - - _Power: 3 + - _Power: 8 - _SinePower: 1.25 - _SmoothnessTextureChannel: 0 - _SpecularHighlights: 1 diff --git a/Assets/Materials/Brushes/Gravity Waves.mat b/Assets/Materials/Brushes/Gravity Waves.mat index b36af0af8..a45dfed21 100644 --- a/Assets/Materials/Brushes/Gravity Waves.mat +++ b/Assets/Materials/Brushes/Gravity Waves.mat @@ -58,10 +58,10 @@ Material: m_Floats: - _BumpScale: 1 - _Cutoff: 0.5 - - _Depth: 20 + - _Depth: 3.5 - _DetailNormalMapScale: 1 - _DstBlend: 0 - - _Frequency: 6.2832 + - _Frequency: 27.43 - _GlossMapScale: 1 - _Glossiness: 0.5 - _GlossyReflections: 1 diff --git a/Assets/Materials/Brushes/Sector Tint Test.mat b/Assets/Materials/Brushes/Sector Tint Test.mat index ef2c3da21..e4543bf69 100644 --- a/Assets/Materials/Brushes/Sector Tint Test.mat +++ b/Assets/Materials/Brushes/Sector Tint Test.mat @@ -58,7 +58,7 @@ Material: m_Floats: - _BumpScale: 1 - _Cutoff: 0.5 - - _Depth: 0.25 + - _Depth: 0.4 - _DetailNormalMapScale: 1 - _DstBlend: 0 - _Frequency: 6.2832 diff --git a/Assets/Scenes/TestScene.unity b/Assets/Scenes/TestScene.unity index e64082f0f..14ac91b43 100644 --- a/Assets/Scenes/TestScene.unity +++ b/Assets/Scenes/TestScene.unity @@ -1474,6 +1474,115 @@ Transform: m_Father: {fileID: 1183010124} m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1001 &556481138 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 7852221720480299766, guid: 046dde0f4600bce41ad33c476f99b309, + type: 3} + propertyPath: m_Name + value: Sun + objectReference: {fileID: 0} + - target: {fileID: 7852221720480299767, guid: 046dde0f4600bce41ad33c476f99b309, + type: 3} + propertyPath: m_RootOrder + value: 13 + objectReference: {fileID: 0} + - target: {fileID: 7852221720480299767, guid: 046dde0f4600bce41ad33c476f99b309, + type: 3} + propertyPath: m_LocalScale.x + value: 30 + objectReference: {fileID: 0} + - target: {fileID: 7852221720480299767, guid: 046dde0f4600bce41ad33c476f99b309, + type: 3} + propertyPath: m_LocalScale.y + value: 30 + objectReference: {fileID: 0} + - target: {fileID: 7852221720480299767, guid: 046dde0f4600bce41ad33c476f99b309, + type: 3} + propertyPath: m_LocalScale.z + value: 30 + objectReference: {fileID: 0} + - target: {fileID: 7852221720480299767, guid: 046dde0f4600bce41ad33c476f99b309, + type: 3} + propertyPath: m_LocalPosition.x + value: 250 + objectReference: {fileID: 0} + - target: {fileID: 7852221720480299767, guid: 046dde0f4600bce41ad33c476f99b309, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7852221720480299767, guid: 046dde0f4600bce41ad33c476f99b309, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7852221720480299767, guid: 046dde0f4600bce41ad33c476f99b309, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7852221720480299767, guid: 046dde0f4600bce41ad33c476f99b309, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7852221720480299767, guid: 046dde0f4600bce41ad33c476f99b309, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7852221720480299767, guid: 046dde0f4600bce41ad33c476f99b309, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7852221720480299767, guid: 046dde0f4600bce41ad33c476f99b309, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7852221720480299767, guid: 046dde0f4600bce41ad33c476f99b309, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7852221720480299767, guid: 046dde0f4600bce41ad33c476f99b309, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7852221720741322892, guid: 046dde0f4600bce41ad33c476f99b309, + type: 3} + propertyPath: m_LocalScale.x + value: 40 + objectReference: {fileID: 0} + - target: {fileID: 7852221720741322892, guid: 046dde0f4600bce41ad33c476f99b309, + type: 3} + propertyPath: m_LocalScale.y + value: 40 + objectReference: {fileID: 0} + - target: {fileID: 7852221720969441490, guid: 046dde0f4600bce41ad33c476f99b309, + type: 3} + propertyPath: m_LocalScale.x + value: 20 + objectReference: {fileID: 0} + - target: {fileID: 7852221720969441490, guid: 046dde0f4600bce41ad33c476f99b309, + type: 3} + propertyPath: m_LocalScale.y + value: 20 + objectReference: {fileID: 0} + - target: {fileID: 7852221720971737233, guid: 046dde0f4600bce41ad33c476f99b309, + type: 3} + propertyPath: m_LocalPosition.y + value: -4 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 046dde0f4600bce41ad33c476f99b309, type: 3} --- !u!1 &652433663 GameObject: m_ObjectHideFlags: 0 @@ -3436,13 +3545,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1314993065} - m_LocalRotation: {x: 0.15998425, y: 0.38291913, z: -0.06751901, w: 0.9073143} - m_LocalPosition: {x: -57, y: -66, z: -289} + m_LocalRotation: {x: 0.17364816, y: 0, z: 0, w: 0.9848078} + m_LocalPosition: {x: 0, y: -65, z: -300} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 0} m_RootOrder: 9 - m_LocalEulerAnglesHint: {x: 20, y: 45.763, z: 0} + m_LocalEulerAnglesHint: {x: 20, y: 0, z: 0} --- !u!1 &1328848282 GameObject: m_ObjectHideFlags: 0 @@ -4359,6 +4468,115 @@ MeshFilter: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1584275845} m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1001 &1673244484 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 7852221720480299766, guid: 046dde0f4600bce41ad33c476f99b309, + type: 3} + propertyPath: m_Name + value: Sun (1) + objectReference: {fileID: 0} + - target: {fileID: 7852221720480299767, guid: 046dde0f4600bce41ad33c476f99b309, + type: 3} + propertyPath: m_RootOrder + value: 14 + objectReference: {fileID: 0} + - target: {fileID: 7852221720480299767, guid: 046dde0f4600bce41ad33c476f99b309, + type: 3} + propertyPath: m_LocalScale.x + value: 30 + objectReference: {fileID: 0} + - target: {fileID: 7852221720480299767, guid: 046dde0f4600bce41ad33c476f99b309, + type: 3} + propertyPath: m_LocalScale.y + value: 30 + objectReference: {fileID: 0} + - target: {fileID: 7852221720480299767, guid: 046dde0f4600bce41ad33c476f99b309, + type: 3} + propertyPath: m_LocalScale.z + value: 30 + objectReference: {fileID: 0} + - target: {fileID: 7852221720480299767, guid: 046dde0f4600bce41ad33c476f99b309, + type: 3} + propertyPath: m_LocalPosition.x + value: -250 + objectReference: {fileID: 0} + - target: {fileID: 7852221720480299767, guid: 046dde0f4600bce41ad33c476f99b309, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7852221720480299767, guid: 046dde0f4600bce41ad33c476f99b309, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7852221720480299767, guid: 046dde0f4600bce41ad33c476f99b309, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7852221720480299767, guid: 046dde0f4600bce41ad33c476f99b309, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7852221720480299767, guid: 046dde0f4600bce41ad33c476f99b309, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7852221720480299767, guid: 046dde0f4600bce41ad33c476f99b309, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7852221720480299767, guid: 046dde0f4600bce41ad33c476f99b309, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7852221720480299767, guid: 046dde0f4600bce41ad33c476f99b309, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7852221720480299767, guid: 046dde0f4600bce41ad33c476f99b309, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7852221720741322892, guid: 046dde0f4600bce41ad33c476f99b309, + type: 3} + propertyPath: m_LocalScale.x + value: 40 + objectReference: {fileID: 0} + - target: {fileID: 7852221720741322892, guid: 046dde0f4600bce41ad33c476f99b309, + type: 3} + propertyPath: m_LocalScale.y + value: 40 + objectReference: {fileID: 0} + - target: {fileID: 7852221720969441490, guid: 046dde0f4600bce41ad33c476f99b309, + type: 3} + propertyPath: m_LocalScale.x + value: 20 + objectReference: {fileID: 0} + - target: {fileID: 7852221720969441490, guid: 046dde0f4600bce41ad33c476f99b309, + type: 3} + propertyPath: m_LocalScale.y + value: 20 + objectReference: {fileID: 0} + - target: {fileID: 7852221720971737233, guid: 046dde0f4600bce41ad33c476f99b309, + type: 3} + propertyPath: m_LocalPosition.y + value: -4 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 046dde0f4600bce41ad33c476f99b309, type: 3} --- !u!1 &1691202845 GameObject: m_ObjectHideFlags: 0 @@ -5401,6 +5619,11 @@ PrefabInstance: propertyPath: TargetCamera value: objectReference: {fileID: 1314993072} + - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: TrailDamping + value: 0.25 + objectReference: {fileID: 0} - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, type: 3} propertyPath: GravityCamera @@ -5409,7 +5632,7 @@ PrefabInstance: - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, type: 3} propertyPath: TrailEndWidth - value: 0.1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, type: 3} @@ -5424,12 +5647,12 @@ PrefabInstance: - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, type: 3} propertyPath: NoiseFrequency - value: 0.5 + value: 1 objectReference: {fileID: 0} - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, type: 3} propertyPath: TrailStartWidth - value: 0.25 + value: 0.1 objectReference: {fileID: 0} - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, type: 3} @@ -5439,7 +5662,7 @@ PrefabInstance: - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, type: 3} propertyPath: ParticleHeightRange - value: 0 + value: 50 objectReference: {fileID: 0} - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, type: 3} @@ -5459,7 +5682,7 @@ PrefabInstance: - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, type: 3} propertyPath: ParticleHeightOffset - value: 23.77 + value: 10 objectReference: {fileID: 0} - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, type: 3} @@ -5471,11 +5694,341 @@ PrefabInstance: propertyPath: SlimeSettings.SensorSpread value: 0.5 objectReference: {fileID: 0} + - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SlimeSettings.Decay.LowValue + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SlimeSettings.Drive.LowValue + value: 128 + objectReference: {fileID: 0} - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, type: 3} propertyPath: SlimeSettings.SensorDistance value: 12 objectReference: {fileID: 0} + - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SlimeSettings.Speed.LowValue + value: 25 + objectReference: {fileID: 0} + - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SlimeSettings.Decay.HighValue + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SlimeSettings.Drive.HighValue + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SlimeSettings.Speed.HighValue + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SlimeSettings.Decay.SlopeBlend + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SlimeSettings.Drive.SlopeBlend + value: 0.4 + objectReference: {fileID: 0} + - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SlimeSettings.Speed.SlopeBlend + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SlimeSettings.Decay.HeightBlend + value: 50 + objectReference: {fileID: 0} + - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SlimeSettings.Drive.HeightBlend + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SlimeSettings.Speed.HeightBlend + value: 0.01 + objectReference: {fileID: 0} + - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SlimeSettings.Diffusion.LowValue + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SlimeSettings.Intensity.LowValue + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SlimeSettings.TurnSpeed.LowValue + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SlimeSettings.Deposition.LowValue + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SlimeSettings.Diffusion.HighValue + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SlimeSettings.Intensity.HighValue + value: 100 + objectReference: {fileID: 0} + - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SlimeSettings.TurnSpeed.HighValue + value: 64 + objectReference: {fileID: 0} + - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SlimeSettings.Decay.SlopeThreshold + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SlimeSettings.Deposition.HighValue + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SlimeSettings.Diffusion.SlopeBlend + value: 0.3 + objectReference: {fileID: 0} + - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SlimeSettings.Drive.SlopeThreshold + value: 0.4 + objectReference: {fileID: 0} + - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SlimeSettings.Intensity.SlopeBlend + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SlimeSettings.Speed.SlopeThreshold + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SlimeSettings.TurnSpeed.SlopeBlend + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SlimeSettings.Decay.HeightSlopeLerp + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SlimeSettings.Decay.HeightThreshold + value: -125 + objectReference: {fileID: 0} + - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SlimeSettings.Deposition.SlopeBlend + value: 0.3 + objectReference: {fileID: 0} + - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SlimeSettings.Diffusion.HeightBlend + value: 0.01 + objectReference: {fileID: 0} + - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SlimeSettings.Drive.HeightSlopeLerp + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SlimeSettings.Drive.HeightThreshold + value: -100 + objectReference: {fileID: 0} + - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SlimeSettings.Intensity.HeightBlend + value: 50 + objectReference: {fileID: 0} + - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SlimeSettings.SensorSpread.LowValue + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SlimeSettings.Speed.HeightSlopeLerp + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SlimeSettings.Speed.HeightThreshold + value: -100 + objectReference: {fileID: 0} + - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SlimeSettings.TrailDamping.LowValue + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SlimeSettings.TurnSpeed.HeightBlend + value: 0.01 + objectReference: {fileID: 0} + - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SlimeSettings.Deposition.HeightBlend + value: 50 + objectReference: {fileID: 0} + - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SlimeSettings.SensorSpread.HighValue + value: 0.1 + objectReference: {fileID: 0} + - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SlimeSettings.TrailDamping.HighValue + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SlimeSettings.SensorDistance.LowValue + value: 64 + objectReference: {fileID: 0} + - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SlimeSettings.SensorSpread.SlopeBlend + value: 0.4 + objectReference: {fileID: 0} + - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SlimeSettings.TrailDamping.SlopeBlend + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SlimeSettings.Diffusion.SlopeThreshold + value: 0.3 + objectReference: {fileID: 0} + - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SlimeSettings.Intensity.SlopeThreshold + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SlimeSettings.SensorDistance.HighValue + value: 8 + objectReference: {fileID: 0} + - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SlimeSettings.SensorSpread.HeightBlend + value: 0.01 + objectReference: {fileID: 0} + - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SlimeSettings.TrailDamping.HeightBlend + value: 0.01 + objectReference: {fileID: 0} + - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SlimeSettings.TurnSpeed.SlopeThreshold + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SlimeSettings.Deposition.SlopeThreshold + value: 0.3 + objectReference: {fileID: 0} + - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SlimeSettings.Diffusion.HeightSlopeLerp + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SlimeSettings.Intensity.HeightSlopeLerp + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SlimeSettings.Intensity.HeightThreshold + value: -150 + objectReference: {fileID: 0} + - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SlimeSettings.SensorDistance.SlopeBlend + value: 0.1 + objectReference: {fileID: 0} + - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SlimeSettings.TurnSpeed.HeightSlopeLerp + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SlimeSettings.Deposition.HeightSlopeLerp + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SlimeSettings.Deposition.HeightThreshold + value: -150 + objectReference: {fileID: 0} + - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SlimeSettings.SensorDistance.HeightBlend + value: 15 + objectReference: {fileID: 0} + - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SlimeSettings.SensorSpread.SlopeThreshold + value: 0.4 + objectReference: {fileID: 0} + - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SlimeSettings.TrailDamping.SlopeThreshold + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SlimeSettings.SensorSpread.HeightSlopeLerp + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SlimeSettings.TrailDamping.HeightSlopeLerp + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SlimeSettings.SensorDistance.SlopeThreshold + value: 0.2 + objectReference: {fileID: 0} + - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SlimeSettings.SensorDistance.HeightSlopeLerp + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SlimeSettings.SensorDistance.HeightThreshold + value: -150 + objectReference: {fileID: 0} - target: {fileID: 6977256487485077368, guid: efd1f097ce29ffa48bb0045d6502f55d, type: 3} propertyPath: m_Name diff --git a/Assets/Scripts/ServerShared/Extensions.cs b/Assets/Scripts/ServerShared/Extensions.cs index a517ad079..c7805e576 100644 --- a/Assets/Scripts/ServerShared/Extensions.cs +++ b/Assets/Scripts/ServerShared/Extensions.cs @@ -24,6 +24,15 @@ public static class Extensions { return baseType.GetInterfaces().Any(interfaceType.Equals); } + + // https://stackoverflow.com/a/800469 + public static string GetHashSHA1(this byte[] data) + { + using (var sha1 = new System.Security.Cryptography.SHA1CryptoServiceProvider()) + { + return string.Concat(sha1.ComputeHash(data).Select(x => x.ToString("X2"))); + } + } public static void Send(this NetPeer peer, T message, DeliveryMethod method = DeliveryMethod.ReliableOrdered) where T : Message { diff --git a/Assets/Shaders/Compute/Slime/Slime.compute b/Assets/Shaders/Compute/Slime/Slime.compute index 03736a85d..a60181402 100644 --- a/Assets/Shaders/Compute/Slime/Slime.compute +++ b/Assets/Shaders/Compute/Slime/Slime.compute @@ -20,8 +20,44 @@ struct Particle float3 start; float3 middle; float3 end; + float intensity; }; +struct SlimeParameter +{ + float HeightSlopeLerp; + float HeightThreshold; + float HeightBlend; + float SlopeThreshold; + float SlopeBlend; + float HighValue; + float LowValue; +}; + +struct SlimeSettings +{ + SlimeParameter Deposition; + SlimeParameter Diffusion; + SlimeParameter Decay; + SlimeParameter TurnSpeed; + SlimeParameter Speed; + SlimeParameter Drive; + SlimeParameter SensorDistance; + SlimeParameter SensorSpread; + SlimeParameter TrailDamping; + SlimeParameter Intensity; +}; + +float evaluate(SlimeParameter param, float height, float slope) +{ + return lerp( + lerp(param.LowValue, param.HighValue, smoothstep(param.HeightThreshold - param.HeightBlend, param.HeightThreshold + param.HeightBlend, height)), + lerp(param.LowValue, param.HighValue, smoothstep(param.SlopeThreshold - param.SlopeBlend, param.SlopeThreshold + param.SlopeBlend, slope)), param.HeightSlopeLerp); +} + +// Parameter buffer +RWStructuredBuffer parameters; + // Accumulation Buffer RWTexture2D accumulation; @@ -37,19 +73,9 @@ SamplerState samplerHeightmap; int randomOffset; int numAgents; -float speed; -//float deltaTime; +float deltaTime; int textureWidth; float zoneRadius; -float deposition; -float diffusion; -float decay; -float sensorDistance; -float sensorSpread; -int sensorSize; -float randomSteering; -float turnSpeed; -float drive; // Hash function from H. Schechter & R. Bridson, goo.gl/RXiKaH inline uint hash(uint s) @@ -78,16 +104,16 @@ inline float2 posToUv(float2 pos) return pos / (zoneRadius * 2) + float2(.5, .5); } -float sense(float2 position, float angle, float directionSign) +float sense(int2 position, float angle, float directionSign, float spread, float distance) { - float sensorAngle = angle + directionSign * sensorSpread; + float sensorAngle = angle + directionSign * spread; float2 sensorDir = float2(cos(sensorAngle), sin(sensorAngle)); - int2 sensorCenter = position + sensorDir * sensorDistance; + int2 sensorCenter = position + sensorDir * distance; float sum = 0; - for(int x = -sensorSize; x <= sensorSize; x++) + for(int x = -1; x <= 1; x++) { - for(int y = -sensorSize; y <= sensorSize; y++) + for(int y = -1; y <= 1; y++) { int2 sample = sensorCenter + int2(x, y); if(sample.x >= 0 && sample.x < textureWidth && sample.y >= 0 && sample.y < textureWidth) @@ -104,39 +130,62 @@ inline float unlerp(float x, float min, float max) return (x - min) / (max - min); } +// Z-up normal of the heightmap +float3 GetNormal(int2 pos) +{ + if(pos.x >= textureWidth || pos.y >= textureWidth) return float3(0, 0, 1); + + float e = -Heightmap[pos + int2(1, 0)]; + float n = -Heightmap[pos + int2(0, 1)]; + float me = -Heightmap[pos]; + + // Deduce terrain normal + float3 normal = float3(e - me, n - me, 1.0 / textureWidth * zoneRadius * 2); + return normalize(normal); +} + [numthreads(NUM_THREAD_X,1,1)] void UpdateAgents (uint3 id : SV_DispatchThreadID) { if (id.x >= numAgents) return; Agent agent = agents[id.x]; + SlimeSettings settings = parameters[0]; + + float2 uv = posToUv(agent.position); + int2 texPos = int2(uv * textureWidth); + + float height = -Heightmap[texPos];//.SampleLevel(samplerHeightmap, uv, 0); + float3 normal = GetNormal(texPos); + float slope = acos(dot(normal, float3(0,0,1))) / UNITY_HALF_PI; // Move Agents based on direction and speed float2 direction = float2(cos(agent.angle), sin(agent.angle)); - agent.position += direction * speed; + agent.position += direction * evaluate(settings.Speed, height, slope) * deltaTime; float r = random(id.x + randomOffset); // Clamp position within bounds and randomize direction - if(dot(agent.position, agent.position) > zoneRadius * zoneRadius || isnan(agent.position.x)) + if(dot(agent.position, agent.position) > zoneRadius * zoneRadius) { agent.position = normalize(agent.position) * zoneRadius; //agent.position = float2(0,0); agent.angle = r * UNITY_TWO_PI; } - // if(isnan(agent.position.x)) - // { - // agent.position = float2(0,0); - // agent.angle = r * UNITY_TWO_PI; - // } + if(isnan(agent.position.x)) + { + agent.position = float2(0,0); + agent.angle = r * UNITY_TWO_PI; + } - float2 texPos = posToUv(agent.position) * textureWidth; + float spread = evaluate(settings.SensorSpread, height, slope); + float distance = evaluate(settings.SensorDistance, height, slope); // Acquire sensory data - float forwardSensor = sense(texPos, agent.angle, 0); - float leftSensor = sense(texPos, agent.angle, -1); - float rightSensor = sense(texPos, agent.angle, 1); + float forwardSensor = sense(texPos, agent.angle, 0, spread, distance); + float leftSensor = sense(texPos, agent.angle, -1, spread, distance); + float rightSensor = sense(texPos, agent.angle, 1, spread, distance); // Determine the range of the sensor inputs float minSensor = min(min(leftSensor, rightSensor), forwardSensor); @@ -144,7 +193,7 @@ void UpdateAgents (uint3 id : SV_DispatchThreadID) float range = min(maxSensor - minSensor, .01); // Normalize sensor inputs - forwardSensor = unlerp(forwardSensor, minSensor, maxSensor); + //forwardSensor = unlerp(forwardSensor, minSensor, maxSensor); leftSensor = unlerp(leftSensor, minSensor, maxSensor); rightSensor = unlerp(rightSensor, minSensor, maxSensor); @@ -152,12 +201,12 @@ void UpdateAgents (uint3 id : SV_DispatchThreadID) float desire = leftSensor - rightSensor; // Strength of its directional preference - float motivation = pow(range / maxSensor, 1 / drive); + float motivation = pow(range / maxSensor, 1 / evaluate(settings.Drive, height, slope)); - agent.angle += turnSpeed * lerp(r * 2 - 1, desire, motivation); + agent.angle += evaluate(settings.TurnSpeed, height, slope) * lerp(r * 2 - 1, desire, motivation) * deltaTime; agents[id.x] = agent; - accumulation[int2(texPos)] += deposition; + accumulation[texPos] += evaluate(settings.Deposition, height, slope) * deltaTime; } [numthreads(8,8,1)] @@ -167,6 +216,11 @@ void Diffuse (uint3 id : SV_DispatchThreadID) float previous = accumulation[id.xy]; + SlimeSettings settings = parameters[0]; + float height = -Heightmap[id.xy]; + float3 normal = GetNormal(id.xy); + float slope = acos(dot(normal, float3(0,0,1))) / UNITY_HALF_PI; + float sum = 0; for(int x = -1; x <= 1; x++) { @@ -181,7 +235,7 @@ void Diffuse (uint3 id : SV_DispatchThreadID) } float average = sum / 9; - diffusedAccumulation[id.xy] = lerp(previous, average, diffusion) * decay; + diffusedAccumulation[id.xy] = lerp(previous, average, saturate(evaluate(settings.Diffusion, height, slope) * deltaTime)) * saturate(1-evaluate(settings.Decay, height, slope) * deltaTime); } // Buffer containing the leading position of the agent particle @@ -195,7 +249,6 @@ float noiseAmplitude; float time; float heightRange; float heightOffset; -float trailDamping; int particleCount; #define HASHSCALE 0.1031 @@ -224,16 +277,37 @@ float perlinNoise1D(float p) void CreateAgentParticles (uint3 id : SV_DispatchThreadID) { Agent agent = agents[id.x]; + + float2 uv = posToUv(agent.position); + int2 texPos = int2(uv * textureWidth); + + SlimeSettings settings = parameters[0]; + float height = -Heightmap[texPos]; + float3 normal = GetNormal(texPos); + float slope = acos(dot(normal, float3(0,0,1))) / UNITY_HALF_PI; + float sequence = (float)id.x/particleCount; - float height = Heightmap.SampleLevel(samplerHeightmap, posToUv(agent.position), 0); - float particleHeight = -height + random(id.x) * heightRange + heightOffset; + //float height = -Heightmap.SampleLevel(samplerHeightmap, posToUv(agent.position), 0); + float particleHeight = height + pow(random(id.x)-.5, 3) * heightRange + heightOffset; Particle particle = particles[id.x]; - particle.end = lerp(particle.end, particle.middle, trailDamping); - particle.middle = lerp(particle.middle, particle.start, trailDamping); - particle.start = lerp(particle.start, float3( + float damping = evaluate(settings.TrailDamping, height, pow(slope, .25)); + float3 targetPosition = float3( agent.position.x + perlinNoise1D(id.x*3 + time + sequence) * noiseAmplitude, particleHeight + perlinNoise1D(id.x*3 + 1 + time + sequence) * noiseAmplitude, - agent.position.y + perlinNoise1D(id.x*3 + 2 + time + sequence) * noiseAmplitude), trailDamping); + agent.position.y + perlinNoise1D(id.x*3 + 2 + time + sequence) * noiseAmplitude); + if(length(particle.start-targetPosition) > 256) + { + particle.end = targetPosition; + particle.middle = targetPosition; + particle.start = targetPosition; + } + else + { + particle.end = lerp(particle.end, particle.middle, damping/4); + particle.middle = lerp(particle.middle, particle.start, damping/2); + particle.start = lerp(particle.start, targetPosition, damping); + } + particle.intensity = evaluate(settings.Intensity, height, slope); particles[id.x] = particle; } @@ -291,9 +365,11 @@ void CreateParticleGeometry (uint3 id : SV_DispatchThreadID) v0.pos = pos - right; v0.uv = float2(trailLerp, 0); + v0.intensity = particle.intensity; v1.pos = pos + right; v1.uv = float2(trailLerp, 1); + v1.intensity = particle.intensity; uint vId = idx * 2; vertexBuffer[vId] = v0; diff --git a/Assets/Shaders/Compute/Slime/Slime.cs b/Assets/Shaders/Compute/Slime/Slime.cs index 2f7fa5dde..989fe946f 100644 --- a/Assets/Shaders/Compute/Slime/Slime.cs +++ b/Assets/Shaders/Compute/Slime/Slime.cs @@ -46,6 +46,7 @@ public class Slime : MonoBehaviour private int _diffuseKernel; private int _particleKernel; private int _geometryKernel; + private string _settingsHash; private int IndexBufferSize => ParticleCount * 6 * (TrailPoints - 1); @@ -56,7 +57,8 @@ public class Slime : MonoBehaviour private ComputeBuffer _agentsBuffer; private RenderTexture _accumulationTexture; private RenderTexture _previousAccumulationTexture; - + + private ComputeBuffer _parameterBuffer; private ComputeBuffer _particlesBuffer; private ComputeBuffer _indexBuffer; @@ -77,12 +79,14 @@ public class Slime : MonoBehaviour public Vector3 Start; public Vector3 Middle; public Vector3 End; + public float Intensity; } struct Vertex { public Vector3 Position; public Vector2 UV; + public float Intensity; } #endregion @@ -111,7 +115,9 @@ public class Slime : MonoBehaviour }; } _agentsBuffer.SetData(agents); - + + _parameterBuffer = new ComputeBuffer(1, Marshal.SizeOf(typeof(SlimeSettings))); + _particlesBuffer = new ComputeBuffer(ParticleCount, Marshal.SizeOf(typeof(Particle))); _vertexBuffer = new ComputeBuffer(ParticleCount * 2 * TrailPoints, Marshal.SizeOf(typeof(Vertex))); @@ -137,25 +143,30 @@ public class Slime : MonoBehaviour _indexBuffer.SetData(indexData); } + void UpdateSettings() + { + RegisterResolver.Register(); + var hash = MessagePackSerializer.Serialize(SlimeSettings).GetHashSHA1(); + if(hash != _settingsHash) + { + _settingsHash = hash; + _parameterBuffer.SetData(new[] {SlimeSettings}); + } + } + // Update is called once per frame void Update() { + UpdateSettings(); + SlimeCompute.SetInt("randomOffset", Random.Range(0,65536)); SlimeCompute.SetInt("textureWidth", TextureSize); SlimeCompute.SetInt("numAgents", AgentCount); SlimeCompute.SetFloat("zoneRadius", ZoneRadius); - SlimeCompute.SetFloat("deposition", SlimeSettings.Deposition * Time.deltaTime); - SlimeCompute.SetFloat("diffusion", SlimeSettings.Diffusion * Time.deltaTime); - SlimeCompute.SetFloat("decay", max(1 - SlimeSettings.Decay * Time.deltaTime, 0.01f)); - SlimeCompute.SetFloat("speed", SlimeSettings.Speed * Time.deltaTime); - SlimeCompute.SetFloat("turnSpeed", SlimeSettings.TurnSpeed * Time.deltaTime); - SlimeCompute.SetFloat("randomSteering", SlimeSettings.RandomSteering); - SlimeCompute.SetFloat("sensorDistance", SlimeSettings.SensorDistance); - SlimeCompute.SetFloat("drive", SlimeSettings.Drive); - SlimeCompute.SetFloat("sensorSpread", SlimeSettings.SensorSpread * Mathf.PI / 2); - SlimeCompute.SetInt("sensorSize", SlimeSettings.SensorSize); + SlimeCompute.SetFloat("deltaTime", Time.deltaTime); SlimeCompute.SetBuffer(_updateAgentsKernel, "agents", _agentsBuffer); + SlimeCompute.SetBuffer(_updateAgentsKernel, "parameters", _parameterBuffer); SlimeCompute.SetTexture(_updateAgentsKernel, "accumulation", _accumulationTexture); SlimeCompute.SetTexture(_updateAgentsKernel, "Heightmap", GravityTexture); @@ -163,11 +174,14 @@ public class Slime : MonoBehaviour SlimeCompute.Dispatch(_updateAgentsKernel, numberOfGroups, 1, 1); Graphics.Blit(_accumulationTexture, _previousAccumulationTexture); + SlimeCompute.SetBuffer(_diffuseKernel, "parameters", _parameterBuffer); + SlimeCompute.SetTexture(_diffuseKernel, "Heightmap", GravityTexture); SlimeCompute.SetTexture(_diffuseKernel, "accumulation", _previousAccumulationTexture); SlimeCompute.SetTexture(_diffuseKernel, "diffusedAccumulation", _accumulationTexture); numberOfGroups = Mathf.CeilToInt((float)TextureSize / 8); SlimeCompute.Dispatch(_diffuseKernel, numberOfGroups, numberOfGroups, 1); + SlimeCompute.SetBuffer(_particleKernel, "parameters", _parameterBuffer); SlimeCompute.SetTexture(_particleKernel, "Heightmap", GravityTexture); SlimeCompute.SetBuffer(_particleKernel, "agents", _agentsBuffer); SlimeCompute.SetBuffer(_particleKernel, "particles", _particlesBuffer); @@ -214,16 +228,35 @@ public class Slime : MonoBehaviour } [Serializable, MessagePackObject(keyAsPropertyName:true)] -public class SlimeSettings +public struct SlimeSettings { - public float Deposition; - public float Diffusion; - public float Decay; - public float TurnSpeed; - public float RandomSteering; - public float Speed; - public float Drive; - public float SensorDistance; - public float SensorSpread; - public int SensorSize; + public SlimeParameter Deposition; + public SlimeParameter Diffusion; + public SlimeParameter Decay; + public SlimeParameter TurnSpeed; + public SlimeParameter Speed; + public SlimeParameter Drive; + public SlimeParameter SensorDistance; + public SlimeParameter SensorSpread; + public SlimeParameter TrailDamping; + public SlimeParameter Intensity; +} + +[Serializable, MessagePackObject(keyAsPropertyName:true)] +public struct SlimeParameter +{ + public float HeightSlopeLerp; + public float HeightThreshold; + public float HeightBlend; + public float SlopeThreshold; + public float SlopeBlend; + public float HighValue; + public float LowValue; + + public float Evaluate(float height, float slope) + { + var heightValue = lerp(LowValue, HighValue, smoothstep(HeightThreshold - HeightBlend, HeightThreshold + HeightBlend, height)); + var slopeValue = lerp(LowValue, HighValue, smoothstep(SlopeThreshold - SlopeBlend, SlopeThreshold + SlopeBlend, slope)); + return lerp(heightValue, slopeValue, HeightSlopeLerp); + } } diff --git a/Assets/Shaders/Compute/Slime/SlimeParticles.shader b/Assets/Shaders/Compute/Slime/SlimeParticles.shader index f14a99af8..4a810c78b 100644 --- a/Assets/Shaders/Compute/Slime/SlimeParticles.shader +++ b/Assets/Shaders/Compute/Slime/SlimeParticles.shader @@ -46,7 +46,7 @@ Pass{ Out.pos = UnityObjectToClipPos(float4(vtx.pos, 1.0)); Out.uv = vtx.uv; - Out.col = lerp(_StartColor, _EndColor, vtx.uv.x); + Out.col = float4(lerp(_StartColor, _EndColor, vtx.uv.x).xyz, vtx.intensity); Out.screenPos = ComputeScreenPos(float4(vtx.pos, 1.0)); return Out; @@ -57,7 +57,7 @@ Pass{ // Simple quadratic curve "texture" float x = 1 - 2 * abs(In.uv.y - .5); //return float4(x,In.uv.x, 0 ,1); - float i = x * x * smoothstep(0, _Roundedness, In.uv.x) * (1-In.uv.x) * _Intensity; + float i = x * x * smoothstep(0, _Roundedness, In.uv.x) * (1-In.uv.x) * _Intensity * In.col.a; // Apply screen space dithering float2 screenUV = In.screenPos.xy / In.screenPos.w; @@ -107,7 +107,7 @@ Pass{ Out.pos = UnityObjectToClipPos(float4(vtx.pos, 1.0)); Out.uv = vtx.uv; - Out.col = 1; + Out.col = vtx.intensity; Out.screenPos = ComputeScreenPos(float4(vtx.pos, 1.0)); return Out; @@ -117,7 +117,7 @@ Pass{ { // Simple quadratic curve "texture" float x = 1 - 2 * abs(In.uv.y - .5); - float i = x * x * smoothstep(0, _Roundedness, In.uv.x) * (1-In.uv.x) * _Intensity; + float i = x * x * smoothstep(0, _Roundedness, In.uv.x) * (1-In.uv.x) * _Intensity * In.col.a; // Apply screen space dithering float2 screenUV = In.screenPos.xy / In.screenPos.w; diff --git a/Assets/Shaders/Compute/Slime/SlimeTrails.mat b/Assets/Shaders/Compute/Slime/SlimeTrails.mat index 8f8425369..d981acff5 100644 --- a/Assets/Shaders/Compute/Slime/SlimeTrails.mat +++ b/Assets/Shaders/Compute/Slime/SlimeTrails.mat @@ -63,7 +63,7 @@ Material: - _GlossMapScale: 1 - _Glossiness: 0.5 - _GlossyReflections: 1 - - _Intensity: 24.1 + - _Intensity: 10 - _Metallic: 0 - _Mode: 0 - _OcclusionStrength: 1 @@ -77,6 +77,6 @@ Material: m_Colors: - _Color: {r: 1, g: 1, b: 1, a: 1} - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - - _EndColor: {r: 0.5849056, g: 0.19037023, b: 0.40103197, a: 1} + - _EndColor: {r: 0.90588236, g: 0.089682385, b: 0.5242822, a: 1} - _StartColor: {r: 0.9339623, g: 0.31624126, b: 0.13656995, a: 1} m_BuildTextureStacks: [] diff --git a/Assets/Shaders/Compute/Slime/SlimeVertex.cginc b/Assets/Shaders/Compute/Slime/SlimeVertex.cginc index 96e020668..4fccd8115 100644 --- a/Assets/Shaders/Compute/Slime/SlimeVertex.cginc +++ b/Assets/Shaders/Compute/Slime/SlimeVertex.cginc @@ -5,6 +5,7 @@ struct Vertex { float3 pos; float2 uv; + float intensity; }; inline Vertex GetDefaultVertex() { From ad499a09ac40309645c619e9f016270c1ebc9ce0 Mon Sep 17 00:00:00 2001 From: Reinier Vens Date: Sun, 28 Mar 2021 03:43:35 +0100 Subject: [PATCH 20/51] Hotfix Game wasn't actually starting properly 'cause of all the slime stuff --- .../Materials/Brushes/Sector Boundary Fog.mat | 2 +- Assets/Materials/Fog Marching Main Menu.mat | 4 +- Assets/Materials/UI/Map Gravity Lines.mat | 2 +- Assets/Prefabs/RPG/Planets/Planet.prefab | 15 - Assets/Prefabs/RPG/Slime Renderer.prefab | 115 ++++- Assets/Scenes/ARPG.unity | 159 ++---- .../Postprocessing Profile Main Menu.asset | 4 +- Assets/Scenes/Main Menu.unity | 174 ++----- Assets/Scenes/TestScene.unity | 455 ------------------ GameData/PlayerSettings.msgpack | 4 +- UserSettings/EditorUserSettings.asset | 2 +- 11 files changed, 179 insertions(+), 757 deletions(-) diff --git a/Assets/Materials/Brushes/Sector Boundary Fog.mat b/Assets/Materials/Brushes/Sector Boundary Fog.mat index 9930ab9a8..f8be5f166 100644 --- a/Assets/Materials/Brushes/Sector Boundary Fog.mat +++ b/Assets/Materials/Brushes/Sector Boundary Fog.mat @@ -58,7 +58,7 @@ Material: m_Floats: - _BumpScale: 1 - _Cutoff: 0.5 - - _Depth: 75 + - _Depth: 139.4 - _DetailNormalMapScale: 1 - _DstBlend: 0 - _GlossMapScale: 1 diff --git a/Assets/Materials/Fog Marching Main Menu.mat b/Assets/Materials/Fog Marching Main Menu.mat index 3d074e6ae..b28a76a2d 100644 --- a/Assets/Materials/Fog Marching Main Menu.mat +++ b/Assets/Materials/Fog Marching Main Menu.mat @@ -43,7 +43,7 @@ Material: - _AlphaFloor: 0 - _DepthBlend: 512 - _DepthCeiling: 4096 - - _Gamma: 0.3 + - _Gamma: 0.25 - _GridCeilingBlend: -300 - _GridCeilingDensity: 0.01 - _GridCeilingFollow: 0 @@ -61,5 +61,5 @@ Material: - _StepExponent: 2 - _TintExponent: 8 m_Colors: - - _Tint: {r: 0.59599996, g: 0.59599996, b: 0.59599996, a: 1} + - _Tint: {r: 0.447, g: 0.447, b: 0.447, a: 1} m_BuildTextureStacks: [] diff --git a/Assets/Materials/UI/Map Gravity Lines.mat b/Assets/Materials/UI/Map Gravity Lines.mat index 8cac61716..bcee9e098 100644 --- a/Assets/Materials/UI/Map Gravity Lines.mat +++ b/Assets/Materials/UI/Map Gravity Lines.mat @@ -86,7 +86,7 @@ Material: - _Mode: 0 - _OcclusionStrength: 1 - _Parallax: 0.02 - - _Scale: 5.603361 + - _Scale: 2.2094758 - _SmoothnessTextureChannel: 0 - _SpecularHighlights: 1 - _SrcBlend: 1 diff --git a/Assets/Prefabs/RPG/Planets/Planet.prefab b/Assets/Prefabs/RPG/Planets/Planet.prefab index b6b0d2faf..42705c0f7 100644 --- a/Assets/Prefabs/RPG/Planets/Planet.prefab +++ b/Assets/Prefabs/RPG/Planets/Planet.prefab @@ -92,7 +92,6 @@ GameObject: - component: {fileID: 8859079004671924239} - component: {fileID: 8859079004671924339} - component: {fileID: 8859079004671924338} - - component: {fileID: 8859079004671924336} m_Layer: 9 m_Name: Gravity Well m_TagString: Untagged @@ -163,20 +162,6 @@ MeshRenderer: m_SortingLayer: 0 m_SortingOrder: 0 m_AdditionalVertexStreams: {fileID: 0} ---- !u!114 &8859079004671924336 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8859079004671924238} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: a13344dbee46f384881bd54203513967, type: 3} - m_Name: - m_EditorClassIdentifier: - GravityMaterial: {fileID: 0} - Shader: --- !u!1 &8859079004937162791 GameObject: m_ObjectHideFlags: 0 diff --git a/Assets/Prefabs/RPG/Slime Renderer.prefab b/Assets/Prefabs/RPG/Slime Renderer.prefab index 79640312e..8f1f53c07 100644 --- a/Assets/Prefabs/RPG/Slime Renderer.prefab +++ b/Assets/Prefabs/RPG/Slime Renderer.prefab @@ -11,8 +11,8 @@ GameObject: - component: {fileID: 6977256487485077373} - component: {fileID: 6977256487485077374} - component: {fileID: 6977256487485077375} - - component: {fileID: 5262902644310250487} - m_Layer: 0 + - component: {fileID: 2784739443721397315} + m_Layer: 13 m_Name: Slime Renderer m_TagString: Untagged m_Icon: {fileID: 0} @@ -82,7 +82,7 @@ MeshRenderer: m_SortingLayer: 0 m_SortingOrder: 0 m_AdditionalVertexStreams: {fileID: 0} ---- !u!114 &5262902644310250487 +--- !u!114 &2784739443721397315 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -95,24 +95,103 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: TargetCamera: {fileID: 0} - GravityCamera: {fileID: 0} SlimeCompute: {fileID: 7200000, guid: 33eea2339ec4dc143b0e192a0b7f0a33, type: 3} AccumulationMaterial: {fileID: 2100000, guid: 817815ac1f000054ab738bb243cd7dba, type: 2} - ParticleMaterial: {fileID: 0} - GravityTexture: {fileID: 0} - TextureSize: 2048 + ParticleMaterial: {fileID: 2100000, guid: 3b53e1eb5d8a5d34f9bc8c1928ceba76, type: 2} + GravityTexture: {fileID: 8400000, guid: cc403ed0b6a104445b6534b1877c5556, type: 2} + TextureSize: 1024 ZoneRadius: 512 - AgentCount: 1048576 + AgentCount: 262144 ParticleCount: 65536 + TrailPoints: 4 SlimeSettings: - Deposition: 1 - Diffusion: 0.5 - Decay: 1 - TurnSpeed: 12 - RandomSteering: 1 - Speed: 25 - Drive: 16 - SensorDistance: 8 - SensorSpread: 0.64 - SensorSize: 1 + Deposition: + HeightSlopeLerp: 0 + HeightThreshold: -150 + HeightBlend: 50 + SlopeThreshold: 0.3 + SlopeBlend: 0.3 + HighValue: 0 + LowValue: 1 + Diffusion: + HeightSlopeLerp: 1 + HeightThreshold: 0 + HeightBlend: 0.01 + SlopeThreshold: 0.3 + SlopeBlend: 0.3 + HighValue: 0 + LowValue: 2 + Decay: + HeightSlopeLerp: 1 + HeightThreshold: -125 + HeightBlend: 50 + SlopeThreshold: 0.5 + SlopeBlend: 0.5 + HighValue: 0 + LowValue: 2 + TurnSpeed: + HeightSlopeLerp: 1 + HeightThreshold: 0 + HeightBlend: 0.01 + SlopeThreshold: 0.5 + SlopeBlend: 0.5 + HighValue: 64 + LowValue: 0.5 + Speed: + HeightSlopeLerp: 1 + HeightThreshold: -100 + HeightBlend: 0.01 + SlopeThreshold: 0.5 + SlopeBlend: 0.5 + HighValue: 0 + LowValue: 25 + Drive: + HeightSlopeLerp: 1 + HeightThreshold: -100 + HeightBlend: 10 + SlopeThreshold: 0.4 + SlopeBlend: 0.4 + HighValue: 0 + LowValue: 128 + SensorDistance: + HeightSlopeLerp: 1 + HeightThreshold: -150 + HeightBlend: 15 + SlopeThreshold: 0.2 + SlopeBlend: 0.1 + HighValue: 8 + LowValue: 64 + SensorSpread: + HeightSlopeLerp: 1 + HeightThreshold: 0 + HeightBlend: 0.01 + SlopeThreshold: 0.4 + SlopeBlend: 0.4 + HighValue: 0.1 + LowValue: 2 + TrailDamping: + HeightSlopeLerp: 1 + HeightThreshold: 0 + HeightBlend: 0.01 + SlopeThreshold: 0.5 + SlopeBlend: 0.5 + HighValue: 0 + LowValue: 2 + Intensity: + HeightSlopeLerp: 0.5 + HeightThreshold: -150 + HeightBlend: 50 + SlopeThreshold: 0.5 + SlopeBlend: 0.5 + HighValue: 110 + LowValue: 10 + ZoneCeiling: -50 + ZoneFloor: -100 + NoiseFrequency: 1 + NoiseAmplitude: 5 + ParticleHeightRange: 50 + ParticleHeightOffset: 10 + TrailStartWidth: 0.1 + TrailEndWidth: 0 + TrailDamping: 0.25 diff --git a/Assets/Scenes/ARPG.unity b/Assets/Scenes/ARPG.unity index 19cb02023..bf240a899 100644 --- a/Assets/Scenes/ARPG.unity +++ b/Assets/Scenes/ARPG.unity @@ -343,7 +343,6 @@ GameObject: - component: {fileID: 23420357} - component: {fileID: 23420360} - component: {fileID: 23420359} - - component: {fileID: 23420358} m_Layer: 13 m_Name: Ambient Fog Light m_TagString: Untagged @@ -363,22 +362,8 @@ Transform: m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 1037490739} - m_RootOrder: 1 + m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &23420358 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 23420356} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: a13344dbee46f384881bd54203513967, type: 3} - m_Name: - m_EditorClassIdentifier: - GravityMaterial: {fileID: 0} - Shader: --- !u!23 &23420359 MeshRenderer: m_ObjectHideFlags: 0 @@ -7433,64 +7418,6 @@ MonoBehaviour: CopyRotation: 0 PixelSnapCamera: {fileID: 0} PixelSnapIncrement: 1 ---- !u!1 &491219182 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 491219184} - - component: {fileID: 491219183} - m_Layer: 0 - m_Name: WwiseGlobal - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &491219183 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 491219182} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: a4eab75687879a445a2a2397d86a2172, type: 3} - m_Name: - m_EditorClassIdentifier: - InitializationSettings: {fileID: 11400000, guid: ca1886ece3dfc5e49902e78defccd355, - type: 2} - basePath: - language: - defaultPoolSize: 0 - lowerPoolSize: 0 - streamingPoolSize: 0 - memoryCutoffThreshold: 0 - monitorPoolSize: 0 - monitorQueuePoolSize: 0 - callbackManagerBufferSize: 0 - spatialAudioPoolSize: 0 - maxSoundPropagationDepth: 0 - diffractionFlags: 11 - engineLogging: 0 ---- !u!4 &491219184 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 491219182} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 9 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &496438310 GameObject: m_ObjectHideFlags: 0 @@ -14814,7 +14741,6 @@ GameObject: m_Component: - component: {fileID: 1009503730} - component: {fileID: 1009503729} - - component: {fileID: 1009503728} - component: {fileID: 1009503731} - component: {fileID: 1009503732} - component: {fileID: 1009503733} @@ -14828,23 +14754,6 @@ GameObject: m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!114 &1009503728 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1009503727} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: d30227341391e764b87bcc7096c35470, type: 3} - m_Name: - m_EditorClassIdentifier: - GlobalGravityMultiplier: 1 - ForceMode: 1 - GradientStepSize: 0.01 - NormalMultiplier: 100 - GravityObjects: [] --- !u!114 &1009503729 MonoBehaviour: m_ObjectHideFlags: 0 @@ -15006,8 +14915,8 @@ MonoBehaviour: AsteroidSpritesheetWidth: 4 AsteroidSpritesheetHeight: 4 LODHandler: {fileID: 1009503736} - SlimeRenderer: {fileID: 0} - SlimeGravityCamera: {fileID: 0} + SlimeRenderer: {fileID: 1254851254} + SlimeGravityCamera: {fileID: 1066823975} Tour: 0 TourSwitchTime: 10 TourFollowDistance: 100 @@ -15524,6 +15433,7 @@ Transform: m_LocalPosition: {x: 0, y: -5, z: 0} m_LocalScale: {x: 3000, y: 3000, z: 3000} m_Children: + - {fileID: 1254851255} - {fileID: 1476765548} - {fileID: 23420357} - {fileID: 1108843909} @@ -16337,7 +16247,7 @@ Transform: - {fileID: 945347192} - {fileID: 195655951} m_Father: {fileID: 1037490739} - m_RootOrder: 2 + m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1115239398 GameObject: @@ -17671,8 +17581,18 @@ PrefabInstance: m_ObjectHideFlags: 0 serializedVersion: 2 m_Modification: - m_TransformParent: {fileID: 0} + m_TransformParent: {fileID: 1037490739} m_Modifications: + - target: {fileID: 2784739443721397315, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: TrailPoints + value: 5 + objectReference: {fileID: 0} + - target: {fileID: 2784739443721397315, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: TargetCamera + value: + objectReference: {fileID: 2115559089} - target: {fileID: 6977256487485077368, guid: efd1f097ce29ffa48bb0045d6502f55d, type: 3} propertyPath: m_Name @@ -17686,7 +17606,7 @@ PrefabInstance: - target: {fileID: 6977256487485077373, guid: efd1f097ce29ffa48bb0045d6502f55d, type: 3} propertyPath: m_RootOrder - value: 10 + value: 0 objectReference: {fileID: 0} - target: {fileID: 6977256487485077373, guid: efd1f097ce29ffa48bb0045d6502f55d, type: 3} @@ -17721,12 +17641,12 @@ PrefabInstance: - target: {fileID: 6977256487485077373, guid: efd1f097ce29ffa48bb0045d6502f55d, type: 3} propertyPath: m_LocalRotation.w - value: 0.7071068 + value: 1 objectReference: {fileID: 0} - target: {fileID: 6977256487485077373, guid: efd1f097ce29ffa48bb0045d6502f55d, type: 3} propertyPath: m_LocalRotation.x - value: 0.7071068 + value: -0 objectReference: {fileID: 0} - target: {fileID: 6977256487485077373, guid: efd1f097ce29ffa48bb0045d6502f55d, type: 3} @@ -17755,6 +17675,24 @@ PrefabInstance: objectReference: {fileID: 0} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: efd1f097ce29ffa48bb0045d6502f55d, type: 3} +--- !u!114 &1254851254 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 2784739443721397315, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + m_PrefabInstance: {fileID: 1254851253} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8ffec49d55e3429418714ceb048bfeae, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!4 &1254851255 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 6977256487485077373, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + m_PrefabInstance: {fileID: 1254851253} + m_PrefabAsset: {fileID: 0} --- !u!1 &1261700233 GameObject: m_ObjectHideFlags: 0 @@ -20528,7 +20466,6 @@ GameObject: - component: {fileID: 1476765548} - component: {fileID: 1476765551} - component: {fileID: 1476765550} - - component: {fileID: 1476765549} m_Layer: 9 m_Name: Boundary m_TagString: Untagged @@ -20548,22 +20485,8 @@ Transform: m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 1037490739} - m_RootOrder: 0 + m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &1476765549 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1476765547} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: a13344dbee46f384881bd54203513967, type: 3} - m_Name: - m_EditorClassIdentifier: - GravityMaterial: {fileID: 0} - Shader: --- !u!23 &1476765550 MeshRenderer: m_ObjectHideFlags: 0 @@ -21441,7 +21364,7 @@ PrefabInstance: - target: {fileID: 878382121558056004, guid: 2758dfa2744d7ad4d8877545189d116e, type: 3} propertyPath: m_AnchoredPosition.x - value: 0 + value: 55.675 objectReference: {fileID: 0} - target: {fileID: 878382121558056004, guid: 2758dfa2744d7ad4d8877545189d116e, type: 3} @@ -22610,7 +22533,7 @@ PrefabInstance: - target: {fileID: 878382121558056004, guid: 2758dfa2744d7ad4d8877545189d116e, type: 3} propertyPath: m_AnchoredPosition.x - value: 0 + value: 60.98 objectReference: {fileID: 0} - target: {fileID: 878382121558056004, guid: 2758dfa2744d7ad4d8877545189d116e, type: 3} @@ -23280,7 +23203,7 @@ Transform: - {fileID: 1713745165} - {fileID: 1390575963} m_Father: {fileID: 1037490739} - m_RootOrder: 3 + m_RootOrder: 4 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1665127615 GameObject: diff --git a/Assets/Scenes/ARPG_Profiles/Postprocessing Profile Main Menu.asset b/Assets/Scenes/ARPG_Profiles/Postprocessing Profile Main Menu.asset index 4b88ca486..a08f9c4c5 100644 --- a/Assets/Scenes/ARPG_Profiles/Postprocessing Profile Main Menu.asset +++ b/Assets/Scenes/ARPG_Profiles/Postprocessing Profile Main Menu.asset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:569dda0a979c91c30c5ccc2bfb151c307d9bdf9d13ced44f57f554147892095f -size 25680 +oid sha256:516f31734e3c876a220a55ca30d91bc46f054dd9bd874f881e39115cf466821a +size 25682 diff --git a/Assets/Scenes/Main Menu.unity b/Assets/Scenes/Main Menu.unity index 6f60d0f11..380ffd8a5 100644 --- a/Assets/Scenes/Main Menu.unity +++ b/Assets/Scenes/Main Menu.unity @@ -229,12 +229,12 @@ PrefabInstance: - target: {fileID: 878382121558056004, guid: 2758dfa2744d7ad4d8877545189d116e, type: 3} propertyPath: m_AnchorMax.y - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 878382121558056004, guid: 2758dfa2744d7ad4d8877545189d116e, type: 3} propertyPath: m_AnchorMin.y - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 878382121558056004, guid: 2758dfa2744d7ad4d8877545189d116e, type: 3} @@ -254,7 +254,7 @@ PrefabInstance: - target: {fileID: 878382121558056004, guid: 2758dfa2744d7ad4d8877545189d116e, type: 3} propertyPath: m_AnchoredPosition.y - value: -16 + value: 0 objectReference: {fileID: 0} - target: {fileID: 1713457305180270767, guid: 2758dfa2744d7ad4d8877545189d116e, type: 3} @@ -556,7 +556,7 @@ Transform: m_Children: - {fileID: 801832274} m_Father: {fileID: 0} - m_RootOrder: 8 + m_RootOrder: 7 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &356429273 GameObject: @@ -911,7 +911,7 @@ Transform: m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 11 + m_RootOrder: 10 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &557816235 GameObject: @@ -1302,8 +1302,8 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 741153267} - m_LocalRotation: {x: 0.0155069195, y: 0.9502416, z: -0.30741316, w: 0.047933277} - m_LocalPosition: {x: -117.52002, y: -77.087425, z: 149.09026} + m_LocalRotation: {x: 0.015506901, y: 0.9502416, z: -0.30741307, w: 0.047933236} + m_LocalPosition: {x: -117.51998, y: -77.08744, z: 149.09026} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: - {fileID: 412917866} @@ -1773,8 +1773,8 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 965376321} - m_LocalRotation: {x: 0.0155069195, y: 0.9502416, z: -0.30741316, w: 0.047933277} - m_LocalPosition: {x: -117.52002, y: -77.087425, z: 149.09026} + m_LocalRotation: {x: 0.015506901, y: 0.9502416, z: -0.30741307, w: 0.047933236} + m_LocalPosition: {x: -117.51998, y: -77.08744, z: 149.09026} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 0} @@ -1909,6 +1909,7 @@ GameObject: - component: {fileID: 991231190} - component: {fileID: 991231189} - component: {fileID: 991231193} + - component: {fileID: 991231194} m_Layer: 5 m_Name: Main Menu Canvas m_TagString: Untagged @@ -1991,7 +1992,7 @@ RectTransform: - {fileID: 6584140821722344271} - {fileID: 1000515313} m_Father: {fileID: 0} - m_RootOrder: 10 + m_RootOrder: 9 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0} @@ -2018,6 +2019,18 @@ MonoBehaviour: FadeDistance: 1024 FadeAlphaExponent: 2 FadePositionExponent: 2 +--- !u!114 &991231194 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 991231188} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c3cd207057515c4438a31a6a7b548fe7, type: 3} + m_Name: + m_EditorClassIdentifier: --- !u!1 &1000515312 GameObject: m_ObjectHideFlags: 0 @@ -2251,7 +2264,7 @@ Transform: m_GameObject: {fileID: 1172538219} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 10, z: 0} - m_LocalScale: {x: 250, y: 250, z: 250} + m_LocalScale: {x: 1000, y: 1000, z: 1000} m_Children: - {fileID: 1572994236} - {fileID: 765320285} @@ -2451,7 +2464,7 @@ Transform: m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 9 + m_RootOrder: 8 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1001 &1429393530 PrefabInstance: @@ -2702,12 +2715,12 @@ PrefabInstance: - target: {fileID: 878382121558056004, guid: 2758dfa2744d7ad4d8877545189d116e, type: 3} propertyPath: m_AnchorMax.y - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 878382121558056004, guid: 2758dfa2744d7ad4d8877545189d116e, type: 3} propertyPath: m_AnchorMin.y - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 878382121558056004, guid: 2758dfa2744d7ad4d8877545189d116e, type: 3} @@ -2727,7 +2740,7 @@ PrefabInstance: - target: {fileID: 878382121558056004, guid: 2758dfa2744d7ad4d8877545189d116e, type: 3} propertyPath: m_AnchoredPosition.y - value: -16 + value: 0 objectReference: {fileID: 0} - target: {fileID: 1713457305180270767, guid: 2758dfa2744d7ad4d8877545189d116e, type: 3} @@ -3024,129 +3037,6 @@ Transform: m_Father: {fileID: 1340266884} m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1854054862 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1854054864} - - component: {fileID: 1854054863} - - component: {fileID: 1854054865} - - component: {fileID: 1854054867} - - component: {fileID: 1854054866} - m_Layer: 0 - m_Name: WwiseGlobal - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &1854054863 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1854054862} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: a4eab75687879a445a2a2397d86a2172, type: 3} - m_Name: - m_EditorClassIdentifier: - InitializationSettings: {fileID: 11400000, guid: ca1886ece3dfc5e49902e78defccd355, - type: 2} - basePath: - language: - defaultPoolSize: 0 - lowerPoolSize: 0 - streamingPoolSize: 0 - memoryCutoffThreshold: 0 - monitorPoolSize: 0 - monitorQueuePoolSize: 0 - callbackManagerBufferSize: 0 - spatialAudioPoolSize: 0 - maxSoundPropagationDepth: 0 - diffractionFlags: 11 - engineLogging: 0 ---- !u!4 &1854054864 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1854054862} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 7 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &1854054865 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1854054862} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: c3cd207057515c4438a31a6a7b548fe7, type: 3} - m_Name: - m_EditorClassIdentifier: ---- !u!114 &1854054866 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1854054862} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: d1f1a89fa3598c644a67edc70006ab8b, type: 3} - m_Name: - m_EditorClassIdentifier: - triggerList: f7e1664c - useOtherObject: 0 - data: - idInternal: 0 - valueGuidInternal: - WwiseObjectReference: {fileID: 11400000, guid: be557f5797521904d8f254bfbd064b49, - type: 2} - decodeBank: 0 - loadAsynchronous: 0 - saveDecodedBank: 0 - unloadTriggerList: - bankNameInternal: - valueGuidInternal: ---- !u!114 &1854054867 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1854054862} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: d1f1a89fa3598c644a67edc70006ab8b, type: 3} - m_Name: - m_EditorClassIdentifier: - triggerList: f7e1664c - useOtherObject: 0 - data: - idInternal: 0 - valueGuidInternal: - WwiseObjectReference: {fileID: 11400000, guid: 1f7596d26fd55df42a4027d547caa78a, - type: 2} - decodeBank: 0 - loadAsynchronous: 0 - saveDecodedBank: 0 - unloadTriggerList: - bankNameInternal: - valueGuidInternal: --- !u!1 &1872107548 GameObject: m_ObjectHideFlags: 0 @@ -3780,7 +3670,7 @@ MonoBehaviour: m_TargetGraphic: {fileID: 4195065044983066084} m_HandleRect: {fileID: 4195065044983066085} m_Direction: 2 - m_Value: 0 + m_Value: 1 m_Size: 1 m_NumberOfSteps: 0 m_OnValueChanged: @@ -3966,10 +3856,10 @@ RectTransform: m_Father: {fileID: 6584140821722344271} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 144.0148} + m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0, y: 1} --- !u!114 &6584140821494235354 MonoBehaviour: diff --git a/Assets/Scenes/TestScene.unity b/Assets/Scenes/TestScene.unity index 14ac91b43..e108bb4a7 100644 --- a/Assets/Scenes/TestScene.unity +++ b/Assets/Scenes/TestScene.unity @@ -5594,471 +5594,16 @@ PrefabInstance: m_Modification: m_TransformParent: {fileID: 753458617} m_Modifications: - - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, - type: 3} - propertyPath: ZoneFloor - value: -100 - objectReference: {fileID: 0} - - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, - type: 3} - propertyPath: AgentCount - value: 262144 - objectReference: {fileID: 0} - - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, - type: 3} - propertyPath: TextureSize - value: 1024 - objectReference: {fileID: 0} - - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, - type: 3} - propertyPath: ZoneCeiling - value: -50 - objectReference: {fileID: 0} - - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, - type: 3} - propertyPath: TargetCamera - value: - objectReference: {fileID: 1314993072} - - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, - type: 3} - propertyPath: TrailDamping - value: 0.25 - objectReference: {fileID: 0} - - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, - type: 3} - propertyPath: GravityCamera - value: - objectReference: {fileID: 983613691} - - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, - type: 3} - propertyPath: TrailEndWidth - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, - type: 3} - propertyPath: GravityTexture - value: - objectReference: {fileID: 8400000, guid: cc403ed0b6a104445b6534b1877c5556, type: 2} - - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, - type: 3} - propertyPath: NoiseAmplitude - value: 5 - objectReference: {fileID: 0} - - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, - type: 3} - propertyPath: NoiseFrequency - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, - type: 3} - propertyPath: TrailStartWidth - value: 0.1 - objectReference: {fileID: 0} - - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, - type: 3} - propertyPath: ParticleMaterial - value: - objectReference: {fileID: 2100000, guid: 3b53e1eb5d8a5d34f9bc8c1928ceba76, type: 2} - - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, - type: 3} - propertyPath: ParticleHeightRange - value: 50 - objectReference: {fileID: 0} - - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, - type: 3} - propertyPath: SlimeSettings.Decay - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, - type: 3} - propertyPath: SlimeSettings.Drive - value: 223.83 - objectReference: {fileID: 0} - - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, - type: 3} - propertyPath: SlimeSettings.Speed - value: 20 - objectReference: {fileID: 0} - - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, - type: 3} - propertyPath: ParticleHeightOffset - value: 10 - objectReference: {fileID: 0} - - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, - type: 3} - propertyPath: SlimeSettings.TurnSpeed - value: 50 - objectReference: {fileID: 0} - - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, - type: 3} - propertyPath: SlimeSettings.SensorSpread - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, - type: 3} - propertyPath: SlimeSettings.Decay.LowValue - value: 2 - objectReference: {fileID: 0} - - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, - type: 3} - propertyPath: SlimeSettings.Drive.LowValue - value: 128 - objectReference: {fileID: 0} - - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, - type: 3} - propertyPath: SlimeSettings.SensorDistance - value: 12 - objectReference: {fileID: 0} - - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, - type: 3} - propertyPath: SlimeSettings.Speed.LowValue - value: 25 - objectReference: {fileID: 0} - - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, - type: 3} - propertyPath: SlimeSettings.Decay.HighValue - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, - type: 3} - propertyPath: SlimeSettings.Drive.HighValue - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, - type: 3} - propertyPath: SlimeSettings.Speed.HighValue - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, - type: 3} - propertyPath: SlimeSettings.Decay.SlopeBlend - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, - type: 3} - propertyPath: SlimeSettings.Drive.SlopeBlend - value: 0.4 - objectReference: {fileID: 0} - - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, - type: 3} - propertyPath: SlimeSettings.Speed.SlopeBlend - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, - type: 3} - propertyPath: SlimeSettings.Decay.HeightBlend - value: 50 - objectReference: {fileID: 0} - - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, - type: 3} - propertyPath: SlimeSettings.Drive.HeightBlend - value: 10 - objectReference: {fileID: 0} - - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, - type: 3} - propertyPath: SlimeSettings.Speed.HeightBlend - value: 0.01 - objectReference: {fileID: 0} - - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, - type: 3} - propertyPath: SlimeSettings.Diffusion.LowValue - value: 2 - objectReference: {fileID: 0} - - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, - type: 3} - propertyPath: SlimeSettings.Intensity.LowValue - value: 10 - objectReference: {fileID: 0} - - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, - type: 3} - propertyPath: SlimeSettings.TurnSpeed.LowValue - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, - type: 3} - propertyPath: SlimeSettings.Deposition.LowValue - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, - type: 3} - propertyPath: SlimeSettings.Diffusion.HighValue - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, - type: 3} - propertyPath: SlimeSettings.Intensity.HighValue - value: 100 - objectReference: {fileID: 0} - - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, - type: 3} - propertyPath: SlimeSettings.TurnSpeed.HighValue - value: 64 - objectReference: {fileID: 0} - - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, - type: 3} - propertyPath: SlimeSettings.Decay.SlopeThreshold - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, - type: 3} - propertyPath: SlimeSettings.Deposition.HighValue - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, - type: 3} - propertyPath: SlimeSettings.Diffusion.SlopeBlend - value: 0.3 - objectReference: {fileID: 0} - - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, - type: 3} - propertyPath: SlimeSettings.Drive.SlopeThreshold - value: 0.4 - objectReference: {fileID: 0} - - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, - type: 3} - propertyPath: SlimeSettings.Intensity.SlopeBlend - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, - type: 3} - propertyPath: SlimeSettings.Speed.SlopeThreshold - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, - type: 3} - propertyPath: SlimeSettings.TurnSpeed.SlopeBlend - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, - type: 3} - propertyPath: SlimeSettings.Decay.HeightSlopeLerp - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, - type: 3} - propertyPath: SlimeSettings.Decay.HeightThreshold - value: -125 - objectReference: {fileID: 0} - - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, - type: 3} - propertyPath: SlimeSettings.Deposition.SlopeBlend - value: 0.3 - objectReference: {fileID: 0} - - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, - type: 3} - propertyPath: SlimeSettings.Diffusion.HeightBlend - value: 0.01 - objectReference: {fileID: 0} - - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, - type: 3} - propertyPath: SlimeSettings.Drive.HeightSlopeLerp - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, - type: 3} - propertyPath: SlimeSettings.Drive.HeightThreshold - value: -100 - objectReference: {fileID: 0} - - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, - type: 3} - propertyPath: SlimeSettings.Intensity.HeightBlend - value: 50 - objectReference: {fileID: 0} - - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, - type: 3} - propertyPath: SlimeSettings.SensorSpread.LowValue - value: 2 - objectReference: {fileID: 0} - - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, - type: 3} - propertyPath: SlimeSettings.Speed.HeightSlopeLerp - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, - type: 3} - propertyPath: SlimeSettings.Speed.HeightThreshold - value: -100 - objectReference: {fileID: 0} - - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, - type: 3} - propertyPath: SlimeSettings.TrailDamping.LowValue - value: 2 - objectReference: {fileID: 0} - - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, - type: 3} - propertyPath: SlimeSettings.TurnSpeed.HeightBlend - value: 0.01 - objectReference: {fileID: 0} - - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, - type: 3} - propertyPath: SlimeSettings.Deposition.HeightBlend - value: 50 - objectReference: {fileID: 0} - - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, - type: 3} - propertyPath: SlimeSettings.SensorSpread.HighValue - value: 0.1 - objectReference: {fileID: 0} - - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, - type: 3} - propertyPath: SlimeSettings.TrailDamping.HighValue - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, - type: 3} - propertyPath: SlimeSettings.SensorDistance.LowValue - value: 64 - objectReference: {fileID: 0} - - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, - type: 3} - propertyPath: SlimeSettings.SensorSpread.SlopeBlend - value: 0.4 - objectReference: {fileID: 0} - - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, - type: 3} - propertyPath: SlimeSettings.TrailDamping.SlopeBlend - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, - type: 3} - propertyPath: SlimeSettings.Diffusion.SlopeThreshold - value: 0.3 - objectReference: {fileID: 0} - - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, - type: 3} - propertyPath: SlimeSettings.Intensity.SlopeThreshold - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, - type: 3} - propertyPath: SlimeSettings.SensorDistance.HighValue - value: 8 - objectReference: {fileID: 0} - - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, - type: 3} - propertyPath: SlimeSettings.SensorSpread.HeightBlend - value: 0.01 - objectReference: {fileID: 0} - - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, - type: 3} - propertyPath: SlimeSettings.TrailDamping.HeightBlend - value: 0.01 - objectReference: {fileID: 0} - - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, - type: 3} - propertyPath: SlimeSettings.TurnSpeed.SlopeThreshold - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, - type: 3} - propertyPath: SlimeSettings.Deposition.SlopeThreshold - value: 0.3 - objectReference: {fileID: 0} - - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, - type: 3} - propertyPath: SlimeSettings.Diffusion.HeightSlopeLerp - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, - type: 3} - propertyPath: SlimeSettings.Intensity.HeightSlopeLerp - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, - type: 3} - propertyPath: SlimeSettings.Intensity.HeightThreshold - value: -150 - objectReference: {fileID: 0} - - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, - type: 3} - propertyPath: SlimeSettings.SensorDistance.SlopeBlend - value: 0.1 - objectReference: {fileID: 0} - - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, - type: 3} - propertyPath: SlimeSettings.TurnSpeed.HeightSlopeLerp - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, - type: 3} - propertyPath: SlimeSettings.Deposition.HeightSlopeLerp - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, - type: 3} - propertyPath: SlimeSettings.Deposition.HeightThreshold - value: -150 - objectReference: {fileID: 0} - - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, - type: 3} - propertyPath: SlimeSettings.SensorDistance.HeightBlend - value: 15 - objectReference: {fileID: 0} - - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, - type: 3} - propertyPath: SlimeSettings.SensorSpread.SlopeThreshold - value: 0.4 - objectReference: {fileID: 0} - - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, - type: 3} - propertyPath: SlimeSettings.TrailDamping.SlopeThreshold - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, - type: 3} - propertyPath: SlimeSettings.SensorSpread.HeightSlopeLerp - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, - type: 3} - propertyPath: SlimeSettings.TrailDamping.HeightSlopeLerp - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, - type: 3} - propertyPath: SlimeSettings.SensorDistance.SlopeThreshold - value: 0.2 - objectReference: {fileID: 0} - - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, - type: 3} - propertyPath: SlimeSettings.SensorDistance.HeightSlopeLerp - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 5262902644310250487, guid: efd1f097ce29ffa48bb0045d6502f55d, - type: 3} - propertyPath: SlimeSettings.SensorDistance.HeightThreshold - value: -150 - objectReference: {fileID: 0} - target: {fileID: 6977256487485077368, guid: efd1f097ce29ffa48bb0045d6502f55d, type: 3} propertyPath: m_Name value: Slime Renderer objectReference: {fileID: 0} - - target: {fileID: 6977256487485077368, guid: efd1f097ce29ffa48bb0045d6502f55d, - type: 3} - propertyPath: m_Layer - value: 13 - objectReference: {fileID: 0} - target: {fileID: 6977256487485077373, guid: efd1f097ce29ffa48bb0045d6502f55d, type: 3} propertyPath: m_RootOrder value: 4 objectReference: {fileID: 0} - - target: {fileID: 6977256487485077373, guid: efd1f097ce29ffa48bb0045d6502f55d, - type: 3} - propertyPath: m_LocalScale.x - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 6977256487485077373, guid: efd1f097ce29ffa48bb0045d6502f55d, - type: 3} - propertyPath: m_LocalScale.y - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 6977256487485077373, guid: efd1f097ce29ffa48bb0045d6502f55d, - type: 3} - propertyPath: m_LocalScale.z - value: 1 - objectReference: {fileID: 0} - target: {fileID: 6977256487485077373, guid: efd1f097ce29ffa48bb0045d6502f55d, type: 3} propertyPath: m_LocalPosition.x diff --git a/GameData/PlayerSettings.msgpack b/GameData/PlayerSettings.msgpack index b004789a1..0dc961547 100644 --- a/GameData/PlayerSettings.msgpack +++ b/GameData/PlayerSettings.msgpack @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:3f1ed3931b1a6b0235d45ec961e3e5c05e6437398319b045d4dfa417cf6d0c2a -size 90830 +oid sha256:9546c3e63b57691d460f94935cbca17383cd961d57206c7e2c6ed4bed928930d +size 24214 diff --git a/UserSettings/EditorUserSettings.asset b/UserSettings/EditorUserSettings.asset index e241e21d4..0f2118614 100644 --- a/UserSettings/EditorUserSettings.asset +++ b/UserSettings/EditorUserSettings.asset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:7c6216d4180f1c0f2a7f14a0a4ba0f0d7265b969c20453eb9d5769062d201a8d +oid sha256:e2a4311cc59f90f70a8406d44edb74bea447aae948dba0fbaab2e7e03e517784 size 1749 From 38b0f05c3d021ac62c9317848cc3bd0252c1d2e1 Mon Sep 17 00:00:00 2001 From: Defirm <32074047+voivoontos@users.noreply.github.com> Date: Sun, 28 Mar 2021 15:14:20 +0200 Subject: [PATCH 21/51] defirm08 1st optimisation for payer spaceship. virtual voice. clone of spaceship actor to a simpler version keeping from thrusters only necessary voices. optimising enemy spaceship voice : limit instances to 30 virtual voice playback priority. --- .../Actor-Mixer Hierarchy/SFX_Defirm_Unit.wwu | 1622 ++++++++++++++++- ...omy_WwiseProject.crossover.validationcache | 10 +- ...a-Economy_WwiseProject.crossover.wsettings | 25 +- .../Events/SFX_Defirm_unit.wwu | 1 + .../Events/enemy_ship.wwu | 124 ++ .../Originals/SFX/SFX__ship_sensor_ping3.akd | Bin 0 -> 26240 bytes .../Originals/SFX/SFX__ship_sensor_ping3.wav | 3 + .../Default Work Unit.wwu | 8 +- 8 files changed, 1777 insertions(+), 16 deletions(-) create mode 100644 Aetheria-Economy_WwiseProject/Events/enemy_ship.wwu create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX__ship_sensor_ping3.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX__ship_sensor_ping3.wav diff --git a/Aetheria-Economy_WwiseProject/Actor-Mixer Hierarchy/SFX_Defirm_Unit.wwu b/Aetheria-Economy_WwiseProject/Actor-Mixer Hierarchy/SFX_Defirm_Unit.wwu index 591a42fc7..69b328402 100644 --- a/Aetheria-Economy_WwiseProject/Actor-Mixer Hierarchy/SFX_Defirm_Unit.wwu +++ b/Aetheria-Economy_WwiseProject/Actor-Mixer Hierarchy/SFX_Defirm_Unit.wwu @@ -12,8 +12,10 @@ + + @@ -2994,9 +2996,1627 @@ + + SFX + SFX__ship_sensor_ping3.wav + + + + - + + + + + + + + + + + + + 30 + + + + + + + True + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 0 + 5 + Log3 + + + 2000 + -200 + 37 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2.8 + + + + + + + + + + + + + + + 0 + -200 + 5 + + + 1 + 0 + 37 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + -6.69195 + 21 + + + 1 + -200 + 53 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 0 + 5 + + + 71.81706 + 0.12559 + 0 + + + 100 + 0.23097 + 37 + + + + + + + + + + + + + + + + + + + + + 0 + 0.641 + 5 + + + 1 + 0.23866 + 37 + + + + + + + + + + + + + + + + + + + + + 0 + 0.174 + 5 + + + 1 + 0 + 37 + + + + + + + + SFX + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -3.8 + + + + + + + + + + + + + + + 0 + -0.07208 + 21 + + + 1 + -200 + 53 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SFX + Flamethrower SOUND.wav + + + + + + + + + + + + + + + + 2.8 + + + + + + + + + + + + + + + 0 + -200 + 5 + + + 1 + 0 + 37 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + -6.38715 + 21 + + + 1 + -200 + 53 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 0 + 5 + + + 71.81706 + 0.12559 + 0 + + + 100 + 0.23097 + 37 + + + + + + + + + SFX + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -3.8 + + + + + + + + + + + + + + + 0 + -2.57085 + 21 + + + 1 + -200 + 53 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SFX + Flamethrower SOUND.wav + + + + + + + + + + + + + + + + 2.8 + + + + + + + + + + + + + + + 0 + -200 + 5 + + + 1 + 0 + 37 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + -6.38715 + 21 + + + 1 + -200 + 53 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 0 + 5 + + + 71.81706 + 0.12559 + 0 + + + 100 + 0.23097 + 37 + + + + + + + + + SFX + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -3.8 + + + + + + + + + + + + + + + 0 + 0.07208 + 21 + + + 1 + -200 + 53 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SFX + Flamethrower SOUND.wav + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.6 + + + + + + + + + + + + + + + 0 + 5.93877 + 21 + + + 1 + -200 + 53 + + + + + + + + + + + + + + + + + 0 + -12.14909 + 5 + + + 1 + -5 + 0 + + + 10 + -2.80358 + 37 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 100 + 5 + + + 1 + -0 + 37 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 115.44484 + 5 + + + 1 + 20 + 37 + + + + + + + + + + + + + + + + + + + + + + + 0 + 93.44537 + 5 + + + 0.19461 + 86.25361 + 0 + + + 0.35774 + 44.70588 + 0 + + + 0.67468 + 44.65156 + 0 + + + 0.69242 + 3.37148 + 0 + + + 1 + 4.20168 + 37 + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + -96 + 21 + + + 1 + 0 + 53 + + + + + + + + + + + + + + + + + + + + + + 0 + 129.076 + 5 + + + 1 + 0 + 37 + + + + + + + + + + SoundSeed Grain + SFX_Spcshp_reactor_extended_V2.0.wav + + + + + + SFX + + + + + + + + + + + + + -15 + + + + + + + + + + + + + + + 0 + -4.88957 + 5 + + + 0.49826 + -200 + 0 + + + 1 + -200 + 37 + + + + + + + + + + + + + + + + + + + + + SFX + Aetheia_Overheat_Alarm.wav + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SFX + SFX__railgun_fire.wav + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 0 + 5 + + + 0.10095 + -32.41752 + 0 + + + 1 + -55.73771 + 37 + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 0 + 5 + + + 1 + 79.6253 + 37 + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + -96 + 21 + + + 1 + 0 + 53 + + + + + + + + + + + + + + + + + + SoundSeed Grain + SFX__railgun_charging.wav + + + + + + SFX + + + + + + + + + + + + + + + + + + + + + + + SFX + SFX__railgun_charginf_failure.wav + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SFX + SFX__railgun_charginf_failure.wav + + + + + + + + + + + + + + + + + + + + + SFX + SFX_railgun_hit2.wav + + + + + + SFX + SFX_railgun_hit3.wav + + + + + + + + + + + + + + + + + + -2.3 + + + + + + + + + + + + + + + + + + + SFX + SFX__ship_sensor_ping.wav + + + + + + SFX + SFX__ship_sensor_ping3.wav + + + + + + + diff --git a/Aetheria-Economy_WwiseProject/Aetheria-Economy_WwiseProject.crossover.validationcache b/Aetheria-Economy_WwiseProject/Aetheria-Economy_WwiseProject.crossover.validationcache index 0f7dd9a2e..41c6b7868 100644 --- a/Aetheria-Economy_WwiseProject/Aetheria-Economy_WwiseProject.crossover.validationcache +++ b/Aetheria-Economy_WwiseProject/Aetheria-Economy_WwiseProject.crossover.validationcache @@ -4,7 +4,7 @@ - + @@ -17,8 +17,8 @@ - - + + @@ -29,8 +29,8 @@ - - + + diff --git a/Aetheria-Economy_WwiseProject/Aetheria-Economy_WwiseProject.crossover.wsettings b/Aetheria-Economy_WwiseProject/Aetheria-Economy_WwiseProject.crossover.wsettings index dbf9cbd01..b641deadc 100644 --- a/Aetheria-Economy_WwiseProject/Aetheria-Economy_WwiseProject.crossover.wsettings +++ b/Aetheria-Economy_WwiseProject/Aetheria-Economy_WwiseProject.crossover.wsettings @@ -11,9 +11,11 @@ + + @@ -21,19 +23,26 @@ + + + + + + + @@ -60,12 +69,16 @@ + + + + - + @@ -82,7 +95,7 @@ - + @@ -90,12 +103,12 @@ - + - - - + + + diff --git a/Aetheria-Economy_WwiseProject/Events/SFX_Defirm_unit.wwu b/Aetheria-Economy_WwiseProject/Events/SFX_Defirm_unit.wwu index 9d669da99..6a4233d63 100644 --- a/Aetheria-Economy_WwiseProject/Events/SFX_Defirm_unit.wwu +++ b/Aetheria-Economy_WwiseProject/Events/SFX_Defirm_unit.wwu @@ -37,6 +37,7 @@ + diff --git a/Aetheria-Economy_WwiseProject/Events/enemy_ship.wwu b/Aetheria-Economy_WwiseProject/Events/enemy_ship.wwu new file mode 100644 index 000000000..eb161b813 --- /dev/null +++ b/Aetheria-Economy_WwiseProject/Events/enemy_ship.wwu @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/SFX__ship_sensor_ping3.akd b/Aetheria-Economy_WwiseProject/Originals/SFX/SFX__ship_sensor_ping3.akd new file mode 100644 index 0000000000000000000000000000000000000000..eac59c784ff920415ca23ad18f524cd71d8a801b GIT binary patch literal 26240 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 - 42 + 0 - 0.52 + 1 - 0.99 + 1 @@ -113,7 +113,7 @@ - 1 + 0.35 From 49072a8b801a46e3e97fb3e7ae80377401835904 Mon Sep 17 00:00:00 2001 From: Defirm <32074047+voivoontos@users.noreply.github.com> Date: Sun, 28 Mar 2021 15:32:17 +0200 Subject: [PATCH 22/51] defrim09 enemy railgun events --- ...a-Economy_WwiseProject.crossover.wsettings | 5 ++ .../Events/enemy_ship.wwu | 55 +++++++++++++++++++ .../Default Work Unit.wwu | 2 +- 3 files changed, 61 insertions(+), 1 deletion(-) diff --git a/Aetheria-Economy_WwiseProject/Aetheria-Economy_WwiseProject.crossover.wsettings b/Aetheria-Economy_WwiseProject/Aetheria-Economy_WwiseProject.crossover.wsettings index b641deadc..c0e0b9480 100644 --- a/Aetheria-Economy_WwiseProject/Aetheria-Economy_WwiseProject.crossover.wsettings +++ b/Aetheria-Economy_WwiseProject/Aetheria-Economy_WwiseProject.crossover.wsettings @@ -4,6 +4,7 @@ + @@ -11,7 +12,9 @@ + + @@ -24,6 +27,7 @@ + @@ -36,6 +40,7 @@ + diff --git a/Aetheria-Economy_WwiseProject/Events/enemy_ship.wwu b/Aetheria-Economy_WwiseProject/Events/enemy_ship.wwu index eb161b813..1c7699b02 100644 --- a/Aetheria-Economy_WwiseProject/Events/enemy_ship.wwu +++ b/Aetheria-Economy_WwiseProject/Events/enemy_ship.wwu @@ -118,6 +118,61 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Aetheria-Economy_WwiseProject/Soundcaster Sessions/Default Work Unit.wwu b/Aetheria-Economy_WwiseProject/Soundcaster Sessions/Default Work Unit.wwu index 1ec04d95e..d34ae13cd 100644 --- a/Aetheria-Economy_WwiseProject/Soundcaster Sessions/Default Work Unit.wwu +++ b/Aetheria-Economy_WwiseProject/Soundcaster Sessions/Default Work Unit.wwu @@ -89,7 +89,7 @@ - 0.98 + 0 From 48759380c5542112c8bc8af773469a8811089466 Mon Sep 17 00:00:00 2001 From: Reinier Vens Date: Tue, 30 Mar 2021 01:17:58 +0100 Subject: [PATCH 23/51] Slime Stuff & DB Prep Put the finishing touches on the microfauna Prepared the repository for database extraction --- Aetheria.Shared.Unity.csproj | 658 ++++++++++++ Assets/Materials/Brushes/Sector Tint.mat | 2 +- .../Materials/Brushes/Sector Waves Large.mat | 2 +- .../Materials/Brushes/Sector Waves Medium.mat | 2 +- .../Materials/Brushes/Sector Waves Small.mat | 2 +- .../Materials/Brushes/Wormhole Lighting.mat | 2 +- Assets/Materials/Fog Marching Main Menu.mat | 2 +- Assets/Materials/Fog Marching Test.mat | 12 +- Assets/Materials/Fog Marching.mat | 20 +- Assets/Materials/UI/Map Gravity Lines.mat | 2 +- .../Formatters/TypelessFormatter.cs | 6 +- .../Internal/AsymmetricKeyHashTable.cs | 4 - .../TypelessContractlessStandardResolver.cs | 3 - .../Resolvers/TypelessObjectResolver.cs | 2 - Assets/Prefabs/RPG/Slime Renderer.prefab | 107 +- Assets/Resources/Fog Tint.renderTexture | 2 +- Assets/Resources/Settings.asset | 4 +- Assets/Scenes/ARPG.unity | 321 +++++- Assets/Scenes/Main Menu.unity | 66 +- Assets/Scenes/TestScene.unity | 498 ++++++++- Assets/Scripts/CultCache.meta | 8 + Assets/Scripts/CultCache/Editor.meta | 8 + .../Editor/DatabaseInspector.cs | 66 +- .../Editor/DatabaseInspector.cs.meta | 0 .../{ => CultCache}/Editor/DatabaseView.cs | 15 +- .../Editor/DatabaseView.cs.meta | 0 .../{ => CultCache}/Editor/EditorDispatch.cs | 0 .../Editor/EditorDispatch.cs.meta | 0 .../Scripts/CultCache/Editor/InspectorBase.cs | 9 + .../CultCache/Editor/InspectorBase.cs.meta | 3 + .../Scripts/CultCache/Editor/Inspectors.meta | 8 + .../Editor/Inspectors/MathematicsInspector.cs | 60 ++ .../Inspectors/MathematicsInspector.cs.meta} | 2 +- .../Editor}/RethinkConnection.cs | 7 +- .../Editor}/RethinkConnection.cs.meta | 0 Assets/Scripts/CultCache/UnityExtensions.cs | 45 + .../Scripts/CultCache/UnityExtensions.cs.meta | 3 + .../CultCache}/XKCDColors.cs | 0 .../CultCache}/XKCDColors.cs.meta | 0 ...ty.asmdef => Aetheria.Shared.Unity.asmdef} | 6 +- ...meta => Aetheria.Shared.Unity.asmdef.meta} | 0 Assets/Scripts/ServerShared/Agents/Agent.cs | 1 - Assets/Scripts/ServerShared/Attributes.cs | 129 --- .../Behaviors/SurveyController.cs | 155 --- .../Behaviors/WanderController.cs | 78 -- Assets/Scripts/ServerShared/CultCache.meta | 8 + .../ServerShared/CultCache/Attributes.cs | 140 +++ .../Attributes.cs.meta} | 2 +- .../{ => CultCache}/DatabaseCache.cs | 3 - .../{ => CultCache}/DatabaseCache.cs.meta | 0 .../{ => CultCache}/DatabaseEntry.cs | 16 +- .../{ => CultCache}/DatabaseEntry.cs.meta | 0 .../ServerShared/CultCache/Extensions.cs | 64 ++ .../ServerShared/CultCache/Extensions.cs.meta | 3 + .../ServerShared/CultCache/MathExtensions.cs | 4 + .../CultCache/MathExtensions.cs.meta | 3 + .../ServerShared/CultCache/Serialization.meta | 8 + .../Serialization}/JsonConverters.cs | 0 .../Serialization}/JsonConverters.cs.meta | 0 .../Serialization}/JsonKnownTypes.meta | 0 .../JsonKnownTypes/AttributesManager.cs | 0 .../JsonKnownTypes/AttributesManager.cs.meta | 0 .../JsonKnownTypes/Exceptions.meta | 0 .../Exceptions/JsonKnownTypesException.cs | 0 .../JsonKnownTypesException.cs.meta | 0 .../JsonDiscriminatorAttribute.cs | 0 .../JsonDiscriminatorAttribute.cs.meta | 0 .../JsonDiscriminatorSettings.cs | 0 .../JsonDiscriminatorSettings.cs.meta | 0 .../JsonKnownThisTypeAttribute.cs | 0 .../JsonKnownThisTypeAttribute.cs.meta | 0 .../JsonKnownTypes/JsonKnownTypeAttribute.cs | 0 .../JsonKnownTypeAttribute.cs.meta | 0 .../JsonKnownTypes/JsonKnownTypes.csproj | 0 .../JsonKnownTypes/JsonKnownTypes.csproj.meta | 0 .../JsonKnownTypesContractResolver.cs | 0 .../JsonKnownTypesContractResolver.cs.meta | 0 .../JsonKnownTypes/JsonKnownTypesConverter.cs | 0 .../JsonKnownTypesConverter.cs.meta | 0 .../JsonKnownTypesDictionaryManager.cs | 0 .../JsonKnownTypesDictionaryManager.cs.meta | 0 .../JsonKnownTypes/JsonKnownTypesSettings.cs | 0 .../JsonKnownTypesSettings.cs.meta | 0 .../JsonKnownTypesSettingsManager.cs | 13 +- .../JsonKnownTypesSettingsManager.cs.meta | 0 .../Serialization}/JsonKnownTypes/Utils.meta | 0 .../JsonKnownTypes/Utils/Mapper.cs | 0 .../JsonKnownTypes/Utils/Mapper.cs.meta | 0 .../Serialization}/MathFormatters.cs | 0 .../Serialization}/MathFormatters.cs.meta | 0 .../Serialization}/MathResolver.cs | 0 .../Serialization}/MathResolver.cs.meta | 0 .../Serialization}/RegisterResolver.cs | 0 .../Serialization}/RegisterResolver.cs.meta | 0 .../Serialization}/TypeFormatterResolver.cs | 0 .../TypeFormatterResolver.cs.meta | 0 .../Scripts/ServerShared/EntitySerializer.cs | 1 - Assets/Scripts/ServerShared/Extensions.cs | 54 - .../Scripts/ServerShared/NIH/RethinkDb.meta | 8 + .../NIH/RethinkDb/RethinkDB.asmdef | 3 + .../NIH/RethinkDb/RethinkDB.asmdef.meta | 7 + .../RethinkDb.Driver.Linq.meta | 0 .../RethinkDb.Driver.Linq/Attributes.meta | 0 .../Attributes/PrimaryIndexAttribute.cs | 0 .../Attributes/PrimaryIndexAttribute.cs.meta | 0 .../Attributes/SecondaryIndexAttribute.cs | 0 .../SecondaryIndexAttribute.cs.meta | 0 .../RethinkDb.Driver.Linq/LinqExtensions.cs | 0 .../LinqExtensions.cs.meta | 0 .../MemberNameResolver.cs | 0 .../MemberNameResolver.cs.meta | 0 .../RethinkDb.Driver.Linq.csproj | 0 .../RethinkDb.Driver.Linq.csproj.meta | 0 .../RethinkDb.Driver.Linq.ruleset | 0 .../RethinkDb.Driver.Linq.ruleset.meta | 0 .../RethinkDb.Driver.Linq/RethinkDbGroup.cs | 0 .../RethinkDbGroup.cs.meta | 0 .../RethinkDbQueryModelVisitor.cs | 0 .../RethinkDbQueryModelVisitor.cs.meta | 0 .../RethinkQueryExecutor.cs | 0 .../RethinkQueryExecutor.cs.meta | 0 .../RethinkDb.Driver.Linq/RethinkQueryable.cs | 0 .../RethinkQueryable.cs.meta | 0 .../SelectionProjector.cs | 0 .../SelectionProjector.cs.meta | 0 .../WhereClauseParsers.meta | 0 .../WhereClauseParsers/BaseIndexParser.cs | 0 .../BaseIndexParser.cs.meta | 0 .../WhereClauseParsers/DefaultParser.cs | 0 .../WhereClauseParsers/DefaultParser.cs.meta | 0 .../WhereClauseParsers/ExprHelper.cs | 0 .../WhereClauseParsers/ExprHelper.cs.meta | 0 .../WhereClauseParsers/ExpressionVisitor.cs | 0 .../ExpressionVisitor.cs.meta | 0 .../WhereClauseParsers/GroupItemsParser.cs | 0 .../GroupItemsParser.cs.meta | 0 .../WhereClauseParsers/IWhereClauseParser.cs | 0 .../IWhereClauseParser.cs.meta | 0 .../WhereClauseParsers/PrimaryIndexParser.cs | 0 .../PrimaryIndexParser.cs.meta | 0 .../SecondaryIndexParser.cs | 0 .../SecondaryIndexParser.cs.meta | 0 .../WhereClauseParsers/SubQueryVisitor.meta | 0 .../SubQueryVisitor/AllSubQueryVisitor.cs | 0 .../AllSubQueryVisitor.cs.meta | 0 .../SubQueryVisitor/AnySubQueryVisitor.cs | 0 .../AnySubQueryVisitor.cs.meta | 0 .../BaseFilterableSubQueryVisitor.cs | 0 .../BaseFilterableSubQueryVisitor.cs.meta | 0 .../SubQueryVisitor/BaseSubQueryVisitor.cs | 0 .../BaseSubQueryVisitor.cs.meta | 0 .../ContainsSubQueryVisitor.cs | 0 .../ContainsSubQueryVisitor.cs.meta | 0 .../SubQueryVisitor/CountSubQueryVisitor.cs | 0 .../CountSubQueryVisitor.cs.meta | 0 .../SubQueryVisitor/FirstSubQueryVisitor.cs | 0 .../FirstSubQueryVisitor.cs.meta | 0 .../SubQueryVisitor/ISubQueryVisitor.cs | 0 .../SubQueryVisitor/ISubQueryVisitor.cs.meta | 0 .../NIH/{ => RethinkDb}/RethinkDb.Driver.meta | 0 .../{ => RethinkDb}/RethinkDb.Driver/Ast.meta | 0 .../RethinkDb.Driver/Ast/ExtensionHelper.cs | 0 .../Ast/ExtensionHelper.cs.meta | 0 .../RethinkDb.Driver/Ast/Poco.cs | 0 .../RethinkDb.Driver/Ast/Poco.cs.meta | 0 .../RethinkDb.Driver/Ast/PropertyHelper.cs | 0 .../Ast/PropertyHelper.cs.meta | 0 .../RethinkDb.Driver/Ast/Query.cs | 0 .../RethinkDb.Driver/Ast/Query.cs.meta | 0 .../RethinkDb.Driver/Ast/ReqlAst.cs | 0 .../RethinkDb.Driver/Ast/ReqlAst.cs.meta | 0 .../RethinkDb.Driver/Ast/ReqlExpr.cs | 0 .../RethinkDb.Driver/Ast/ReqlExpr.cs.meta | 0 .../RethinkDb.Driver/Ast/ReqlRaw.cs | 0 .../RethinkDb.Driver/Ast/ReqlRaw.cs.meta | 0 .../RethinkDb.Driver/Ast/TopLevel.cs | 0 .../RethinkDb.Driver/Ast/TopLevel.cs.meta | 0 .../RethinkDb.Driver/Ast/Util.cs | 0 .../RethinkDb.Driver/Ast/Util.cs.meta | 0 .../RethinkDb.Driver/ErrorBuilder.cs | 0 .../RethinkDb.Driver/ErrorBuilder.cs.meta | 0 .../RethinkDb.Driver/Extras.meta | 0 .../RethinkDb.Driver/Extras/Dao.meta | 0 .../RethinkDb.Driver/Extras/Dao/Document.cs | 0 .../Extras/Dao/Document.cs.meta | 0 .../RethinkDb.Driver/Extras/Dao/IDao.cs | 0 .../RethinkDb.Driver/Extras/Dao/IDao.cs.meta | 0 .../RethinkDb.Driver/Extras/Dao/RethinkDao.cs | 0 .../Extras/Dao/RethinkDao.cs.meta | 0 .../RethinkDb.Driver/Generated.meta | 0 .../RethinkDb.Driver/Generated/Ast.meta | 0 .../RethinkDb.Driver/Generated/Ast/Add.cs | 0 .../Generated/Ast/Add.cs.meta | 0 .../RethinkDb.Driver/Generated/Ast/And.cs | 0 .../Generated/Ast/And.cs.meta | 0 .../RethinkDb.Driver/Generated/Ast/Append.cs | 0 .../Generated/Ast/Append.cs.meta | 0 .../RethinkDb.Driver/Generated/Ast/April.cs | 0 .../Generated/Ast/April.cs.meta | 0 .../RethinkDb.Driver/Generated/Ast/Args.cs | 0 .../Generated/Ast/Args.cs.meta | 0 .../RethinkDb.Driver/Generated/Ast/Asc.cs | 0 .../Generated/Ast/Asc.cs.meta | 0 .../RethinkDb.Driver/Generated/Ast/August.cs | 0 .../Generated/Ast/August.cs.meta | 0 .../RethinkDb.Driver/Generated/Ast/Avg.cs | 0 .../Generated/Ast/Avg.cs.meta | 0 .../RethinkDb.Driver/Generated/Ast/Between.cs | 0 .../Generated/Ast/Between.cs.meta | 0 .../RethinkDb.Driver/Generated/Ast/Binary.cs | 0 .../Generated/Ast/Binary.cs.meta | 0 .../RethinkDb.Driver/Generated/Ast/Bracket.cs | 0 .../Generated/Ast/Bracket.cs.meta | 0 .../RethinkDb.Driver/Generated/Ast/Branch.cs | 0 .../Generated/Ast/Branch.cs.meta | 0 .../RethinkDb.Driver/Generated/Ast/Ceil.cs | 0 .../Generated/Ast/Ceil.cs.meta | 0 .../Generated/Ast/ChangeAt.cs | 0 .../Generated/Ast/ChangeAt.cs.meta | 0 .../RethinkDb.Driver/Generated/Ast/Changes.cs | 0 .../Generated/Ast/Changes.cs.meta | 0 .../RethinkDb.Driver/Generated/Ast/Circle.cs | 0 .../Generated/Ast/Circle.cs.meta | 0 .../Generated/Ast/CoerceTo.cs | 0 .../Generated/Ast/CoerceTo.cs.meta | 0 .../Generated/Ast/ConcatMap.cs | 0 .../Generated/Ast/ConcatMap.cs.meta | 0 .../RethinkDb.Driver/Generated/Ast/Config.cs | 0 .../Generated/Ast/Config.cs.meta | 0 .../Generated/Ast/Contains.cs | 0 .../Generated/Ast/Contains.cs.meta | 0 .../RethinkDb.Driver/Generated/Ast/Count.cs | 0 .../Generated/Ast/Count.cs.meta | 0 .../RethinkDb.Driver/Generated/Ast/Date.cs | 0 .../Generated/Ast/Date.cs.meta | 0 .../RethinkDb.Driver/Generated/Ast/Datum.cs | 0 .../Generated/Ast/Datum.cs.meta | 0 .../RethinkDb.Driver/Generated/Ast/Day.cs | 0 .../Generated/Ast/Day.cs.meta | 0 .../Generated/Ast/DayOfWeek.cs | 0 .../Generated/Ast/DayOfWeek.cs.meta | 0 .../Generated/Ast/DayOfYear.cs | 0 .../Generated/Ast/DayOfYear.cs.meta | 0 .../RethinkDb.Driver/Generated/Ast/Db.cs | 0 .../RethinkDb.Driver/Generated/Ast/Db.cs.meta | 0 .../Generated/Ast/DbCreate.cs | 0 .../Generated/Ast/DbCreate.cs.meta | 0 .../RethinkDb.Driver/Generated/Ast/DbDrop.cs | 0 .../Generated/Ast/DbDrop.cs.meta | 0 .../RethinkDb.Driver/Generated/Ast/DbList.cs | 0 .../Generated/Ast/DbList.cs.meta | 0 .../Generated/Ast/December.cs | 0 .../Generated/Ast/December.cs.meta | 0 .../RethinkDb.Driver/Generated/Ast/Default.cs | 0 .../Generated/Ast/Default.cs.meta | 0 .../RethinkDb.Driver/Generated/Ast/Delete.cs | 0 .../Generated/Ast/Delete.cs.meta | 0 .../Generated/Ast/DeleteAt.cs | 0 .../Generated/Ast/DeleteAt.cs.meta | 0 .../RethinkDb.Driver/Generated/Ast/Desc.cs | 0 .../Generated/Ast/Desc.cs.meta | 0 .../Generated/Ast/Difference.cs | 0 .../Generated/Ast/Difference.cs.meta | 0 .../Generated/Ast/Distance.cs | 0 .../Generated/Ast/Distance.cs.meta | 0 .../Generated/Ast/Distinct.cs | 0 .../Generated/Ast/Distinct.cs.meta | 0 .../RethinkDb.Driver/Generated/Ast/Div.cs | 0 .../Generated/Ast/Div.cs.meta | 0 .../Generated/Ast/Downcase.cs | 0 .../Generated/Ast/Downcase.cs.meta | 0 .../RethinkDb.Driver/Generated/Ast/During.cs | 0 .../Generated/Ast/During.cs.meta | 0 .../Generated/Ast/EpochTime.cs | 0 .../Generated/Ast/EpochTime.cs.meta | 0 .../RethinkDb.Driver/Generated/Ast/Eq.cs | 0 .../RethinkDb.Driver/Generated/Ast/Eq.cs.meta | 0 .../RethinkDb.Driver/Generated/Ast/EqJoin.cs | 0 .../Generated/Ast/EqJoin.cs.meta | 0 .../RethinkDb.Driver/Generated/Ast/Error.cs | 0 .../Generated/Ast/Error.cs.meta | 0 .../Generated/Ast/February.cs | 0 .../Generated/Ast/February.cs.meta | 0 .../RethinkDb.Driver/Generated/Ast/Fill.cs | 0 .../Generated/Ast/Fill.cs.meta | 0 .../RethinkDb.Driver/Generated/Ast/Filter.cs | 0 .../Generated/Ast/Filter.cs.meta | 0 .../RethinkDb.Driver/Generated/Ast/Floor.cs | 0 .../Generated/Ast/Floor.cs.meta | 0 .../RethinkDb.Driver/Generated/Ast/Fold.cs | 0 .../Generated/Ast/Fold.cs.meta | 0 .../RethinkDb.Driver/Generated/Ast/ForEach.cs | 0 .../Generated/Ast/ForEach.cs.meta | 0 .../RethinkDb.Driver/Generated/Ast/Friday.cs | 0 .../Generated/Ast/Friday.cs.meta | 0 .../RethinkDb.Driver/Generated/Ast/Func.cs | 0 .../Generated/Ast/Func.cs.meta | 0 .../RethinkDb.Driver/Generated/Ast/Funcall.cs | 0 .../Generated/Ast/Funcall.cs.meta | 0 .../RethinkDb.Driver/Generated/Ast/Ge.cs | 0 .../RethinkDb.Driver/Generated/Ast/Ge.cs.meta | 0 .../RethinkDb.Driver/Generated/Ast/Geojson.cs | 0 .../Generated/Ast/Geojson.cs.meta | 0 .../RethinkDb.Driver/Generated/Ast/Get.cs | 0 .../Generated/Ast/Get.cs.meta | 0 .../RethinkDb.Driver/Generated/Ast/GetAll.cs | 0 .../Generated/Ast/GetAll.cs.meta | 0 .../Generated/Ast/GetField.cs | 0 .../Generated/Ast/GetField.cs.meta | 0 .../Generated/Ast/GetIntersecting.cs | 0 .../Generated/Ast/GetIntersecting.cs.meta | 0 .../Generated/Ast/GetNearest.cs | 0 .../Generated/Ast/GetNearest.cs.meta | 0 .../RethinkDb.Driver/Generated/Ast/Grant.cs | 0 .../Generated/Ast/Grant.cs.meta | 0 .../RethinkDb.Driver/Generated/Ast/Group.cs | 0 .../Generated/Ast/Group.cs.meta | 0 .../RethinkDb.Driver/Generated/Ast/Gt.cs | 0 .../RethinkDb.Driver/Generated/Ast/Gt.cs.meta | 0 .../Generated/Ast/HasFields.cs | 0 .../Generated/Ast/HasFields.cs.meta | 0 .../RethinkDb.Driver/Generated/Ast/Hours.cs | 0 .../Generated/Ast/Hours.cs.meta | 0 .../RethinkDb.Driver/Generated/Ast/Http.cs | 0 .../Generated/Ast/Http.cs.meta | 0 .../Generated/Ast/InTimezone.cs | 0 .../Generated/Ast/InTimezone.cs.meta | 0 .../Generated/Ast/Includes.cs | 0 .../Generated/Ast/Includes.cs.meta | 0 .../Generated/Ast/IndexCreate.cs | 0 .../Generated/Ast/IndexCreate.cs.meta | 0 .../Generated/Ast/IndexDrop.cs | 0 .../Generated/Ast/IndexDrop.cs.meta | 0 .../Generated/Ast/IndexList.cs | 0 .../Generated/Ast/IndexList.cs.meta | 0 .../Generated/Ast/IndexRename.cs | 0 .../Generated/Ast/IndexRename.cs.meta | 0 .../Generated/Ast/IndexStatus.cs | 0 .../Generated/Ast/IndexStatus.cs.meta | 0 .../Generated/Ast/IndexWait.cs | 0 .../Generated/Ast/IndexWait.cs.meta | 0 .../RethinkDb.Driver/Generated/Ast/Info.cs | 0 .../Generated/Ast/Info.cs.meta | 0 .../Generated/Ast/InnerJoin.cs | 0 .../Generated/Ast/InnerJoin.cs.meta | 0 .../RethinkDb.Driver/Generated/Ast/Insert.cs | 0 .../Generated/Ast/Insert.cs.meta | 0 .../Generated/Ast/InsertAt.cs | 0 .../Generated/Ast/InsertAt.cs.meta | 0 .../Generated/Ast/Intersects.cs | 0 .../Generated/Ast/Intersects.cs.meta | 0 .../RethinkDb.Driver/Generated/Ast/IsEmpty.cs | 0 .../Generated/Ast/IsEmpty.cs.meta | 0 .../RethinkDb.Driver/Generated/Ast/Iso8601.cs | 0 .../Generated/Ast/Iso8601.cs.meta | 0 .../RethinkDb.Driver/Generated/Ast/January.cs | 0 .../Generated/Ast/January.cs.meta | 0 .../Generated/Ast/Javascript.cs | 0 .../Generated/Ast/Javascript.cs.meta | 0 .../RethinkDb.Driver/Generated/Ast/Json.cs | 0 .../Generated/Ast/Json.cs.meta | 0 .../RethinkDb.Driver/Generated/Ast/July.cs | 0 .../Generated/Ast/July.cs.meta | 0 .../RethinkDb.Driver/Generated/Ast/June.cs | 0 .../Generated/Ast/June.cs.meta | 0 .../RethinkDb.Driver/Generated/Ast/Keys.cs | 0 .../Generated/Ast/Keys.cs.meta | 0 .../RethinkDb.Driver/Generated/Ast/Le.cs | 0 .../RethinkDb.Driver/Generated/Ast/Le.cs.meta | 0 .../RethinkDb.Driver/Generated/Ast/Limit.cs | 0 .../Generated/Ast/Limit.cs.meta | 0 .../RethinkDb.Driver/Generated/Ast/Line.cs | 0 .../Generated/Ast/Line.cs.meta | 0 .../RethinkDb.Driver/Generated/Ast/Literal.cs | 0 .../Generated/Ast/Literal.cs.meta | 0 .../RethinkDb.Driver/Generated/Ast/Lt.cs | 0 .../RethinkDb.Driver/Generated/Ast/Lt.cs.meta | 0 .../Generated/Ast/MakeArray.cs | 0 .../Generated/Ast/MakeArray.cs.meta | 0 .../RethinkDb.Driver/Generated/Ast/MakeObj.cs | 0 .../Generated/Ast/MakeObj.cs.meta | 0 .../RethinkDb.Driver/Generated/Ast/Map.cs | 0 .../Generated/Ast/Map.cs.meta | 0 .../RethinkDb.Driver/Generated/Ast/March.cs | 0 .../Generated/Ast/March.cs.meta | 0 .../RethinkDb.Driver/Generated/Ast/Match.cs | 0 .../Generated/Ast/Match.cs.meta | 0 .../RethinkDb.Driver/Generated/Ast/Max.cs | 0 .../Generated/Ast/Max.cs.meta | 0 .../RethinkDb.Driver/Generated/Ast/Maxval.cs | 0 .../Generated/Ast/Maxval.cs.meta | 0 .../RethinkDb.Driver/Generated/Ast/May.cs | 0 .../Generated/Ast/May.cs.meta | 0 .../RethinkDb.Driver/Generated/Ast/Merge.cs | 0 .../Generated/Ast/Merge.cs.meta | 0 .../RethinkDb.Driver/Generated/Ast/Min.cs | 0 .../Generated/Ast/Min.cs.meta | 0 .../RethinkDb.Driver/Generated/Ast/Minutes.cs | 0 .../Generated/Ast/Minutes.cs.meta | 0 .../RethinkDb.Driver/Generated/Ast/Minval.cs | 0 .../Generated/Ast/Minval.cs.meta | 0 .../RethinkDb.Driver/Generated/Ast/Mod.cs | 0 .../Generated/Ast/Mod.cs.meta | 0 .../RethinkDb.Driver/Generated/Ast/Monday.cs | 0 .../Generated/Ast/Monday.cs.meta | 0 .../RethinkDb.Driver/Generated/Ast/Month.cs | 0 .../Generated/Ast/Month.cs.meta | 0 .../RethinkDb.Driver/Generated/Ast/Mul.cs | 0 .../Generated/Ast/Mul.cs.meta | 0 .../RethinkDb.Driver/Generated/Ast/Ne.cs | 0 .../RethinkDb.Driver/Generated/Ast/Ne.cs.meta | 0 .../RethinkDb.Driver/Generated/Ast/Not.cs | 0 .../Generated/Ast/Not.cs.meta | 0 .../Generated/Ast/November.cs | 0 .../Generated/Ast/November.cs.meta | 0 .../RethinkDb.Driver/Generated/Ast/Now.cs | 0 .../Generated/Ast/Now.cs.meta | 0 .../RethinkDb.Driver/Generated/Ast/Nth.cs | 0 .../Generated/Ast/Nth.cs.meta | 0 .../RethinkDb.Driver/Generated/Ast/October.cs | 0 .../Generated/Ast/October.cs.meta | 0 .../Generated/Ast/OffsetsOf.cs | 0 .../Generated/Ast/OffsetsOf.cs.meta | 0 .../RethinkDb.Driver/Generated/Ast/Or.cs | 0 .../RethinkDb.Driver/Generated/Ast/Or.cs.meta | 0 .../RethinkDb.Driver/Generated/Ast/OrderBy.cs | 0 .../Generated/Ast/OrderBy.cs.meta | 0 .../Generated/Ast/OuterJoin.cs | 0 .../Generated/Ast/OuterJoin.cs.meta | 0 .../RethinkDb.Driver/Generated/Ast/Pluck.cs | 0 .../Generated/Ast/Pluck.cs.meta | 0 .../RethinkDb.Driver/Generated/Ast/Point.cs | 0 .../Generated/Ast/Point.cs.meta | 0 .../RethinkDb.Driver/Generated/Ast/Polygon.cs | 0 .../Generated/Ast/Polygon.cs.meta | 0 .../Generated/Ast/PolygonSub.cs | 0 .../Generated/Ast/PolygonSub.cs.meta | 0 .../RethinkDb.Driver/Generated/Ast/Prepend.cs | 0 .../Generated/Ast/Prepend.cs.meta | 0 .../RethinkDb.Driver/Generated/Ast/Random.cs | 0 .../Generated/Ast/Random.cs.meta | 0 .../RethinkDb.Driver/Generated/Ast/Range.cs | 0 .../Generated/Ast/Range.cs.meta | 0 .../Generated/Ast/Rebalance.cs | 0 .../Generated/Ast/Rebalance.cs.meta | 0 .../Generated/Ast/Reconfigure.cs | 0 .../Generated/Ast/Reconfigure.cs.meta | 0 .../RethinkDb.Driver/Generated/Ast/Reduce.cs | 0 .../Generated/Ast/Reduce.cs.meta | 0 .../RethinkDb.Driver/Generated/Ast/Replace.cs | 0 .../Generated/Ast/Replace.cs.meta | 0 .../Generated/Ast/ReqlExpr.cs | 0 .../Generated/Ast/ReqlExpr.cs.meta | 0 .../Generated/Ast/ReqlObject.cs | 0 .../Generated/Ast/ReqlObject.cs.meta | 0 .../RethinkDb.Driver/Generated/Ast/Round.cs | 0 .../Generated/Ast/Round.cs.meta | 0 .../RethinkDb.Driver/Generated/Ast/Sample.cs | 0 .../Generated/Ast/Sample.cs.meta | 0 .../Generated/Ast/Saturday.cs | 0 .../Generated/Ast/Saturday.cs.meta | 0 .../RethinkDb.Driver/Generated/Ast/Seconds.cs | 0 .../Generated/Ast/Seconds.cs.meta | 0 .../Generated/Ast/September.cs | 0 .../Generated/Ast/September.cs.meta | 0 .../Generated/Ast/SetDifference.cs | 0 .../Generated/Ast/SetDifference.cs.meta | 0 .../Generated/Ast/SetInsert.cs | 0 .../Generated/Ast/SetInsert.cs.meta | 0 .../Generated/Ast/SetIntersection.cs | 0 .../Generated/Ast/SetIntersection.cs.meta | 0 .../Generated/Ast/SetUnion.cs | 0 .../Generated/Ast/SetUnion.cs.meta | 0 .../RethinkDb.Driver/Generated/Ast/Skip.cs | 0 .../Generated/Ast/Skip.cs.meta | 0 .../RethinkDb.Driver/Generated/Ast/Slice.cs | 0 .../Generated/Ast/Slice.cs.meta | 0 .../Generated/Ast/SpliceAt.cs | 0 .../Generated/Ast/SpliceAt.cs.meta | 0 .../RethinkDb.Driver/Generated/Ast/Split.cs | 0 .../Generated/Ast/Split.cs.meta | 0 .../RethinkDb.Driver/Generated/Ast/Status.cs | 0 .../Generated/Ast/Status.cs.meta | 0 .../RethinkDb.Driver/Generated/Ast/Sub.cs | 0 .../Generated/Ast/Sub.cs.meta | 0 .../RethinkDb.Driver/Generated/Ast/Sum.cs | 0 .../Generated/Ast/Sum.cs.meta | 0 .../RethinkDb.Driver/Generated/Ast/Sunday.cs | 0 .../Generated/Ast/Sunday.cs.meta | 0 .../RethinkDb.Driver/Generated/Ast/Sync.cs | 0 .../Generated/Ast/Sync.cs.meta | 0 .../RethinkDb.Driver/Generated/Ast/Table.cs | 0 .../Generated/Ast/Table.cs.meta | 0 .../Generated/Ast/TableCreate.cs | 0 .../Generated/Ast/TableCreate.cs.meta | 0 .../Generated/Ast/TableDrop.cs | 0 .../Generated/Ast/TableDrop.cs.meta | 0 .../Generated/Ast/TableList.cs | 0 .../Generated/Ast/TableList.cs.meta | 0 .../Generated/Ast/Thursday.cs | 0 .../Generated/Ast/Thursday.cs.meta | 0 .../RethinkDb.Driver/Generated/Ast/Time.cs | 0 .../Generated/Ast/Time.cs.meta | 0 .../Generated/Ast/TimeOfDay.cs | 0 .../Generated/Ast/TimeOfDay.cs.meta | 0 .../Generated/Ast/Timezone.cs | 0 .../Generated/Ast/Timezone.cs.meta | 0 .../Generated/Ast/ToEpochTime.cs | 0 .../Generated/Ast/ToEpochTime.cs.meta | 0 .../Generated/Ast/ToGeojson.cs | 0 .../Generated/Ast/ToGeojson.cs.meta | 0 .../Generated/Ast/ToIso8601.cs | 0 .../Generated/Ast/ToIso8601.cs.meta | 0 .../Generated/Ast/ToJsonString.cs | 0 .../Generated/Ast/ToJsonString.cs.meta | 0 .../RethinkDb.Driver/Generated/Ast/Tuesday.cs | 0 .../Generated/Ast/Tuesday.cs.meta | 0 .../RethinkDb.Driver/Generated/Ast/TypeOf.cs | 0 .../Generated/Ast/TypeOf.cs.meta | 0 .../RethinkDb.Driver/Generated/Ast/Ungroup.cs | 0 .../Generated/Ast/Ungroup.cs.meta | 0 .../RethinkDb.Driver/Generated/Ast/Union.cs | 0 .../Generated/Ast/Union.cs.meta | 0 .../RethinkDb.Driver/Generated/Ast/Upcase.cs | 0 .../Generated/Ast/Upcase.cs.meta | 0 .../RethinkDb.Driver/Generated/Ast/Update.cs | 0 .../Generated/Ast/Update.cs.meta | 0 .../RethinkDb.Driver/Generated/Ast/Uuid.cs | 0 .../Generated/Ast/Uuid.cs.meta | 0 .../RethinkDb.Driver/Generated/Ast/Values.cs | 0 .../Generated/Ast/Values.cs.meta | 0 .../RethinkDb.Driver/Generated/Ast/Var.cs | 0 .../Generated/Ast/Var.cs.meta | 0 .../RethinkDb.Driver/Generated/Ast/Wait.cs | 0 .../Generated/Ast/Wait.cs.meta | 0 .../Generated/Ast/Wednesday.cs | 0 .../Generated/Ast/Wednesday.cs.meta | 0 .../Generated/Ast/WithFields.cs | 0 .../Generated/Ast/WithFields.cs.meta | 0 .../RethinkDb.Driver/Generated/Ast/Without.cs | 0 .../Generated/Ast/Without.cs.meta | 0 .../RethinkDb.Driver/Generated/Ast/Year.cs | 0 .../Generated/Ast/Year.cs.meta | 0 .../RethinkDb.Driver/Generated/Ast/Zip.cs | 0 .../Generated/Ast/Zip.cs.meta | 0 .../RethinkDb.Driver/Generated/Model.meta | 0 .../Generated/Model/AuthType.cs | 0 .../Generated/Model/AuthType.cs.meta | 0 .../RethinkDb.Driver/Generated/Model/Bound.cs | 0 .../Generated/Model/Bound.cs.meta | 0 .../Generated/Model/Conflict.cs | 0 .../Generated/Model/Conflict.cs.meta | 0 .../Generated/Model/Durability.cs | 0 .../Generated/Model/Durability.cs.meta | 0 .../Generated/Model/EmergencyRepair.cs | 0 .../Generated/Model/EmergencyRepair.cs.meta | 0 .../Generated/Model/Format.cs | 0 .../Generated/Model/Format.cs.meta | 0 .../Generated/Model/GeoSystem.cs | 0 .../Generated/Model/GeoSystem.cs.meta | 0 .../Generated/Model/HttpMethod.cs | 0 .../Generated/Model/HttpMethod.cs.meta | 0 .../Generated/Model/IdentifierFormat.cs | 0 .../Generated/Model/IdentifierFormat.cs.meta | 0 .../Generated/Model/ReadMode.cs | 0 .../Generated/Model/ReadMode.cs.meta | 0 .../Generated/Model/ReqlFunction0.cs | 0 .../Generated/Model/ReqlFunction0.cs.meta | 0 .../Generated/Model/ReqlFunction1.cs | 0 .../Generated/Model/ReqlFunction1.cs.meta | 0 .../Generated/Model/ReqlFunction2.cs | 0 .../Generated/Model/ReqlFunction2.cs.meta | 0 .../Generated/Model/ReqlFunction3.cs | 0 .../Generated/Model/ReqlFunction3.cs.meta | 0 .../Generated/Model/ReqlFunction4.cs | 0 .../Generated/Model/ReqlFunction4.cs.meta | 0 .../Generated/Model/ResultFormat.cs | 0 .../Generated/Model/ResultFormat.cs.meta | 0 .../Generated/Model/Status.cs | 0 .../Generated/Model/Status.cs.meta | 0 .../Generated/Model/TopLevel.cs | 0 .../Generated/Model/TopLevel.cs.meta | 0 .../RethinkDb.Driver/Generated/Model/Unit.cs | 0 .../Generated/Model/Unit.cs.meta | 0 .../RethinkDb.Driver/Generated/Proto.meta | 0 .../Generated/Proto/DatumType.cs | 0 .../Generated/Proto/DatumType.cs.meta | 0 .../Generated/Proto/ErrorType.cs | 0 .../Generated/Proto/ErrorType.cs.meta | 0 .../Generated/Proto/FrameType.cs | 0 .../Generated/Proto/FrameType.cs.meta | 0 .../Generated/Proto/Protocol.cs | 0 .../Generated/Proto/Protocol.cs.meta | 0 .../Generated/Proto/QueryType.cs | 0 .../Generated/Proto/QueryType.cs.meta | 0 .../Generated/Proto/ResponseNote.cs | 0 .../Generated/Proto/ResponseNote.cs.meta | 0 .../Generated/Proto/ResponseType.cs | 0 .../Generated/Proto/ResponseType.cs.meta | 0 .../Generated/Proto/TermType.cs | 0 .../Generated/Proto/TermType.cs.meta | 0 .../Generated/Proto/Version.cs | 0 .../Generated/Proto/Version.cs.meta | 0 .../Generated/ReqlAuthError.cs | 0 .../Generated/ReqlAuthError.cs.meta | 0 .../Generated/ReqlAvailabilityError.cs | 0 .../Generated/ReqlAvailabilityError.cs.meta | 0 .../Generated/ReqlClientError.cs | 0 .../Generated/ReqlClientError.cs.meta | 0 .../Generated/ReqlCompileError.cs | 0 .../Generated/ReqlCompileError.cs.meta | 0 .../Generated/ReqlDriverCompileError.cs | 0 .../Generated/ReqlDriverCompileError.cs.meta | 0 .../Generated/ReqlDriverError.cs | 0 .../Generated/ReqlDriverError.cs.meta | 0 .../RethinkDb.Driver/Generated/ReqlError.cs | 0 .../Generated/ReqlError.cs.meta | 0 .../Generated/ReqlInternalError.cs | 0 .../Generated/ReqlInternalError.cs.meta | 0 .../Generated/ReqlNonExistenceError.cs | 0 .../Generated/ReqlNonExistenceError.cs.meta | 0 .../Generated/ReqlOpFailedError.cs | 0 .../Generated/ReqlOpFailedError.cs.meta | 0 .../Generated/ReqlOpIndeterminateError.cs | 0 .../ReqlOpIndeterminateError.cs.meta | 0 .../Generated/ReqlPermissionError.cs | 0 .../Generated/ReqlPermissionError.cs.meta | 0 .../Generated/ReqlQueryLogicError.cs | 0 .../Generated/ReqlQueryLogicError.cs.meta | 0 .../Generated/ReqlResourceLimitError.cs | 0 .../Generated/ReqlResourceLimitError.cs.meta | 0 .../Generated/ReqlRuntimeError.cs | 0 .../Generated/ReqlRuntimeError.cs.meta | 0 .../Generated/ReqlServerCompileError.cs | 0 .../Generated/ReqlServerCompileError.cs.meta | 0 .../Generated/ReqlUserError.cs | 0 .../Generated/ReqlUserError.cs.meta | 0 .../{ => RethinkDb}/RethinkDb.Driver/Log.cs | 0 .../RethinkDb.Driver/Log.cs.meta | 0 .../RethinkDb.Driver/Model.meta | 0 .../RethinkDb.Driver/Model/Arguments.cs | 0 .../RethinkDb.Driver/Model/Arguments.cs.meta | 0 .../RethinkDb.Driver/Model/Backtrace.cs | 0 .../RethinkDb.Driver/Model/Backtrace.cs.meta | 0 .../RethinkDb.Driver/Model/Change[T].cs | 0 .../RethinkDb.Driver/Model/Change[T].cs.meta | 0 .../Model/ExtensionsForResult.cs | 0 .../Model/ExtensionsForResult.cs.meta | 0 .../RethinkDb.Driver/Model/GroupedResult.cs | 0 .../Model/GroupedResult.cs.meta | 0 .../RethinkDb.Driver/Model/MapObject.cs | 0 .../RethinkDb.Driver/Model/MapObject.cs.meta | 0 .../RethinkDb.Driver/Model/OptArgs.cs | 0 .../RethinkDb.Driver/Model/OptArgs.cs.meta | 0 .../RethinkDb.Driver/Model/PathSpec.cs | 0 .../RethinkDb.Driver/Model/PathSpec.cs.meta | 0 .../RethinkDb.Driver/Model/Profile.cs | 0 .../RethinkDb.Driver/Model/Profile.cs.meta | 0 .../RethinkDb.Driver/Model/ReqlLambda.cs | 0 .../RethinkDb.Driver/Model/ReqlLambda.cs.meta | 0 .../RethinkDb.Driver/Model/Result.cs | 0 .../RethinkDb.Driver/Model/Result.cs.meta | 0 .../RethinkDb.Driver/Model/Server.cs | 0 .../RethinkDb.Driver/Model/Server.cs.meta | 0 .../{ => RethinkDb}/RethinkDb.Driver/Net.meta | 0 .../RethinkDb.Driver/Net/Awaiter.cs | 0 .../RethinkDb.Driver/Net/Awaiter.cs.meta | 0 .../RethinkDb.Driver/Net/Clustering.meta | 0 .../Net/Clustering/ConnectionPool.cs | 0 .../Net/Clustering/ConnectionPool.cs.meta | 0 .../Net/Clustering/EpsilonGreedy.cs | 0 .../Net/Clustering/EpsilonGreedy.cs.meta | 0 .../Net/Clustering/EpsilonValueCalculator.cs | 0 .../Clustering/EpsilonValueCalculator.cs.meta | 0 .../Net/Clustering/ExceptionIs.cs | 0 .../Net/Clustering/ExceptionIs.cs.meta | 0 .../Net/Clustering/HostEntry.cs | 0 .../Net/Clustering/HostEntry.cs.meta | 0 .../Net/Clustering/HostPool.cs | 0 .../Net/Clustering/HostPool.cs.meta | 0 .../Net/Clustering/IPoolingStrategy.cs | 0 .../Net/Clustering/IPoolingStrategy.cs.meta | 0 .../Net/Clustering/RoundRobinHostPool.cs | 0 .../Net/Clustering/RoundRobinHostPool.cs.meta | 0 .../RethinkDb.Driver/Net/Clustering/Seed.cs | 0 .../Net/Clustering/Seed.cs.meta | 0 .../RethinkDb.Driver/Net/Clustering/Server.cs | 0 .../Net/Clustering/Server.cs.meta | 0 .../RethinkDb.Driver/Net/Connection.cs | 0 .../RethinkDb.Driver/Net/Connection.cs.meta | 0 .../RethinkDb.Driver/Net/Converter.cs | 0 .../RethinkDb.Driver/Net/Converter.cs.meta | 0 .../RethinkDb.Driver/Net/Crypto.cs | 0 .../RethinkDb.Driver/Net/Crypto.cs.meta | 0 .../RethinkDb.Driver/Net/Cursor.cs | 0 .../RethinkDb.Driver/Net/Cursor.cs.meta | 0 .../RethinkDb.Driver/Net/FormatOptions.cs | 0 .../Net/FormatOptions.cs.meta | 0 .../RethinkDb.Driver/Net/Handshake.cs | 0 .../RethinkDb.Driver/Net/Handshake.cs.meta | 0 .../RethinkDb.Driver/Net/IConnection.cs | 0 .../RethinkDb.Driver/Net/IConnection.cs.meta | 0 .../Net/IConnectionBuilder.cs | 0 .../Net/IConnectionBuilder.cs.meta | 0 .../RethinkDb.Driver/Net/ICursor.cs | 0 .../RethinkDb.Driver/Net/ICursor.cs.meta | 0 .../RethinkDb.Driver/Net/IncrementalSHA256.cs | 0 .../Net/IncrementalSHA256.cs.meta | 0 .../RethinkDb.Driver/Net/JsonConverters.meta | 0 .../ExtensionsForJsonConverters.cs | 0 .../ExtensionsForJsonConverters.cs.meta | 0 .../Net/JsonConverters/ReqlBinaryConverter.cs | 0 .../ReqlBinaryConverter.cs.meta | 0 .../JsonConverters/ReqlDateTimeConverter.cs | 0 .../ReqlDateTimeConverter.cs.meta | 0 .../Net/JsonConverters/ReqlExprConverter.cs | 0 .../JsonConverters/ReqlExprConverter.cs.meta | 0 .../JsonConverters/ReqlGroupingConverter.cs | 0 .../ReqlGroupingConverter.cs.meta | 0 .../RethinkDb.Driver/Net/Response.cs | 0 .../RethinkDb.Driver/Net/Response.cs.meta | 0 .../RethinkDb.Driver/Net/ScramAttributes.cs | 0 .../Net/ScramAttributes.cs.meta | 0 .../RethinkDb.Driver/Net/SecureRandom.cs | 0 .../RethinkDb.Driver/Net/SecureRandom.cs.meta | 0 .../RethinkDb.Driver/Net/SocketWrapper.cs | 0 .../Net/SocketWrapper.cs.meta | 0 .../RethinkDb.Driver/Net/SslContext.cs | 0 .../RethinkDb.Driver/Net/SslContext.cs.meta | 0 .../RethinkDb.Driver/ReqlAssertFailure.cs | 0 .../ReqlAssertFailure.cs.meta | 0 .../RethinkDb.Driver/RethinkDB.cs | 0 .../RethinkDb.Driver/RethinkDB.cs.meta | 0 .../RethinkDb.Driver/RethinkDBConstants.cs | 0 .../RethinkDBConstants.cs.meta | 0 .../RethinkDb.Driver/RethinkDb.Driver.csproj | 0 .../RethinkDb.Driver.csproj.meta | 0 .../RethinkDb.Driver/RethinkDb.Driver.ruleset | 0 .../RethinkDb.Driver.ruleset.meta | 0 .../RethinkDb.Driver/Utils.meta | 0 .../RethinkDb.Driver/Utils/CancellableTask.cs | 0 .../Utils/CancellableTask.cs.meta | 0 .../Utils/ExtensionsForEvent.cs | 0 .../Utils/ExtensionsForEvent.cs.meta | 0 .../Utils/ExtensionsForString.cs | 0 .../Utils/ExtensionsForString.cs.meta | 0 .../Utils/ExtensionsForTcpClient.cs | 0 .../Utils/ExtensionsForTcpClient.cs.meta | 0 .../Utils/ExtensionsForType.cs | 0 .../Utils/ExtensionsForType.cs.meta | 0 .../RethinkDb.Driver/Utils/QueryHelper.cs | 0 .../Utils/QueryHelper.cs.meta | 0 .../RethinkDb.Driver/Utils/StringHelper.cs | 0 .../Utils/StringHelper.cs.meta | 0 .../RethinkDb.Driver/Utils/TaskHelper.cs | 0 .../RethinkDb.Driver/Utils/TaskHelper.cs.meta | 0 Assets/Scripts/Tests/Tests.asmdef | 4 +- Assets/Scripts/UnityExtensions.cs | 40 +- Assets/Scripts/Zone Display/ZoneRenderer.cs | 31 +- Assets/Shaders/Brushes/WormholeBrush.shader | 2 +- Assets/Shaders/Compute/Slime/Slime.compute | 185 ++-- Assets/Shaders/Compute/Slime/Slime.cs | 34 +- .../Shaders/Compute/Slime/SlimeTestSpawner.cs | 19 + .../Compute/Slime/SlimeTestSpawner.cs.meta | 3 + Assets/Shaders/Compute/Slime/SlimeTrails.mat | 8 +- .../Shaders/Raymarching/VolumeRender.shader | 15 +- CultBase.csproj | 687 ++++++++++++ CultCache.Editor.csproj | 706 +++++++++++++ CultCache.csproj | 699 ++++++++++++ GameData/AetherDB.msgpack | 2 +- GameData/PlayerSettings.msgpack | 4 +- RethinkDB.csproj | 997 ++++++++++++++++++ Tests.csproj | 6 +- 773 files changed, 5286 insertions(+), 813 deletions(-) create mode 100644 Aetheria.Shared.Unity.csproj create mode 100644 Assets/Scripts/CultCache.meta create mode 100644 Assets/Scripts/CultCache/Editor.meta rename Assets/Scripts/{ => CultCache}/Editor/DatabaseInspector.cs (94%) rename Assets/Scripts/{ => CultCache}/Editor/DatabaseInspector.cs.meta (100%) rename Assets/Scripts/{ => CultCache}/Editor/DatabaseView.cs (96%) rename Assets/Scripts/{ => CultCache}/Editor/DatabaseView.cs.meta (100%) rename Assets/Scripts/{ => CultCache}/Editor/EditorDispatch.cs (100%) rename Assets/Scripts/{ => CultCache}/Editor/EditorDispatch.cs.meta (100%) create mode 100644 Assets/Scripts/CultCache/Editor/InspectorBase.cs create mode 100644 Assets/Scripts/CultCache/Editor/InspectorBase.cs.meta create mode 100644 Assets/Scripts/CultCache/Editor/Inspectors.meta create mode 100644 Assets/Scripts/CultCache/Editor/Inspectors/MathematicsInspector.cs rename Assets/Scripts/{ServerShared/Behaviors/SurveyController.cs.meta => CultCache/Editor/Inspectors/MathematicsInspector.cs.meta} (83%) rename Assets/Scripts/{ => CultCache/Editor}/RethinkConnection.cs (98%) rename Assets/Scripts/{ => CultCache/Editor}/RethinkConnection.cs.meta (100%) create mode 100644 Assets/Scripts/CultCache/UnityExtensions.cs create mode 100644 Assets/Scripts/CultCache/UnityExtensions.cs.meta rename Assets/{Plugins => Scripts/CultCache}/XKCDColors.cs (100%) rename Assets/{Plugins => Scripts/CultCache}/XKCDColors.cs.meta (100%) rename Assets/Scripts/ServerShared/{Economy.Shared.Unity.asmdef => Aetheria.Shared.Unity.asmdef} (77%) rename Assets/Scripts/ServerShared/{Economy.Shared.Unity.asmdef.meta => Aetheria.Shared.Unity.asmdef.meta} (100%) delete mode 100644 Assets/Scripts/ServerShared/Behaviors/SurveyController.cs delete mode 100644 Assets/Scripts/ServerShared/Behaviors/WanderController.cs create mode 100644 Assets/Scripts/ServerShared/CultCache.meta create mode 100644 Assets/Scripts/ServerShared/CultCache/Attributes.cs rename Assets/Scripts/ServerShared/{Behaviors/WanderController.cs.meta => CultCache/Attributes.cs.meta} (83%) rename Assets/Scripts/ServerShared/{ => CultCache}/DatabaseCache.cs (98%) rename Assets/Scripts/ServerShared/{ => CultCache}/DatabaseCache.cs.meta (100%) rename Assets/Scripts/ServerShared/{ => CultCache}/DatabaseEntry.cs (85%) rename Assets/Scripts/ServerShared/{ => CultCache}/DatabaseEntry.cs.meta (100%) create mode 100644 Assets/Scripts/ServerShared/CultCache/Extensions.cs create mode 100644 Assets/Scripts/ServerShared/CultCache/Extensions.cs.meta create mode 100644 Assets/Scripts/ServerShared/CultCache/MathExtensions.cs create mode 100644 Assets/Scripts/ServerShared/CultCache/MathExtensions.cs.meta create mode 100644 Assets/Scripts/ServerShared/CultCache/Serialization.meta rename Assets/Scripts/ServerShared/{ => CultCache/Serialization}/JsonConverters.cs (100%) rename Assets/Scripts/ServerShared/{ => CultCache/Serialization}/JsonConverters.cs.meta (100%) rename Assets/Scripts/ServerShared/{NIH => CultCache/Serialization}/JsonKnownTypes.meta (100%) rename Assets/Scripts/ServerShared/{NIH => CultCache/Serialization}/JsonKnownTypes/AttributesManager.cs (100%) rename Assets/Scripts/ServerShared/{NIH => CultCache/Serialization}/JsonKnownTypes/AttributesManager.cs.meta (100%) rename Assets/Scripts/ServerShared/{NIH => CultCache/Serialization}/JsonKnownTypes/Exceptions.meta (100%) rename Assets/Scripts/ServerShared/{NIH => CultCache/Serialization}/JsonKnownTypes/Exceptions/JsonKnownTypesException.cs (100%) rename Assets/Scripts/ServerShared/{NIH => CultCache/Serialization}/JsonKnownTypes/Exceptions/JsonKnownTypesException.cs.meta (100%) rename Assets/Scripts/ServerShared/{NIH => CultCache/Serialization}/JsonKnownTypes/JsonDiscriminatorAttribute.cs (100%) rename Assets/Scripts/ServerShared/{NIH => CultCache/Serialization}/JsonKnownTypes/JsonDiscriminatorAttribute.cs.meta (100%) rename Assets/Scripts/ServerShared/{NIH => CultCache/Serialization}/JsonKnownTypes/JsonDiscriminatorSettings.cs (100%) rename Assets/Scripts/ServerShared/{NIH => CultCache/Serialization}/JsonKnownTypes/JsonDiscriminatorSettings.cs.meta (100%) rename Assets/Scripts/ServerShared/{NIH => CultCache/Serialization}/JsonKnownTypes/JsonKnownThisTypeAttribute.cs (100%) rename Assets/Scripts/ServerShared/{NIH => CultCache/Serialization}/JsonKnownTypes/JsonKnownThisTypeAttribute.cs.meta (100%) rename Assets/Scripts/ServerShared/{NIH => CultCache/Serialization}/JsonKnownTypes/JsonKnownTypeAttribute.cs (100%) rename Assets/Scripts/ServerShared/{NIH => CultCache/Serialization}/JsonKnownTypes/JsonKnownTypeAttribute.cs.meta (100%) rename Assets/Scripts/ServerShared/{NIH => CultCache/Serialization}/JsonKnownTypes/JsonKnownTypes.csproj (100%) rename Assets/Scripts/ServerShared/{NIH => CultCache/Serialization}/JsonKnownTypes/JsonKnownTypes.csproj.meta (100%) rename Assets/Scripts/ServerShared/{NIH => CultCache/Serialization}/JsonKnownTypes/JsonKnownTypesContractResolver.cs (100%) rename Assets/Scripts/ServerShared/{NIH => CultCache/Serialization}/JsonKnownTypes/JsonKnownTypesContractResolver.cs.meta (100%) rename Assets/Scripts/ServerShared/{NIH => CultCache/Serialization}/JsonKnownTypes/JsonKnownTypesConverter.cs (100%) rename Assets/Scripts/ServerShared/{NIH => CultCache/Serialization}/JsonKnownTypes/JsonKnownTypesConverter.cs.meta (100%) rename Assets/Scripts/ServerShared/{NIH => CultCache/Serialization}/JsonKnownTypes/JsonKnownTypesDictionaryManager.cs (100%) rename Assets/Scripts/ServerShared/{NIH => CultCache/Serialization}/JsonKnownTypes/JsonKnownTypesDictionaryManager.cs.meta (100%) rename Assets/Scripts/ServerShared/{NIH => CultCache/Serialization}/JsonKnownTypes/JsonKnownTypesSettings.cs (100%) rename Assets/Scripts/ServerShared/{NIH => CultCache/Serialization}/JsonKnownTypes/JsonKnownTypesSettings.cs.meta (100%) rename Assets/Scripts/ServerShared/{NIH => CultCache/Serialization}/JsonKnownTypes/JsonKnownTypesSettingsManager.cs (81%) rename Assets/Scripts/ServerShared/{NIH => CultCache/Serialization}/JsonKnownTypes/JsonKnownTypesSettingsManager.cs.meta (100%) rename Assets/Scripts/ServerShared/{NIH => CultCache/Serialization}/JsonKnownTypes/Utils.meta (100%) rename Assets/Scripts/ServerShared/{NIH => CultCache/Serialization}/JsonKnownTypes/Utils/Mapper.cs (100%) rename Assets/Scripts/ServerShared/{NIH => CultCache/Serialization}/JsonKnownTypes/Utils/Mapper.cs.meta (100%) rename Assets/Scripts/ServerShared/{ => CultCache/Serialization}/MathFormatters.cs (100%) rename Assets/Scripts/ServerShared/{ => CultCache/Serialization}/MathFormatters.cs.meta (100%) rename Assets/Scripts/ServerShared/{ => CultCache/Serialization}/MathResolver.cs (100%) rename Assets/Scripts/ServerShared/{ => CultCache/Serialization}/MathResolver.cs.meta (100%) rename Assets/Scripts/ServerShared/{ => CultCache/Serialization}/RegisterResolver.cs (100%) rename Assets/Scripts/ServerShared/{ => CultCache/Serialization}/RegisterResolver.cs.meta (100%) rename Assets/Scripts/ServerShared/{ => CultCache/Serialization}/TypeFormatterResolver.cs (100%) rename Assets/Scripts/ServerShared/{ => CultCache/Serialization}/TypeFormatterResolver.cs.meta (100%) create mode 100644 Assets/Scripts/ServerShared/NIH/RethinkDb.meta create mode 100644 Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDB.asmdef create mode 100644 Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDB.asmdef.meta rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver.Linq.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver.Linq/Attributes.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver.Linq/Attributes/PrimaryIndexAttribute.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver.Linq/Attributes/PrimaryIndexAttribute.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver.Linq/Attributes/SecondaryIndexAttribute.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver.Linq/Attributes/SecondaryIndexAttribute.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver.Linq/LinqExtensions.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver.Linq/LinqExtensions.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver.Linq/MemberNameResolver.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver.Linq/MemberNameResolver.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver.Linq/RethinkDb.Driver.Linq.csproj (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver.Linq/RethinkDb.Driver.Linq.csproj.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver.Linq/RethinkDb.Driver.Linq.ruleset (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver.Linq/RethinkDb.Driver.Linq.ruleset.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver.Linq/RethinkDbGroup.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver.Linq/RethinkDbGroup.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver.Linq/RethinkDbQueryModelVisitor.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver.Linq/RethinkDbQueryModelVisitor.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver.Linq/RethinkQueryExecutor.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver.Linq/RethinkQueryExecutor.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver.Linq/RethinkQueryable.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver.Linq/RethinkQueryable.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver.Linq/SelectionProjector.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver.Linq/SelectionProjector.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver.Linq/WhereClauseParsers.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver.Linq/WhereClauseParsers/BaseIndexParser.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver.Linq/WhereClauseParsers/BaseIndexParser.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver.Linq/WhereClauseParsers/DefaultParser.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver.Linq/WhereClauseParsers/DefaultParser.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver.Linq/WhereClauseParsers/ExprHelper.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver.Linq/WhereClauseParsers/ExprHelper.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver.Linq/WhereClauseParsers/ExpressionVisitor.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver.Linq/WhereClauseParsers/ExpressionVisitor.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver.Linq/WhereClauseParsers/GroupItemsParser.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver.Linq/WhereClauseParsers/GroupItemsParser.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver.Linq/WhereClauseParsers/IWhereClauseParser.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver.Linq/WhereClauseParsers/IWhereClauseParser.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver.Linq/WhereClauseParsers/PrimaryIndexParser.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver.Linq/WhereClauseParsers/PrimaryIndexParser.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver.Linq/WhereClauseParsers/SecondaryIndexParser.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver.Linq/WhereClauseParsers/SecondaryIndexParser.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver.Linq/WhereClauseParsers/SubQueryVisitor.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver.Linq/WhereClauseParsers/SubQueryVisitor/AllSubQueryVisitor.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver.Linq/WhereClauseParsers/SubQueryVisitor/AllSubQueryVisitor.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver.Linq/WhereClauseParsers/SubQueryVisitor/AnySubQueryVisitor.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver.Linq/WhereClauseParsers/SubQueryVisitor/AnySubQueryVisitor.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver.Linq/WhereClauseParsers/SubQueryVisitor/BaseFilterableSubQueryVisitor.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver.Linq/WhereClauseParsers/SubQueryVisitor/BaseFilterableSubQueryVisitor.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver.Linq/WhereClauseParsers/SubQueryVisitor/BaseSubQueryVisitor.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver.Linq/WhereClauseParsers/SubQueryVisitor/BaseSubQueryVisitor.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver.Linq/WhereClauseParsers/SubQueryVisitor/ContainsSubQueryVisitor.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver.Linq/WhereClauseParsers/SubQueryVisitor/ContainsSubQueryVisitor.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver.Linq/WhereClauseParsers/SubQueryVisitor/CountSubQueryVisitor.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver.Linq/WhereClauseParsers/SubQueryVisitor/CountSubQueryVisitor.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver.Linq/WhereClauseParsers/SubQueryVisitor/FirstSubQueryVisitor.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver.Linq/WhereClauseParsers/SubQueryVisitor/FirstSubQueryVisitor.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver.Linq/WhereClauseParsers/SubQueryVisitor/ISubQueryVisitor.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver.Linq/WhereClauseParsers/SubQueryVisitor/ISubQueryVisitor.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Ast.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Ast/ExtensionHelper.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Ast/ExtensionHelper.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Ast/Poco.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Ast/Poco.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Ast/PropertyHelper.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Ast/PropertyHelper.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Ast/Query.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Ast/Query.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Ast/ReqlAst.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Ast/ReqlAst.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Ast/ReqlExpr.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Ast/ReqlExpr.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Ast/ReqlRaw.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Ast/ReqlRaw.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Ast/TopLevel.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Ast/TopLevel.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Ast/Util.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Ast/Util.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/ErrorBuilder.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/ErrorBuilder.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Extras.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Extras/Dao.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Extras/Dao/Document.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Extras/Dao/Document.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Extras/Dao/IDao.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Extras/Dao/IDao.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Extras/Dao/RethinkDao.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Extras/Dao/RethinkDao.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Add.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Add.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/And.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/And.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Append.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Append.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/April.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/April.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Args.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Args.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Asc.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Asc.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/August.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/August.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Avg.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Avg.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Between.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Between.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Binary.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Binary.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Bracket.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Bracket.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Branch.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Branch.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Ceil.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Ceil.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/ChangeAt.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/ChangeAt.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Changes.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Changes.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Circle.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Circle.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/CoerceTo.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/CoerceTo.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/ConcatMap.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/ConcatMap.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Config.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Config.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Contains.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Contains.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Count.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Count.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Date.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Date.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Datum.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Datum.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Day.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Day.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/DayOfWeek.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/DayOfWeek.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/DayOfYear.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/DayOfYear.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Db.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Db.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/DbCreate.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/DbCreate.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/DbDrop.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/DbDrop.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/DbList.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/DbList.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/December.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/December.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Default.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Default.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Delete.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Delete.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/DeleteAt.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/DeleteAt.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Desc.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Desc.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Difference.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Difference.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Distance.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Distance.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Distinct.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Distinct.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Div.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Div.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Downcase.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Downcase.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/During.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/During.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/EpochTime.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/EpochTime.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Eq.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Eq.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/EqJoin.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/EqJoin.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Error.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Error.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/February.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/February.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Fill.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Fill.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Filter.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Filter.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Floor.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Floor.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Fold.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Fold.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/ForEach.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/ForEach.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Friday.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Friday.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Func.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Func.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Funcall.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Funcall.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Ge.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Ge.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Geojson.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Geojson.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Get.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Get.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/GetAll.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/GetAll.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/GetField.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/GetField.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/GetIntersecting.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/GetIntersecting.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/GetNearest.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/GetNearest.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Grant.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Grant.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Group.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Group.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Gt.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Gt.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/HasFields.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/HasFields.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Hours.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Hours.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Http.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Http.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/InTimezone.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/InTimezone.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Includes.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Includes.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/IndexCreate.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/IndexCreate.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/IndexDrop.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/IndexDrop.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/IndexList.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/IndexList.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/IndexRename.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/IndexRename.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/IndexStatus.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/IndexStatus.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/IndexWait.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/IndexWait.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Info.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Info.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/InnerJoin.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/InnerJoin.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Insert.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Insert.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/InsertAt.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/InsertAt.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Intersects.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Intersects.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/IsEmpty.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/IsEmpty.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Iso8601.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Iso8601.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/January.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/January.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Javascript.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Javascript.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Json.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Json.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/July.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/July.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/June.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/June.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Keys.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Keys.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Le.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Le.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Limit.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Limit.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Line.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Line.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Literal.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Literal.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Lt.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Lt.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/MakeArray.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/MakeArray.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/MakeObj.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/MakeObj.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Map.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Map.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/March.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/March.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Match.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Match.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Max.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Max.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Maxval.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Maxval.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/May.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/May.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Merge.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Merge.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Min.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Min.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Minutes.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Minutes.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Minval.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Minval.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Mod.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Mod.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Monday.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Monday.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Month.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Month.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Mul.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Mul.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Ne.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Ne.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Not.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Not.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/November.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/November.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Now.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Now.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Nth.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Nth.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/October.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/October.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/OffsetsOf.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/OffsetsOf.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Or.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Or.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/OrderBy.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/OrderBy.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/OuterJoin.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/OuterJoin.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Pluck.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Pluck.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Point.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Point.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Polygon.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Polygon.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/PolygonSub.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/PolygonSub.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Prepend.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Prepend.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Random.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Random.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Range.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Range.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Rebalance.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Rebalance.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Reconfigure.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Reconfigure.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Reduce.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Reduce.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Replace.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Replace.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/ReqlExpr.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/ReqlExpr.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/ReqlObject.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/ReqlObject.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Round.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Round.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Sample.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Sample.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Saturday.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Saturday.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Seconds.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Seconds.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/September.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/September.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/SetDifference.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/SetDifference.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/SetInsert.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/SetInsert.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/SetIntersection.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/SetIntersection.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/SetUnion.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/SetUnion.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Skip.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Skip.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Slice.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Slice.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/SpliceAt.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/SpliceAt.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Split.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Split.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Status.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Status.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Sub.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Sub.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Sum.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Sum.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Sunday.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Sunday.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Sync.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Sync.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Table.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Table.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/TableCreate.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/TableCreate.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/TableDrop.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/TableDrop.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/TableList.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/TableList.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Thursday.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Thursday.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Time.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Time.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/TimeOfDay.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/TimeOfDay.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Timezone.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Timezone.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/ToEpochTime.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/ToEpochTime.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/ToGeojson.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/ToGeojson.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/ToIso8601.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/ToIso8601.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/ToJsonString.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/ToJsonString.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Tuesday.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Tuesday.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/TypeOf.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/TypeOf.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Ungroup.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Ungroup.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Union.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Union.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Upcase.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Upcase.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Update.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Update.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Uuid.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Uuid.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Values.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Values.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Var.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Var.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Wait.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Wait.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Wednesday.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Wednesday.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/WithFields.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/WithFields.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Without.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Without.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Year.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Year.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Zip.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Ast/Zip.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Model.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Model/AuthType.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Model/AuthType.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Model/Bound.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Model/Bound.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Model/Conflict.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Model/Conflict.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Model/Durability.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Model/Durability.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Model/EmergencyRepair.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Model/EmergencyRepair.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Model/Format.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Model/Format.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Model/GeoSystem.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Model/GeoSystem.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Model/HttpMethod.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Model/HttpMethod.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Model/IdentifierFormat.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Model/IdentifierFormat.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Model/ReadMode.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Model/ReadMode.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Model/ReqlFunction0.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Model/ReqlFunction0.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Model/ReqlFunction1.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Model/ReqlFunction1.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Model/ReqlFunction2.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Model/ReqlFunction2.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Model/ReqlFunction3.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Model/ReqlFunction3.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Model/ReqlFunction4.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Model/ReqlFunction4.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Model/ResultFormat.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Model/ResultFormat.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Model/Status.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Model/Status.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Model/TopLevel.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Model/TopLevel.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Model/Unit.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Model/Unit.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Proto.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Proto/DatumType.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Proto/DatumType.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Proto/ErrorType.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Proto/ErrorType.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Proto/FrameType.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Proto/FrameType.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Proto/Protocol.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Proto/Protocol.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Proto/QueryType.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Proto/QueryType.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Proto/ResponseNote.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Proto/ResponseNote.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Proto/ResponseType.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Proto/ResponseType.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Proto/TermType.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Proto/TermType.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Proto/Version.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/Proto/Version.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/ReqlAuthError.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/ReqlAuthError.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/ReqlAvailabilityError.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/ReqlAvailabilityError.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/ReqlClientError.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/ReqlClientError.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/ReqlCompileError.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/ReqlCompileError.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/ReqlDriverCompileError.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/ReqlDriverCompileError.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/ReqlDriverError.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/ReqlDriverError.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/ReqlError.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/ReqlError.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/ReqlInternalError.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/ReqlInternalError.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/ReqlNonExistenceError.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/ReqlNonExistenceError.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/ReqlOpFailedError.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/ReqlOpFailedError.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/ReqlOpIndeterminateError.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/ReqlOpIndeterminateError.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/ReqlPermissionError.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/ReqlPermissionError.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/ReqlQueryLogicError.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/ReqlQueryLogicError.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/ReqlResourceLimitError.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/ReqlResourceLimitError.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/ReqlRuntimeError.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/ReqlRuntimeError.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/ReqlServerCompileError.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/ReqlServerCompileError.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/ReqlUserError.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Generated/ReqlUserError.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Log.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Log.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Model.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Model/Arguments.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Model/Arguments.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Model/Backtrace.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Model/Backtrace.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Model/Change[T].cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Model/Change[T].cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Model/ExtensionsForResult.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Model/ExtensionsForResult.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Model/GroupedResult.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Model/GroupedResult.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Model/MapObject.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Model/MapObject.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Model/OptArgs.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Model/OptArgs.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Model/PathSpec.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Model/PathSpec.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Model/Profile.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Model/Profile.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Model/ReqlLambda.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Model/ReqlLambda.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Model/Result.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Model/Result.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Model/Server.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Model/Server.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Net.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Net/Awaiter.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Net/Awaiter.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Net/Clustering.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Net/Clustering/ConnectionPool.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Net/Clustering/ConnectionPool.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Net/Clustering/EpsilonGreedy.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Net/Clustering/EpsilonGreedy.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Net/Clustering/EpsilonValueCalculator.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Net/Clustering/EpsilonValueCalculator.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Net/Clustering/ExceptionIs.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Net/Clustering/ExceptionIs.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Net/Clustering/HostEntry.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Net/Clustering/HostEntry.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Net/Clustering/HostPool.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Net/Clustering/HostPool.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Net/Clustering/IPoolingStrategy.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Net/Clustering/IPoolingStrategy.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Net/Clustering/RoundRobinHostPool.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Net/Clustering/RoundRobinHostPool.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Net/Clustering/Seed.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Net/Clustering/Seed.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Net/Clustering/Server.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Net/Clustering/Server.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Net/Connection.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Net/Connection.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Net/Converter.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Net/Converter.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Net/Crypto.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Net/Crypto.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Net/Cursor.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Net/Cursor.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Net/FormatOptions.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Net/FormatOptions.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Net/Handshake.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Net/Handshake.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Net/IConnection.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Net/IConnection.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Net/IConnectionBuilder.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Net/IConnectionBuilder.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Net/ICursor.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Net/ICursor.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Net/IncrementalSHA256.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Net/IncrementalSHA256.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Net/JsonConverters.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Net/JsonConverters/ExtensionsForJsonConverters.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Net/JsonConverters/ExtensionsForJsonConverters.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Net/JsonConverters/ReqlBinaryConverter.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Net/JsonConverters/ReqlBinaryConverter.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Net/JsonConverters/ReqlDateTimeConverter.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Net/JsonConverters/ReqlDateTimeConverter.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Net/JsonConverters/ReqlExprConverter.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Net/JsonConverters/ReqlExprConverter.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Net/JsonConverters/ReqlGroupingConverter.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Net/JsonConverters/ReqlGroupingConverter.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Net/Response.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Net/Response.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Net/ScramAttributes.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Net/ScramAttributes.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Net/SecureRandom.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Net/SecureRandom.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Net/SocketWrapper.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Net/SocketWrapper.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Net/SslContext.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Net/SslContext.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/ReqlAssertFailure.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/ReqlAssertFailure.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/RethinkDB.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/RethinkDB.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/RethinkDBConstants.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/RethinkDBConstants.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/RethinkDb.Driver.csproj (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/RethinkDb.Driver.csproj.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/RethinkDb.Driver.ruleset (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/RethinkDb.Driver.ruleset.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Utils.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Utils/CancellableTask.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Utils/CancellableTask.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Utils/ExtensionsForEvent.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Utils/ExtensionsForEvent.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Utils/ExtensionsForString.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Utils/ExtensionsForString.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Utils/ExtensionsForTcpClient.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Utils/ExtensionsForTcpClient.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Utils/ExtensionsForType.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Utils/ExtensionsForType.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Utils/QueryHelper.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Utils/QueryHelper.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Utils/StringHelper.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Utils/StringHelper.cs.meta (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Utils/TaskHelper.cs (100%) rename Assets/Scripts/ServerShared/NIH/{ => RethinkDb}/RethinkDb.Driver/Utils/TaskHelper.cs.meta (100%) create mode 100644 Assets/Shaders/Compute/Slime/SlimeTestSpawner.cs create mode 100644 Assets/Shaders/Compute/Slime/SlimeTestSpawner.cs.meta create mode 100644 CultBase.csproj create mode 100644 CultCache.Editor.csproj create mode 100644 CultCache.csproj create mode 100644 RethinkDB.csproj diff --git a/Aetheria.Shared.Unity.csproj b/Aetheria.Shared.Unity.csproj new file mode 100644 index 000000000..8a9472fbb --- /dev/null +++ b/Aetheria.Shared.Unity.csproj @@ -0,0 +1,658 @@ + + + + latest + <_TargetFrameworkDirectories>non_empty_path_generated_by_unity.rider.package + <_FullFrameworkReferenceAssemblyPaths>non_empty_path_generated_by_unity.rider.package + true + + + + Debug + AnyCPU + 10.0.20506 + 2.0 + + {d790d414-9064-abda-7ad3-d72285c3faba} + {E097FAD1-6243-4DAD-9C02-E9B9EFC3FFC1};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + Library + Properties + Aetheria.Shared.Unity + v4.7.1 + 512 + . + + + true + full + false + Temp\Bin\Debug\ + DEBUG;TRACE;UNITY_2020_2_6;UNITY_2020_2;UNITY_2020;UNITY_5_3_OR_NEWER;UNITY_5_4_OR_NEWER;UNITY_5_5_OR_NEWER;UNITY_5_6_OR_NEWER;UNITY_2017_1_OR_NEWER;UNITY_2017_2_OR_NEWER;UNITY_2017_3_OR_NEWER;UNITY_2017_4_OR_NEWER;UNITY_2018_1_OR_NEWER;UNITY_2018_2_OR_NEWER;UNITY_2018_3_OR_NEWER;UNITY_2018_4_OR_NEWER;UNITY_2019_1_OR_NEWER;UNITY_2019_2_OR_NEWER;UNITY_2019_3_OR_NEWER;UNITY_2019_4_OR_NEWER;UNITY_2020_1_OR_NEWER;UNITY_2020_2_OR_NEWER;PLATFORM_ARCH_64;UNITY_64;UNITY_INCLUDE_TESTS;USE_SEARCH_ENGINE_API;SCENE_TEMPLATE_MODULE;ENABLE_AR;ENABLE_AUDIO;ENABLE_CACHING;ENABLE_CLOTH;ENABLE_EVENT_QUEUE;ENABLE_MICROPHONE;ENABLE_MULTIPLE_DISPLAYS;ENABLE_PHYSICS;ENABLE_TEXTURE_STREAMING;ENABLE_VIRTUALTEXTURING;ENABLE_UNET;ENABLE_LZMA;ENABLE_UNITYEVENTS;ENABLE_VR;ENABLE_WEBCAM;ENABLE_UNITYWEBREQUEST;ENABLE_WWW;ENABLE_CLOUD_SERVICES;ENABLE_CLOUD_SERVICES_COLLAB;ENABLE_CLOUD_SERVICES_COLLAB_SOFTLOCKS;ENABLE_CLOUD_SERVICES_ADS;ENABLE_CLOUD_SERVICES_USE_WEBREQUEST;ENABLE_CLOUD_SERVICES_CRASH_REPORTING;ENABLE_CLOUD_SERVICES_PURCHASING;ENABLE_CLOUD_SERVICES_ANALYTICS;ENABLE_CLOUD_SERVICES_UNET;ENABLE_CLOUD_SERVICES_BUILD;ENABLE_CLOUD_LICENSE;ENABLE_EDITOR_HUB_LICENSE;ENABLE_WEBSOCKET_CLIENT;ENABLE_DIRECTOR_AUDIO;ENABLE_DIRECTOR_TEXTURE;ENABLE_MANAGED_JOBS;ENABLE_MANAGED_TRANSFORM_JOBS;ENABLE_MANAGED_ANIMATION_JOBS;ENABLE_MANAGED_AUDIO_JOBS;INCLUDE_DYNAMIC_GI;ENABLE_MONO_BDWGC;ENABLE_SCRIPTING_GC_WBARRIERS;PLATFORM_SUPPORTS_MONO;RENDER_SOFTWARE_CURSOR;ENABLE_VIDEO;PLATFORM_STANDALONE;PLATFORM_STANDALONE_WIN;UNITY_STANDALONE_WIN;UNITY_STANDALONE;ENABLE_RUNTIME_GI;ENABLE_MOVIES;ENABLE_NETWORK;ENABLE_CRUNCH_TEXTURE_COMPRESSION;ENABLE_OUT_OF_PROCESS_CRASH_HANDLER;ENABLE_CLUSTER_SYNC;ENABLE_CLUSTERINPUT;PLATFORM_UPDATES_TIME_OUTSIDE_OF_PLAYER_LOOP;GFXDEVICE_WAITFOREVENT_MESSAGEPUMP;ENABLE_WEBSOCKET_HOST;ENABLE_MONO;NET_4_6;ENABLE_PROFILER;UNITY_ASSERTIONS;UNITY_EDITOR;UNITY_EDITOR_64;UNITY_EDITOR_WIN;ENABLE_UNITY_COLLECTIONS_CHECKS;ENABLE_BURST_AOT;UNITY_TEAM_LICENSE;ENABLE_CUSTOM_RENDER_TEXTURE;ENABLE_DIRECTOR;ENABLE_LOCALIZATION;ENABLE_SPRITES;ENABLE_TERRAIN;ENABLE_TILEMAP;ENABLE_TIMELINE;ENABLE_INPUT_SYSTEM;UNITY_POST_PROCESSING_STACK_V2;TEST_MSAGL;REPORTING;PERSISTENCE;SUBSTANCE_PLUGIN_ENABLED;CSHARP_7_OR_LATER;CSHARP_7_3_OR_NEWER + prompt + 4 + + False + False + + + pdbonly + true + Temp\bin\Release\ + prompt + 4 + + False + False + + + true + true + false + false + false + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + E:/Projects/Aetheria-Economy/Assets/Plugins/System.Threading.Tasks.Extensions.dll + + + E:/Projects/Aetheria-Economy/Assets/Plugins/Remotion.Linq.dll + + + E:/Projects/Aetheria-Economy/Assets/Plugins/System.Memory.dll + + + E:/Projects/Aetheria-Economy/Assets/Plugins/Microsoft.Extensions.Logging.Abstractions.dll + + + E:/Projects/Aetheria-Economy/Library/PackageCache/com.unity.burst@1.4.3/Unity.Burst.Unsafe.dll + + + E:/Projects/Aetheria-Economy/Assets/Plugins/System.Buffers.dll + + + E:/Projects/Aetheria-Economy/Assets/Allegorithmic/Plugins/Substance.Game.dll + + + E:/Projects/Aetheria-Economy/Assets/Plugins/Newtonsoft.Json.dll + + + E:/Projects/Aetheria-Economy/Assets/Plugins/QuickGraph.dll + + + E:/Projects/Aetheria-Economy/Assets/Allegorithmic/Plugins/Substance/Substance Source/Editor/SourceUnityLib.dll + + + E:/Projects/Aetheria-Economy/Assets/Plugins/System.Runtime.CompilerServices.Unsafe.dll + + + E:/Projects/Aetheria-Economy/Assets/Allegorithmic/Plugins/Substance/Substance Engine/Editor/Substance.Editor.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/mscorlib.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.Core.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.Runtime.Serialization.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.Xml.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.Xml.Linq.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.Numerics.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.Numerics.Vectors.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.Net.Http.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Microsoft.CSharp.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.Data.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/Microsoft.Win32.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/netstandard.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.AppContext.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Collections.Concurrent.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Collections.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Collections.NonGeneric.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Collections.Specialized.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ComponentModel.Annotations.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ComponentModel.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ComponentModel.EventBasedAsync.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ComponentModel.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ComponentModel.TypeConverter.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Console.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Data.Common.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Diagnostics.Contracts.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Diagnostics.Debug.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Diagnostics.FileVersionInfo.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Diagnostics.Process.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Diagnostics.StackTrace.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Diagnostics.TextWriterTraceListener.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Diagnostics.Tools.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Diagnostics.TraceSource.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Drawing.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Dynamic.Runtime.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Globalization.Calendars.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Globalization.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Globalization.Extensions.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.Compression.ZipFile.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.FileSystem.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.FileSystem.DriveInfo.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.FileSystem.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.FileSystem.Watcher.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.IsolatedStorage.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.MemoryMappedFiles.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.Pipes.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.UnmanagedMemoryStream.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Linq.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Linq.Expressions.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Linq.Parallel.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Linq.Queryable.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.Http.Rtc.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.NameResolution.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.NetworkInformation.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.Ping.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.Requests.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.Security.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.Sockets.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.WebHeaderCollection.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.WebSockets.Client.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.WebSockets.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ObjectModel.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Reflection.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Reflection.Emit.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Reflection.Emit.ILGeneration.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Reflection.Emit.Lightweight.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Reflection.Extensions.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Reflection.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Resources.Reader.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Resources.ResourceManager.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Resources.Writer.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.CompilerServices.VisualC.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.Extensions.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.Handles.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.InteropServices.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.InteropServices.RuntimeInformation.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.InteropServices.WindowsRuntime.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.Numerics.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.Serialization.Formatters.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.Serialization.Json.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.Serialization.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.Serialization.Xml.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Security.Claims.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Security.Cryptography.Algorithms.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Security.Cryptography.Csp.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Security.Cryptography.Encoding.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Security.Cryptography.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Security.Cryptography.X509Certificates.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Security.Principal.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Security.SecureString.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ServiceModel.Duplex.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ServiceModel.Http.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ServiceModel.NetTcp.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ServiceModel.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ServiceModel.Security.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Text.Encoding.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Text.Encoding.Extensions.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Text.RegularExpressions.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Threading.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Threading.Overlapped.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Threading.Tasks.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Threading.Tasks.Parallel.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Threading.Thread.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Threading.ThreadPool.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Threading.Timer.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ValueTuple.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Xml.ReaderWriter.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Xml.XDocument.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Xml.XmlDocument.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Xml.XmlSerializer.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Xml.XPath.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Xml.XPath.XDocument.dll + + + E:/Projects/Aetheria-Economy/Library/ScriptAssemblies/Unity.Mathematics.dll + + + + + {c511ef21-dc27-883d-b027-9a4b6f36bae4} + MessagePack + + + {4d885cb7-1f9e-abb3-b070-7265b432ecda} + UniRx + + + + + diff --git a/Assets/Materials/Brushes/Sector Tint.mat b/Assets/Materials/Brushes/Sector Tint.mat index aa7047c14..fe64aad7d 100644 --- a/Assets/Materials/Brushes/Sector Tint.mat +++ b/Assets/Materials/Brushes/Sector Tint.mat @@ -58,7 +58,7 @@ Material: m_Floats: - _BumpScale: 1 - _Cutoff: 0.5 - - _Depth: 0.1 + - _Depth: 0.25 - _DetailNormalMapScale: 1 - _DstBlend: 0 - _Frequency: 6.2832 diff --git a/Assets/Materials/Brushes/Sector Waves Large.mat b/Assets/Materials/Brushes/Sector Waves Large.mat index f1ef3ed49..4dd506b9a 100644 --- a/Assets/Materials/Brushes/Sector Waves Large.mat +++ b/Assets/Materials/Brushes/Sector Waves Large.mat @@ -59,7 +59,7 @@ Material: - _BumpScale: 1 - _Constant: -2.46 - _Cutoff: 0.5 - - _Depth: 5 + - _Depth: 2 - _DetailNormalMapScale: 1 - _DstBlend: 0 - _Frequency: 0.02 diff --git a/Assets/Materials/Brushes/Sector Waves Medium.mat b/Assets/Materials/Brushes/Sector Waves Medium.mat index f6d10a90a..d29994035 100644 --- a/Assets/Materials/Brushes/Sector Waves Medium.mat +++ b/Assets/Materials/Brushes/Sector Waves Medium.mat @@ -59,7 +59,7 @@ Material: - _BumpScale: 1 - _Constant: 1 - _Cutoff: 0.5 - - _Depth: 10 + - _Depth: 4 - _DetailNormalMapScale: 1 - _DstBlend: 0 - _Frequency: 0.01 diff --git a/Assets/Materials/Brushes/Sector Waves Small.mat b/Assets/Materials/Brushes/Sector Waves Small.mat index d445aef7b..c5488c03d 100644 --- a/Assets/Materials/Brushes/Sector Waves Small.mat +++ b/Assets/Materials/Brushes/Sector Waves Small.mat @@ -59,7 +59,7 @@ Material: - _BumpScale: 1 - _Constant: 0 - _Cutoff: 0.5 - - _Depth: -10 + - _Depth: 8 - _DetailNormalMapScale: 1 - _DstBlend: 0 - _Frequency: 0.005 diff --git a/Assets/Materials/Brushes/Wormhole Lighting.mat b/Assets/Materials/Brushes/Wormhole Lighting.mat index 5751951a4..85e5599e6 100644 --- a/Assets/Materials/Brushes/Wormhole Lighting.mat +++ b/Assets/Materials/Brushes/Wormhole Lighting.mat @@ -58,7 +58,7 @@ Material: m_Floats: - _BumpScale: 1 - _Cutoff: 0.5 - - _Depth: 4 + - _Depth: 10 - _DetailNormalMapScale: 1 - _DstBlend: 0 - _Frequency: 6.2832 diff --git a/Assets/Materials/Fog Marching Main Menu.mat b/Assets/Materials/Fog Marching Main Menu.mat index b28a76a2d..686efa398 100644 --- a/Assets/Materials/Fog Marching Main Menu.mat +++ b/Assets/Materials/Fog Marching Main Menu.mat @@ -51,7 +51,7 @@ Material: - _GridFillDensity: 0.00002 - _GridFloorBlend: 39.6 - _GridFloorDensity: 1 - - _GridFloorOffset: -16.46 + - _GridFloorOffset: 27.55 - _GridPatchBlend: 200 - _GridPatchDensity: 3 - _NoiseFrequency: 0.01 diff --git a/Assets/Materials/Fog Marching Test.mat b/Assets/Materials/Fog Marching Test.mat index 89b46a198..91b56761e 100644 --- a/Assets/Materials/Fog Marching Test.mat +++ b/Assets/Materials/Fog Marching Test.mat @@ -48,16 +48,16 @@ Material: - _GridCeilingDensity: 0.01 - _GridCeilingFollow: 0 - _GridCeilingOffset: 0 - - _GridFillDensity: 0 - - _GridFloorBlend: 93.3 + - _GridFillDensity: 0.000025 + - _GridFloorBlend: 100 - _GridFloorDensity: 4 - - _GridFloorOffset: 25 - - _GridPatchBlend: 22.7 + - _GridFloorOffset: 0 + - _GridPatchBlend: 5 - _GridPatchDensity: 0.1 - _NoiseFrequency: 0.01 - _NoiseSpeed: 0.02 - - _NoiseStrength: 75 - - _SafetyDistance: 50 + - _NoiseStrength: 50 + - _SafetyDistance: 0 - _StepExponent: 2 - _TintExponent: 8 m_Colors: diff --git a/Assets/Materials/Fog Marching.mat b/Assets/Materials/Fog Marching.mat index 51be10826..7a9b16952 100644 --- a/Assets/Materials/Fog Marching.mat +++ b/Assets/Materials/Fog Marching.mat @@ -40,26 +40,26 @@ Material: m_Scale: {x: 1, y: 1} m_Offset: {x: 0, y: 0} m_Floats: - - _AlphaFloor: 0 + - _AlphaFloor: 0.01 - _DepthBlend: 512 - _DepthCeiling: 4096 - - _Gamma: 0.5 + - _Gamma: 0.7 - _GridCeilingBlend: -300 - _GridCeilingDensity: 0.01 - _GridCeilingFollow: 0 - _GridCeilingOffset: 0 - - _GridFillDensity: 0.000006 - - _GridFloorBlend: 100 - - _GridFloorDensity: 4 - - _GridFloorOffset: 25 - - _GridPatchBlend: 200 - - _GridPatchDensity: 6 + - _GridFillDensity: 0.000002 + - _GridFloorBlend: 500 + - _GridFloorDensity: 16 + - _GridFloorOffset: 0 + - _GridPatchBlend: 5 + - _GridPatchDensity: 0.2 - _NoiseFrequency: 0.01 - _NoiseSpeed: 0.02 - _NoiseStrength: 75 - - _SafetyDistance: 50 + - _SafetyDistance: 35 - _StepExponent: 2 - _TintExponent: 8 m_Colors: - - _Tint: {r: 0.5, g: 0.5, b: 0.5, a: 1} + - _Tint: {r: 0.2509804, g: 0.2509804, b: 0.2509804, a: 1} m_BuildTextureStacks: [] diff --git a/Assets/Materials/UI/Map Gravity Lines.mat b/Assets/Materials/UI/Map Gravity Lines.mat index bcee9e098..13365b26e 100644 --- a/Assets/Materials/UI/Map Gravity Lines.mat +++ b/Assets/Materials/UI/Map Gravity Lines.mat @@ -86,7 +86,7 @@ Material: - _Mode: 0 - _OcclusionStrength: 1 - _Parallax: 0.02 - - _Scale: 2.2094758 + - _Scale: 3.0991225 - _SmoothnessTextureChannel: 0 - _SpecularHighlights: 1 - _SrcBlend: 1 diff --git a/Assets/Plugins/MessagePack/Formatters/TypelessFormatter.cs b/Assets/Plugins/MessagePack/Formatters/TypelessFormatter.cs index c487526bd..e7a476014 100644 --- a/Assets/Plugins/MessagePack/Formatters/TypelessFormatter.cs +++ b/Assets/Plugins/MessagePack/Formatters/TypelessFormatter.cs @@ -1,8 +1,6 @@ // Copyright (c) All contributors. All rights reserved. // Licensed under the MIT license. See LICENSE file in the project root for full license information. -#if !UNITY_2018_3_OR_NEWER - using System; using System.Buffers; using System.Collections; @@ -87,7 +85,7 @@ namespace MessagePack.Formatters // mscorlib or System.Private.CoreLib private static readonly bool IsMscorlib = typeof(int).AssemblyQualifiedName.Contains("mscorlib"); - private TypelessFormatter() + public TypelessFormatter() { this.serializers.TryAdd(typeof(object), _ => (object p1, ref MessagePackWriter p2, object p3, MessagePackSerializerOptions p4) => { }); this.deserializers.TryAdd(typeof(object), _ => (object p1, ref MessagePackReader p2, MessagePackSerializerOptions p3) => new object()); @@ -309,5 +307,3 @@ namespace MessagePack.Formatters } } } - -#endif diff --git a/Assets/Plugins/MessagePack/Internal/AsymmetricKeyHashTable.cs b/Assets/Plugins/MessagePack/Internal/AsymmetricKeyHashTable.cs index 4f0a2f146..250512356 100644 --- a/Assets/Plugins/MessagePack/Internal/AsymmetricKeyHashTable.cs +++ b/Assets/Plugins/MessagePack/Internal/AsymmetricKeyHashTable.cs @@ -1,8 +1,6 @@ // Copyright (c) All contributors. All rights reserved. // Licensed under the MIT license. See LICENSE file in the project root for full license information. -#if !UNITY_2018_3_OR_NEWER - using System; #pragma warning disable SA1649 // File name should match first type name @@ -302,5 +300,3 @@ NOT_FOUND: } } } - -#endif diff --git a/Assets/Plugins/MessagePack/Resolvers/TypelessContractlessStandardResolver.cs b/Assets/Plugins/MessagePack/Resolvers/TypelessContractlessStandardResolver.cs index df789b9ef..0c8167bab 100644 --- a/Assets/Plugins/MessagePack/Resolvers/TypelessContractlessStandardResolver.cs +++ b/Assets/Plugins/MessagePack/Resolvers/TypelessContractlessStandardResolver.cs @@ -1,7 +1,6 @@ // Copyright (c) All contributors. All rights reserved. // Licensed under the MIT license. See LICENSE file in the project root for full license information. -#if !UNITY_2018_3_OR_NEWER using System; using System.Collections.Generic; using MessagePack.Formatters; @@ -80,5 +79,3 @@ namespace MessagePack.Resolvers } } } - -#endif diff --git a/Assets/Plugins/MessagePack/Resolvers/TypelessObjectResolver.cs b/Assets/Plugins/MessagePack/Resolvers/TypelessObjectResolver.cs index cb670e089..1be055857 100644 --- a/Assets/Plugins/MessagePack/Resolvers/TypelessObjectResolver.cs +++ b/Assets/Plugins/MessagePack/Resolvers/TypelessObjectResolver.cs @@ -8,7 +8,6 @@ using MessagePack.Internal; namespace MessagePack.Resolvers { -#if !UNITY_2018_3_OR_NEWER ///

/// Used for `object` fields/collections, ex: var arr = new object[] { 1, "a", new Model() }; @@ -138,5 +137,4 @@ namespace MessagePack.Resolvers } } -#endif } diff --git a/Assets/Prefabs/RPG/Slime Renderer.prefab b/Assets/Prefabs/RPG/Slime Renderer.prefab index 8f1f53c07..427a6a87d 100644 --- a/Assets/Prefabs/RPG/Slime Renderer.prefab +++ b/Assets/Prefabs/RPG/Slime Renderer.prefab @@ -100,98 +100,81 @@ MonoBehaviour: type: 2} ParticleMaterial: {fileID: 2100000, guid: 3b53e1eb5d8a5d34f9bc8c1928ceba76, type: 2} GravityTexture: {fileID: 8400000, guid: cc403ed0b6a104445b6534b1877c5556, type: 2} - TextureSize: 1024 + TextureSize: 512 ZoneRadius: 512 - AgentCount: 262144 - ParticleCount: 65536 - TrailPoints: 4 + AgentCount: 524288 + ParticleCount: 131072 + TrailPoints: 5 SlimeSettings: Deposition: - HeightSlopeLerp: 0 - HeightThreshold: -150 - HeightBlend: 50 SlopeThreshold: 0.3 SlopeBlend: 0.3 - HighValue: 0 - LowValue: 1 + HighValue: 2 + LowValue: 0 + Exponent: 0.8 Diffusion: - HeightSlopeLerp: 1 - HeightThreshold: 0 - HeightBlend: 0.01 SlopeThreshold: 0.3 SlopeBlend: 0.3 - HighValue: 0 - LowValue: 2 - Decay: - HeightSlopeLerp: 1 - HeightThreshold: -125 - HeightBlend: 50 - SlopeThreshold: 0.5 - SlopeBlend: 0.5 - HighValue: 0 - LowValue: 2 - TurnSpeed: - HeightSlopeLerp: 1 - HeightThreshold: 0 - HeightBlend: 0.01 - SlopeThreshold: 0.5 - SlopeBlend: 0.5 - HighValue: 64 + HighValue: 1 LowValue: 0.5 + Exponent: 1 + Decay: + SlopeThreshold: 0.5 + SlopeBlend: 0.5 + HighValue: 20 + LowValue: 0.5 + Exponent: 1 + TurnSpeed: + SlopeThreshold: 0.5 + SlopeBlend: 0.5 + HighValue: 128 + LowValue: 4 + Exponent: 2 Speed: - HeightSlopeLerp: 1 - HeightThreshold: -100 - HeightBlend: 0.01 SlopeThreshold: 0.5 SlopeBlend: 0.5 HighValue: 0 - LowValue: 25 + LowValue: 20 + Exponent: 1 Drive: - HeightSlopeLerp: 1 - HeightThreshold: -100 - HeightBlend: 10 - SlopeThreshold: 0.4 + SlopeThreshold: 0.5 SlopeBlend: 0.4 - HighValue: 0 - LowValue: 128 + HighValue: 64 + LowValue: 4 + Exponent: 1 SensorDistance: - HeightSlopeLerp: 1 - HeightThreshold: -150 - HeightBlend: 15 - SlopeThreshold: 0.2 - SlopeBlend: 0.1 + SlopeThreshold: 0.5 + SlopeBlend: 0.5 HighValue: 8 LowValue: 64 + Exponent: 0.125 SensorSpread: - HeightSlopeLerp: 1 - HeightThreshold: 0 - HeightBlend: 0.01 SlopeThreshold: 0.4 SlopeBlend: 0.4 HighValue: 0.1 LowValue: 2 + Exponent: 0.5 TrailDamping: - HeightSlopeLerp: 1 - HeightThreshold: 0 - HeightBlend: 0.01 SlopeThreshold: 0.5 SlopeBlend: 0.5 - HighValue: 0 - LowValue: 2 + HighValue: 2 + LowValue: 0 + Exponent: 0.25 Intensity: - HeightSlopeLerp: 0.5 - HeightThreshold: -150 - HeightBlend: 50 SlopeThreshold: 0.5 - SlopeBlend: 0.5 - HighValue: 110 - LowValue: 10 + SlopeBlend: 0.4 + HighValue: 54.5 + LowValue: 0 + Exponent: 0.25 ZoneCeiling: -50 ZoneFloor: -100 - NoiseFrequency: 1 - NoiseAmplitude: 5 + NoiseFrequency: 2 + NoiseAmplitude: 1 ParticleHeightRange: 50 - ParticleHeightOffset: 10 + ParticleHeightOffset: 0 TrailStartWidth: 0.1 TrailEndWidth: 0 - TrailDamping: 0.25 + TrailDamping: 0.82 + SpawnPositions: + - {x: -250, y: 0} + - {x: 250, y: 0} diff --git a/Assets/Resources/Fog Tint.renderTexture b/Assets/Resources/Fog Tint.renderTexture index a90418a4e..0aedaec60 100644 --- a/Assets/Resources/Fog Tint.renderTexture +++ b/Assets/Resources/Fog Tint.renderTexture @@ -20,7 +20,7 @@ RenderTexture: m_MipCount: -1 m_DepthFormat: 0 m_ColorFormat: 74 - m_MipMap: 0 + m_MipMap: 1 m_GenerateMips: 1 m_SRGB: 0 m_UseDynamicScale: 0 diff --git a/Assets/Resources/Settings.asset b/Assets/Resources/Settings.asset index 09fc7f5fc..f69fd204e 100644 --- a/Assets/Resources/Settings.asset +++ b/Assets/Resources/Settings.asset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a3465a4e853cc9022a272e6be4210aacd246f6cb5ce6b3856d01e619ead23ddd -size 11570 +oid sha256:e9e92beacc12b37e316ae2c064cdbfa2c327f9d6bd2e3808863a41007cf63085 +size 11565 diff --git a/Assets/Scenes/ARPG.unity b/Assets/Scenes/ARPG.unity index bf240a899..6ecbacebc 100644 --- a/Assets/Scenes/ARPG.unity +++ b/Assets/Scenes/ARPG.unity @@ -362,7 +362,7 @@ Transform: m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 1037490739} - m_RootOrder: 2 + m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!23 &23420359 MeshRenderer: @@ -15433,11 +15433,11 @@ Transform: m_LocalPosition: {x: 0, y: -5, z: 0} m_LocalScale: {x: 3000, y: 3000, z: 3000} m_Children: - - {fileID: 1254851255} - {fileID: 1476765548} - {fileID: 23420357} - {fileID: 1108843909} - {fileID: 1647230682} + - {fileID: 1254851255} m_Father: {fileID: 0} m_RootOrder: 4 m_LocalEulerAnglesHint: {x: 90, y: 0, z: 0} @@ -15772,7 +15772,7 @@ Camera: m_Depth: 0 m_CullingMask: serializedVersion: 2 - m_Bits: 1536 + m_Bits: 512 m_RenderingPath: 1 m_TargetTexture: {fileID: 8400000, guid: cc403ed0b6a104445b6534b1877c5556, type: 2} m_TargetDisplay: 0 @@ -16247,7 +16247,7 @@ Transform: - {fileID: 945347192} - {fileID: 195655951} m_Father: {fileID: 1037490739} - m_RootOrder: 3 + m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1115239398 GameObject: @@ -17583,6 +17583,21 @@ PrefabInstance: m_Modification: m_TransformParent: {fileID: 1037490739} m_Modifications: + - target: {fileID: 2784739443721397315, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: AgentCount + value: 262144 + objectReference: {fileID: 0} + - target: {fileID: 2784739443721397315, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: ZoneRadius + value: 2513.2258 + objectReference: {fileID: 0} + - target: {fileID: 2784739443721397315, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: TextureSize + value: 1024 + objectReference: {fileID: 0} - target: {fileID: 2784739443721397315, guid: efd1f097ce29ffa48bb0045d6502f55d, type: 3} propertyPath: TrailPoints @@ -17593,6 +17608,286 @@ PrefabInstance: propertyPath: TargetCamera value: objectReference: {fileID: 2115559089} + - target: {fileID: 2784739443721397315, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: ParticleCount + value: 131072 + objectReference: {fileID: 0} + - target: {fileID: 2784739443721397315, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: NoiseAmplitude + value: 20 + objectReference: {fileID: 0} + - target: {fileID: 2784739443721397315, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: NoiseFrequency + value: 0.15 + objectReference: {fileID: 0} + - target: {fileID: 2784739443721397315, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: TrailStartWidth + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2784739443721397315, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: ParticleHeightRange + value: 500 + objectReference: {fileID: 0} + - target: {fileID: 2784739443721397315, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: ParticleHeightOffset + value: 20 + objectReference: {fileID: 0} + - target: {fileID: 2784739443721397315, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SlimeSettings.Decay.Exponent + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 2784739443721397315, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SlimeSettings.Decay.LowValue + value: 0.1 + objectReference: {fileID: 0} + - target: {fileID: 2784739443721397315, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SlimeSettings.Drive.Exponent + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 2784739443721397315, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SlimeSettings.Drive.LowValue + value: 64 + objectReference: {fileID: 0} + - target: {fileID: 2784739443721397315, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SlimeSettings.Speed.Exponent + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 2784739443721397315, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SlimeSettings.Speed.LowValue + value: 128 + objectReference: {fileID: 0} + - target: {fileID: 2784739443721397315, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SlimeSettings.Decay.HighValue + value: 5 + objectReference: {fileID: 0} + - target: {fileID: 2784739443721397315, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SlimeSettings.Drive.HighValue + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2784739443721397315, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SlimeSettings.Speed.HighValue + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 2784739443721397315, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SlimeSettings.Decay.SlopeBlend + value: 0.4 + objectReference: {fileID: 0} + - target: {fileID: 2784739443721397315, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SlimeSettings.Drive.SlopeBlend + value: 0.4 + objectReference: {fileID: 0} + - target: {fileID: 2784739443721397315, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SlimeSettings.Speed.SlopeBlend + value: 0.4 + objectReference: {fileID: 0} + - target: {fileID: 2784739443721397315, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SpawnPositions.Array.data[0].x + value: -940.1045 + objectReference: {fileID: 0} + - target: {fileID: 2784739443721397315, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SpawnPositions.Array.data[0].y + value: 57.288723 + objectReference: {fileID: 0} + - target: {fileID: 2784739443721397315, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SpawnPositions.Array.data[1].x + value: 1791.8752 + objectReference: {fileID: 0} + - target: {fileID: 2784739443721397315, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SpawnPositions.Array.data[1].y + value: 384.05713 + objectReference: {fileID: 0} + - target: {fileID: 2784739443721397315, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SlimeSettings.Diffusion.Exponent + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2784739443721397315, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SlimeSettings.Diffusion.LowValue + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2784739443721397315, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SlimeSettings.Intensity.Exponent + value: 0.2123 + objectReference: {fileID: 0} + - target: {fileID: 2784739443721397315, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SlimeSettings.Intensity.LowValue + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 2784739443721397315, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SlimeSettings.TurnSpeed.Exponent + value: 0.15 + objectReference: {fileID: 0} + - target: {fileID: 2784739443721397315, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SlimeSettings.TurnSpeed.LowValue + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2784739443721397315, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SlimeSettings.Deposition.Exponent + value: 0.1 + objectReference: {fileID: 0} + - target: {fileID: 2784739443721397315, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SlimeSettings.Deposition.LowValue + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 2784739443721397315, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SlimeSettings.Diffusion.HighValue + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 2784739443721397315, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SlimeSettings.Intensity.HighValue + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 2784739443721397315, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SlimeSettings.TurnSpeed.HighValue + value: 64 + objectReference: {fileID: 0} + - target: {fileID: 2784739443721397315, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SlimeSettings.Decay.SlopeThreshold + value: 0.4 + objectReference: {fileID: 0} + - target: {fileID: 2784739443721397315, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SlimeSettings.Deposition.HighValue + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2784739443721397315, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SlimeSettings.Drive.SlopeThreshold + value: 0.4 + objectReference: {fileID: 0} + - target: {fileID: 2784739443721397315, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SlimeSettings.Intensity.SlopeBlend + value: 0.35 + objectReference: {fileID: 0} + - target: {fileID: 2784739443721397315, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SlimeSettings.Speed.SlopeThreshold + value: 0.4 + objectReference: {fileID: 0} + - target: {fileID: 2784739443721397315, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SlimeSettings.TurnSpeed.SlopeBlend + value: 0.4 + objectReference: {fileID: 0} + - target: {fileID: 2784739443721397315, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SlimeSettings.Deposition.SlopeBlend + value: 0.4 + objectReference: {fileID: 0} + - target: {fileID: 2784739443721397315, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SlimeSettings.SensorSpread.Exponent + value: 0.15 + objectReference: {fileID: 0} + - target: {fileID: 2784739443721397315, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SlimeSettings.SensorSpread.LowValue + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2784739443721397315, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SlimeSettings.TrailDamping.Exponent + value: 0.25 + objectReference: {fileID: 0} + - target: {fileID: 2784739443721397315, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SlimeSettings.TrailDamping.LowValue + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2784739443721397315, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SlimeSettings.SensorSpread.HighValue + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2784739443721397315, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SlimeSettings.TrailDamping.HighValue + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2784739443721397315, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SlimeSettings.SensorDistance.Exponent + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2784739443721397315, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SlimeSettings.SensorDistance.LowValue + value: 8 + objectReference: {fileID: 0} + - target: {fileID: 2784739443721397315, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SlimeSettings.TrailDamping.SlopeBlend + value: 0.4 + objectReference: {fileID: 0} + - target: {fileID: 2784739443721397315, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SlimeSettings.Intensity.SlopeThreshold + value: 0.4 + objectReference: {fileID: 0} + - target: {fileID: 2784739443721397315, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SlimeSettings.SensorDistance.HighValue + value: 32 + objectReference: {fileID: 0} + - target: {fileID: 2784739443721397315, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SlimeSettings.TurnSpeed.SlopeThreshold + value: 0.4 + objectReference: {fileID: 0} + - target: {fileID: 2784739443721397315, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SlimeSettings.Deposition.SlopeThreshold + value: 0.4 + objectReference: {fileID: 0} + - target: {fileID: 2784739443721397315, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SlimeSettings.SensorDistance.SlopeBlend + value: 0.2 + objectReference: {fileID: 0} + - target: {fileID: 2784739443721397315, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SlimeSettings.TrailDamping.SlopeThreshold + value: 0.4 + objectReference: {fileID: 0} + - target: {fileID: 2784739443721397315, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: SlimeSettings.SensorDistance.SlopeThreshold + value: 0.2 + objectReference: {fileID: 0} - target: {fileID: 6977256487485077368, guid: efd1f097ce29ffa48bb0045d6502f55d, type: 3} propertyPath: m_Name @@ -17606,7 +17901,7 @@ PrefabInstance: - target: {fileID: 6977256487485077373, guid: efd1f097ce29ffa48bb0045d6502f55d, type: 3} propertyPath: m_RootOrder - value: 0 + value: 4 objectReference: {fileID: 0} - target: {fileID: 6977256487485077373, guid: efd1f097ce29ffa48bb0045d6502f55d, type: 3} @@ -20485,7 +20780,7 @@ Transform: m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 1037490739} - m_RootOrder: 1 + m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!23 &1476765550 MeshRenderer: @@ -21344,12 +21639,12 @@ PrefabInstance: - target: {fileID: 878382121558056004, guid: 2758dfa2744d7ad4d8877545189d116e, type: 3} propertyPath: m_AnchorMax.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 878382121558056004, guid: 2758dfa2744d7ad4d8877545189d116e, type: 3} propertyPath: m_AnchorMin.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 878382121558056004, guid: 2758dfa2744d7ad4d8877545189d116e, type: 3} @@ -21369,7 +21664,7 @@ PrefabInstance: - target: {fileID: 878382121558056004, guid: 2758dfa2744d7ad4d8877545189d116e, type: 3} propertyPath: m_AnchoredPosition.y - value: 0 + value: -16 objectReference: {fileID: 0} - target: {fileID: 1713457305180270767, guid: 2758dfa2744d7ad4d8877545189d116e, type: 3} @@ -22513,12 +22808,12 @@ PrefabInstance: - target: {fileID: 878382121558056004, guid: 2758dfa2744d7ad4d8877545189d116e, type: 3} propertyPath: m_AnchorMax.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 878382121558056004, guid: 2758dfa2744d7ad4d8877545189d116e, type: 3} propertyPath: m_AnchorMin.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 878382121558056004, guid: 2758dfa2744d7ad4d8877545189d116e, type: 3} @@ -22538,7 +22833,7 @@ PrefabInstance: - target: {fileID: 878382121558056004, guid: 2758dfa2744d7ad4d8877545189d116e, type: 3} propertyPath: m_AnchoredPosition.y - value: 0 + value: -16 objectReference: {fileID: 0} - target: {fileID: 1713457305180270767, guid: 2758dfa2744d7ad4d8877545189d116e, type: 3} @@ -23203,7 +23498,7 @@ Transform: - {fileID: 1713745165} - {fileID: 1390575963} m_Father: {fileID: 1037490739} - m_RootOrder: 4 + m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1665127615 GameObject: diff --git a/Assets/Scenes/Main Menu.unity b/Assets/Scenes/Main Menu.unity index 380ffd8a5..21a11eca5 100644 --- a/Assets/Scenes/Main Menu.unity +++ b/Assets/Scenes/Main Menu.unity @@ -1302,8 +1302,8 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 741153267} - m_LocalRotation: {x: 0.015506901, y: 0.9502416, z: -0.30741307, w: 0.047933236} - m_LocalPosition: {x: -117.51998, y: -77.08744, z: 149.09026} + m_LocalRotation: {x: 0.015506916, y: 0.9502416, z: -0.3074131, w: 0.047933273} + m_LocalPosition: {x: -117.52, y: -77.08745, z: 149.09027} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: - {fileID: 412917866} @@ -1571,6 +1571,49 @@ Transform: type: 3} m_PrefabInstance: {fileID: 801832273} m_PrefabAsset: {fileID: 0} +--- !u!1 &850359435 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 850359437} + - component: {fileID: 850359436} + m_Layer: 0 + m_Name: Persist + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &850359436 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 850359435} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c3cd207057515c4438a31a6a7b548fe7, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!4 &850359437 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 850359435} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 11 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &926654440 GameObject: m_ObjectHideFlags: 0 @@ -1773,8 +1816,8 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 965376321} - m_LocalRotation: {x: 0.015506901, y: 0.9502416, z: -0.30741307, w: 0.047933236} - m_LocalPosition: {x: -117.51998, y: -77.08744, z: 149.09026} + m_LocalRotation: {x: 0.015506916, y: 0.9502416, z: -0.3074131, w: 0.047933273} + m_LocalPosition: {x: -117.52, y: -77.08745, z: 149.09027} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 0} @@ -1909,7 +1952,6 @@ GameObject: - component: {fileID: 991231190} - component: {fileID: 991231189} - component: {fileID: 991231193} - - component: {fileID: 991231194} m_Layer: 5 m_Name: Main Menu Canvas m_TagString: Untagged @@ -2019,18 +2061,6 @@ MonoBehaviour: FadeDistance: 1024 FadeAlphaExponent: 2 FadePositionExponent: 2 ---- !u!114 &991231194 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 991231188} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: c3cd207057515c4438a31a6a7b548fe7, type: 3} - m_Name: - m_EditorClassIdentifier: --- !u!1 &1000515312 GameObject: m_ObjectHideFlags: 0 @@ -3670,7 +3700,7 @@ MonoBehaviour: m_TargetGraphic: {fileID: 4195065044983066084} m_HandleRect: {fileID: 4195065044983066085} m_Direction: 2 - m_Value: 1 + m_Value: 0 m_Size: 1 m_NumberOfSteps: 0 m_OnValueChanged: diff --git a/Assets/Scenes/TestScene.unity b/Assets/Scenes/TestScene.unity index e108bb4a7..933f4c4ca 100644 --- a/Assets/Scenes/TestScene.unity +++ b/Assets/Scenes/TestScene.unity @@ -789,6 +789,126 @@ MeshFilter: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 215995290} m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1001 &229068762 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 1090070598} + m_Modifications: + - target: {fileID: 7852221720480299766, guid: 046dde0f4600bce41ad33c476f99b309, + type: 3} + propertyPath: m_Name + value: Sun + objectReference: {fileID: 0} + - target: {fileID: 7852221720480299766, guid: 046dde0f4600bce41ad33c476f99b309, + type: 3} + propertyPath: m_TagString + value: Respawn + objectReference: {fileID: 0} + - target: {fileID: 7852221720480299767, guid: 046dde0f4600bce41ad33c476f99b309, + type: 3} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7852221720480299767, guid: 046dde0f4600bce41ad33c476f99b309, + type: 3} + propertyPath: m_LocalScale.x + value: 30 + objectReference: {fileID: 0} + - target: {fileID: 7852221720480299767, guid: 046dde0f4600bce41ad33c476f99b309, + type: 3} + propertyPath: m_LocalScale.y + value: 30 + objectReference: {fileID: 0} + - target: {fileID: 7852221720480299767, guid: 046dde0f4600bce41ad33c476f99b309, + type: 3} + propertyPath: m_LocalScale.z + value: 30 + objectReference: {fileID: 0} + - target: {fileID: 7852221720480299767, guid: 046dde0f4600bce41ad33c476f99b309, + type: 3} + propertyPath: m_LocalPosition.x + value: -125 + objectReference: {fileID: 0} + - target: {fileID: 7852221720480299767, guid: 046dde0f4600bce41ad33c476f99b309, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7852221720480299767, guid: 046dde0f4600bce41ad33c476f99b309, + type: 3} + propertyPath: m_LocalPosition.z + value: 216.50635 + objectReference: {fileID: 0} + - target: {fileID: 7852221720480299767, guid: 046dde0f4600bce41ad33c476f99b309, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.5 + objectReference: {fileID: 0} + - target: {fileID: 7852221720480299767, guid: 046dde0f4600bce41ad33c476f99b309, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 7852221720480299767, guid: 046dde0f4600bce41ad33c476f99b309, + type: 3} + propertyPath: m_LocalRotation.y + value: 0.8660254 + objectReference: {fileID: 0} + - target: {fileID: 7852221720480299767, guid: 046dde0f4600bce41ad33c476f99b309, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 7852221720480299767, guid: 046dde0f4600bce41ad33c476f99b309, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7852221720480299767, guid: 046dde0f4600bce41ad33c476f99b309, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7852221720480299767, guid: 046dde0f4600bce41ad33c476f99b309, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7852221720741322892, guid: 046dde0f4600bce41ad33c476f99b309, + type: 3} + propertyPath: m_LocalScale.x + value: 40 + objectReference: {fileID: 0} + - target: {fileID: 7852221720741322892, guid: 046dde0f4600bce41ad33c476f99b309, + type: 3} + propertyPath: m_LocalScale.y + value: 40 + objectReference: {fileID: 0} + - target: {fileID: 7852221720969441490, guid: 046dde0f4600bce41ad33c476f99b309, + type: 3} + propertyPath: m_LocalScale.x + value: 20 + objectReference: {fileID: 0} + - target: {fileID: 7852221720969441490, guid: 046dde0f4600bce41ad33c476f99b309, + type: 3} + propertyPath: m_LocalScale.y + value: 20 + objectReference: {fileID: 0} + - target: {fileID: 7852221720971737233, guid: 046dde0f4600bce41ad33c476f99b309, + type: 3} + propertyPath: m_LocalPosition.y + value: -4 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 046dde0f4600bce41ad33c476f99b309, type: 3} +--- !u!4 &229068763 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 7852221720480299767, guid: 046dde0f4600bce41ad33c476f99b309, + type: 3} + m_PrefabInstance: {fileID: 229068762} + m_PrefabAsset: {fileID: 0} --- !u!1 &240056260 GameObject: m_ObjectHideFlags: 0 @@ -1479,17 +1599,22 @@ PrefabInstance: m_ObjectHideFlags: 0 serializedVersion: 2 m_Modification: - m_TransformParent: {fileID: 0} + m_TransformParent: {fileID: 1090070598} m_Modifications: - target: {fileID: 7852221720480299766, guid: 046dde0f4600bce41ad33c476f99b309, type: 3} propertyPath: m_Name value: Sun objectReference: {fileID: 0} + - target: {fileID: 7852221720480299766, guid: 046dde0f4600bce41ad33c476f99b309, + type: 3} + propertyPath: m_TagString + value: Respawn + objectReference: {fileID: 0} - target: {fileID: 7852221720480299767, guid: 046dde0f4600bce41ad33c476f99b309, type: 3} propertyPath: m_RootOrder - value: 13 + value: 2 objectReference: {fileID: 0} - target: {fileID: 7852221720480299767, guid: 046dde0f4600bce41ad33c476f99b309, type: 3} @@ -1529,17 +1654,17 @@ PrefabInstance: - target: {fileID: 7852221720480299767, guid: 046dde0f4600bce41ad33c476f99b309, type: 3} propertyPath: m_LocalRotation.x - value: 0 + value: -0 objectReference: {fileID: 0} - target: {fileID: 7852221720480299767, guid: 046dde0f4600bce41ad33c476f99b309, type: 3} propertyPath: m_LocalRotation.y - value: 0 + value: -0 objectReference: {fileID: 0} - target: {fileID: 7852221720480299767, guid: 046dde0f4600bce41ad33c476f99b309, type: 3} propertyPath: m_LocalRotation.z - value: 0 + value: -0 objectReference: {fileID: 0} - target: {fileID: 7852221720480299767, guid: 046dde0f4600bce41ad33c476f99b309, type: 3} @@ -1583,6 +1708,38 @@ PrefabInstance: objectReference: {fileID: 0} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 046dde0f4600bce41ad33c476f99b309, type: 3} +--- !u!1 &599096482 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 6977256487485077368, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + m_PrefabInstance: {fileID: 6977256487279145163} + m_PrefabAsset: {fileID: 0} +--- !u!114 &599096483 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 2784739443721397315, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + m_PrefabInstance: {fileID: 6977256487279145163} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 599096482} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8ffec49d55e3429418714ceb048bfeae, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &599096484 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 599096482} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4246efc88a944e65a278d651eabd8daa, type: 3} + m_Name: + m_EditorClassIdentifier: + Target: {fileID: 599096483} + SpawnerTag: Respawn --- !u!1 &652433663 GameObject: m_ObjectHideFlags: 0 @@ -2140,6 +2297,12 @@ MonoBehaviour: m_FlexibleWidth: -1 m_FlexibleHeight: -1 m_LayoutPriority: 1 +--- !u!4 &734604127 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 7852221720480299767, guid: 046dde0f4600bce41ad33c476f99b309, + type: 3} + m_PrefabInstance: {fileID: 556481138} + m_PrefabAsset: {fileID: 0} --- !u!1 &753458616 GameObject: m_ObjectHideFlags: 0 @@ -2190,7 +2353,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 1 + m_IsActive: 0 --- !u!4 &789220865 Transform: m_ObjectHideFlags: 0 @@ -2851,6 +3014,53 @@ Transform: m_Father: {fileID: 1532567794} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 90, y: 180, z: 0} +--- !u!1 &1090070596 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1090070598} + - component: {fileID: 1090070597} + m_Layer: 0 + m_Name: Center + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1090070597 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1090070596} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 47e64413aeb5ae740b410d70fb05d20c, type: 3} + m_Name: + m_EditorClassIdentifier: + rotSpeed: {x: 0, y: 5, z: 0} +--- !u!4 &1090070598 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1090070596} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1647759374} + - {fileID: 229068763} + - {fileID: 734604127} + m_Father: {fileID: 0} + m_RootOrder: 13 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1124877094 GameObject: m_ObjectHideFlags: 0 @@ -2916,6 +3126,12 @@ MonoBehaviour: Secondary: {fileID: 441433740} Influence: {fileID: 1190354611} Label: {fileID: 62236175} +--- !u!4 &1128149392 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 7852221720971737233, guid: 046dde0f4600bce41ad33c476f99b309, + type: 3} + m_PrefabInstance: {fileID: 1647759373} + m_PrefabAsset: {fileID: 0} --- !u!1 &1183010123 GameObject: m_ObjectHideFlags: 0 @@ -3414,6 +3630,7 @@ GameObject: - component: {fileID: 1314993072} - component: {fileID: 1314993071} - component: {fileID: 1314993069} + - component: {fileID: 1314993066} m_Layer: 0 m_Name: Main Camera m_TagString: MainCamera @@ -3421,6 +3638,40 @@ GameObject: m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 +--- !u!114 &1314993066 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1314993065} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 72ece51f2901e7445ab60da3685d6b5f, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ShowDebugText: 0 + m_ShowCameraFrustum: 1 + m_IgnoreTimeScale: 0 + m_WorldUpOverride: {fileID: 0} + m_UpdateMethod: 2 + m_BlendUpdateMethod: 1 + m_DefaultBlend: + m_Style: 1 + m_Time: 2 + m_CustomCurve: + serializedVersion: 2 + m_Curve: [] + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_CustomBlends: {fileID: 0} + m_CameraCutEvent: + m_PersistentCalls: + m_Calls: [] + m_CameraActivatedEvent: + m_PersistentCalls: + m_Calls: [] --- !u!114 &1314993069 MonoBehaviour: m_ObjectHideFlags: 0 @@ -3545,8 +3796,8 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1314993065} - m_LocalRotation: {x: 0.17364816, y: 0, z: 0, w: 0.9848078} - m_LocalPosition: {x: 0, y: -65, z: -300} + m_LocalRotation: {x: 0.2267062, y: 0.44560468, z: -0.11773936, w: 0.8580083} + m_LocalPosition: {x: -299.03247, y: -38.375748, z: -188.30061} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 0} @@ -3960,6 +4211,73 @@ MeshFilter: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1466792826} m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1479254159 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1479254161} + - component: {fileID: 1479254160} + m_Layer: 0 + m_Name: CM vcam1 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1479254160 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1479254159} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 45e653bab7fb20e499bda25e1b646fea, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ExcludedPropertiesInInspector: + - m_Script + m_LockStageInInspector: + m_StreamingVersion: 20170927 + m_Priority: 10 + m_StandbyUpdate: 2 + m_LookAt: {fileID: 1505228822} + m_Follow: {fileID: 1128149392} + m_Lens: + FieldOfView: 60 + OrthographicSize: 5 + NearClipPlane: 0.3 + FarClipPlane: 4096 + Dutch: 0 + LensShift: {x: 0, y: 0} + m_Transitions: + m_BlendHint: 0 + m_InheritPosition: 0 + m_OnCameraLive: + m_PersistentCalls: + m_Calls: [] + m_LegacyBlendHint: 0 + m_ComponentOwner: {fileID: 1547641803} +--- !u!4 &1479254161 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1479254159} + m_LocalRotation: {x: 0.2267062, y: 0.44560468, z: -0.11773936, w: 0.8580083} + m_LocalPosition: {x: -299.03247, y: -38.375748, z: -188.30061} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1547641803} + m_Father: {fileID: 0} + m_RootOrder: 14 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1489231074 GameObject: m_ObjectHideFlags: 0 @@ -4041,6 +4359,12 @@ MeshFilter: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1489231074} m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &1505228822 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 7852221720971737233, guid: 046dde0f4600bce41ad33c476f99b309, + type: 3} + m_PrefabInstance: {fileID: 229068762} + m_PrefabAsset: {fileID: 0} --- !u!1 &1520024705 GameObject: m_ObjectHideFlags: 0 @@ -4306,6 +4630,121 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1538186654} m_CullTransparentMesh: 1 +--- !u!1 &1547641802 +GameObject: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1547641803} + - component: {fileID: 1547641806} + - component: {fileID: 1547641805} + - component: {fileID: 1547641804} + m_Layer: 0 + m_Name: cm + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1547641803 +Transform: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1547641802} + m_LocalRotation: {x: -0.7071068, y: -0, z: -0, w: 0.7071068} + m_LocalPosition: {x: -58.728523, y: 4.327759, z: 429.1176} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1479254161} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1547641804 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1547641802} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4044717213e31446939f7bd49c896ea, type: 3} + m_Name: + m_EditorClassIdentifier: + m_TrackedObjectOffset: {x: 0, y: 0, z: 0} + m_LookaheadTime: 0 + m_LookaheadSmoothing: 0 + m_LookaheadIgnoreY: 0 + m_HorizontalDamping: 0.5 + m_VerticalDamping: 0.5 + m_ScreenX: 0.2 + m_ScreenY: 0.2 + m_DeadZoneWidth: 0 + m_DeadZoneHeight: 0 + m_SoftZoneWidth: 0.8 + m_SoftZoneHeight: 0.8 + m_BiasX: 0 + m_BiasY: 0 + m_CenterOnActivate: 1 +--- !u!114 &1547641805 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1547641802} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6ad980451443d70438faac0bc6c235a0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_TrackedObjectOffset: {x: 0, y: 0, z: 0} + m_LookaheadTime: 0 + m_LookaheadSmoothing: 0 + m_LookaheadIgnoreY: 0 + m_XDamping: 5 + m_YDamping: 5 + m_ZDamping: 5 + m_TargetMovementOnly: 0 + m_ScreenX: 0.9 + m_ScreenY: 0.55 + m_CameraDistance: 150 + m_DeadZoneWidth: 0 + m_DeadZoneHeight: 0 + m_DeadZoneDepth: 0 + m_UnlimitedSoftZone: 0 + m_SoftZoneWidth: 0.8 + m_SoftZoneHeight: 0.8 + m_BiasX: -0.000000074505806 + m_BiasY: 0 + m_CenterOnActivate: 1 + m_GroupFramingMode: 2 + m_AdjustmentMode: 0 + m_GroupFramingSize: 0.8 + m_MaxDollyIn: 5000 + m_MaxDollyOut: 5000 + m_MinimumDistance: 1 + m_MaximumDistance: 5000 + m_MinimumFOV: 3 + m_MaximumFOV: 60 + m_MinimumOrthoSize: 1 + m_MaximumOrthoSize: 5000 +--- !u!114 &1547641806 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1547641802} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ac0b09e7857660247b1477e93731de29, type: 3} + m_Name: + m_EditorClassIdentifier: --- !u!1 &1563996705 GameObject: m_ObjectHideFlags: 0 @@ -4468,22 +4907,27 @@ MeshFilter: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1584275845} m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} ---- !u!1001 &1673244484 +--- !u!1001 &1647759373 PrefabInstance: m_ObjectHideFlags: 0 serializedVersion: 2 m_Modification: - m_TransformParent: {fileID: 0} + m_TransformParent: {fileID: 1090070598} m_Modifications: - target: {fileID: 7852221720480299766, guid: 046dde0f4600bce41ad33c476f99b309, type: 3} propertyPath: m_Name - value: Sun (1) + value: Sun + objectReference: {fileID: 0} + - target: {fileID: 7852221720480299766, guid: 046dde0f4600bce41ad33c476f99b309, + type: 3} + propertyPath: m_TagString + value: Respawn objectReference: {fileID: 0} - target: {fileID: 7852221720480299767, guid: 046dde0f4600bce41ad33c476f99b309, type: 3} propertyPath: m_RootOrder - value: 14 + value: 0 objectReference: {fileID: 0} - target: {fileID: 7852221720480299767, guid: 046dde0f4600bce41ad33c476f99b309, type: 3} @@ -4503,7 +4947,7 @@ PrefabInstance: - target: {fileID: 7852221720480299767, guid: 046dde0f4600bce41ad33c476f99b309, type: 3} propertyPath: m_LocalPosition.x - value: -250 + value: -125.00003 objectReference: {fileID: 0} - target: {fileID: 7852221720480299767, guid: 046dde0f4600bce41ad33c476f99b309, type: 3} @@ -4513,27 +4957,27 @@ PrefabInstance: - target: {fileID: 7852221720480299767, guid: 046dde0f4600bce41ad33c476f99b309, type: 3} propertyPath: m_LocalPosition.z - value: 0 + value: -216.50633 objectReference: {fileID: 0} - target: {fileID: 7852221720480299767, guid: 046dde0f4600bce41ad33c476f99b309, type: 3} propertyPath: m_LocalRotation.w - value: 1 + value: 0.49999994 objectReference: {fileID: 0} - target: {fileID: 7852221720480299767, guid: 046dde0f4600bce41ad33c476f99b309, type: 3} propertyPath: m_LocalRotation.x - value: 0 + value: -0 objectReference: {fileID: 0} - target: {fileID: 7852221720480299767, guid: 046dde0f4600bce41ad33c476f99b309, type: 3} propertyPath: m_LocalRotation.y - value: 0 + value: 0.86602545 objectReference: {fileID: 0} - target: {fileID: 7852221720480299767, guid: 046dde0f4600bce41ad33c476f99b309, type: 3} propertyPath: m_LocalRotation.z - value: 0 + value: -0 objectReference: {fileID: 0} - target: {fileID: 7852221720480299767, guid: 046dde0f4600bce41ad33c476f99b309, type: 3} @@ -4577,6 +5021,12 @@ PrefabInstance: objectReference: {fileID: 0} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 046dde0f4600bce41ad33c476f99b309, type: 3} +--- !u!4 &1647759374 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 7852221720480299767, guid: 046dde0f4600bce41ad33c476f99b309, + type: 3} + m_PrefabInstance: {fileID: 1647759373} + m_PrefabAsset: {fileID: 0} --- !u!1 &1691202845 GameObject: m_ObjectHideFlags: 0 @@ -5594,6 +6044,16 @@ PrefabInstance: m_Modification: m_TransformParent: {fileID: 753458617} m_Modifications: + - target: {fileID: 2784739443721397315, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: TextureSize + value: 2048 + objectReference: {fileID: 0} + - target: {fileID: 2784739443721397315, guid: efd1f097ce29ffa48bb0045d6502f55d, + type: 3} + propertyPath: TargetCamera + value: + objectReference: {fileID: 1314993072} - target: {fileID: 6977256487485077368, guid: efd1f097ce29ffa48bb0045d6502f55d, type: 3} propertyPath: m_Name @@ -5617,7 +6077,7 @@ PrefabInstance: - target: {fileID: 6977256487485077373, guid: efd1f097ce29ffa48bb0045d6502f55d, type: 3} propertyPath: m_LocalPosition.z - value: 0 + value: 0.5 objectReference: {fileID: 0} - target: {fileID: 6977256487485077373, guid: efd1f097ce29ffa48bb0045d6502f55d, type: 3} diff --git a/Assets/Scripts/CultCache.meta b/Assets/Scripts/CultCache.meta new file mode 100644 index 000000000..98062f010 --- /dev/null +++ b/Assets/Scripts/CultCache.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b3bf8dcfcee789d498097584ec6ca6e5 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/CultCache/Editor.meta b/Assets/Scripts/CultCache/Editor.meta new file mode 100644 index 000000000..20232d25a --- /dev/null +++ b/Assets/Scripts/CultCache/Editor.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 2501605fca062c84d963e811df551698 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Editor/DatabaseInspector.cs b/Assets/Scripts/CultCache/Editor/DatabaseInspector.cs similarity index 94% rename from Assets/Scripts/Editor/DatabaseInspector.cs rename to Assets/Scripts/CultCache/Editor/DatabaseInspector.cs index 3d861a384..95b276bda 100644 --- a/Assets/Scripts/Editor/DatabaseInspector.cs +++ b/Assets/Scripts/CultCache/Editor/DatabaseInspector.cs @@ -61,6 +61,7 @@ public class DatabaseInspector : EditorWindow _white = Color.white.ToTexture(); _warning = new GUIStyle(EditorStyles.boldLabel); _warning.normal.textColor = Color.red; + } public void Inspect(object obj, bool inspectablesOnly = false) @@ -315,11 +316,12 @@ public class DatabaseInspector : EditorWindow else _listItemFoldouts.Remove(o.GetHashCode()); - var rect = GetControlRect(false, - GUILayout.Width(EditorGUIUtility.singleLineHeight)); - GUI.DrawTexture(rect, Icons.Instance.minus, ScaleMode.StretchToFill, true, 1, - LabelColor, 0, 0); - if (GUI.Button(rect, GUIContent.none, GUIStyle.none)) + + // var rect = GetControlRect(false, + // GUILayout.Width(EditorGUIUtility.singleLineHeight)); + // GUI.DrawTexture(rect, Icons.Instance.minus, ScaleMode.StretchToFill, true, 1, + // LabelColor, 0, 0); + if (GUILayout.Button("-")) { list.Remove(o); break; @@ -339,9 +341,9 @@ public class DatabaseInspector : EditorWindow using (new HorizontalScope(_list.ListItemStyle)) { GUILayout.Label($"Add new {listType.Name}", GUILayout.ExpandWidth(true)); - var rect = GetControlRect(false, GUILayout.Width(EditorGUIUtility.singleLineHeight)); - GUI.DrawTexture(rect, Icons.Instance.plus, ScaleMode.StretchToFill, true, 1, LabelColor, 0, 0); - if (GUI.Button(rect, GUIContent.none, GUIStyle.none)) + // var rect = GetControlRect(false, GUILayout.Width(EditorGUIUtility.singleLineHeight)); + // GUI.DrawTexture(rect, Icons.Instance.plus, ScaleMode.StretchToFill, true, 1, LabelColor, 0, 0); + if (GUILayout.Button("+")) { if (listType.IsInterface) { @@ -400,11 +402,11 @@ public class DatabaseInspector : EditorWindow { GUILayout.Label(o.name.SplitCamelCase(), EditorStyles.boldLabel, GUILayout.ExpandWidth(true)); - var rect = GetControlRect(false, - GUILayout.Width(EditorGUIUtility.singleLineHeight)); - GUI.DrawTexture(rect, Icons.Instance.minus, ScaleMode.StretchToFill, true, 1, - LabelColor, 0, 0); - if (GUI.Button(rect, GUIContent.none, GUIStyle.none)) + // var rect = GetControlRect(false, + // GUILayout.Width(EditorGUIUtility.singleLineHeight)); + // GUI.DrawTexture(rect, Icons.Instance.minus, ScaleMode.StretchToFill, true, 1, + // LabelColor, 0, 0); + if (GUILayout.Button("-")) { list.Remove(o); break; @@ -663,11 +665,11 @@ public class DatabaseInspector : EditorWindow } } } - var rect = GetControlRect(false, - GUILayout.Width(EditorGUIUtility.singleLineHeight)); - GUI.DrawTexture(rect, Icons.Instance.minus, ScaleMode.StretchToFill, true, 1, - LabelColor, 0, 0); - if (GUI.Button(rect, GUIContent.none, GUIStyle.none)) + // var rect = GetControlRect(false, + // GUILayout.Width(EditorGUIUtility.singleLineHeight)); + // GUI.DrawTexture(rect, Icons.Instance.minus, ScaleMode.StretchToFill, true, 1, + // LabelColor, 0, 0); + if (GUILayout.Button("-")) { return Guid.Empty; } @@ -707,9 +709,9 @@ public class DatabaseInspector : EditorWindow value[ingredient.Key] = DelayedIntField(value[ingredient.Key], GUILayout.Width(50)); - var rect = GetControlRect(false, GUILayout.Width(EditorGUIUtility.singleLineHeight)); - GUI.DrawTexture(rect, Icons.Instance.minus, ScaleMode.StretchToFill, true, 1, LabelColor, 0, 0); - if (GUI.Button(rect, GUIContent.none, GUIStyle.none) || value[ingredient.Key]==0) + // var rect = GetControlRect(false, GUILayout.Width(EditorGUIUtility.singleLineHeight)); + // GUI.DrawTexture(rect, Icons.Instance.minus, ScaleMode.StretchToFill, true, 1, LabelColor, 0, 0); + if (GUILayout.Button("-") || value[ingredient.Key]==0) value.Remove(ingredient.Key); } } @@ -766,9 +768,9 @@ public class DatabaseInspector : EditorWindow else GUILayout.Label(entry.ID.ToString()); value[ingredient.Key] = DelayedFloatField(value[ingredient.Key], GUILayout.Width(50)); - var rect = GetControlRect(false, GUILayout.Width(EditorGUIUtility.singleLineHeight)); - GUI.DrawTexture(rect, Icons.Instance.minus, ScaleMode.StretchToFill, true, 1, LabelColor, 0, 0); - if (GUI.Button(rect, GUIContent.none, GUIStyle.none)) + // var rect = GetControlRect(false, GUILayout.Width(EditorGUIUtility.singleLineHeight)); + // GUI.DrawTexture(rect, Icons.Instance.minus, ScaleMode.StretchToFill, true, 1, LabelColor, 0, 0); + if (GUILayout.Button("-")) value.Remove(ingredient.Key); } } @@ -825,9 +827,9 @@ public class DatabaseInspector : EditorWindow else GUILayout.Label(entry.ID.ToString()); value[ingredient.Key] = Slider(value[ingredient.Key], min, max); - var rect = GetControlRect(false, GUILayout.Width(EditorGUIUtility.singleLineHeight)); - GUI.DrawTexture(rect, Icons.Instance.minus, ScaleMode.StretchToFill, true, 1, LabelColor, 0, 0); - if (GUI.Button(rect, GUIContent.none, GUIStyle.none)) + // var rect = GetControlRect(false, GUILayout.Width(EditorGUIUtility.singleLineHeight)); + // GUI.DrawTexture(rect, Icons.Instance.minus, ScaleMode.StretchToFill, true, 1, LabelColor, 0, 0); + if (GUILayout.Button("-")) value.Remove(ingredient.Key); } } @@ -881,9 +883,9 @@ public class DatabaseInspector : EditorWindow { GUILayout.Label((entry as INamedEntry)?.EntryName ?? entry.ID.ToString()); - var rect = GetControlRect(false, GUILayout.Width(EditorGUIUtility.singleLineHeight)); - GUI.DrawTexture(rect, Icons.Instance.minus, ScaleMode.StretchToFill, true, 1, LabelColor, 0, 0); - if (GUI.Button(rect, GUIContent.none, GUIStyle.none)) + // var rect = GetControlRect(false, GUILayout.Width(EditorGUIUtility.singleLineHeight)); + // GUI.DrawTexture(rect, Icons.Instance.minus, ScaleMode.StretchToFill, true, 1, LabelColor, 0, 0); + if (GUILayout.Button("-")) { value.Remove(guid); } @@ -1136,8 +1138,8 @@ public class DatabaseInspector : EditorWindow using (new HorizontalScope()) { - if(GUILayout.Button("Print JSON")) - Debug.Log(entry.ToJson()); + // if(GUILayout.Button("Print JSON")) + // Debug.Log(entry.ToJson()); // if (GUILayout.Button("Duplicate")) // { // DatabaseCache.Duplicate(entry); diff --git a/Assets/Scripts/Editor/DatabaseInspector.cs.meta b/Assets/Scripts/CultCache/Editor/DatabaseInspector.cs.meta similarity index 100% rename from Assets/Scripts/Editor/DatabaseInspector.cs.meta rename to Assets/Scripts/CultCache/Editor/DatabaseInspector.cs.meta diff --git a/Assets/Scripts/Editor/DatabaseView.cs b/Assets/Scripts/CultCache/Editor/DatabaseView.cs similarity index 96% rename from Assets/Scripts/Editor/DatabaseView.cs rename to Assets/Scripts/CultCache/Editor/DatabaseView.cs index c3bfcb10e..59d449790 100644 --- a/Assets/Scripts/Editor/DatabaseView.cs +++ b/Assets/Scripts/CultCache/Editor/DatabaseView.cs @@ -7,6 +7,7 @@ using System.Collections.Generic; using System.IO; using System.Linq; using System.Reflection; +using JsonKnownTypes; using RethinkDb.Driver; using RethinkDb.Driver.Net; using UnityEditor; @@ -18,7 +19,7 @@ public class DatabaseListView : EditorWindow // Singleton to avoid multiple instances of window. private static DatabaseListView _instance; public static DatabaseListView Instance => _instance ? _instance : GetWindow(); - [MenuItem("Window/Aetheria Database Tools")] + [MenuItem("Window/GameCult/Database Tools")] static void Init() => Instance.Show(); private void Awake() { @@ -51,7 +52,7 @@ public class DatabaseListView : EditorWindow private HashSet _itemGroupFoldouts = new HashSet(); private HashSet _itemManufacturerFoldouts = new HashSet(); private HashSet<(Guid, HardpointType)> _itemManufacturerTypeFoldouts = new HashSet<(Guid, HardpointType)>(); - private string _filePath => Path.Combine(ActionGameManager.GameDataDirectory.FullName, _fileName); + private string _filePath => Path.Combine(new DirectoryInfo(Application.dataPath).Parent.CreateSubdirectory("GameData").FullName, _fileName); private string _fileName = "AetherDB.msgpack"; public Color LabelColor => EditorGUIUtility.isProSkin ? Color.white : Color.black; @@ -61,6 +62,7 @@ public class DatabaseListView : EditorWindow void OnEnable() { + //_filePath = ; // Create database cache _databaseCache = new DatabaseCache(_filePath); @@ -139,6 +141,7 @@ public class DatabaseListView : EditorWindow if (GUILayout.Button("Connect")) { EditorPrefs.SetString("RethinkDB.URL", _connectionString); + JsonKnownTypesSettingsManager.RegisterTypeAssembly(); _queryStatus = RethinkConnection.RethinkConnect(_databaseCache, _connectionString); } // if (GUILayout.Button("Connect All")) @@ -362,8 +365,8 @@ public class DatabaseListView : EditorWindow CreateItem(_itemTypes[i]); GUILayout.Space(20); GUILayout.Label("New " + FormatTypeName(_itemTypes[i].Name)); - var rect = GetControlRect(false, GUILayout.Width(EditorGUIUtility.singleLineHeight)); - GUI.DrawTexture(rect, Icons.Instance.plus, ScaleMode.StretchToFill, true, 1, LabelColor, 0, 0); + // var rect = GetControlRect(false, GUILayout.Width(EditorGUIUtility.singleLineHeight)); + // GUI.DrawTexture(rect, Icons.Instance.plus, ScaleMode.StretchToFill, true, 1, LabelColor, 0, 0); } } } @@ -411,8 +414,8 @@ public class DatabaseListView : EditorWindow CreateItem(_entryTypes[i]); GUILayout.Space(10); GUILayout.Label("New " + _entryTypes[i].Name); - var rect = GetControlRect(false, GUILayout.Width(EditorGUIUtility.singleLineHeight)); - GUI.DrawTexture(rect, Icons.Instance.plus, ScaleMode.StretchToFill, true, 1, LabelColor, 0, 0); + // var rect = GetControlRect(false, GUILayout.Width(EditorGUIUtility.singleLineHeight)); + // GUI.DrawTexture(rect, Icons.Instance.plus, ScaleMode.StretchToFill, true, 1, LabelColor, 0, 0); } } } diff --git a/Assets/Scripts/Editor/DatabaseView.cs.meta b/Assets/Scripts/CultCache/Editor/DatabaseView.cs.meta similarity index 100% rename from Assets/Scripts/Editor/DatabaseView.cs.meta rename to Assets/Scripts/CultCache/Editor/DatabaseView.cs.meta diff --git a/Assets/Scripts/Editor/EditorDispatch.cs b/Assets/Scripts/CultCache/Editor/EditorDispatch.cs similarity index 100% rename from Assets/Scripts/Editor/EditorDispatch.cs rename to Assets/Scripts/CultCache/Editor/EditorDispatch.cs diff --git a/Assets/Scripts/Editor/EditorDispatch.cs.meta b/Assets/Scripts/CultCache/Editor/EditorDispatch.cs.meta similarity index 100% rename from Assets/Scripts/Editor/EditorDispatch.cs.meta rename to Assets/Scripts/CultCache/Editor/EditorDispatch.cs.meta diff --git a/Assets/Scripts/CultCache/Editor/InspectorBase.cs b/Assets/Scripts/CultCache/Editor/InspectorBase.cs new file mode 100644 index 000000000..85a51b513 --- /dev/null +++ b/Assets/Scripts/CultCache/Editor/InspectorBase.cs @@ -0,0 +1,9 @@ +public abstract class InspectorBase +{ + protected const int width = 150; + protected const int labelWidth = 20; + protected const int toggleWidth = 18; + protected const int arrowWidth = 22; + + public abstract T Inspect(string label, T value); +} \ No newline at end of file diff --git a/Assets/Scripts/CultCache/Editor/InspectorBase.cs.meta b/Assets/Scripts/CultCache/Editor/InspectorBase.cs.meta new file mode 100644 index 000000000..b7330b2c5 --- /dev/null +++ b/Assets/Scripts/CultCache/Editor/InspectorBase.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: f3cde78766994141a3da6ab88d09118f +timeCreated: 1617052142 \ No newline at end of file diff --git a/Assets/Scripts/CultCache/Editor/Inspectors.meta b/Assets/Scripts/CultCache/Editor/Inspectors.meta new file mode 100644 index 000000000..cd59277e6 --- /dev/null +++ b/Assets/Scripts/CultCache/Editor/Inspectors.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b62c0242f5704a96829889e1d4c44900 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/CultCache/Editor/Inspectors/MathematicsInspector.cs b/Assets/Scripts/CultCache/Editor/Inspectors/MathematicsInspector.cs new file mode 100644 index 000000000..7bc6b82e3 --- /dev/null +++ b/Assets/Scripts/CultCache/Editor/Inspectors/MathematicsInspector.cs @@ -0,0 +1,60 @@ +using Unity.Mathematics; +using UnityEditor; +using UnityEngine; +using static UnityEditor.EditorGUILayout; + +public class Float2Inspector : InspectorBase +{ + public override float2 Inspect(string label, float2 value) + { + using (var h = new EditorGUILayout.HorizontalScope()) + { + GUILayout.Label(label, GUILayout.Width(width)); + GUILayout.Label("X", GUILayout.Width(labelWidth)); + value.x = DelayedFloatField(value.x); + GUILayout.Label("Y", GUILayout.Width(labelWidth)); + value.y = DelayedFloatField(value.y); + return value; + } + } +} + +public class Float3Inspector : InspectorBase +{ + public override float3 Inspect(string label, float3 value) + { + using (var h = new EditorGUILayout.HorizontalScope()) + { + GUILayout.Label(label, GUILayout.Width(width)); + GUILayout.Label("X", GUILayout.Width(labelWidth)); + value.x = DelayedFloatField(value.x); + GUILayout.Label("Y", GUILayout.Width(labelWidth)); + value.y = DelayedFloatField(value.y); + return value; + } + } +} + +public class Int2Inspector : InspectorBase +{ + public override int2 Inspect(string label, int2 value) + { + using (var h = new EditorGUILayout.HorizontalScope()) + { + GUILayout.Label(label, GUILayout.Width(width)); + GUILayout.Label("X", GUILayout.Width(labelWidth)); + value.x = DelayedIntField(value.x); + GUILayout.Label("Y", GUILayout.Width(labelWidth)); + value.y = DelayedIntField(value.y); + if (GUILayout.Button("\u2190", GUILayout.Width(arrowWidth))) + value.x--; + if (GUILayout.Button("\u2192", GUILayout.Width(arrowWidth))) + value.x++; + if (GUILayout.Button("\u2191", GUILayout.Width(arrowWidth))) + value.y++; + if (GUILayout.Button("\u2193", GUILayout.Width(arrowWidth))) + value.y--; + return value; + } + } +} \ No newline at end of file diff --git a/Assets/Scripts/ServerShared/Behaviors/SurveyController.cs.meta b/Assets/Scripts/CultCache/Editor/Inspectors/MathematicsInspector.cs.meta similarity index 83% rename from Assets/Scripts/ServerShared/Behaviors/SurveyController.cs.meta rename to Assets/Scripts/CultCache/Editor/Inspectors/MathematicsInspector.cs.meta index bd420756e..a77ad74c8 100644 --- a/Assets/Scripts/ServerShared/Behaviors/SurveyController.cs.meta +++ b/Assets/Scripts/CultCache/Editor/Inspectors/MathematicsInspector.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: c1511795bf85d6e41ab89cb05c7cec84 +guid: ae5bba94d1f1a7144944aebf833497b3 MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/Assets/Scripts/RethinkConnection.cs b/Assets/Scripts/CultCache/Editor/RethinkConnection.cs similarity index 98% rename from Assets/Scripts/RethinkConnection.cs rename to Assets/Scripts/CultCache/Editor/RethinkConnection.cs index 047a287f0..247ac8e05 100644 --- a/Assets/Scripts/RethinkConnection.cs +++ b/Assets/Scripts/CultCache/Editor/RethinkConnection.cs @@ -11,7 +11,6 @@ using Newtonsoft.Json; using RethinkDb.Driver; using RethinkDb.Driver.Ast; using RethinkDb.Driver.Net; -using UniRx; using UnityEngine; public static class RethinkConnection @@ -97,7 +96,7 @@ public static class RethinkConnection cache.Add(entry, true); status.RetrievedItems++; } - }).WrapErrors(); + }).WrapAwait(); // Get globaldata and all galaxy map layer data from RethinkDB Task.Run(async () => @@ -116,7 +115,7 @@ public static class RethinkConnection cache.Add(entry, true); status.RetrievedItems++; } - }).WrapErrors(); + }).WrapAwait(); // Subscribe to changes from RethinkDB Task.Run(async () => @@ -137,7 +136,7 @@ public static class RethinkConnection Debug.Log($"Received change from RethinkDB: {change.NewValue.ID}"); cache.Add(change.NewValue, true); } - }).WrapErrors(); + }).WrapAwait(); // Observable.Timer(DateTimeOffset.Now, TimeSpan.FromSeconds(60)).Subscribe(_ => // { diff --git a/Assets/Scripts/RethinkConnection.cs.meta b/Assets/Scripts/CultCache/Editor/RethinkConnection.cs.meta similarity index 100% rename from Assets/Scripts/RethinkConnection.cs.meta rename to Assets/Scripts/CultCache/Editor/RethinkConnection.cs.meta diff --git a/Assets/Scripts/CultCache/UnityExtensions.cs b/Assets/Scripts/CultCache/UnityExtensions.cs new file mode 100644 index 000000000..0a6feb767 --- /dev/null +++ b/Assets/Scripts/CultCache/UnityExtensions.cs @@ -0,0 +1,45 @@ +using System.Linq; +using Unity.Mathematics; +using UnityEngine; +using static Unity.Mathematics.math; + +public static class UnityExtensions +{ + public static Texture2D ToTexture(this Color c) + { + Texture2D result = new Texture2D(1, 1); + result.SetPixels(new[]{c}); + result.Apply(); + + return result; + } + + private const int GradSteps = 32; + public static Texture2D ToTexture(this Gradient g) + { + var tex = new Texture2D(GradSteps, 1) {wrapMode = TextureWrapMode.Clamp}; + for (int x = 0; x < GradSteps; x++) + { + tex.SetPixel(x, 0, g.Evaluate( (float)x / GradSteps)); + } + tex.Apply(); + return tex; + } + + public static Gradient ToGradient(this float4[] keys, bool sharp = false) + { + var grad = new Gradient(); + grad.mode = sharp ? GradientMode.Fixed : GradientMode.Blend; + grad.alphaKeys = new[] {new GradientAlphaKey(1, 0), new GradientAlphaKey(1, 1)}; + grad.colorKeys = keys.Select(k => new GradientColorKey(k.xyz.ToColor(), k.w)).ToArray(); + return grad; + } + + public static AnimationCurve ToCurve(this float4[] keys) + { + return new AnimationCurve(keys.Select(v => new Keyframe(v.x, v.y, v.z, v.w)).ToArray()); + } + + public static Color ToColor(this float3 v) => new Color(v.x,v.y,v.z); + public static float3 ToFloat3(this Color c) => float3(c.r,c.g,c.b); +} \ No newline at end of file diff --git a/Assets/Scripts/CultCache/UnityExtensions.cs.meta b/Assets/Scripts/CultCache/UnityExtensions.cs.meta new file mode 100644 index 000000000..120df739c --- /dev/null +++ b/Assets/Scripts/CultCache/UnityExtensions.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 3a636a779c5943a889bf24a66ecf7e32 +timeCreated: 1617057143 \ No newline at end of file diff --git a/Assets/Plugins/XKCDColors.cs b/Assets/Scripts/CultCache/XKCDColors.cs similarity index 100% rename from Assets/Plugins/XKCDColors.cs rename to Assets/Scripts/CultCache/XKCDColors.cs diff --git a/Assets/Plugins/XKCDColors.cs.meta b/Assets/Scripts/CultCache/XKCDColors.cs.meta similarity index 100% rename from Assets/Plugins/XKCDColors.cs.meta rename to Assets/Scripts/CultCache/XKCDColors.cs.meta diff --git a/Assets/Scripts/ServerShared/Economy.Shared.Unity.asmdef b/Assets/Scripts/ServerShared/Aetheria.Shared.Unity.asmdef similarity index 77% rename from Assets/Scripts/ServerShared/Economy.Shared.Unity.asmdef rename to Assets/Scripts/ServerShared/Aetheria.Shared.Unity.asmdef index 3e3ced7d5..4c2d7f240 100644 --- a/Assets/Scripts/ServerShared/Economy.Shared.Unity.asmdef +++ b/Assets/Scripts/ServerShared/Aetheria.Shared.Unity.asmdef @@ -1,9 +1,11 @@ { - "name": "Economy.Shared.Unity", + "name": "Aetheria.Shared.Unity", + "rootNamespace": "", "references": [ "MessagePack", "Unity.Mathematics", - "UniRx" + "UniRx", + "CultCache" ], "includePlatforms": [], "excludePlatforms": [], diff --git a/Assets/Scripts/ServerShared/Economy.Shared.Unity.asmdef.meta b/Assets/Scripts/ServerShared/Aetheria.Shared.Unity.asmdef.meta similarity index 100% rename from Assets/Scripts/ServerShared/Economy.Shared.Unity.asmdef.meta rename to Assets/Scripts/ServerShared/Aetheria.Shared.Unity.asmdef.meta diff --git a/Assets/Scripts/ServerShared/Agents/Agent.cs b/Assets/Scripts/ServerShared/Agents/Agent.cs index 1035617f4..051ff28e7 100644 --- a/Assets/Scripts/ServerShared/Agents/Agent.cs +++ b/Assets/Scripts/ServerShared/Agents/Agent.cs @@ -6,7 +6,6 @@ using System; using System.Collections; using System.Collections.Generic; using System.Linq; -using RethinkDb.Driver.Ast; using UniRx; using Unity.Mathematics; using static Unity.Mathematics.math; diff --git a/Assets/Scripts/ServerShared/Attributes.cs b/Assets/Scripts/ServerShared/Attributes.cs index ecc971791..ec4b303d6 100644 --- a/Assets/Scripts/ServerShared/Attributes.cs +++ b/Assets/Scripts/ServerShared/Attributes.cs @@ -14,17 +14,6 @@ public class NameAttribute : Attribute } } -[AttributeUsage(AttributeTargets.Class)] -public class RethinkTableAttribute : Attribute -{ - public string TableName; - - public RethinkTableAttribute(string tableName) - { - TableName = tableName; - } -} - public class OrderAttribute : Attribute { public int Order; @@ -47,124 +36,6 @@ public class EntityTypeRestrictionAttribute : Attribute } public class RuntimeInspectable : Attribute { } - -[AttributeUsage(AttributeTargets.Class)] -public class InspectableAttribute : Attribute { } - -[AttributeUsage(AttributeTargets.Class)] -public class ExternalEntryAttribute : Attribute { } - -public class InspectableFieldAttribute : Attribute { } - -[AttributeUsage(AttributeTargets.Field)] -public class InspectableTextAttribute : InspectableFieldAttribute { } - -[AttributeUsage(AttributeTargets.Field)] -public class InspectableUnityObjectAttribute : InspectableFieldAttribute -{ - public Type ObjectType; - - public InspectableUnityObjectAttribute(Type type) - { - ObjectType = type; - } -} - -[AttributeUsage(AttributeTargets.Field)] -public class InspectablePrefabAttribute : InspectableFieldAttribute { } - -[AttributeUsage(AttributeTargets.Field)] -public class InspectableTextureAttribute : InspectableFieldAttribute { } - -[AttributeUsage(AttributeTargets.Field)] -public class InspectableTextAssetAttribute : InspectableFieldAttribute { } - -[AttributeUsage(AttributeTargets.Field)] -public class InspectableTemperatureAttribute : InspectableFieldAttribute { } - -[AttributeUsage(AttributeTargets.Field)] -public class InspectableAnimationCurveAttribute : InspectableFieldAttribute { } - -[AttributeUsage(AttributeTargets.Field)] -public class InspectableColorAttribute : InspectableFieldAttribute { } - -[AttributeUsage(AttributeTargets.Field)] -public class InspectableDatabaseLinkAttribute : InspectableFieldAttribute -{ - public readonly Type EntryType; - - public InspectableDatabaseLinkAttribute(Type entryType) - { - EntryType = entryType; - } -} - -[AttributeUsage(AttributeTargets.Field)] -public class RangedFloatInspectableAttribute : InspectableFieldAttribute -{ - public readonly float Min, Max; - - public RangedFloatInspectableAttribute(float min, float max) - { - Min = min; - Max = max; - } -} - -[AttributeUsage(AttributeTargets.Field)] -public class RangedFloatAttribute : Attribute -{ - public readonly float Min, Max; - - public RangedFloatAttribute(float min, float max) - { - Min = min; - Max = max; - } -} - -[AttributeUsage(AttributeTargets.Field)] -public class RangedIntInspectableAttribute : InspectableFieldAttribute -{ - public readonly int Min, Max; - - public RangedIntInspectableAttribute(int min, int max) - { - Min = min; - Max = max; - } -} - -public class InspectableTypeAttribute : InspectableFieldAttribute -{ - public readonly Type Type; - - public InspectableTypeAttribute(Type type) - { - Type = type; - } -} - -[AttributeUsage(AttributeTargets.Field)] -public class SimplePerformanceStatAttribute : Attribute { } - -/// -/// Specify a tooltip for a field in the Inspector window. -/// -[AttributeUsage(AttributeTargets.Field, AllowMultiple = false, Inherited = true)] -public class TooltipAttribute : Attribute -{ - /// - /// The tooltip text. - /// - public readonly string tooltip; - - /// - /// Specify a tooltip for a field. - /// - /// The tooltip text. - public TooltipAttribute(string tooltip) => this.tooltip = tooltip; -} // public class CategoryAttribute : Attribute // { // public readonly Type Type; diff --git a/Assets/Scripts/ServerShared/Behaviors/SurveyController.cs b/Assets/Scripts/ServerShared/Behaviors/SurveyController.cs deleted file mode 100644 index 6677c9ceb..000000000 --- a/Assets/Scripts/ServerShared/Behaviors/SurveyController.cs +++ /dev/null @@ -1,155 +0,0 @@ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ - -using System; -using System.Collections; -using System.Collections.Generic; -using System.Linq; -using MessagePack; -using Newtonsoft.Json; -using RethinkDb.Driver.Ast; -using Unity.Mathematics; -using static Unity.Mathematics.math; - -// [MessagePackObject, JsonObject(MemberSerialization.OptIn), EntityTypeRestriction(HullType.Ship), Order(-100)] -// public class SurveyControllerData : ControllerData -// { -// public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item) -// { -// return new SurveyController(context, this, entity, item); -// } -// } -// -// public class SurveyController : ControllerBase, IBehavior, IPersistentBehavior, IInitializableBehavior -// { -// private EquippedItem Item { get; } -// -// private SurveyControllerData _data; -// private bool _taskStarted; -// private ResourceScanner _scanningTool; -// private Switch _toolSwitch; -// private Guid _targetPlanet; -// private int _asteroid = -1; -// -// public SurveyController(ItemManager itemManager, SurveyControllerData data, Entity entity, EquippedItem item) : base(itemManager, data, entity) -// { -// _data = data; -// Item = item; -// } -// -// public new void Initialize() -// { -// _scanningTool = Entity.GetBehavior(); -// // _toolSwitch = Entity.GetSwitch(); -// base.Initialize(); -// } -// -// public new bool Execute(float delta) -// { -// // var corporation = _context.ItemData.Get(_entity.Corporation); -// // if (surveyTask != null) -// // { -// // if (!_taskStarted) -// // { -// // if (surveyTask.Planets.Any()) -// // { -// // _entity.SetMessage("Moving to survey target."); -// // NextPlanet(); -// // _scanningTool.ScanTarget = _targetPlanet; -// // _scanningTool.Asteroid = _asteroid; -// // if (!corporation.PlanetSurveyFloor.ContainsKey(_targetPlanet) || -// // corporation.PlanetSurveyFloor[_targetPlanet] + .5f < _scanningTool.MinimumDensity) -// // { -// // var planetData = _context.ItemData.Get(_targetPlanet); -// // MoveTo(() => -// // { -// // var target = GetPosition(planetData, _asteroid); -// // var targetToUs = _entity.Position - target; -// // return target + normalize(targetToUs) * _scanningTool.Range / 2; -// // }, -// // () => GetVelocity(planetData, _asteroid), -// // () => _entity.SetMessage("Arrived at target. Scanning for resources.")); -// // _taskStarted = true; -// // } -// // else -// // surveyTask.Planets.Remove(_targetPlanet); -// // } -// // else -// // { -// // _entity.SetMessage("Survey complete. Returning Home."); -// // FinishTask(); -// // } -// // } -// // else -// // { -// // if (!Moving) -// // { -// // var planetData = _context.ItemData.Get(_targetPlanet); -// // if ((!corporation.PlanetSurveyFloor.ContainsKey(_targetPlanet) || -// // corporation.PlanetSurveyFloor[_targetPlanet] + .5f < _scanningTool.MinimumDensity) && -// // length(_entity.Position - GetPosition(planetData, _asteroid)) < _scanningTool.Range) -// // { -// // _toolSwitch.Activated = true; -// // Aim.Objective = GetPosition(planetData, _asteroid); -// // Aim.Update(delta); -// // } -// // else -// // { -// // _toolSwitch.Activated = false; -// // _taskStarted = false; -// // } -// // } -// // } -// // } -// return base.Execute(delta); -// } -// -// private void NextPlanet() -// { -// var planets = Task.Planets.Select(id => Zone.Planets[id]); -// var nearestPlanet = planets.MinBy(p => lengthsq(Entity.Position.xz - GetPosition(p))); -// _asteroid = nearestPlanet is AsteroidBeltData ? Zone.NearestAsteroid(nearestPlanet.ID, Entity.Position.xz) : -1; -// _targetPlanet = nearestPlanet.ID; -// } -// -// private float2 GetPosition(BodyData planet, int asteroid = -1) -// { -// if (planet is AsteroidBeltData) -// { -// if(asteroid == -1) asteroid = Zone.NearestAsteroid(planet.ID, Entity.Position.xz); -// return Zone.AsteroidBelts[planet.ID].Positions[asteroid].xz; -// } -// return Zone.GetOrbitPosition(planet.Orbit); -// } -// -// private float2 GetVelocity(BodyData planet, int asteroid = -1) -// { -// if (planet is AsteroidBeltData) -// { -// if(asteroid == -1) asteroid = Zone.NearestAsteroid(planet.ID, Entity.Position.xz); -// return Zone.AsteroidBelts[planet.ID].Velocities[asteroid]; -// } -// return Zone.GetOrbitVelocity(planet.Orbit); -// } -// -// public PersistentBehaviorData Store() -// { -// return new SurveyControllerPersistence -// { -// Task = Task -// }; -// } -// -// public void Restore(PersistentBehaviorData data) -// { -// var surveyControllerPersistence = data as SurveyControllerPersistence; -// Task = surveyControllerPersistence.Task; -// } -// } -// -// public class SurveyControllerPersistence : PersistentBehaviorData -// { -// [JsonProperty("task"), Key(0)] -// public Survey Task; -// } \ No newline at end of file diff --git a/Assets/Scripts/ServerShared/Behaviors/WanderController.cs b/Assets/Scripts/ServerShared/Behaviors/WanderController.cs deleted file mode 100644 index 78bd9ef82..000000000 --- a/Assets/Scripts/ServerShared/Behaviors/WanderController.cs +++ /dev/null @@ -1,78 +0,0 @@ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ - -using System; -using System.Collections; -using System.Collections.Generic; -using System.Linq; -using MessagePack; -using Newtonsoft.Json; -using RethinkDb.Driver.Ast; -using Unity.Mathematics; -using static Unity.Mathematics.math; - -// [MessagePackObject, JsonObject(MemberSerialization.OptIn), EntityTypeRestriction(HullType.Ship), Order(-100)] -// public class WanderControllerData : ControllerData -// { -// [InspectableField, JsonProperty("randomDockTime"), Key(6)] -// public float RandomDockTime = 5; -// -// public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item) -// { -// return new WanderController(context, this, entity, item); -// } -// } -// -// public class WanderController : ControllerBase, IBehavior -// { -// public WanderTarget WanderTarget; -// -// private WanderControllerData _data; -// private EquippedItem Item { get; } -// private Guid _target; -// private float _dockTime = -1; -// -// public WanderController(ItemManager itemManager, WanderControllerData data, Entity entity, EquippedItem item) : base(itemManager, data, entity) -// { -// _data = data; -// Item = item; -// } -// -// public new bool Execute(float delta) -// { -// if (!Moving && _dockTime < 0) -// { -// NextTarget(); -// } -// -// _dockTime -= delta; -// return base.Execute(delta); -// } -// -// private void NextTarget() -// { -// if (WanderTarget == WanderTarget.Planets) -// { -// var planets = Zone.Planets.Values.ToArray(); -// var randomPlanet = planets[ItemManager.Random.NextInt(planets.Length)]; -// MoveTo(() => Zone.GetOrbitPosition(randomPlanet.Orbit), () => Zone.GetOrbitVelocity(randomPlanet.Orbit)); -// } -// else if (WanderTarget == WanderTarget.Orbitals) -// { -// var entities = Zone.Entities.Where(e=>e is OrbitalEntity).ToArray(); -// var randomEntity = entities[ItemManager.Random.NextInt(entities.Length)]; -// MoveTo(randomEntity, true, () => -// { -// Entity.SetParent(randomEntity); -// _dockTime = ItemManager.Random.NextFloat(_data.RandomDockTime); -// }); -// } -// } -// } -// -// public enum WanderTarget -// { -// Planets, -// Orbitals -// } \ No newline at end of file diff --git a/Assets/Scripts/ServerShared/CultCache.meta b/Assets/Scripts/ServerShared/CultCache.meta new file mode 100644 index 000000000..84e29514d --- /dev/null +++ b/Assets/Scripts/ServerShared/CultCache.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 49ec0c83548c7084ab0d3f6c2175ee71 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/ServerShared/CultCache/Attributes.cs b/Assets/Scripts/ServerShared/CultCache/Attributes.cs new file mode 100644 index 000000000..800cf2bed --- /dev/null +++ b/Assets/Scripts/ServerShared/CultCache/Attributes.cs @@ -0,0 +1,140 @@ +using System; + +[AttributeUsage(AttributeTargets.Class)] +public class InspectableAttribute : Attribute { } + +public abstract class PreferredInspectorAttribute : InspectableAttribute +{ + public Type TargetType; + + public PreferredInspectorAttribute(Type targetType) + { + TargetType = targetType; + } +} + +[AttributeUsage(AttributeTargets.Class)] +public class ExternalEntryAttribute : Attribute { } + +public class InspectableFieldAttribute : Attribute { } + +[AttributeUsage(AttributeTargets.Field)] +public class InspectableTextAttribute : InspectableFieldAttribute { } + +[AttributeUsage(AttributeTargets.Field)] +public class InspectableUnityObjectAttribute : InspectableFieldAttribute +{ + public Type ObjectType; + + public InspectableUnityObjectAttribute(Type type) + { + ObjectType = type; + } +} + +[AttributeUsage(AttributeTargets.Field)] +public class InspectablePrefabAttribute : InspectableFieldAttribute { } + +[AttributeUsage(AttributeTargets.Field)] +public class InspectableTextureAttribute : InspectableFieldAttribute { } + +[AttributeUsage(AttributeTargets.Field)] +public class InspectableTextAssetAttribute : InspectableFieldAttribute { } + +[AttributeUsage(AttributeTargets.Field)] +public class InspectableTemperatureAttribute : InspectableFieldAttribute { } + +[AttributeUsage(AttributeTargets.Field)] +public class InspectableAnimationCurveAttribute : InspectableFieldAttribute { } + +[AttributeUsage(AttributeTargets.Field)] +public class InspectableColorAttribute : InspectableFieldAttribute { } + +[AttributeUsage(AttributeTargets.Field)] +public class InspectableDatabaseLinkAttribute : InspectableFieldAttribute +{ + public readonly Type EntryType; + + public InspectableDatabaseLinkAttribute(Type entryType) + { + EntryType = entryType; + } +} + +[AttributeUsage(AttributeTargets.Field)] +public class RangedFloatInspectableAttribute : InspectableFieldAttribute +{ + public readonly float Min, Max; + + public RangedFloatInspectableAttribute(float min, float max) + { + Min = min; + Max = max; + } +} + +[AttributeUsage(AttributeTargets.Field)] +public class RangedFloatAttribute : Attribute +{ + public readonly float Min, Max; + + public RangedFloatAttribute(float min, float max) + { + Min = min; + Max = max; + } +} + +[AttributeUsage(AttributeTargets.Field)] +public class RangedIntInspectableAttribute : InspectableFieldAttribute +{ + public readonly int Min, Max; + + public RangedIntInspectableAttribute(int min, int max) + { + Min = min; + Max = max; + } +} + +public class InspectableTypeAttribute : InspectableFieldAttribute +{ + public readonly Type Type; + + public InspectableTypeAttribute(Type type) + { + Type = type; + } +} + +[AttributeUsage(AttributeTargets.Field)] +public class SimplePerformanceStatAttribute : Attribute { } + +/// +/// Specify a tooltip for a field in the Inspector window. +/// +[AttributeUsage(AttributeTargets.Field, AllowMultiple = false, Inherited = true)] +public class TooltipAttribute : Attribute +{ + /// + /// The tooltip text. + /// + public readonly string tooltip; + + /// + /// Specify a tooltip for a field. + /// + /// The tooltip text. + public TooltipAttribute(string tooltip) => this.tooltip = tooltip; +} + +[AttributeUsage(AttributeTargets.Class)] +public class RethinkTableAttribute : Attribute +{ + public string TableName; + + public RethinkTableAttribute(string tableName) + { + TableName = tableName; + } +} \ No newline at end of file diff --git a/Assets/Scripts/ServerShared/Behaviors/WanderController.cs.meta b/Assets/Scripts/ServerShared/CultCache/Attributes.cs.meta similarity index 83% rename from Assets/Scripts/ServerShared/Behaviors/WanderController.cs.meta rename to Assets/Scripts/ServerShared/CultCache/Attributes.cs.meta index fd8efa78d..45035dfca 100644 --- a/Assets/Scripts/ServerShared/Behaviors/WanderController.cs.meta +++ b/Assets/Scripts/ServerShared/CultCache/Attributes.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 38e6f1535d5cf5642bd01b1ab7a34492 +guid: d078a6b39f8c440fabe8d43881207c5d MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/Assets/Scripts/ServerShared/DatabaseCache.cs b/Assets/Scripts/ServerShared/CultCache/DatabaseCache.cs similarity index 98% rename from Assets/Scripts/ServerShared/DatabaseCache.cs rename to Assets/Scripts/ServerShared/CultCache/DatabaseCache.cs index 5dbb16e56..1fc2355b0 100644 --- a/Assets/Scripts/ServerShared/DatabaseCache.cs +++ b/Assets/Scripts/ServerShared/CultCache/DatabaseCache.cs @@ -84,7 +84,6 @@ public class DatabaseCache { if (entry != null) { - entry.Database = this; var exists = _entries.ContainsKey(entry.ID); // If an external entry is added, store it separately @@ -148,7 +147,6 @@ public class DatabaseCache { var bytes = File.ReadAllBytes(_externalEntries[guid].FilePath); var e = MessagePackSerializer.Deserialize(bytes); - e.Database = this; _externalEntries[guid].Entry = e; } @@ -198,7 +196,6 @@ public class DatabaseCache { var bytes = File.ReadAllBytes(_filePath); var entries = MessagePackSerializer.Deserialize(bytes); - foreach (var entry in entries) entry.Database = this; AddAll(entries); } diff --git a/Assets/Scripts/ServerShared/DatabaseCache.cs.meta b/Assets/Scripts/ServerShared/CultCache/DatabaseCache.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/DatabaseCache.cs.meta rename to Assets/Scripts/ServerShared/CultCache/DatabaseCache.cs.meta diff --git a/Assets/Scripts/ServerShared/DatabaseEntry.cs b/Assets/Scripts/ServerShared/CultCache/DatabaseEntry.cs similarity index 85% rename from Assets/Scripts/ServerShared/DatabaseEntry.cs rename to Assets/Scripts/ServerShared/CultCache/DatabaseEntry.cs index d7c68d5d6..ff3ab368e 100644 --- a/Assets/Scripts/ServerShared/DatabaseEntry.cs +++ b/Assets/Scripts/ServerShared/CultCache/DatabaseEntry.cs @@ -6,6 +6,7 @@ using System; using System.Linq; using JsonKnownTypes; using MessagePack; +using MessagePack.Formatters; using Newtonsoft.Json; // TODO: USE THIS EVERYWHERE using Unity.Mathematics; @@ -17,7 +18,10 @@ public interface INamedEntry } [InspectableField, - MessagePackObject, + MessagePackObject, + //MessagePackFormatter(typeof(TypelessFormatter)), + JsonObject(MemberSerialization.OptIn), + JsonConverter(typeof(JsonKnownTypesConverter)), Union(0, typeof(SimpleCommodityData)), Union(1, typeof(CompoundCommodityData)), Union(2, typeof(GearData)), @@ -48,15 +52,11 @@ public interface INamedEntry Union(28, typeof(PlanetData)), Union(29, typeof(CargoBayData)), Union(30, typeof(DockingBayData)), - Union(31, typeof(WeaponItemData)), - JsonObject(MemberSerialization.OptIn), JsonConverter(typeof(JsonKnownTypesConverter))] -//[Union(21, typeof(ContractData))] -//[Union(22, typeof(Station))] + Union(31, typeof(WeaponItemData))] public abstract class DatabaseEntry { [JsonProperty("id"), Key(0)] public Guid ID = Guid.NewGuid(); - - [IgnoreMember] - public DatabaseCache Database; + + public DatabaseEntry(){} } \ No newline at end of file diff --git a/Assets/Scripts/ServerShared/DatabaseEntry.cs.meta b/Assets/Scripts/ServerShared/CultCache/DatabaseEntry.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/DatabaseEntry.cs.meta rename to Assets/Scripts/ServerShared/CultCache/DatabaseEntry.cs.meta diff --git a/Assets/Scripts/ServerShared/CultCache/Extensions.cs b/Assets/Scripts/ServerShared/CultCache/Extensions.cs new file mode 100644 index 000000000..ccfc2086f --- /dev/null +++ b/Assets/Scripts/ServerShared/CultCache/Extensions.cs @@ -0,0 +1,64 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; + +public static class CultCacheExtensions +{ + private static Dictionary InterfaceClasses = new Dictionary(); + public static Type[] GetAllInterfaceClasses(this Type type) + { + if (InterfaceClasses.ContainsKey(type)) + return InterfaceClasses[type]; + return InterfaceClasses[type] = AppDomain.CurrentDomain.GetAssemblies() + .SelectMany(ass => ass.GetTypes()).Where(t => t.IsClass && t.GetInterfaces().Contains(type)).ToArray(); + } + + private static Dictionary ParentTypes = new Dictionary(); + + public static Type[] GetParentTypes(this Type type) + { + if (ParentTypes.ContainsKey(type)) + return ParentTypes[type]; + return ParentTypes[type] = type.GetParents().ToArray(); + } + + private static IEnumerable GetParents(this Type type) + { + // is there any base type? + if (type == null) + { + yield break; + } + + yield return type; + + // return all implemented or inherited interfaces + foreach (var i in type.GetInterfaces()) + { + yield return i; + } + + // return all inherited types + var currentBaseType = type.BaseType; + while (currentBaseType != null) + { + yield return currentBaseType; + currentBaseType= currentBaseType.BaseType; + } + } + + private static Dictionary ChildClasses = new Dictionary(); + public static Type[] GetAllChildClasses(this Type type) + { + if (ChildClasses.ContainsKey(type)) + return ChildClasses[type]; + return ChildClasses[type] = AppDomain.CurrentDomain.GetAssemblies() + .SelectMany(ass => ass.GetTypes()).Where(type.IsAssignableFrom).ToArray(); + } + + public static async void WrapAwait(this Task task) + { + await task; + } +} \ No newline at end of file diff --git a/Assets/Scripts/ServerShared/CultCache/Extensions.cs.meta b/Assets/Scripts/ServerShared/CultCache/Extensions.cs.meta new file mode 100644 index 000000000..64127bd9f --- /dev/null +++ b/Assets/Scripts/ServerShared/CultCache/Extensions.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: fd5642f26b80465fb57f3d2610633140 +timeCreated: 1617055075 \ No newline at end of file diff --git a/Assets/Scripts/ServerShared/CultCache/MathExtensions.cs b/Assets/Scripts/ServerShared/CultCache/MathExtensions.cs new file mode 100644 index 000000000..f00801e91 --- /dev/null +++ b/Assets/Scripts/ServerShared/CultCache/MathExtensions.cs @@ -0,0 +1,4 @@ +public static class MathExtensions +{ + +} \ No newline at end of file diff --git a/Assets/Scripts/ServerShared/CultCache/MathExtensions.cs.meta b/Assets/Scripts/ServerShared/CultCache/MathExtensions.cs.meta new file mode 100644 index 000000000..53bc03e88 --- /dev/null +++ b/Assets/Scripts/ServerShared/CultCache/MathExtensions.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 5effe288f2074414930e040d4531709f +timeCreated: 1617057296 \ No newline at end of file diff --git a/Assets/Scripts/ServerShared/CultCache/Serialization.meta b/Assets/Scripts/ServerShared/CultCache/Serialization.meta new file mode 100644 index 000000000..cff5023e9 --- /dev/null +++ b/Assets/Scripts/ServerShared/CultCache/Serialization.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8035c545a12367f419eb4a2fe1c917b6 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/ServerShared/JsonConverters.cs b/Assets/Scripts/ServerShared/CultCache/Serialization/JsonConverters.cs similarity index 100% rename from Assets/Scripts/ServerShared/JsonConverters.cs rename to Assets/Scripts/ServerShared/CultCache/Serialization/JsonConverters.cs diff --git a/Assets/Scripts/ServerShared/JsonConverters.cs.meta b/Assets/Scripts/ServerShared/CultCache/Serialization/JsonConverters.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/JsonConverters.cs.meta rename to Assets/Scripts/ServerShared/CultCache/Serialization/JsonConverters.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/JsonKnownTypes.meta b/Assets/Scripts/ServerShared/CultCache/Serialization/JsonKnownTypes.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/JsonKnownTypes.meta rename to Assets/Scripts/ServerShared/CultCache/Serialization/JsonKnownTypes.meta diff --git a/Assets/Scripts/ServerShared/NIH/JsonKnownTypes/AttributesManager.cs b/Assets/Scripts/ServerShared/CultCache/Serialization/JsonKnownTypes/AttributesManager.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/JsonKnownTypes/AttributesManager.cs rename to Assets/Scripts/ServerShared/CultCache/Serialization/JsonKnownTypes/AttributesManager.cs diff --git a/Assets/Scripts/ServerShared/NIH/JsonKnownTypes/AttributesManager.cs.meta b/Assets/Scripts/ServerShared/CultCache/Serialization/JsonKnownTypes/AttributesManager.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/JsonKnownTypes/AttributesManager.cs.meta rename to Assets/Scripts/ServerShared/CultCache/Serialization/JsonKnownTypes/AttributesManager.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/JsonKnownTypes/Exceptions.meta b/Assets/Scripts/ServerShared/CultCache/Serialization/JsonKnownTypes/Exceptions.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/JsonKnownTypes/Exceptions.meta rename to Assets/Scripts/ServerShared/CultCache/Serialization/JsonKnownTypes/Exceptions.meta diff --git a/Assets/Scripts/ServerShared/NIH/JsonKnownTypes/Exceptions/JsonKnownTypesException.cs b/Assets/Scripts/ServerShared/CultCache/Serialization/JsonKnownTypes/Exceptions/JsonKnownTypesException.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/JsonKnownTypes/Exceptions/JsonKnownTypesException.cs rename to Assets/Scripts/ServerShared/CultCache/Serialization/JsonKnownTypes/Exceptions/JsonKnownTypesException.cs diff --git a/Assets/Scripts/ServerShared/NIH/JsonKnownTypes/Exceptions/JsonKnownTypesException.cs.meta b/Assets/Scripts/ServerShared/CultCache/Serialization/JsonKnownTypes/Exceptions/JsonKnownTypesException.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/JsonKnownTypes/Exceptions/JsonKnownTypesException.cs.meta rename to Assets/Scripts/ServerShared/CultCache/Serialization/JsonKnownTypes/Exceptions/JsonKnownTypesException.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/JsonKnownTypes/JsonDiscriminatorAttribute.cs b/Assets/Scripts/ServerShared/CultCache/Serialization/JsonKnownTypes/JsonDiscriminatorAttribute.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/JsonKnownTypes/JsonDiscriminatorAttribute.cs rename to Assets/Scripts/ServerShared/CultCache/Serialization/JsonKnownTypes/JsonDiscriminatorAttribute.cs diff --git a/Assets/Scripts/ServerShared/NIH/JsonKnownTypes/JsonDiscriminatorAttribute.cs.meta b/Assets/Scripts/ServerShared/CultCache/Serialization/JsonKnownTypes/JsonDiscriminatorAttribute.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/JsonKnownTypes/JsonDiscriminatorAttribute.cs.meta rename to Assets/Scripts/ServerShared/CultCache/Serialization/JsonKnownTypes/JsonDiscriminatorAttribute.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/JsonKnownTypes/JsonDiscriminatorSettings.cs b/Assets/Scripts/ServerShared/CultCache/Serialization/JsonKnownTypes/JsonDiscriminatorSettings.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/JsonKnownTypes/JsonDiscriminatorSettings.cs rename to Assets/Scripts/ServerShared/CultCache/Serialization/JsonKnownTypes/JsonDiscriminatorSettings.cs diff --git a/Assets/Scripts/ServerShared/NIH/JsonKnownTypes/JsonDiscriminatorSettings.cs.meta b/Assets/Scripts/ServerShared/CultCache/Serialization/JsonKnownTypes/JsonDiscriminatorSettings.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/JsonKnownTypes/JsonDiscriminatorSettings.cs.meta rename to Assets/Scripts/ServerShared/CultCache/Serialization/JsonKnownTypes/JsonDiscriminatorSettings.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/JsonKnownTypes/JsonKnownThisTypeAttribute.cs b/Assets/Scripts/ServerShared/CultCache/Serialization/JsonKnownTypes/JsonKnownThisTypeAttribute.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/JsonKnownTypes/JsonKnownThisTypeAttribute.cs rename to Assets/Scripts/ServerShared/CultCache/Serialization/JsonKnownTypes/JsonKnownThisTypeAttribute.cs diff --git a/Assets/Scripts/ServerShared/NIH/JsonKnownTypes/JsonKnownThisTypeAttribute.cs.meta b/Assets/Scripts/ServerShared/CultCache/Serialization/JsonKnownTypes/JsonKnownThisTypeAttribute.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/JsonKnownTypes/JsonKnownThisTypeAttribute.cs.meta rename to Assets/Scripts/ServerShared/CultCache/Serialization/JsonKnownTypes/JsonKnownThisTypeAttribute.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/JsonKnownTypes/JsonKnownTypeAttribute.cs b/Assets/Scripts/ServerShared/CultCache/Serialization/JsonKnownTypes/JsonKnownTypeAttribute.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/JsonKnownTypes/JsonKnownTypeAttribute.cs rename to Assets/Scripts/ServerShared/CultCache/Serialization/JsonKnownTypes/JsonKnownTypeAttribute.cs diff --git a/Assets/Scripts/ServerShared/NIH/JsonKnownTypes/JsonKnownTypeAttribute.cs.meta b/Assets/Scripts/ServerShared/CultCache/Serialization/JsonKnownTypes/JsonKnownTypeAttribute.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/JsonKnownTypes/JsonKnownTypeAttribute.cs.meta rename to Assets/Scripts/ServerShared/CultCache/Serialization/JsonKnownTypes/JsonKnownTypeAttribute.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/JsonKnownTypes/JsonKnownTypes.csproj b/Assets/Scripts/ServerShared/CultCache/Serialization/JsonKnownTypes/JsonKnownTypes.csproj similarity index 100% rename from Assets/Scripts/ServerShared/NIH/JsonKnownTypes/JsonKnownTypes.csproj rename to Assets/Scripts/ServerShared/CultCache/Serialization/JsonKnownTypes/JsonKnownTypes.csproj diff --git a/Assets/Scripts/ServerShared/NIH/JsonKnownTypes/JsonKnownTypes.csproj.meta b/Assets/Scripts/ServerShared/CultCache/Serialization/JsonKnownTypes/JsonKnownTypes.csproj.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/JsonKnownTypes/JsonKnownTypes.csproj.meta rename to Assets/Scripts/ServerShared/CultCache/Serialization/JsonKnownTypes/JsonKnownTypes.csproj.meta diff --git a/Assets/Scripts/ServerShared/NIH/JsonKnownTypes/JsonKnownTypesContractResolver.cs b/Assets/Scripts/ServerShared/CultCache/Serialization/JsonKnownTypes/JsonKnownTypesContractResolver.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/JsonKnownTypes/JsonKnownTypesContractResolver.cs rename to Assets/Scripts/ServerShared/CultCache/Serialization/JsonKnownTypes/JsonKnownTypesContractResolver.cs diff --git a/Assets/Scripts/ServerShared/NIH/JsonKnownTypes/JsonKnownTypesContractResolver.cs.meta b/Assets/Scripts/ServerShared/CultCache/Serialization/JsonKnownTypes/JsonKnownTypesContractResolver.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/JsonKnownTypes/JsonKnownTypesContractResolver.cs.meta rename to Assets/Scripts/ServerShared/CultCache/Serialization/JsonKnownTypes/JsonKnownTypesContractResolver.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/JsonKnownTypes/JsonKnownTypesConverter.cs b/Assets/Scripts/ServerShared/CultCache/Serialization/JsonKnownTypes/JsonKnownTypesConverter.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/JsonKnownTypes/JsonKnownTypesConverter.cs rename to Assets/Scripts/ServerShared/CultCache/Serialization/JsonKnownTypes/JsonKnownTypesConverter.cs diff --git a/Assets/Scripts/ServerShared/NIH/JsonKnownTypes/JsonKnownTypesConverter.cs.meta b/Assets/Scripts/ServerShared/CultCache/Serialization/JsonKnownTypes/JsonKnownTypesConverter.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/JsonKnownTypes/JsonKnownTypesConverter.cs.meta rename to Assets/Scripts/ServerShared/CultCache/Serialization/JsonKnownTypes/JsonKnownTypesConverter.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/JsonKnownTypes/JsonKnownTypesDictionaryManager.cs b/Assets/Scripts/ServerShared/CultCache/Serialization/JsonKnownTypes/JsonKnownTypesDictionaryManager.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/JsonKnownTypes/JsonKnownTypesDictionaryManager.cs rename to Assets/Scripts/ServerShared/CultCache/Serialization/JsonKnownTypes/JsonKnownTypesDictionaryManager.cs diff --git a/Assets/Scripts/ServerShared/NIH/JsonKnownTypes/JsonKnownTypesDictionaryManager.cs.meta b/Assets/Scripts/ServerShared/CultCache/Serialization/JsonKnownTypes/JsonKnownTypesDictionaryManager.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/JsonKnownTypes/JsonKnownTypesDictionaryManager.cs.meta rename to Assets/Scripts/ServerShared/CultCache/Serialization/JsonKnownTypes/JsonKnownTypesDictionaryManager.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/JsonKnownTypes/JsonKnownTypesSettings.cs b/Assets/Scripts/ServerShared/CultCache/Serialization/JsonKnownTypes/JsonKnownTypesSettings.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/JsonKnownTypes/JsonKnownTypesSettings.cs rename to Assets/Scripts/ServerShared/CultCache/Serialization/JsonKnownTypes/JsonKnownTypesSettings.cs diff --git a/Assets/Scripts/ServerShared/NIH/JsonKnownTypes/JsonKnownTypesSettings.cs.meta b/Assets/Scripts/ServerShared/CultCache/Serialization/JsonKnownTypes/JsonKnownTypesSettings.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/JsonKnownTypes/JsonKnownTypesSettings.cs.meta rename to Assets/Scripts/ServerShared/CultCache/Serialization/JsonKnownTypes/JsonKnownTypesSettings.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/JsonKnownTypes/JsonKnownTypesSettingsManager.cs b/Assets/Scripts/ServerShared/CultCache/Serialization/JsonKnownTypes/JsonKnownTypesSettingsManager.cs similarity index 81% rename from Assets/Scripts/ServerShared/NIH/JsonKnownTypes/JsonKnownTypesSettingsManager.cs rename to Assets/Scripts/ServerShared/CultCache/Serialization/JsonKnownTypes/JsonKnownTypesSettingsManager.cs index f2b15c309..c3c011efa 100644 --- a/Assets/Scripts/ServerShared/NIH/JsonKnownTypes/JsonKnownTypesSettingsManager.cs +++ b/Assets/Scripts/ServerShared/CultCache/Serialization/JsonKnownTypes/JsonKnownTypesSettingsManager.cs @@ -1,5 +1,7 @@ using System; +using System.Collections.Generic; using System.Linq; +using System.Reflection; using JsonKnownTypes.Exceptions; using JsonKnownTypes.Utils; @@ -8,6 +10,13 @@ namespace JsonKnownTypes public static class JsonKnownTypesSettingsManager { public static JsonDiscriminatorSettings DefaultDiscriminatorSettings { get; set; } = new JsonDiscriminatorSettings(); + + private static HashSet RegisteredAssemblies = new HashSet(); + public static void RegisterTypeAssembly() + { + var type = typeof(T); + RegisteredAssemblies.Add(type.Assembly); + } public static JsonKnownTypesSettings GetSettings() { @@ -41,9 +50,9 @@ namespace JsonKnownTypes private static Type[] GetAllInheritance() { + RegisterTypeAssembly(); var type = typeof(T); - return type.Assembly - .GetTypes() + return RegisteredAssemblies.SelectMany(a=>a.GetTypes()) .Where(x => type.IsAssignableFrom(x) && !x.IsInterface && !x.IsAbstract) .ToArray(); } diff --git a/Assets/Scripts/ServerShared/NIH/JsonKnownTypes/JsonKnownTypesSettingsManager.cs.meta b/Assets/Scripts/ServerShared/CultCache/Serialization/JsonKnownTypes/JsonKnownTypesSettingsManager.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/JsonKnownTypes/JsonKnownTypesSettingsManager.cs.meta rename to Assets/Scripts/ServerShared/CultCache/Serialization/JsonKnownTypes/JsonKnownTypesSettingsManager.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/JsonKnownTypes/Utils.meta b/Assets/Scripts/ServerShared/CultCache/Serialization/JsonKnownTypes/Utils.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/JsonKnownTypes/Utils.meta rename to Assets/Scripts/ServerShared/CultCache/Serialization/JsonKnownTypes/Utils.meta diff --git a/Assets/Scripts/ServerShared/NIH/JsonKnownTypes/Utils/Mapper.cs b/Assets/Scripts/ServerShared/CultCache/Serialization/JsonKnownTypes/Utils/Mapper.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/JsonKnownTypes/Utils/Mapper.cs rename to Assets/Scripts/ServerShared/CultCache/Serialization/JsonKnownTypes/Utils/Mapper.cs diff --git a/Assets/Scripts/ServerShared/NIH/JsonKnownTypes/Utils/Mapper.cs.meta b/Assets/Scripts/ServerShared/CultCache/Serialization/JsonKnownTypes/Utils/Mapper.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/JsonKnownTypes/Utils/Mapper.cs.meta rename to Assets/Scripts/ServerShared/CultCache/Serialization/JsonKnownTypes/Utils/Mapper.cs.meta diff --git a/Assets/Scripts/ServerShared/MathFormatters.cs b/Assets/Scripts/ServerShared/CultCache/Serialization/MathFormatters.cs similarity index 100% rename from Assets/Scripts/ServerShared/MathFormatters.cs rename to Assets/Scripts/ServerShared/CultCache/Serialization/MathFormatters.cs diff --git a/Assets/Scripts/ServerShared/MathFormatters.cs.meta b/Assets/Scripts/ServerShared/CultCache/Serialization/MathFormatters.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/MathFormatters.cs.meta rename to Assets/Scripts/ServerShared/CultCache/Serialization/MathFormatters.cs.meta diff --git a/Assets/Scripts/ServerShared/MathResolver.cs b/Assets/Scripts/ServerShared/CultCache/Serialization/MathResolver.cs similarity index 100% rename from Assets/Scripts/ServerShared/MathResolver.cs rename to Assets/Scripts/ServerShared/CultCache/Serialization/MathResolver.cs diff --git a/Assets/Scripts/ServerShared/MathResolver.cs.meta b/Assets/Scripts/ServerShared/CultCache/Serialization/MathResolver.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/MathResolver.cs.meta rename to Assets/Scripts/ServerShared/CultCache/Serialization/MathResolver.cs.meta diff --git a/Assets/Scripts/ServerShared/RegisterResolver.cs b/Assets/Scripts/ServerShared/CultCache/Serialization/RegisterResolver.cs similarity index 100% rename from Assets/Scripts/ServerShared/RegisterResolver.cs rename to Assets/Scripts/ServerShared/CultCache/Serialization/RegisterResolver.cs diff --git a/Assets/Scripts/ServerShared/RegisterResolver.cs.meta b/Assets/Scripts/ServerShared/CultCache/Serialization/RegisterResolver.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/RegisterResolver.cs.meta rename to Assets/Scripts/ServerShared/CultCache/Serialization/RegisterResolver.cs.meta diff --git a/Assets/Scripts/ServerShared/TypeFormatterResolver.cs b/Assets/Scripts/ServerShared/CultCache/Serialization/TypeFormatterResolver.cs similarity index 100% rename from Assets/Scripts/ServerShared/TypeFormatterResolver.cs rename to Assets/Scripts/ServerShared/CultCache/Serialization/TypeFormatterResolver.cs diff --git a/Assets/Scripts/ServerShared/TypeFormatterResolver.cs.meta b/Assets/Scripts/ServerShared/CultCache/Serialization/TypeFormatterResolver.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/TypeFormatterResolver.cs.meta rename to Assets/Scripts/ServerShared/CultCache/Serialization/TypeFormatterResolver.cs.meta diff --git a/Assets/Scripts/ServerShared/EntitySerializer.cs b/Assets/Scripts/ServerShared/EntitySerializer.cs index 6f4127fa8..41e6d2454 100644 --- a/Assets/Scripts/ServerShared/EntitySerializer.cs +++ b/Assets/Scripts/ServerShared/EntitySerializer.cs @@ -3,7 +3,6 @@ using System.Collections; using System.Collections.Generic; using System.Linq; using MessagePack; -using RethinkDb.Driver.Ast; using Unity.Mathematics; public static class EntitySerializer diff --git a/Assets/Scripts/ServerShared/Extensions.cs b/Assets/Scripts/ServerShared/Extensions.cs index c7805e576..982d33a40 100644 --- a/Assets/Scripts/ServerShared/Extensions.cs +++ b/Assets/Scripts/ServerShared/Extensions.cs @@ -17,8 +17,6 @@ public static class Extensions { //public static IDatabaseEntry Get(this Guid entry) => Database.Get(entry); //public static T Get(this Guid entry) where T : class, IDatabaseEntry => Database.Get(entry) as T; - public static string ToJson(this DatabaseEntry entry) => MessagePackSerializer.SerializeToJson(entry); - public static byte[] Serialize(this DatabaseEntry entry) => MessagePackSerializer.Serialize(entry); public static bool IsImplementationOf(this Type baseType, Type interfaceType) { @@ -166,59 +164,7 @@ public static class Extensions pow((pow(max, exp + 1) - pow(min, exp + 1)) * pow(random.NextFloat(), randexp) + pow(min, exp + 1), 1 / (exp + 1)); public static float NextUnbounded(this ref Random random) => 1 / (1 - random.NextFloat()) - 1; public static float NextUnbounded(this ref Random random, float bias, float power, float ceiling) => 1 / (1 - pow(min(random.NextFloat(), ceiling), 1 - pow(clamp(bias,0,.99f), 1 / power))) - 1; - - private static Dictionary InterfaceClasses = new Dictionary(); - public static Type[] GetAllInterfaceClasses(this Type type) - { - if (InterfaceClasses.ContainsKey(type)) - return InterfaceClasses[type]; - return InterfaceClasses[type] = AppDomain.CurrentDomain.GetAssemblies() - .SelectMany(ass => ass.GetTypes()).Where(t => t.IsClass && t.GetInterfaces().Contains(type)).ToArray(); - } - - private static Dictionary ParentTypes = new Dictionary(); - public static Type[] GetParentTypes(this Type type) - { - if (ParentTypes.ContainsKey(type)) - return ParentTypes[type]; - return ParentTypes[type] = type.GetParents().ToArray(); - } - - private static IEnumerable GetParents(this Type type) - { - // is there any base type? - if (type == null) - { - yield break; - } - - yield return type; - - // return all implemented or inherited interfaces - foreach (var i in type.GetInterfaces()) - { - yield return i; - } - - // return all inherited types - var currentBaseType = type.BaseType; - while (currentBaseType != null) - { - yield return currentBaseType; - currentBaseType= currentBaseType.BaseType; - } - } - - private static Dictionary ChildClasses = new Dictionary(); - public static Type[] GetAllChildClasses(this Type type) - { - if (ChildClasses.ContainsKey(type)) - return ChildClasses[type]; - return ChildClasses[type] = AppDomain.CurrentDomain.GetAssemblies() - .SelectMany(ass => ass.GetTypes()).Where(type.IsAssignableFrom).ToArray(); - } - public static bool IsDefault(this T value) where T : struct { bool isDefault = value.Equals(default(T)); diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb.meta new file mode 100644 index 000000000..16626abc4 --- /dev/null +++ b/Assets/Scripts/ServerShared/NIH/RethinkDb.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9af1bb2d775b93c40b0cc7f40a6a2a54 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDB.asmdef b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDB.asmdef new file mode 100644 index 000000000..0b2fc2b40 --- /dev/null +++ b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDB.asmdef @@ -0,0 +1,3 @@ +{ + "name": "RethinkDB" +} diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDB.asmdef.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDB.asmdef.meta new file mode 100644 index 000000000..08604276e --- /dev/null +++ b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDB.asmdef.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: b2a4424e75e7709478154ddd9db0b344 +AssemblyDefinitionImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver.Linq.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver.Linq.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver.Linq.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver.Linq.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver.Linq/Attributes.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver.Linq/Attributes.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver.Linq/Attributes.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver.Linq/Attributes.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver.Linq/Attributes/PrimaryIndexAttribute.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver.Linq/Attributes/PrimaryIndexAttribute.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver.Linq/Attributes/PrimaryIndexAttribute.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver.Linq/Attributes/PrimaryIndexAttribute.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver.Linq/Attributes/PrimaryIndexAttribute.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver.Linq/Attributes/PrimaryIndexAttribute.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver.Linq/Attributes/PrimaryIndexAttribute.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver.Linq/Attributes/PrimaryIndexAttribute.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver.Linq/Attributes/SecondaryIndexAttribute.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver.Linq/Attributes/SecondaryIndexAttribute.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver.Linq/Attributes/SecondaryIndexAttribute.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver.Linq/Attributes/SecondaryIndexAttribute.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver.Linq/Attributes/SecondaryIndexAttribute.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver.Linq/Attributes/SecondaryIndexAttribute.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver.Linq/Attributes/SecondaryIndexAttribute.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver.Linq/Attributes/SecondaryIndexAttribute.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver.Linq/LinqExtensions.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver.Linq/LinqExtensions.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver.Linq/LinqExtensions.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver.Linq/LinqExtensions.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver.Linq/LinqExtensions.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver.Linq/LinqExtensions.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver.Linq/LinqExtensions.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver.Linq/LinqExtensions.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver.Linq/MemberNameResolver.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver.Linq/MemberNameResolver.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver.Linq/MemberNameResolver.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver.Linq/MemberNameResolver.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver.Linq/MemberNameResolver.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver.Linq/MemberNameResolver.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver.Linq/MemberNameResolver.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver.Linq/MemberNameResolver.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver.Linq/RethinkDb.Driver.Linq.csproj b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver.Linq/RethinkDb.Driver.Linq.csproj similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver.Linq/RethinkDb.Driver.Linq.csproj rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver.Linq/RethinkDb.Driver.Linq.csproj diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver.Linq/RethinkDb.Driver.Linq.csproj.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver.Linq/RethinkDb.Driver.Linq.csproj.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver.Linq/RethinkDb.Driver.Linq.csproj.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver.Linq/RethinkDb.Driver.Linq.csproj.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver.Linq/RethinkDb.Driver.Linq.ruleset b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver.Linq/RethinkDb.Driver.Linq.ruleset similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver.Linq/RethinkDb.Driver.Linq.ruleset rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver.Linq/RethinkDb.Driver.Linq.ruleset diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver.Linq/RethinkDb.Driver.Linq.ruleset.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver.Linq/RethinkDb.Driver.Linq.ruleset.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver.Linq/RethinkDb.Driver.Linq.ruleset.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver.Linq/RethinkDb.Driver.Linq.ruleset.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver.Linq/RethinkDbGroup.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver.Linq/RethinkDbGroup.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver.Linq/RethinkDbGroup.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver.Linq/RethinkDbGroup.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver.Linq/RethinkDbGroup.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver.Linq/RethinkDbGroup.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver.Linq/RethinkDbGroup.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver.Linq/RethinkDbGroup.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver.Linq/RethinkDbQueryModelVisitor.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver.Linq/RethinkDbQueryModelVisitor.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver.Linq/RethinkDbQueryModelVisitor.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver.Linq/RethinkDbQueryModelVisitor.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver.Linq/RethinkDbQueryModelVisitor.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver.Linq/RethinkDbQueryModelVisitor.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver.Linq/RethinkDbQueryModelVisitor.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver.Linq/RethinkDbQueryModelVisitor.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver.Linq/RethinkQueryExecutor.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver.Linq/RethinkQueryExecutor.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver.Linq/RethinkQueryExecutor.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver.Linq/RethinkQueryExecutor.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver.Linq/RethinkQueryExecutor.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver.Linq/RethinkQueryExecutor.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver.Linq/RethinkQueryExecutor.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver.Linq/RethinkQueryExecutor.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver.Linq/RethinkQueryable.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver.Linq/RethinkQueryable.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver.Linq/RethinkQueryable.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver.Linq/RethinkQueryable.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver.Linq/RethinkQueryable.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver.Linq/RethinkQueryable.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver.Linq/RethinkQueryable.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver.Linq/RethinkQueryable.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver.Linq/SelectionProjector.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver.Linq/SelectionProjector.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver.Linq/SelectionProjector.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver.Linq/SelectionProjector.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver.Linq/SelectionProjector.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver.Linq/SelectionProjector.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver.Linq/SelectionProjector.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver.Linq/SelectionProjector.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver.Linq/WhereClauseParsers.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver.Linq/WhereClauseParsers.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver.Linq/WhereClauseParsers.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver.Linq/WhereClauseParsers.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver.Linq/WhereClauseParsers/BaseIndexParser.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver.Linq/WhereClauseParsers/BaseIndexParser.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver.Linq/WhereClauseParsers/BaseIndexParser.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver.Linq/WhereClauseParsers/BaseIndexParser.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver.Linq/WhereClauseParsers/BaseIndexParser.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver.Linq/WhereClauseParsers/BaseIndexParser.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver.Linq/WhereClauseParsers/BaseIndexParser.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver.Linq/WhereClauseParsers/BaseIndexParser.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver.Linq/WhereClauseParsers/DefaultParser.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver.Linq/WhereClauseParsers/DefaultParser.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver.Linq/WhereClauseParsers/DefaultParser.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver.Linq/WhereClauseParsers/DefaultParser.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver.Linq/WhereClauseParsers/DefaultParser.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver.Linq/WhereClauseParsers/DefaultParser.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver.Linq/WhereClauseParsers/DefaultParser.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver.Linq/WhereClauseParsers/DefaultParser.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver.Linq/WhereClauseParsers/ExprHelper.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver.Linq/WhereClauseParsers/ExprHelper.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver.Linq/WhereClauseParsers/ExprHelper.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver.Linq/WhereClauseParsers/ExprHelper.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver.Linq/WhereClauseParsers/ExprHelper.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver.Linq/WhereClauseParsers/ExprHelper.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver.Linq/WhereClauseParsers/ExprHelper.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver.Linq/WhereClauseParsers/ExprHelper.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver.Linq/WhereClauseParsers/ExpressionVisitor.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver.Linq/WhereClauseParsers/ExpressionVisitor.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver.Linq/WhereClauseParsers/ExpressionVisitor.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver.Linq/WhereClauseParsers/ExpressionVisitor.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver.Linq/WhereClauseParsers/ExpressionVisitor.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver.Linq/WhereClauseParsers/ExpressionVisitor.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver.Linq/WhereClauseParsers/ExpressionVisitor.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver.Linq/WhereClauseParsers/ExpressionVisitor.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver.Linq/WhereClauseParsers/GroupItemsParser.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver.Linq/WhereClauseParsers/GroupItemsParser.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver.Linq/WhereClauseParsers/GroupItemsParser.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver.Linq/WhereClauseParsers/GroupItemsParser.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver.Linq/WhereClauseParsers/GroupItemsParser.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver.Linq/WhereClauseParsers/GroupItemsParser.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver.Linq/WhereClauseParsers/GroupItemsParser.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver.Linq/WhereClauseParsers/GroupItemsParser.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver.Linq/WhereClauseParsers/IWhereClauseParser.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver.Linq/WhereClauseParsers/IWhereClauseParser.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver.Linq/WhereClauseParsers/IWhereClauseParser.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver.Linq/WhereClauseParsers/IWhereClauseParser.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver.Linq/WhereClauseParsers/IWhereClauseParser.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver.Linq/WhereClauseParsers/IWhereClauseParser.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver.Linq/WhereClauseParsers/IWhereClauseParser.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver.Linq/WhereClauseParsers/IWhereClauseParser.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver.Linq/WhereClauseParsers/PrimaryIndexParser.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver.Linq/WhereClauseParsers/PrimaryIndexParser.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver.Linq/WhereClauseParsers/PrimaryIndexParser.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver.Linq/WhereClauseParsers/PrimaryIndexParser.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver.Linq/WhereClauseParsers/PrimaryIndexParser.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver.Linq/WhereClauseParsers/PrimaryIndexParser.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver.Linq/WhereClauseParsers/PrimaryIndexParser.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver.Linq/WhereClauseParsers/PrimaryIndexParser.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver.Linq/WhereClauseParsers/SecondaryIndexParser.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver.Linq/WhereClauseParsers/SecondaryIndexParser.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver.Linq/WhereClauseParsers/SecondaryIndexParser.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver.Linq/WhereClauseParsers/SecondaryIndexParser.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver.Linq/WhereClauseParsers/SecondaryIndexParser.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver.Linq/WhereClauseParsers/SecondaryIndexParser.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver.Linq/WhereClauseParsers/SecondaryIndexParser.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver.Linq/WhereClauseParsers/SecondaryIndexParser.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver.Linq/WhereClauseParsers/SubQueryVisitor.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver.Linq/WhereClauseParsers/SubQueryVisitor.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver.Linq/WhereClauseParsers/SubQueryVisitor.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver.Linq/WhereClauseParsers/SubQueryVisitor.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver.Linq/WhereClauseParsers/SubQueryVisitor/AllSubQueryVisitor.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver.Linq/WhereClauseParsers/SubQueryVisitor/AllSubQueryVisitor.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver.Linq/WhereClauseParsers/SubQueryVisitor/AllSubQueryVisitor.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver.Linq/WhereClauseParsers/SubQueryVisitor/AllSubQueryVisitor.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver.Linq/WhereClauseParsers/SubQueryVisitor/AllSubQueryVisitor.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver.Linq/WhereClauseParsers/SubQueryVisitor/AllSubQueryVisitor.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver.Linq/WhereClauseParsers/SubQueryVisitor/AllSubQueryVisitor.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver.Linq/WhereClauseParsers/SubQueryVisitor/AllSubQueryVisitor.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver.Linq/WhereClauseParsers/SubQueryVisitor/AnySubQueryVisitor.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver.Linq/WhereClauseParsers/SubQueryVisitor/AnySubQueryVisitor.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver.Linq/WhereClauseParsers/SubQueryVisitor/AnySubQueryVisitor.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver.Linq/WhereClauseParsers/SubQueryVisitor/AnySubQueryVisitor.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver.Linq/WhereClauseParsers/SubQueryVisitor/AnySubQueryVisitor.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver.Linq/WhereClauseParsers/SubQueryVisitor/AnySubQueryVisitor.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver.Linq/WhereClauseParsers/SubQueryVisitor/AnySubQueryVisitor.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver.Linq/WhereClauseParsers/SubQueryVisitor/AnySubQueryVisitor.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver.Linq/WhereClauseParsers/SubQueryVisitor/BaseFilterableSubQueryVisitor.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver.Linq/WhereClauseParsers/SubQueryVisitor/BaseFilterableSubQueryVisitor.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver.Linq/WhereClauseParsers/SubQueryVisitor/BaseFilterableSubQueryVisitor.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver.Linq/WhereClauseParsers/SubQueryVisitor/BaseFilterableSubQueryVisitor.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver.Linq/WhereClauseParsers/SubQueryVisitor/BaseFilterableSubQueryVisitor.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver.Linq/WhereClauseParsers/SubQueryVisitor/BaseFilterableSubQueryVisitor.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver.Linq/WhereClauseParsers/SubQueryVisitor/BaseFilterableSubQueryVisitor.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver.Linq/WhereClauseParsers/SubQueryVisitor/BaseFilterableSubQueryVisitor.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver.Linq/WhereClauseParsers/SubQueryVisitor/BaseSubQueryVisitor.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver.Linq/WhereClauseParsers/SubQueryVisitor/BaseSubQueryVisitor.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver.Linq/WhereClauseParsers/SubQueryVisitor/BaseSubQueryVisitor.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver.Linq/WhereClauseParsers/SubQueryVisitor/BaseSubQueryVisitor.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver.Linq/WhereClauseParsers/SubQueryVisitor/BaseSubQueryVisitor.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver.Linq/WhereClauseParsers/SubQueryVisitor/BaseSubQueryVisitor.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver.Linq/WhereClauseParsers/SubQueryVisitor/BaseSubQueryVisitor.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver.Linq/WhereClauseParsers/SubQueryVisitor/BaseSubQueryVisitor.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver.Linq/WhereClauseParsers/SubQueryVisitor/ContainsSubQueryVisitor.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver.Linq/WhereClauseParsers/SubQueryVisitor/ContainsSubQueryVisitor.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver.Linq/WhereClauseParsers/SubQueryVisitor/ContainsSubQueryVisitor.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver.Linq/WhereClauseParsers/SubQueryVisitor/ContainsSubQueryVisitor.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver.Linq/WhereClauseParsers/SubQueryVisitor/ContainsSubQueryVisitor.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver.Linq/WhereClauseParsers/SubQueryVisitor/ContainsSubQueryVisitor.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver.Linq/WhereClauseParsers/SubQueryVisitor/ContainsSubQueryVisitor.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver.Linq/WhereClauseParsers/SubQueryVisitor/ContainsSubQueryVisitor.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver.Linq/WhereClauseParsers/SubQueryVisitor/CountSubQueryVisitor.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver.Linq/WhereClauseParsers/SubQueryVisitor/CountSubQueryVisitor.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver.Linq/WhereClauseParsers/SubQueryVisitor/CountSubQueryVisitor.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver.Linq/WhereClauseParsers/SubQueryVisitor/CountSubQueryVisitor.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver.Linq/WhereClauseParsers/SubQueryVisitor/CountSubQueryVisitor.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver.Linq/WhereClauseParsers/SubQueryVisitor/CountSubQueryVisitor.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver.Linq/WhereClauseParsers/SubQueryVisitor/CountSubQueryVisitor.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver.Linq/WhereClauseParsers/SubQueryVisitor/CountSubQueryVisitor.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver.Linq/WhereClauseParsers/SubQueryVisitor/FirstSubQueryVisitor.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver.Linq/WhereClauseParsers/SubQueryVisitor/FirstSubQueryVisitor.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver.Linq/WhereClauseParsers/SubQueryVisitor/FirstSubQueryVisitor.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver.Linq/WhereClauseParsers/SubQueryVisitor/FirstSubQueryVisitor.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver.Linq/WhereClauseParsers/SubQueryVisitor/FirstSubQueryVisitor.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver.Linq/WhereClauseParsers/SubQueryVisitor/FirstSubQueryVisitor.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver.Linq/WhereClauseParsers/SubQueryVisitor/FirstSubQueryVisitor.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver.Linq/WhereClauseParsers/SubQueryVisitor/FirstSubQueryVisitor.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver.Linq/WhereClauseParsers/SubQueryVisitor/ISubQueryVisitor.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver.Linq/WhereClauseParsers/SubQueryVisitor/ISubQueryVisitor.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver.Linq/WhereClauseParsers/SubQueryVisitor/ISubQueryVisitor.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver.Linq/WhereClauseParsers/SubQueryVisitor/ISubQueryVisitor.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver.Linq/WhereClauseParsers/SubQueryVisitor/ISubQueryVisitor.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver.Linq/WhereClauseParsers/SubQueryVisitor/ISubQueryVisitor.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver.Linq/WhereClauseParsers/SubQueryVisitor/ISubQueryVisitor.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver.Linq/WhereClauseParsers/SubQueryVisitor/ISubQueryVisitor.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Ast.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Ast.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Ast.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Ast.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Ast/ExtensionHelper.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Ast/ExtensionHelper.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Ast/ExtensionHelper.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Ast/ExtensionHelper.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Ast/ExtensionHelper.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Ast/ExtensionHelper.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Ast/ExtensionHelper.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Ast/ExtensionHelper.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Ast/Poco.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Ast/Poco.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Ast/Poco.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Ast/Poco.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Ast/Poco.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Ast/Poco.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Ast/Poco.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Ast/Poco.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Ast/PropertyHelper.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Ast/PropertyHelper.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Ast/PropertyHelper.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Ast/PropertyHelper.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Ast/PropertyHelper.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Ast/PropertyHelper.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Ast/PropertyHelper.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Ast/PropertyHelper.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Ast/Query.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Ast/Query.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Ast/Query.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Ast/Query.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Ast/Query.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Ast/Query.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Ast/Query.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Ast/Query.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Ast/ReqlAst.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Ast/ReqlAst.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Ast/ReqlAst.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Ast/ReqlAst.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Ast/ReqlAst.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Ast/ReqlAst.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Ast/ReqlAst.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Ast/ReqlAst.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Ast/ReqlExpr.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Ast/ReqlExpr.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Ast/ReqlExpr.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Ast/ReqlExpr.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Ast/ReqlExpr.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Ast/ReqlExpr.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Ast/ReqlExpr.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Ast/ReqlExpr.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Ast/ReqlRaw.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Ast/ReqlRaw.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Ast/ReqlRaw.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Ast/ReqlRaw.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Ast/ReqlRaw.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Ast/ReqlRaw.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Ast/ReqlRaw.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Ast/ReqlRaw.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Ast/TopLevel.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Ast/TopLevel.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Ast/TopLevel.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Ast/TopLevel.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Ast/TopLevel.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Ast/TopLevel.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Ast/TopLevel.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Ast/TopLevel.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Ast/Util.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Ast/Util.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Ast/Util.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Ast/Util.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Ast/Util.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Ast/Util.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Ast/Util.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Ast/Util.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/ErrorBuilder.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/ErrorBuilder.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/ErrorBuilder.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/ErrorBuilder.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/ErrorBuilder.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/ErrorBuilder.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/ErrorBuilder.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/ErrorBuilder.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Extras.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Extras.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Extras.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Extras.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Extras/Dao.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Extras/Dao.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Extras/Dao.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Extras/Dao.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Extras/Dao/Document.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Extras/Dao/Document.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Extras/Dao/Document.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Extras/Dao/Document.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Extras/Dao/Document.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Extras/Dao/Document.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Extras/Dao/Document.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Extras/Dao/Document.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Extras/Dao/IDao.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Extras/Dao/IDao.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Extras/Dao/IDao.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Extras/Dao/IDao.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Extras/Dao/IDao.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Extras/Dao/IDao.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Extras/Dao/IDao.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Extras/Dao/IDao.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Extras/Dao/RethinkDao.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Extras/Dao/RethinkDao.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Extras/Dao/RethinkDao.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Extras/Dao/RethinkDao.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Extras/Dao/RethinkDao.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Extras/Dao/RethinkDao.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Extras/Dao/RethinkDao.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Extras/Dao/RethinkDao.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Add.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Add.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Add.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Add.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Add.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Add.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Add.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Add.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/And.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/And.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/And.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/And.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/And.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/And.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/And.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/And.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Append.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Append.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Append.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Append.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Append.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Append.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Append.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Append.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/April.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/April.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/April.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/April.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/April.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/April.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/April.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/April.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Args.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Args.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Args.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Args.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Args.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Args.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Args.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Args.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Asc.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Asc.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Asc.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Asc.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Asc.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Asc.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Asc.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Asc.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/August.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/August.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/August.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/August.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/August.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/August.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/August.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/August.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Avg.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Avg.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Avg.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Avg.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Avg.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Avg.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Avg.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Avg.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Between.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Between.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Between.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Between.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Between.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Between.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Between.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Between.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Binary.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Binary.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Binary.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Binary.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Binary.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Binary.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Binary.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Binary.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Bracket.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Bracket.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Bracket.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Bracket.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Bracket.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Bracket.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Bracket.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Bracket.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Branch.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Branch.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Branch.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Branch.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Branch.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Branch.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Branch.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Branch.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Ceil.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Ceil.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Ceil.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Ceil.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Ceil.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Ceil.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Ceil.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Ceil.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/ChangeAt.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/ChangeAt.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/ChangeAt.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/ChangeAt.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/ChangeAt.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/ChangeAt.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/ChangeAt.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/ChangeAt.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Changes.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Changes.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Changes.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Changes.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Changes.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Changes.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Changes.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Changes.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Circle.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Circle.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Circle.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Circle.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Circle.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Circle.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Circle.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Circle.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/CoerceTo.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/CoerceTo.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/CoerceTo.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/CoerceTo.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/CoerceTo.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/CoerceTo.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/CoerceTo.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/CoerceTo.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/ConcatMap.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/ConcatMap.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/ConcatMap.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/ConcatMap.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/ConcatMap.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/ConcatMap.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/ConcatMap.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/ConcatMap.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Config.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Config.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Config.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Config.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Config.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Config.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Config.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Config.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Contains.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Contains.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Contains.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Contains.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Contains.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Contains.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Contains.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Contains.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Count.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Count.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Count.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Count.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Count.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Count.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Count.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Count.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Date.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Date.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Date.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Date.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Date.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Date.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Date.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Date.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Datum.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Datum.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Datum.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Datum.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Datum.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Datum.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Datum.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Datum.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Day.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Day.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Day.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Day.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Day.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Day.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Day.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Day.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/DayOfWeek.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/DayOfWeek.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/DayOfWeek.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/DayOfWeek.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/DayOfWeek.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/DayOfWeek.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/DayOfWeek.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/DayOfWeek.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/DayOfYear.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/DayOfYear.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/DayOfYear.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/DayOfYear.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/DayOfYear.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/DayOfYear.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/DayOfYear.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/DayOfYear.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Db.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Db.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Db.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Db.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Db.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Db.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Db.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Db.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/DbCreate.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/DbCreate.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/DbCreate.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/DbCreate.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/DbCreate.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/DbCreate.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/DbCreate.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/DbCreate.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/DbDrop.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/DbDrop.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/DbDrop.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/DbDrop.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/DbDrop.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/DbDrop.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/DbDrop.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/DbDrop.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/DbList.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/DbList.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/DbList.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/DbList.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/DbList.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/DbList.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/DbList.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/DbList.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/December.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/December.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/December.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/December.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/December.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/December.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/December.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/December.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Default.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Default.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Default.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Default.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Default.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Default.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Default.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Default.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Delete.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Delete.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Delete.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Delete.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Delete.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Delete.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Delete.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Delete.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/DeleteAt.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/DeleteAt.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/DeleteAt.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/DeleteAt.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/DeleteAt.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/DeleteAt.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/DeleteAt.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/DeleteAt.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Desc.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Desc.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Desc.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Desc.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Desc.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Desc.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Desc.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Desc.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Difference.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Difference.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Difference.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Difference.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Difference.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Difference.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Difference.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Difference.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Distance.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Distance.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Distance.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Distance.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Distance.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Distance.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Distance.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Distance.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Distinct.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Distinct.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Distinct.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Distinct.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Distinct.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Distinct.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Distinct.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Distinct.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Div.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Div.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Div.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Div.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Div.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Div.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Div.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Div.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Downcase.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Downcase.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Downcase.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Downcase.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Downcase.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Downcase.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Downcase.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Downcase.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/During.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/During.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/During.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/During.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/During.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/During.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/During.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/During.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/EpochTime.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/EpochTime.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/EpochTime.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/EpochTime.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/EpochTime.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/EpochTime.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/EpochTime.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/EpochTime.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Eq.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Eq.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Eq.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Eq.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Eq.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Eq.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Eq.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Eq.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/EqJoin.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/EqJoin.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/EqJoin.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/EqJoin.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/EqJoin.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/EqJoin.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/EqJoin.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/EqJoin.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Error.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Error.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Error.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Error.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Error.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Error.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Error.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Error.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/February.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/February.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/February.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/February.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/February.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/February.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/February.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/February.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Fill.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Fill.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Fill.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Fill.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Fill.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Fill.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Fill.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Fill.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Filter.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Filter.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Filter.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Filter.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Filter.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Filter.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Filter.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Filter.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Floor.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Floor.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Floor.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Floor.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Floor.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Floor.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Floor.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Floor.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Fold.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Fold.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Fold.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Fold.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Fold.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Fold.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Fold.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Fold.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/ForEach.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/ForEach.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/ForEach.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/ForEach.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/ForEach.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/ForEach.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/ForEach.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/ForEach.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Friday.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Friday.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Friday.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Friday.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Friday.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Friday.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Friday.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Friday.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Func.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Func.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Func.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Func.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Func.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Func.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Func.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Func.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Funcall.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Funcall.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Funcall.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Funcall.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Funcall.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Funcall.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Funcall.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Funcall.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Ge.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Ge.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Ge.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Ge.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Ge.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Ge.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Ge.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Ge.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Geojson.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Geojson.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Geojson.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Geojson.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Geojson.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Geojson.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Geojson.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Geojson.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Get.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Get.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Get.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Get.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Get.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Get.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Get.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Get.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/GetAll.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/GetAll.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/GetAll.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/GetAll.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/GetAll.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/GetAll.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/GetAll.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/GetAll.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/GetField.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/GetField.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/GetField.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/GetField.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/GetField.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/GetField.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/GetField.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/GetField.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/GetIntersecting.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/GetIntersecting.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/GetIntersecting.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/GetIntersecting.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/GetIntersecting.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/GetIntersecting.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/GetIntersecting.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/GetIntersecting.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/GetNearest.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/GetNearest.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/GetNearest.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/GetNearest.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/GetNearest.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/GetNearest.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/GetNearest.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/GetNearest.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Grant.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Grant.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Grant.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Grant.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Grant.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Grant.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Grant.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Grant.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Group.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Group.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Group.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Group.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Group.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Group.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Group.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Group.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Gt.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Gt.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Gt.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Gt.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Gt.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Gt.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Gt.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Gt.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/HasFields.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/HasFields.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/HasFields.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/HasFields.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/HasFields.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/HasFields.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/HasFields.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/HasFields.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Hours.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Hours.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Hours.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Hours.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Hours.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Hours.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Hours.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Hours.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Http.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Http.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Http.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Http.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Http.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Http.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Http.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Http.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/InTimezone.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/InTimezone.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/InTimezone.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/InTimezone.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/InTimezone.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/InTimezone.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/InTimezone.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/InTimezone.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Includes.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Includes.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Includes.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Includes.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Includes.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Includes.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Includes.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Includes.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/IndexCreate.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/IndexCreate.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/IndexCreate.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/IndexCreate.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/IndexCreate.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/IndexCreate.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/IndexCreate.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/IndexCreate.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/IndexDrop.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/IndexDrop.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/IndexDrop.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/IndexDrop.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/IndexDrop.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/IndexDrop.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/IndexDrop.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/IndexDrop.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/IndexList.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/IndexList.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/IndexList.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/IndexList.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/IndexList.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/IndexList.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/IndexList.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/IndexList.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/IndexRename.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/IndexRename.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/IndexRename.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/IndexRename.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/IndexRename.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/IndexRename.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/IndexRename.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/IndexRename.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/IndexStatus.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/IndexStatus.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/IndexStatus.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/IndexStatus.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/IndexStatus.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/IndexStatus.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/IndexStatus.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/IndexStatus.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/IndexWait.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/IndexWait.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/IndexWait.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/IndexWait.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/IndexWait.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/IndexWait.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/IndexWait.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/IndexWait.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Info.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Info.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Info.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Info.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Info.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Info.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Info.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Info.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/InnerJoin.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/InnerJoin.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/InnerJoin.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/InnerJoin.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/InnerJoin.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/InnerJoin.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/InnerJoin.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/InnerJoin.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Insert.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Insert.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Insert.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Insert.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Insert.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Insert.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Insert.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Insert.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/InsertAt.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/InsertAt.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/InsertAt.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/InsertAt.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/InsertAt.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/InsertAt.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/InsertAt.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/InsertAt.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Intersects.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Intersects.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Intersects.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Intersects.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Intersects.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Intersects.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Intersects.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Intersects.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/IsEmpty.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/IsEmpty.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/IsEmpty.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/IsEmpty.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/IsEmpty.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/IsEmpty.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/IsEmpty.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/IsEmpty.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Iso8601.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Iso8601.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Iso8601.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Iso8601.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Iso8601.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Iso8601.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Iso8601.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Iso8601.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/January.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/January.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/January.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/January.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/January.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/January.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/January.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/January.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Javascript.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Javascript.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Javascript.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Javascript.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Javascript.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Javascript.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Javascript.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Javascript.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Json.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Json.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Json.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Json.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Json.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Json.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Json.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Json.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/July.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/July.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/July.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/July.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/July.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/July.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/July.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/July.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/June.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/June.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/June.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/June.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/June.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/June.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/June.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/June.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Keys.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Keys.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Keys.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Keys.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Keys.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Keys.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Keys.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Keys.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Le.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Le.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Le.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Le.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Le.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Le.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Le.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Le.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Limit.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Limit.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Limit.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Limit.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Limit.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Limit.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Limit.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Limit.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Line.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Line.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Line.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Line.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Line.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Line.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Line.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Line.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Literal.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Literal.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Literal.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Literal.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Literal.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Literal.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Literal.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Literal.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Lt.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Lt.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Lt.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Lt.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Lt.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Lt.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Lt.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Lt.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/MakeArray.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/MakeArray.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/MakeArray.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/MakeArray.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/MakeArray.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/MakeArray.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/MakeArray.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/MakeArray.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/MakeObj.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/MakeObj.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/MakeObj.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/MakeObj.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/MakeObj.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/MakeObj.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/MakeObj.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/MakeObj.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Map.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Map.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Map.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Map.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Map.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Map.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Map.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Map.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/March.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/March.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/March.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/March.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/March.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/March.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/March.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/March.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Match.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Match.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Match.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Match.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Match.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Match.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Match.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Match.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Max.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Max.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Max.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Max.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Max.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Max.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Max.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Max.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Maxval.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Maxval.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Maxval.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Maxval.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Maxval.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Maxval.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Maxval.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Maxval.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/May.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/May.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/May.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/May.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/May.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/May.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/May.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/May.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Merge.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Merge.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Merge.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Merge.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Merge.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Merge.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Merge.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Merge.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Min.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Min.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Min.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Min.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Min.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Min.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Min.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Min.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Minutes.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Minutes.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Minutes.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Minutes.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Minutes.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Minutes.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Minutes.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Minutes.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Minval.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Minval.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Minval.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Minval.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Minval.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Minval.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Minval.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Minval.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Mod.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Mod.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Mod.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Mod.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Mod.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Mod.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Mod.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Mod.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Monday.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Monday.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Monday.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Monday.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Monday.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Monday.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Monday.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Monday.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Month.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Month.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Month.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Month.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Month.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Month.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Month.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Month.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Mul.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Mul.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Mul.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Mul.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Mul.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Mul.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Mul.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Mul.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Ne.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Ne.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Ne.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Ne.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Ne.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Ne.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Ne.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Ne.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Not.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Not.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Not.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Not.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Not.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Not.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Not.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Not.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/November.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/November.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/November.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/November.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/November.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/November.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/November.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/November.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Now.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Now.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Now.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Now.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Now.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Now.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Now.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Now.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Nth.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Nth.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Nth.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Nth.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Nth.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Nth.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Nth.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Nth.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/October.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/October.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/October.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/October.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/October.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/October.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/October.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/October.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/OffsetsOf.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/OffsetsOf.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/OffsetsOf.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/OffsetsOf.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/OffsetsOf.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/OffsetsOf.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/OffsetsOf.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/OffsetsOf.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Or.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Or.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Or.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Or.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Or.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Or.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Or.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Or.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/OrderBy.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/OrderBy.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/OrderBy.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/OrderBy.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/OrderBy.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/OrderBy.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/OrderBy.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/OrderBy.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/OuterJoin.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/OuterJoin.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/OuterJoin.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/OuterJoin.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/OuterJoin.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/OuterJoin.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/OuterJoin.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/OuterJoin.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Pluck.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Pluck.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Pluck.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Pluck.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Pluck.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Pluck.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Pluck.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Pluck.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Point.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Point.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Point.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Point.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Point.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Point.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Point.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Point.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Polygon.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Polygon.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Polygon.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Polygon.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Polygon.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Polygon.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Polygon.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Polygon.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/PolygonSub.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/PolygonSub.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/PolygonSub.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/PolygonSub.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/PolygonSub.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/PolygonSub.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/PolygonSub.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/PolygonSub.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Prepend.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Prepend.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Prepend.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Prepend.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Prepend.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Prepend.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Prepend.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Prepend.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Random.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Random.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Random.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Random.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Random.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Random.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Random.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Random.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Range.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Range.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Range.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Range.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Range.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Range.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Range.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Range.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Rebalance.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Rebalance.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Rebalance.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Rebalance.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Rebalance.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Rebalance.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Rebalance.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Rebalance.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Reconfigure.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Reconfigure.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Reconfigure.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Reconfigure.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Reconfigure.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Reconfigure.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Reconfigure.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Reconfigure.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Reduce.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Reduce.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Reduce.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Reduce.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Reduce.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Reduce.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Reduce.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Reduce.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Replace.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Replace.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Replace.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Replace.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Replace.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Replace.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Replace.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Replace.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/ReqlExpr.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/ReqlExpr.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/ReqlExpr.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/ReqlExpr.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/ReqlExpr.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/ReqlExpr.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/ReqlExpr.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/ReqlExpr.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/ReqlObject.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/ReqlObject.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/ReqlObject.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/ReqlObject.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/ReqlObject.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/ReqlObject.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/ReqlObject.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/ReqlObject.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Round.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Round.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Round.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Round.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Round.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Round.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Round.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Round.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Sample.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Sample.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Sample.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Sample.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Sample.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Sample.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Sample.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Sample.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Saturday.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Saturday.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Saturday.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Saturday.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Saturday.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Saturday.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Saturday.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Saturday.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Seconds.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Seconds.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Seconds.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Seconds.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Seconds.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Seconds.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Seconds.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Seconds.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/September.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/September.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/September.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/September.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/September.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/September.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/September.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/September.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/SetDifference.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/SetDifference.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/SetDifference.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/SetDifference.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/SetDifference.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/SetDifference.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/SetDifference.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/SetDifference.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/SetInsert.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/SetInsert.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/SetInsert.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/SetInsert.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/SetInsert.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/SetInsert.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/SetInsert.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/SetInsert.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/SetIntersection.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/SetIntersection.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/SetIntersection.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/SetIntersection.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/SetIntersection.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/SetIntersection.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/SetIntersection.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/SetIntersection.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/SetUnion.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/SetUnion.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/SetUnion.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/SetUnion.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/SetUnion.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/SetUnion.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/SetUnion.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/SetUnion.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Skip.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Skip.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Skip.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Skip.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Skip.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Skip.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Skip.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Skip.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Slice.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Slice.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Slice.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Slice.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Slice.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Slice.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Slice.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Slice.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/SpliceAt.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/SpliceAt.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/SpliceAt.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/SpliceAt.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/SpliceAt.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/SpliceAt.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/SpliceAt.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/SpliceAt.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Split.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Split.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Split.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Split.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Split.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Split.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Split.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Split.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Status.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Status.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Status.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Status.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Status.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Status.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Status.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Status.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Sub.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Sub.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Sub.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Sub.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Sub.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Sub.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Sub.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Sub.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Sum.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Sum.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Sum.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Sum.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Sum.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Sum.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Sum.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Sum.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Sunday.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Sunday.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Sunday.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Sunday.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Sunday.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Sunday.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Sunday.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Sunday.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Sync.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Sync.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Sync.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Sync.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Sync.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Sync.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Sync.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Sync.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Table.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Table.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Table.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Table.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Table.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Table.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Table.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Table.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/TableCreate.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/TableCreate.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/TableCreate.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/TableCreate.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/TableCreate.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/TableCreate.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/TableCreate.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/TableCreate.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/TableDrop.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/TableDrop.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/TableDrop.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/TableDrop.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/TableDrop.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/TableDrop.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/TableDrop.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/TableDrop.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/TableList.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/TableList.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/TableList.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/TableList.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/TableList.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/TableList.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/TableList.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/TableList.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Thursday.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Thursday.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Thursday.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Thursday.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Thursday.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Thursday.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Thursday.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Thursday.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Time.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Time.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Time.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Time.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Time.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Time.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Time.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Time.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/TimeOfDay.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/TimeOfDay.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/TimeOfDay.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/TimeOfDay.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/TimeOfDay.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/TimeOfDay.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/TimeOfDay.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/TimeOfDay.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Timezone.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Timezone.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Timezone.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Timezone.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Timezone.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Timezone.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Timezone.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Timezone.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/ToEpochTime.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/ToEpochTime.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/ToEpochTime.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/ToEpochTime.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/ToEpochTime.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/ToEpochTime.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/ToEpochTime.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/ToEpochTime.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/ToGeojson.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/ToGeojson.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/ToGeojson.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/ToGeojson.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/ToGeojson.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/ToGeojson.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/ToGeojson.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/ToGeojson.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/ToIso8601.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/ToIso8601.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/ToIso8601.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/ToIso8601.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/ToIso8601.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/ToIso8601.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/ToIso8601.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/ToIso8601.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/ToJsonString.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/ToJsonString.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/ToJsonString.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/ToJsonString.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/ToJsonString.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/ToJsonString.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/ToJsonString.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/ToJsonString.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Tuesday.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Tuesday.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Tuesday.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Tuesday.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Tuesday.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Tuesday.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Tuesday.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Tuesday.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/TypeOf.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/TypeOf.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/TypeOf.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/TypeOf.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/TypeOf.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/TypeOf.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/TypeOf.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/TypeOf.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Ungroup.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Ungroup.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Ungroup.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Ungroup.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Ungroup.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Ungroup.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Ungroup.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Ungroup.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Union.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Union.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Union.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Union.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Union.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Union.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Union.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Union.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Upcase.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Upcase.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Upcase.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Upcase.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Upcase.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Upcase.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Upcase.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Upcase.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Update.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Update.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Update.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Update.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Update.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Update.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Update.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Update.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Uuid.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Uuid.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Uuid.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Uuid.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Uuid.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Uuid.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Uuid.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Uuid.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Values.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Values.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Values.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Values.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Values.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Values.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Values.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Values.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Var.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Var.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Var.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Var.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Var.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Var.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Var.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Var.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Wait.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Wait.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Wait.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Wait.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Wait.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Wait.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Wait.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Wait.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Wednesday.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Wednesday.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Wednesday.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Wednesday.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Wednesday.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Wednesday.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Wednesday.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Wednesday.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/WithFields.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/WithFields.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/WithFields.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/WithFields.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/WithFields.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/WithFields.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/WithFields.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/WithFields.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Without.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Without.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Without.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Without.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Without.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Without.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Without.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Without.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Year.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Year.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Year.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Year.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Year.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Year.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Year.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Year.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Zip.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Zip.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Zip.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Zip.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Zip.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Zip.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Ast/Zip.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Ast/Zip.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Model.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Model.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Model.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Model.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Model/AuthType.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Model/AuthType.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Model/AuthType.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Model/AuthType.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Model/AuthType.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Model/AuthType.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Model/AuthType.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Model/AuthType.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Model/Bound.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Model/Bound.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Model/Bound.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Model/Bound.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Model/Bound.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Model/Bound.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Model/Bound.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Model/Bound.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Model/Conflict.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Model/Conflict.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Model/Conflict.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Model/Conflict.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Model/Conflict.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Model/Conflict.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Model/Conflict.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Model/Conflict.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Model/Durability.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Model/Durability.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Model/Durability.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Model/Durability.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Model/Durability.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Model/Durability.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Model/Durability.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Model/Durability.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Model/EmergencyRepair.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Model/EmergencyRepair.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Model/EmergencyRepair.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Model/EmergencyRepair.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Model/EmergencyRepair.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Model/EmergencyRepair.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Model/EmergencyRepair.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Model/EmergencyRepair.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Model/Format.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Model/Format.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Model/Format.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Model/Format.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Model/Format.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Model/Format.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Model/Format.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Model/Format.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Model/GeoSystem.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Model/GeoSystem.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Model/GeoSystem.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Model/GeoSystem.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Model/GeoSystem.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Model/GeoSystem.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Model/GeoSystem.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Model/GeoSystem.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Model/HttpMethod.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Model/HttpMethod.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Model/HttpMethod.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Model/HttpMethod.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Model/HttpMethod.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Model/HttpMethod.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Model/HttpMethod.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Model/HttpMethod.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Model/IdentifierFormat.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Model/IdentifierFormat.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Model/IdentifierFormat.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Model/IdentifierFormat.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Model/IdentifierFormat.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Model/IdentifierFormat.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Model/IdentifierFormat.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Model/IdentifierFormat.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Model/ReadMode.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Model/ReadMode.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Model/ReadMode.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Model/ReadMode.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Model/ReadMode.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Model/ReadMode.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Model/ReadMode.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Model/ReadMode.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Model/ReqlFunction0.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Model/ReqlFunction0.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Model/ReqlFunction0.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Model/ReqlFunction0.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Model/ReqlFunction0.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Model/ReqlFunction0.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Model/ReqlFunction0.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Model/ReqlFunction0.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Model/ReqlFunction1.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Model/ReqlFunction1.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Model/ReqlFunction1.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Model/ReqlFunction1.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Model/ReqlFunction1.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Model/ReqlFunction1.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Model/ReqlFunction1.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Model/ReqlFunction1.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Model/ReqlFunction2.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Model/ReqlFunction2.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Model/ReqlFunction2.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Model/ReqlFunction2.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Model/ReqlFunction2.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Model/ReqlFunction2.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Model/ReqlFunction2.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Model/ReqlFunction2.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Model/ReqlFunction3.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Model/ReqlFunction3.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Model/ReqlFunction3.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Model/ReqlFunction3.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Model/ReqlFunction3.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Model/ReqlFunction3.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Model/ReqlFunction3.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Model/ReqlFunction3.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Model/ReqlFunction4.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Model/ReqlFunction4.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Model/ReqlFunction4.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Model/ReqlFunction4.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Model/ReqlFunction4.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Model/ReqlFunction4.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Model/ReqlFunction4.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Model/ReqlFunction4.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Model/ResultFormat.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Model/ResultFormat.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Model/ResultFormat.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Model/ResultFormat.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Model/ResultFormat.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Model/ResultFormat.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Model/ResultFormat.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Model/ResultFormat.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Model/Status.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Model/Status.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Model/Status.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Model/Status.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Model/Status.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Model/Status.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Model/Status.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Model/Status.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Model/TopLevel.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Model/TopLevel.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Model/TopLevel.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Model/TopLevel.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Model/TopLevel.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Model/TopLevel.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Model/TopLevel.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Model/TopLevel.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Model/Unit.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Model/Unit.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Model/Unit.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Model/Unit.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Model/Unit.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Model/Unit.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Model/Unit.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Model/Unit.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Proto.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Proto.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Proto.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Proto.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Proto/DatumType.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Proto/DatumType.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Proto/DatumType.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Proto/DatumType.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Proto/DatumType.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Proto/DatumType.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Proto/DatumType.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Proto/DatumType.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Proto/ErrorType.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Proto/ErrorType.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Proto/ErrorType.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Proto/ErrorType.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Proto/ErrorType.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Proto/ErrorType.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Proto/ErrorType.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Proto/ErrorType.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Proto/FrameType.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Proto/FrameType.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Proto/FrameType.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Proto/FrameType.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Proto/FrameType.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Proto/FrameType.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Proto/FrameType.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Proto/FrameType.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Proto/Protocol.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Proto/Protocol.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Proto/Protocol.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Proto/Protocol.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Proto/Protocol.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Proto/Protocol.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Proto/Protocol.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Proto/Protocol.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Proto/QueryType.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Proto/QueryType.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Proto/QueryType.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Proto/QueryType.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Proto/QueryType.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Proto/QueryType.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Proto/QueryType.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Proto/QueryType.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Proto/ResponseNote.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Proto/ResponseNote.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Proto/ResponseNote.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Proto/ResponseNote.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Proto/ResponseNote.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Proto/ResponseNote.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Proto/ResponseNote.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Proto/ResponseNote.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Proto/ResponseType.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Proto/ResponseType.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Proto/ResponseType.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Proto/ResponseType.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Proto/ResponseType.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Proto/ResponseType.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Proto/ResponseType.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Proto/ResponseType.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Proto/TermType.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Proto/TermType.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Proto/TermType.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Proto/TermType.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Proto/TermType.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Proto/TermType.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Proto/TermType.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Proto/TermType.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Proto/Version.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Proto/Version.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Proto/Version.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Proto/Version.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Proto/Version.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Proto/Version.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/Proto/Version.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/Proto/Version.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/ReqlAuthError.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/ReqlAuthError.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/ReqlAuthError.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/ReqlAuthError.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/ReqlAuthError.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/ReqlAuthError.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/ReqlAuthError.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/ReqlAuthError.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/ReqlAvailabilityError.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/ReqlAvailabilityError.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/ReqlAvailabilityError.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/ReqlAvailabilityError.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/ReqlAvailabilityError.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/ReqlAvailabilityError.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/ReqlAvailabilityError.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/ReqlAvailabilityError.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/ReqlClientError.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/ReqlClientError.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/ReqlClientError.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/ReqlClientError.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/ReqlClientError.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/ReqlClientError.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/ReqlClientError.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/ReqlClientError.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/ReqlCompileError.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/ReqlCompileError.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/ReqlCompileError.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/ReqlCompileError.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/ReqlCompileError.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/ReqlCompileError.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/ReqlCompileError.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/ReqlCompileError.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/ReqlDriverCompileError.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/ReqlDriverCompileError.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/ReqlDriverCompileError.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/ReqlDriverCompileError.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/ReqlDriverCompileError.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/ReqlDriverCompileError.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/ReqlDriverCompileError.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/ReqlDriverCompileError.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/ReqlDriverError.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/ReqlDriverError.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/ReqlDriverError.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/ReqlDriverError.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/ReqlDriverError.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/ReqlDriverError.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/ReqlDriverError.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/ReqlDriverError.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/ReqlError.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/ReqlError.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/ReqlError.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/ReqlError.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/ReqlError.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/ReqlError.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/ReqlError.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/ReqlError.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/ReqlInternalError.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/ReqlInternalError.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/ReqlInternalError.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/ReqlInternalError.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/ReqlInternalError.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/ReqlInternalError.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/ReqlInternalError.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/ReqlInternalError.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/ReqlNonExistenceError.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/ReqlNonExistenceError.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/ReqlNonExistenceError.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/ReqlNonExistenceError.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/ReqlNonExistenceError.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/ReqlNonExistenceError.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/ReqlNonExistenceError.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/ReqlNonExistenceError.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/ReqlOpFailedError.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/ReqlOpFailedError.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/ReqlOpFailedError.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/ReqlOpFailedError.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/ReqlOpFailedError.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/ReqlOpFailedError.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/ReqlOpFailedError.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/ReqlOpFailedError.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/ReqlOpIndeterminateError.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/ReqlOpIndeterminateError.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/ReqlOpIndeterminateError.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/ReqlOpIndeterminateError.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/ReqlOpIndeterminateError.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/ReqlOpIndeterminateError.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/ReqlOpIndeterminateError.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/ReqlOpIndeterminateError.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/ReqlPermissionError.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/ReqlPermissionError.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/ReqlPermissionError.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/ReqlPermissionError.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/ReqlPermissionError.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/ReqlPermissionError.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/ReqlPermissionError.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/ReqlPermissionError.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/ReqlQueryLogicError.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/ReqlQueryLogicError.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/ReqlQueryLogicError.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/ReqlQueryLogicError.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/ReqlQueryLogicError.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/ReqlQueryLogicError.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/ReqlQueryLogicError.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/ReqlQueryLogicError.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/ReqlResourceLimitError.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/ReqlResourceLimitError.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/ReqlResourceLimitError.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/ReqlResourceLimitError.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/ReqlResourceLimitError.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/ReqlResourceLimitError.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/ReqlResourceLimitError.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/ReqlResourceLimitError.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/ReqlRuntimeError.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/ReqlRuntimeError.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/ReqlRuntimeError.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/ReqlRuntimeError.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/ReqlRuntimeError.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/ReqlRuntimeError.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/ReqlRuntimeError.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/ReqlRuntimeError.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/ReqlServerCompileError.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/ReqlServerCompileError.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/ReqlServerCompileError.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/ReqlServerCompileError.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/ReqlServerCompileError.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/ReqlServerCompileError.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/ReqlServerCompileError.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/ReqlServerCompileError.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/ReqlUserError.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/ReqlUserError.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/ReqlUserError.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/ReqlUserError.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/ReqlUserError.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/ReqlUserError.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Generated/ReqlUserError.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Generated/ReqlUserError.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Log.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Log.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Log.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Log.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Log.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Log.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Log.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Log.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Model.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Model.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Model.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Model.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Model/Arguments.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Model/Arguments.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Model/Arguments.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Model/Arguments.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Model/Arguments.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Model/Arguments.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Model/Arguments.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Model/Arguments.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Model/Backtrace.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Model/Backtrace.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Model/Backtrace.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Model/Backtrace.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Model/Backtrace.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Model/Backtrace.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Model/Backtrace.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Model/Backtrace.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Model/Change[T].cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Model/Change[T].cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Model/Change[T].cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Model/Change[T].cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Model/Change[T].cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Model/Change[T].cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Model/Change[T].cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Model/Change[T].cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Model/ExtensionsForResult.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Model/ExtensionsForResult.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Model/ExtensionsForResult.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Model/ExtensionsForResult.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Model/ExtensionsForResult.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Model/ExtensionsForResult.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Model/ExtensionsForResult.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Model/ExtensionsForResult.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Model/GroupedResult.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Model/GroupedResult.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Model/GroupedResult.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Model/GroupedResult.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Model/GroupedResult.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Model/GroupedResult.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Model/GroupedResult.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Model/GroupedResult.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Model/MapObject.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Model/MapObject.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Model/MapObject.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Model/MapObject.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Model/MapObject.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Model/MapObject.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Model/MapObject.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Model/MapObject.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Model/OptArgs.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Model/OptArgs.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Model/OptArgs.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Model/OptArgs.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Model/OptArgs.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Model/OptArgs.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Model/OptArgs.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Model/OptArgs.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Model/PathSpec.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Model/PathSpec.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Model/PathSpec.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Model/PathSpec.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Model/PathSpec.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Model/PathSpec.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Model/PathSpec.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Model/PathSpec.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Model/Profile.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Model/Profile.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Model/Profile.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Model/Profile.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Model/Profile.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Model/Profile.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Model/Profile.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Model/Profile.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Model/ReqlLambda.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Model/ReqlLambda.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Model/ReqlLambda.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Model/ReqlLambda.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Model/ReqlLambda.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Model/ReqlLambda.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Model/ReqlLambda.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Model/ReqlLambda.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Model/Result.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Model/Result.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Model/Result.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Model/Result.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Model/Result.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Model/Result.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Model/Result.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Model/Result.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Model/Server.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Model/Server.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Model/Server.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Model/Server.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Model/Server.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Model/Server.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Model/Server.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Model/Server.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/Awaiter.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/Awaiter.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/Awaiter.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/Awaiter.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/Awaiter.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/Awaiter.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/Awaiter.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/Awaiter.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/Clustering.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/Clustering.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/Clustering.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/Clustering.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/Clustering/ConnectionPool.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/Clustering/ConnectionPool.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/Clustering/ConnectionPool.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/Clustering/ConnectionPool.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/Clustering/ConnectionPool.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/Clustering/ConnectionPool.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/Clustering/ConnectionPool.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/Clustering/ConnectionPool.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/Clustering/EpsilonGreedy.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/Clustering/EpsilonGreedy.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/Clustering/EpsilonGreedy.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/Clustering/EpsilonGreedy.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/Clustering/EpsilonGreedy.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/Clustering/EpsilonGreedy.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/Clustering/EpsilonGreedy.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/Clustering/EpsilonGreedy.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/Clustering/EpsilonValueCalculator.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/Clustering/EpsilonValueCalculator.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/Clustering/EpsilonValueCalculator.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/Clustering/EpsilonValueCalculator.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/Clustering/EpsilonValueCalculator.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/Clustering/EpsilonValueCalculator.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/Clustering/EpsilonValueCalculator.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/Clustering/EpsilonValueCalculator.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/Clustering/ExceptionIs.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/Clustering/ExceptionIs.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/Clustering/ExceptionIs.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/Clustering/ExceptionIs.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/Clustering/ExceptionIs.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/Clustering/ExceptionIs.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/Clustering/ExceptionIs.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/Clustering/ExceptionIs.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/Clustering/HostEntry.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/Clustering/HostEntry.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/Clustering/HostEntry.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/Clustering/HostEntry.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/Clustering/HostEntry.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/Clustering/HostEntry.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/Clustering/HostEntry.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/Clustering/HostEntry.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/Clustering/HostPool.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/Clustering/HostPool.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/Clustering/HostPool.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/Clustering/HostPool.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/Clustering/HostPool.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/Clustering/HostPool.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/Clustering/HostPool.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/Clustering/HostPool.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/Clustering/IPoolingStrategy.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/Clustering/IPoolingStrategy.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/Clustering/IPoolingStrategy.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/Clustering/IPoolingStrategy.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/Clustering/IPoolingStrategy.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/Clustering/IPoolingStrategy.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/Clustering/IPoolingStrategy.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/Clustering/IPoolingStrategy.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/Clustering/RoundRobinHostPool.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/Clustering/RoundRobinHostPool.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/Clustering/RoundRobinHostPool.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/Clustering/RoundRobinHostPool.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/Clustering/RoundRobinHostPool.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/Clustering/RoundRobinHostPool.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/Clustering/RoundRobinHostPool.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/Clustering/RoundRobinHostPool.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/Clustering/Seed.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/Clustering/Seed.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/Clustering/Seed.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/Clustering/Seed.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/Clustering/Seed.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/Clustering/Seed.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/Clustering/Seed.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/Clustering/Seed.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/Clustering/Server.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/Clustering/Server.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/Clustering/Server.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/Clustering/Server.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/Clustering/Server.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/Clustering/Server.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/Clustering/Server.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/Clustering/Server.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/Connection.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/Connection.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/Connection.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/Connection.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/Connection.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/Connection.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/Connection.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/Connection.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/Converter.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/Converter.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/Converter.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/Converter.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/Converter.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/Converter.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/Converter.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/Converter.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/Crypto.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/Crypto.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/Crypto.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/Crypto.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/Crypto.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/Crypto.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/Crypto.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/Crypto.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/Cursor.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/Cursor.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/Cursor.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/Cursor.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/Cursor.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/Cursor.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/Cursor.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/Cursor.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/FormatOptions.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/FormatOptions.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/FormatOptions.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/FormatOptions.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/FormatOptions.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/FormatOptions.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/FormatOptions.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/FormatOptions.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/Handshake.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/Handshake.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/Handshake.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/Handshake.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/Handshake.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/Handshake.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/Handshake.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/Handshake.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/IConnection.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/IConnection.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/IConnection.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/IConnection.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/IConnection.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/IConnection.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/IConnection.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/IConnection.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/IConnectionBuilder.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/IConnectionBuilder.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/IConnectionBuilder.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/IConnectionBuilder.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/IConnectionBuilder.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/IConnectionBuilder.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/IConnectionBuilder.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/IConnectionBuilder.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/ICursor.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/ICursor.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/ICursor.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/ICursor.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/ICursor.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/ICursor.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/ICursor.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/ICursor.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/IncrementalSHA256.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/IncrementalSHA256.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/IncrementalSHA256.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/IncrementalSHA256.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/IncrementalSHA256.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/IncrementalSHA256.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/IncrementalSHA256.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/IncrementalSHA256.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/JsonConverters.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/JsonConverters.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/JsonConverters.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/JsonConverters.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/JsonConverters/ExtensionsForJsonConverters.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/JsonConverters/ExtensionsForJsonConverters.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/JsonConverters/ExtensionsForJsonConverters.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/JsonConverters/ExtensionsForJsonConverters.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/JsonConverters/ExtensionsForJsonConverters.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/JsonConverters/ExtensionsForJsonConverters.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/JsonConverters/ExtensionsForJsonConverters.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/JsonConverters/ExtensionsForJsonConverters.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/JsonConverters/ReqlBinaryConverter.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/JsonConverters/ReqlBinaryConverter.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/JsonConverters/ReqlBinaryConverter.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/JsonConverters/ReqlBinaryConverter.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/JsonConverters/ReqlBinaryConverter.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/JsonConverters/ReqlBinaryConverter.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/JsonConverters/ReqlBinaryConverter.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/JsonConverters/ReqlBinaryConverter.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/JsonConverters/ReqlDateTimeConverter.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/JsonConverters/ReqlDateTimeConverter.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/JsonConverters/ReqlDateTimeConverter.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/JsonConverters/ReqlDateTimeConverter.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/JsonConverters/ReqlDateTimeConverter.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/JsonConverters/ReqlDateTimeConverter.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/JsonConverters/ReqlDateTimeConverter.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/JsonConverters/ReqlDateTimeConverter.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/JsonConverters/ReqlExprConverter.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/JsonConverters/ReqlExprConverter.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/JsonConverters/ReqlExprConverter.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/JsonConverters/ReqlExprConverter.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/JsonConverters/ReqlExprConverter.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/JsonConverters/ReqlExprConverter.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/JsonConverters/ReqlExprConverter.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/JsonConverters/ReqlExprConverter.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/JsonConverters/ReqlGroupingConverter.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/JsonConverters/ReqlGroupingConverter.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/JsonConverters/ReqlGroupingConverter.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/JsonConverters/ReqlGroupingConverter.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/JsonConverters/ReqlGroupingConverter.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/JsonConverters/ReqlGroupingConverter.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/JsonConverters/ReqlGroupingConverter.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/JsonConverters/ReqlGroupingConverter.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/Response.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/Response.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/Response.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/Response.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/Response.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/Response.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/Response.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/Response.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/ScramAttributes.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/ScramAttributes.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/ScramAttributes.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/ScramAttributes.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/ScramAttributes.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/ScramAttributes.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/ScramAttributes.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/ScramAttributes.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/SecureRandom.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/SecureRandom.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/SecureRandom.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/SecureRandom.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/SecureRandom.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/SecureRandom.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/SecureRandom.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/SecureRandom.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/SocketWrapper.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/SocketWrapper.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/SocketWrapper.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/SocketWrapper.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/SocketWrapper.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/SocketWrapper.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/SocketWrapper.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/SocketWrapper.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/SslContext.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/SslContext.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/SslContext.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/SslContext.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/SslContext.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/SslContext.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Net/SslContext.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Net/SslContext.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/ReqlAssertFailure.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/ReqlAssertFailure.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/ReqlAssertFailure.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/ReqlAssertFailure.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/ReqlAssertFailure.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/ReqlAssertFailure.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/ReqlAssertFailure.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/ReqlAssertFailure.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/RethinkDB.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/RethinkDB.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/RethinkDB.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/RethinkDB.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/RethinkDB.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/RethinkDB.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/RethinkDB.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/RethinkDB.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/RethinkDBConstants.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/RethinkDBConstants.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/RethinkDBConstants.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/RethinkDBConstants.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/RethinkDBConstants.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/RethinkDBConstants.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/RethinkDBConstants.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/RethinkDBConstants.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/RethinkDb.Driver.csproj b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/RethinkDb.Driver.csproj similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/RethinkDb.Driver.csproj rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/RethinkDb.Driver.csproj diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/RethinkDb.Driver.csproj.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/RethinkDb.Driver.csproj.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/RethinkDb.Driver.csproj.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/RethinkDb.Driver.csproj.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/RethinkDb.Driver.ruleset b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/RethinkDb.Driver.ruleset similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/RethinkDb.Driver.ruleset rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/RethinkDb.Driver.ruleset diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/RethinkDb.Driver.ruleset.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/RethinkDb.Driver.ruleset.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/RethinkDb.Driver.ruleset.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/RethinkDb.Driver.ruleset.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Utils.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Utils.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Utils.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Utils.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Utils/CancellableTask.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Utils/CancellableTask.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Utils/CancellableTask.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Utils/CancellableTask.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Utils/CancellableTask.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Utils/CancellableTask.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Utils/CancellableTask.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Utils/CancellableTask.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Utils/ExtensionsForEvent.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Utils/ExtensionsForEvent.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Utils/ExtensionsForEvent.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Utils/ExtensionsForEvent.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Utils/ExtensionsForEvent.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Utils/ExtensionsForEvent.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Utils/ExtensionsForEvent.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Utils/ExtensionsForEvent.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Utils/ExtensionsForString.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Utils/ExtensionsForString.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Utils/ExtensionsForString.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Utils/ExtensionsForString.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Utils/ExtensionsForString.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Utils/ExtensionsForString.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Utils/ExtensionsForString.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Utils/ExtensionsForString.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Utils/ExtensionsForTcpClient.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Utils/ExtensionsForTcpClient.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Utils/ExtensionsForTcpClient.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Utils/ExtensionsForTcpClient.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Utils/ExtensionsForTcpClient.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Utils/ExtensionsForTcpClient.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Utils/ExtensionsForTcpClient.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Utils/ExtensionsForTcpClient.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Utils/ExtensionsForType.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Utils/ExtensionsForType.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Utils/ExtensionsForType.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Utils/ExtensionsForType.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Utils/ExtensionsForType.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Utils/ExtensionsForType.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Utils/ExtensionsForType.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Utils/ExtensionsForType.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Utils/QueryHelper.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Utils/QueryHelper.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Utils/QueryHelper.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Utils/QueryHelper.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Utils/QueryHelper.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Utils/QueryHelper.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Utils/QueryHelper.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Utils/QueryHelper.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Utils/StringHelper.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Utils/StringHelper.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Utils/StringHelper.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Utils/StringHelper.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Utils/StringHelper.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Utils/StringHelper.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Utils/StringHelper.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Utils/StringHelper.cs.meta diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Utils/TaskHelper.cs b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Utils/TaskHelper.cs similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Utils/TaskHelper.cs rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Utils/TaskHelper.cs diff --git a/Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Utils/TaskHelper.cs.meta b/Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Utils/TaskHelper.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/NIH/RethinkDb.Driver/Utils/TaskHelper.cs.meta rename to Assets/Scripts/ServerShared/NIH/RethinkDb/RethinkDb.Driver/Utils/TaskHelper.cs.meta diff --git a/Assets/Scripts/Tests/Tests.asmdef b/Assets/Scripts/Tests/Tests.asmdef index 2b1bad83f..ede58b507 100644 --- a/Assets/Scripts/Tests/Tests.asmdef +++ b/Assets/Scripts/Tests/Tests.asmdef @@ -4,8 +4,8 @@ "references": [ "UnityEngine.TestRunner", "UnityEditor.TestRunner", - "Economy.Shared.Unity", - "Unity.Mathematics" + "Unity.Mathematics", + "Aetheria.Shared.Unity" ], "includePlatforms": [ "Editor" diff --git a/Assets/Scripts/UnityExtensions.cs b/Assets/Scripts/UnityExtensions.cs index 58955675e..0f0d34431 100644 --- a/Assets/Scripts/UnityExtensions.cs +++ b/Assets/Scripts/UnityExtensions.cs @@ -11,7 +11,7 @@ using Random = UnityEngine.Random; using static Unity.Mathematics.math; -public static class UnityExtensions +public static class UnitySceneExtensions { public static T FindInParents(this GameObject go) where T : Component { @@ -74,44 +74,6 @@ public static class UnityExtensions // } } } - - public static Texture2D ToTexture(this Color c) - { - Texture2D result = new Texture2D(1, 1); - result.SetPixels(new[]{c}); - result.Apply(); - - return result; - } - - private const int GradSteps = 32; - public static Texture2D ToTexture(this Gradient g) - { - var tex = new Texture2D(GradSteps, 1) {wrapMode = TextureWrapMode.Clamp}; - for (int x = 0; x < GradSteps; x++) - { - tex.SetPixel(x, 0, g.Evaluate( (float)x / GradSteps)); - } - tex.Apply(); - return tex; - } - - public static Gradient ToGradient(this float4[] keys, bool sharp = false) - { - var grad = new Gradient(); - grad.mode = sharp ? GradientMode.Fixed : GradientMode.Blend; - grad.alphaKeys = new[] {new GradientAlphaKey(1, 0), new GradientAlphaKey(1, 1)}; - grad.colorKeys = keys.Select(k => new GradientColorKey(k.xyz.ToColor(), k.w)).ToArray(); - return grad; - } - - public static AnimationCurve ToCurve(this float4[] keys) - { - return new AnimationCurve(keys.Select(v => new Keyframe(v.x, v.y, v.z, v.w)).ToArray()); - } - - public static Color ToColor(this float3 v) => new Color(v.x,v.y,v.z); - public static float3 ToFloat3(this Color c) => float3(c.r,c.g,c.b); public static Vector3 Flatland(this Vector2 v, float y = 0) => new Vector3(v.x,y,v.y); public static Vector2 Flatland(this Vector3 v) => new Vector2(v.x,v.z); diff --git a/Assets/Scripts/Zone Display/ZoneRenderer.cs b/Assets/Scripts/Zone Display/ZoneRenderer.cs index 17b0cb6ba..70f95c982 100644 --- a/Assets/Scripts/Zone Display/ZoneRenderer.cs +++ b/Assets/Scripts/Zone Display/ZoneRenderer.cs @@ -78,6 +78,7 @@ public class ZoneRenderer : MonoBehaviour private Entity _perspectiveEntity; private IDisposable[] _perspectiveSubscriptions = new IDisposable[2]; private List _zoneSubscriptions = new List(); + private PlanetObject[] _suns; public Dictionary WormholeInstances = new Dictionary(); @@ -156,32 +157,14 @@ public class ZoneRenderer : MonoBehaviour SlimeRenderer.ZoneRadius = zone.Pack.Radius; foreach(var p in zone.Planets.Values) LoadPlanet(p); + + _suns = Planets.Values.Where(p => p is SunObject).ToArray(); foreach (var x in Planets) { if (!(zone.Planets[x.Key] is GasGiantData)) { - var parentOrbit = Zone.Orbits[Zone.Planets[x.Key].Orbit].Data.Parent; - PlanetObject parent; - if (parentOrbit == Guid.Empty) - parent = _root; - else - { - var parentPlanetData = Zone.Planets.Values.FirstOrDefault(p => p.Orbit == parentOrbit); - if(parentPlanetData == null) - { - parentOrbit = Zone.Orbits[parentOrbit].Data.Parent; - parentPlanetData = Zone.Planets.Values.FirstOrDefault(p => p.Orbit == parentOrbit); - } - - if (parentPlanetData == null) - parent = _root; - else if (!Planets.TryGetValue(parentPlanetData.ID, out parent)) - { - Debug.Log("WTF!"); - } - } - //_tourPlanets.Add((x.Value.Body.transform, parent.Body.transform)); + } } @@ -411,6 +394,12 @@ public class ZoneRenderer : MonoBehaviour void Update() { + if (SlimeRenderer.SpawnPositions.Length != _suns.Length) + SlimeRenderer.SpawnPositions = new Vector2[_suns.Length]; + for (var i = 0; i < _suns.Length; i++) + { + SlimeRenderer.SpawnPositions[i] = _suns[i].Body.transform.position.Flatland(); + } foreach(var belt in Zone.AsteroidBelts) { var meshes = _beltMeshes[belt.Key]; diff --git a/Assets/Shaders/Brushes/WormholeBrush.shader b/Assets/Shaders/Brushes/WormholeBrush.shader index c57627f90..6d2c8a0ed 100644 --- a/Assets/Shaders/Brushes/WormholeBrush.shader +++ b/Assets/Shaders/Brushes/WormholeBrush.shader @@ -76,7 +76,7 @@ Category { float2 uv2 = i.texcoord - float2(.5,.5); float dist = length(uv2); float ang = atan2(uv2.y,uv2.x); - return _Depth * powerPulse(dist * 2,_Power) * (cos(ang*_Frequency+dist*_FrequencyDist+_Time.x*_Speed)+1); + return _Depth * powerPulse(dist * 2,_Power) * (cos(ang*_Frequency+pow(dist, _SinePower)*_FrequencyDist+_Time.x*_Speed)+1); } ENDCG } diff --git a/Assets/Shaders/Compute/Slime/Slime.compute b/Assets/Shaders/Compute/Slime/Slime.compute index a60181402..fab7adda4 100644 --- a/Assets/Shaders/Compute/Slime/Slime.compute +++ b/Assets/Shaders/Compute/Slime/Slime.compute @@ -25,13 +25,11 @@ struct Particle struct SlimeParameter { - float HeightSlopeLerp; - float HeightThreshold; - float HeightBlend; float SlopeThreshold; float SlopeBlend; float HighValue; float LowValue; + float Exponent; }; struct SlimeSettings @@ -48,11 +46,9 @@ struct SlimeSettings SlimeParameter Intensity; }; -float evaluate(SlimeParameter param, float height, float slope) +float evaluate(SlimeParameter param, float slope) { - return lerp( - lerp(param.LowValue, param.HighValue, smoothstep(param.HeightThreshold - param.HeightBlend, param.HeightThreshold + param.HeightBlend, height)), - lerp(param.LowValue, param.HighValue, smoothstep(param.SlopeThreshold - param.SlopeBlend, param.SlopeThreshold + param.SlopeBlend, slope)), param.HeightSlopeLerp); + return lerp(param.LowValue, param.HighValue, pow(smoothstep(param.SlopeThreshold - param.SlopeBlend, param.SlopeThreshold + param.SlopeBlend, slope), param.Exponent)); } // Parameter buffer @@ -67,6 +63,8 @@ RWTexture2D diffusedAccumulation; // Agent data buffer RWStructuredBuffer agents; +RWStructuredBuffer spawnPositions; + // Use this texture to sample level terrain shape for shenanigans Texture2D Heightmap; SamplerState samplerHeightmap; @@ -74,8 +72,10 @@ SamplerState samplerHeightmap; int randomOffset; int numAgents; float deltaTime; -int textureWidth; +int textureSize; +int gravityTextureSize; float zoneRadius; +int spawnPositionCount; // Hash function from H. Schechter & R. Bridson, goo.gl/RXiKaH inline uint hash(uint s) @@ -94,10 +94,10 @@ inline float random(uint seed) return float(hash(seed)) / 4294967295.0; // 2^32-1 } -inline float2 uvToPos(float2 uv) -{ - return (uv - float2(.5, .5)) * (zoneRadius * 2); -} +// inline float2 uvToPos(float2 uv) +// { +// return (uv - float2(.5, .5)) * (zoneRadius * 2); +// } inline float2 posToUv(float2 pos) { @@ -106,17 +106,17 @@ inline float2 posToUv(float2 pos) float sense(int2 position, float angle, float directionSign, float spread, float distance) { - float sensorAngle = angle + directionSign * spread; - float2 sensorDir = float2(cos(sensorAngle), sin(sensorAngle)); - int2 sensorCenter = position + sensorDir * distance; + const float sensorAngle = angle + directionSign * spread; + const float2 sensorDir = float2(cos(sensorAngle), sin(sensorAngle)); + const int2 sensorCenter = position + sensorDir * distance; float sum = 0; for(int x = -1; x <= 1; x++) { for(int y = -1; y <= 1; y++) { - int2 sample = sensorCenter + int2(x, y); - if(sample.x >= 0 && sample.x < textureWidth && sample.y >= 0 && sample.y < textureWidth) + const int2 sample = sensorCenter + int2(x, y); + if(sample.x >= 0 && sample.x < textureSize && sample.y >= 0 && sample.y < textureSize) { sum += accumulation[sample]; } @@ -133,14 +133,14 @@ inline float unlerp(float x, float min, float max) // Z-up normal of the heightmap float3 GetNormal(int2 pos) { - if(pos.x >= textureWidth || pos.y >= textureWidth) return float3(0, 0, 1); - - float e = -Heightmap[pos + int2(1, 0)]; - float n = -Heightmap[pos + int2(0, 1)]; - float me = -Heightmap[pos]; + if(pos.x >= gravityTextureSize || pos.y >= gravityTextureSize) return float3(0, 0, 1); + + const float e = -Heightmap[pos + int2(1, 0)]; + const float n = -Heightmap[pos + int2(0, 1)]; + const float me = -Heightmap[pos]; // Deduce terrain normal - float3 normal = float3(e - me, n - me, 1.0 / textureWidth * zoneRadius * 2); + const float3 normal = float3(e - me, n - me, 1.0 / gravityTextureSize * zoneRadius * 2); return normalize(normal); } @@ -150,47 +150,46 @@ void UpdateAgents (uint3 id : SV_DispatchThreadID) if (id.x >= numAgents) return; Agent agent = agents[id.x]; - SlimeSettings settings = parameters[0]; + const SlimeSettings settings = parameters[0]; - float2 uv = posToUv(agent.position); - int2 texPos = int2(uv * textureWidth); - - float height = -Heightmap[texPos];//.SampleLevel(samplerHeightmap, uv, 0); - float3 normal = GetNormal(texPos); - float slope = acos(dot(normal, float3(0,0,1))) / UNITY_HALF_PI; + const float2 uv = posToUv(agent.position); + const int2 texPos = int2(uv * textureSize); + const int2 gravTexPos = int2(uv * gravityTextureSize); + const float3 normal = GetNormal(gravTexPos); + const float slope = acos(dot(normal, float3(0,0,1))) / UNITY_HALF_PI; // Move Agents based on direction and speed - float2 direction = float2(cos(agent.angle), sin(agent.angle)); - agent.position += direction * evaluate(settings.Speed, height, slope) * deltaTime; - - float r = random(id.x + randomOffset); + const float2 direction = float2(cos(agent.angle), sin(agent.angle)); + agent.position += direction * evaluate(settings.Speed, slope) * deltaTime; + + const float r = random(id.x + randomOffset); // Clamp position within bounds and randomize direction if(dot(agent.position, agent.position) > zoneRadius * zoneRadius) { - agent.position = normalize(agent.position) * zoneRadius; - //agent.position = float2(0,0); - agent.angle = r * UNITY_TWO_PI; - } - - if(isnan(agent.position.x)) - { + //agent.position = normalize(agent.position) * zoneRadius; agent.position = float2(0,0); agent.angle = r * UNITY_TWO_PI; } - float spread = evaluate(settings.SensorSpread, height, slope); - float distance = evaluate(settings.SensorDistance, height, slope); + if(isnan(agent.position.x) || slope > .8) + { + agent.position = spawnPositions[id.x%spawnPositionCount]; + agent.angle = r * UNITY_TWO_PI; + } + + const float spread = evaluate(settings.SensorSpread, slope); + const float distance = evaluate(settings.SensorDistance, slope); // Acquire sensory data - float forwardSensor = sense(texPos, agent.angle, 0, spread, distance); + const float forwardSensor = sense(texPos, agent.angle, 0, spread, distance); float leftSensor = sense(texPos, agent.angle, -1, spread, distance); float rightSensor = sense(texPos, agent.angle, 1, spread, distance); // Determine the range of the sensor inputs - float minSensor = min(min(leftSensor, rightSensor), forwardSensor); - float maxSensor = max(max(max(leftSensor, rightSensor), forwardSensor), .01); - float range = min(maxSensor - minSensor, .01); + const float minSensor = min(min(leftSensor, rightSensor), forwardSensor); + const float maxSensor = max(max(max(leftSensor, rightSensor), forwardSensor), .01); + const float range = min(maxSensor - minSensor, .01); // Normalize sensor inputs //forwardSensor = unlerp(forwardSensor, minSensor, maxSensor); @@ -198,44 +197,43 @@ void UpdateAgents (uint3 id : SV_DispatchThreadID) rightSensor = unlerp(rightSensor, minSensor, maxSensor); // Which direction it wants to turn in - float desire = leftSensor - rightSensor; + const float desire = leftSensor - rightSensor; // Strength of its directional preference - float motivation = pow(range / maxSensor, 1 / evaluate(settings.Drive, height, slope)); + const float motivation = pow(range / maxSensor, 1 / max(evaluate(settings.Drive, slope),.001)); - agent.angle += evaluate(settings.TurnSpeed, height, slope) * lerp(r * 2 - 1, desire, motivation) * deltaTime; + agent.angle += evaluate(settings.TurnSpeed, slope) * lerp(r * 2 - 1, desire, motivation) * deltaTime; agents[id.x] = agent; - accumulation[texPos] += evaluate(settings.Deposition, height, slope) * deltaTime; + accumulation[texPos] += evaluate(settings.Deposition, slope) * deltaTime; } [numthreads(8,8,1)] void Diffuse (uint3 id : SV_DispatchThreadID) { - if(id.x >= textureWidth || id.y >= textureWidth) return; + if(id.x >= textureSize || id.y >= textureSize) return; - float previous = accumulation[id.xy]; + const float previous = accumulation[id.xy]; - SlimeSettings settings = parameters[0]; - float height = -Heightmap[id.xy]; - float3 normal = GetNormal(id.xy); - float slope = acos(dot(normal, float3(0,0,1))) / UNITY_HALF_PI; + const SlimeSettings settings = parameters[0]; + const float3 normal = GetNormal(id.xy * (gravityTextureSize / textureSize)); + const float slope = acos(dot(normal, float3(0,0,1))) / UNITY_HALF_PI; float sum = 0; for(int x = -1; x <= 1; x++) { for(int y=-1; y <= 1; y++) { - int2 sample = int2(id.x+x, id.y+y); - if(sample.x >= 0 && sample.x < textureWidth && sample.y >= 0 && sample.y < textureWidth) + const int2 sample = int2(id.x+x, id.y+y); + if(sample.x >= 0 && sample.x < textureSize && sample.y >= 0 && sample.y < textureSize) { sum += accumulation[sample]; } } } - float average = sum / 9; + const float average = sum / 9; - diffusedAccumulation[id.xy] = lerp(previous, average, saturate(evaluate(settings.Diffusion, height, slope) * deltaTime)) * saturate(1-evaluate(settings.Decay, height, slope) * deltaTime); + diffusedAccumulation[id.xy] = lerp(previous, average, saturate(evaluate(settings.Diffusion, slope) * deltaTime)) * saturate(1-evaluate(settings.Decay, slope) * deltaTime); } // Buffer containing the leading position of the agent particle @@ -263,35 +261,34 @@ float fade(float t) { return t*t*t*(t*(6.*t-15.)+10.); } float grad(float hash, float p) { - int i = int(1e4*hash); - return (i & 1) == 0 ? p : -p; + return (int(1e4*hash) & 1) == 0 ? p : -p; } float perlinNoise1D(float p) { - float pi = floor(p), pf = p - pi, w = fade(pf); - return lerp(grad(hashp(pi), pf), grad(hashp(pi + 1.0), pf - 1.0), w) * 2.0; + const float pi = floor(p), pf = p - pi; + return lerp(grad(hashp(pi), pf), grad(hashp(pi + 1.0), pf - 1.0), fade(pf)) * 2.0; } [numthreads(NUM_THREAD_X,1,1)] void CreateAgentParticles (uint3 id : SV_DispatchThreadID) { - Agent agent = agents[id.x]; + const Agent agent = agents[id.x]; - float2 uv = posToUv(agent.position); - int2 texPos = int2(uv * textureWidth); - - SlimeSettings settings = parameters[0]; - float height = -Heightmap[texPos]; - float3 normal = GetNormal(texPos); - float slope = acos(dot(normal, float3(0,0,1))) / UNITY_HALF_PI; - - float sequence = (float)id.x/particleCount; + const float2 uv = posToUv(agent.position); + const int2 gravTexPos = int2(uv * gravityTextureSize); + const float3 normal = GetNormal(gravTexPos); + const float height = -Heightmap[gravTexPos]; + const float slope = acos(dot(normal, float3(0,0,1))) / UNITY_HALF_PI; + + const SlimeSettings settings = parameters[0]; + + const float sequence = (float)id.x/particleCount; //float height = -Heightmap.SampleLevel(samplerHeightmap, posToUv(agent.position), 0); - float particleHeight = height + pow(random(id.x)-.5, 3) * heightRange + heightOffset; + const float particleHeight = height + pow(random(id.x)-.5, 3) * heightRange + heightOffset; Particle particle = particles[id.x]; - float damping = evaluate(settings.TrailDamping, height, pow(slope, .25)); - float3 targetPosition = float3( + const float damping = evaluate(settings.TrailDamping, slope); + const float3 targetPosition = float3( agent.position.x + perlinNoise1D(id.x*3 + time + sequence) * noiseAmplitude, particleHeight + perlinNoise1D(id.x*3 + 1 + time + sequence) * noiseAmplitude, agent.position.y + perlinNoise1D(id.x*3 + 2 + time + sequence) * noiseAmplitude); @@ -303,11 +300,11 @@ void CreateAgentParticles (uint3 id : SV_DispatchThreadID) } else { - particle.end = lerp(particle.end, particle.middle, damping/4); - particle.middle = lerp(particle.middle, particle.start, damping/2); + particle.end = lerp(particle.end, particle.middle, damping); + particle.middle = lerp(particle.middle, particle.start, damping); particle.start = lerp(particle.start, targetPosition, damping); } - particle.intensity = evaluate(settings.Intensity, height, slope); + particle.intensity = evaluate(settings.Intensity, slope); particles[id.x] = particle; } @@ -315,7 +312,7 @@ void CreateAgentParticles (uint3 id : SV_DispatchThreadID) inline float3 QuadraticSplinePosition(float3 p0, float3 p1, float3 p2, float t) { //return lerp(lerp(p0,p1,t),lerp(p1,p2,t),t); - float oneMinusT = 1 - t; + const float oneMinusT = 1 - t; return oneMinusT * oneMinusT * p0 + 2 * oneMinusT * t * p1 + @@ -343,25 +340,25 @@ void CreateParticleGeometry (uint3 id : SV_DispatchThreadID) { Vertex v0 = GetDefaultVertex(); Vertex v1 = GetDefaultVertex(); - - int idx = id.x; - int particleIndex = id.x / trailPoints; - int trailIndex = id.x % trailPoints; + + const int idx = id.x; + const int particleIndex = id.x / trailPoints; + const int trailIndex = id.x % trailPoints; float trailLerp = (float) trailIndex / trailPoints; - Particle particle = particles[particleIndex]; + const Particle particle = particles[particleIndex]; //float3 pos = float3(particle, 0, trailIndex); //float3 dir = float3(0,0,1); //float3 pos = lerp(particle.start, particle.end, trailLerp); //float3 dir = normalize(particle.end-particle.start); - float3 pos = QuadraticSplinePosition(particle.start, particle.middle, particle.end, trailLerp); - float3 dir = QuadraticSplineDerivative(particle.start, particle.middle, particle.end, trailLerp); + const float3 pos = QuadraticSplinePosition(particle.start, particle.middle, particle.end, trailLerp); + const float3 dir = QuadraticSplineDerivative(particle.start, particle.middle, particle.end, trailLerp); - float width = lerp(trailStartWidth, trailEndWidth, trailLerp); - - float3 toCameraDir = calcToCameraDir(pos); - float3 right = normalize(cross(dir, toCameraDir)) * width * 0.5f; + const float width = lerp(trailStartWidth, trailEndWidth, trailLerp); + + const float3 toCameraDir = calcToCameraDir(pos); + const float3 right = normalize(cross(dir, toCameraDir)) * width * 0.5f / particle.intensity; v0.pos = pos - right; v0.uv = float2(trailLerp, 0); @@ -371,7 +368,7 @@ void CreateParticleGeometry (uint3 id : SV_DispatchThreadID) v1.uv = float2(trailLerp, 1); v1.intensity = particle.intensity; - uint vId = idx * 2; + const uint vId = idx * 2; vertexBuffer[vId] = v0; vertexBuffer[vId+1] = v1; } \ No newline at end of file diff --git a/Assets/Shaders/Compute/Slime/Slime.cs b/Assets/Shaders/Compute/Slime/Slime.cs index 989fe946f..c3d266818 100644 --- a/Assets/Shaders/Compute/Slime/Slime.cs +++ b/Assets/Shaders/Compute/Slime/Slime.cs @@ -3,6 +3,7 @@ using System.Collections; using System.Collections.Generic; using System.Runtime.InteropServices; using MessagePack; +using Unity.Mathematics; using UnityEngine; using UnityEngine.Experimental.Rendering; using UnityEngine.Rendering; @@ -40,6 +41,7 @@ public class Slime : MonoBehaviour public float TrailStartWidth = .5f; public float TrailEndWidth = .1f; public float TrailDamping = .05f; + public Vector2[] SpawnPositions; private const int GROUP_SIZE = 64; private int _updateAgentsKernel; @@ -47,6 +49,7 @@ public class Slime : MonoBehaviour private int _particleKernel; private int _geometryKernel; private string _settingsHash; + private int _spawnBufferSize = 1; private int IndexBufferSize => ParticleCount * 6 * (TrailPoints - 1); @@ -58,6 +61,7 @@ public class Slime : MonoBehaviour private RenderTexture _accumulationTexture; private RenderTexture _previousAccumulationTexture; + private ComputeBuffer _spawnBuffer; private ComputeBuffer _parameterBuffer; private ComputeBuffer _particlesBuffer; @@ -117,6 +121,8 @@ public class Slime : MonoBehaviour _agentsBuffer.SetData(agents); _parameterBuffer = new ComputeBuffer(1, Marshal.SizeOf(typeof(SlimeSettings))); + _spawnBuffer = new ComputeBuffer(1, Marshal.SizeOf(typeof(Vector2))); + _spawnBuffer.SetData(new [] {Vector2.zero}); _particlesBuffer = new ComputeBuffer(ParticleCount, Marshal.SizeOf(typeof(Particle))); @@ -158,14 +164,28 @@ public class Slime : MonoBehaviour void Update() { UpdateSettings(); + + if (SpawnPositions != null && SpawnPositions.Length > 0) + { + if (SpawnPositions.Length != _spawnBufferSize) + { + _spawnBuffer.Release(); + _spawnBuffer = new ComputeBuffer(SpawnPositions.Length, Marshal.SizeOf(typeof(Vector2))); + _spawnBufferSize = SpawnPositions.Length; + } + _spawnBuffer.SetData(SpawnPositions); + } SlimeCompute.SetInt("randomOffset", Random.Range(0,65536)); - SlimeCompute.SetInt("textureWidth", TextureSize); + SlimeCompute.SetInt("textureSize", TextureSize); + SlimeCompute.SetInt("gravityTextureSize", GravityTexture.width); SlimeCompute.SetInt("numAgents", AgentCount); SlimeCompute.SetFloat("zoneRadius", ZoneRadius); SlimeCompute.SetFloat("deltaTime", Time.deltaTime); + SlimeCompute.SetInt("spawnPositionCount", _spawnBufferSize); SlimeCompute.SetBuffer(_updateAgentsKernel, "agents", _agentsBuffer); + SlimeCompute.SetBuffer(_updateAgentsKernel, "spawnPositions", _spawnBuffer); SlimeCompute.SetBuffer(_updateAgentsKernel, "parameters", _parameterBuffer); SlimeCompute.SetTexture(_updateAgentsKernel, "accumulation", _accumulationTexture); SlimeCompute.SetTexture(_updateAgentsKernel, "Heightmap", GravityTexture); @@ -209,7 +229,7 @@ public class Slime : MonoBehaviour ParticleMaterial.SetBuffer("_VertexBuffer", _vertexBuffer); Graphics.DrawProcedural( ParticleMaterial, - new Bounds(Vector3.zero, ZoneRadius * Vector3.one), + new Bounds(Vector3.zero, ZoneRadius * 2 * Vector3.one), MeshTopology.Triangles, IndexBufferSize, 1, @@ -245,18 +265,14 @@ public struct SlimeSettings [Serializable, MessagePackObject(keyAsPropertyName:true)] public struct SlimeParameter { - public float HeightSlopeLerp; - public float HeightThreshold; - public float HeightBlend; public float SlopeThreshold; public float SlopeBlend; public float HighValue; public float LowValue; + public float Exponent; - public float Evaluate(float height, float slope) + public float Evaluate(float slope) { - var heightValue = lerp(LowValue, HighValue, smoothstep(HeightThreshold - HeightBlend, HeightThreshold + HeightBlend, height)); - var slopeValue = lerp(LowValue, HighValue, smoothstep(SlopeThreshold - SlopeBlend, SlopeThreshold + SlopeBlend, slope)); - return lerp(heightValue, slopeValue, HeightSlopeLerp); + return lerp(LowValue, HighValue, pow(smoothstep(SlopeThreshold - SlopeBlend, SlopeThreshold + SlopeBlend, slope), Exponent)); } } diff --git a/Assets/Shaders/Compute/Slime/SlimeTestSpawner.cs b/Assets/Shaders/Compute/Slime/SlimeTestSpawner.cs new file mode 100644 index 000000000..238b12fb8 --- /dev/null +++ b/Assets/Shaders/Compute/Slime/SlimeTestSpawner.cs @@ -0,0 +1,19 @@ +using Unity.Mathematics; +using UnityEngine; +using static Unity.Mathematics.math; + +public class SlimeTestSpawner : MonoBehaviour +{ + public Slime Target; + public string SpawnerTag; + + private void Update() + { + var objects = GameObject.FindGameObjectsWithTag(SpawnerTag); + if (Target.SpawnPositions == null || Target.SpawnPositions.Length != objects.Length) Target.SpawnPositions = new Vector2[objects.Length]; + for (var i = 0; i < objects.Length; i++) + { + Target.SpawnPositions[i] = objects[i].transform.position.Flatland(); + } + } +} \ No newline at end of file diff --git a/Assets/Shaders/Compute/Slime/SlimeTestSpawner.cs.meta b/Assets/Shaders/Compute/Slime/SlimeTestSpawner.cs.meta new file mode 100644 index 000000000..d466b6ec6 --- /dev/null +++ b/Assets/Shaders/Compute/Slime/SlimeTestSpawner.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 4246efc88a944e65a278d651eabd8daa +timeCreated: 1616906010 \ No newline at end of file diff --git a/Assets/Shaders/Compute/Slime/SlimeTrails.mat b/Assets/Shaders/Compute/Slime/SlimeTrails.mat index d981acff5..95ff4d754 100644 --- a/Assets/Shaders/Compute/Slime/SlimeTrails.mat +++ b/Assets/Shaders/Compute/Slime/SlimeTrails.mat @@ -63,12 +63,12 @@ Material: - _GlossMapScale: 1 - _Glossiness: 0.5 - _GlossyReflections: 1 - - _Intensity: 10 + - _Intensity: 30 - _Metallic: 0 - _Mode: 0 - _OcclusionStrength: 1 - _Parallax: 0.02 - - _Roundedness: 0.1 + - _Roundedness: 0.5 - _SmoothnessTextureChannel: 0 - _SpecularHighlights: 1 - _SrcBlend: 1 @@ -77,6 +77,6 @@ Material: m_Colors: - _Color: {r: 1, g: 1, b: 1, a: 1} - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - - _EndColor: {r: 0.90588236, g: 0.089682385, b: 0.5242822, a: 1} - - _StartColor: {r: 0.9339623, g: 0.31624126, b: 0.13656995, a: 1} + - _EndColor: {r: 0.90588236, g: 0.42864442, b: 0.090196095, a: 1} + - _StartColor: {r: 0.93333334, g: 0.13725486, b: 0.63667345, a: 1} m_BuildTextureStacks: [] diff --git a/Assets/Shaders/Raymarching/VolumeRender.shader b/Assets/Shaders/Raymarching/VolumeRender.shader index 33271124d..9e868a37b 100644 --- a/Assets/Shaders/Raymarching/VolumeRender.shader +++ b/Assets/Shaders/Raymarching/VolumeRender.shader @@ -14,7 +14,6 @@ _GridFloorOffset("Floor Offset", float) = 1 _GridFloorBlend("Floor Blend", float) = 1 _GridPatchBlend("Patch Blend", float) = 1 - _AlphaFloor("Alpha Floor", float) = .01 _Gamma("Gamma", float) = .5 _TintExponent("Tint Exponent", float) = .5 _DepthCeiling("Depth Ceiling", float) = 1000 @@ -39,7 +38,7 @@ #include "UnityCG.cginc" // the number of volume samples to take - #define SAMPLE_COUNT 256 + #define SAMPLE_COUNT 128 // spacing between samples //#define SAMPLE_PERIOD 16 @@ -65,7 +64,6 @@ _GridFloorOffset, _GridFloorBlend, _GridPatchBlend, - _AlphaFloor, _Gamma, _TintExponent, _DepthCeiling, @@ -112,22 +110,23 @@ float2 uv = -(pos.xz-_GridTransform.xy)/_GridTransform.z + float2(.5,.5); float surface = tex2Dlod(_Surface, half4(uv, 0, 0)).r; - float4 lightTint = tex2Dlod(_TintTexture, half4(uv, 0, 0)); + float dist = pos.y + surface - _GridFloorOffset; + float4 lightTint = tex2Dlod(_TintTexture, half4(uv, 0, dist/30)); float fillDensity = saturate(-pos.y * _GridFillDensity); - if(pos.y + surface - _GridFloorOffset < _SafetyDistance) + if(dist < _SafetyDistance) { float patch = tex2Dlod(_Patch, half4(uv, 0, 0)).r; float displacement = tex2Dlod(_Displacement, half4(uv, 0, 0)).r; //float noise = tex3D(_NoiseTex, pos*_NoiseFrequency); - float noise = pow(triNoise3d(pos*_NoiseFrequency),2);// + triNoise3d(pos*_NoiseFrequency*2, _NoiseSpeed * 2) * .5; - pos.y += noise * _NoiseStrength; + float noise = pow(triNoise3d(pos*_NoiseFrequency),2)* _NoiseStrength;// + triNoise3d(pos*_NoiseFrequency*2, _NoiseSpeed * 2) * .5; + pos.y += noise; float patchDensity = saturate((-abs(pos.y+displacement)+patch)/_GridPatchBlend)*_GridPatchDensity; float floorDist = -pos.y-surface+_GridFloorOffset; float floorDensity = floorDist/_GridFloorBlend*_GridFloorDensity; float fogDensity = patchDensity + max(0,floorDensity); - float alpha = min(max(max(fogDensity, 0) + fillDensity, _AlphaFloor), .99); + float alpha = min(max(fogDensity, 0) + fillDensity, .99); float albedo = pow(1-alpha, _TintExponent) * smoothstep(0,-250,pos.y); return float4((albedo*_Tint*lightTint).rgb, alpha); } diff --git a/CultBase.csproj b/CultBase.csproj new file mode 100644 index 000000000..a1e970765 --- /dev/null +++ b/CultBase.csproj @@ -0,0 +1,687 @@ + + + + latest + <_TargetFrameworkDirectories>non_empty_path_generated_by_unity.rider.package + <_FullFrameworkReferenceAssemblyPaths>non_empty_path_generated_by_unity.rider.package + true + + + + Debug + AnyCPU + 10.0.20506 + 2.0 + + {c797bfc6-b62b-597d-fa42-6cb5ebe3d2a8} + {E097FAD1-6243-4DAD-9C02-E9B9EFC3FFC1};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + Library + Properties + CultBase + v4.7.1 + 512 + . + + + true + full + false + Temp\Bin\Debug\ + DEBUG;TRACE;UNITY_2020_2_6;UNITY_2020_2;UNITY_2020;UNITY_5_3_OR_NEWER;UNITY_5_4_OR_NEWER;UNITY_5_5_OR_NEWER;UNITY_5_6_OR_NEWER;UNITY_2017_1_OR_NEWER;UNITY_2017_2_OR_NEWER;UNITY_2017_3_OR_NEWER;UNITY_2017_4_OR_NEWER;UNITY_2018_1_OR_NEWER;UNITY_2018_2_OR_NEWER;UNITY_2018_3_OR_NEWER;UNITY_2018_4_OR_NEWER;UNITY_2019_1_OR_NEWER;UNITY_2019_2_OR_NEWER;UNITY_2019_3_OR_NEWER;UNITY_2019_4_OR_NEWER;UNITY_2020_1_OR_NEWER;UNITY_2020_2_OR_NEWER;PLATFORM_ARCH_64;UNITY_64;UNITY_INCLUDE_TESTS;USE_SEARCH_ENGINE_API;SCENE_TEMPLATE_MODULE;ENABLE_AR;ENABLE_AUDIO;ENABLE_CACHING;ENABLE_CLOTH;ENABLE_EVENT_QUEUE;ENABLE_MICROPHONE;ENABLE_MULTIPLE_DISPLAYS;ENABLE_PHYSICS;ENABLE_TEXTURE_STREAMING;ENABLE_VIRTUALTEXTURING;ENABLE_UNET;ENABLE_LZMA;ENABLE_UNITYEVENTS;ENABLE_VR;ENABLE_WEBCAM;ENABLE_UNITYWEBREQUEST;ENABLE_WWW;ENABLE_CLOUD_SERVICES;ENABLE_CLOUD_SERVICES_COLLAB;ENABLE_CLOUD_SERVICES_COLLAB_SOFTLOCKS;ENABLE_CLOUD_SERVICES_ADS;ENABLE_CLOUD_SERVICES_USE_WEBREQUEST;ENABLE_CLOUD_SERVICES_CRASH_REPORTING;ENABLE_CLOUD_SERVICES_PURCHASING;ENABLE_CLOUD_SERVICES_ANALYTICS;ENABLE_CLOUD_SERVICES_UNET;ENABLE_CLOUD_SERVICES_BUILD;ENABLE_CLOUD_LICENSE;ENABLE_EDITOR_HUB_LICENSE;ENABLE_WEBSOCKET_CLIENT;ENABLE_DIRECTOR_AUDIO;ENABLE_DIRECTOR_TEXTURE;ENABLE_MANAGED_JOBS;ENABLE_MANAGED_TRANSFORM_JOBS;ENABLE_MANAGED_ANIMATION_JOBS;ENABLE_MANAGED_AUDIO_JOBS;INCLUDE_DYNAMIC_GI;ENABLE_MONO_BDWGC;ENABLE_SCRIPTING_GC_WBARRIERS;PLATFORM_SUPPORTS_MONO;RENDER_SOFTWARE_CURSOR;ENABLE_VIDEO;PLATFORM_STANDALONE;PLATFORM_STANDALONE_WIN;UNITY_STANDALONE_WIN;UNITY_STANDALONE;ENABLE_RUNTIME_GI;ENABLE_MOVIES;ENABLE_NETWORK;ENABLE_CRUNCH_TEXTURE_COMPRESSION;ENABLE_OUT_OF_PROCESS_CRASH_HANDLER;ENABLE_CLUSTER_SYNC;ENABLE_CLUSTERINPUT;PLATFORM_UPDATES_TIME_OUTSIDE_OF_PLAYER_LOOP;GFXDEVICE_WAITFOREVENT_MESSAGEPUMP;ENABLE_WEBSOCKET_HOST;ENABLE_MONO;NET_4_6;ENABLE_PROFILER;UNITY_ASSERTIONS;UNITY_EDITOR;UNITY_EDITOR_64;UNITY_EDITOR_WIN;ENABLE_UNITY_COLLECTIONS_CHECKS;ENABLE_BURST_AOT;UNITY_TEAM_LICENSE;ENABLE_CUSTOM_RENDER_TEXTURE;ENABLE_DIRECTOR;ENABLE_LOCALIZATION;ENABLE_SPRITES;ENABLE_TERRAIN;ENABLE_TILEMAP;ENABLE_TIMELINE;ENABLE_INPUT_SYSTEM;UNITY_POST_PROCESSING_STACK_V2;TEST_MSAGL;REPORTING;PERSISTENCE;SUBSTANCE_PLUGIN_ENABLED;CSHARP_7_OR_LATER;CSHARP_7_3_OR_NEWER + prompt + 4 + + False + False + + + pdbonly + true + Temp\bin\Release\ + prompt + 4 + + False + False + + + true + true + false + false + false + + + + + + + + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.AIModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.ARModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.AccessibilityModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.AndroidJNIModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.AnimationModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.AssetBundleModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.AudioModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.ClothModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.ClusterInputModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.ClusterRendererModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.CoreModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.CrashReportingModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.DSPGraphModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.DirectorModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.GIModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.GameCenterModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.GridModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.HotReloadModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.IMGUIModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.ImageConversionModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.InputModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.InputLegacyModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.JSONSerializeModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.LocalizationModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.ParticleSystemModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.PerformanceReportingModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.PhysicsModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.Physics2DModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.ProfilerModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.RuntimeInitializeOnLoadManagerInitializerModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.ScreenCaptureModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.SharedInternalsModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.SpriteMaskModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.SpriteShapeModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.StreamingModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.SubstanceModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.SubsystemsModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.TLSModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.TerrainModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.TerrainPhysicsModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.TextCoreModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.TextRenderingModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.TilemapModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.UIModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.UIElementsModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.UIElementsNativeModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.UNETModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.UmbraModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityAnalyticsModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityConnectModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityCurlModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityTestProtocolModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityWebRequestModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityWebRequestAssetBundleModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityWebRequestAudioModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityWebRequestTextureModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityWebRequestWWWModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.VFXModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.VRModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.VehiclesModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.VideoModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.VirtualTexturingModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.WindModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.XRModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEditor.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEditor.CoreModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEditor.GraphViewModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEditor.PackageManagerUIModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEditor.SceneTemplateModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEditor.UIElementsModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEditor.UIElementsSamplesModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEditor.UIServiceModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEditor.UnityConnectModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEditor.Graphs.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/PlaybackEngines/WindowsStandaloneSupport/UnityEditor.WindowsStandalone.Extensions.dll + + + E:/Projects/Aetheria-Economy/Assets/Plugins/System.Threading.Tasks.Extensions.dll + + + E:/Projects/Aetheria-Economy/Assets/Plugins/Remotion.Linq.dll + + + E:/Projects/Aetheria-Economy/Assets/Plugins/System.Memory.dll + + + E:/Projects/Aetheria-Economy/Assets/Plugins/Microsoft.Extensions.Logging.Abstractions.dll + + + E:/Projects/Aetheria-Economy/Library/PackageCache/com.unity.burst@1.4.3/Unity.Burst.Unsafe.dll + + + E:/Projects/Aetheria-Economy/Assets/Plugins/System.Buffers.dll + + + E:/Projects/Aetheria-Economy/Assets/Allegorithmic/Plugins/Substance.Game.dll + + + E:/Projects/Aetheria-Economy/Assets/Plugins/Newtonsoft.Json.dll + + + E:/Projects/Aetheria-Economy/Assets/Plugins/QuickGraph.dll + + + E:/Projects/Aetheria-Economy/Assets/Allegorithmic/Plugins/Substance/Substance Source/Editor/SourceUnityLib.dll + + + E:/Projects/Aetheria-Economy/Assets/Plugins/System.Runtime.CompilerServices.Unsafe.dll + + + E:/Projects/Aetheria-Economy/Assets/Allegorithmic/Plugins/Substance/Substance Engine/Editor/Substance.Editor.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/mscorlib.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.Core.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.Runtime.Serialization.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.Xml.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.Xml.Linq.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.Numerics.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.Numerics.Vectors.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.Net.Http.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Microsoft.CSharp.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.Data.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/Microsoft.Win32.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/netstandard.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.AppContext.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Collections.Concurrent.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Collections.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Collections.NonGeneric.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Collections.Specialized.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ComponentModel.Annotations.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ComponentModel.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ComponentModel.EventBasedAsync.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ComponentModel.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ComponentModel.TypeConverter.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Console.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Data.Common.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Diagnostics.Contracts.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Diagnostics.Debug.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Diagnostics.FileVersionInfo.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Diagnostics.Process.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Diagnostics.StackTrace.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Diagnostics.TextWriterTraceListener.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Diagnostics.Tools.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Diagnostics.TraceSource.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Drawing.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Dynamic.Runtime.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Globalization.Calendars.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Globalization.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Globalization.Extensions.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.Compression.ZipFile.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.FileSystem.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.FileSystem.DriveInfo.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.FileSystem.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.FileSystem.Watcher.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.IsolatedStorage.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.MemoryMappedFiles.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.Pipes.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.UnmanagedMemoryStream.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Linq.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Linq.Expressions.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Linq.Parallel.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Linq.Queryable.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.Http.Rtc.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.NameResolution.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.NetworkInformation.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.Ping.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.Requests.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.Security.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.Sockets.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.WebHeaderCollection.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.WebSockets.Client.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.WebSockets.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ObjectModel.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Reflection.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Reflection.Emit.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Reflection.Emit.ILGeneration.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Reflection.Emit.Lightweight.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Reflection.Extensions.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Reflection.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Resources.Reader.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Resources.ResourceManager.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Resources.Writer.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.CompilerServices.VisualC.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.Extensions.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.Handles.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.InteropServices.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.InteropServices.RuntimeInformation.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.InteropServices.WindowsRuntime.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.Numerics.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.Serialization.Formatters.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.Serialization.Json.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.Serialization.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.Serialization.Xml.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Security.Claims.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Security.Cryptography.Algorithms.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Security.Cryptography.Csp.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Security.Cryptography.Encoding.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Security.Cryptography.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Security.Cryptography.X509Certificates.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Security.Principal.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Security.SecureString.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ServiceModel.Duplex.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ServiceModel.Http.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ServiceModel.NetTcp.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ServiceModel.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ServiceModel.Security.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Text.Encoding.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Text.Encoding.Extensions.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Text.RegularExpressions.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Threading.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Threading.Overlapped.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Threading.Tasks.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Threading.Tasks.Parallel.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Threading.Thread.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Threading.ThreadPool.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Threading.Timer.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ValueTuple.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Xml.ReaderWriter.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Xml.XDocument.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Xml.XmlDocument.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Xml.XmlSerializer.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Xml.XPath.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Xml.XPath.XDocument.dll + + + E:/Projects/Aetheria-Economy/Library/ScriptAssemblies/UnityEditor.UI.dll + + + E:/Projects/Aetheria-Economy/Library/ScriptAssemblies/UnityEngine.UI.dll + + + + + + + diff --git a/CultCache.Editor.csproj b/CultCache.Editor.csproj new file mode 100644 index 000000000..399e9d7e3 --- /dev/null +++ b/CultCache.Editor.csproj @@ -0,0 +1,706 @@ + + + + latest + <_TargetFrameworkDirectories>non_empty_path_generated_by_unity.rider.package + <_FullFrameworkReferenceAssemblyPaths>non_empty_path_generated_by_unity.rider.package + true + + + + Debug + AnyCPU + 10.0.20506 + 2.0 + + {f4de02c3-d8da-377d-9e91-0cdbed66dffc} + {E097FAD1-6243-4DAD-9C02-E9B9EFC3FFC1};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + Library + Properties + CultCache.Editor + v4.7.1 + 512 + . + + + true + full + false + Temp\Bin\Debug\ + DEBUG;TRACE;UNITY_2020_2_6;UNITY_2020_2;UNITY_2020;UNITY_5_3_OR_NEWER;UNITY_5_4_OR_NEWER;UNITY_5_5_OR_NEWER;UNITY_5_6_OR_NEWER;UNITY_2017_1_OR_NEWER;UNITY_2017_2_OR_NEWER;UNITY_2017_3_OR_NEWER;UNITY_2017_4_OR_NEWER;UNITY_2018_1_OR_NEWER;UNITY_2018_2_OR_NEWER;UNITY_2018_3_OR_NEWER;UNITY_2018_4_OR_NEWER;UNITY_2019_1_OR_NEWER;UNITY_2019_2_OR_NEWER;UNITY_2019_3_OR_NEWER;UNITY_2019_4_OR_NEWER;UNITY_2020_1_OR_NEWER;UNITY_2020_2_OR_NEWER;PLATFORM_ARCH_64;UNITY_64;UNITY_INCLUDE_TESTS;USE_SEARCH_ENGINE_API;SCENE_TEMPLATE_MODULE;ENABLE_AR;ENABLE_AUDIO;ENABLE_CACHING;ENABLE_CLOTH;ENABLE_EVENT_QUEUE;ENABLE_MICROPHONE;ENABLE_MULTIPLE_DISPLAYS;ENABLE_PHYSICS;ENABLE_TEXTURE_STREAMING;ENABLE_VIRTUALTEXTURING;ENABLE_UNET;ENABLE_LZMA;ENABLE_UNITYEVENTS;ENABLE_VR;ENABLE_WEBCAM;ENABLE_UNITYWEBREQUEST;ENABLE_WWW;ENABLE_CLOUD_SERVICES;ENABLE_CLOUD_SERVICES_COLLAB;ENABLE_CLOUD_SERVICES_COLLAB_SOFTLOCKS;ENABLE_CLOUD_SERVICES_ADS;ENABLE_CLOUD_SERVICES_USE_WEBREQUEST;ENABLE_CLOUD_SERVICES_CRASH_REPORTING;ENABLE_CLOUD_SERVICES_PURCHASING;ENABLE_CLOUD_SERVICES_ANALYTICS;ENABLE_CLOUD_SERVICES_UNET;ENABLE_CLOUD_SERVICES_BUILD;ENABLE_CLOUD_LICENSE;ENABLE_EDITOR_HUB_LICENSE;ENABLE_WEBSOCKET_CLIENT;ENABLE_DIRECTOR_AUDIO;ENABLE_DIRECTOR_TEXTURE;ENABLE_MANAGED_JOBS;ENABLE_MANAGED_TRANSFORM_JOBS;ENABLE_MANAGED_ANIMATION_JOBS;ENABLE_MANAGED_AUDIO_JOBS;INCLUDE_DYNAMIC_GI;ENABLE_MONO_BDWGC;ENABLE_SCRIPTING_GC_WBARRIERS;PLATFORM_SUPPORTS_MONO;RENDER_SOFTWARE_CURSOR;ENABLE_VIDEO;PLATFORM_STANDALONE;PLATFORM_STANDALONE_WIN;UNITY_STANDALONE_WIN;UNITY_STANDALONE;ENABLE_RUNTIME_GI;ENABLE_MOVIES;ENABLE_NETWORK;ENABLE_CRUNCH_TEXTURE_COMPRESSION;ENABLE_OUT_OF_PROCESS_CRASH_HANDLER;ENABLE_CLUSTER_SYNC;ENABLE_CLUSTERINPUT;PLATFORM_UPDATES_TIME_OUTSIDE_OF_PLAYER_LOOP;GFXDEVICE_WAITFOREVENT_MESSAGEPUMP;ENABLE_WEBSOCKET_HOST;ENABLE_MONO;NET_4_6;ENABLE_PROFILER;UNITY_ASSERTIONS;UNITY_EDITOR;UNITY_EDITOR_64;UNITY_EDITOR_WIN;ENABLE_UNITY_COLLECTIONS_CHECKS;ENABLE_BURST_AOT;UNITY_TEAM_LICENSE;ENABLE_CUSTOM_RENDER_TEXTURE;ENABLE_DIRECTOR;ENABLE_LOCALIZATION;ENABLE_SPRITES;ENABLE_TERRAIN;ENABLE_TILEMAP;ENABLE_TIMELINE;ENABLE_INPUT_SYSTEM;UNITY_POST_PROCESSING_STACK_V2;TEST_MSAGL;REPORTING;PERSISTENCE;SUBSTANCE_PLUGIN_ENABLED;CSHARP_7_OR_LATER;CSHARP_7_3_OR_NEWER + prompt + 4 + + False + False + + + pdbonly + true + Temp\bin\Release\ + prompt + 4 + + False + False + + + true + true + false + false + false + + + + + + + + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.AIModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.ARModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.AccessibilityModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.AndroidJNIModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.AnimationModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.AssetBundleModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.AudioModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.ClothModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.ClusterInputModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.ClusterRendererModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.CoreModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.CrashReportingModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.DSPGraphModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.DirectorModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.GIModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.GameCenterModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.GridModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.HotReloadModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.IMGUIModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.ImageConversionModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.InputModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.InputLegacyModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.JSONSerializeModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.LocalizationModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.ParticleSystemModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.PerformanceReportingModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.PhysicsModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.Physics2DModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.ProfilerModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.RuntimeInitializeOnLoadManagerInitializerModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.ScreenCaptureModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.SharedInternalsModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.SpriteMaskModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.SpriteShapeModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.StreamingModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.SubstanceModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.SubsystemsModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.TLSModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.TerrainModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.TerrainPhysicsModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.TextCoreModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.TextRenderingModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.TilemapModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.UIModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.UIElementsModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.UIElementsNativeModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.UNETModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.UmbraModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityAnalyticsModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityConnectModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityCurlModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityTestProtocolModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityWebRequestModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityWebRequestAssetBundleModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityWebRequestAudioModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityWebRequestTextureModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityWebRequestWWWModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.VFXModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.VRModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.VehiclesModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.VideoModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.VirtualTexturingModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.WindModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.XRModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEditor.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEditor.CoreModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEditor.GraphViewModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEditor.PackageManagerUIModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEditor.SceneTemplateModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEditor.UIElementsModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEditor.UIElementsSamplesModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEditor.UIServiceModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEditor.UnityConnectModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEditor.Graphs.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/PlaybackEngines/WindowsStandaloneSupport/UnityEditor.WindowsStandalone.Extensions.dll + + + E:/Projects/Aetheria-Economy/Assets/Plugins/System.Threading.Tasks.Extensions.dll + + + E:/Projects/Aetheria-Economy/Assets/Plugins/Remotion.Linq.dll + + + E:/Projects/Aetheria-Economy/Assets/Plugins/System.Memory.dll + + + E:/Projects/Aetheria-Economy/Assets/Plugins/Microsoft.Extensions.Logging.Abstractions.dll + + + E:/Projects/Aetheria-Economy/Library/PackageCache/com.unity.burst@1.4.3/Unity.Burst.Unsafe.dll + + + E:/Projects/Aetheria-Economy/Assets/Plugins/System.Buffers.dll + + + E:/Projects/Aetheria-Economy/Assets/Allegorithmic/Plugins/Substance.Game.dll + + + E:/Projects/Aetheria-Economy/Assets/Plugins/Newtonsoft.Json.dll + + + E:/Projects/Aetheria-Economy/Assets/Plugins/QuickGraph.dll + + + E:/Projects/Aetheria-Economy/Assets/Allegorithmic/Plugins/Substance/Substance Source/Editor/SourceUnityLib.dll + + + E:/Projects/Aetheria-Economy/Assets/Plugins/System.Runtime.CompilerServices.Unsafe.dll + + + E:/Projects/Aetheria-Economy/Assets/Allegorithmic/Plugins/Substance/Substance Engine/Editor/Substance.Editor.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/mscorlib.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.Core.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.Runtime.Serialization.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.Xml.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.Xml.Linq.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.Numerics.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.Numerics.Vectors.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.Net.Http.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Microsoft.CSharp.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.Data.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/Microsoft.Win32.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/netstandard.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.AppContext.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Collections.Concurrent.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Collections.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Collections.NonGeneric.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Collections.Specialized.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ComponentModel.Annotations.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ComponentModel.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ComponentModel.EventBasedAsync.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ComponentModel.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ComponentModel.TypeConverter.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Console.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Data.Common.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Diagnostics.Contracts.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Diagnostics.Debug.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Diagnostics.FileVersionInfo.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Diagnostics.Process.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Diagnostics.StackTrace.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Diagnostics.TextWriterTraceListener.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Diagnostics.Tools.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Diagnostics.TraceSource.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Drawing.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Dynamic.Runtime.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Globalization.Calendars.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Globalization.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Globalization.Extensions.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.Compression.ZipFile.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.FileSystem.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.FileSystem.DriveInfo.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.FileSystem.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.FileSystem.Watcher.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.IsolatedStorage.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.MemoryMappedFiles.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.Pipes.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.UnmanagedMemoryStream.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Linq.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Linq.Expressions.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Linq.Parallel.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Linq.Queryable.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.Http.Rtc.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.NameResolution.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.NetworkInformation.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.Ping.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.Requests.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.Security.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.Sockets.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.WebHeaderCollection.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.WebSockets.Client.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.WebSockets.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ObjectModel.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Reflection.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Reflection.Emit.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Reflection.Emit.ILGeneration.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Reflection.Emit.Lightweight.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Reflection.Extensions.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Reflection.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Resources.Reader.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Resources.ResourceManager.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Resources.Writer.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.CompilerServices.VisualC.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.Extensions.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.Handles.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.InteropServices.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.InteropServices.RuntimeInformation.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.InteropServices.WindowsRuntime.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.Numerics.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.Serialization.Formatters.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.Serialization.Json.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.Serialization.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.Serialization.Xml.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Security.Claims.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Security.Cryptography.Algorithms.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Security.Cryptography.Csp.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Security.Cryptography.Encoding.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Security.Cryptography.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Security.Cryptography.X509Certificates.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Security.Principal.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Security.SecureString.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ServiceModel.Duplex.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ServiceModel.Http.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ServiceModel.NetTcp.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ServiceModel.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ServiceModel.Security.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Text.Encoding.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Text.Encoding.Extensions.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Text.RegularExpressions.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Threading.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Threading.Overlapped.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Threading.Tasks.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Threading.Tasks.Parallel.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Threading.Thread.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Threading.ThreadPool.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Threading.Timer.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ValueTuple.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Xml.ReaderWriter.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Xml.XDocument.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Xml.XmlDocument.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Xml.XmlSerializer.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Xml.XPath.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Xml.XPath.XDocument.dll + + + E:/Projects/Aetheria-Economy/Library/ScriptAssemblies/Unity.Mathematics.dll + + + E:/Projects/Aetheria-Economy/Library/ScriptAssemblies/UnityEditor.UI.dll + + + E:/Projects/Aetheria-Economy/Library/ScriptAssemblies/UnityEngine.UI.dll + + + + + {d790d414-9064-abda-7ad3-d72285c3faba} + Aetheria.Shared.Unity + + + {4d885cb7-1f9e-abb3-b070-7265b432ecda} + UniRx + + + {f2483ebc-e82f-a58f-b987-c7502f9ab5d9} + RethinkDB + + + {c511ef21-dc27-883d-b027-9a4b6f36bae4} + MessagePack + + + + + diff --git a/CultCache.csproj b/CultCache.csproj new file mode 100644 index 000000000..c46702f4d --- /dev/null +++ b/CultCache.csproj @@ -0,0 +1,699 @@ + + + + latest + <_TargetFrameworkDirectories>non_empty_path_generated_by_unity.rider.package + <_FullFrameworkReferenceAssemblyPaths>non_empty_path_generated_by_unity.rider.package + true + + + + Debug + AnyCPU + 10.0.20506 + 2.0 + + {897784cd-7e1c-2e63-3dac-09abc1fd660f} + {E097FAD1-6243-4DAD-9C02-E9B9EFC3FFC1};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + Library + Properties + CultCache + v4.7.1 + 512 + . + + + true + full + false + Temp\Bin\Debug\ + DEBUG;TRACE;UNITY_2020_2_6;UNITY_2020_2;UNITY_2020;UNITY_5_3_OR_NEWER;UNITY_5_4_OR_NEWER;UNITY_5_5_OR_NEWER;UNITY_5_6_OR_NEWER;UNITY_2017_1_OR_NEWER;UNITY_2017_2_OR_NEWER;UNITY_2017_3_OR_NEWER;UNITY_2017_4_OR_NEWER;UNITY_2018_1_OR_NEWER;UNITY_2018_2_OR_NEWER;UNITY_2018_3_OR_NEWER;UNITY_2018_4_OR_NEWER;UNITY_2019_1_OR_NEWER;UNITY_2019_2_OR_NEWER;UNITY_2019_3_OR_NEWER;UNITY_2019_4_OR_NEWER;UNITY_2020_1_OR_NEWER;UNITY_2020_2_OR_NEWER;PLATFORM_ARCH_64;UNITY_64;UNITY_INCLUDE_TESTS;USE_SEARCH_ENGINE_API;SCENE_TEMPLATE_MODULE;ENABLE_AR;ENABLE_AUDIO;ENABLE_CACHING;ENABLE_CLOTH;ENABLE_EVENT_QUEUE;ENABLE_MICROPHONE;ENABLE_MULTIPLE_DISPLAYS;ENABLE_PHYSICS;ENABLE_TEXTURE_STREAMING;ENABLE_VIRTUALTEXTURING;ENABLE_UNET;ENABLE_LZMA;ENABLE_UNITYEVENTS;ENABLE_VR;ENABLE_WEBCAM;ENABLE_UNITYWEBREQUEST;ENABLE_WWW;ENABLE_CLOUD_SERVICES;ENABLE_CLOUD_SERVICES_COLLAB;ENABLE_CLOUD_SERVICES_COLLAB_SOFTLOCKS;ENABLE_CLOUD_SERVICES_ADS;ENABLE_CLOUD_SERVICES_USE_WEBREQUEST;ENABLE_CLOUD_SERVICES_CRASH_REPORTING;ENABLE_CLOUD_SERVICES_PURCHASING;ENABLE_CLOUD_SERVICES_ANALYTICS;ENABLE_CLOUD_SERVICES_UNET;ENABLE_CLOUD_SERVICES_BUILD;ENABLE_CLOUD_LICENSE;ENABLE_EDITOR_HUB_LICENSE;ENABLE_WEBSOCKET_CLIENT;ENABLE_DIRECTOR_AUDIO;ENABLE_DIRECTOR_TEXTURE;ENABLE_MANAGED_JOBS;ENABLE_MANAGED_TRANSFORM_JOBS;ENABLE_MANAGED_ANIMATION_JOBS;ENABLE_MANAGED_AUDIO_JOBS;INCLUDE_DYNAMIC_GI;ENABLE_MONO_BDWGC;ENABLE_SCRIPTING_GC_WBARRIERS;PLATFORM_SUPPORTS_MONO;RENDER_SOFTWARE_CURSOR;ENABLE_VIDEO;PLATFORM_STANDALONE;PLATFORM_STANDALONE_WIN;UNITY_STANDALONE_WIN;UNITY_STANDALONE;ENABLE_RUNTIME_GI;ENABLE_MOVIES;ENABLE_NETWORK;ENABLE_CRUNCH_TEXTURE_COMPRESSION;ENABLE_OUT_OF_PROCESS_CRASH_HANDLER;ENABLE_CLUSTER_SYNC;ENABLE_CLUSTERINPUT;PLATFORM_UPDATES_TIME_OUTSIDE_OF_PLAYER_LOOP;GFXDEVICE_WAITFOREVENT_MESSAGEPUMP;ENABLE_WEBSOCKET_HOST;ENABLE_MONO;NET_4_6;ENABLE_PROFILER;UNITY_ASSERTIONS;UNITY_EDITOR;UNITY_EDITOR_64;UNITY_EDITOR_WIN;ENABLE_UNITY_COLLECTIONS_CHECKS;ENABLE_BURST_AOT;UNITY_TEAM_LICENSE;ENABLE_CUSTOM_RENDER_TEXTURE;ENABLE_DIRECTOR;ENABLE_LOCALIZATION;ENABLE_SPRITES;ENABLE_TERRAIN;ENABLE_TILEMAP;ENABLE_TIMELINE;ENABLE_INPUT_SYSTEM;UNITY_POST_PROCESSING_STACK_V2;TEST_MSAGL;REPORTING;PERSISTENCE;SUBSTANCE_PLUGIN_ENABLED;CSHARP_7_OR_LATER;CSHARP_7_3_OR_NEWER + prompt + 4 + + False + False + + + pdbonly + true + Temp\bin\Release\ + prompt + 4 + + False + False + + + true + true + false + false + false + + + + + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.AIModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.ARModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.AccessibilityModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.AndroidJNIModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.AnimationModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.AssetBundleModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.AudioModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.ClothModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.ClusterInputModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.ClusterRendererModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.CoreModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.CrashReportingModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.DSPGraphModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.DirectorModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.GIModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.GameCenterModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.GridModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.HotReloadModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.IMGUIModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.ImageConversionModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.InputModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.InputLegacyModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.JSONSerializeModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.LocalizationModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.ParticleSystemModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.PerformanceReportingModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.PhysicsModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.Physics2DModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.ProfilerModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.RuntimeInitializeOnLoadManagerInitializerModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.ScreenCaptureModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.SharedInternalsModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.SpriteMaskModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.SpriteShapeModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.StreamingModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.SubstanceModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.SubsystemsModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.TLSModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.TerrainModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.TerrainPhysicsModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.TextCoreModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.TextRenderingModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.TilemapModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.UIModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.UIElementsModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.UIElementsNativeModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.UNETModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.UmbraModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityAnalyticsModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityConnectModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityCurlModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityTestProtocolModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityWebRequestModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityWebRequestAssetBundleModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityWebRequestAudioModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityWebRequestTextureModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityWebRequestWWWModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.VFXModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.VRModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.VehiclesModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.VideoModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.VirtualTexturingModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.WindModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.XRModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEditor.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEditor.CoreModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEditor.GraphViewModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEditor.PackageManagerUIModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEditor.SceneTemplateModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEditor.UIElementsModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEditor.UIElementsSamplesModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEditor.UIServiceModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEditor.UnityConnectModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEditor.Graphs.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/PlaybackEngines/WindowsStandaloneSupport/UnityEditor.WindowsStandalone.Extensions.dll + + + E:/Projects/Aetheria-Economy/Assets/Plugins/System.Threading.Tasks.Extensions.dll + + + E:/Projects/Aetheria-Economy/Assets/Plugins/Remotion.Linq.dll + + + E:/Projects/Aetheria-Economy/Assets/Plugins/System.Memory.dll + + + E:/Projects/Aetheria-Economy/Assets/Plugins/Microsoft.Extensions.Logging.Abstractions.dll + + + E:/Projects/Aetheria-Economy/Library/PackageCache/com.unity.burst@1.4.3/Unity.Burst.Unsafe.dll + + + E:/Projects/Aetheria-Economy/Assets/Plugins/System.Buffers.dll + + + E:/Projects/Aetheria-Economy/Assets/Allegorithmic/Plugins/Substance.Game.dll + + + E:/Projects/Aetheria-Economy/Assets/Plugins/Newtonsoft.Json.dll + + + E:/Projects/Aetheria-Economy/Assets/Plugins/QuickGraph.dll + + + E:/Projects/Aetheria-Economy/Assets/Allegorithmic/Plugins/Substance/Substance Source/Editor/SourceUnityLib.dll + + + E:/Projects/Aetheria-Economy/Assets/Plugins/System.Runtime.CompilerServices.Unsafe.dll + + + E:/Projects/Aetheria-Economy/Assets/Allegorithmic/Plugins/Substance/Substance Engine/Editor/Substance.Editor.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/mscorlib.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.Core.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.Runtime.Serialization.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.Xml.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.Xml.Linq.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.Numerics.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.Numerics.Vectors.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.Net.Http.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Microsoft.CSharp.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.Data.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/Microsoft.Win32.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/netstandard.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.AppContext.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Collections.Concurrent.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Collections.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Collections.NonGeneric.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Collections.Specialized.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ComponentModel.Annotations.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ComponentModel.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ComponentModel.EventBasedAsync.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ComponentModel.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ComponentModel.TypeConverter.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Console.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Data.Common.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Diagnostics.Contracts.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Diagnostics.Debug.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Diagnostics.FileVersionInfo.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Diagnostics.Process.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Diagnostics.StackTrace.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Diagnostics.TextWriterTraceListener.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Diagnostics.Tools.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Diagnostics.TraceSource.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Drawing.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Dynamic.Runtime.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Globalization.Calendars.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Globalization.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Globalization.Extensions.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.Compression.ZipFile.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.FileSystem.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.FileSystem.DriveInfo.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.FileSystem.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.FileSystem.Watcher.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.IsolatedStorage.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.MemoryMappedFiles.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.Pipes.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.UnmanagedMemoryStream.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Linq.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Linq.Expressions.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Linq.Parallel.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Linq.Queryable.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.Http.Rtc.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.NameResolution.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.NetworkInformation.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.Ping.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.Requests.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.Security.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.Sockets.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.WebHeaderCollection.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.WebSockets.Client.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.WebSockets.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ObjectModel.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Reflection.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Reflection.Emit.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Reflection.Emit.ILGeneration.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Reflection.Emit.Lightweight.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Reflection.Extensions.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Reflection.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Resources.Reader.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Resources.ResourceManager.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Resources.Writer.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.CompilerServices.VisualC.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.Extensions.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.Handles.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.InteropServices.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.InteropServices.RuntimeInformation.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.InteropServices.WindowsRuntime.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.Numerics.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.Serialization.Formatters.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.Serialization.Json.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.Serialization.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.Serialization.Xml.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Security.Claims.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Security.Cryptography.Algorithms.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Security.Cryptography.Csp.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Security.Cryptography.Encoding.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Security.Cryptography.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Security.Cryptography.X509Certificates.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Security.Principal.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Security.SecureString.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ServiceModel.Duplex.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ServiceModel.Http.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ServiceModel.NetTcp.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ServiceModel.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ServiceModel.Security.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Text.Encoding.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Text.Encoding.Extensions.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Text.RegularExpressions.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Threading.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Threading.Overlapped.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Threading.Tasks.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Threading.Tasks.Parallel.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Threading.Thread.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Threading.ThreadPool.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Threading.Timer.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ValueTuple.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Xml.ReaderWriter.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Xml.XDocument.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Xml.XmlDocument.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Xml.XmlSerializer.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Xml.XPath.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Xml.XPath.XDocument.dll + + + E:/Projects/Aetheria-Economy/Library/ScriptAssemblies/Unity.Mathematics.dll + + + E:/Projects/Aetheria-Economy/Library/ScriptAssemblies/UnityEditor.UI.dll + + + E:/Projects/Aetheria-Economy/Library/ScriptAssemblies/UnityEngine.UI.dll + + + + + {f2483ebc-e82f-a58f-b987-c7502f9ab5d9} + RethinkDB + + + {c511ef21-dc27-883d-b027-9a4b6f36bae4} + MessagePack + + + {4d885cb7-1f9e-abb3-b070-7265b432ecda} + UniRx + + + + + diff --git a/GameData/AetherDB.msgpack b/GameData/AetherDB.msgpack index 65f10e00d..ba32c2a04 100644 --- a/GameData/AetherDB.msgpack +++ b/GameData/AetherDB.msgpack @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a9be613366ded4b1b3bd6b76ea80004c7f42638822ea26671a8d31e6245267dc +oid sha256:e9cd2cf3c25bbe167d155525434aac3df1d85b16f64d547f971da5067d76bd9a size 78023 diff --git a/GameData/PlayerSettings.msgpack b/GameData/PlayerSettings.msgpack index 0dc961547..8f1e26107 100644 --- a/GameData/PlayerSettings.msgpack +++ b/GameData/PlayerSettings.msgpack @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:9546c3e63b57691d460f94935cbca17383cd961d57206c7e2c6ed4bed928930d -size 24214 +oid sha256:3c072262436d8a143b33ed8b082f216fecb599bba9a116d2eb47c400b48768e6 +size 41743 diff --git a/RethinkDB.csproj b/RethinkDB.csproj new file mode 100644 index 000000000..1ccf35b55 --- /dev/null +++ b/RethinkDB.csproj @@ -0,0 +1,997 @@ + + + + latest + <_TargetFrameworkDirectories>non_empty_path_generated_by_unity.rider.package + <_FullFrameworkReferenceAssemblyPaths>non_empty_path_generated_by_unity.rider.package + true + + + + Debug + AnyCPU + 10.0.20506 + 2.0 + + {f2483ebc-e82f-a58f-b987-c7502f9ab5d9} + {E097FAD1-6243-4DAD-9C02-E9B9EFC3FFC1};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + Library + Properties + RethinkDB + v4.7.1 + 512 + . + + + true + full + false + Temp\Bin\Debug\ + DEBUG;TRACE;UNITY_2020_2_6;UNITY_2020_2;UNITY_2020;UNITY_5_3_OR_NEWER;UNITY_5_4_OR_NEWER;UNITY_5_5_OR_NEWER;UNITY_5_6_OR_NEWER;UNITY_2017_1_OR_NEWER;UNITY_2017_2_OR_NEWER;UNITY_2017_3_OR_NEWER;UNITY_2017_4_OR_NEWER;UNITY_2018_1_OR_NEWER;UNITY_2018_2_OR_NEWER;UNITY_2018_3_OR_NEWER;UNITY_2018_4_OR_NEWER;UNITY_2019_1_OR_NEWER;UNITY_2019_2_OR_NEWER;UNITY_2019_3_OR_NEWER;UNITY_2019_4_OR_NEWER;UNITY_2020_1_OR_NEWER;UNITY_2020_2_OR_NEWER;PLATFORM_ARCH_64;UNITY_64;UNITY_INCLUDE_TESTS;USE_SEARCH_ENGINE_API;SCENE_TEMPLATE_MODULE;ENABLE_AR;ENABLE_AUDIO;ENABLE_CACHING;ENABLE_CLOTH;ENABLE_EVENT_QUEUE;ENABLE_MICROPHONE;ENABLE_MULTIPLE_DISPLAYS;ENABLE_PHYSICS;ENABLE_TEXTURE_STREAMING;ENABLE_VIRTUALTEXTURING;ENABLE_UNET;ENABLE_LZMA;ENABLE_UNITYEVENTS;ENABLE_VR;ENABLE_WEBCAM;ENABLE_UNITYWEBREQUEST;ENABLE_WWW;ENABLE_CLOUD_SERVICES;ENABLE_CLOUD_SERVICES_COLLAB;ENABLE_CLOUD_SERVICES_COLLAB_SOFTLOCKS;ENABLE_CLOUD_SERVICES_ADS;ENABLE_CLOUD_SERVICES_USE_WEBREQUEST;ENABLE_CLOUD_SERVICES_CRASH_REPORTING;ENABLE_CLOUD_SERVICES_PURCHASING;ENABLE_CLOUD_SERVICES_ANALYTICS;ENABLE_CLOUD_SERVICES_UNET;ENABLE_CLOUD_SERVICES_BUILD;ENABLE_CLOUD_LICENSE;ENABLE_EDITOR_HUB_LICENSE;ENABLE_WEBSOCKET_CLIENT;ENABLE_DIRECTOR_AUDIO;ENABLE_DIRECTOR_TEXTURE;ENABLE_MANAGED_JOBS;ENABLE_MANAGED_TRANSFORM_JOBS;ENABLE_MANAGED_ANIMATION_JOBS;ENABLE_MANAGED_AUDIO_JOBS;INCLUDE_DYNAMIC_GI;ENABLE_MONO_BDWGC;ENABLE_SCRIPTING_GC_WBARRIERS;PLATFORM_SUPPORTS_MONO;RENDER_SOFTWARE_CURSOR;ENABLE_VIDEO;PLATFORM_STANDALONE;PLATFORM_STANDALONE_WIN;UNITY_STANDALONE_WIN;UNITY_STANDALONE;ENABLE_RUNTIME_GI;ENABLE_MOVIES;ENABLE_NETWORK;ENABLE_CRUNCH_TEXTURE_COMPRESSION;ENABLE_OUT_OF_PROCESS_CRASH_HANDLER;ENABLE_CLUSTER_SYNC;ENABLE_CLUSTERINPUT;PLATFORM_UPDATES_TIME_OUTSIDE_OF_PLAYER_LOOP;GFXDEVICE_WAITFOREVENT_MESSAGEPUMP;ENABLE_WEBSOCKET_HOST;ENABLE_MONO;NET_4_6;ENABLE_PROFILER;UNITY_ASSERTIONS;UNITY_EDITOR;UNITY_EDITOR_64;UNITY_EDITOR_WIN;ENABLE_UNITY_COLLECTIONS_CHECKS;ENABLE_BURST_AOT;UNITY_TEAM_LICENSE;ENABLE_CUSTOM_RENDER_TEXTURE;ENABLE_DIRECTOR;ENABLE_LOCALIZATION;ENABLE_SPRITES;ENABLE_TERRAIN;ENABLE_TILEMAP;ENABLE_TIMELINE;ENABLE_INPUT_SYSTEM;UNITY_POST_PROCESSING_STACK_V2;TEST_MSAGL;REPORTING;PERSISTENCE;SUBSTANCE_PLUGIN_ENABLED;CSHARP_7_OR_LATER;CSHARP_7_3_OR_NEWER + prompt + 4 + + False + False + + + pdbonly + true + Temp\bin\Release\ + prompt + 4 + + False + False + + + true + true + false + false + false + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.AIModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.ARModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.AccessibilityModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.AndroidJNIModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.AnimationModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.AssetBundleModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.AudioModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.ClothModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.ClusterInputModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.ClusterRendererModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.CoreModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.CrashReportingModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.DSPGraphModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.DirectorModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.GIModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.GameCenterModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.GridModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.HotReloadModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.IMGUIModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.ImageConversionModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.InputModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.InputLegacyModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.JSONSerializeModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.LocalizationModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.ParticleSystemModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.PerformanceReportingModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.PhysicsModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.Physics2DModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.ProfilerModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.RuntimeInitializeOnLoadManagerInitializerModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.ScreenCaptureModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.SharedInternalsModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.SpriteMaskModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.SpriteShapeModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.StreamingModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.SubstanceModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.SubsystemsModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.TLSModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.TerrainModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.TerrainPhysicsModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.TextCoreModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.TextRenderingModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.TilemapModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.UIModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.UIElementsModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.UIElementsNativeModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.UNETModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.UmbraModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityAnalyticsModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityConnectModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityCurlModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityTestProtocolModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityWebRequestModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityWebRequestAssetBundleModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityWebRequestAudioModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityWebRequestTextureModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityWebRequestWWWModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.VFXModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.VRModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.VehiclesModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.VideoModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.VirtualTexturingModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.WindModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEngine.XRModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEditor.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEditor.CoreModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEditor.GraphViewModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEditor.PackageManagerUIModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEditor.SceneTemplateModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEditor.UIElementsModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEditor.UIElementsSamplesModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEditor.UIServiceModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEngine/UnityEditor.UnityConnectModule.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/Managed/UnityEditor.Graphs.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/PlaybackEngines/WindowsStandaloneSupport/UnityEditor.WindowsStandalone.Extensions.dll + + + E:/Projects/Aetheria-Economy/Assets/Plugins/System.Threading.Tasks.Extensions.dll + + + E:/Projects/Aetheria-Economy/Assets/Plugins/Remotion.Linq.dll + + + E:/Projects/Aetheria-Economy/Assets/Plugins/System.Memory.dll + + + E:/Projects/Aetheria-Economy/Assets/Plugins/Microsoft.Extensions.Logging.Abstractions.dll + + + E:/Projects/Aetheria-Economy/Library/PackageCache/com.unity.burst@1.4.3/Unity.Burst.Unsafe.dll + + + E:/Projects/Aetheria-Economy/Assets/Plugins/System.Buffers.dll + + + E:/Projects/Aetheria-Economy/Assets/Allegorithmic/Plugins/Substance.Game.dll + + + E:/Projects/Aetheria-Economy/Assets/Plugins/Newtonsoft.Json.dll + + + E:/Projects/Aetheria-Economy/Assets/Plugins/QuickGraph.dll + + + E:/Projects/Aetheria-Economy/Assets/Allegorithmic/Plugins/Substance/Substance Source/Editor/SourceUnityLib.dll + + + E:/Projects/Aetheria-Economy/Assets/Plugins/System.Runtime.CompilerServices.Unsafe.dll + + + E:/Projects/Aetheria-Economy/Assets/Allegorithmic/Plugins/Substance/Substance Engine/Editor/Substance.Editor.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/mscorlib.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.Core.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.Runtime.Serialization.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.Xml.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.Xml.Linq.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.Numerics.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.Numerics.Vectors.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.Net.Http.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Microsoft.CSharp.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.Data.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/Microsoft.Win32.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/netstandard.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.AppContext.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Collections.Concurrent.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Collections.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Collections.NonGeneric.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Collections.Specialized.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ComponentModel.Annotations.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ComponentModel.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ComponentModel.EventBasedAsync.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ComponentModel.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ComponentModel.TypeConverter.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Console.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Data.Common.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Diagnostics.Contracts.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Diagnostics.Debug.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Diagnostics.FileVersionInfo.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Diagnostics.Process.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Diagnostics.StackTrace.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Diagnostics.TextWriterTraceListener.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Diagnostics.Tools.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Diagnostics.TraceSource.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Drawing.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Dynamic.Runtime.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Globalization.Calendars.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Globalization.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Globalization.Extensions.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.Compression.ZipFile.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.FileSystem.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.FileSystem.DriveInfo.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.FileSystem.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.FileSystem.Watcher.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.IsolatedStorage.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.MemoryMappedFiles.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.Pipes.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.UnmanagedMemoryStream.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Linq.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Linq.Expressions.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Linq.Parallel.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Linq.Queryable.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.Http.Rtc.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.NameResolution.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.NetworkInformation.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.Ping.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.Requests.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.Security.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.Sockets.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.WebHeaderCollection.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.WebSockets.Client.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.WebSockets.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ObjectModel.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Reflection.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Reflection.Emit.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Reflection.Emit.ILGeneration.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Reflection.Emit.Lightweight.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Reflection.Extensions.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Reflection.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Resources.Reader.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Resources.ResourceManager.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Resources.Writer.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.CompilerServices.VisualC.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.Extensions.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.Handles.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.InteropServices.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.InteropServices.RuntimeInformation.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.InteropServices.WindowsRuntime.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.Numerics.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.Serialization.Formatters.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.Serialization.Json.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.Serialization.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.Serialization.Xml.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Security.Claims.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Security.Cryptography.Algorithms.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Security.Cryptography.Csp.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Security.Cryptography.Encoding.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Security.Cryptography.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Security.Cryptography.X509Certificates.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Security.Principal.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Security.SecureString.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ServiceModel.Duplex.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ServiceModel.Http.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ServiceModel.NetTcp.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ServiceModel.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ServiceModel.Security.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Text.Encoding.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Text.Encoding.Extensions.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Text.RegularExpressions.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Threading.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Threading.Overlapped.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Threading.Tasks.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Threading.Tasks.Parallel.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Threading.Thread.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Threading.ThreadPool.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Threading.Timer.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ValueTuple.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Xml.ReaderWriter.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Xml.XDocument.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Xml.XmlDocument.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Xml.XmlSerializer.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Xml.XPath.dll + + + C:/Program Files/Unity/Hub/Editor/2020.2.6f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Xml.XPath.XDocument.dll + + + E:/Projects/Aetheria-Economy/Library/ScriptAssemblies/UnityEditor.UI.dll + + + E:/Projects/Aetheria-Economy/Library/ScriptAssemblies/UnityEngine.UI.dll + + + + + + + diff --git a/Tests.csproj b/Tests.csproj index 1e54be14d..83feee86f 100644 --- a/Tests.csproj +++ b/Tests.csproj @@ -647,9 +647,9 @@ - - {c2362ba6-dee9-92b9-0779-f5fcf5968986} - Economy.Shared.Unity + + {d790d414-9064-abda-7ad3-d72285c3faba} + Aetheria.Shared.Unity From 526a737a4d535097adf15a2ea1010f1261b0bb48 Mon Sep 17 00:00:00 2001 From: Reinier Vens Date: Wed, 31 Mar 2021 04:07:11 +0100 Subject: [PATCH 24/51] Modular Database Tools Extracted all inspector code for database inspector into a single class per supported field type and wrote reflection code to invoke them automatically Removed all Aetheria-specific code from database tools Database View editor is now abstract and supports arbitrary grouping of entry types; specific users must implement their own database view --- Aetheria.Shared.Unity.csproj | 2 +- Assets/Materials/UI/Map Gravity Lines.mat | 2 +- .../CultCache/Editor/AetheriaDatabaseView.cs | 46 + .../Editor/AetheriaDatabaseView.cs.meta | 3 + .../Scripts/CultCache/Editor/BaseInspector.cs | 31 + ...ctorBase.cs.meta => BaseInspector.cs.meta} | 0 .../CultCache/Editor/DatabaseInspector.cs | 1084 ++--------------- .../Scripts/CultCache/Editor/DatabaseView.cs | 463 +++---- .../Scripts/CultCache/Editor/InspectorBase.cs | 9 - .../Editor/Inspectors/AetheriaInspectors.cs | 183 +++ .../Inspectors/AetheriaInspectors.cs.meta | 3 + .../Inspectors/AnimationCurveInspector.cs | 39 + .../AnimationCurveInspector.cs.meta | 3 + .../Inspectors/DatabaseLinkInspector.cs | 152 +++ .../Inspectors/DatabaseLinkInspector.cs.meta | 3 + .../Editor/Inspectors/DictionaryInspector.cs | 223 ++++ .../Inspectors/DictionaryInspector.cs.meta | 3 + .../Editor/Inspectors/FloatInspector.cs | 54 + .../Editor/Inspectors/FloatInspector.cs.meta | 3 + .../Editor/Inspectors/IntInspector.cs | 27 + .../Editor/Inspectors/IntInspector.cs.meta | 3 + .../Editor/Inspectors/ListInspector.cs | 142 +++ .../Editor/Inspectors/ListInspector.cs.meta | 3 + .../Editor/Inspectors/MathematicsInspector.cs | 79 +- .../Editor/Inspectors/PrimitiveInspector.cs | 40 + .../Inspectors/PrimitiveInspector.cs.meta | 3 + .../Editor/Inspectors/TypeInspector.cs | 23 + .../Editor/Inspectors/TypeInspector.cs.meta | 3 + .../Editor/Inspectors/UnityObjectInspector.cs | 47 + .../Inspectors/UnityObjectInspector.cs.meta | 3 + .../CultCache/Editor/RethinkConnection.cs | 124 +- Assets/Scripts/Gameplay/ActionGameManager.cs | 14 +- Assets/Scripts/MainMenu.cs | 4 +- .../ServerShared/Behaviors/AutoWeapon.cs | 2 +- .../ServerShared/Behaviors/Behaviors.cs | 4 +- .../ServerShared/Behaviors/Capacitor.cs | 4 +- .../ServerShared/Behaviors/ChargedWeapon.cs | 26 +- .../ServerShared/Behaviors/ConstantWeapon.cs | 2 +- .../ServerShared/Behaviors/Cooldown.cs | 4 +- .../ServerShared/Behaviors/EnergyDraw.cs | 6 +- Assets/Scripts/ServerShared/Behaviors/Heat.cs | 6 +- .../ServerShared/Behaviors/InstantWeapon.cs | 8 +- .../ServerShared/Behaviors/ItemUsage.cs | 2 +- .../ServerShared/Behaviors/Launcher.cs | 16 +- .../ServerShared/Behaviors/LockWeapon.cs | 12 +- .../ServerShared/Behaviors/MiningTool.cs | 10 +- .../ServerShared/Behaviors/Radiance.cs | 4 +- .../ServerShared/Behaviors/Radiator.cs | 8 +- .../Scripts/ServerShared/Behaviors/Reactor.cs | 8 +- .../ServerShared/Behaviors/Reflector.cs | 2 +- .../ServerShared/Behaviors/ResourceScanner.cs | 8 +- .../Scripts/ServerShared/Behaviors/Sensor.cs | 18 +- .../Scripts/ServerShared/Behaviors/Shield.cs | 4 +- .../ServerShared/Behaviors/StatModifier.cs | 12 +- .../Scripts/ServerShared/Behaviors/Switch.cs | 2 +- .../ServerShared/Behaviors/Thermotoggle.cs | 4 +- .../ServerShared/Behaviors/Thruster.cs | 8 +- .../Scripts/ServerShared/Behaviors/Trigger.cs | 2 +- .../Behaviors/VelocityConversion.cs | 2 +- .../ServerShared/Behaviors/VelocityLimit.cs | 2 +- .../ServerShared/Behaviors/Visibility.cs | 6 +- .../Scripts/ServerShared/Behaviors/Weapon.cs | 10 +- Assets/Scripts/ServerShared/Corporations.cs | 34 +- .../ServerShared/CultCache/Attributes.cs | 96 +- .../{DatabaseCache.cs => CultCache.cs} | 19 +- ...atabaseCache.cs.meta => CultCache.cs.meta} | 0 .../ServerShared/CultCache/DatabaseEntry.cs | 27 +- .../ServerShared/CultCache/Extensions.cs | 29 + Assets/Scripts/ServerShared/GlobalData.cs | 28 +- Assets/Scripts/ServerShared/ItemData.cs | 74 +- Assets/Scripts/ServerShared/ItemManager.cs | 4 +- Assets/Scripts/ServerShared/Sector.cs | 10 +- 72 files changed, 1697 insertions(+), 1647 deletions(-) create mode 100644 Assets/Scripts/CultCache/Editor/AetheriaDatabaseView.cs create mode 100644 Assets/Scripts/CultCache/Editor/AetheriaDatabaseView.cs.meta create mode 100644 Assets/Scripts/CultCache/Editor/BaseInspector.cs rename Assets/Scripts/CultCache/Editor/{InspectorBase.cs.meta => BaseInspector.cs.meta} (100%) delete mode 100644 Assets/Scripts/CultCache/Editor/InspectorBase.cs create mode 100644 Assets/Scripts/CultCache/Editor/Inspectors/AetheriaInspectors.cs create mode 100644 Assets/Scripts/CultCache/Editor/Inspectors/AetheriaInspectors.cs.meta create mode 100644 Assets/Scripts/CultCache/Editor/Inspectors/AnimationCurveInspector.cs create mode 100644 Assets/Scripts/CultCache/Editor/Inspectors/AnimationCurveInspector.cs.meta create mode 100644 Assets/Scripts/CultCache/Editor/Inspectors/DatabaseLinkInspector.cs create mode 100644 Assets/Scripts/CultCache/Editor/Inspectors/DatabaseLinkInspector.cs.meta create mode 100644 Assets/Scripts/CultCache/Editor/Inspectors/DictionaryInspector.cs create mode 100644 Assets/Scripts/CultCache/Editor/Inspectors/DictionaryInspector.cs.meta create mode 100644 Assets/Scripts/CultCache/Editor/Inspectors/FloatInspector.cs create mode 100644 Assets/Scripts/CultCache/Editor/Inspectors/FloatInspector.cs.meta create mode 100644 Assets/Scripts/CultCache/Editor/Inspectors/IntInspector.cs create mode 100644 Assets/Scripts/CultCache/Editor/Inspectors/IntInspector.cs.meta create mode 100644 Assets/Scripts/CultCache/Editor/Inspectors/ListInspector.cs create mode 100644 Assets/Scripts/CultCache/Editor/Inspectors/ListInspector.cs.meta create mode 100644 Assets/Scripts/CultCache/Editor/Inspectors/PrimitiveInspector.cs create mode 100644 Assets/Scripts/CultCache/Editor/Inspectors/PrimitiveInspector.cs.meta create mode 100644 Assets/Scripts/CultCache/Editor/Inspectors/TypeInspector.cs create mode 100644 Assets/Scripts/CultCache/Editor/Inspectors/TypeInspector.cs.meta create mode 100644 Assets/Scripts/CultCache/Editor/Inspectors/UnityObjectInspector.cs create mode 100644 Assets/Scripts/CultCache/Editor/Inspectors/UnityObjectInspector.cs.meta rename Assets/Scripts/ServerShared/CultCache/{DatabaseCache.cs => CultCache.cs} (90%) rename Assets/Scripts/ServerShared/CultCache/{DatabaseCache.cs.meta => CultCache.cs.meta} (100%) diff --git a/Aetheria.Shared.Unity.csproj b/Aetheria.Shared.Unity.csproj index 8a9472fbb..8c7c16a4e 100644 --- a/Aetheria.Shared.Unity.csproj +++ b/Aetheria.Shared.Unity.csproj @@ -170,7 +170,7 @@ - + diff --git a/Assets/Materials/UI/Map Gravity Lines.mat b/Assets/Materials/UI/Map Gravity Lines.mat index 13365b26e..d8a812926 100644 --- a/Assets/Materials/UI/Map Gravity Lines.mat +++ b/Assets/Materials/UI/Map Gravity Lines.mat @@ -86,7 +86,7 @@ Material: - _Mode: 0 - _OcclusionStrength: 1 - _Parallax: 0.02 - - _Scale: 3.0991225 + - _Scale: 2.049001 - _SmoothnessTextureChannel: 0 - _SpecularHighlights: 1 - _SrcBlend: 1 diff --git a/Assets/Scripts/CultCache/Editor/AetheriaDatabaseView.cs b/Assets/Scripts/CultCache/Editor/AetheriaDatabaseView.cs new file mode 100644 index 000000000..a30834018 --- /dev/null +++ b/Assets/Scripts/CultCache/Editor/AetheriaDatabaseView.cs @@ -0,0 +1,46 @@ +using System; +using System.IO; +using UnityEditor; +using UnityEngine; + +public class AetheriaDatabaseView : DatabaseListView +{ + // Singleton to avoid multiple instances of window. + private static DatabaseListView _instance; + private string tableName; + public static DatabaseListView Instance => _instance ? _instance : GetWindow(); + [MenuItem("Window/Aetheria/Database Tools")] + static void Init() => Instance.Show(); + private void Awake() + { + _instance = this; + } + + protected override string DatabaseName => "Aetheria"; + + protected override string FilePath => Path.Combine(new DirectoryInfo(Application.dataPath).Parent.CreateSubdirectory("GameData").FullName, "AetherDB.msgpack"); + + protected override DatabaseEntryGroup[] Groupers => new DatabaseEntryGroup[] + { + new DatabaseEntryGroup( + data => data.Category, + category => Enum.GetName(typeof(SimpleCommodityCategory), category), + (data, category) => data.Category = category ), + new DatabaseEntryGroup( + data => data.Category, + category => Enum.GetName(typeof(CompoundCommodityCategory), category), + (data, category) => data.Category = category ), + new DatabaseEntryGroup( + data => data.HardpointType, + type => Enum.GetName(typeof(HardpointType), type), + (data, type) => data.Hardpoint = type), + // new DatabaseEntryGroup( + // data => data.Manufacturer, + // factionID => cultCache.Get(factionID).ShortName, + // (data, faction) => data.Manufacturer = faction), + new DatabaseEntryGroup( + data => data.HullType, + type => Enum.GetName(typeof(HullType), type), + (data, type) => data.HullType = type) + }; +} \ No newline at end of file diff --git a/Assets/Scripts/CultCache/Editor/AetheriaDatabaseView.cs.meta b/Assets/Scripts/CultCache/Editor/AetheriaDatabaseView.cs.meta new file mode 100644 index 000000000..073e80c80 --- /dev/null +++ b/Assets/Scripts/CultCache/Editor/AetheriaDatabaseView.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 4016d25951e246a184441b2aae75eba0 +timeCreated: 1617151686 \ No newline at end of file diff --git a/Assets/Scripts/CultCache/Editor/BaseInspector.cs b/Assets/Scripts/CultCache/Editor/BaseInspector.cs new file mode 100644 index 000000000..2c07b7e6e --- /dev/null +++ b/Assets/Scripts/CultCache/Editor/BaseInspector.cs @@ -0,0 +1,31 @@ +using System; + +public abstract class BaseInspector +{ + protected const int width = 150; + protected const int labelWidth = 20; + protected const int toggleWidth = 18; + protected const int arrowWidth = 22; + + public abstract T Inspect(string label, T value, object parent, DatabaseInspector inspectorWindow); +} + +public abstract class BaseInspector where A : Attribute +{ + protected const int width = 150; + protected const int labelWidth = 20; + protected const int toggleWidth = 18; + protected const int arrowWidth = 22; + + public abstract T Inspect(string label, T value, object parent, DatabaseInspector inspectorWindow, A attribute); +} + +public abstract class BaseInspector where A : Attribute where B : Attribute +{ + protected const int width = 150; + protected const int labelWidth = 20; + protected const int toggleWidth = 18; + protected const int arrowWidth = 22; + + public abstract T Inspect(string label, T value, object parent, DatabaseInspector inspectorWindow, A attributeA, B attributeB); +} \ No newline at end of file diff --git a/Assets/Scripts/CultCache/Editor/InspectorBase.cs.meta b/Assets/Scripts/CultCache/Editor/BaseInspector.cs.meta similarity index 100% rename from Assets/Scripts/CultCache/Editor/InspectorBase.cs.meta rename to Assets/Scripts/CultCache/Editor/BaseInspector.cs.meta diff --git a/Assets/Scripts/CultCache/Editor/DatabaseInspector.cs b/Assets/Scripts/CultCache/Editor/DatabaseInspector.cs index 95b276bda..048ee8153 100644 --- a/Assets/Scripts/CultCache/Editor/DatabaseInspector.cs +++ b/Assets/Scripts/CultCache/Editor/DatabaseInspector.cs @@ -19,49 +19,52 @@ using Object = UnityEngine.Object; public class DatabaseInspector : EditorWindow { - public static DatabaseCache DatabaseCache; + public static CultCache CultCache; public DatabaseEntry entry; // Singleton to avoid multiple instances of window. private static DatabaseInspector _instance; public static DatabaseInspector Instance => _instance ? _instance : GetWindow(); - private DatabaseListView _list; - private GUIStyle _labelStyle; private Vector2 _view; - private const float IconSize = 1.0f / 16; - // private static HardpointData _hardpoint; - private static float2 _dragOffset; - private bool _ctrlDown; - private string[] _hardpointTypes; private const int width = 150; - private const int labelWidth = 20; - private const int toggleWidth = 18; - private const int arrowWidth = 22; - private Material _galaxyMat; - private Texture2D _white; private GUIStyle _warning; private HashSet _listItemFoldouts = new HashSet(); private Material _schematicMat; + private Dictionary<(Type targetType, HashSet attributes), (object instance, Type type)> _inspectors = + new Dictionary<(Type targetType, HashSet attributes), (object instance, Type type)>(); + + private Dictionary _genericInspectors = new Dictionary(); public Color LabelColor => EditorGUIUtility.isProSkin ? Color.white : Color.black; - void OnEnable() { _instance = this; - _list = DatabaseListView.Instance; - _list.Show(); - DatabaseCache.OnDataUpdateLocal += _ => Repaint(); - DatabaseCache.OnDataUpdateRemote += _ => EditorDispatcher.Dispatch(Repaint); + CultCache.OnDataUpdateLocal += _ => Repaint(); + CultCache.OnDataUpdateRemote += _ => EditorDispatcher.Dispatch(Repaint); wantsMouseMove = true; - _hardpointTypes = Enum.GetNames(typeof(HardpointType)); - _galaxyMat = new Material(Shader.Find("Unlit/GalaxyMap")); - _schematicMat = new Material(Shader.Find("Legacy Shaders/Particles/Additive")); - _white = Color.white.ToTexture(); _warning = new GUIStyle(EditorStyles.boldLabel); _warning.normal.textColor = Color.red; - + + var inspectorTypes = typeof(BaseInspector<>).GetAllGenericChildClasses() + .Concat(typeof(BaseInspector<,>).GetAllGenericChildClasses()) + .Concat(typeof(BaseInspector<,,>).GetAllGenericChildClasses()); + foreach (var type in inspectorTypes) + { + var genericArguments = type.BaseType.GetGenericArguments(); + if(genericArguments.Any()) + { + if (genericArguments[0].ContainsGenericParameters) + { + _genericInspectors.Add(genericArguments[0].GetGenericTypeDefinition(), type); + } + else + { + _inspectors.Add((genericArguments[0], new HashSet(genericArguments.Skip(1))), (Activator.CreateInstance(type), type)); + } + } + } } public void Inspect(object obj, bool inspectablesOnly = false) @@ -71,148 +74,70 @@ public class DatabaseInspector : EditorWindow Inspect(obj, field, inspectablesOnly); } - if (obj is EquippableItemData equippableItemData) - { - var restricted = false; - var doubleRestricted = false; - HullType type = HullType.Ship; - foreach (var behavior in equippableItemData.Behaviors) - { - var restriction = behavior.GetType().GetCustomAttribute(); - if (restriction != null) - { - if (restricted && restriction.Type != type) - doubleRestricted = true; - restricted = true; - type = restriction.Type; - } - } - if(doubleRestricted) - GUILayout.Label("ITEM UNEQUIPPABLE: BEHAVIOR HULL TYPE CONFLICT", _warning); - else if (restricted) - GUILayout.Label($"Item restricted by behavior to hull type {Enum.GetName(typeof(HullType), type)}", EditorStyles.boldLabel); - } + // if (obj is EquippableItemData equippableItemData) + // { + // var restricted = false; + // var doubleRestricted = false; + // HullType type = HullType.Ship; + // foreach (var behavior in equippableItemData.Behaviors) + // { + // var restriction = behavior.GetType().GetCustomAttribute(); + // if (restriction != null) + // { + // if (restricted && restriction.Type != type) + // doubleRestricted = true; + // restricted = true; + // type = restriction.Type; + // } + // } + // if(doubleRestricted) + // GUILayout.Label("ITEM UNEQUIPPABLE: BEHAVIOR HULL TYPE CONFLICT", _warning); + // else if (restricted) + // GUILayout.Label($"Item restricted by behavior to hull type {Enum.GetName(typeof(HullType), type)}", EditorStyles.boldLabel); + // } } public void Inspect(object obj, FieldInfo field, bool inspectablesOnly = false) { - var inspectable = field.GetCustomAttribute(); + var inspectable = field.GetCustomAttribute(); if (inspectable == null && inspectablesOnly) return; var type = field.FieldType; var value = field.GetValue(obj); - var link = inspectable as InspectableDatabaseLinkAttribute; - if (type == typeof(float)) + if (type.IsGenericType) { - if (inspectable is RangedFloatInspectableAttribute) + var genericTypeDefinition = type.GetGenericTypeDefinition(); + if(_genericInspectors.ContainsKey(genericTypeDefinition)) { - var range = inspectable as RangedFloatInspectableAttribute; - field.SetValue(obj, Inspect(field.Name.SplitCamelCase(), (float) value, range.Min, range.Max)); + var genericInspectorGenericType = _genericInspectors[genericTypeDefinition]; + var genericInspectorType = genericInspectorGenericType.MakeGenericType(type.GenericTypeArguments[0]); + var genericInspector = Activator.CreateInstance(genericInspectorType); + var parameters = new[] {field.Name.SplitCamelCase(), field.GetValue(obj), obj, this}; + field.SetValue(obj, genericInspectorType.GetMethod("Inspect").Invoke(genericInspector, parameters)); + return; } - else if (inspectable is InspectableTemperatureAttribute) - field.SetValue(obj, InspectTemperature(field.Name.SplitCamelCase(), (float) value)); - else - field.SetValue(obj, Inspect(field.Name.SplitCamelCase(), (float) value)); } - else if (type == typeof(float4[]) && inspectable is InspectableAnimationCurveAttribute) + var potentialInspectors = _inspectors.Keys + .Where(pi => + pi.targetType == type && + pi.attributes.All(attributeType => field.GetCustomAttribute(attributeType) != null)); + if (potentialInspectors.Any()) { - field.SetValue(obj, InspectAnimationCurve(field.Name.SplitCamelCase(), (float4[]) value)); - } - else if (type == typeof(int)) - { - if (inspectable is RangedIntInspectableAttribute) - { - var range = inspectable as RangedIntInspectableAttribute; - field.SetValue(obj, Inspect(field.Name.SplitCamelCase(), (int) value, range.Min, range.Max)); - } - else - field.SetValue(obj, Inspect(field.Name.SplitCamelCase(), (int) value)); - } - else if (type == typeof(int2)) - { - field.SetValue(obj, Inspect(field.Name.SplitCamelCase(), (int2) field.GetValue(obj))); - } - else if (type == typeof(float3)) - { - if (inspectable is InspectableColorAttribute) - { - field.SetValue(obj, ColorField(field.Name.SplitCamelCase(), ((float3)field.GetValue(obj)).ToColor()).ToFloat3()); - } + var preferredInspector = potentialInspectors.MaxBy(i => i.attributes.Count); + var parameters = new[] {field.Name.SplitCamelCase(), field.GetValue(obj), obj, this} + .Concat(preferredInspector.attributes.Select(attributeType => field.GetCustomAttribute(attributeType))) + .ToArray(); + field.SetValue(obj, _inspectors[preferredInspector].type.GetMethod("Inspect").Invoke(_inspectors[preferredInspector].instance, parameters)); } else if (type.IsEnum) { var isflags = type.GetCustomAttributes().Any(); var names = Enum.GetNames(field.FieldType); field.SetValue(obj, - Inspect(field.Name.SplitCamelCase(), (int) field.GetValue(obj), isflags ? names.Skip(1).ToArray() : names, isflags)); + InspectEnum(field.Name.SplitCamelCase(), (int) field.GetValue(obj), isflags ? names.Skip(1).ToArray() : names, isflags)); } - //else if (field.FieldType == typeof(Color)) Inspect(field.Name, () => (Color) field.GetValue(obj), c => field.SetValue(obj, c)); - else if (type == typeof(bool)) field.SetValue(obj, Inspect(field.Name.SplitCamelCase(), (bool) value)); - else if (type == typeof(string)) - { - if (inspectable is InspectableUnityObjectAttribute unityObjectAttribute) - { - var inspectMethod = typeof(DatabaseInspector).GetMethod("InspectUnityObject"); - var generic = inspectMethod.MakeGenericMethod(unityObjectAttribute.ObjectType); - field.SetValue(obj, generic.Invoke(this, new[] {value})); - } - if(inspectable is InspectablePrefabAttribute) - field.SetValue(obj, InspectUnityObject(field.Name.SplitCamelCase(), (string) value)); - else if(inspectable is InspectableTextureAttribute) - field.SetValue(obj, InspectUnityObject(field.Name.SplitCamelCase(), (string) value)); - else if(inspectable is InspectableTextAssetAttribute) - field.SetValue(obj, InspectUnityObject(field.Name.SplitCamelCase(), (string) value)); - else - field.SetValue(obj, Inspect(field.Name.SplitCamelCase(), (string) value, inspectable is InspectableTextAttribute)); - } - else if (type == typeof(Type) && inspectable is InspectableTypeAttribute typeAttribute) field.SetValue(obj, Inspect(field.Name.SplitCamelCase(), (Type) value, typeAttribute.Type)); - else if (type == typeof(GameObject)) field.SetValue(obj, Inspect(field.Name.SplitCamelCase(), (GameObject) value)); - else if (type == typeof(AnimationCurve)) field.SetValue(obj, Inspect(field.Name.SplitCamelCase(), (AnimationCurve) value)); - else if (type == typeof(Shape)) field.SetValue(obj, Inspect(field.Name.SplitCamelCase(), (Shape) value, (obj is HullData hull) ? hull : null)); - else if (type == typeof(PerformanceStat)) field.SetValue(obj, Inspect(field.Name.SplitCamelCase(), (PerformanceStat) value, field.GetCustomAttribute() != null)); - else if (type == typeof(PerformanceStat[])) - { - LabelField(field.Name.SplitCamelCase(), EditorStyles.boldLabel); - using (new VerticalScope(GUI.skin.box)) - { - var stats = (PerformanceStat[]) value; - var damageTypes = Enum.GetNames(typeof(DamageType)); - if(stats==null || stats.Length!=damageTypes.Length) - stats = new PerformanceStat[damageTypes.Length]; - for (var i = 0; i < stats.Length; i++) - { - Inspect(damageTypes[i].SplitCamelCase(), stats[i]); - } - field.SetValue(obj, stats); - } - } - else if (type == typeof(StatReference)) - { - var statRef = (StatReference) field.GetValue(obj); - Inspect(field.Name.SplitCamelCase(), ref statRef); - } - else if (type == typeof(Dictionary)) - { - var dict = (Dictionary) field.GetValue(obj); - Inspect(field.Name.SplitCamelCase(), ref dict, link.EntryType); - } - else if (type == typeof(Dictionary)) - { - var dict = (Dictionary) field.GetValue(obj); - var ranged = field.GetCustomAttribute(); - if(ranged != null) - Inspect(field.Name.SplitCamelCase(), ref dict, link.EntryType, ranged.Min, ranged.Max); - else Inspect(field.Name.SplitCamelCase(), ref dict, link.EntryType); - } - else if (type == typeof(List) && link != null) - { - var list = (List) field.GetValue(obj); - if(list==null) field.SetValue(obj, list = new List()); - Inspect(field.Name.SplitCamelCase(), ref list, link.EntryType); - } - else if (type == typeof(Guid) && link != null) field.SetValue(obj, Inspect(field.Name.SplitCamelCase(), (Guid) value, link.EntryType)); - else if (type.GetCustomAttribute() != null) + else if (type.GetCustomAttribute() != null) { Space(); using (new HorizontalScope()) @@ -230,326 +155,10 @@ public class DatabaseInspector : EditorWindow } if(value != null) Inspect(field.GetValue(obj), inspectablesOnly); } - else if (type.IsGenericType && type.GetGenericTypeDefinition() == typeof(List<>)) - { - var listType = field.FieldType.GenericTypeArguments[0]; - // if (listType.IsEnum) - // { - // Space(); - // using (new VerticalScope(GUI.skin.box)) - // { - // var list = (IList) field.GetValue(obj); - // if (list == null) - // { - // list = (IList) Activator.CreateInstance(type); - // field.SetValue(obj, list); - // GUI.changed = true; - // } - // var isflags = type.GetCustomAttributes().Any(); - // var names = Enum.GetNames(field.FieldType); - // - // for (var i = 0; i < list.Count; i++) - // { - // list[i] = Inspect(field.Name.SplitCamelCase(), (int) list[i], isflags ? names.Skip(1).ToArray() : names, isflags); - // } - // } - // } - if (listType.GetCustomAttribute() != null) - { - Space(); - using (new VerticalScope(GUI.skin.box)) - { - var list = (IList) field.GetValue(obj); - if (list == null) - { - list = (IList) Activator.CreateInstance(type); - field.SetValue(obj, list); - GUI.changed = true; - } - else - { - var sorted = true; - var order = int.MinValue; - foreach(var element in list) - { - var elementType = element.GetType(); - var elementOrder = elementType.GetCustomAttribute()?.Order ?? 0; - if (elementOrder < order) - sorted = false; - order = elementOrder; - } - - if (!sorted) - { - var sortedList = list - .Cast() - .OrderBy(o => o.GetType().GetCustomAttribute()?.Order ?? 0); - list = (IList) Activator.CreateInstance(type); - foreach (var o in sortedList) - list.Add(o); - field.SetValue(obj, list); - GUI.changed = true; - } - } - foreach (var o in list) - { - if (o == null) - { - list.Remove(o); - break; - } - bool _tinted = false; - var originalColor = GUI.backgroundColor; - if (o is ITintInspector tint) - { - _tinted = true; - GUI.backgroundColor = tint.TintColor.ToColor(); - } - - using (new VerticalScope(_list.ListItemStyle)) - { - using (new HorizontalScope()) - { - //if (listType.IsInterface) - if(Foldout(_listItemFoldouts.Contains(o.GetHashCode()), o.ToString(), true)) - _listItemFoldouts.Add(o.GetHashCode()); - else - _listItemFoldouts.Remove(o.GetHashCode()); - - - // var rect = GetControlRect(false, - // GUILayout.Width(EditorGUIUtility.singleLineHeight)); - // GUI.DrawTexture(rect, Icons.Instance.minus, ScaleMode.StretchToFill, true, 1, - // LabelColor, 0, 0); - if (GUILayout.Button("-")) - { - list.Remove(o); - break; - } - } - if(_listItemFoldouts.Contains(o.GetHashCode())) - { - Space(); - - Inspect(o, inspectablesOnly); - } - } - - if(_tinted) - GUI.backgroundColor = originalColor; - } - using (new HorizontalScope(_list.ListItemStyle)) - { - GUILayout.Label($"Add new {listType.Name}", GUILayout.ExpandWidth(true)); - // var rect = GetControlRect(false, GUILayout.Width(EditorGUIUtility.singleLineHeight)); - // GUI.DrawTexture(rect, Icons.Instance.plus, ScaleMode.StretchToFill, true, 1, LabelColor, 0, 0); - if (GUILayout.Button("+")) - { - if (listType.IsInterface) - { - var menu = new GenericMenu(); - foreach (var behaviorType in listType.GetAllInterfaceClasses()) - { - menu.AddItem(new GUIContent(behaviorType.Name), false, () => - { - list.Add(Activator.CreateInstance(behaviorType)); - DatabaseCache.Add(entry); - }); - } - menu.ShowAsContext(); - } - else if (listType.IsAbstract) - { - var menu = new GenericMenu(); - foreach (var behaviorType in listType.GetAllChildClasses().Where(t=>!t.IsAbstract)) - { - menu.AddItem(new GUIContent(behaviorType.Name), false, () => - { - list.Add(Activator.CreateInstance(behaviorType)); - DatabaseCache.Add(entry); - }); - } - menu.ShowAsContext(); - } - else - { - list.Add(Activator.CreateInstance(listType)); - } - } - } - } - } - else if (typeof(Object).IsAssignableFrom(listType)) - { - Space(); - using (var v = new VerticalScope(GUI.skin.box)) - { - var list = (IList) field.GetValue(obj); - if (list == null) - { - list = (IList) Activator.CreateInstance(type); - field.SetValue(obj, list); - } - - if(list.Count==0) - using (new HorizontalScope(_list.ListItemStyle)) - GUILayout.Label($"Add a {listType.Name} by dragging from the project hierarchy."); - - foreach (var oo in list) - { - var o = (Object) oo; - using (new HorizontalScope(_list.ListItemStyle)) - { - GUILayout.Label(o.name.SplitCamelCase(), EditorStyles.boldLabel, GUILayout.ExpandWidth(true)); - - // var rect = GetControlRect(false, - // GUILayout.Width(EditorGUIUtility.singleLineHeight)); - // GUI.DrawTexture(rect, Icons.Instance.minus, ScaleMode.StretchToFill, true, 1, - // LabelColor, 0, 0); - if (GUILayout.Button("-")) - { - list.Remove(o); - break; - } - } - } - - if (v.rect.Contains(Event.current.mousePosition) && (Event.current.type == EventType.DragUpdated || Event.current.type == EventType.DragPerform)) - { - var dragObj = DragAndDrop.objectReferences.FirstOrDefault(); - //var dragEntry = Database.Get(guid); - if(Event.current.type == EventType.DragUpdated) - DragAndDrop.visualMode = dragObj?.GetType() == listType ? DragAndDropVisualMode.Copy : DragAndDropVisualMode.Rejected; - else if(Event.current.type == EventType.DragPerform) - { - if (dragObj?.GetType() == listType) - { - DragAndDrop.AcceptDrag(); - GUI.changed = true; - list.Add(dragObj); - } - } - } - } - } - else Debug.Log($"Field \"{field.Name}\" is a list of non-Inspectable type {listType.Name}. No inspector was generated."); - } - else if (typeof(Object).IsAssignableFrom(type)) - { - using (new HorizontalScope()) - { - GUILayout.Label(field.Name.SplitCamelCase(), GUILayout.Width(width)); - field.SetValue(obj, ObjectField((Object)field.GetValue(obj),type,false)); - } - } -// else if (type == typeof(AudioClip)) -// { -// using (new EditorGUILayout.HorizontalScope()) -// { -// GUILayout.Label(field.Name.SplitCamelCase(), GUILayout.Width(width)); -// field.SetValue(obj, EditorGUILayout.ObjectField((AudioClip)field.GetValue(obj),typeof(AudioClip),false)); -// } -// } else Debug.Log($"Field \"{field.Name}\" has unknown type {field.FieldType.Name}. No inspector was generated."); } - public bool Inspect(string label, bool value) - { - using (var h = new HorizontalScope()) - { - GUILayout.Label(label, GUILayout.Width(width)); - return Toggle(value); - } - } - - public float Inspect(string label, float value) - { - using (var h = new HorizontalScope()) - { - GUILayout.Label(label, GUILayout.Width(width)); - return DelayedFloatField(value); - } - } - - public string Inspect(string label, string value, bool area = false) - { - using (var h = new HorizontalScope()) - { - GUILayout.Label(label, GUILayout.Width(width)); - if (area) - { - EditorStyles.textArea.wordWrap = true; - return DelayedTextField(value, EditorStyles.textArea, /*GUILayout.Width(EditorGUIUtility.currentViewWidth-width-10), */GUILayout.Height(100)); - } - return DelayedTextField(value); - } - } - - public float InspectTemperature(string label, float value) - { - using (var h = new HorizontalScope()) - { - GUILayout.Label(label, GUILayout.Width(width)); - GUILayout.Label("°K", _labelStyle, GUILayout.Width(labelWidth)); - value = DelayedFloatField(value);//, GUILayout.ExpandWidth(false) - GUILayout.Label("°C", _labelStyle, GUILayout.Width(labelWidth)); - value = DelayedFloatField(value - 273.15f) + 273.15f; - GUILayout.Label("°F", _labelStyle, GUILayout.Width(labelWidth)); - value = (DelayedFloatField((value - 273.15f) * 1.8f + 32) - 32) / 1.8f + 273.15f; - - return value; - } - } - - public float Inspect(string label, float value, float min, float max) - { - using (var h = new HorizontalScope()) - { - GUILayout.Label(label, GUILayout.Width(width)); - return Slider(value, min, max); - } - } - - public int Inspect(string label, int value) - { - using (var h = new HorizontalScope()) - { - GUILayout.Label(label, GUILayout.Width(width)); - return DelayedIntField(value); - } - } - - public int2 Inspect(string label, int2 value) - { - using (var h = new HorizontalScope()) - { - GUILayout.Label(label, GUILayout.Width(width)); - GUILayout.Label("X", GUILayout.Width(labelWidth)); - value.x = DelayedIntField(value.x); - GUILayout.Label("Y", GUILayout.Width(labelWidth)); - value.y = DelayedIntField(value.y); - if (GUILayout.Button("\u2190", GUILayout.Width(arrowWidth))) - value.x--; - if (GUILayout.Button("\u2192", GUILayout.Width(arrowWidth))) - value.x++; - if (GUILayout.Button("\u2191", GUILayout.Width(arrowWidth))) - value.y++; - if (GUILayout.Button("\u2193", GUILayout.Width(arrowWidth))) - value.y--; - return value; - } - } - - public int Inspect(string label, int value, int min, int max) - { - using (var h = new HorizontalScope()) - { - GUILayout.Label(label, GUILayout.Width(width)); - return IntSlider(value, min, max); - } - } - - public int Inspect(string label, int value, string[] enumOptions, bool flags) + public int InspectEnum(string label, int value, string[] enumOptions, bool flags) { if (flags) { @@ -580,538 +189,11 @@ public class DatabaseInspector : EditorWindow } } - public Type Inspect(string label, Type value, Type parentType) - { - var types = parentType.GetAllChildClasses(); - var enumOptions = new[] {"None"}.Concat(types.Select(t => t.Name)).ToArray(); - var index = Array.IndexOf(types, value) + 1; - - using (var h = new HorizontalScope()) - { - GUILayout.Label(label, GUILayout.Width(width)); - index = Popup(index, enumOptions); - } - - return index == 0 ? null : types[index - 1]; - } - - public string InspectUnityObject(string label, string value) where T : Object - { - using (var h = new HorizontalScope()) - { - GUILayout.Label(label, GUILayout.Width(width)); - return AssetDatabase.GetAssetPath(ObjectField(AssetDatabase.LoadAssetAtPath(value), typeof(T), false)); - } - } - - public GameObject Inspect(string label, GameObject value) - { - using (var h = new HorizontalScope()) - { - GUILayout.Label(label, GUILayout.Width(width)); - return (GameObject) ObjectField(value, typeof(GameObject), false); - } - } - - public float4[] InspectAnimationCurve(string label, float4[] value) - { - var val = value != null && value.Length > 0 - ? value.ToCurve() - : new AnimationCurve(); - using (var h = new HorizontalScope()) - { - GUILayout.Label(label, GUILayout.Width(width)); - val = CurveField(val, Color.yellow, new Rect(0, 0, 1, 1)); - } - - return val.keys.Select(k => float4(k.time, k.value, k.inTangent, k.outTangent)).ToArray(); - } - - public AnimationCurve Inspect(string label, AnimationCurve value) - { - using (var h = new HorizontalScope()) - { - GUILayout.Label(label, GUILayout.Width(width)); - if (value == null) - value = new AnimationCurve(); - value = CurveField(value, Color.yellow, new Rect(0, 0, 1, 1)); - } - - return value; - } - - public Guid Inspect(string label, Guid value, Type entryType) - { - LabelField(label, EditorStyles.boldLabel); - var valueEntry = DatabaseCache.Get(value); - using (var h = new HorizontalScope(GUI.skin.box)) - { - GUILayout.Label((valueEntry as INamedEntry)?.EntryName ?? valueEntry?.ID.ToString() ?? $"Assign a {entryType.Name} by dragging from the list panel."); - - if (h.rect.Contains(Event.current.mousePosition) && (Event.current.type == EventType.DragUpdated || Event.current.type == EventType.DragPerform)) - { - var guid = (Guid) DragAndDrop.GetGenericData("Item"); - var dragEntry = DatabaseCache.Get(guid); - var dragValid = dragEntry != null && entryType.IsInstanceOfType(dragEntry) && dragEntry != entry; - if(Event.current.type == EventType.DragUpdated) - DragAndDrop.visualMode = dragValid ? DragAndDropVisualMode.Copy : DragAndDropVisualMode.Rejected; - else if(Event.current.type == EventType.DragPerform) - { - if (dragValid) - { - DragAndDrop.AcceptDrag(); - GUI.changed = true; - return guid; - } - } - } - // var rect = GetControlRect(false, - // GUILayout.Width(EditorGUIUtility.singleLineHeight)); - // GUI.DrawTexture(rect, Icons.Instance.minus, ScaleMode.StretchToFill, true, 1, - // LabelColor, 0, 0); - if (GUILayout.Button("-")) - { - return Guid.Empty; - } - } - - return value; - } - - public void Inspect(string label, ref Dictionary value, Type referenceType) - { - Space(); - LabelField(label, EditorStyles.boldLabel); - - using (var v = new VerticalScope(GUI.skin.box)) - { - if (value.Count == 0) - { - using (var h = new HorizontalScope(_list.ListItemStyle)) - { - GUILayout.Label("Drag from list to add item"); - } - } - foreach (var ingredient in value.ToArray()) - { - using (var h = new HorizontalScope(_list.ListItemStyle)) - { - var entry = DatabaseCache.Get(ingredient.Key); - if (entry == null) - { - value.Remove(ingredient.Key); - GUI.changed = true; - return; - } - if(entry is INamedEntry named) - GUILayout.Label(named.EntryName); - else GUILayout.Label(entry.ID.ToString()); - - value[ingredient.Key] = DelayedIntField(value[ingredient.Key], GUILayout.Width(50)); - - // var rect = GetControlRect(false, GUILayout.Width(EditorGUIUtility.singleLineHeight)); - // GUI.DrawTexture(rect, Icons.Instance.minus, ScaleMode.StretchToFill, true, 1, LabelColor, 0, 0); - if (GUILayout.Button("-") || value[ingredient.Key]==0) - value.Remove(ingredient.Key); - } - } - - if (v.rect.Contains(Event.current.mousePosition)) - { - var dragData = DragAndDrop.GetGenericData("Item"); - var isId = dragData is Guid guid; - var dragEntry = isId ? DatabaseCache.Get(guid) : null; - var correctType = referenceType.IsInstanceOfType(dragEntry); - if(Event.current.type == EventType.DragUpdated) - DragAndDrop.visualMode = correctType ? DragAndDropVisualMode.Copy : DragAndDropVisualMode.Rejected; - else if(Event.current.type == EventType.DragPerform) - { - if (isId && correctType) - { - DragAndDrop.AcceptDrag(); - value[guid] = 1; - GUI.changed = true; - } - } - } - } - } - - public void Inspect(string label, ref Dictionary value, Type referenceType) - { - Space(); - LabelField(label, EditorStyles.boldLabel); - - using (var v = new VerticalScope(GUI.skin.box)) - { - if (value.Count == 0) - { - using (var h = new HorizontalScope(_list.ListItemStyle)) - { - GUILayout.Label("Drag from list to add item"); - } - } - foreach (var ingredient in value.ToArray()) - { - using (var h = new HorizontalScope(_list.ListItemStyle)) - { - var entry = DatabaseCache.Get(ingredient.Key); - if (entry == null) - { - value.Remove(ingredient.Key); - GUI.changed = true; - return; - } - - if(entry is INamedEntry named) - GUILayout.Label(named.EntryName); - else GUILayout.Label(entry.ID.ToString()); - value[ingredient.Key] = DelayedFloatField(value[ingredient.Key], GUILayout.Width(50)); - - // var rect = GetControlRect(false, GUILayout.Width(EditorGUIUtility.singleLineHeight)); - // GUI.DrawTexture(rect, Icons.Instance.minus, ScaleMode.StretchToFill, true, 1, LabelColor, 0, 0); - if (GUILayout.Button("-")) - value.Remove(ingredient.Key); - } - } - - if (v.rect.Contains(Event.current.mousePosition)) - { - var dragData = DragAndDrop.GetGenericData("Item"); - var isId = dragData is Guid guid; - var dragEntry = isId ? DatabaseCache.Get(guid) : null; - var correctType = referenceType.IsInstanceOfType(dragEntry); - if(Event.current.type == EventType.DragUpdated) - DragAndDrop.visualMode = correctType ? DragAndDropVisualMode.Copy : DragAndDropVisualMode.Rejected; - else if(Event.current.type == EventType.DragPerform) - { - if (isId && correctType) - { - DragAndDrop.AcceptDrag(); - value[guid] = 1; - GUI.changed = true; - } - } - } - } - } - - public void Inspect(string label, ref Dictionary value, Type referenceType, float min, float max) - { - Space(); - LabelField(label, EditorStyles.boldLabel); - - using (var v = new VerticalScope(GUI.skin.box)) - { - if (value.Count == 0) - { - using (var h = new HorizontalScope(_list.ListItemStyle)) - { - GUILayout.Label("Drag from list to add item"); - } - } - foreach (var ingredient in value.ToArray()) - { - using (var h = new HorizontalScope(_list.ListItemStyle)) - { - var entry = DatabaseCache.Get(ingredient.Key); - if (entry == null) - { - value.Remove(ingredient.Key); - GUI.changed = true; - return; - } - - if(entry is INamedEntry named) - GUILayout.Label(named.EntryName); - else GUILayout.Label(entry.ID.ToString()); - value[ingredient.Key] = Slider(value[ingredient.Key], min, max); - - // var rect = GetControlRect(false, GUILayout.Width(EditorGUIUtility.singleLineHeight)); - // GUI.DrawTexture(rect, Icons.Instance.minus, ScaleMode.StretchToFill, true, 1, LabelColor, 0, 0); - if (GUILayout.Button("-")) - value.Remove(ingredient.Key); - } - } - - if (v.rect.Contains(Event.current.mousePosition)) - { - var dragData = DragAndDrop.GetGenericData("Item"); - var isId = dragData is Guid guid; - var dragEntry = isId ? DatabaseCache.Get(guid) : null; - var correctType = referenceType.IsInstanceOfType(dragEntry); - if(Event.current.type == EventType.DragUpdated) - DragAndDrop.visualMode = correctType ? DragAndDropVisualMode.Copy : DragAndDropVisualMode.Rejected; - else if(Event.current.type == EventType.DragPerform) - { - if (isId && correctType) - { - DragAndDrop.AcceptDrag(); - value[guid] = max; - GUI.changed = true; - } - } - } - } - } - - public void Inspect(string label, ref List value, Type entryType) - { - Space(); - LabelField(label, EditorStyles.boldLabel); - - using (var v = new VerticalScope(GUI.skin.box)) - { - if (value.Count == 0) - { - using (var h = new HorizontalScope(_list.ListItemStyle)) - { - GUILayout.Label($"Drag from list to add {entryType.Name}"); - } - } - foreach (var guid in value.ToArray()) - { - using (var h = new HorizontalScope(_list.ListItemStyle)) - { - var entry = DatabaseCache.Get(guid); - if (entry == null) - { - value.Remove(guid); - GUI.changed = true; - } - else - { - GUILayout.Label((entry as INamedEntry)?.EntryName ?? entry.ID.ToString()); - - // var rect = GetControlRect(false, GUILayout.Width(EditorGUIUtility.singleLineHeight)); - // GUI.DrawTexture(rect, Icons.Instance.minus, ScaleMode.StretchToFill, true, 1, LabelColor, 0, 0); - if (GUILayout.Button("-")) - { - value.Remove(guid); - } - } - } - } - - if (v.rect.Contains(Event.current.mousePosition)) - { - var guid = DragAndDrop.GetGenericData("Item"); - var dragObj = DragAndDrop.GetGenericData("Item") is Guid ? DatabaseCache.Get((Guid) guid) : null; - var dragValid = entryType.IsInstanceOfType(dragObj) && dragObj != entry; - if(Event.current.type == EventType.DragUpdated) - DragAndDrop.visualMode = dragValid ? DragAndDropVisualMode.Copy : DragAndDropVisualMode.Rejected; - else if(Event.current.type == EventType.DragPerform) - { - if (dragValid) - { - DragAndDrop.AcceptDrag(); - value.Add((Guid) guid); - GUI.changed = true; - } - } - } - } - } - - public Shape Inspect(string label, Shape value, HullData hull = null) - { - if(value == null) - { - value = new Shape(1, 1); - value[int2.zero] = true; - } - using (new VerticalScope()) - { - Texture2D schematic = null; - if(hull != null && !string.IsNullOrEmpty(hull.Schematic)) - schematic = AssetDatabase.LoadAssetAtPath(hull.Schematic); - using (new HorizontalScope()) - { - GUILayout.Label(label, GUILayout.Width(width)); - GUILayout.Label("Size", GUILayout.ExpandWidth(false)); - if(schematic == null) - { - GUILayout.Label("X", GUILayout.Width(labelWidth)); - value.Width = DelayedIntField(value.Width); - GUILayout.Label("Y", GUILayout.Width(labelWidth)); - value.Height = DelayedIntField(value.Height); - } - else - { - GUILayout.Label("X", GUILayout.Width(labelWidth)); - value.Width = DelayedIntField(value.Width); - value.Height = Mathf.RoundToInt(value.Width * ((float)schematic.height / schematic.width)); - GUILayout.Label("Y", GUILayout.Width(labelWidth)); - LabelField($"{value.Height}"); - } - } - - using (new HorizontalScope()) - { - GUILayout.Label("", GUILayout.Width(width)); - using (var a = new VerticalScope()) - { - if(schematic != null) - { - EditorGUI.DrawPreviewTexture(a.rect, schematic, _schematicMat); - } - for (var y = value.Height - 1; y >= 0; y--) - { - using (new HorizontalScope()) - { - for (var x = 0; x < value.Width; x++) - { - var oldColor = GUI.backgroundColor; - if(hull != null) - { - var hardpoint = hull.Hardpoints - .FirstOrDefault(hp => - hp.Shape.Coordinates - .Select(v => v + hp.Position) - .Any(v => v.x == x && v.y == y)); - if (hardpoint != null) - GUI.backgroundColor = hardpoint.TintColor.ToColor(); - } - value[int2(x, y)] = Toggle(value[int2(x, y)], GUILayout.Width(toggleWidth)); - GUI.backgroundColor = oldColor; - } - } - } - } - GUILayout.FlexibleSpace(); - } - } - - return value; - } - - public void Inspect(string label, ref StatReference effect) - { - using (new HorizontalScope()) - { - GUILayout.Label(label, GUILayout.Width(width)); - - using (new VerticalScope()) - { - var targetObjects = typeof(BehaviorData).GetAllChildClasses() - .Concat(typeof(EquippableItemData).GetAllChildClasses()).ToArray(); - var objectNames = targetObjects.Select(b => b.Name).ToArray(); - var selectedIndex = Array.IndexOf(objectNames, effect.Target); - if (selectedIndex == -1) - { - selectedIndex = 0; - GUI.changed = true; - } - using (new HorizontalScope()) - { - GUILayout.Label("Target", GUILayout.Width(width)); - var newSelection = Popup(selectedIndex, objectNames); - if (newSelection != selectedIndex) - GUI.changed = true; - effect.Target = objectNames[newSelection]; - } - - using (new HorizontalScope()) - { - GUILayout.Label("Stat", GUILayout.Width(width)); - var stats = targetObjects[selectedIndex].GetFields() - .Where(f => f.FieldType == typeof(PerformanceStat)).ToArray(); - if(stats.Length==0) - GUILayout.Label("No Stats!"); - else - { - var statNames = stats.Select(s => s.Name).ToArray(); - var selectedStatIndex = Array.IndexOf(statNames, effect.Stat); - if (selectedStatIndex == -1) - { - selectedStatIndex = 0; - GUI.changed = true; - } - var newSelection = Popup(selectedStatIndex, statNames); - if (newSelection != selectedStatIndex) - GUI.changed = true; - effect.Stat = statNames[newSelection]; - } - } - } - } - } - - public PerformanceStat Inspect(string label, PerformanceStat value, bool isSimple = false) - { - if(value == null) - value = new PerformanceStat(); - using (new VerticalScope()) - { - using (new HorizontalScope()) - { - GUILayout.Label(label, GUILayout.Width(width)); - GUILayout.Label("Min", _labelStyle, GUILayout.Width(labelWidth)); - value.Min = DelayedFloatField(value.Min); - GUILayout.Label("Max", _labelStyle, GUILayout.Width(labelWidth + 5)); - value.Max = DelayedFloatField(value.Max); - } - - // Only display heat, durability and quality effects if the stat actually varies - if (Math.Abs(value.Min - value.Max) > .0001f) - { - using (new HorizontalScope()) - { - GUILayout.Label("", GUILayout.Width(width)); - if (!isSimple) - { - GUILayout.Label("H", _labelStyle, GUILayout.Width(labelWidth)); - value.HeatExponentMultiplier = DelayedFloatField(value.HeatExponentMultiplier); - - GUILayout.Label("D", _labelStyle, GUILayout.Width(labelWidth)); - value.DurabilityExponentMultiplier = DelayedFloatField(value.DurabilityExponentMultiplier); - - GUILayout.Label("Q", _labelStyle, GUILayout.Width(labelWidth)); - value.QualityExponent = DelayedFloatField(value.QualityExponent); - } - else - { - GUILayout.Label("Quality Exponent", _labelStyle); - value.QualityExponent = DelayedFloatField(value.QualityExponent); - } - } - } - - - // using (new HorizontalScope()) - // { - // GUILayout.Label("", GUILayout.Width(width)); - // GUILayout.Label("Ingredient", GUILayout.ExpandWidth(false)); - // var ingredients = crafted.Ingredients.Keys.Select(DatabaseCache.Get).Where(i => i is CraftedItemData).Cast().ToList(); - // var ingredient = value.Ingredient != null ? DatabaseCache.Get(value.Ingredient.Value) as CraftedItemData : null; - // var names = ingredients.Select(i => i.Name).Append("None").ToArray(); - // var selected = value.Ingredient == null || !crafted.Ingredients.ContainsKey(value.Ingredient.Value) - // ? names.Length - 1 - // : ingredients.IndexOf(ingredient); - // var selection = Popup(selected, names); - // value.Ingredient = selection == names.Length - 1 ? (Guid?) null : ingredients[selection].ID; - // } - - Space(); - } - - return value; - } - public void OnGUI() { - _labelStyle = new GUIStyle(EditorStyles.centeredGreyMiniLabel) {normal = {textColor = LabelColor}}; - - Event current = Event.current; - EventType currentEventType = current.type; - if (currentEventType == EventType.KeyDown && current.keyCode == KeyCode.LeftControl) - _ctrlDown = true; - if (currentEventType == EventType.KeyUp && current.keyCode == KeyCode.LeftControl) - _ctrlDown = false; - if (entry==null) { - LabelField($"{(_list.SelectedItem==Guid.Empty?"No Entry Selected":"Selected Entry Not Found in Database")}\n{_list.SelectedItem}"); + LabelField("No Entry Selected!"); return; } @@ -1140,22 +222,18 @@ public class DatabaseInspector : EditorWindow { // if(GUILayout.Button("Print JSON")) // Debug.Log(entry.ToJson()); - // if (GUILayout.Button("Duplicate")) - // { - // DatabaseCache.Duplicate(entry); - // } if (GUILayout.Button("Delete Entry")) { - DatabaseCache.Delete(entry); + CultCache.Delete(entry); entry = null; return; } if (GUILayout.Button("Clone Entry")) { - var copy = JsonConvert.DeserializeObject(JsonConvert.SerializeObject(entry)); + var copy = MessagePackSerializer.Deserialize(previousBytes); copy.ID = Guid.NewGuid(); - DatabaseCache.Add(copy); + CultCache.Add(copy); } } @@ -1166,25 +244,13 @@ public class DatabaseInspector : EditorWindow } Inspect(entry, true); - - #region Hull - var hull = entry as HullData; - if (hull != null) - { - Space(); - - // TODO: Hull Hardpoints Inspector - - } - #endregion if (EditorGUI.EndChangeCheck()) { if(!previousBytes.ByteEquals(MessagePackSerializer.Serialize(entry))) - DatabaseCache.Add(entry); + CultCache.Add(entry); } EndScrollView(); - } } diff --git a/Assets/Scripts/CultCache/Editor/DatabaseView.cs b/Assets/Scripts/CultCache/Editor/DatabaseView.cs index 59d449790..3cd2db9b4 100644 --- a/Assets/Scripts/CultCache/Editor/DatabaseView.cs +++ b/Assets/Scripts/CultCache/Editor/DatabaseView.cs @@ -14,89 +14,119 @@ using UnityEditor; using UnityEngine; using static UnityEditor.EditorGUILayout; -public class DatabaseListView : EditorWindow +public abstract class DatabaseListView : EditorWindow { - // Singleton to avoid multiple instances of window. - private static DatabaseListView _instance; - public static DatabaseListView Instance => _instance ? _instance : GetWindow(); - [MenuItem("Window/GameCult/Database Tools")] - static void Init() => Instance.Show(); - private void Awake() - { - _instance = this; - } + public static GUIStyle ListStyleOdd; + public static GUIStyle ListStyleEven; public Guid SelectedItem; public GUIStyle SelectedStyle; public static RethinkDB R = RethinkDB.R; - private DatabaseCache _databaseCache; - private bool[] _itemTypeFoldouts; - private bool _itemsFoldout; - private bool _compoundFoldout; - private bool _simpleFoldout; - private bool _commoditiesFoldout; - //private bool _consumablesFoldout; - private Type[] _itemTypes; - private bool _listItemStyle; - private GUIStyle _listStyleOdd; - private GUIStyle _listStyleEven; + protected CultCache cultCache; private static DatabaseInspector _inspector; private Type[] _entryTypes; - private bool[] _entryFoldouts; + private bool[] _typeFoldouts; private string _connectionString; - private const float LineHeight = 20; private Vector2 _view; private RethinkQueryStatus _queryStatus; - private HashSet _itemGroupFoldouts = new HashSet(); - private HashSet _itemManufacturerFoldouts = new HashSet(); - private HashSet<(Guid, HardpointType)> _itemManufacturerTypeFoldouts = new HashSet<(Guid, HardpointType)>(); - private string _filePath => Path.Combine(new DirectoryInfo(Application.dataPath).Parent.CreateSubdirectory("GameData").FullName, _fileName); - private string _fileName = "AetherDB.msgpack"; + + private HashSet _groupFoldouts = new HashSet(); + + protected abstract string DatabaseName { get; } + protected abstract string FilePath { get; } + protected virtual DatabaseEntryGroup[] Groupers => new DatabaseEntryGroup[] { }; + + protected class DatabaseEntryGroup : DatabaseEntryGroup where T : DatabaseEntry + { + public Func GroupSelector { get; } + public Func GroupLabel { get; } + public Action Activator { get; } + + public DatabaseEntryGroup(Func groupSelector, Func groupLabel, Action activator) + { + GroupSelector = groupSelector; + GroupLabel = groupLabel; + Activator = activator; + } + + public override bool CanGroup(Type type) + { + return typeof(T) == type; + } + + public override object SelectGroup(DatabaseEntry o) + { + if (o is T t) return GroupSelector(t); + return null; + } + + public override string GetGroupName(object o) + { + if (o is K k) return GroupLabel(k); + return "ERROR"; + } + + public override int HashGroup(object o) + { + if (o is K k) return k.GetHashCode(); + return 0; + } + + public override void Activate(DatabaseEntry o, object g) + { + if(o is T t && g is K k) Activator(t, k); + throw new ArgumentException( + $"Entry group activation failed! Expected: object type {typeof(T)}, group type {typeof(K)}; received: object type {o.GetType()}, group type {g.GetType()}"); + } + } + + protected abstract class DatabaseEntryGroup + { + public abstract bool CanGroup(Type type); + public abstract object SelectGroup(DatabaseEntry o); + public abstract string GetGroupName(object o); + public abstract int HashGroup(object o); + public abstract void Activate(DatabaseEntry o, object g); + } public Color LabelColor => EditorGUIUtility.isProSkin ? Color.white : Color.black; + private bool _listItemStyle; public GUIStyle ListItemStyle => - (_listItemStyle = !_listItemStyle) ? _listStyleEven : _listStyleOdd; + (_listItemStyle = !_listItemStyle) ? ListStyleEven : ListStyleOdd; void OnEnable() { + ListStyleOdd = new GUIStyle + { + normal = {background = EditorGUIUtility.isProSkin ? XKCDColors.DarkGrey.ToTexture() : XKCDColors.LightGrey.ToTexture()}, + margin = new RectOffset(0, 0, 0, 0) + }; + ListStyleEven = new GUIStyle + { + normal = {background = EditorGUIUtility.isProSkin ? Color.Lerp(XKCDColors.DarkGrey,Color.black,.5f).ToTexture() : Color.Lerp(XKCDColors.LightGrey,Color.white,.5f).ToTexture()}, + margin = new RectOffset(0, 0, 0, 0) + }; - //_filePath = ; - // Create database cache - _databaseCache = new DatabaseCache(_filePath); + cultCache = new CultCache(FilePath); - // var onInsert = new Action(entry => - // { - // }); - // _databaseCache.OnDataInsertLocal += onInsert; - // _databaseCache.OnDataInsertRemote += onInsert; + cultCache.OnDataUpdateLocal += _ => Repaint(); + cultCache.OnDataInsertLocal += _ => Repaint(); + cultCache.OnDataDeleteLocal += _ => Repaint(); + cultCache.OnDataUpdateRemote += _ => EditorDispatcher.Dispatch(Repaint); + cultCache.OnDataInsertRemote += _ => EditorDispatcher.Dispatch(Repaint); + cultCache.OnDataDeleteRemote += _ => EditorDispatcher.Dispatch(Repaint); - // var onDelete = new Action(entry => - // { - // }); - // _databaseCache.OnDataDeleteLocal += onDelete; - // _databaseCache.OnDataDeleteRemote += onDelete; - - _databaseCache.OnDataUpdateLocal += _ => Repaint(); - _databaseCache.OnDataInsertLocal += _ => Repaint(); - _databaseCache.OnDataDeleteLocal += _ => Repaint(); - _databaseCache.OnDataUpdateRemote += _ => EditorDispatcher.Dispatch(Repaint); - _databaseCache.OnDataInsertRemote += _ => EditorDispatcher.Dispatch(Repaint); - _databaseCache.OnDataDeleteRemote += _ => EditorDispatcher.Dispatch(Repaint); - - DatabaseInspector.DatabaseCache = _databaseCache; + DatabaseInspector.CultCache = cultCache; _inspector = DatabaseInspector.Instance; _inspector.Show(); - _itemTypes = typeof(ItemData).GetAllChildClasses() - .Where(t => t.GetCustomAttribute() != null).ToArray(); _entryTypes = typeof(DatabaseEntry).GetAllChildClasses() - .Where(t => t.GetCustomAttribute() != null && !typeof(ItemData).IsAssignableFrom(t)).ToArray(); + .Where(t => t.GetCustomAttribute() != null).ToArray(); - _itemTypeFoldouts = new bool[_itemTypes.Length]; - _entryFoldouts = new bool[_entryTypes.Length]; + _typeFoldouts = new bool[_entryTypes.Length]; if (EditorPrefs.HasKey("RethinkDB.URL")) _connectionString = EditorPrefs.GetString("RethinkDB.URL"); @@ -108,20 +138,9 @@ public class DatabaseListView : EditorWindow private void InitStyles() { - var isDark = EditorGUIUtility.isProSkin; - _listStyleOdd = new GUIStyle - { - normal = {background = isDark ? XKCDColors.DarkGrey.ToTexture() : XKCDColors.LightGrey.ToTexture()}, - margin = new RectOffset(0, 0, 0, 0) - }; - _listStyleEven = new GUIStyle - { - normal = {background = isDark ? Color.Lerp(XKCDColors.DarkGrey,Color.black,.5f).ToTexture() : Color.Lerp(XKCDColors.LightGrey,Color.white,.5f).ToTexture()}, - margin = new RectOffset(0, 0, 0, 0) - }; SelectedStyle = new GUIStyle { - normal = {background = isDark ? XKCDColors.DarkGreyBlue.ToTexture() : XKCDColors.Greyblue.ToTexture()}, + normal = {background = EditorGUIUtility.isProSkin ? XKCDColors.DarkGreyBlue.ToTexture() : XKCDColors.Greyblue.ToTexture()}, margin = new RectOffset(0, 0, 0, 0) }; } @@ -142,7 +161,7 @@ public class DatabaseListView : EditorWindow { EditorPrefs.SetString("RethinkDB.URL", _connectionString); JsonKnownTypesSettingsManager.RegisterTypeAssembly(); - _queryStatus = RethinkConnection.RethinkConnect(_databaseCache, _connectionString); + _queryStatus = RethinkConnection.RethinkConnect(cultCache, _connectionString, DatabaseName); } // if (GUILayout.Button("Connect All")) // { @@ -155,21 +174,21 @@ public class DatabaseListView : EditorWindow //_fileName = TextField(_fileName); if (GUILayout.Button("Save")) { - _databaseCache.Save(); + cultCache.Save(); Debug.Log("Local DB Cache Saved!"); } if (GUILayout.Button("Load")) { - _databaseCache.Load(); + cultCache.Load(); Debug.Log("Loaded DB From Local Cache!"); } } - if (_queryStatus != null && _queryStatus.RetrievedItems < _queryStatus.GalaxyEntries + _queryStatus.ItemsEntries) + if (_queryStatus != null && _queryStatus.RetrievedEntries < _queryStatus.TotalEntries) { var progressRect = GetControlRect(false, 20); - EditorGUI.ProgressBar(progressRect, (float)_queryStatus.RetrievedItems/(_queryStatus.GalaxyEntries + _queryStatus.ItemsEntries), "Sync Progress"); + EditorGUI.ProgressBar(progressRect, (float)_queryStatus.RetrievedEntries/_queryStatus.TotalEntries, "Sync Progress"); } GUILayout.Space(5); @@ -183,228 +202,100 @@ public class DatabaseListView : EditorWindow GUILayout.Width(EditorGUIUtility.currentViewWidth), GUILayout.ExpandHeight(true)); - // if(GUILayout.Button("Log Cache Count")) - // Debug.Log($"Cache contains {_databaseCache.AllEntries.Count()} elements"); - - using (var h = new HorizontalScope(ListItemStyle)) - { - _itemsFoldout = Foldout(_itemsFoldout, "Items", true); - } - if (_itemsFoldout) - { - var items = _databaseCache.AllEntries.Where(item => item is ItemData).Cast().ToArray(); - for (var i = 0; i < _itemTypes.Length; i++) - { - using (var h = new HorizontalScope(ListItemStyle)) - { - GUILayout.Space(10); - _itemTypeFoldouts[i] = Foldout(_itemTypeFoldouts[i], - ((NameAttribute) _itemTypes[i].GetCustomAttribute(typeof(NameAttribute)))?.Name ?? FormatTypeName(_itemTypes[i].Name), - true); - } - if (_itemTypeFoldouts[i]) - { - if (_itemTypes[i] == typeof(SimpleCommodityData) || - _itemTypes[i] == typeof(CompoundCommodityData) || - _itemTypes[i] == typeof(HullData)) - { - var typedItems = items - .Where(e => e.GetType() == _itemTypes[i]) - .OrderBy(item => item.Name); - IEnumerable> itemGroups = new List>(); - if(_itemTypes[i] == typeof(SimpleCommodityData)) - itemGroups = typedItems.GroupBy(item => Enum.GetName(typeof(SimpleCommodityCategory), (item as SimpleCommodityData).Category)); - else if(_itemTypes[i] == typeof(CompoundCommodityData)) - itemGroups = typedItems.GroupBy(item => Enum.GetName(typeof(CompoundCommodityCategory), (item as CompoundCommodityData).Category)); - else if (_itemTypes[i] == typeof(HullData)) - itemGroups = typedItems.GroupBy(item => Enum.GetName(typeof(HullType), (item as HullData).HullType)); - else itemGroups = typedItems.GroupBy(item => "All"); - - foreach (var itemGroup in itemGroups) - { - using (var h = new HorizontalScope(ListItemStyle)) - { - GUILayout.Space(20); - if (Foldout(_itemGroupFoldouts.Contains(itemGroup.Key), FormatTypeName(itemGroup.Key), true)) - _itemGroupFoldouts.Add(itemGroup.Key); - else _itemGroupFoldouts.Remove(itemGroup.Key); - } - - if (_itemGroupFoldouts.Contains(itemGroup.Key)) - { - foreach (var item in itemGroup) - { - var style = ListItemStyle; - var selected = SelectedItem == item.ID; - using (new HorizontalScope(selected?SelectedStyle:style)) - { - using (var h = new HorizontalScope()) - { - if (h.rect.Contains(currentEvent.mousePosition)) - { - if (currentEventType == EventType.MouseDrag) - { - DragAndDrop.PrepareStartDrag(); - DragAndDrop.SetGenericData("Item", item.ID); - DragAndDrop.StartDrag("Database Item"); - } - else if (currentEventType == EventType.MouseUp) - Select(item); - } - - GUILayout.Space(30); - GUILayout.Label(item.Name, selected ? EditorStyles.whiteLabel : GUI.skin.label); - } - } - } - } - } - } - else - { - if (!typeof(EquippableItemData).IsAssignableFrom(_itemTypes[i])) - throw new InvalidCastException($"Type {_itemTypes[i].Name} is invalid! Expected equippable item."); - var typedItems = items - .Where(e => e.GetType() == _itemTypes[i]) - .Cast() - .OrderBy(item => item.Name); - var manufacturerGroups = typedItems.GroupBy(item => item.Manufacturer); - foreach (var manufacturerGroup in manufacturerGroups) - { - var manufacturer = _databaseCache.Get(manufacturerGroup.Key); - var manufacturerName = manufacturer?.Name ?? "None"; - using (var h = new HorizontalScope(ListItemStyle)) - { - GUILayout.Space(20); - if (Foldout(_itemManufacturerFoldouts.Contains(manufacturerGroup.Key), manufacturerName, true)) - _itemManufacturerFoldouts.Add(manufacturerGroup.Key); - else _itemManufacturerFoldouts.Remove(manufacturerGroup.Key); - } - - if (_itemManufacturerFoldouts.Contains(manufacturerGroup.Key)) - { - if (_itemTypes[i] == typeof(GearData) || _itemTypes[i] == typeof(WeaponItemData)) - { - var itemGroups = manufacturerGroup.GroupBy(item => item.HardpointType); - - foreach (var itemGroup in itemGroups) - { - using (var h = new HorizontalScope(ListItemStyle)) - { - GUILayout.Space(30); - if (Foldout(_itemManufacturerTypeFoldouts.Contains((manufacturerGroup.Key, itemGroup.Key)), Enum.GetName(typeof(HardpointType), itemGroup.Key), true)) - _itemManufacturerTypeFoldouts.Add((manufacturerGroup.Key, itemGroup.Key)); - else _itemManufacturerTypeFoldouts.Remove((manufacturerGroup.Key, itemGroup.Key)); - } - - if (_itemManufacturerTypeFoldouts.Contains((manufacturerGroup.Key, itemGroup.Key))) - { - foreach (var item in itemGroup) - { - var style = ListItemStyle; - var selected = SelectedItem == item.ID; - using (new HorizontalScope(selected?SelectedStyle:style)) - { - using (var h = new HorizontalScope()) - { - if (h.rect.Contains(currentEvent.mousePosition)) - { - if (currentEventType == EventType.MouseDrag) - { - DragAndDrop.PrepareStartDrag(); - DragAndDrop.SetGenericData("Item", item.ID); - DragAndDrop.StartDrag("Database Item"); - } - else if (currentEventType == EventType.MouseUp) - Select(item); - } - - GUILayout.Space(40); - GUILayout.Label(item.Name, selected ? EditorStyles.whiteLabel : GUI.skin.label); - } - } - } - } - } - } - else - { - foreach (var item in manufacturerGroup) - { - var style = ListItemStyle; - var selected = SelectedItem == item.ID; - using (new HorizontalScope(selected?SelectedStyle:style)) - { - using (var h = new HorizontalScope()) - { - if (h.rect.Contains(currentEvent.mousePosition)) - { - if (currentEventType == EventType.MouseDrag) - { - DragAndDrop.PrepareStartDrag(); - DragAndDrop.SetGenericData("Item", item.ID); - DragAndDrop.StartDrag("Database Item"); - } - else if (currentEventType == EventType.MouseUp) - Select(item); - } - - GUILayout.Space(30); - GUILayout.Label(item.Name, selected ? EditorStyles.whiteLabel : GUI.skin.label); - } - } - } - } - } - } - } - - using (var h = new HorizontalScope(ListItemStyle)) - { - if(GUI.Button(h.rect, GUIContent.none, GUIStyle.none)) - CreateItem(_itemTypes[i]); - GUILayout.Space(20); - GUILayout.Label("New " + FormatTypeName(_itemTypes[i].Name)); - // var rect = GetControlRect(false, GUILayout.Width(EditorGUIUtility.singleLineHeight)); - // GUI.DrawTexture(rect, Icons.Instance.plus, ScaleMode.StretchToFill, true, 1, LabelColor, 0, 0); - } - } - } - } - - //var entries = _databaseCache.AllEntries.Where(item => !(item is ItemData)).ToArray(); for (var i = 0; i < _entryTypes.Length; i++) { using (var h = new HorizontalScope(ListItemStyle)) { - _entryFoldouts[i] = Foldout(_entryFoldouts[i], + _typeFoldouts[i] = Foldout(_typeFoldouts[i], ((NameAttribute) _entryTypes[i].GetCustomAttribute(typeof(NameAttribute)))?.Name ?? FormatTypeName(_entryTypes[i].Name), true); } - if (_entryFoldouts[i]) + if (_typeFoldouts[i]) { - int index = 0; - foreach (var entry in _databaseCache.GetAll(_entryTypes[i]).OrderBy(entry=>entry is INamedEntry namedEntry ? namedEntry.EntryName : entry.ID.ToString())) + // TODO: NESTED GROUPS! + var entries = cultCache.GetAll(_entryTypes[i]) + .OrderBy(entry => entry is INamedEntry namedEntry ? namedEntry.EntryName : entry.ID.ToString()); + var grouper = Groupers.FirstOrDefault(g => g.CanGroup(_entryTypes[i])); + if (grouper != null) { - index++; - var style = ListItemStyle; - var selected = SelectedItem == entry.ID; - using (var h = new HorizontalScope(selected?SelectedStyle:style)) + var groups = entries.GroupBy(o => grouper.SelectGroup(o)); + foreach (var group in groups) { - if (h.rect.Contains(currentEvent.mousePosition)) + var groupHash = grouper.HashGroup(group.Key); + var groupName = grouper.GetGroupName(group.Key); + using (var h = new HorizontalScope(ListItemStyle)) { - if (currentEventType == EventType.MouseDrag) - { - DragAndDrop.PrepareStartDrag(); - DragAndDrop.SetGenericData("Item", entry.ID); - DragAndDrop.StartDrag("Database Item"); - } - else if (currentEventType == EventType.MouseUp) - Select(entry); + GUILayout.Space(10); + if (Foldout(_groupFoldouts.Contains(groupHash), FormatTypeName(groupName), true)) + _groupFoldouts.Add(groupHash); + else _groupFoldouts.Remove(groupHash); + } + + if (_groupFoldouts.Contains(groupHash)) + { + int index = 0; + foreach (var entry in group) + { + index++; + var style = ListItemStyle; + var selected = SelectedItem == entry.ID; + using (new HorizontalScope(selected?SelectedStyle:style)) + { + using (var h = new HorizontalScope()) + { + if (h.rect.Contains(currentEvent.mousePosition)) + { + if (currentEventType == EventType.MouseDrag) + { + DragAndDrop.PrepareStartDrag(); + DragAndDrop.SetGenericData("Item", entry.ID); + DragAndDrop.StartDrag("Database Item"); + } + else if (currentEventType == EventType.MouseUp) + Select(entry); + } + + GUILayout.Space(20); + GUILayout.Label((entry as INamedEntry)?.EntryName ?? index.ToString(), selected ? EditorStyles.whiteLabel : GUI.skin.label); + } + } + } + + using (var h = new HorizontalScope(ListItemStyle)) + { + if(GUI.Button(h.rect, GUIContent.none, GUIStyle.none)) + CreateItem(_entryTypes[i], entry => grouper.Activate(entry, group.Key)); + GUILayout.Space(20); + GUILayout.Label($"New {groupName}"); + } + } + } + } + else + { + int index = 0; + foreach (var entry in entries) + { + index++; + var style = ListItemStyle; + var selected = SelectedItem == entry.ID; + using (var h = new HorizontalScope(selected?SelectedStyle:style)) + { + if (h.rect.Contains(currentEvent.mousePosition)) + { + if (currentEventType == EventType.MouseDrag) + { + DragAndDrop.PrepareStartDrag(); + DragAndDrop.SetGenericData("Item", entry.ID); + DragAndDrop.StartDrag("Database Item"); + } + else if (currentEventType == EventType.MouseUp) + Select(entry); + } + GUILayout.Space(10); + GUILayout.Label((entry as INamedEntry)?.EntryName ?? index.ToString(), selected ? EditorStyles.whiteLabel : GUI.skin.label); } - GUILayout.Space(10); - GUILayout.Label((entry as INamedEntry)?.EntryName ?? index.ToString(), selected ? EditorStyles.whiteLabel : GUI.skin.label); } } @@ -413,9 +304,7 @@ public class DatabaseListView : EditorWindow if(GUI.Button(h.rect, GUIContent.none, GUIStyle.none)) CreateItem(_entryTypes[i]); GUILayout.Space(10); - GUILayout.Label("New " + _entryTypes[i].Name); - // var rect = GetControlRect(false, GUILayout.Width(EditorGUIUtility.singleLineHeight)); - // GUI.DrawTexture(rect, Icons.Instance.plus, ScaleMode.StretchToFill, true, 1, LabelColor, 0, 0); + GUILayout.Label($"New {_entryTypes[i].Name}"); } } } @@ -434,7 +323,7 @@ public class DatabaseListView : EditorWindow { SelectedItem = item.ID; Repaint(); - _inspector.entry = _databaseCache.Get(SelectedItem); + _inspector.entry = cultCache.Get(SelectedItem); _inspector.Repaint(); } @@ -444,7 +333,7 @@ public class DatabaseListView : EditorWindow if(newEntry is INamedEntry entry) entry.EntryName = $"New {FormatTypeName(type.Name)}"; onCreate?.Invoke(newEntry); - _databaseCache.Add(newEntry); + cultCache.Add(newEntry); Select(newEntry); return newEntry; } diff --git a/Assets/Scripts/CultCache/Editor/InspectorBase.cs b/Assets/Scripts/CultCache/Editor/InspectorBase.cs deleted file mode 100644 index 85a51b513..000000000 --- a/Assets/Scripts/CultCache/Editor/InspectorBase.cs +++ /dev/null @@ -1,9 +0,0 @@ -public abstract class InspectorBase -{ - protected const int width = 150; - protected const int labelWidth = 20; - protected const int toggleWidth = 18; - protected const int arrowWidth = 22; - - public abstract T Inspect(string label, T value); -} \ No newline at end of file diff --git a/Assets/Scripts/CultCache/Editor/Inspectors/AetheriaInspectors.cs b/Assets/Scripts/CultCache/Editor/Inspectors/AetheriaInspectors.cs new file mode 100644 index 000000000..7223c59ce --- /dev/null +++ b/Assets/Scripts/CultCache/Editor/Inspectors/AetheriaInspectors.cs @@ -0,0 +1,183 @@ +using System; +using System.Linq; +using Unity.Mathematics; +using UnityEditor; +using UnityEngine; +using static UnityEditor.EditorGUILayout; +using static Unity.Mathematics.math; + +public class StatReferenceInspector : BaseInspector +{ + public override StatReference Inspect(string label, StatReference value, object parent, DatabaseInspector inspectorWindow) + { + using (new HorizontalScope()) + { + GUILayout.Label(label, GUILayout.Width(width)); + + using (new VerticalScope()) + { + var targetObjects = typeof(BehaviorData).GetAllChildClasses() + .Concat(typeof(EquippableItemData).GetAllChildClasses()).ToArray(); + var objectNames = targetObjects.Select(b => b.Name).ToArray(); + var selectedIndex = Array.IndexOf(objectNames, value.Target); + if (selectedIndex == -1) + { + selectedIndex = 0; + GUI.changed = true; + } + using (new HorizontalScope()) + { + GUILayout.Label("Target", GUILayout.Width(width)); + var newSelection = Popup(selectedIndex, objectNames); + if (newSelection != selectedIndex) + GUI.changed = true; + value.Target = objectNames[newSelection]; + } + + using (new HorizontalScope()) + { + GUILayout.Label("Stat", GUILayout.Width(width)); + var stats = targetObjects[selectedIndex].GetFields() + .Where(f => f.FieldType == typeof(PerformanceStat)).ToArray(); + if(stats.Length==0) + GUILayout.Label("No Stats!"); + else + { + var statNames = stats.Select(s => s.Name).ToArray(); + var selectedStatIndex = Array.IndexOf(statNames, value.Stat); + if (selectedStatIndex == -1) + { + selectedStatIndex = 0; + GUI.changed = true; + } + var newSelection = Popup(selectedStatIndex, statNames); + if (newSelection != selectedStatIndex) + GUI.changed = true; + value.Stat = statNames[newSelection]; + } + } + } + } + + return value; + } +} + +public class PerformanceStatInspector : BaseInspector +{ + public override PerformanceStat Inspect(string label, PerformanceStat value, object parent, DatabaseInspector inspectorWindow) + { + if(value == null) + value = new PerformanceStat(); + using (new VerticalScope()) + { + using (new HorizontalScope()) + { + GUILayout.Label(label, GUILayout.Width(width)); + GUILayout.Label("Min", EditorStyles.miniLabel, GUILayout.Width(labelWidth)); + value.Min = DelayedFloatField(value.Min); + GUILayout.Label("Max", EditorStyles.miniLabel, GUILayout.Width(labelWidth + 5)); + value.Max = DelayedFloatField(value.Max); + } + + // Only display heat, durability and quality effects if the stat actually varies + if (Math.Abs(value.Min - value.Max) > .0001f) + { + using (new HorizontalScope()) + { + GUILayout.Label("", GUILayout.Width(width)); + GUILayout.Label("H", EditorStyles.miniLabel, GUILayout.Width(labelWidth)); + value.HeatExponentMultiplier = DelayedFloatField(value.HeatExponentMultiplier); + + GUILayout.Label("D", EditorStyles.miniLabel, GUILayout.Width(labelWidth)); + value.DurabilityExponentMultiplier = DelayedFloatField(value.DurabilityExponentMultiplier); + + GUILayout.Label("Q", EditorStyles.miniLabel, GUILayout.Width(labelWidth)); + value.QualityExponent = DelayedFloatField(value.QualityExponent); + } + } + + Space(); + } + + return value; + } +} + +public class ShapeInspector : BaseInspector +{ + private Material _schematicMat = new Material(Shader.Find("Legacy Shaders/Particles/Additive")); + + public override Shape Inspect(string label, Shape value, object parent, DatabaseInspector inspectorWindow) + { + var hull = parent as HullData; + if(value == null) + { + value = new Shape(1, 1); + value[int2(0)] = true; + } + using (new VerticalScope()) + { + Texture2D schematic = null; + if(hull != null && !string.IsNullOrEmpty(hull.Schematic)) + schematic = AssetDatabase.LoadAssetAtPath(hull.Schematic); + using (new HorizontalScope()) + { + GUILayout.Label(label, GUILayout.Width(width)); + GUILayout.Label("Size", GUILayout.ExpandWidth(false)); + if(schematic == null) + { + GUILayout.Label("X", GUILayout.Width(labelWidth)); + value.Width = DelayedIntField(value.Width); + GUILayout.Label("Y", GUILayout.Width(labelWidth)); + value.Height = DelayedIntField(value.Height); + } + else + { + GUILayout.Label("X", GUILayout.Width(labelWidth)); + value.Width = DelayedIntField(value.Width); + value.Height = Mathf.RoundToInt(value.Width * ((float)schematic.height / schematic.width)); + GUILayout.Label("Y", GUILayout.Width(labelWidth)); + LabelField($"{value.Height}"); + } + } + + using (new HorizontalScope()) + { + GUILayout.Label("", GUILayout.Width(width)); + using (var a = new VerticalScope()) + { + if(schematic != null) + { + EditorGUI.DrawPreviewTexture(a.rect, schematic, _schematicMat); + } + for (var y = value.Height - 1; y >= 0; y--) + { + using (new HorizontalScope()) + { + for (var x = 0; x < value.Width; x++) + { + var oldColor = GUI.backgroundColor; + if(hull != null) + { + var hardpoint = hull.Hardpoints + .FirstOrDefault(hp => + hp.Shape.Coordinates + .Select(v => v + hp.Position) + .Any(v => v.x == x && v.y == y)); + if (hardpoint != null) + GUI.backgroundColor = hardpoint.TintColor.ToColor(); + } + value[int2(x, y)] = Toggle(value[int2(x, y)], GUILayout.Width(toggleWidth)); + GUI.backgroundColor = oldColor; + } + } + } + } + GUILayout.FlexibleSpace(); + } + } + + return value; + } +} \ No newline at end of file diff --git a/Assets/Scripts/CultCache/Editor/Inspectors/AetheriaInspectors.cs.meta b/Assets/Scripts/CultCache/Editor/Inspectors/AetheriaInspectors.cs.meta new file mode 100644 index 000000000..d04e230b0 --- /dev/null +++ b/Assets/Scripts/CultCache/Editor/Inspectors/AetheriaInspectors.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 57d0bc090768458b9428efd7a8a33741 +timeCreated: 1617069994 \ No newline at end of file diff --git a/Assets/Scripts/CultCache/Editor/Inspectors/AnimationCurveInspector.cs b/Assets/Scripts/CultCache/Editor/Inspectors/AnimationCurveInspector.cs new file mode 100644 index 000000000..ceaf74bea --- /dev/null +++ b/Assets/Scripts/CultCache/Editor/Inspectors/AnimationCurveInspector.cs @@ -0,0 +1,39 @@ +using System.Linq; +using Unity.Mathematics; +using UnityEditor; +using UnityEngine; +using static UnityEditor.EditorGUILayout; +using static Unity.Mathematics.math; + +public class AnimationCurveFloat4Inspector : BaseInspector +{ + public override float4[] Inspect(string label, float4[] value, object parent, DatabaseInspector inspectorWindow) + { + var val = value != null && value.Length > 0 + ? value.ToCurve() + : new AnimationCurve(); + using (var h = new EditorGUILayout.HorizontalScope()) + { + GUILayout.Label(label, GUILayout.Width(width)); + val = CurveField(val, Color.yellow, new Rect(0, 0, 1, 1)); + } + + return val.keys.Select(k => float4(k.time, k.value, k.inTangent, k.outTangent)).ToArray(); + } +} + +public class AnimationCurveInspect : BaseInspector +{ + public override AnimationCurve Inspect(string label, AnimationCurve value, object parent, DatabaseInspector inspectorWindow) + { + using (var h = new HorizontalScope()) + { + GUILayout.Label(label, GUILayout.Width(width)); + if (value == null) + value = new AnimationCurve(); + value = CurveField(value, Color.yellow, new Rect(0, 0, 1, 1)); + } + + return value; + } +} \ No newline at end of file diff --git a/Assets/Scripts/CultCache/Editor/Inspectors/AnimationCurveInspector.cs.meta b/Assets/Scripts/CultCache/Editor/Inspectors/AnimationCurveInspector.cs.meta new file mode 100644 index 000000000..fffa738ed --- /dev/null +++ b/Assets/Scripts/CultCache/Editor/Inspectors/AnimationCurveInspector.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: c89e0e7eb9f243cbbce28df59f6fb1c9 +timeCreated: 1617066399 \ No newline at end of file diff --git a/Assets/Scripts/CultCache/Editor/Inspectors/DatabaseLinkInspector.cs b/Assets/Scripts/CultCache/Editor/Inspectors/DatabaseLinkInspector.cs new file mode 100644 index 000000000..acccbeeb8 --- /dev/null +++ b/Assets/Scripts/CultCache/Editor/Inspectors/DatabaseLinkInspector.cs @@ -0,0 +1,152 @@ +using System; +using System.Collections.Generic; +using UnityEditor; +using UnityEngine; +using static UnityEditor.EditorGUILayout; + +public class DatabaseLinkInspector : BaseInspector +{ + public override Guid Inspect(string label, Guid value, object parent, DatabaseInspector inspectorWindow, InspectableDatabaseLinkAttribute link) + { + LabelField(label, EditorStyles.boldLabel); + var valueEntry = DatabaseInspector.CultCache.Get(value); + using (var h = new HorizontalScope(GUI.skin.box)) + { + GUILayout.Label((valueEntry as INamedEntry)?.EntryName ?? valueEntry?.ID.ToString() ?? $"Assign a {link.EntryType.Name} by dragging from the list panel."); + + if (h.rect.Contains(Event.current.mousePosition) && (Event.current.type == EventType.DragUpdated || Event.current.type == EventType.DragPerform)) + { + var guid = (Guid) DragAndDrop.GetGenericData("Item"); + var dragEntry = DatabaseInspector.CultCache.Get(guid); + var dragValid = dragEntry != null && link.EntryType.IsInstanceOfType(dragEntry) && dragEntry != valueEntry; + if(Event.current.type == EventType.DragUpdated) + DragAndDrop.visualMode = dragValid ? DragAndDropVisualMode.Copy : DragAndDropVisualMode.Rejected; + else if(Event.current.type == EventType.DragPerform) + { + if (dragValid) + { + DragAndDrop.AcceptDrag(); + GUI.changed = true; + return guid; + } + } + } + if (GUILayout.Button("-", GUILayout.Width((EditorGUIUtility.singleLineHeight - 3)*2), GUILayout.Height(EditorGUIUtility.singleLineHeight-3))) + { + return Guid.Empty; + } + } + + return value; + } +} + +public class DatabaseLinkObjectInspector : BaseInspector> where T : DatabaseEntry +{ + public override DatabaseLink Inspect(string label, DatabaseLink value, object parent, DatabaseInspector inspectorWindow) + { + if (value == null) + value = new DatabaseLink{Cache = DatabaseInspector.CultCache}; + LabelField(label, EditorStyles.boldLabel); + var valueEntry = value.Value; + using (var h = new HorizontalScope(GUI.skin.box)) + { + GUILayout.Label((valueEntry as INamedEntry)?.EntryName ?? valueEntry?.ID.ToString() ?? $"Assign a {typeof(T).Name} by dragging from the list panel."); + + if (h.rect.Contains(Event.current.mousePosition) && (Event.current.type == EventType.DragUpdated || Event.current.type == EventType.DragPerform)) + { + var guid = (Guid) DragAndDrop.GetGenericData("Item"); + var dragEntry = DatabaseInspector.CultCache.Get(guid); + var dragValid = dragEntry is T && dragEntry != valueEntry; + if(Event.current.type == EventType.DragUpdated) + DragAndDrop.visualMode = dragValid ? DragAndDropVisualMode.Copy : DragAndDropVisualMode.Rejected; + else if(Event.current.type == EventType.DragPerform) + { + if (dragValid) + { + DragAndDrop.AcceptDrag(); + value.LinkID = guid; + return value; + } + } + } + if (GUILayout.Button("-", GUILayout.Width((EditorGUIUtility.singleLineHeight - 3)*2), GUILayout.Height(EditorGUIUtility.singleLineHeight-3))) + { + value.LinkID = Guid.Empty; + } + } + + return value; + } +} + +public class DatabaseLinkListInspector : BaseInspector, InspectableDatabaseLinkAttribute> +{ + private bool _listItemStyle; + public GUIStyle ListItemStyle => + (_listItemStyle = !_listItemStyle) ? DatabaseListView.ListStyleEven : DatabaseListView.ListStyleOdd; + + public override List Inspect(string label, + List value, + object parent, + DatabaseInspector inspectorWindow, + InspectableDatabaseLinkAttribute link) + { + Space(); + LabelField(label, EditorStyles.boldLabel); + + using (var v = new VerticalScope(GUI.skin.box)) + { + if (value.Count == 0) + { + using (new HorizontalScope(ListItemStyle)) + { + GUILayout.Label($"Drag from list to add {link.EntryType.Name}"); + } + } + foreach (var guid in value.ToArray()) + { + using (new HorizontalScope(ListItemStyle)) + { + var entry = DatabaseInspector.CultCache.Get(guid); + if (entry == null) + { + value.Remove(guid); + GUI.changed = true; + } + else + { + GUILayout.Label((entry as INamedEntry)?.EntryName ?? entry.ID.ToString()); + + // var rect = GetControlRect(false, GUILayout.Width(EditorGUIUtility.singleLineHeight)); + // GUI.DrawTexture(rect, Icons.Instance.minus, ScaleMode.StretchToFill, true, 1, LabelColor, 0, 0); + if (GUILayout.Button("-", GUILayout.Width((EditorGUIUtility.singleLineHeight - 3)*2), GUILayout.Height(EditorGUIUtility.singleLineHeight-3))) + { + value.Remove(guid); + } + } + } + } + + if (v.rect.Contains(Event.current.mousePosition)) + { + var guid = DragAndDrop.GetGenericData("Item"); + var dragObj = DragAndDrop.GetGenericData("Item") is Guid ? DatabaseInspector.CultCache.Get((Guid) guid) : null; + var dragValid = dragObj != null && link.EntryType.IsInstanceOfType(dragObj) && !value.Contains(dragObj.ID); + if(Event.current.type == EventType.DragUpdated) + DragAndDrop.visualMode = dragValid ? DragAndDropVisualMode.Copy : DragAndDropVisualMode.Rejected; + else if(Event.current.type == EventType.DragPerform) + { + if (dragValid) + { + DragAndDrop.AcceptDrag(); + value.Add((Guid) guid); + GUI.changed = true; + } + } + } + } + + return value; + } +} \ No newline at end of file diff --git a/Assets/Scripts/CultCache/Editor/Inspectors/DatabaseLinkInspector.cs.meta b/Assets/Scripts/CultCache/Editor/Inspectors/DatabaseLinkInspector.cs.meta new file mode 100644 index 000000000..42978a734 --- /dev/null +++ b/Assets/Scripts/CultCache/Editor/Inspectors/DatabaseLinkInspector.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 5e08712ea4854536b130f82ad61db7a8 +timeCreated: 1617069551 \ No newline at end of file diff --git a/Assets/Scripts/CultCache/Editor/Inspectors/DictionaryInspector.cs b/Assets/Scripts/CultCache/Editor/Inspectors/DictionaryInspector.cs new file mode 100644 index 000000000..0c04b95b8 --- /dev/null +++ b/Assets/Scripts/CultCache/Editor/Inspectors/DictionaryInspector.cs @@ -0,0 +1,223 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using UnityEditor; +using UnityEngine; +using static UnityEditor.EditorGUILayout; + +public class FloatDictionaryInspector : BaseInspector, InspectableDatabaseLinkAttribute> +{ + private bool _listItemStyle; + public GUIStyle ListItemStyle => + (_listItemStyle = !_listItemStyle) ? DatabaseListView.ListStyleEven : DatabaseListView.ListStyleOdd; + + public override Dictionary Inspect(string label, + Dictionary value, + object parent, + DatabaseInspector inspectorWindow, + InspectableDatabaseLinkAttribute attribute) + { + Space(); + LabelField(label, EditorStyles.boldLabel); + + using (var v = new VerticalScope(GUI.skin.box)) + { + if (value.Count == 0) + { + using (new HorizontalScope(ListItemStyle)) + { + GUILayout.Label("Drag from list to add item"); + } + } + foreach (var ingredient in value.ToArray()) + { + using (new HorizontalScope(ListItemStyle)) + { + var entry = DatabaseInspector.CultCache.Get(ingredient.Key); + if (entry == null) + { + value.Remove(ingredient.Key); + GUI.changed = true; + return value; + } + + if(entry is INamedEntry named) + GUILayout.Label(named.EntryName); + else GUILayout.Label(entry.ID.ToString()); + value[ingredient.Key] = DelayedFloatField(value[ingredient.Key], GUILayout.Width(50)); + + // var rect = GetControlRect(false, GUILayout.Width(EditorGUIUtility.singleLineHeight)); + // GUI.DrawTexture(rect, Icons.Instance.minus, ScaleMode.StretchToFill, true, 1, LabelColor, 0, 0); + if (GUILayout.Button("-", GUILayout.Width((EditorGUIUtility.singleLineHeight - 3)*2), GUILayout.Height(EditorGUIUtility.singleLineHeight-3))) + value.Remove(ingredient.Key); + } + } + + if (v.rect.Contains(Event.current.mousePosition)) + { + var dragData = DragAndDrop.GetGenericData("Item"); + var isId = dragData is Guid guid; + var dragEntry = isId ? DatabaseInspector.CultCache.Get(guid) : null; + var correctType = attribute.EntryType.IsInstanceOfType(dragEntry); + if(Event.current.type == EventType.DragUpdated) + DragAndDrop.visualMode = correctType ? DragAndDropVisualMode.Copy : DragAndDropVisualMode.Rejected; + else if(Event.current.type == EventType.DragPerform) + { + if (isId && correctType) + { + DragAndDrop.AcceptDrag(); + value[guid] = 1; + GUI.changed = true; + } + } + } + } + + return value; + } +} + +public class RangedFloatDictionaryInspector : BaseInspector, InspectableDatabaseLinkAttribute, RangedFloatAttribute> +{ + private bool _listItemStyle; + public GUIStyle ListItemStyle => + (_listItemStyle = !_listItemStyle) ? DatabaseListView.ListStyleEven : DatabaseListView.ListStyleOdd; + + public override Dictionary Inspect(string label, + Dictionary value, + object parent, + DatabaseInspector inspectorWindow, + InspectableDatabaseLinkAttribute link, + RangedFloatAttribute range) + { + Space(); + LabelField(label, EditorStyles.boldLabel); + + using (var v = new VerticalScope(GUI.skin.box)) + { + if (value.Count == 0) + { + using (new HorizontalScope(ListItemStyle)) + { + GUILayout.Label("Drag from list to add item"); + } + } + foreach (var ingredient in value.ToArray()) + { + using (new HorizontalScope(ListItemStyle)) + { + var entry = DatabaseInspector.CultCache.Get(ingredient.Key); + if (entry == null) + { + value.Remove(ingredient.Key); + GUI.changed = true; + return value; + } + + if(entry is INamedEntry named) + GUILayout.Label(named.EntryName); + else GUILayout.Label(entry.ID.ToString()); + value[ingredient.Key] = Slider(value[ingredient.Key], range.Min, range.Max); + + // var rect = GetControlRect(false, GUILayout.Width(EditorGUIUtility.singleLineHeight)); + // GUI.DrawTexture(rect, Icons.Instance.minus, ScaleMode.StretchToFill, true, 1, LabelColor, 0, 0); + if (GUILayout.Button("-", GUILayout.Width((EditorGUIUtility.singleLineHeight - 3)*2), GUILayout.Height(EditorGUIUtility.singleLineHeight-3))) + value.Remove(ingredient.Key); + } + } + + if (v.rect.Contains(Event.current.mousePosition)) + { + var dragData = DragAndDrop.GetGenericData("Item"); + var isId = dragData is Guid guid; + var dragEntry = isId ? DatabaseInspector.CultCache.Get(guid) : null; + var correctType = link.EntryType.IsInstanceOfType(dragEntry); + if(Event.current.type == EventType.DragUpdated) + DragAndDrop.visualMode = correctType ? DragAndDropVisualMode.Copy : DragAndDropVisualMode.Rejected; + else if(Event.current.type == EventType.DragPerform) + { + if (isId && correctType) + { + DragAndDrop.AcceptDrag(); + value[guid] = range.Max; + GUI.changed = true; + } + } + } + } + + return value; + } +} + +public class IntDictionaryInspector : BaseInspector, InspectableDatabaseLinkAttribute> +{ + private bool _listItemStyle; + public GUIStyle ListItemStyle => + (_listItemStyle = !_listItemStyle) ? DatabaseListView.ListStyleEven : DatabaseListView.ListStyleOdd; + + public override Dictionary Inspect(string label, + Dictionary value, + object parent, + DatabaseInspector inspectorWindow, + InspectableDatabaseLinkAttribute attribute) + { + Space(); + LabelField(label, EditorStyles.boldLabel); + + using (var v = new VerticalScope(GUI.skin.box)) + { + if (value.Count == 0) + { + using (var h = new HorizontalScope(ListItemStyle)) + { + GUILayout.Label("Drag from list to add item"); + } + } + foreach (var ingredient in value.ToArray()) + { + using (var h = new HorizontalScope(ListItemStyle)) + { + var entry = DatabaseInspector.CultCache.Get(ingredient.Key); + if (entry == null) + { + value.Remove(ingredient.Key); + GUI.changed = true; + return value; + } + if(entry is INamedEntry named) + GUILayout.Label(named.EntryName); + else GUILayout.Label(entry.ID.ToString()); + + value[ingredient.Key] = DelayedIntField(value[ingredient.Key], GUILayout.Width(50)); + + // var rect = GetControlRect(false, GUILayout.Width(EditorGUIUtility.singleLineHeight)); + // GUI.DrawTexture(rect, Icons.Instance.minus, ScaleMode.StretchToFill, true, 1, LabelColor, 0, 0); + if (GUILayout.Button("-", GUILayout.Width((EditorGUIUtility.singleLineHeight - 3)*2), GUILayout.Height(EditorGUIUtility.singleLineHeight-3)) || value[ingredient.Key]==0) + value.Remove(ingredient.Key); + } + } + + if (v.rect.Contains(Event.current.mousePosition)) + { + var dragData = DragAndDrop.GetGenericData("Item"); + var isId = dragData is Guid guid; + var dragEntry = isId ? DatabaseInspector.CultCache.Get(guid) : null; + var correctType = attribute.EntryType.IsInstanceOfType(dragEntry); + if(Event.current.type == EventType.DragUpdated) + DragAndDrop.visualMode = correctType ? DragAndDropVisualMode.Copy : DragAndDropVisualMode.Rejected; + else if(Event.current.type == EventType.DragPerform) + { + if (isId && correctType) + { + DragAndDrop.AcceptDrag(); + value[guid] = 1; + GUI.changed = true; + } + } + } + } + + return value; + } +} \ No newline at end of file diff --git a/Assets/Scripts/CultCache/Editor/Inspectors/DictionaryInspector.cs.meta b/Assets/Scripts/CultCache/Editor/Inspectors/DictionaryInspector.cs.meta new file mode 100644 index 000000000..08a3ac73a --- /dev/null +++ b/Assets/Scripts/CultCache/Editor/Inspectors/DictionaryInspector.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: a42620fd406045889578e2ad8d5fd8de +timeCreated: 1617067689 \ No newline at end of file diff --git a/Assets/Scripts/CultCache/Editor/Inspectors/FloatInspector.cs b/Assets/Scripts/CultCache/Editor/Inspectors/FloatInspector.cs new file mode 100644 index 000000000..9b4c58864 --- /dev/null +++ b/Assets/Scripts/CultCache/Editor/Inspectors/FloatInspector.cs @@ -0,0 +1,54 @@ +using UnityEditor; +using UnityEngine; +using static UnityEditor.EditorGUILayout; + +public class FloatInspector : BaseInspector +{ + public override float Inspect(string label, float value, object parent, DatabaseInspector inspectorWindow) + { + using (new HorizontalScope()) + { + GUILayout.Label(label, GUILayout.Width(width)); + return DelayedFloatField(value); + } + } +} + +public class RangedFloatInspector : BaseInspector +{ + public override float Inspect(string label, + float value, + object parent, + DatabaseInspector inspectorWindow, + RangedFloatInspectableAttribute attribute) + { + using (new HorizontalScope()) + { + GUILayout.Label(label, GUILayout.Width(width)); + return Slider(value, attribute.Min, attribute.Max); + } + } +} + +public class TemperatureFloatInspector : BaseInspector +{ + public override float Inspect(string label, + float value, + object parent, + DatabaseInspector inspectorWindow, + InspectableTemperatureAttribute attribute) + { + using (var h = new HorizontalScope()) + { + GUILayout.Label(label, GUILayout.Width(width)); + GUILayout.Label("°K", EditorStyles.miniLabel, GUILayout.Width(labelWidth)); + value = DelayedFloatField(value); + GUILayout.Label("°C", EditorStyles.miniLabel, GUILayout.Width(labelWidth)); + value = DelayedFloatField(value - 273.15f) + 273.15f; + GUILayout.Label("°F", EditorStyles.miniLabel, GUILayout.Width(labelWidth)); + value = (DelayedFloatField((value - 273.15f) * 1.8f + 32) - 32) / 1.8f + 273.15f; + + return value; + } + } +} \ No newline at end of file diff --git a/Assets/Scripts/CultCache/Editor/Inspectors/FloatInspector.cs.meta b/Assets/Scripts/CultCache/Editor/Inspectors/FloatInspector.cs.meta new file mode 100644 index 000000000..17a7c71fc --- /dev/null +++ b/Assets/Scripts/CultCache/Editor/Inspectors/FloatInspector.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 47b8e5bc90714055881eb31baf2ab879 +timeCreated: 1617065074 \ No newline at end of file diff --git a/Assets/Scripts/CultCache/Editor/Inspectors/IntInspector.cs b/Assets/Scripts/CultCache/Editor/Inspectors/IntInspector.cs new file mode 100644 index 000000000..ae5a34812 --- /dev/null +++ b/Assets/Scripts/CultCache/Editor/Inspectors/IntInspector.cs @@ -0,0 +1,27 @@ +using UnityEditor; +using UnityEngine; +using static UnityEditor.EditorGUILayout; + +public class IntInspector : BaseInspector +{ + public override int Inspect(string label, int value, object parent, DatabaseInspector inspectorWindow) + { + using (new HorizontalScope()) + { + GUILayout.Label(label, GUILayout.Width(width)); + return DelayedIntField(value); + } + } +} + +public class RangedIntInspector : BaseInspector +{ + public override int Inspect(string label, int value, object parent, DatabaseInspector inspectorWindow, RangedIntInspectableAttribute attribute) + { + using (new HorizontalScope()) + { + GUILayout.Label(label, GUILayout.Width(width)); + return IntSlider(value, attribute.Min, attribute.Max); + } + } +} \ No newline at end of file diff --git a/Assets/Scripts/CultCache/Editor/Inspectors/IntInspector.cs.meta b/Assets/Scripts/CultCache/Editor/Inspectors/IntInspector.cs.meta new file mode 100644 index 000000000..969165fd1 --- /dev/null +++ b/Assets/Scripts/CultCache/Editor/Inspectors/IntInspector.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: ac7d3b8651964ce1a732a002447d6f69 +timeCreated: 1617065365 \ No newline at end of file diff --git a/Assets/Scripts/CultCache/Editor/Inspectors/ListInspector.cs b/Assets/Scripts/CultCache/Editor/Inspectors/ListInspector.cs new file mode 100644 index 000000000..345ba30b3 --- /dev/null +++ b/Assets/Scripts/CultCache/Editor/Inspectors/ListInspector.cs @@ -0,0 +1,142 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using UnityEditor; +using UnityEngine; +using static UnityEditor.EditorGUILayout; + +public class ListInspector : BaseInspector> +{ + private bool _listItemStyle; + private static HashSet _listItemFoldouts = new HashSet(); + public GUIStyle ListItemStyle => + (_listItemStyle = !_listItemStyle) ? DatabaseListView.ListStyleEven : DatabaseListView.ListStyleOdd; + + public override List Inspect(string label, List list, object parent, DatabaseInspector inspectorWindow) + { + var listType = typeof(T); + if (listType.GetCustomAttribute() != null) + { + Space(); + using (new VerticalScope(GUI.skin.box)) + { + if (list == null) + { + list = new List(); + } + else + { + var sorted = true; + var order = int.MinValue; + foreach(var element in list) + { + if (element == null) + { + list.Remove(element); + return list; + } + var elementType = element.GetType(); + var elementOrder = elementType.GetCustomAttribute()?.Order ?? 0; + if (elementOrder < order) + sorted = false; + order = elementOrder; + } + + if (!sorted) + { + list.Sort((x, y) => (x.GetType().GetCustomAttribute()?.Order ?? 0).CompareTo(y.GetType().GetCustomAttribute()?.Order ?? 0)); + } + } + foreach (var o in list) + { + if (o == null) + { + list.Remove(o); + break; + } + bool _tinted = false; + var originalColor = GUI.backgroundColor; + if (o is ITintInspector tint) + { + _tinted = true; + GUI.backgroundColor = tint.TintColor.ToColor(); + } + + using (new VerticalScope(ListItemStyle)) + { + using (new HorizontalScope()) + { + //if (listType.IsInterface) + if(Foldout(_listItemFoldouts.Contains(o.GetHashCode()), o.ToString(), true)) + _listItemFoldouts.Add(o.GetHashCode()); + else + _listItemFoldouts.Remove(o.GetHashCode()); + + + // var rect = GetControlRect(false, + // GUILayout.Width(EditorGUIUtility.singleLineHeight)); + // GUI.DrawTexture(rect, Icons.Instance.minus, ScaleMode.StretchToFill, true, 1, + // LabelColor, 0, 0); + if (GUILayout.Button("-", GUILayout.Width((EditorGUIUtility.singleLineHeight - 3)*2), GUILayout.Height(EditorGUIUtility.singleLineHeight-3))) + { + list.Remove(o); + break; + } + } + if(_listItemFoldouts.Contains(o.GetHashCode())) + { + Space(); + + inspectorWindow.Inspect(o, true); + } + } + + if(_tinted) + GUI.backgroundColor = originalColor; + } + using (new HorizontalScope(ListItemStyle)) + { + GUILayout.Label($"Add new {listType.Name}", GUILayout.ExpandWidth(true)); + // var rect = GetControlRect(false, GUILayout.Width(EditorGUIUtility.singleLineHeight)); + // GUI.DrawTexture(rect, Icons.Instance.plus, ScaleMode.StretchToFill, true, 1, LabelColor, 0, 0); + if (GUILayout.Button("+", GUILayout.Width((EditorGUIUtility.singleLineHeight - 3)*2), GUILayout.Height(EditorGUIUtility.singleLineHeight-3))) + { + if (listType.IsInterface) + { + var menu = new GenericMenu(); + foreach (var childType in listType.GetAllInterfaceClasses()) + { + menu.AddItem(new GUIContent(childType.Name), false, () => + { + list.Add((T)Activator.CreateInstance(childType)); + }); + } + menu.ShowAsContext(); + } + else if (listType.IsAbstract) + { + var menu = new GenericMenu(); + foreach (var childType in listType.GetAllChildClasses().Where(t=>!t.IsAbstract)) + { + menu.AddItem(new GUIContent(childType.Name), false, () => + { + list.Add((T)Activator.CreateInstance(childType)); + }); + } + menu.ShowAsContext(); + } + else + { + list.Add(Activator.CreateInstance()); + } + } + } + } + } + else Debug.Log($"Field \"{label}\" is a list of non-Inspectable type {listType.Name}. No inspector was generated."); + + return list; + } +} \ No newline at end of file diff --git a/Assets/Scripts/CultCache/Editor/Inspectors/ListInspector.cs.meta b/Assets/Scripts/CultCache/Editor/Inspectors/ListInspector.cs.meta new file mode 100644 index 000000000..c9e68d5d1 --- /dev/null +++ b/Assets/Scripts/CultCache/Editor/Inspectors/ListInspector.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 551335721057411d942b3317ae028546 +timeCreated: 1617145746 \ No newline at end of file diff --git a/Assets/Scripts/CultCache/Editor/Inspectors/MathematicsInspector.cs b/Assets/Scripts/CultCache/Editor/Inspectors/MathematicsInspector.cs index 7bc6b82e3..48b4de130 100644 --- a/Assets/Scripts/CultCache/Editor/Inspectors/MathematicsInspector.cs +++ b/Assets/Scripts/CultCache/Editor/Inspectors/MathematicsInspector.cs @@ -3,11 +3,12 @@ using UnityEditor; using UnityEngine; using static UnityEditor.EditorGUILayout; -public class Float2Inspector : InspectorBase + +public class Float2Inspector : BaseInspector { - public override float2 Inspect(string label, float2 value) + public override float2 Inspect(string label, float2 value, object parent, DatabaseInspector inspectorWindow) { - using (var h = new EditorGUILayout.HorizontalScope()) + using (new EditorGUILayout.HorizontalScope()) { GUILayout.Label(label, GUILayout.Width(width)); GUILayout.Label("X", GUILayout.Width(labelWidth)); @@ -19,27 +20,49 @@ public class Float2Inspector : InspectorBase } } -public class Float3Inspector : InspectorBase +public class Float3Inspector : BaseInspector { - public override float3 Inspect(string label, float3 value) + public override float3 Inspect(string label, float3 value, object parent, DatabaseInspector inspectorWindow) { - using (var h = new EditorGUILayout.HorizontalScope()) + using (new EditorGUILayout.HorizontalScope()) { GUILayout.Label(label, GUILayout.Width(width)); GUILayout.Label("X", GUILayout.Width(labelWidth)); value.x = DelayedFloatField(value.x); GUILayout.Label("Y", GUILayout.Width(labelWidth)); value.y = DelayedFloatField(value.y); + GUILayout.Label("Z", GUILayout.Width(labelWidth)); + value.z = DelayedFloatField(value.z); return value; } } } -public class Int2Inspector : InspectorBase +public class Float4Inspector : BaseInspector { - public override int2 Inspect(string label, int2 value) + public override float4 Inspect(string label, float4 value, object parent, DatabaseInspector inspectorWindow) { - using (var h = new EditorGUILayout.HorizontalScope()) + using (new EditorGUILayout.HorizontalScope()) + { + GUILayout.Label(label, GUILayout.Width(width)); + GUILayout.Label("X", GUILayout.Width(labelWidth)); + value.x = DelayedFloatField(value.x); + GUILayout.Label("Y", GUILayout.Width(labelWidth)); + value.y = DelayedFloatField(value.y); + GUILayout.Label("Z", GUILayout.Width(labelWidth)); + value.z = DelayedFloatField(value.z); + GUILayout.Label("W", GUILayout.Width(labelWidth)); + value.w = DelayedFloatField(value.w); + return value; + } + } +} + +public class Int2Inspector : BaseInspector +{ + public override int2 Inspect(string label, int2 value, object parent, DatabaseInspector inspectorWindow) + { + using (new EditorGUILayout.HorizontalScope()) { GUILayout.Label(label, GUILayout.Width(width)); GUILayout.Label("X", GUILayout.Width(labelWidth)); @@ -57,4 +80,42 @@ public class Int2Inspector : InspectorBase return value; } } +} + +public class Int3Inspector : BaseInspector +{ + public override int3 Inspect(string label, int3 value, object parent, DatabaseInspector inspectorWindow) + { + using (new EditorGUILayout.HorizontalScope()) + { + GUILayout.Label(label, GUILayout.Width(width)); + GUILayout.Label("X", GUILayout.Width(labelWidth)); + value.x = DelayedIntField(value.x); + GUILayout.Label("Y", GUILayout.Width(labelWidth)); + value.y = DelayedIntField(value.y); + GUILayout.Label("Z", GUILayout.Width(labelWidth)); + value.z = DelayedIntField(value.z); + return value; + } + } +} + +public class Int4Inspector : BaseInspector +{ + public override int4 Inspect(string label, int4 value, object parent, DatabaseInspector inspectorWindow) + { + using (new EditorGUILayout.HorizontalScope()) + { + GUILayout.Label(label, GUILayout.Width(width)); + GUILayout.Label("X", GUILayout.Width(labelWidth)); + value.x = DelayedIntField(value.x); + GUILayout.Label("Y", GUILayout.Width(labelWidth)); + value.y = DelayedIntField(value.y); + GUILayout.Label("Z", GUILayout.Width(labelWidth)); + value.z = DelayedIntField(value.z); + GUILayout.Label("W", GUILayout.Width(labelWidth)); + value.w = DelayedIntField(value.w); + return value; + } + } } \ No newline at end of file diff --git a/Assets/Scripts/CultCache/Editor/Inspectors/PrimitiveInspector.cs b/Assets/Scripts/CultCache/Editor/Inspectors/PrimitiveInspector.cs new file mode 100644 index 000000000..b2c4b99ac --- /dev/null +++ b/Assets/Scripts/CultCache/Editor/Inspectors/PrimitiveInspector.cs @@ -0,0 +1,40 @@ +using UnityEditor; +using UnityEngine; +using static UnityEditor.EditorGUILayout; + +public class BoolInspector : BaseInspector +{ + public override bool Inspect(string label, bool value, object parent, DatabaseInspector inspectorWindow) + { + using (var h = new EditorGUILayout.HorizontalScope()) + { + GUILayout.Label(label, GUILayout.Width(width)); + return Toggle(value); + } + } +} + +public class StringInspector : BaseInspector +{ + public override string Inspect(string label, string value, object parent, DatabaseInspector inspectorWindow) + { + using (var h = new HorizontalScope()) + { + GUILayout.Label(label, GUILayout.Width(width)); + return DelayedTextField(value); + } + } +} + +public class StringAreaInspector : BaseInspector +{ + public override string Inspect(string label, string value, object parent, DatabaseInspector inspectorWindow, InspectableTextAttribute attribute) + { + using (new HorizontalScope()) + { + GUILayout.Label(label, GUILayout.Width(width)); + EditorStyles.textArea.wordWrap = true; + return DelayedTextField(value, EditorStyles.textArea, GUILayout.Height(100)); + } + } +} \ No newline at end of file diff --git a/Assets/Scripts/CultCache/Editor/Inspectors/PrimitiveInspector.cs.meta b/Assets/Scripts/CultCache/Editor/Inspectors/PrimitiveInspector.cs.meta new file mode 100644 index 000000000..fc3143b8b --- /dev/null +++ b/Assets/Scripts/CultCache/Editor/Inspectors/PrimitiveInspector.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 91dcbfa1679e4be1944d6856ca63bf13 +timeCreated: 1617065181 \ No newline at end of file diff --git a/Assets/Scripts/CultCache/Editor/Inspectors/TypeInspector.cs b/Assets/Scripts/CultCache/Editor/Inspectors/TypeInspector.cs new file mode 100644 index 000000000..19a4138b0 --- /dev/null +++ b/Assets/Scripts/CultCache/Editor/Inspectors/TypeInspector.cs @@ -0,0 +1,23 @@ +using System; +using System.Linq; +using UnityEditor; +using UnityEngine; +using static UnityEditor.EditorGUILayout; + +public class TypeInspector : BaseInspector +{ + public override Type Inspect(string label, Type value, object parent, DatabaseInspector inspectorWindow, InspectableTypeAttribute attribute) + { + var types = attribute.Type.GetAllChildClasses(); + var enumOptions = new[] {"None"}.Concat(types.Select(t => t.Name)).ToArray(); + var index = Array.IndexOf(types, value) + 1; + + using (new HorizontalScope()) + { + GUILayout.Label(label, GUILayout.Width(width)); + index = Popup(index, enumOptions); + } + + return index == 0 ? null : types[index - 1]; + } +} \ No newline at end of file diff --git a/Assets/Scripts/CultCache/Editor/Inspectors/TypeInspector.cs.meta b/Assets/Scripts/CultCache/Editor/Inspectors/TypeInspector.cs.meta new file mode 100644 index 000000000..005fcd819 --- /dev/null +++ b/Assets/Scripts/CultCache/Editor/Inspectors/TypeInspector.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 4762384a61dc4d08a1ba4e7564a20081 +timeCreated: 1617066802 \ No newline at end of file diff --git a/Assets/Scripts/CultCache/Editor/Inspectors/UnityObjectInspector.cs b/Assets/Scripts/CultCache/Editor/Inspectors/UnityObjectInspector.cs new file mode 100644 index 000000000..cf0c872ae --- /dev/null +++ b/Assets/Scripts/CultCache/Editor/Inspectors/UnityObjectInspector.cs @@ -0,0 +1,47 @@ +using UnityEditor; +using UnityEngine; +using static UnityEditor.EditorGUILayout; + +public class TextureInspector : BaseInspector +{ + public override string Inspect(string label, + string value, + object parent, + DatabaseInspector inspectorWindow, + InspectableTextureAttribute attribute) + { + using (new HorizontalScope()) + { + GUILayout.Label(label, GUILayout.Width(width)); + return AssetDatabase.GetAssetPath(ObjectField(AssetDatabase.LoadAssetAtPath(value), typeof(Texture2D), false)); + } + } +} + +public class GameObjectInspector : BaseInspector +{ + public override string Inspect(string label, string value, object parent, DatabaseInspector inspectorWindow, InspectablePrefabAttribute attribute) + { + using (new HorizontalScope()) + { + GUILayout.Label(label, GUILayout.Width(width)); + return AssetDatabase.GetAssetPath(ObjectField(AssetDatabase.LoadAssetAtPath(value), typeof(GameObject), false)); + } + } +} + +public class TextAssetInspector : BaseInspector +{ + public override string Inspect(string label, + string value, + object parent, + DatabaseInspector inspectorWindow, + InspectableTextAssetAttribute attribute) + { + using (new HorizontalScope()) + { + GUILayout.Label(label, GUILayout.Width(width)); + return AssetDatabase.GetAssetPath(ObjectField(AssetDatabase.LoadAssetAtPath(value), typeof(TextAsset), false)); + } + } +} \ No newline at end of file diff --git a/Assets/Scripts/CultCache/Editor/Inspectors/UnityObjectInspector.cs.meta b/Assets/Scripts/CultCache/Editor/Inspectors/UnityObjectInspector.cs.meta new file mode 100644 index 000000000..1990fc264 --- /dev/null +++ b/Assets/Scripts/CultCache/Editor/Inspectors/UnityObjectInspector.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 8519fa7d4f06468bb9be151f053d1fcb +timeCreated: 1617067005 \ No newline at end of file diff --git a/Assets/Scripts/CultCache/Editor/RethinkConnection.cs b/Assets/Scripts/CultCache/Editor/RethinkConnection.cs index 247ac8e05..5845a08a8 100644 --- a/Assets/Scripts/CultCache/Editor/RethinkConnection.cs +++ b/Assets/Scripts/CultCache/Editor/RethinkConnection.cs @@ -5,6 +5,7 @@ using System; using System.Collections; using System.Collections.Generic; +using System.Linq; using System.Reflection; using System.Threading.Tasks; using Newtonsoft.Json; @@ -17,10 +18,9 @@ public static class RethinkConnection { public static RethinkDB R = RethinkDB.R; - public static RethinkQueryStatus RethinkConnect(DatabaseCache cache, string connectionString, bool syncLocalChanges = true) + public static RethinkQueryStatus RethinkConnect(CultCache cache, string connectionString, string dbName, bool syncLocalChanges = true) { // Add Unity.Mathematics serialization support to RethinkDB Driver - //Converter.Serializer.Converters.Add(new MathJsonConverter()); JsonConvert.DefaultSettings = () => new JsonSerializerSettings { Converters = new List @@ -32,10 +32,28 @@ public static class RethinkConnection Converter.PocoExprConverter } }; + + var syncTables = typeof(DatabaseEntry).GetAllChildClasses() + .Select(t => t.GetCustomAttribute()?.TableName ?? "Default").Distinct(); + + var connectionStringDomainLength = connectionString.IndexOf(':'); + if (connectionStringDomainLength < 1) + throw new ArgumentException("Illegal Connection String: must include port!"); - var connection = R.Connection().Hostname(connectionString).Port(RethinkDBConstants.DefaultPort+1).Timeout(60).Connect(); + var portString = connectionString.Substring(connectionStringDomainLength + 1); + if (!int.TryParse(portString, out var port)) + throw new ArgumentException($"Illegal connection string! \"{portString}\" is not a valid port number!"); + + var connection = R.Connection() + .Hostname(connectionString.Substring(0,connectionStringDomainLength)) + .Port(port).Timeout(60).Connect(); Debug.Log("Connected to RethinkDB"); + var tables = R.Db(dbName).TableList().RunAtom(connection); + + foreach (var st in syncTables.Where(st => !tables.Contains(st))) + R.Db(dbName).TableCreate(st).RunNoReply(connection); + if (syncLocalChanges) { // When entries are changed locally, push the changes to RethinkDB @@ -77,66 +95,51 @@ public static class RethinkConnection var status = new RethinkQueryStatus(); - // Get all item data from RethinkDB - Task.Run(async () => + foreach (var table in syncTables) { - status.ItemsEntries = R - .Db("Aetheria") - .Table("Items") - .Count().RunAtom(connection); + // Get entries from RethinkDB + Task.Run(async () => + { + status.TotalEntries += R + .Db("Aetheria") + .Table(table) + .Count().RunAtom(connection); - var result = await R - .Db("Aetheria") - .Table("Items") - .RunCursorAsync(connection); - while (await result.MoveNextAsync()) - { - var entry = result.Current; - //Debug.Log($"Received Items entry from RethinkDB: {entry.GetType()} {(entry as INamedEntry)?.EntryName ?? ""}:{entry.ID}"); - cache.Add(entry, true); - status.RetrievedItems++; - } - }).WrapAwait(); - - // Get globaldata and all galaxy map layer data from RethinkDB - Task.Run(async () => - { - ReqlAst operation = R - .Db("Aetheria") - .Table("Galaxy"); - status.GalaxyEntries = ((Table) operation).Count().RunAtom(connection); + var result = await R + .Db("Aetheria") + .Table(table) + .RunCursorAsync(connection); + while (await result.MoveNextAsync()) + { + var entry = result.Current; + //Debug.Log($"Received Items entry from RethinkDB: {entry.GetType()} {(entry as INamedEntry)?.EntryName ?? ""}:{entry.ID}"); + cache.Add(entry, true); + status.RetrievedEntries++; + } + }).WrapAwait(); - var result = await operation - .RunCursorAsync(connection); - while (await result.MoveNextAsync()) + // Subscribe to changes from RethinkDB + Task.Run(async () => { - var entry = result.Current; - //Debug.Log($"Received Galaxy entry from RethinkDB: {entry.GetType()} {(entry as INamedEntry)?.EntryName ?? ""}:{entry.ID}"); - cache.Add(entry, true); - status.RetrievedItems++; - } - }).WrapAwait(); + var result = await R + .Db("Aetheria") + .Table(table) + .Changes() + .RunChangesAsync(connection); + while (await result.MoveNextAsync()) + { + var change = result.Current; + if(change.OldValue == null) + Debug.Log($"Received change from RethinkDB (Entry Created): {change.NewValue.ID}"); + else if(change.NewValue == null) + Debug.Log($"Received change from RethinkDB (Entry Deleted): {change.OldValue.ID}"); + else + Debug.Log($"Received change from RethinkDB: {change.NewValue.ID}"); + cache.Add(change.NewValue, true); + } + }).WrapAwait(); + } - // Subscribe to changes from RethinkDB - Task.Run(async () => - { - var result = await R - .Db("Aetheria") - .Table("Items") - .Changes() - .RunChangesAsync(connection); - while (await result.MoveNextAsync()) - { - var change = result.Current; - if(change.OldValue == null) - Debug.Log($"Received change from RethinkDB (Entry Created): {change.NewValue.ID}"); - else if(change.NewValue == null) - Debug.Log($"Received change from RethinkDB (Entry Deleted): {change.OldValue.ID}"); - else - Debug.Log($"Received change from RethinkDB: {change.NewValue.ID}"); - cache.Add(change.NewValue, true); - } - }).WrapAwait(); // Observable.Timer(DateTimeOffset.Now, TimeSpan.FromSeconds(60)).Subscribe(_ => // { @@ -149,7 +152,6 @@ public static class RethinkConnection public class RethinkQueryStatus { - public int RetrievedItems; - public int GalaxyEntries; - public int ItemsEntries; + public int RetrievedEntries; + public int TotalEntries; } \ No newline at end of file diff --git a/Assets/Scripts/Gameplay/ActionGameManager.cs b/Assets/Scripts/Gameplay/ActionGameManager.cs index 378d7b305..a3e587e35 100644 --- a/Assets/Scripts/Gameplay/ActionGameManager.cs +++ b/Assets/Scripts/Gameplay/ActionGameManager.cs @@ -31,18 +31,18 @@ public class ActionGameManager : MonoBehaviour get => _gameDataDirectory ??= new DirectoryInfo(Application.dataPath).Parent.CreateSubdirectory("GameData"); } - private static DatabaseCache _database; + private static CultCache _cultCache; - public static DatabaseCache Database + public static CultCache CultCache { get { - if (_database != null) return _database; + if (_cultCache != null) return _cultCache; - _database = new DatabaseCache(Path.Combine(GameDataDirectory.FullName, "AetherDB.msgpack")); - _database.Load(); + _cultCache = new CultCache(Path.Combine(GameDataDirectory.FullName, "AetherDB.msgpack")); + _cultCache.Load(); - return _database; + return _cultCache; } } @@ -173,7 +173,7 @@ public class ActionGameManager : MonoBehaviour AkSoundEngine.RegisterGameObj(gameObject); ConsoleController.MessageReceiver = this; - ItemManager = new ItemManager(Database, Settings.GameplaySettings, Debug.Log); + ItemManager = new ItemManager(CultCache, Settings.GameplaySettings, Debug.Log); ZoneRenderer.ItemManager = ItemManager; // _loadoutPath = GameDataDirectory.CreateSubdirectory("Loadouts"); diff --git a/Assets/Scripts/MainMenu.cs b/Assets/Scripts/MainMenu.cs index 9fa499de6..6e0a3f846 100644 --- a/Assets/Scripts/MainMenu.cs +++ b/Assets/Scripts/MainMenu.cs @@ -96,7 +96,7 @@ public class MainMenu : MonoBehaviour _nextMenu.panel.AddButton("Continue", () => { - ActionGameManager.CurrentSector = new Sector(ActionGameManager.Database, ActionGameManager.PlayerSettings.CurrentRun); + ActionGameManager.CurrentSector = new Sector(ActionGameManager.CultCache, ActionGameManager.PlayerSettings.CurrentRun); SceneManager.LoadScene("ARPG"); }); else @@ -116,7 +116,7 @@ public class MainMenu : MonoBehaviour Dialog.Show(); Settings.SectorGenerationSettings.NoisePosition = Random.value * 100; - var task = Task.Run(() => new Sector(Settings.SectorGenerationSettings, ActionGameManager.Database, 0, setState)); + var task = Task.Run(() => new Sector(Settings.SectorGenerationSettings, ActionGameManager.CultCache, 0, setState)); task.ContinueWith(task => Observable.NextFrame().Subscribe(_ => { ActionGameManager.PlayerSettings.CurrentRun = null; diff --git a/Assets/Scripts/ServerShared/Behaviors/AutoWeapon.cs b/Assets/Scripts/ServerShared/Behaviors/AutoWeapon.cs index a0519af40..99ecf3097 100644 --- a/Assets/Scripts/ServerShared/Behaviors/AutoWeapon.cs +++ b/Assets/Scripts/ServerShared/Behaviors/AutoWeapon.cs @@ -6,7 +6,7 @@ using Newtonsoft.Json; using Unity.Mathematics; using static Unity.Mathematics.math; -[InspectableField, MessagePackObject, JsonObject(MemberSerialization.OptIn), RuntimeInspectable] +[Inspectable, MessagePackObject, JsonObject(MemberSerialization.OptIn), RuntimeInspectable] public class AutoWeaponData : InstantWeaponData { public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item) diff --git a/Assets/Scripts/ServerShared/Behaviors/Behaviors.cs b/Assets/Scripts/ServerShared/Behaviors/Behaviors.cs index dc296844a..225a9e0d1 100644 --- a/Assets/Scripts/ServerShared/Behaviors/Behaviors.cs +++ b/Assets/Scripts/ServerShared/Behaviors/Behaviors.cs @@ -83,7 +83,7 @@ public abstract class PersistentBehaviorData { } -[InspectableField, +[Inspectable, Union(0, typeof(GuidedWeaponData)), Union(1, typeof(LauncherData)), Union(2, typeof(ReactorData)), @@ -125,7 +125,7 @@ public abstract class PersistentBehaviorData JsonConverter(typeof(JsonKnownTypesConverter)), JsonObject(MemberSerialization.OptIn)] public abstract class BehaviorData { - [InspectableField, JsonProperty("group"), Key(0)] + [Inspectable, JsonProperty("group"), Key(0)] public int Group; public abstract IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item); diff --git a/Assets/Scripts/ServerShared/Behaviors/Capacitor.cs b/Assets/Scripts/ServerShared/Behaviors/Capacitor.cs index 6017711be..71effc7b1 100644 --- a/Assets/Scripts/ServerShared/Behaviors/Capacitor.cs +++ b/Assets/Scripts/ServerShared/Behaviors/Capacitor.cs @@ -11,10 +11,10 @@ using static Unity.Mathematics.math; [MessagePackObject, JsonObject(MemberSerialization.OptIn), RuntimeInspectable] public class CapacitorData : BehaviorData { - [InspectableField, JsonProperty("capacity"), Key(1), RuntimeInspectable] + [Inspectable, JsonProperty("capacity"), Key(1), RuntimeInspectable] public PerformanceStat Capacity = new PerformanceStat(); - [InspectableField, JsonProperty("efficiency"), Key(2), RuntimeInspectable] + [Inspectable, JsonProperty("efficiency"), Key(2), RuntimeInspectable] public PerformanceStat Efficiency = new PerformanceStat(); public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item) diff --git a/Assets/Scripts/ServerShared/Behaviors/ChargedWeapon.cs b/Assets/Scripts/ServerShared/Behaviors/ChargedWeapon.cs index b5170658f..912e20053 100644 --- a/Assets/Scripts/ServerShared/Behaviors/ChargedWeapon.cs +++ b/Assets/Scripts/ServerShared/Behaviors/ChargedWeapon.cs @@ -6,43 +6,43 @@ using Newtonsoft.Json; using Unity.Mathematics; using static Unity.Mathematics.math; -[InspectableField, MessagePackObject, JsonObject(MemberSerialization.OptIn), RuntimeInspectable] +[Inspectable, MessagePackObject, JsonObject(MemberSerialization.OptIn), RuntimeInspectable] public class ChargedWeaponData : InstantWeaponData { - [InspectableField, JsonProperty("chargeTime"), Key(21), RuntimeInspectable] + [Inspectable, JsonProperty("chargeTime"), Key(21), RuntimeInspectable] public PerformanceStat ChargeTime = new PerformanceStat(); - [InspectableField, JsonProperty("chargeEnergy"), Key(22), RuntimeInspectable] + [Inspectable, JsonProperty("chargeEnergy"), Key(22), RuntimeInspectable] public PerformanceStat ChargeEnergy = new PerformanceStat(); - [InspectableField, JsonProperty("chargeHeat"), Key(23), RuntimeInspectable] + [Inspectable, JsonProperty("chargeHeat"), Key(23), RuntimeInspectable] public PerformanceStat ChargeHeat = new PerformanceStat(); - [InspectableField, JsonProperty("canFireEarly"), Key(24)] + [Inspectable, JsonProperty("canFireEarly"), Key(24)] public bool CanFireEarly; - [InspectableField, JsonProperty("failureCharge"), Key(25)] + [Inspectable, JsonProperty("failureCharge"), Key(25)] public float FailureCharge; - [InspectableField, JsonProperty("failureDamage"), Key(26)] + [Inspectable, JsonProperty("failureDamage"), Key(26)] public float FailureDamage = 1; - [InspectableField, JsonProperty("chargeDamage"), Key(27)] + [Inspectable, JsonProperty("chargeDamage"), Key(27)] public float ChargeFiringDamageMultiplier = 1; - [InspectableField, JsonProperty("chargeSpread"), Key(28)] + [Inspectable, JsonProperty("chargeSpread"), Key(28)] public float ChargeFiringSpreadMultiplier = 1; - [InspectableField, JsonProperty("chargeBurstCount"), Key(29)] + [Inspectable, JsonProperty("chargeBurstCount"), Key(29)] public float ChargeFiringBurstCountMultiplier = 1; - [InspectableField, JsonProperty("chargeVisibility"), Key(30)] + [Inspectable, JsonProperty("chargeVisibility"), Key(30)] public float ChargeFiringVisibilityMultiplier = 1; - [InspectableField, JsonProperty("chargeVelocity"), Key(31)] + [Inspectable, JsonProperty("chargeVelocity"), Key(31)] public float ChargeFiringVelocityMultiplier = 1; - [InspectableField, JsonProperty("chargeHeatMul"), Key(32)] + [Inspectable, JsonProperty("chargeHeatMul"), Key(32)] public float ChargeFiringHeatMultiplier = 1; public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item) diff --git a/Assets/Scripts/ServerShared/Behaviors/ConstantWeapon.cs b/Assets/Scripts/ServerShared/Behaviors/ConstantWeapon.cs index 2ffc9ec88..b80be7845 100644 --- a/Assets/Scripts/ServerShared/Behaviors/ConstantWeapon.cs +++ b/Assets/Scripts/ServerShared/Behaviors/ConstantWeapon.cs @@ -8,7 +8,7 @@ using Newtonsoft.Json; using Unity.Mathematics; using static Unity.Mathematics.math; -[InspectableField, MessagePackObject, JsonObject(MemberSerialization.OptIn)] +[Inspectable, MessagePackObject, JsonObject(MemberSerialization.OptIn)] public class ConstantWeaponData : WeaponData { [InspectablePrefab, JsonProperty("ammoInterval"), Key(17)] diff --git a/Assets/Scripts/ServerShared/Behaviors/Cooldown.cs b/Assets/Scripts/ServerShared/Behaviors/Cooldown.cs index 36c63226b..6b82be8b5 100644 --- a/Assets/Scripts/ServerShared/Behaviors/Cooldown.cs +++ b/Assets/Scripts/ServerShared/Behaviors/Cooldown.cs @@ -9,10 +9,10 @@ using Newtonsoft.Json; using Unity.Mathematics; using static Unity.Mathematics.math; -[InspectableField, MessagePackObject, JsonObject(MemberSerialization.OptIn), Order(-10), RuntimeInspectable] +[Inspectable, MessagePackObject, JsonObject(MemberSerialization.OptIn), Order(-10), RuntimeInspectable] public class CooldownData : BehaviorData { - [InspectableField, JsonProperty("cooldown"), Key(1), RuntimeInspectable] + [Inspectable, JsonProperty("cooldown"), Key(1), RuntimeInspectable] public PerformanceStat Cooldown = new PerformanceStat(); public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item) diff --git a/Assets/Scripts/ServerShared/Behaviors/EnergyDraw.cs b/Assets/Scripts/ServerShared/Behaviors/EnergyDraw.cs index dc5094d08..ea70804c9 100644 --- a/Assets/Scripts/ServerShared/Behaviors/EnergyDraw.cs +++ b/Assets/Scripts/ServerShared/Behaviors/EnergyDraw.cs @@ -7,13 +7,13 @@ using System.Linq; using MessagePack; using Newtonsoft.Json; -[InspectableField, MessagePackObject, JsonObject(MemberSerialization.OptIn), Order(-20), RuntimeInspectable] +[Inspectable, MessagePackObject, JsonObject(MemberSerialization.OptIn), Order(-20), RuntimeInspectable] public class EnergyDrawData : BehaviorData { - [InspectableField, JsonProperty("draw"), Key(1), RuntimeInspectable] + [Inspectable, JsonProperty("draw"), Key(1), RuntimeInspectable] public PerformanceStat EnergyDraw = new PerformanceStat(); - [InspectableField, JsonProperty("perSecond"), Key(2)] + [Inspectable, JsonProperty("perSecond"), Key(2)] public bool PerSecond; public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item) diff --git a/Assets/Scripts/ServerShared/Behaviors/Heat.cs b/Assets/Scripts/ServerShared/Behaviors/Heat.cs index b135c32fd..2d4478434 100644 --- a/Assets/Scripts/ServerShared/Behaviors/Heat.cs +++ b/Assets/Scripts/ServerShared/Behaviors/Heat.cs @@ -7,13 +7,13 @@ using System.Linq; using MessagePack; using Newtonsoft.Json; -[InspectableField, MessagePackObject, JsonObject(MemberSerialization.OptIn), Order(10), Inspectable] +[Inspectable, MessagePackObject, JsonObject(MemberSerialization.OptIn), Order(10)] public class HeatData : BehaviorData { - [InspectableField, JsonProperty("heat"), Key(1), RuntimeInspectable] + [Inspectable, JsonProperty("heat"), Key(1), RuntimeInspectable] public PerformanceStat Heat = new PerformanceStat(); - [InspectableField, JsonProperty("perSecond"), Key(2)] + [Inspectable, JsonProperty("perSecond"), Key(2)] public bool PerSecond; public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item) diff --git a/Assets/Scripts/ServerShared/Behaviors/InstantWeapon.cs b/Assets/Scripts/ServerShared/Behaviors/InstantWeapon.cs index 2b727458c..af3eb8e4c 100644 --- a/Assets/Scripts/ServerShared/Behaviors/InstantWeapon.cs +++ b/Assets/Scripts/ServerShared/Behaviors/InstantWeapon.cs @@ -6,16 +6,16 @@ using Newtonsoft.Json; using Unity.Mathematics; using static Unity.Mathematics.math; -[InspectableField, MessagePackObject, JsonObject(MemberSerialization.OptIn), RuntimeInspectable] +[Inspectable, MessagePackObject, JsonObject(MemberSerialization.OptIn), RuntimeInspectable] public class InstantWeaponData : WeaponData { - [InspectableField, JsonProperty("count"), Key(17)] + [Inspectable, JsonProperty("count"), Key(17)] public PerformanceStat Count = new PerformanceStat(); - [InspectableField, JsonProperty("burstTime"), Key(18)] + [Inspectable, JsonProperty("burstTime"), Key(18)] public PerformanceStat BurstTime = new PerformanceStat(); - [InspectableField, JsonProperty("cooldown"), Key(19), RuntimeInspectable] + [Inspectable, JsonProperty("cooldown"), Key(19), RuntimeInspectable] public PerformanceStat Cooldown = new PerformanceStat(); [InspectablePrefab, JsonProperty("ammoInterval"), Key(20)] diff --git a/Assets/Scripts/ServerShared/Behaviors/ItemUsage.cs b/Assets/Scripts/ServerShared/Behaviors/ItemUsage.cs index b50768765..7087f3241 100644 --- a/Assets/Scripts/ServerShared/Behaviors/ItemUsage.cs +++ b/Assets/Scripts/ServerShared/Behaviors/ItemUsage.cs @@ -7,7 +7,7 @@ using System.Linq; using MessagePack; using Newtonsoft.Json; -[InspectableField, MessagePackObject, JsonObject(MemberSerialization.OptIn), Order(-5), RuntimeInspectable] +[Inspectable, MessagePackObject, JsonObject(MemberSerialization.OptIn), Order(-5), RuntimeInspectable] public class ItemUsageData : BehaviorData { [InspectableDatabaseLink(typeof(SimpleCommodityData)), JsonProperty("item"), Key(1), RuntimeInspectable] diff --git a/Assets/Scripts/ServerShared/Behaviors/Launcher.cs b/Assets/Scripts/ServerShared/Behaviors/Launcher.cs index 17cb72e19..557b94507 100644 --- a/Assets/Scripts/ServerShared/Behaviors/Launcher.cs +++ b/Assets/Scripts/ServerShared/Behaviors/Launcher.cs @@ -6,7 +6,7 @@ using MessagePack; using Newtonsoft.Json; using Unity.Mathematics; -[InspectableField, MessagePackObject, JsonObject(MemberSerialization.OptIn)] +[Inspectable, MessagePackObject, JsonObject(MemberSerialization.OptIn)] public class LauncherData : LockWeaponData { [InspectableAnimationCurve, JsonProperty("guidance"), Key(26)] @@ -18,13 +18,13 @@ public class LauncherData : LockWeaponData [InspectableAnimationCurve, JsonProperty("liftCurve"), Key(28)] public float4[] LiftCurve; - [InspectableField, JsonProperty("thrust"), Key(29)] + [Inspectable, JsonProperty("thrust"), Key(29)] public PerformanceStat Thrust = new PerformanceStat(); - [InspectableField, JsonProperty("frequency"), Key(30)] + [Inspectable, JsonProperty("frequency"), Key(30)] public float DodgeFrequency; - [InspectableField, JsonProperty("missileSpeed"), Key(31), RuntimeInspectable] + [Inspectable, JsonProperty("missileSpeed"), Key(31), RuntimeInspectable] public PerformanceStat MissileVelocity = new PerformanceStat(); public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item) @@ -33,7 +33,7 @@ public class LauncherData : LockWeaponData } } -[InspectableField, MessagePackObject, JsonObject(MemberSerialization.OptIn)] +[Inspectable, MessagePackObject, JsonObject(MemberSerialization.OptIn)] public class GuidedWeaponData : InstantWeaponData { [InspectableAnimationCurve, JsonProperty("guidance"), Key(21)] @@ -45,13 +45,13 @@ public class GuidedWeaponData : InstantWeaponData [InspectableAnimationCurve, JsonProperty("liftCurve"), Key(23)] public float4[] LiftCurve; - [InspectableField, JsonProperty("thrust"), Key(24)] + [Inspectable, JsonProperty("thrust"), Key(24)] public PerformanceStat Thrust = new PerformanceStat(); - [InspectableField, JsonProperty("frequency"), Key(25)] + [Inspectable, JsonProperty("frequency"), Key(25)] public float DodgeFrequency; - [InspectableField, JsonProperty("missileSpeed"), Key(26), RuntimeInspectable] + [Inspectable, JsonProperty("missileSpeed"), Key(26), RuntimeInspectable] public PerformanceStat MissileVelocity = new PerformanceStat(); public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item) diff --git a/Assets/Scripts/ServerShared/Behaviors/LockWeapon.cs b/Assets/Scripts/ServerShared/Behaviors/LockWeapon.cs index d105c2418..c20f94c78 100644 --- a/Assets/Scripts/ServerShared/Behaviors/LockWeapon.cs +++ b/Assets/Scripts/ServerShared/Behaviors/LockWeapon.cs @@ -6,22 +6,22 @@ using Newtonsoft.Json; using Unity.Mathematics; using static Unity.Mathematics.math; -[InspectableField, MessagePackObject, JsonObject(MemberSerialization.OptIn), RuntimeInspectable] +[Inspectable, MessagePackObject, JsonObject(MemberSerialization.OptIn), RuntimeInspectable] public class LockWeaponData : InstantWeaponData { - [InspectableField, JsonProperty("speed"), Key(21), RuntimeInspectable] + [Inspectable, JsonProperty("speed"), Key(21), RuntimeInspectable] public PerformanceStat LockSpeed = new PerformanceStat(); - [InspectableField, JsonProperty("sensorImpact"), Key(22)] + [Inspectable, JsonProperty("sensorImpact"), Key(22)] public PerformanceStat SensorImpact = new PerformanceStat(); - [InspectableField, JsonProperty("threshold"), Key(23), RuntimeInspectable] + [Inspectable, JsonProperty("threshold"), Key(23), RuntimeInspectable] public PerformanceStat LockAngle = new PerformanceStat(); - [InspectableField, JsonProperty("directionImpact"), Key(24)] + [Inspectable, JsonProperty("directionImpact"), Key(24)] public PerformanceStat DirectionImpact = new PerformanceStat(); - [InspectableField, JsonProperty("decay"), Key(25)] + [Inspectable, JsonProperty("decay"), Key(25)] public PerformanceStat Decay = new PerformanceStat(); public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item) diff --git a/Assets/Scripts/ServerShared/Behaviors/MiningTool.cs b/Assets/Scripts/ServerShared/Behaviors/MiningTool.cs index 5c71e2d16..9bfc3eaf4 100644 --- a/Assets/Scripts/ServerShared/Behaviors/MiningTool.cs +++ b/Assets/Scripts/ServerShared/Behaviors/MiningTool.cs @@ -9,19 +9,19 @@ using Newtonsoft.Json; using Unity.Mathematics; using static Unity.Mathematics.math; -[InspectableField, MessagePackObject, JsonObject(MemberSerialization.OptIn), Order(10)] +[Inspectable, MessagePackObject, JsonObject(MemberSerialization.OptIn), Order(10)] public class MiningToolData : BehaviorData { - [InspectableField, JsonProperty("dps"), Key(1)] + [Inspectable, JsonProperty("dps"), Key(1)] public PerformanceStat DamagePerSecond = new PerformanceStat(); - [InspectableField, JsonProperty("efficiency"), Key(2)] + [Inspectable, JsonProperty("efficiency"), Key(2)] public PerformanceStat Efficiency = new PerformanceStat(); - [InspectableField, JsonProperty("penetration"), Key(3)] + [Inspectable, JsonProperty("penetration"), Key(3)] public PerformanceStat Penetration = new PerformanceStat(); - [InspectableField, JsonProperty("range"), Key(4)] + [Inspectable, JsonProperty("range"), Key(4)] public PerformanceStat Range = new PerformanceStat(); public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item) diff --git a/Assets/Scripts/ServerShared/Behaviors/Radiance.cs b/Assets/Scripts/ServerShared/Behaviors/Radiance.cs index b85a671cd..b3113d670 100644 --- a/Assets/Scripts/ServerShared/Behaviors/Radiance.cs +++ b/Assets/Scripts/ServerShared/Behaviors/Radiance.cs @@ -7,10 +7,10 @@ using System.Linq; using MessagePack; using Newtonsoft.Json; -[InspectableField, MessagePackObject, JsonObject(MemberSerialization.OptIn), RuntimeInspectable] +[Inspectable, MessagePackObject, JsonObject(MemberSerialization.OptIn), RuntimeInspectable] public class RadianceData : BehaviorData { - [InspectableField, JsonProperty("radiance"), Key(1), RuntimeInspectable] + [Inspectable, JsonProperty("radiance"), Key(1), RuntimeInspectable] public PerformanceStat Radiance = new PerformanceStat(); public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item) diff --git a/Assets/Scripts/ServerShared/Behaviors/Radiator.cs b/Assets/Scripts/ServerShared/Behaviors/Radiator.cs index 3806ff2e2..9a6eb45af 100644 --- a/Assets/Scripts/ServerShared/Behaviors/Radiator.cs +++ b/Assets/Scripts/ServerShared/Behaviors/Radiator.cs @@ -10,19 +10,19 @@ using static Unity.Mathematics.math; [MessagePackObject, JsonObject(MemberSerialization.OptIn), RuntimeInspectable] public class RadiatorData : BehaviorData { - [InspectableField, JsonProperty("emissivity"), Key(1), RuntimeInspectable] + [Inspectable, JsonProperty("emissivity"), Key(1), RuntimeInspectable] public PerformanceStat Emissivity = new PerformanceStat(); - [InspectableField, JsonProperty("pumpedHeat"), Key(2), RuntimeInspectable] + [Inspectable, JsonProperty("pumpedHeat"), Key(2), RuntimeInspectable] public PerformanceStat PumpedHeat = new PerformanceStat(); [InspectableTemperature, JsonProperty("temperatureFloor"), Key(3), RuntimeInspectable] public float TemperatureFloor; - [InspectableField, JsonProperty("wasteHeat"), Key(4), RuntimeInspectable] + [Inspectable, JsonProperty("wasteHeat"), Key(4), RuntimeInspectable] public PerformanceStat WasteHeat = new PerformanceStat(); - [InspectableField, JsonProperty("energyUsage"), Key(5), RuntimeInspectable] + [Inspectable, JsonProperty("energyUsage"), Key(5), RuntimeInspectable] public PerformanceStat EnergyUsage = new PerformanceStat(); public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item) diff --git a/Assets/Scripts/ServerShared/Behaviors/Reactor.cs b/Assets/Scripts/ServerShared/Behaviors/Reactor.cs index 81fbc69d0..68a350b4b 100644 --- a/Assets/Scripts/ServerShared/Behaviors/Reactor.cs +++ b/Assets/Scripts/ServerShared/Behaviors/Reactor.cs @@ -13,16 +13,16 @@ using static Unity.Mathematics.math; [MessagePackObject, JsonObject(MemberSerialization.OptIn), RuntimeInspectable] public class ReactorData : BehaviorData { - [InspectableField, JsonProperty("charge"), Key(1), RuntimeInspectable] + [Inspectable, JsonProperty("charge"), Key(1), RuntimeInspectable] public PerformanceStat Charge = new PerformanceStat(); - [InspectableField, JsonProperty("efficiency"), Key(2), RuntimeInspectable] + [Inspectable, JsonProperty("efficiency"), Key(2), RuntimeInspectable] public PerformanceStat Efficiency = new PerformanceStat(); - [InspectableField, JsonProperty("overload"), Key(3), RuntimeInspectable] + [Inspectable, JsonProperty("overload"), Key(3), RuntimeInspectable] public PerformanceStat OverloadEfficiency = new PerformanceStat(); - [InspectableField, JsonProperty("underload"), Key(4), RuntimeInspectable] + [Inspectable, JsonProperty("underload"), Key(4), RuntimeInspectable] public PerformanceStat ThrottlingFactor = new PerformanceStat(); public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item) diff --git a/Assets/Scripts/ServerShared/Behaviors/Reflector.cs b/Assets/Scripts/ServerShared/Behaviors/Reflector.cs index fa5d2e730..35a1689e4 100644 --- a/Assets/Scripts/ServerShared/Behaviors/Reflector.cs +++ b/Assets/Scripts/ServerShared/Behaviors/Reflector.cs @@ -10,7 +10,7 @@ using static Unity.Mathematics.math; [MessagePackObject, JsonObject(MemberSerialization.OptIn), RuntimeInspectable] public class ReflectorData : BehaviorData { - [InspectableField, JsonProperty("crossSection"), Key(1), RuntimeInspectable] + [Inspectable, JsonProperty("crossSection"), Key(1), RuntimeInspectable] public PerformanceStat CrossSection = new PerformanceStat(); // [InspectableAnimationCurve, JsonProperty("visibility"), Key(1)] diff --git a/Assets/Scripts/ServerShared/Behaviors/ResourceScanner.cs b/Assets/Scripts/ServerShared/Behaviors/ResourceScanner.cs index fa20a6b97..29dbde551 100644 --- a/Assets/Scripts/ServerShared/Behaviors/ResourceScanner.cs +++ b/Assets/Scripts/ServerShared/Behaviors/ResourceScanner.cs @@ -9,16 +9,16 @@ using Newtonsoft.Json; using Unity.Mathematics; using static Unity.Mathematics.math; -[InspectableField, MessagePackObject, JsonObject(MemberSerialization.OptIn), RuntimeInspectable] +[Inspectable, MessagePackObject, JsonObject(MemberSerialization.OptIn), RuntimeInspectable] public class ResourceScannerData : BehaviorData { - [InspectableField, JsonProperty("range"), Key(1), RuntimeInspectable] + [Inspectable, JsonProperty("range"), Key(1), RuntimeInspectable] public PerformanceStat Range = new PerformanceStat(); - [InspectableField, JsonProperty("minDensity"), Key(2), RuntimeInspectable] + [Inspectable, JsonProperty("minDensity"), Key(2), RuntimeInspectable] public PerformanceStat MinimumDensity = new PerformanceStat(); - [InspectableField, JsonProperty("scanDuration"), Key(3), RuntimeInspectable] + [Inspectable, JsonProperty("scanDuration"), Key(3), RuntimeInspectable] public PerformanceStat ScanDuration = new PerformanceStat(); public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item) diff --git a/Assets/Scripts/ServerShared/Behaviors/Sensor.cs b/Assets/Scripts/ServerShared/Behaviors/Sensor.cs index 869dd6ac5..6aa65e326 100644 --- a/Assets/Scripts/ServerShared/Behaviors/Sensor.cs +++ b/Assets/Scripts/ServerShared/Behaviors/Sensor.cs @@ -9,34 +9,34 @@ using Newtonsoft.Json; using Unity.Mathematics; using static Unity.Mathematics.math; -[InspectableField, MessagePackObject, JsonObject(MemberSerialization.OptIn), RuntimeInspectable] +[Inspectable, MessagePackObject, JsonObject(MemberSerialization.OptIn), RuntimeInspectable] public class SensorData : BehaviorData { - [InspectableField, JsonProperty("sensitivity"), Key(3), RuntimeInspectable] + [Inspectable, JsonProperty("sensitivity"), Key(3), RuntimeInspectable] public PerformanceStat Sensitivity = new PerformanceStat(); [InspectableAnimationCurve, JsonProperty("sensitivityCurve"), Key(4), RuntimeInspectable] public float4[] SensitivityCurve; - [InspectableField, JsonProperty("pingBoost"), Key(5), RuntimeInspectable] + [Inspectable, JsonProperty("pingBoost"), Key(5), RuntimeInspectable] public PerformanceStat PingBoost; - [InspectableField, JsonProperty("pingEnergy"), Key(6), RuntimeInspectable] + [Inspectable, JsonProperty("pingEnergy"), Key(6), RuntimeInspectable] public PerformanceStat PingEnergy; - [InspectableField, JsonProperty("pingVisibility"), Key(7), RuntimeInspectable] + [Inspectable, JsonProperty("pingVisibility"), Key(7), RuntimeInspectable] public PerformanceStat PingVisibility; - [InspectableField, JsonProperty("pingRange"), Key(8), RuntimeInspectable] + [Inspectable, JsonProperty("pingRange"), Key(8), RuntimeInspectable] public PerformanceStat PingRange; - [InspectableField, JsonProperty("pingCooldown"), Key(9), RuntimeInspectable] + [Inspectable, JsonProperty("pingCooldown"), Key(9), RuntimeInspectable] public PerformanceStat PingCooldown; - [InspectableField, JsonProperty("pingDuration"), Key(10)] + [Inspectable, JsonProperty("pingDuration"), Key(10)] public float PingDuration = 2; - [InspectableField, JsonProperty("pingRadiusExponent"), Key(11)] + [Inspectable, JsonProperty("pingRadiusExponent"), Key(11)] public float PingRadiusExponent = .5f; public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item) diff --git a/Assets/Scripts/ServerShared/Behaviors/Shield.cs b/Assets/Scripts/ServerShared/Behaviors/Shield.cs index e27fafe46..caf390e44 100644 --- a/Assets/Scripts/ServerShared/Behaviors/Shield.cs +++ b/Assets/Scripts/ServerShared/Behaviors/Shield.cs @@ -10,10 +10,10 @@ using static Unity.Mathematics.math; [MessagePackObject, JsonObject(MemberSerialization.OptIn), RuntimeInspectable] public class ShieldData : BehaviorData { - [InspectableField, JsonProperty("efficiency"), Key(1), RuntimeInspectable] + [Inspectable, JsonProperty("efficiency"), Key(1), RuntimeInspectable] public PerformanceStat Efficiency = new PerformanceStat(); - [InspectableField, JsonProperty("energy"), Key(2), RuntimeInspectable] + [Inspectable, JsonProperty("energy"), Key(2), RuntimeInspectable] public PerformanceStat EnergyUsage = new PerformanceStat(); public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item) diff --git a/Assets/Scripts/ServerShared/Behaviors/StatModifier.cs b/Assets/Scripts/ServerShared/Behaviors/StatModifier.cs index a43133345..35e0115d8 100644 --- a/Assets/Scripts/ServerShared/Behaviors/StatModifier.cs +++ b/Assets/Scripts/ServerShared/Behaviors/StatModifier.cs @@ -7,16 +7,16 @@ using System.Linq; using MessagePack; using Newtonsoft.Json; -[InspectableField, MessagePackObject, JsonObject(MemberSerialization.OptIn)] +[Inspectable, MessagePackObject, JsonObject(MemberSerialization.OptIn)] public class StatModifierData : BehaviorData { - [InspectableField, JsonProperty("stat"), Key(1)] + [Inspectable, JsonProperty("stat"), Key(1)] public StatReference Stat = new StatReference(); - [InspectableField, JsonProperty("modifier"), Key(2)] + [Inspectable, JsonProperty("modifier"), Key(2)] public PerformanceStat Modifier = new PerformanceStat(); - [InspectableField, JsonProperty("type"), Key(3)] + [Inspectable, JsonProperty("type"), Key(3)] public StatModifierType Type; [InspectableType(typeof(BehaviorData)), JsonProperty("requireBehavior"), Key(4)] @@ -103,12 +103,12 @@ public enum StatModifierType Multiplier } -[InspectableField, MessagePackObject, JsonObject(MemberSerialization.OptIn)] +[Inspectable, MessagePackObject, JsonObject(MemberSerialization.OptIn)] public class StatReference { [InspectableType(typeof(BehaviorData)), JsonProperty("behavior"), Key(1)] public string Target; - [InspectableField, JsonProperty("stat"), Key(2)] + [Inspectable, JsonProperty("stat"), Key(2)] public string Stat; } \ No newline at end of file diff --git a/Assets/Scripts/ServerShared/Behaviors/Switch.cs b/Assets/Scripts/ServerShared/Behaviors/Switch.cs index 5c4a5e5c7..ccf07bb7d 100644 --- a/Assets/Scripts/ServerShared/Behaviors/Switch.cs +++ b/Assets/Scripts/ServerShared/Behaviors/Switch.cs @@ -7,7 +7,7 @@ using System.Linq; using MessagePack; using Newtonsoft.Json; -[InspectableField, MessagePackObject, JsonObject(MemberSerialization.OptIn), Order(-25)] +[Inspectable, MessagePackObject, JsonObject(MemberSerialization.OptIn), Order(-25)] public class SwitchData : BehaviorData { public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item) diff --git a/Assets/Scripts/ServerShared/Behaviors/Thermotoggle.cs b/Assets/Scripts/ServerShared/Behaviors/Thermotoggle.cs index af8d03f55..4df055a9c 100644 --- a/Assets/Scripts/ServerShared/Behaviors/Thermotoggle.cs +++ b/Assets/Scripts/ServerShared/Behaviors/Thermotoggle.cs @@ -7,13 +7,13 @@ using System.Linq; using MessagePack; using Newtonsoft.Json; -[InspectableField, MessagePackObject, JsonObject(MemberSerialization.OptIn), Order(-22)] +[Inspectable, MessagePackObject, JsonObject(MemberSerialization.OptIn), Order(-22)] public class ThermotoggleData : BehaviorData { [InspectableTemperature, JsonProperty("targetTemp"), Key(1)] public float TargetTemperature; - [InspectableField, JsonProperty("highPass"), Key(2)] + [Inspectable, JsonProperty("highPass"), Key(2)] public bool HighPass; public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item) diff --git a/Assets/Scripts/ServerShared/Behaviors/Thruster.cs b/Assets/Scripts/ServerShared/Behaviors/Thruster.cs index 43948eb89..b61b90b66 100644 --- a/Assets/Scripts/ServerShared/Behaviors/Thruster.cs +++ b/Assets/Scripts/ServerShared/Behaviors/Thruster.cs @@ -10,16 +10,16 @@ using static Unity.Mathematics.math; [MessagePackObject, JsonObject(MemberSerialization.OptIn), EntityTypeRestriction(HullType.Ship), RuntimeInspectable] public class ThrusterData : BehaviorData { - [InspectableField, JsonProperty("thrust"), Key(1), RuntimeInspectable] + [Inspectable, JsonProperty("thrust"), Key(1), RuntimeInspectable] public PerformanceStat Thrust = new PerformanceStat(); - [InspectableField, JsonProperty("visibility"), Key(2), RuntimeInspectable] + [Inspectable, JsonProperty("visibility"), Key(2), RuntimeInspectable] public PerformanceStat Visibility = new PerformanceStat(); - [InspectableField, JsonProperty("heat"), Key(3), RuntimeInspectable] + [Inspectable, JsonProperty("heat"), Key(3), RuntimeInspectable] public PerformanceStat Heat = new PerformanceStat(); - [InspectableField, JsonProperty("energy"), Key(4), RuntimeInspectable] + [Inspectable, JsonProperty("energy"), Key(4), RuntimeInspectable] public PerformanceStat EnergyUsage = new PerformanceStat(); [InspectablePrefab, JsonProperty("Particles"), Key(5)] diff --git a/Assets/Scripts/ServerShared/Behaviors/Trigger.cs b/Assets/Scripts/ServerShared/Behaviors/Trigger.cs index f54c34358..10c30163d 100644 --- a/Assets/Scripts/ServerShared/Behaviors/Trigger.cs +++ b/Assets/Scripts/ServerShared/Behaviors/Trigger.cs @@ -7,7 +7,7 @@ using System.Linq; using MessagePack; using Newtonsoft.Json; -[InspectableField, MessagePackObject, JsonObject(MemberSerialization.OptIn), Order(-20)] +[Inspectable, MessagePackObject, JsonObject(MemberSerialization.OptIn), Order(-20)] public class TriggerData : BehaviorData { public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item) diff --git a/Assets/Scripts/ServerShared/Behaviors/VelocityConversion.cs b/Assets/Scripts/ServerShared/Behaviors/VelocityConversion.cs index 1f5d9cec0..fef52068f 100644 --- a/Assets/Scripts/ServerShared/Behaviors/VelocityConversion.cs +++ b/Assets/Scripts/ServerShared/Behaviors/VelocityConversion.cs @@ -10,7 +10,7 @@ using static Unity.Mathematics.math; [MessagePackObject, JsonObject(MemberSerialization.OptIn), RuntimeInspectable] public class VelocityConversionData : BehaviorData { - [InspectableField, JsonProperty("traction"), Key(1), RuntimeInspectable] + [Inspectable, JsonProperty("traction"), Key(1), RuntimeInspectable] public PerformanceStat Traction = new PerformanceStat(); public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item) diff --git a/Assets/Scripts/ServerShared/Behaviors/VelocityLimit.cs b/Assets/Scripts/ServerShared/Behaviors/VelocityLimit.cs index f0e6701d1..09b948e75 100644 --- a/Assets/Scripts/ServerShared/Behaviors/VelocityLimit.cs +++ b/Assets/Scripts/ServerShared/Behaviors/VelocityLimit.cs @@ -10,7 +10,7 @@ using static Unity.Mathematics.math; [MessagePackObject, JsonObject(MemberSerialization.OptIn), RuntimeInspectable] public class VelocityLimitData : BehaviorData { - [InspectableField, JsonProperty("topSpeed"), Key(1), RuntimeInspectable] + [Inspectable, JsonProperty("topSpeed"), Key(1), RuntimeInspectable] public PerformanceStat TopSpeed = new PerformanceStat(); public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item) diff --git a/Assets/Scripts/ServerShared/Behaviors/Visibility.cs b/Assets/Scripts/ServerShared/Behaviors/Visibility.cs index 735bf5040..1e5359869 100644 --- a/Assets/Scripts/ServerShared/Behaviors/Visibility.cs +++ b/Assets/Scripts/ServerShared/Behaviors/Visibility.cs @@ -7,13 +7,13 @@ using System.Linq; using MessagePack; using Newtonsoft.Json; -[InspectableField, MessagePackObject, JsonObject(MemberSerialization.OptIn), RuntimeInspectable] +[Inspectable, MessagePackObject, JsonObject(MemberSerialization.OptIn), RuntimeInspectable] public class VisibilityData : BehaviorData { - [InspectableField, JsonProperty("visibility"), Key(1), RuntimeInspectable] + [Inspectable, JsonProperty("visibility"), Key(1), RuntimeInspectable] public PerformanceStat Visibility = new PerformanceStat(); - [InspectableField, JsonProperty("visibilityDecay"), Key(2)] + [Inspectable, JsonProperty("visibilityDecay"), Key(2)] public PerformanceStat VisibilityDecay = new PerformanceStat(); public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item) diff --git a/Assets/Scripts/ServerShared/Behaviors/Weapon.cs b/Assets/Scripts/ServerShared/Behaviors/Weapon.cs index 0640d19dc..d060057d6 100644 --- a/Assets/Scripts/ServerShared/Behaviors/Weapon.cs +++ b/Assets/Scripts/ServerShared/Behaviors/Weapon.cs @@ -17,10 +17,10 @@ using static Unity.Mathematics.math; RuntimeInspectable] public abstract class WeaponData : BehaviorData { - [InspectableField, JsonProperty("damageType"), Key(1), RuntimeInspectable] + [Inspectable, JsonProperty("damageType"), Key(1), RuntimeInspectable] public DamageType DamageType; - [InspectableField, JsonProperty("damage"), Key(2), RuntimeInspectable] + [Inspectable, JsonProperty("damage"), Key(2), RuntimeInspectable] public PerformanceStat Damage = new PerformanceStat(); [RangedFloatInspectable(0,1), JsonProperty("penetration"), Key(3), RuntimeInspectable] @@ -29,10 +29,10 @@ public abstract class WeaponData : BehaviorData [RangedFloatInspectable(0,1), JsonProperty("damageSpread"), Key(4)] public PerformanceStat DamageSpread = new PerformanceStat(); - [InspectableField, JsonProperty("minRange"), Key(5), RuntimeInspectable] + [Inspectable, JsonProperty("minRange"), Key(5), RuntimeInspectable] public PerformanceStat MinRange = new PerformanceStat(); - [InspectableField, JsonProperty("range"), Key(6), RuntimeInspectable] + [Inspectable, JsonProperty("range"), Key(6), RuntimeInspectable] public PerformanceStat Range = new PerformanceStat(); [InspectableAnimationCurve, JsonProperty("damageRange"), Key(7), RuntimeInspectable] @@ -62,7 +62,7 @@ public abstract class WeaponData : BehaviorData [InspectablePrefab, JsonProperty("spread"), Key(15)] public PerformanceStat Spread = new PerformanceStat(); - [InspectableField, JsonProperty("velocity"), Key(16)] + [Inspectable, JsonProperty("velocity"), Key(16)] public PerformanceStat Velocity = new PerformanceStat(); } diff --git a/Assets/Scripts/ServerShared/Corporations.cs b/Assets/Scripts/ServerShared/Corporations.cs index 45f7aa609..79bc3736d 100644 --- a/Assets/Scripts/ServerShared/Corporations.cs +++ b/Assets/Scripts/ServerShared/Corporations.cs @@ -9,39 +9,13 @@ using MessagePack; using Newtonsoft.Json; using Unity.Mathematics; - -[RethinkTable("Galaxy"), MessagePackObject, JsonObject(MemberSerialization.OptIn)] -public class Corporation : DatabaseEntry, INamedEntry -{ - [JsonProperty("name"), Key(1)] - public string Name; - - [JsonProperty("parent"), Key(2)] - public Guid Parent; - - [JsonProperty("tasks"), Key(3)] - public List Tasks = new List(); - - [JsonProperty("planetSurveyFloor"), Key(4)] - public Dictionary PlanetSurveyFloor = new Dictionary(); - - [JsonProperty("unlockedBlueprints"), Key(5)] - public List UnlockedBlueprints = new List(); - - [IgnoreMember] public string EntryName - { - get => Name; - set => Name = value; - } -} - [RethinkTable("Galaxy"), Inspectable, MessagePackObject, JsonObject(MemberSerialization.OptIn)] public class Faction : DatabaseEntry, INamedEntry { - [InspectableField, JsonProperty("name"), Key(1)] + [Inspectable, JsonProperty("name"), Key(1)] public string Name; - [InspectableField, JsonProperty("shortName"), Key(2)] + [Inspectable, JsonProperty("shortName"), Key(2)] public string ShortName; [InspectableText, JsonProperty("description"), Key(3)] @@ -53,7 +27,7 @@ public class Faction : DatabaseEntry, INamedEntry [InspectableDatabaseLink(typeof(PersonalityAttribute)), JsonProperty("personality"), Key(5)] public Dictionary Personality = new Dictionary(); - [InspectableField, JsonProperty("hostile"), Key(6)] + [Inspectable, JsonProperty("hostile"), Key(6)] public bool PlayerHostile; [InspectableColor, JsonProperty("primaryColor"), Key(7)] @@ -68,7 +42,7 @@ public class Faction : DatabaseEntry, INamedEntry [InspectableDatabaseLink(typeof(HullData)), JsonProperty("bossHull"), Key(10)] public Guid BossHull; - [InspectableField, JsonProperty("influence"), Key(11)] + [Inspectable, JsonProperty("influence"), Key(11)] public int InfluenceDistance = 4; [InspectableDatabaseLink(typeof(Faction)), RangedFloat(0, 1), JsonProperty("allegiance"), Key(12)] diff --git a/Assets/Scripts/ServerShared/CultCache/Attributes.cs b/Assets/Scripts/ServerShared/CultCache/Attributes.cs index 800cf2bed..574ec07b8 100644 --- a/Assets/Scripts/ServerShared/CultCache/Attributes.cs +++ b/Assets/Scripts/ServerShared/CultCache/Attributes.cs @@ -1,28 +1,14 @@ using System; -[AttributeUsage(AttributeTargets.Class)] -public class InspectableAttribute : Attribute { } - -public abstract class PreferredInspectorAttribute : InspectableAttribute -{ - public Type TargetType; - - public PreferredInspectorAttribute(Type targetType) - { - TargetType = targetType; - } -} - [AttributeUsage(AttributeTargets.Class)] public class ExternalEntryAttribute : Attribute { } -public class InspectableFieldAttribute : Attribute { } +public class InspectableAttribute : Attribute { } [AttributeUsage(AttributeTargets.Field)] -public class InspectableTextAttribute : InspectableFieldAttribute { } +public abstract class PreferredInspectorAttribute : InspectableAttribute { } -[AttributeUsage(AttributeTargets.Field)] -public class InspectableUnityObjectAttribute : InspectableFieldAttribute +public class InspectableUnityObjectAttribute : PreferredInspectorAttribute { public Type ObjectType; @@ -31,27 +17,15 @@ public class InspectableUnityObjectAttribute : InspectableFieldAttribute ObjectType = type; } } +public class InspectableTextAttribute : PreferredInspectorAttribute { } +public class InspectablePrefabAttribute : PreferredInspectorAttribute { } +public class InspectableTextureAttribute : PreferredInspectorAttribute { } +public class InspectableTextAssetAttribute : PreferredInspectorAttribute { } +public class InspectableTemperatureAttribute : PreferredInspectorAttribute { } +public class InspectableAnimationCurveAttribute : PreferredInspectorAttribute { } +public class InspectableColorAttribute : PreferredInspectorAttribute { } -[AttributeUsage(AttributeTargets.Field)] -public class InspectablePrefabAttribute : InspectableFieldAttribute { } - -[AttributeUsage(AttributeTargets.Field)] -public class InspectableTextureAttribute : InspectableFieldAttribute { } - -[AttributeUsage(AttributeTargets.Field)] -public class InspectableTextAssetAttribute : InspectableFieldAttribute { } - -[AttributeUsage(AttributeTargets.Field)] -public class InspectableTemperatureAttribute : InspectableFieldAttribute { } - -[AttributeUsage(AttributeTargets.Field)] -public class InspectableAnimationCurveAttribute : InspectableFieldAttribute { } - -[AttributeUsage(AttributeTargets.Field)] -public class InspectableColorAttribute : InspectableFieldAttribute { } - -[AttributeUsage(AttributeTargets.Field)] -public class InspectableDatabaseLinkAttribute : InspectableFieldAttribute +public class InspectableDatabaseLinkAttribute : PreferredInspectorAttribute { public readonly Type EntryType; @@ -61,8 +35,7 @@ public class InspectableDatabaseLinkAttribute : InspectableFieldAttribute } } -[AttributeUsage(AttributeTargets.Field)] -public class RangedFloatInspectableAttribute : InspectableFieldAttribute +public class RangedFloatInspectableAttribute : PreferredInspectorAttribute { public readonly float Min, Max; @@ -73,6 +46,27 @@ public class RangedFloatInspectableAttribute : InspectableFieldAttribute } } +public class RangedIntInspectableAttribute : PreferredInspectorAttribute +{ + public readonly int Min, Max; + + public RangedIntInspectableAttribute(int min, int max) + { + Min = min; + Max = max; + } +} + +public class InspectableTypeAttribute : PreferredInspectorAttribute +{ + public readonly Type Type; + + public InspectableTypeAttribute(Type type) + { + Type = type; + } +} + [AttributeUsage(AttributeTargets.Field)] public class RangedFloatAttribute : Attribute { @@ -85,30 +79,6 @@ public class RangedFloatAttribute : Attribute } } -[AttributeUsage(AttributeTargets.Field)] -public class RangedIntInspectableAttribute : InspectableFieldAttribute -{ - public readonly int Min, Max; - - public RangedIntInspectableAttribute(int min, int max) - { - Min = min; - Max = max; - } -} - -public class InspectableTypeAttribute : InspectableFieldAttribute -{ - public readonly Type Type; - - public InspectableTypeAttribute(Type type) - { - Type = type; - } -} - -[AttributeUsage(AttributeTargets.Field)] -public class SimplePerformanceStatAttribute : Attribute { } /// /// Specify a tooltip for a field in the Inspector window. diff --git a/Assets/Scripts/ServerShared/CultCache/DatabaseCache.cs b/Assets/Scripts/ServerShared/CultCache/CultCache.cs similarity index 90% rename from Assets/Scripts/ServerShared/CultCache/DatabaseCache.cs rename to Assets/Scripts/ServerShared/CultCache/CultCache.cs index 1fc2355b0..3cefd8bda 100644 --- a/Assets/Scripts/ServerShared/CultCache/DatabaseCache.cs +++ b/Assets/Scripts/ServerShared/CultCache/CultCache.cs @@ -10,7 +10,7 @@ using System.Linq; using System.Reflection; using MessagePack; -public class DatabaseCache +public class CultCache { public event Action OnDataInsertLocal; public event Action OnDataUpdateLocal; @@ -42,10 +42,11 @@ public class DatabaseCache } } private readonly Dictionary _externalEntries = new Dictionary(); + private readonly Dictionary _linkFields = new Dictionary(); public IEnumerable AllEntries => _entries.Values; - public DatabaseCache(string filePath) + public CultCache(string filePath) { RegisterResolver.Register(); _filePath = filePath; @@ -57,6 +58,9 @@ public class DatabaseCache // This is mainly to accomodate large files like datasets foreach (var type in typeof(DatabaseEntry).GetAllChildClasses()) { + var linkFields = type.GetFields().Where(f => f.FieldType.IsAssignableToGenericType(typeof(DatabaseLink<>))).ToArray(); + if(linkFields.Length > 0) + _linkFields[type] = linkFields; if (type.GetCustomAttribute() != null) { var typeDirectory = dataDirectory.CreateSubdirectory(type.Name); @@ -88,6 +92,17 @@ public class DatabaseCache // If an external entry is added, store it separately var type = entry.GetType(); + if (_linkFields.ContainsKey(type)) + { + foreach (var linkField in _linkFields[type]) + { + var link = (DatabaseLinkBase) linkField.GetValue(entry); + if (link != null) + { + link.Cache = this; + } + } + } if (_externalTypes.ContainsKey(type)) { if (_externalEntries.ContainsKey(entry.ID)) diff --git a/Assets/Scripts/ServerShared/CultCache/DatabaseCache.cs.meta b/Assets/Scripts/ServerShared/CultCache/CultCache.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/CultCache/DatabaseCache.cs.meta rename to Assets/Scripts/ServerShared/CultCache/CultCache.cs.meta diff --git a/Assets/Scripts/ServerShared/CultCache/DatabaseEntry.cs b/Assets/Scripts/ServerShared/CultCache/DatabaseEntry.cs index ff3ab368e..84c971591 100644 --- a/Assets/Scripts/ServerShared/CultCache/DatabaseEntry.cs +++ b/Assets/Scripts/ServerShared/CultCache/DatabaseEntry.cs @@ -17,9 +17,7 @@ public interface INamedEntry string EntryName { get; set; } } -[InspectableField, - MessagePackObject, - //MessagePackFormatter(typeof(TypelessFormatter)), +[MessagePackObject, JsonObject(MemberSerialization.OptIn), JsonConverter(typeof(JsonKnownTypesConverter)), Union(0, typeof(SimpleCommodityData)), @@ -33,7 +31,7 @@ public interface INamedEntry Union(9, typeof(NameFile)), //Union(10, typeof(ZoneData)), Union(11, typeof(PlayerData)), - Union(12, typeof(Corporation)), + // Union(12, typeof(Corporation)), Union(13, typeof(Faction)), Union(14, typeof(OrbitalEntity)), Union(15, typeof(OrbitData)), @@ -41,8 +39,8 @@ public interface INamedEntry Union(17, typeof(PersonalityAttribute)), Union(18, typeof(AgentTask)), // Union(19, typeof(LoadoutData)), - Union(20, typeof(Ship)), - Union(21, typeof(Mining)), + Union(20, typeof(Ship)), + Union(21, typeof(Mining)), Union(22, typeof(StationTowing)), Union(23, typeof(Survey)), Union(24, typeof(HaulingTask)), @@ -57,6 +55,21 @@ public abstract class DatabaseEntry { [JsonProperty("id"), Key(0)] public Guid ID = Guid.NewGuid(); +} + +[MessagePackObject, JsonObject(MemberSerialization.OptIn)] +public class DatabaseLink : DatabaseLinkBase where T : DatabaseEntry +{ + [IgnoreMember] + public T Value => Cache.Get(LinkID); +} + +[MessagePackObject, JsonObject(MemberSerialization.OptIn)] +public class DatabaseLinkBase +{ + [Key(0), JsonProperty("linkID")] + public Guid LinkID; - public DatabaseEntry(){} + [IgnoreMember] + public CultCache Cache; } \ No newline at end of file diff --git a/Assets/Scripts/ServerShared/CultCache/Extensions.cs b/Assets/Scripts/ServerShared/CultCache/Extensions.cs index ccfc2086f..1e80feb8f 100644 --- a/Assets/Scripts/ServerShared/CultCache/Extensions.cs +++ b/Assets/Scripts/ServerShared/CultCache/Extensions.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.Linq; +using System.Reflection; using System.Threading.Tasks; public static class CultCacheExtensions @@ -56,7 +57,35 @@ public static class CultCacheExtensions return ChildClasses[type] = AppDomain.CurrentDomain.GetAssemblies() .SelectMany(ass => ass.GetTypes()).Where(type.IsAssignableFrom).ToArray(); } + + private static Dictionary GenericChildClasses = new Dictionary(); + public static Type[] GetAllGenericChildClasses(this Type genericType) + { + if (GenericChildClasses.ContainsKey(genericType)) + return ChildClasses[genericType]; + return ChildClasses[genericType] = AppDomain.CurrentDomain.GetAssemblies() + .SelectMany(ass => ass.GetTypes()).Where(type=>type.IsAssignableToGenericType(genericType)).ToArray(); + } + public static bool IsAssignableToGenericType(this Type givenType, Type genericType) + { + var interfaceTypes = givenType.GetInterfaces(); + + foreach (var it in interfaceTypes) + { + if (it.IsGenericType && it.GetGenericTypeDefinition() == genericType) + return true; + } + + if (givenType.IsGenericType && givenType.GetGenericTypeDefinition() == genericType) + return true; + + Type baseType = givenType.BaseType; + if (baseType == null) return false; + + return IsAssignableToGenericType(baseType, genericType); + } + public static async void WrapAwait(this Task task) { await task; diff --git a/Assets/Scripts/ServerShared/GlobalData.cs b/Assets/Scripts/ServerShared/GlobalData.cs index b6ceb1e87..71c477fb4 100644 --- a/Assets/Scripts/ServerShared/GlobalData.cs +++ b/Assets/Scripts/ServerShared/GlobalData.cs @@ -15,46 +15,46 @@ using static NoiseFbm; [Inspectable, Serializable, RethinkTable("Galaxy"), MessagePackObject, JsonObject(MemberSerialization.OptIn)] public class GalaxyMapLayerData : DatabaseEntry, INamedEntry { - [InspectableField, JsonProperty("coreBoost"), Key(1)] + [Inspectable, JsonProperty("coreBoost"), Key(1)] public float CoreBoost = 1.05f; - [InspectableField, JsonProperty("coreBoostOffset"), Key(2)] + [Inspectable, JsonProperty("coreBoostOffset"), Key(2)] public float CoreBoostOffset = .1f; - [InspectableField, JsonProperty("coreBoostPower"), Key(3)] + [Inspectable, JsonProperty("coreBoostPower"), Key(3)] public float CoreBoostPower = 2.25f; - [InspectableField, JsonProperty("spokeScale"), Key(4)] + [Inspectable, JsonProperty("spokeScale"), Key(4)] public float SpokeScale = 1; - [InspectableField, JsonProperty("spokeOffset"), Key(5)] + [Inspectable, JsonProperty("spokeOffset"), Key(5)] public float SpokeOffset = 0; - [InspectableField, JsonProperty("edgeReduction"), Key(6)] + [Inspectable, JsonProperty("edgeReduction"), Key(6)] public float EdgeReduction = 3; - [InspectableField, JsonProperty("noiseOffset"), Key(7)] + [Inspectable, JsonProperty("noiseOffset"), Key(7)] public float NoiseOffset = 0; - [InspectableField, JsonProperty("noiseAmplitude"), Key(8)] + [Inspectable, JsonProperty("noiseAmplitude"), Key(8)] public float NoiseAmplitude = 1.5f; - [InspectableField, JsonProperty("noiseGain"), Key(9)] + [Inspectable, JsonProperty("noiseGain"), Key(9)] public float NoiseGain = .7f; - [InspectableField, JsonProperty("noiseLacunarity"), Key(10)] + [Inspectable, JsonProperty("noiseLacunarity"), Key(10)] public float NoiseLacunarity = 2; - [InspectableField, JsonProperty("noiseOctaves"), Key(11)] + [Inspectable, JsonProperty("noiseOctaves"), Key(11)] public int NoiseOctaves = 7; - [InspectableField, JsonProperty("noiseFrequency"), Key(12)] + [Inspectable, JsonProperty("noiseFrequency"), Key(12)] public float NoiseFrequency = 1; - [InspectableField, JsonProperty("noisePosition"), Key(13)] + [Inspectable, JsonProperty("noisePosition"), Key(13)] public float NoisePosition = 1337; - [InspectableField, JsonProperty("name"), Key(14)] + [Inspectable, JsonProperty("name"), Key(14)] public string Name; public float Evaluate(float2 uv, GalaxyShapeSettings settings) diff --git a/Assets/Scripts/ServerShared/ItemData.cs b/Assets/Scripts/ServerShared/ItemData.cs index 2437045d4..b0e50a2c2 100644 --- a/Assets/Scripts/ServerShared/ItemData.cs +++ b/Assets/Scripts/ServerShared/ItemData.cs @@ -14,7 +14,7 @@ using static Unity.Mathematics.math; using float2 = Unity.Mathematics.float2; using int2 = Unity.Mathematics.int2; -[InspectableField, MessagePackObject, JsonObject(MemberSerialization.OptIn)] +[Inspectable, MessagePackObject, JsonObject(MemberSerialization.OptIn)] public class Shape { [JsonProperty("name"), Key(0)] public bool[,] Cells; @@ -222,7 +222,7 @@ public class Shape [MessagePackObject, JsonObject(MemberSerialization.OptIn), JsonConverter(typeof(JsonKnownTypesConverter))] public abstract class ItemData : DatabaseEntry, INamedEntry { - [InspectableField, JsonProperty("name"), Key(1)] + [Inspectable, JsonProperty("name"), Key(1)] public string Name; [InspectableText, JsonProperty("description"), Key(2)] @@ -231,20 +231,20 @@ public abstract class ItemData : DatabaseEntry, INamedEntry [InspectableDatabaseLink(typeof(Faction)), JsonProperty("creator"), Key(3)] public Guid Manufacturer; - [InspectableField, JsonProperty("mass"), Key(4)] + [Inspectable, JsonProperty("mass"), Key(4)] public float Mass; - [InspectableField, JsonProperty("shape"), Key(5)] + [Inspectable, JsonProperty("shape"), Key(5)] public Shape Shape; // Heat needed to change temperature of 1 gram by 1 degree - [InspectableField, JsonProperty("specificHeat"), Key(6)] + [Inspectable, JsonProperty("specificHeat"), Key(6)] public float SpecificHeat = 1; - [InspectableField, JsonProperty("conductivity"), Key(7)] + [Inspectable, JsonProperty("conductivity"), Key(7)] public float Conductivity = 1; - [InspectableField, JsonProperty("price"), Key(8)] + [Inspectable, JsonProperty("price"), Key(8)] public int Price = 0; [IgnoreMember] public string EntryName @@ -274,17 +274,17 @@ public class SimpleCommodityData : ItemData // [InspectableField, JsonProperty("floor"), Key(11)] // public float Floor = 5f; - [InspectableField, JsonProperty("maxStackSize"), Key(9)] + [Inspectable, JsonProperty("maxStackSize"), Key(9)] public int MaxStack = 10; - [InspectableField, JsonProperty("category"), Key(10)] + [Inspectable, JsonProperty("category"), Key(10)] public SimpleCommodityCategory Category; } [MessagePackObject, JsonObject(MemberSerialization.OptIn), JsonConverter(typeof(JsonKnownTypesConverter))] public abstract class CraftedItemData : ItemData { - [InspectableField, JsonProperty("ingredientQualityWeight"), Key(9)] + [Inspectable, JsonProperty("ingredientQualityWeight"), Key(9)] public float IngredientQualityWeight = .5f; } @@ -294,7 +294,7 @@ public class CompoundCommodityData : CraftedItemData [InspectableDatabaseLink(typeof(PersonalityAttribute)), JsonProperty("demandProfile"), Key(10)] public Dictionary DemandProfile = new Dictionary(); - [InspectableField, JsonProperty("category"), Key(11)] + [Inspectable, JsonProperty("category"), Key(11)] public CompoundCommodityCategory Category; } @@ -304,10 +304,10 @@ public abstract class EquippableItemData : CraftedItemData [InspectableTexture, JsonProperty("schematic"), Key(10)] public string Schematic; - [InspectableField, JsonProperty("behaviors"), Key(11)] + [Inspectable, JsonProperty("behaviors"), Key(11)] public List Behaviors = new List(); - [InspectableField, JsonProperty("durability"), Key(12)] + [Inspectable, JsonProperty("durability"), Key(12)] public float Durability; [InspectableTemperature, JsonProperty("minTemp"), Key(13)] @@ -325,10 +325,10 @@ public abstract class EquippableItemData : CraftedItemData [InspectableAnimationCurve, JsonProperty("performanceCurve"), Key(17)] public float4[] HeatPerformanceCurve; - [InspectableField, JsonProperty("resilience"), Key(18)] + [Inspectable, JsonProperty("resilience"), Key(18)] public float ThermalResilience = 1; - [InspectableField, JsonProperty("sfx"), Key(19)] + [Inspectable, JsonProperty("sfx"), Key(19)] public string SoundEffectTrigger; [IgnoreMember] @@ -372,7 +372,7 @@ public abstract class EquippableItemData : CraftedItemData [RethinkTable("Items"), Inspectable, MessagePackObject, JsonObject(MemberSerialization.OptIn)] public class GearData : EquippableItemData { - [InspectableField, JsonProperty("hardpointType"), Key(20)] + [Inspectable, JsonProperty("hardpointType"), Key(20)] public HardpointType Hardpoint; [IgnoreMember] public override HardpointType HardpointType => Hardpoint; @@ -381,7 +381,7 @@ public class GearData : EquippableItemData [RethinkTable("Items"), Inspectable, MessagePackObject, JsonObject(MemberSerialization.OptIn)] public class CargoBayData : EquippableItemData { - [InspectableField, JsonProperty("interiorShape"), Key(20)] + [Inspectable, JsonProperty("interiorShape"), Key(20)] public Shape InteriorShape; [IgnoreMember] public override HardpointType HardpointType => HardpointType.Tool; } @@ -389,45 +389,45 @@ public class CargoBayData : EquippableItemData [RethinkTable("Items"), Inspectable, MessagePackObject, JsonObject(MemberSerialization.OptIn)] public class DockingBayData : CargoBayData { - [InspectableField, JsonProperty("maxSize"), Key(21)] + [Inspectable, JsonProperty("maxSize"), Key(21)] public int2 MaxSize; } [RethinkTable("Items"), Inspectable, MessagePackObject, JsonObject(MemberSerialization.OptIn)] public class WeaponItemData : GearData { - [InspectableField, JsonProperty("range"), Key(21)] + [Inspectable, JsonProperty("range"), Key(21)] public WeaponRange WeaponRange; - [InspectableField, JsonProperty("caliber"), Key(22)] + [Inspectable, JsonProperty("caliber"), Key(22)] public WeaponCaliber WeaponCaliber; - [InspectableField, JsonProperty("weaponType"), Key(23)] + [Inspectable, JsonProperty("weaponType"), Key(23)] public WeaponType WeaponType; - [InspectableField, JsonProperty("fireTypes"), Key(24)] + [Inspectable, JsonProperty("fireTypes"), Key(24)] public WeaponFireType WeaponFireTypes; - [InspectableField, JsonProperty("modifiers"), Key(25)] + [Inspectable, JsonProperty("modifiers"), Key(25)] public WeaponModifiers WeaponModifiers; } [RethinkTable("Items"), Inspectable, MessagePackObject, JsonObject(MemberSerialization.OptIn)] public class HullData : EquippableItemData { - [InspectableField, JsonProperty("hardpoints"), Key(20)] + [Inspectable, JsonProperty("hardpoints"), Key(20)] public List Hardpoints = new List(); [InspectablePrefab, JsonProperty("prefab"), Key(21)] public string Prefab; - [InspectableField, JsonProperty("hullType"), Key(22)] + [Inspectable, JsonProperty("hullType"), Key(22)] public HullType HullType; - [InspectableField, JsonProperty("gridOffset"), Key(23)] + [Inspectable, JsonProperty("gridOffset"), Key(23)] public float GridOffset; - [InspectableField, JsonProperty("armor"), Key(24)] + [Inspectable, JsonProperty("armor"), Key(24)] public float Armor; [IgnoreMember] @@ -449,15 +449,15 @@ public class HullData : EquippableItemData [IgnoreMember] public override HardpointType HardpointType => HardpointType.Hull; } -[InspectableField, MessagePackObject, JsonObject(MemberSerialization.OptIn)] +[Inspectable, MessagePackObject, JsonObject(MemberSerialization.OptIn)] public class HardpointData : ITintInspector { - [InspectableField, JsonProperty("type"), Key(0)] public HardpointType Type; - [InspectableField, JsonProperty("position"), Key(1)] public int2 Position; - [InspectableField, JsonProperty("shape"), Key(2)] public Shape Shape = new Shape(); - [InspectableField, JsonProperty("transform"), Key(3)] public string Transform; - [InspectableField, JsonProperty("rotation"), Key(4)] public ItemRotation Rotation; - [InspectableField, JsonProperty("armor"), Key(5)] public float Armor; + [Inspectable, JsonProperty("type"), Key(0)] public HardpointType Type; + [Inspectable, JsonProperty("position"), Key(1)] public int2 Position; + [Inspectable, JsonProperty("shape"), Key(2)] public Shape Shape = new Shape(); + [Inspectable, JsonProperty("transform"), Key(3)] public string Transform; + [Inspectable, JsonProperty("rotation"), Key(4)] public ItemRotation Rotation; + [Inspectable, JsonProperty("armor"), Key(5)] public float Armor; public override string ToString() { @@ -539,13 +539,13 @@ public class PerformanceStat [RethinkTable("Items"), Inspectable, MessagePackObject, JsonObject(MemberSerialization.OptIn)] public class PersonalityAttribute : DatabaseEntry, INamedEntry { - [InspectableField, JsonProperty("name"), Key(1)] + [Inspectable, JsonProperty("name"), Key(1)] public string Name; - [InspectableField, JsonProperty("low"), Key(2)] + [Inspectable, JsonProperty("low"), Key(2)] public string LowName; - [InspectableField, JsonProperty("high"), Key(3)] + [Inspectable, JsonProperty("high"), Key(3)] public string HighName; [IgnoreMember] public string EntryName diff --git a/Assets/Scripts/ServerShared/ItemManager.cs b/Assets/Scripts/ServerShared/ItemManager.cs index cb09b4f50..b40bb215d 100644 --- a/Assets/Scripts/ServerShared/ItemManager.cs +++ b/Assets/Scripts/ServerShared/ItemManager.cs @@ -31,7 +31,7 @@ public class ItemManager // private Guid _forceLoadZone; // public GlobalData GlobalData => _globalData ?? (_globalData = ItemData.GetAll().FirstOrDefault()); - public DatabaseCache ItemData { get; } + public CultCache ItemData { get; } public GameplaySettings GameplaySettings { get; } public double Time @@ -47,7 +47,7 @@ public class ItemManager // private readonly Dictionary Tier = new Dictionary(); - public ItemManager(DatabaseCache itemData, GameplaySettings settings, Action logger) + public ItemManager(CultCache itemData, GameplaySettings settings, Action logger) { ItemData = itemData; GameplaySettings = settings; diff --git a/Assets/Scripts/ServerShared/Sector.cs b/Assets/Scripts/ServerShared/Sector.cs index a44940737..077f50941 100644 --- a/Assets/Scripts/ServerShared/Sector.cs +++ b/Assets/Scripts/ServerShared/Sector.cs @@ -33,10 +33,10 @@ public class Sector } } - public Sector(DatabaseCache database, SavedGame savedGame) + public Sector(CultCache cultCache, SavedGame savedGame) { Settings = savedGame.Settings; - Factions = savedGame.Factions.Select(database.Get).ToArray(); + Factions = savedGame.Factions.Select(cultCache.Get).ToArray(); Zones = savedGame.Zones.Select(zone => { return new SectorZone @@ -67,10 +67,10 @@ public class Sector CalculateDistanceMatrix(); } - public Sector(SectorGenerationSettings settings, DatabaseCache database, uint seed = 0, Action progressCallback = null, float minLineSeparation = .01f) + public Sector(SectorGenerationSettings settings, CultCache cultCache, uint seed = 0, Action progressCallback = null, float minLineSeparation = .01f) { Settings = settings; - var megas = database.GetAll(); + var megas = cultCache.GetAll(); var random = new Random(seed == 0 ? (uint) (DateTime.Now.Ticks % uint.MaxValue) : seed); Factions = megas.OrderBy(x => random.NextFloat()).Take(settings.MegaCount).ToArray(); @@ -229,7 +229,7 @@ public class Sector progressCallback?.Invoke($"Feeding Markov Chains: {i+1} / {Factions.Length}"); //if(progressCallback!=null) Thread.Sleep(250); // Inserting Delay to make it seem like it's doing more work lmao var faction = Factions[i]; - _nameGenerators[faction] = new MarkovNameGenerator(ref random, database.Get(faction.GeonameFile).Names, settings); + _nameGenerators[faction] = new MarkovNameGenerator(ref random, cultCache.Get(faction.GeonameFile).Names, settings); } // Generate zone name using the owner's name generator, otherwise assign catalogue ID From 968783bf9c50d721c5f5e1a58bd09daca6d8e0f8 Mon Sep 17 00:00:00 2001 From: Reinier Vens Date: Wed, 7 Apr 2021 01:27:35 +0100 Subject: [PATCH 25/51] Database Improvements Brought in all the myriad improvements to the database tools from the Stream Pixels project Added configurable nested entry grouping --- Aetheria.Shared.Unity.csproj | 11 +- .../CultCache/Editor/AetheriaDatabaseView.cs | 8 +- .../CultCache/Editor/DatabaseInspector.cs | 182 ++++++++------ .../Scripts/CultCache/Editor/DatabaseView.cs | 229 ++++++++++-------- .../Inspectors/AnimationCurveInspector.cs | 21 +- .../Inspectors/DatabaseLinkInspector.cs | 79 +++--- .../Editor/Inspectors/DictionaryInspector.cs | 24 +- .../Editor/Inspectors/EnumValuesInspector.cs | 59 +++++ .../Inspectors/EnumValuesInspector.cs.meta | 3 + .../Editor/Inspectors/FloatInspector.cs | 4 +- .../Editor/Inspectors/IntInspector.cs | 4 +- .../Editor/Inspectors/ListInspector.cs | 122 +++++----- .../Editor/Inspectors/MathematicsInspector.cs | 37 ++- Assets/Scripts/CultCache/UnityExtensions.cs | 8 + .../ServerShared/Aetheria.Shared.Unity.asmdef | 2 +- Assets/Scripts/ServerShared/Attributes.cs | 20 -- .../ServerShared/Behaviors/InstantWeapon.cs | 6 +- .../Scripts/ServerShared/Behaviors/Sensor.cs | 4 +- .../Scripts/ServerShared/Behaviors/Weapon.cs | 8 +- Assets/Scripts/ServerShared/BezierCurve.cs | 123 ++++++++++ .../Scripts/ServerShared/BezierCurve.cs.meta | 11 + .../ServerShared/CultCache/Attributes.cs | 50 +++- .../CultCache/CollectionExtensions.cs | 67 +++++ .../CultCache/CollectionExtensions.cs.meta | 11 + .../ServerShared/CultCache/CultCache.cs | 62 +++-- .../ServerShared/CultCache/DatabaseEntry.cs | 18 +- .../ServerShared/CultCache/MathExtensions.cs | 4 - .../CultCache/MathExtensions.cs.meta | 3 - ...{Extensions.cs => ReflectionExtensions.cs} | 35 ++- ...s.cs.meta => ReflectionExtensions.cs.meta} | 0 .../CultCache}/RethinkConnection.cs | 40 ++- .../CultCache}/RethinkConnection.cs.meta | 0 .../Serialization/RegisterResolver.cs | 4 +- Assets/Scripts/ServerShared/EnumDictionary.cs | 16 ++ .../ServerShared/EnumDictionary.cs.meta | 3 + Assets/Scripts/ServerShared/Extensions.cs | 170 ------------- Assets/Scripts/ServerShared/ItemData.cs | 9 +- 37 files changed, 871 insertions(+), 586 deletions(-) create mode 100644 Assets/Scripts/CultCache/Editor/Inspectors/EnumValuesInspector.cs create mode 100644 Assets/Scripts/CultCache/Editor/Inspectors/EnumValuesInspector.cs.meta create mode 100644 Assets/Scripts/ServerShared/BezierCurve.cs create mode 100644 Assets/Scripts/ServerShared/BezierCurve.cs.meta create mode 100644 Assets/Scripts/ServerShared/CultCache/CollectionExtensions.cs create mode 100644 Assets/Scripts/ServerShared/CultCache/CollectionExtensions.cs.meta delete mode 100644 Assets/Scripts/ServerShared/CultCache/MathExtensions.cs delete mode 100644 Assets/Scripts/ServerShared/CultCache/MathExtensions.cs.meta rename Assets/Scripts/ServerShared/CultCache/{Extensions.cs => ReflectionExtensions.cs} (75%) rename Assets/Scripts/ServerShared/CultCache/{Extensions.cs.meta => ReflectionExtensions.cs.meta} (100%) rename Assets/Scripts/{CultCache/Editor => ServerShared/CultCache}/RethinkConnection.cs (77%) rename Assets/Scripts/{CultCache/Editor => ServerShared/CultCache}/RethinkConnection.cs.meta (100%) create mode 100644 Assets/Scripts/ServerShared/EnumDictionary.cs create mode 100644 Assets/Scripts/ServerShared/EnumDictionary.cs.meta diff --git a/Aetheria.Shared.Unity.csproj b/Aetheria.Shared.Unity.csproj index 8c7c16a4e..d36b74678 100644 --- a/Aetheria.Shared.Unity.csproj +++ b/Aetheria.Shared.Unity.csproj @@ -60,6 +60,7 @@ + @@ -140,7 +141,7 @@ - + @@ -195,7 +196,6 @@ - @@ -250,6 +250,9 @@ + + + @@ -646,6 +649,10 @@ {4d885cb7-1f9e-abb3-b070-7265b432ecda} UniRx + + {f2483ebc-e82f-a58f-b987-c7502f9ab5d9} + RethinkDB + wakeywakeyeggsandfakey + +* "Really? Why?" + “Why?” the man says. “Why? I can’t believe you’re asking me that. And me your biggest fan, too.” +“Really?” you say. “You grab me out of nowhere, say you’ve been looking all over for me, start dragging me to your junky, rat-trap ship, and are somehow surprised when I want to know your motives?” + --->ship + +* "Oh, hey Dave! Nice ship." + He stops. +“Dave?” he says, looking deeply offended. “Who’s Dave? Dave is a debtor’s name. I’m Humblebert Maxibillion Goiterwold. The Twenty-Second. I’d think you of all people would know that.” +“Not good enough to be Humblebrag Monstermillion Goiterwold the first, eh?” you say. “Well, we’ve all been there.” +“Humblebert Maxibillion Goiterwold,” he insists, cape swirling around him and catching the light with an incredible sense of narrative drama. +You’ve never killed a man for his clothes before, but you’re definitely starting to consider it. + “And you, ,” he continues, oblivious to your thoughts, “Have been chosen. By me! Out of all the best fighters in the galaxy—oh, yes, I’ve been watching you, . The sand dunes on Potoo 6—the thing with the jelly—the battle on the Moons of Alcorion! Amazing! I need your heroic skills. You see,” he says, gesturing at the half falling apart ship behind him, “my manor has been infested with Iltorian venom beetles. Oh, horrible things; twice the size of a man and three times as deadly! I need you to exterminate them.” + + **“Fighting gigantic killer insects with my pal Dave? It’s just like old times! Consider me hired.” + “Humblebert,” the young man says, and with a swirl of his cape motions you up the steps to his ‘manor’. You, long since ready for an adventure, follow. As the door slides shut behind you with a loud screech and a faint scent of scorched rubber, you turn to look for Humblebert, only to find him gone and your vision slowly going black. As you slip into unconsciousness, you swear you can hear someone whisper, slowly, incredulously, “Who the debt is Dave?” + ->wakeywakeyeggsandfakey + + **“Uh…what manor? That’s a spaceship.” + ->ship + + **“Well, this is obviously a trap. Bye!” + ->Exitone_thepeaceout + + +*[-kick him in the shins and run-] ->Exitone_thepeaceout + + + +==ship== + “It’s not a ship,” he snaps, turning slightly red with outrage. You seriously begin to debate the merits of just knocking him out and running for it. “It’s a battleground! An arena. A castle of unspeakable horrors, to be conquered by only the bravest of heroes! It is your destiny.” + You look at the grav-dynamic, be-thrustered, battered but still very obviously ship-like space-faring transport behind him. + “No,” you say. “I’m pretty sure it’s a ship.” + You turn to leave the madman to his destiny, and then, with a sudden, sharp crackle of electricity along the labyrinth of your nerves, darkness closes in. + --->wakeywakeyeggsandfakey + +===wakeywakeyeggsandfakey=== +You awaken, gear missing and a faint prickle between your eyes, to a cascade of brilliant light, which eventually clears to reveal the ominously decorated interior of a ship, and the staticky blare of a catchy jingle played over monitors that are not built for quite that level of *peppy*. +This is nothing, of course, to the voice which follows it. It’s the voice of a being who has somehow attained their designated 8 hours of restful sleep, and followed it up with a heaping bowl of sunbeams and three different kinds of protein. It is, you recognize resentfully, the voice of someone who proudly identifies as a morning person. +You make a mental note to strangle them should the opportunity ever arise. +“Gooooood morning, Lucent Employees and Copyrighted Genotype Creations!” the voice cheers. “It’s 5am studio time, and you know what that means! Oh yes. It’s time for the number one reality show hit of the season, the reason you all wake up bright eyed and bushy tailed these workday mornings--and not just for my dashing good looks, either! It’s that wonderful time of day we all gather by the X-CAff bot to watch one randomly chosen citizen, plucked out of their daily life by yours truly, strive to prove they have the mettle to survive the Gauntlet…and become our new Hero! I’m your host, Humblebert Maxibillion, and this is…HERO or ZERO!” +Whoops and cheers suddenly surround you. Whether real or manufactured, you can’t tell, and you don’t know which would be more comforting. +You take a closer look around. For a supposed number one hit, the scenic design is a bit…lackluster. The broad outlines are obviously there—the idea of an old Terran castle traced in stonework and lanternlight—but you can clearly see through the facade the sleek metallic gleam of a spacefaring world. +You don’t have much time to consider, because the voice is speaking again, loud and tinny: +“Today’s would-be hero is a rough and tumble contract pilot pulled straight outta X station! (under license agreement with Finch Cybernetics, of course!) [he/she/it select pilot’s gender]’s just awoken here in our ancient Castle Victory, hand hewn from the stone by bold warriors in the halcyon days of yore--” + +* He takes a breath, and you take the opportunity to cut in. “Hey! Hey! I think there’s been a mistake. I didn’t sign up for this." ->deathandorglory + + +* ”Oh, for—it’s not a castle; it’s a spaceship! Look—I can see the wing struts—” +The voice—Humblebert Maxabillion?—sounds annoyed as he continues over you. “The, ah, ancient and very real Castle Victory, home of…the GAUNTLET!” +“I don’t need any more armour, thanks,” you say, feeling around for the escape hatch you know from extensive perusal of the fine print of all your ship purchases that Lucent Industries safety regulations requires to be no more than nine metres away at all given times. The ‘stonework’ gives slightly beneath your fingers. “Besides, I’m pretty sure this is just papier mache—” +“Papier mache is an ancient and respected art form,” Humblebert snaps, before gathering himself and continuing cheerily in his role of host. +At your feet, the ‘stones’ begin to glow, illuminating a path into the bowels of the ship. "I want to state that at no point did I sign up for, agree to, or otherwise consent to any of this," you say, because there are limits and, more importantly, liabilities. +->deathandorglory + +* The curiousity is too much. You burst into the continuous torrent of his speech with an excited, “Oh, this sounds fun! Is there a prize?” + “Oh, the prize is greater than you could ever imagine,” Humblebert says. “And it looks like our contestant is raring to fight for it! So without further ado…” +The stones beneath your feet kindle with some soft white light. +“March forth, you fount of potential,” Humblebert says. “Glory awaits.” +You march. ->TheGauntlet + + +* [-Search for an exit-] +Despite your best efforts, no exit is to be found. The only way, it seems, is forward. As if to underscore this inevitability, the stones beneath your feet begin to glow, leading you on to whatever strangeness awaits. ->TheGauntlet + +* [-Do nothing-] ->TheGauntlet + + + + + +-(deathandorglory) “Oh, nobody signs up,” your host—Humblebert?—says. “This is Hero or Zero! A challenge of daring—of thinking on your feet—of courage in the face of unexpected adversity! There’s no glory in preparation.” +“This is kidnapping and I’m leaving,” you say. +Humblebert Maxabillion laughs. It is…not a nice laugh. “Oh, no, my friend. No one leaves. Not til they’ve either passed through the trials—or perished. You can opt for immediate death, of course, but it won’t make you popular with the viewers.” +“Yeah,” you say. “That’s incredibly illegal.” +“Not in Castle Victory!” Humblebert trills. The stones at your feet begin to glow softly, forming a path leading into the darkness ahead. His voice becomes stentorian. “Now, contestant. Choose. Death or glory.” +Slowly, familiarly, and then gaining frantic speed in a contagious mob, the studio audience picks up the chant. +Death or glory. +Death or glory. +Death or glory. +Death or glory. Death or glory. Deathorglory.Deathorglory.deathorglorydeathorglorydeathorglorydeathorglordeathor + +“Well?” Humblebert says. + +* Uh, glory, I guess. ->TheGauntlet +* GLORY! RAH! ->TheGauntlet + *(death)Death. I pick death. + The crowd howls. + “Uh, really?” Humblebert says. “No one’s ever picked death before.” +“What can I say, I’m a trendsetter,” you say. “I’d be obliged if you could deliver my remains to my employers; they’re going to want to know who to sue for property damage.” +The crowd screams. +Humblebert’s voice drops from manic announcer to annoyed show-biz veteran, dropping off air and wrangling the talent. “Look, Captain Fatalism, this is a reality show. We don’t actually…I don’t come into work to kill people, okay? It’s all smoke and mirrors, right? And we have ratings to think about! So if you don’t mind just trying the first trial and then taking a dive there, if you really feel like you have to, it’d make my life a lot easier. And yours too. You don’t want to upset the channel execs. You really don’t.” + + **You smile. "They'll live. And so will I. I'm leaving." ->Exitone_thepeaceout + **You sigh. "Well, alright. But if you’re going to go around kidnapping people you may as well really commit to the whole ‘death or glory’ thing. Make the stakes matter. Otherwise your audience won’t care what happens." + “Great, great. Wonderful!” Humblebert says. “Now if you could just say “Glory” on camera, that’d be…that’d be perfect. +“Uh, glory?” you say. +Humblebert sighs. “Good enough.”->TheGauntlet + + +==TheGauntlet== +Humblebert Maxibillion’s voice echoes sonorously as you follow the gently glowing path. “Our hero-to-be must face the Gauntlet, and its three onerous challenges: first, the Trial of Wit! Quick thought and cleverness will lead to victory—no brainless barbarians will be *our* heroes. +“Secondly, they will face the Trial of Daring! Courage and nerves of synthetic sapphire are required for this task—only the bravest survive.” +“And third, the most perilous of all, and the perennial favourite of our loyal fans—the Trial of Heroically-Avoiding-Being-Agonizingly-Disintegrated-While-Dodging-Plasma-Bombs! A very necessary quality for anyone who endeavors to attain the coveted title of Official Lucent Hero (tm).” +“And, needless to say, it’s hero or zero, so any failure on the part of our adventurer means—that’s right! THE OUBLIETTE!” +Excited cheers ring through the speakers. +“Oubliette,” you whisper to yourself. It’s fun to say. You doubt it’ll be fun to experience. +“So, contestant,” Maxibillion roars. “Are you ready to brave the Gauntlet and prove yourself…our HERO?” + +*"Bring it on!" ->Trial_of_Wit +*"Fine. I guess. If I have to." ->Trial_of_Wit +*"...Don't I get a weapon or anything?" +-“Nope!” Humblebert says. “A true hero requires no weapon but their heart.” +“I’d rather be a live coward with a mini railgun, thanks,” you say, but it’s clear that you don’t really have the choice. +->Trial_of_Wit + + +==Trial_of_Wit== +The path opens out into a large room, which would be empty if it weren’t mostly taken up by the enormous cybernetic beast blocking the clearly marked exit forward. Two giant paws, folded with incongruous daintiness below a human face, one clearly printed from an artist’s collection, flex, catching the light like knife blades. +“Welcome,” she says, voice low and purring, “to the Trial of Wit. I am the Snynx, Mistress of Riddles.” +“Don’t you mean the sphynx?” you say, before you can stop yourself. +The beast sighs loudly. “No. That name is a Miss Terri’s copyright. I’m off brand. Stop asking.” +You nod understandingly. +“I am the arbiter of the Trial of Wit,” the Snynx continues, long, rapier like claws tapping on the stone. “And you, my nosy hero to be, must answer me these riddles three, if you another day would see.” +“That’s not a riddle, is it?” you ask. +“No,” she says. “But this is: + +I eat and eat, +But never sated, +A hunger here +From death created, +I have no mind, +I cannot feel, +Still, spaghetti is +my favourite meal. +What am I?” + +“Ooh, that’s a tough one!” Humblebert crows. “Let’s hope it doesn’t make spaghetti out of them. It’s done in plenty in the past-a!” +An audible groan can be heard from the studio audience. +You shake your head, scrunch up your eyes, and blurt out an answer. + +*"Uh, um…a puppy? No! Wait…" ->ExitThree_oublietteroulette + +* "A black hole." + +* "A fungus." ->ExitThree_oublietteroulette + +*"Oh, that's easy. It's me!" ->ExitThree_oublietteroulette + +* "A virus!" ->ExitThree_oublietteroulette + +* "I don't know that!" ->ExitThree_oublietteroulette + +-The snynx smiles. +“You are…correct.” +“And that’s one riddle down, two to go. Will our intrepid contestant survive this test of wits? Tune in after the break and find out! I’m your host, Humblebert Maximillion, and this is…HERO or ZERO!” +“So…can I go get an xcaff or something, or…” you begin. +Laughter rings out of over the speakers. “No break for you, contestant! No, it’s life or death in Castle Victory! And you’ve got two and a half more trials to complete.” ++{not wakeywakeyeggsandfakey.death} ->Riddletwo ++{wakeywakeyeggsandfakey.death} ->bit + + +-(bit)You grin. "Oh, come on. If you’re not going to kill me you can at least get me a drink." +"Fine," Humblebert hisses. "But only if you stop being a pain in my--" +->Riddletwo + +=Riddletwo +“The second riddle,” the snynx says imperturbably, “is as follows: + +An atom? NAh. +It’s not my all, +Though crystalline, +And white, and small, +But sight’s not the sense, +Of who I am, +My taste—unmatched, +My match—a CLam! +What am I?” + +* "Now that has to be cocaine." ->ExitThree_oublietteroulette +* "Bacon!" ->ExitThree_oublietteroulette +* "Salt?" +* "Star dust." ->ExitThree_oublietteroulette +* "Elbruxian sticking powder?" ->ExitThree_oublietteroulette +* "...can I take a mulligan?"->ExitThree_oublietteroulette + + +-“Amazing! Our contestant has beat the first odds kindly provided by Diceroll Statistics Inc., proving their cleverness two for nil against the devious snynx! Will their wit be enough to see them through to the next challenge, or will our brave pilot perish in ignominy? Tune in after these words from our sponsors to find out!” + ++{not wakeywakeyeggsandfakey.death} ->RiddleThree ++{wakeywakeyeggsandfakey.death} ->bitsy +-(bitsy) “Honestly, I’m a little offended that my potential death is being televised and you’re not even showing it live.” +“Don't be ridiculous. Real death is never cinematic enough for TV. That’s why we have editors.” ->RiddleThree + +=RiddleThree +-“So, who exactly are these sponsors?” you ask, and are, unsurprisingly, ignored. +“The third riddle is as follows,” the snynx says. + +“Without a doubt, you’ve challenged me, +You’ve got a wit, or two, or three, +You think you’re smart—you’ve got it made, +Your thoughts are quick; your mind’s a blade, +You think this test will be a rout— +But answer this: +Which way is out?” + +And as the snynx speaks, the room spins disorientingly, rolls and whirls, walls and floor and ceiling switching place like crossed roulette wheels, the clearly marked exit now decidely unclear. +“Oh, they look puzzled now! What’ll it be, contestant? Only one route leads forward. The rest are just a sudden sharp drop down five stories, to the very end of the story.” + +You sit down, on the cold stone (ish) floor, and come up with a plan. + +*[-guess at random-] +{~ ->ExitThree_oublietteroulette|->forth|->ExitThree_oublietteroulette} +*{wakeywakeyeggsandfakey.death} [-take one last sip before splashing your XCAFF on the walls to see where it seeps through the gaps around the door-] ->forth +* [-redefine the idea of ‘inside’ as being everything contained beyond the walls. You are now outside. The way ‘out’ is now...here.-] ->forth +*[-Give up-] ->ExitThree_oublietteroulette + +=forth +To your eternal shock, the snynx listens to you answer…and nods. +“Congratulations,” she says, and removes two of her claws. She offers them to you. “You have chosen…wisely. Good luck, hero.” +The audience cheers. +“You’ve passed the Trial of Wit. You may continue.” +The door opens. You continue, snynx claws in hand. +“Incredible! Look at that! Our hero to be continues to defy all bets on their grizzly demise. I’ve got to say, I didn’t see that one coming. We’ve got a crafty one on our hands, eh? Alright. But cunning will only get you so far. Now, contestant, gird your loins and line your girdles, and get ready to face…the Trial of Daring!” +You enter a new chamber, a long, high hall lit only by the gently swaying illumination of very atmospheric biolanterns. You step forward gingerly, only to jump back as your foot meets nothing but empty air. Something whistles by in the space it had just been. +In the shifting dimness, you can just make out the dark lines of rope hanging above the pit. +“Daring. Courage. Bravery. Nerve,” Humblebert says, voice hushed and almost reverent. “The very essence of a hero. Now, contestant, your task lies before you. Cross the Chasm. Brave the void. If you dare.” +Someone in the studio audience begins a low chant, and it catches like brushfire in a parched forest. +Jump. Jump. Jump. Jump. +Jump. + +*[Attempt to cross using the available system of ropes and handholds] +*[if variable geckogirl is true, as yet undefined:] You look down at your fingers, splayed and not quite human, remembering high walls and falling and genomes in beautiful sequence and the kind of hope that kills just as fast as it saves, and smile. ->geckotime +*[Attempt to cross using the snynx claws as climbing tools.] +*"Brave the void," you whisper, square your shoulders, and leap straight off the edge into the darkness below. ->ExitFour_bouncehousestageleft + +--(geckotime) +“I love you, gecko hands,” you whisper, as you crawl easily along the wall to the gasps and cheers of the studio audience. +“And our contestant has…lizard genes! Apparently!” Humblebert chirps. “Oh, that’s a twist I didn’t see coming. I guess you could say it’s…the anolest trick in the book! Well, I don’t suppose they’re going to have any problem with this challenge. But there’s still one more trial to go—and the most dangerous of all. Like they say in the pleasure houses of Anthrax 9—the best is yet to come!” + +-It’s a struggle, but it works. Sweaty, scratched, and exhausted, you survive the Trial of Daring and make it to the other side. +“Oohh, we nearly lost ‘em a couple of times there, but look at that! They made it. What a heartstopping scene that was. But, of course, the show’s not over yet! One trial remains.” + +Tentatively, you follow the glowing path as it leads you once more forward, into another large room, likewise decked out like the main hall of a castle. +Humblebert’s voice rings out once more. +“So far our would be hero has proved their wit, and their courage—but now it’s time for them to prove…their resistance to superheated plasma!” +An earthshattering scream of excitement erupts from the speakers. You look around for an exit, but it’s too late, the doors have sealed behind you and there’s no way forward. ++{not wakeywakeyeggsandfakey.death} ->kill ++{wakeywakeyeggsandfakey.death}->bob + +-(bob)"I thought you said you weren’t in the business of killing people!” +“I mean, we’re not in the business of killing people before they’ve provided full entertainment value,” Humblebert says. “I thought that was implied? Now don’t be a baby and a take a blast of superheated plasma to the face like true hero of the people. And don’t forget to smile!” +->kill + + +-(kill) Slots in the walls open up, revealing the death machines within, and suddenly you’re running and dodging for your life. + +*[Keep dodging. Surely they can’t keep firing forever?] ->Exit_DeathMKI +*[Find shelter] ->Exit_DeathMKII +*{Trial_of_Wit.forth.geckotime} Forward...is on fire. Left is also on fire. What was once right--extremely on fire. But up...up is safe. And you know you can make it up there, you mutant wonder, you. +“I love you, gecko hands,” you whisper, as you hang by your mutant grip cells from the high ceilings, safely away from any stray plasma blasts. Below you, everything burns.->ExitFive_Victory +*{ship} This, as you quite firmly told Humblebarf-Maximurderous-Soon-To-Be-Maximurdered on your abduction, is not a castle. It's a debting spaceship. It's designed to protect your frail meatball body. You grin, and activate the personnel shields. ->ExitFive_Victory + + + + + + +==Exitone_thepeaceout== +By dint of your swift feet, the complete lack of pursuit, and a loud warning cry of ‘stranger danger!’, you escape the odd young man, and go on with your adventurer’s life. +The only lasting impact of the encounter is the occasional passing thought on a sleepless night: “I wonder where the weirdo got that amazing cape?” +Just another little mystery for the filing cabinet. ->DONE + +==ExitTwo_givemedeathorgivemedeath== +Humblebert pauses. “Well, I can’t really—oh, forget it. Just leave! You’re terrible on camera anyway. I’ve got better prospects three spreadsheets deep!” +A door opens to your left, leading back out into the busy spaceport you were abducted from. As you duck through it and head down the ladder, you can hear Humblebert yelling after you, “And don’t think I’m not showing this tape to the execs, you, you…aggressively independent person! I will! And they’re not going to be happy…” +You don’t think much of it. You have *real* trials to face, out there in the galactic maelstrom. And you really should be getting to them. ->DONE + +==ExitThree_oublietteroulette== +“You are…incorrect,” the snynx says. +“INCORRECT,” Humblebert half-screams. The speakers pop and crackle. “You know what that means, folks! It’s time for…THE OUBLIETTE!” +And with that, the floor opens beneath you and all of a sudden you’re falling, all your life saving gadgets long gone and years of your past flashing past before your eyes, heart pounding to break your ribs and lungs gasping for the last air you’ll ever get before— +Everything stops. You stare, amazed to find yourself here, now, and wonderfully, gloriously alive. Even the scruffy, dark clothed man standing over you looks beautiful to your miraculously saved eyes. +“The snynx stumped you, eh?” he says, scratching his chin. “Well, it’s alright. She gets most of you. I told HB that he should make the riddles easier, you know, for the show, but who listens to me? I’m just a techie.” He looks at you. “Don’t look so scared, kid. The big bad Oubliette is just an airlock with a holofilter to make it feel like you’re falling fifty feet instead of two. [laughs] Got you good, didn’t it? Bit rough on the ol’ equilibrium, but the screaming always goes over well with the fans. I mean, for all they know, you’re bleeding out on a pit of spikes right now. Bloodthirsty, the public is. Absolutely bloodthirsty. But there it is. Good try. Oh, and if you want your compensation, you need to go visit the Unexpected Employee Liason office on Durant 3. Fill out forms 2a, 6x, and they’ll need a blood sample or three.” +“Thanks?” you manage, and scramble up and out into the spaceport before anyone else can decide you need to be part of their show. ->DONE + +==ExitFour_bouncehousestageleft== +After falling for what seems like lightyears, you hit the ground with a light thump and nothing bruised but your pride. +“That was incredibly stupid,” a grizzled man in a dusty black shirt says, helping you to your feet. “I’ve never seen anything that stupid before. Really, I’m actually kind of impressed. Anyway, you lost! Too bad, very sad, you can claim your compensation at the Reality Conscription Offices on Datrik 6. Have a fantastic day!” +You wander off, slightly dazed, into the bustling spaceport from whence you began, not entirely sure what just happened and determined not to think too much about it. +You really, really, really need a drink. ->DONE + +==ExitFive_Victory== +“Brilliant! Marvelous! Wonderful! Let’s have a hand for our new HERO, [Pilot’s name],” Humblebert Maxibillion’s voice announces, and then the man himself appears at last, dropping from above like an enormous bejeweled bat. +He beams, the expression so dazzling you can’t help but blink, and whips off his cloak. It flutters there, in a nonexistent breeze, catching the light like diamonds. +“Here,” he says. “I present to you, the Cape of Heroism, and the Official Irrevocable Title of Genuine Lucent Hero (tm). Use it wisely. And congratulations.” +As you tie the cape around your shoulders, the sound of cheering reaches you from worlds away, the people of Lucent’s empire sharing their adulation. +“Congratulations,” Humblebert says once more, shaking your hand. “And now…we send our hero back to [pronoun] life, secure in the knowledge that if we are ever in need…our tried and tested saviour will be ready.” +You open your mouth to speak, only to find yourself standing back in the spaceport from whence you began, your own trusty ship beside you and no Humblebert Maxibillion or dressed up castle ship in sight. +You turn, and as you do, your new cape catches the light like a swatch full of stars. +Hero, you think. Yeah. Yeah, I am. obtainspacecape->DONE + + +==Exit_DeathMKI== +As it turns out, they can keep firing forever. Or, at least, much longer than you can keep running. +The last thing you remember is a strange sense of peace as your nerves burn away and then the world becomes just...nothing. +You wake up three days later in a Finch Medical regen-pod, all limbs and nerves attached and really wishing you didn’t remember how you ended up there. +You make a note in your journal. If the opportunity ever arises, Humblebert Maxibillion is toast. ->DONE + +==Exit_DeathMKII== +Shockingly enough, reality game show sets don’t involve a lot of hiding places that are resistant to plasma arcing around at 28000K. You are positively incandescent to discover this. Luckily, the surprise doesn’t last long. +You wake up three days later in a Finch Medical regen-pod, all limbs and nerves attached and really wishing you didn’t remember how you ended up there. +You make a note in your journal. If the opportunity ever arises, Humblebert Maxibillion is toast. ->DONE From a51c402fc504c7f7b6632211237ec0cc10024ec3 Mon Sep 17 00:00:00 2001 From: Reinier Vens Date: Mon, 12 Apr 2021 04:20:52 +0100 Subject: [PATCH 31/51] Reflected Visibility Ships are now more visible in lit areas (depending on cross section stat in Reflector behavior) Refactored all behaviors to remove context & entity references (can get them from equipped item reference if needed) Fixed crash when enemy dies of heatstroke while targeted Exponential decay for visibility now uses correct time-independent formula Refactored item inspection in properties panel (now consistent between equipped items vs. inventory and store items, shows effect of heat on stats) Reordered item properties and added spacing between groups --- Aetheria.Shared.Unity.csproj | 1 - Assets/Materials/UI/Map Gravity Lines.mat | 2 +- Assets/Prefabs/UI/Main Menu Canvas.prefab | 2 + .../Properties Panel/Properties Panel.prefab | 788 ------------------ .../UI/Properties Panel/Properties.prefab | 1 + .../Properties Panel/Property List 1.prefab | 3 + .../UI/Properties Panel/Property List.prefab | 3 + .../Prefabs/UI/Properties Panel/Spacer.prefab | 58 ++ ...s Panel.prefab.meta => Spacer.prefab.meta} | 2 +- Assets/Scenes/ARPG.unity | 190 ++--- Assets/Scenes/Main Menu.unity | 17 +- Assets/Scripts/Gameplay/ActionGameManager.cs | 17 +- Assets/Scripts/Gameplay/ShipInstance.cs | 2 +- Assets/Scripts/ServerShared/AetheriaMath.cs | 10 + .../ServerShared/Behaviors/AutoWeapon.cs | 6 +- .../ServerShared/Behaviors/Behaviors.cs | 4 +- .../ServerShared/Behaviors/Capacitor.cs | 10 +- .../ServerShared/Behaviors/ChargedWeapon.cs | 6 +- .../Scripts/ServerShared/Behaviors/Cockpit.cs | 10 +- .../ServerShared/Behaviors/ConstantWeapon.cs | 12 +- .../ServerShared/Behaviors/Cooldown.cs | 10 +- .../ServerShared/Behaviors/EnergyDraw.cs | 12 +- Assets/Scripts/ServerShared/Behaviors/Heat.cs | 10 +- .../ServerShared/Behaviors/HeatStorage.cs | 10 +- .../ServerShared/Behaviors/InstantWeapon.cs | 14 +- .../ServerShared/Behaviors/ItemUsage.cs | 12 +- .../ServerShared/Behaviors/Launcher.cs | 8 +- .../ServerShared/Behaviors/LockWeapon.cs | 18 +- .../ServerShared/Behaviors/MiningTool.cs | 20 +- .../ServerShared/Behaviors/Radiance.cs | 45 - .../ServerShared/Behaviors/Radiance.cs.meta | 11 - .../ServerShared/Behaviors/Radiator.cs | 18 +- .../Scripts/ServerShared/Behaviors/Reactor.cs | 14 +- .../ServerShared/Behaviors/Reflector.cs | 15 +- .../ServerShared/Behaviors/ResourceScanner.cs | 16 +- .../Scripts/ServerShared/Behaviors/Sensor.cs | 75 +- .../Scripts/ServerShared/Behaviors/Shield.cs | 14 +- .../ServerShared/Behaviors/StatModifier.cs | 30 +- .../Scripts/ServerShared/Behaviors/Switch.cs | 10 +- .../ServerShared/Behaviors/Thermotoggle.cs | 14 +- .../ServerShared/Behaviors/Thruster.cs | 24 +- .../Scripts/ServerShared/Behaviors/Trigger.cs | 14 +- .../Behaviors/TurretController.cs | 40 +- .../Behaviors/VelocityConversion.cs | 18 +- .../ServerShared/Behaviors/VelocityLimit.cs | 24 +- .../ServerShared/Behaviors/Visibility.cs | 23 +- .../Scripts/ServerShared/Behaviors/Weapon.cs | 8 +- Assets/Scripts/ServerShared/Behaviors/Wear.cs | 12 +- Assets/Scripts/ServerShared/Entity.cs | 6 +- Assets/Scripts/ServerShared/Settings.cs | 1 - Assets/Scripts/ServerShared/Zone.cs | 40 +- Assets/Scripts/ServerShared/ZoneData.cs | 3 + Assets/Scripts/UI/InventoryMenu.cs | 5 +- Assets/Scripts/UI/PropertiesPanel.cs | 193 ++--- Assets/Scripts/UI/TradeMenu.cs | 6 +- Assets/Scripts/UI/TradeMenuDebug.cs | 3 +- Assets/Scripts/Zone Display/ZoneRenderer.cs | 14 +- GameData/AetherDB.msgpack | 4 +- GameData/PlayerSettings.msgpack | 4 +- 59 files changed, 557 insertions(+), 1405 deletions(-) delete mode 100644 Assets/Prefabs/UI/Properties Panel/Properties Panel.prefab create mode 100644 Assets/Prefabs/UI/Properties Panel/Spacer.prefab rename Assets/Prefabs/UI/Properties Panel/{Properties Panel.prefab.meta => Spacer.prefab.meta} (74%) delete mode 100644 Assets/Scripts/ServerShared/Behaviors/Radiance.cs delete mode 100644 Assets/Scripts/ServerShared/Behaviors/Radiance.cs.meta diff --git a/Aetheria.Shared.Unity.csproj b/Aetheria.Shared.Unity.csproj index bc862db88..6c2d70788 100644 --- a/Aetheria.Shared.Unity.csproj +++ b/Aetheria.Shared.Unity.csproj @@ -126,7 +126,6 @@ - diff --git a/Assets/Materials/UI/Map Gravity Lines.mat b/Assets/Materials/UI/Map Gravity Lines.mat index 749d876be..2036ba98e 100644 --- a/Assets/Materials/UI/Map Gravity Lines.mat +++ b/Assets/Materials/UI/Map Gravity Lines.mat @@ -86,7 +86,7 @@ Material: - _Mode: 0 - _OcclusionStrength: 1 - _Parallax: 0.02 - - _Scale: 0.5 + - _Scale: 1.2708329 - _SmoothnessTextureChannel: 0 - _SpecularHighlights: 1 - _SrcBlend: 1 diff --git a/Assets/Prefabs/UI/Main Menu Canvas.prefab b/Assets/Prefabs/UI/Main Menu Canvas.prefab index 20b8ada9e..4dbe54f95 100644 --- a/Assets/Prefabs/UI/Main Menu Canvas.prefab +++ b/Assets/Prefabs/UI/Main Menu Canvas.prefab @@ -564,6 +564,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 83488dc4b5e58cd40b4d1c4ee98207b5, type: 3} m_Name: m_EditorClassIdentifier: + Spacer: {fileID: 0} Dropdown: {fileID: 0} Title: {fileID: 4533226043829246278} Section: {fileID: 1026668114703092140, guid: 3a149ea40b43fbf47b51ec165cb04e5f, type: 3} @@ -1126,6 +1127,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 8c2bf4a7080061d42a87046c37bf0c60, type: 3} m_Name: m_EditorClassIdentifier: + Spacer: {fileID: 7041706416206723741, guid: 4638d28139b15b34fac8dae056f7d5fd, type: 3} Dropdown: {fileID: 0} Title: {fileID: 7329274283166941237} Section: {fileID: 1026668114703092140, guid: 3a149ea40b43fbf47b51ec165cb04e5f, type: 3} diff --git a/Assets/Prefabs/UI/Properties Panel/Properties Panel.prefab b/Assets/Prefabs/UI/Properties Panel/Properties Panel.prefab deleted file mode 100644 index e82037b66..000000000 --- a/Assets/Prefabs/UI/Properties Panel/Properties Panel.prefab +++ /dev/null @@ -1,788 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!1 &2378632238049155249 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2378632238049155248} - - component: {fileID: 2378632238049155251} - - component: {fileID: 2378632238049155250} - - component: {fileID: 2378632238049155148} - m_Layer: 5 - m_Name: Content - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &2378632238049155248 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2378632238049155249} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 5116519198747529736} - m_Father: {fileID: 2378632238683789172} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0, y: 1} ---- !u!114 &2378632238049155251 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2378632238049155249} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Padding: - m_Left: 32 - m_Right: 32 - m_Top: 32 - m_Bottom: 32 - m_ChildAlignment: 0 - m_Spacing: 12 - m_ChildForceExpandWidth: 0 - m_ChildForceExpandHeight: 0 - m_ChildControlWidth: 1 - m_ChildControlHeight: 1 - m_ChildScaleWidth: 0 - m_ChildScaleHeight: 0 - m_ReverseArrangement: 0 ---- !u!114 &2378632238049155250 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2378632238049155249} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} - m_Name: - m_EditorClassIdentifier: - m_HorizontalFit: 0 - m_VerticalFit: 2 ---- !u!114 &2378632238049155148 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2378632238049155249} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 8c2bf4a7080061d42a87046c37bf0c60, type: 3} - m_Name: - m_EditorClassIdentifier: - Dropdown: {fileID: 0} - Title: {fileID: 5116519198747529738} - SectionPrefab: {fileID: 1026668114703092140, guid: 3a149ea40b43fbf47b51ec165cb04e5f, - type: 3} - ListPrefab: {fileID: 6914334813923144328, guid: 93e63e3a8b352a04897123288d70f04b, - type: 3} - PropertyPrefab: {fileID: 9159917045172241898, guid: be88722a74d512d45a454fe91327a389, - type: 3} - PropertyLabelPrefab: {fileID: 279061376544739623, guid: 5b8c5126640066e4fabe6e65b7225b3b, - type: 3} - AttributePrefab: {fileID: 4447025208748278043, guid: 5e3a258a5b91c8246b20962ba6eccb09, - type: 3} - InputField: {fileID: 6586910564433979167, guid: fb49ef180533e3e488fa39d80cc2423a, - type: 3} - RangedFloatField: {fileID: 1663396771457720812, guid: c214f62d8f2188140b96ed12798034c8, - type: 3} - ProgressField: {fileID: 256436433275418348, guid: e6524d59d9bc67545b0eb1304bfb9d4b, - type: 3} - EnumField: {fileID: 1444953514731475975, guid: f19a14cd178d48f49ace9ad217bea2ed, - type: 3} - BoolField: {fileID: 7661950293931311388, guid: 001ad6a15f0d582458d359c0ae4405ed, - type: 3} - PropertyButton: {fileID: 1613450655389604799, guid: 99bde06e2f0ca504bb95f2a4e3429462, - type: 3} - ButtonField: {fileID: 6566784227922820057, guid: 6db1feb4cda7b8c419384cd42c85a5c4, - type: 3} - IncrementField: {fileID: 5486709585343280439, guid: 9c14c92a1a08b0a4fb4f6aa6f8504082, - type: 3} - SelectedChild: {fileID: 0} ---- !u!1 &2378632238144827086 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2378632238144827081} - - component: {fileID: 2378632238144827083} - - component: {fileID: 2378632238144827080} - m_Layer: 5 - m_Name: Handle - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &2378632238144827081 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2378632238144827086} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 2378632239835291325} - m_Father: {fileID: 2378632239203440075} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 20, y: 20} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &2378632238144827083 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2378632238144827086} - m_CullTransparentMesh: 0 ---- !u!114 &2378632238144827080 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2378632238144827086} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 0.44583336, b: 0.050000012, a: 0.65882355} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 84d126f984de5fd42ac66361c00f830c, type: 3} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!1 &2378632238683789173 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2378632238683789172} - - component: {fileID: 2378632238683789169} - - component: {fileID: 2378632238683789174} - - component: {fileID: 2378632238683789175} - m_Layer: 5 - m_Name: Viewport - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &2378632238683789172 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2378632238683789173} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 2378632238049155248} - m_Father: {fileID: 2378632240158519326} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0, y: 1} ---- !u!114 &2378632238683789169 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2378632238683789173} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 31a19414c41e5ae4aae2af33fee712f6, type: 3} - m_Name: - m_EditorClassIdentifier: - m_ShowMaskGraphic: 0 ---- !u!222 &2378632238683789174 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2378632238683789173} - m_CullTransparentMesh: 0 ---- !u!114 &2378632238683789175 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2378632238683789173} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 10917, guid: 0000000000000000f000000000000000, type: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!1 &2378632239203440072 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2378632239203440075} - m_Layer: 5 - m_Name: Sliding Area - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &2378632239203440075 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2378632239203440072} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 2378632238144827081} - m_Father: {fileID: 2378632240161980831} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: -20, y: -20} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!1 &2378632239835291314 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2378632239835291325} - - component: {fileID: 2378632239835291327} - - component: {fileID: 2378632239835291324} - m_Layer: 5 - m_Name: Outline - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &2378632239835291325 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2378632239835291314} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 2378632238144827081} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &2378632239835291327 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2378632239835291314} - m_CullTransparentMesh: 0 ---- !u!114 &2378632239835291324 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2378632239835291314} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.8, g: 0.9333333, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: b412943088786454c9bf10b1f7e1e94b, type: 3} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!1 &2378632240158519327 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2378632240158519326} - - component: {fileID: 2378632240158519323} - - component: {fileID: 2378632240158519321} - - component: {fileID: 2378632240158519320} - m_Layer: 5 - m_Name: Properties Panel - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &2378632240158519326 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2378632240158519327} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 2378632238683789172} - - {fileID: 2378632240161980831} - m_Father: {fileID: 0} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 0, y: -2} - m_SizeDelta: {x: 500, y: -4} - m_Pivot: {x: 0, y: 0.5} ---- !u!114 &2378632240158519323 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2378632240158519327} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 1aa08ab6e0800fa44ae55d278d1423e3, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Content: {fileID: 2378632238049155248} - m_Horizontal: 0 - m_Vertical: 1 - m_MovementType: 2 - m_Elasticity: 0.1 - m_Inertia: 1 - m_DecelerationRate: 0.135 - m_ScrollSensitivity: 10 - m_Viewport: {fileID: 2378632238683789172} - m_HorizontalScrollbar: {fileID: 0} - m_VerticalScrollbar: {fileID: 2378632240161980830} - m_HorizontalScrollbarVisibility: 0 - m_VerticalScrollbarVisibility: 2 - m_HorizontalScrollbarSpacing: -3 - m_VerticalScrollbarSpacing: -3 - m_OnValueChanged: - m_PersistentCalls: - m_Calls: [] ---- !u!222 &2378632240158519321 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2378632240158519327} - m_CullTransparentMesh: 0 ---- !u!114 &2378632240158519320 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2378632240158519327} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0, g: 0.064619616, b: 0.154, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: e63fd14753d0f4943a54d9c382aa8cb1, type: 3} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!1 &2378632240161980828 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2378632240161980831} - - component: {fileID: 2378632240161980824} - - component: {fileID: 2378632240161980825} - - component: {fileID: 2378632240161980830} - m_Layer: 5 - m_Name: Scrollbar Vertical - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &2378632240161980831 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2378632240161980828} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 2378632239203440075} - m_Father: {fileID: 2378632240158519326} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 1, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 20, y: 0} - m_Pivot: {x: 1, y: 1} ---- !u!222 &2378632240161980824 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2378632240161980828} - m_CullTransparentMesh: 0 ---- !u!114 &2378632240161980825 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2378632240161980828} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.8, g: 0.9333333, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: b412943088786454c9bf10b1f7e1e94b, type: 3} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!114 &2378632240161980830 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2378632240161980828} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 2a4db7a114972834c8e4117be1d82ba3, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 3 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 1} - m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} - m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} - m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_SelectedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_SelectedTrigger: Highlighted - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 2378632238144827080} - m_HandleRect: {fileID: 2378632238144827081} - m_Direction: 2 - m_Value: 0 - m_Size: 0.9999999 - m_NumberOfSteps: 0 - m_OnValueChanged: - m_PersistentCalls: - m_Calls: [] ---- !u!1 &5116519198747529743 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 5116519198747529736} - - component: {fileID: 5116519198747529739} - - component: {fileID: 5116519198747529738} - - component: {fileID: 5116519198747529737} - m_Layer: 5 - m_Name: Title - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &5116519198747529736 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5116519198747529743} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 2378632238049155248} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &5116519198747529739 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5116519198747529743} - m_CullTransparentMesh: 0 ---- !u!114 &5116519198747529738 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5116519198747529743} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: Kreacher's Comfort - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: f65e20c70af9671428dd62c7c635e417, type: 2} - m_sharedMaterial: {fileID: 21790448164444372, guid: f65e20c70af9671428dd62c7c635e417, - type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, a: 1} - m_enableVertexGradient: 0 - m_colorMode: 3 - m_fontColorGradient: - topLeft: {r: 1, g: 1, b: 1, a: 1} - topRight: {r: 1, g: 1, b: 1, a: 1} - bottomLeft: {r: 1, g: 1, b: 1, a: 1} - bottomRight: {r: 1, g: 1, b: 1, a: 1} - m_fontColorGradientPreset: {fileID: 0} - m_spriteAsset: {fileID: 0} - m_tintAllSprites: 0 - m_StyleSheet: {fileID: 0} - m_TextStyleHashCode: 0 - m_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_fontSize: 72 - m_fontSizeBase: 72 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_HorizontalAlignment: 1 - m_VerticalAlignment: 256 - m_textAlignment: 513 - m_characterSpacing: 0 - m_wordSpacing: 0 - m_lineSpacing: 0 - m_lineSpacingMax: 0 - m_paragraphSpacing: 0 - m_charWidthMaxAdj: 0 - m_enableWordWrapping: 1 - m_wordWrappingRatios: 0.4 - m_overflowMode: 0 - m_linkedTextComponent: {fileID: 0} - parentLinkedComponent: {fileID: 0} - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_IsTextObjectScaleStatic: 0 - m_VertexBufferAutoSizeReduction: 1 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_hasFontAssetChanged: 0 - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!114 &5116519198747529737 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5116519198747529743} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} - m_Name: - m_EditorClassIdentifier: - m_IgnoreLayout: 0 - m_MinWidth: -1 - m_MinHeight: -1 - m_PreferredWidth: -1 - m_PreferredHeight: -1 - m_FlexibleWidth: 1 - m_FlexibleHeight: -1 - m_LayoutPriority: 1 diff --git a/Assets/Prefabs/UI/Properties Panel/Properties.prefab b/Assets/Prefabs/UI/Properties Panel/Properties.prefab index ba4f78793..ab3559cc6 100644 --- a/Assets/Prefabs/UI/Properties Panel/Properties.prefab +++ b/Assets/Prefabs/UI/Properties Panel/Properties.prefab @@ -755,6 +755,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 8c2bf4a7080061d42a87046c37bf0c60, type: 3} m_Name: m_EditorClassIdentifier: + Spacer: {fileID: 7041706416206723741, guid: 4638d28139b15b34fac8dae056f7d5fd, type: 3} Dropdown: {fileID: 0} Title: {fileID: 7131821417072393581} Section: {fileID: 1026668114703092140, guid: 3a149ea40b43fbf47b51ec165cb04e5f, type: 3} diff --git a/Assets/Prefabs/UI/Properties Panel/Property List 1.prefab b/Assets/Prefabs/UI/Properties Panel/Property List 1.prefab index 92ca7a91e..f776c2be8 100644 --- a/Assets/Prefabs/UI/Properties Panel/Property List 1.prefab +++ b/Assets/Prefabs/UI/Properties Panel/Property List 1.prefab @@ -256,6 +256,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 2544c9c8b6358c54ea58c5fb33bb48b7, type: 3} m_Name: m_EditorClassIdentifier: + Spacer: {fileID: 7041706416206723741, guid: 4638d28139b15b34fac8dae056f7d5fd, type: 3} Dropdown: {fileID: 0} Title: {fileID: 2088721703192714100} Section: {fileID: 1026668114703092140, guid: 3a149ea40b43fbf47b51ec165cb04e5f, type: 3} @@ -282,6 +283,7 @@ MonoBehaviour: type: 3} IncrementField: {fileID: 5486709585343280439, guid: 9c14c92a1a08b0a4fb4f6aa6f8504082, type: 3} + Content: {fileID: 0} SelectedChild: {fileID: 0} FoldoutIcon: {fileID: 6485458701090981364} FoldoutRotationDamping: 10 @@ -303,6 +305,7 @@ MonoBehaviour: m_EditorClassIdentifier: m_Navigation: m_Mode: 3 + m_WrapAround: 0 m_SelectOnUp: {fileID: 0} m_SelectOnDown: {fileID: 0} m_SelectOnLeft: {fileID: 0} diff --git a/Assets/Prefabs/UI/Properties Panel/Property List.prefab b/Assets/Prefabs/UI/Properties Panel/Property List.prefab index 0beb58de8..a9a55945f 100644 --- a/Assets/Prefabs/UI/Properties Panel/Property List.prefab +++ b/Assets/Prefabs/UI/Properties Panel/Property List.prefab @@ -256,6 +256,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 2544c9c8b6358c54ea58c5fb33bb48b7, type: 3} m_Name: m_EditorClassIdentifier: + Spacer: {fileID: 7041706416206723741, guid: 4638d28139b15b34fac8dae056f7d5fd, type: 3} Dropdown: {fileID: 0} Title: {fileID: 2088721703192714100} Section: {fileID: 1026668114703092140, guid: 3a149ea40b43fbf47b51ec165cb04e5f, type: 3} @@ -282,6 +283,7 @@ MonoBehaviour: type: 3} IncrementField: {fileID: 5486709585343280439, guid: 9c14c92a1a08b0a4fb4f6aa6f8504082, type: 3} + Content: {fileID: 0} SelectedChild: {fileID: 0} FoldoutIcon: {fileID: 6485458701090981364} FoldoutRotationDamping: 10 @@ -303,6 +305,7 @@ MonoBehaviour: m_EditorClassIdentifier: m_Navigation: m_Mode: 3 + m_WrapAround: 0 m_SelectOnUp: {fileID: 0} m_SelectOnDown: {fileID: 0} m_SelectOnLeft: {fileID: 0} diff --git a/Assets/Prefabs/UI/Properties Panel/Spacer.prefab b/Assets/Prefabs/UI/Properties Panel/Spacer.prefab new file mode 100644 index 000000000..6722fbaec --- /dev/null +++ b/Assets/Prefabs/UI/Properties Panel/Spacer.prefab @@ -0,0 +1,58 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &821022499500612761 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7041706416206723741} + - component: {fileID: 7134468039738757772} + m_Layer: 5 + m_Name: Spacer + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7041706416206723741 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 821022499500612761} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &7134468039738757772 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 821022499500612761} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: 16 + m_FlexibleWidth: 1 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 diff --git a/Assets/Prefabs/UI/Properties Panel/Properties Panel.prefab.meta b/Assets/Prefabs/UI/Properties Panel/Spacer.prefab.meta similarity index 74% rename from Assets/Prefabs/UI/Properties Panel/Properties Panel.prefab.meta rename to Assets/Prefabs/UI/Properties Panel/Spacer.prefab.meta index 85cb42bb3..63eb64a3e 100644 --- a/Assets/Prefabs/UI/Properties Panel/Properties Panel.prefab.meta +++ b/Assets/Prefabs/UI/Properties Panel/Spacer.prefab.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 4fca44e21a27a6d48916d2cc4b6e2df0 +guid: 4638d28139b15b34fac8dae056f7d5fd PrefabImporter: externalObjects: {} userData: diff --git a/Assets/Scenes/ARPG.unity b/Assets/Scenes/ARPG.unity index 94136e1bb..b8557f8a0 100644 --- a/Assets/Scenes/ARPG.unity +++ b/Assets/Scenes/ARPG.unity @@ -810,10 +810,10 @@ RectTransform: m_Father: {fileID: 1783772015} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 527.51, y: -40} + m_SizeDelta: {x: 329.91, y: 56} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &101395091 MonoBehaviour: @@ -9514,6 +9514,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 83488dc4b5e58cd40b4d1c4ee98207b5, type: 3} m_Name: m_EditorClassIdentifier: + Spacer: {fileID: 0} Dropdown: {fileID: 178733681} Title: {fileID: 738229278} Section: {fileID: 1026668114703092140, guid: 3a149ea40b43fbf47b51ec165cb04e5f, type: 3} @@ -9671,12 +9672,12 @@ PrefabInstance: - target: {fileID: 2279630452592903581, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_AnchorMax.x - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 2279630452592903581, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_AnchorMax.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 2279630452592903581, guid: aac073da6df367d499834c926930dd84, type: 3} @@ -9686,82 +9687,82 @@ PrefabInstance: - target: {fileID: 2279630452912159027, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_AnchorMax.x - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 2279630452912159027, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_AnchorMax.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 2279630452951644481, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_AnchorMax.x - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 2279630452951644481, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_AnchorMax.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 2279630452951644481, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_SizeDelta.x - value: 0 + value: -10 objectReference: {fileID: 0} - target: {fileID: 2279630452951644481, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_SizeDelta.y - value: 0 + value: -10 objectReference: {fileID: 0} - target: {fileID: 2279630453233804081, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_AnchorMax.x - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 2279630453233804081, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_SizeDelta.x - value: 0 + value: -10 objectReference: {fileID: 0} - target: {fileID: 2279630453679143107, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_AnchorMax.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 2279630453679143107, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_AnchorMin.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 2279630453679143107, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_SizeDelta.x - value: 0 + value: 107.76 objectReference: {fileID: 0} - target: {fileID: 2279630453679143107, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_SizeDelta.y - value: 0 + value: 24 objectReference: {fileID: 0} - target: {fileID: 2279630453679143107, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_AnchoredPosition.x - value: 0 + value: 210.12 objectReference: {fileID: 0} - target: {fileID: 2279630453679143107, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_AnchoredPosition.y - value: 0 + value: -8 objectReference: {fileID: 0} - target: {fileID: 2279630453710142155, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_SizeDelta.x - value: 0 + value: -396 objectReference: {fileID: 0} - target: {fileID: 2279630453710142155, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_SizeDelta.y - value: 0 + value: -545 objectReference: {fileID: 0} - target: {fileID: 2279630453886260052, guid: aac073da6df367d499834c926930dd84, type: 3} @@ -9912,72 +9913,72 @@ PrefabInstance: - target: {fileID: 2279630454000268454, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_AnchorMax.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 2279630454000268454, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_AnchorMin.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 2279630454000268454, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_SizeDelta.x - value: 0 + value: 32 objectReference: {fileID: 0} - target: {fileID: 2279630454000268454, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_SizeDelta.y - value: 0 + value: 32 objectReference: {fileID: 0} - target: {fileID: 2279630454000268454, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_AnchoredPosition.x - value: 0 + value: 72 objectReference: {fileID: 0} - target: {fileID: 2279630454000268454, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_AnchoredPosition.y - value: 0 + value: -24 objectReference: {fileID: 0} - target: {fileID: 2279630454002795611, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_AnchorMax.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 2279630454002795611, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_SizeDelta.y - value: 0 + value: -10 objectReference: {fileID: 0} - target: {fileID: 3031152863755518086, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_AnchorMax.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 3031152863755518086, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_AnchorMin.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 3031152863755518086, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_SizeDelta.x - value: 0 + value: 22 objectReference: {fileID: 0} - target: {fileID: 3031152863755518086, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_SizeDelta.y - value: 0 + value: 24 objectReference: {fileID: 0} - target: {fileID: 3031152863755518086, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_AnchoredPosition.x - value: 0 + value: 336.88 objectReference: {fileID: 0} - target: {fileID: 3031152863755518086, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_AnchoredPosition.y - value: 0 + value: -20 objectReference: {fileID: 0} - target: {fileID: 4075091371340814903, guid: aac073da6df367d499834c926930dd84, type: 3} @@ -10002,7 +10003,7 @@ PrefabInstance: - target: {fileID: 4397116930423727094, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_SizeDelta.y - value: 0 + value: 16 objectReference: {fileID: 0} - target: {fileID: 4397116930423727094, guid: aac073da6df367d499834c926930dd84, type: 3} @@ -10022,7 +10023,7 @@ PrefabInstance: - target: {fileID: 8871154407653395989, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_SizeDelta.y - value: 0 + value: -2 objectReference: {fileID: 0} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: aac073da6df367d499834c926930dd84, type: 3} @@ -13888,10 +13889,10 @@ RectTransform: m_Father: {fileID: 1783772015} m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 960.13495, y: -40} + m_SizeDelta: {x: 146.84, y: 56} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &931657852 MonoBehaviour: @@ -19867,10 +19868,10 @@ RectTransform: m_Father: {fileID: 1783772015} m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 1145.4999, y: -40} + m_SizeDelta: {x: 223.89, y: 56} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &1399108419 MonoBehaviour: @@ -20912,10 +20913,10 @@ RectTransform: m_Father: {fileID: 1783772015} m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 789.58997, y: -40} + m_SizeDelta: {x: 194.25, y: 56} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &1464157086 MonoBehaviour: @@ -22116,7 +22117,7 @@ PrefabInstance: - target: {fileID: 878382121558056004, guid: 2758dfa2744d7ad4d8877545189d116e, type: 3} propertyPath: m_AnchoredPosition.x - value: 0 + value: 55.675 objectReference: {fileID: 0} - target: {fileID: 878382121558056004, guid: 2758dfa2744d7ad4d8877545189d116e, type: 3} @@ -23285,7 +23286,7 @@ PrefabInstance: - target: {fileID: 878382121558056004, guid: 2758dfa2744d7ad4d8877545189d116e, type: 3} propertyPath: m_AnchoredPosition.x - value: 0 + value: 60.98 objectReference: {fileID: 0} - target: {fileID: 878382121558056004, guid: 2758dfa2744d7ad4d8877545189d116e, type: 3} @@ -24689,7 +24690,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 1 + m_IsActive: 0 --- !u!224 &1726632265 RectTransform: m_ObjectHideFlags: 0 @@ -27494,7 +27495,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 1 + m_IsActive: 0 --- !u!224 &1997243493 RectTransform: m_ObjectHideFlags: 0 @@ -29685,17 +29686,17 @@ PrefabInstance: - target: {fileID: 257019179550429270, guid: 426f9dcb510530d4dbfa678c9f727ec1, type: 3} propertyPath: m_AnchorMax.x - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 257019179550429270, guid: 426f9dcb510530d4dbfa678c9f727ec1, type: 3} propertyPath: m_AnchorMax.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 257019179596293679, guid: 426f9dcb510530d4dbfa678c9f727ec1, type: 3} propertyPath: m_SizeDelta.y - value: 0 + value: -583 objectReference: {fileID: 0} - target: {fileID: 257019179596293679, guid: 426f9dcb510530d4dbfa678c9f727ec1, type: 3} @@ -29705,17 +29706,17 @@ PrefabInstance: - target: {fileID: 257019180101986795, guid: 426f9dcb510530d4dbfa678c9f727ec1, type: 3} propertyPath: m_AnchorMax.x - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 257019180101986795, guid: 426f9dcb510530d4dbfa678c9f727ec1, type: 3} propertyPath: m_AnchorMax.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 257019180101986795, guid: 426f9dcb510530d4dbfa678c9f727ec1, type: 3} propertyPath: m_SizeDelta.x - value: 0 + value: -7 objectReference: {fileID: 0} - target: {fileID: 7131821417165215475, guid: 426f9dcb510530d4dbfa678c9f727ec1, type: 3} @@ -29975,12 +29976,12 @@ PrefabInstance: - target: {fileID: 2279630452592903581, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_AnchorMax.x - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 2279630452592903581, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_AnchorMax.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 2279630452592903581, guid: aac073da6df367d499834c926930dd84, type: 3} @@ -29990,82 +29991,82 @@ PrefabInstance: - target: {fileID: 2279630452912159027, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_AnchorMax.x - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 2279630452912159027, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_AnchorMax.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 2279630452951644481, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_AnchorMax.x - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 2279630452951644481, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_AnchorMax.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 2279630452951644481, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_SizeDelta.x - value: 0 + value: -10 objectReference: {fileID: 0} - target: {fileID: 2279630452951644481, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_SizeDelta.y - value: 0 + value: -10 objectReference: {fileID: 0} - target: {fileID: 2279630453233804081, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_AnchorMax.x - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 2279630453233804081, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_SizeDelta.x - value: 0 + value: -10 objectReference: {fileID: 0} - target: {fileID: 2279630453679143107, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_AnchorMax.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 2279630453679143107, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_AnchorMin.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 2279630453679143107, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_SizeDelta.x - value: 0 + value: 107.76 objectReference: {fileID: 0} - target: {fileID: 2279630453679143107, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_SizeDelta.y - value: 0 + value: 24 objectReference: {fileID: 0} - target: {fileID: 2279630453679143107, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_AnchoredPosition.x - value: 0 + value: 210.12 objectReference: {fileID: 0} - target: {fileID: 2279630453679143107, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_AnchoredPosition.y - value: 0 + value: -8 objectReference: {fileID: 0} - target: {fileID: 2279630453710142155, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_SizeDelta.x - value: 0 + value: -396 objectReference: {fileID: 0} - target: {fileID: 2279630453710142155, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_SizeDelta.y - value: 0 + value: -545 objectReference: {fileID: 0} - target: {fileID: 2279630453886260052, guid: aac073da6df367d499834c926930dd84, type: 3} @@ -30201,72 +30202,72 @@ PrefabInstance: - target: {fileID: 2279630454000268454, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_AnchorMax.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 2279630454000268454, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_AnchorMin.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 2279630454000268454, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_SizeDelta.x - value: 0 + value: 32 objectReference: {fileID: 0} - target: {fileID: 2279630454000268454, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_SizeDelta.y - value: 0 + value: 32 objectReference: {fileID: 0} - target: {fileID: 2279630454000268454, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_AnchoredPosition.x - value: 0 + value: 72 objectReference: {fileID: 0} - target: {fileID: 2279630454000268454, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_AnchoredPosition.y - value: 0 + value: -24 objectReference: {fileID: 0} - target: {fileID: 2279630454002795611, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_AnchorMax.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 2279630454002795611, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_SizeDelta.y - value: 0 + value: -10 objectReference: {fileID: 0} - target: {fileID: 3031152863755518086, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_AnchorMax.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 3031152863755518086, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_AnchorMin.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 3031152863755518086, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_SizeDelta.x - value: 0 + value: 22 objectReference: {fileID: 0} - target: {fileID: 3031152863755518086, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_SizeDelta.y - value: 0 + value: 24 objectReference: {fileID: 0} - target: {fileID: 3031152863755518086, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_AnchoredPosition.x - value: 0 + value: 336.88 objectReference: {fileID: 0} - target: {fileID: 3031152863755518086, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_AnchoredPosition.y - value: 0 + value: -20 objectReference: {fileID: 0} - target: {fileID: 4075091371340814903, guid: aac073da6df367d499834c926930dd84, type: 3} @@ -30296,7 +30297,7 @@ PrefabInstance: - target: {fileID: 4397116930423727094, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_SizeDelta.y - value: 0 + value: 16 objectReference: {fileID: 0} - target: {fileID: 4397116930423727094, guid: aac073da6df367d499834c926930dd84, type: 3} @@ -30316,7 +30317,7 @@ PrefabInstance: - target: {fileID: 8871154407653395989, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_SizeDelta.y - value: 0 + value: -2 objectReference: {fileID: 0} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: aac073da6df367d499834c926930dd84, type: 3} @@ -33721,6 +33722,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 8c2bf4a7080061d42a87046c37bf0c60, type: 3} m_Name: m_EditorClassIdentifier: + Spacer: {fileID: 0} Dropdown: {fileID: 178733681} Title: {fileID: 5496444666933891210} Section: {fileID: 1026668114703092140, guid: 3a149ea40b43fbf47b51ec165cb04e5f, type: 3} diff --git a/Assets/Scenes/Main Menu.unity b/Assets/Scenes/Main Menu.unity index 17e2927a7..36f734ef9 100644 --- a/Assets/Scenes/Main Menu.unity +++ b/Assets/Scenes/Main Menu.unity @@ -802,8 +802,8 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 741153267} - m_LocalRotation: {x: 0.015506903, y: 0.9502416, z: -0.30741313, w: 0.047933225} - m_LocalPosition: {x: -117.51999, y: -77.08743, z: 149.09026} + m_LocalRotation: {x: 0.0155069195, y: 0.9502416, z: -0.30741316, w: 0.047933277} + m_LocalPosition: {x: -117.52002, y: -77.087425, z: 149.09026} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: - {fileID: 412917866} @@ -1220,8 +1220,8 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 965376321} - m_LocalRotation: {x: 0.015506903, y: 0.9502416, z: -0.30741313, w: 0.047933225} - m_LocalPosition: {x: -117.51999, y: -77.08743, z: 149.09026} + m_LocalRotation: {x: 0.0155069195, y: 0.9502416, z: -0.30741316, w: 0.047933277} + m_LocalPosition: {x: -117.52002, y: -77.087425, z: 149.09026} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 0} @@ -2159,6 +2159,11 @@ PrefabInstance: propertyPath: m_SizeDelta.y value: 0 objectReference: {fileID: 0} + - target: {fileID: 350889891057474423, guid: 3d8d9cbf10b12214e98891c1f03c1e99, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} - target: {fileID: 350889891632477145, guid: 3d8d9cbf10b12214e98891c1f03c1e99, type: 3} propertyPath: m_AnchorMax.y @@ -2307,7 +2312,7 @@ PrefabInstance: - target: {fileID: 3664209305474245377, guid: 3d8d9cbf10b12214e98891c1f03c1e99, type: 3} propertyPath: m_AnchoredPosition.x - value: 0 + value: 60.98 objectReference: {fileID: 0} - target: {fileID: 3664209305474245377, guid: 3d8d9cbf10b12214e98891c1f03c1e99, type: 3} @@ -2332,7 +2337,7 @@ PrefabInstance: - target: {fileID: 3664209306888449100, guid: 3d8d9cbf10b12214e98891c1f03c1e99, type: 3} propertyPath: m_AnchoredPosition.x - value: 0 + value: 55.675 objectReference: {fileID: 0} - target: {fileID: 3664209306888449100, guid: 3d8d9cbf10b12214e98891c1f03c1e99, type: 3} diff --git a/Assets/Scripts/Gameplay/ActionGameManager.cs b/Assets/Scripts/Gameplay/ActionGameManager.cs index 0fe6f02c8..8602ab7ea 100644 --- a/Assets/Scripts/Gameplay/ActionGameManager.cs +++ b/Assets/Scripts/Gameplay/ActionGameManager.cs @@ -26,6 +26,7 @@ using Random = UnityEngine.Random; public class ActionGameManager : MonoBehaviour { + public static ActionGameManager Instance { get; private set; } private static DirectoryInfo _gameDataDirectory; public static DirectoryInfo GameDataDirectory { @@ -182,6 +183,7 @@ public class ActionGameManager : MonoBehaviour void Start() { + Instance = this; EntityInstance.EffectManagerParent = EffectManagerParent; AkSoundEngine.RegisterGameObj(gameObject); ConsoleController.MessageReceiver = this; @@ -996,11 +998,16 @@ public class ActionGameManager : MonoBehaviour { indicator.Value.gameObject.SetActive(indicator.Key!=CurrentEntity.Target.Value); indicator.Value.Place.Target = indicator.Key.Position; - indicator.Value.Fill.fillAmount = - saturate(indicator.Key.EntityInfoGathered[CurrentEntity] / Settings.GameplaySettings.TargetDetectionInfoThreshold); - indicator.Value.Fill.enabled = - !(indicator.Key.EntityInfoGathered[CurrentEntity] > Settings.GameplaySettings.TargetDetectionInfoThreshold) || - sin(TargetSpottedBlinkFrequency * Time.time) + TargetSpottedBlinkOffset > 0; + if (!indicator.Key.Active) + indicator.Value.Fill.enabled = false; + else + { + indicator.Value.Fill.fillAmount = + saturate(indicator.Key.EntityInfoGathered[CurrentEntity] / Settings.GameplaySettings.TargetDetectionInfoThreshold); + indicator.Value.Fill.enabled = + !(indicator.Key.EntityInfoGathered[CurrentEntity] > Settings.GameplaySettings.TargetDetectionInfoThreshold) || + sin(TargetSpottedBlinkFrequency * Time.time) + TargetSpottedBlinkOffset > 0; + } } var look = Input.Player.Look.ReadValue(); _entityYawPitch = float2(_entityYawPitch.x + look.x * Sensitivity.x, clamp(_entityYawPitch.y + look.y * Sensitivity.y, -.45f * PI, .45f * PI)); diff --git a/Assets/Scripts/Gameplay/ShipInstance.cs b/Assets/Scripts/Gameplay/ShipInstance.cs index 956fa85f9..8fbd7189f 100644 --- a/Assets/Scripts/Gameplay/ShipInstance.cs +++ b/Assets/Scripts/Gameplay/ShipInstance.cs @@ -33,7 +33,7 @@ public class ShipInstance : EntityInstance var particles = Instantiate(UnityHelpers.LoadAsset(effectData.ParticlesPrefab), transform, false); var particlesShape = particles.shape; var thrusterHardpoint = ThrusterHardpoints - .FirstOrDefault(t => t.name == thruster.Entity.Hardpoints[thruster.Item.Position.x, thruster.Item.Position.y].Transform); + .FirstOrDefault(t => t.name == ship.Hardpoints[thruster.Item.Position.x, thruster.Item.Position.y].Transform); particlesShape.meshRenderer = thrusterHardpoint?.Emitter; // if (!string.IsNullOrEmpty(thruster.Item.Data.SoundEffectTrigger) && thrusterHardpoint != null) // { diff --git a/Assets/Scripts/ServerShared/AetheriaMath.cs b/Assets/Scripts/ServerShared/AetheriaMath.cs index 72bc642a1..0080b3a80 100644 --- a/Assets/Scripts/ServerShared/AetheriaMath.cs +++ b/Assets/Scripts/ServerShared/AetheriaMath.cs @@ -7,6 +7,16 @@ public static class AetheriaMath { public const float Deg2Rad = 0.01745329f; public const float Rad2Deg = 57.29578f; + + public static float Decay(float source, float lambda, float dt) + { + return source * exp(-lambda * dt); + } + + public static float Damp(float a, float b, float lambda, float dt) + { + return lerp(a, b, 1 - exp(-lambda * dt)); + } //first-order intercept using absolute target position public static float3 FirstOrderIntercept diff --git a/Assets/Scripts/ServerShared/Behaviors/AutoWeapon.cs b/Assets/Scripts/ServerShared/Behaviors/AutoWeapon.cs index 99ecf3097..1d744209b 100644 --- a/Assets/Scripts/ServerShared/Behaviors/AutoWeapon.cs +++ b/Assets/Scripts/ServerShared/Behaviors/AutoWeapon.cs @@ -9,16 +9,16 @@ using static Unity.Mathematics.math; [Inspectable, MessagePackObject, JsonObject(MemberSerialization.OptIn), RuntimeInspectable] public class AutoWeaponData : InstantWeaponData { - public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item) + public override IBehavior CreateInstance(EquippedItem item) { - return new AutoWeapon(context, this, entity, item); + return new AutoWeapon(this, item); } } public class AutoWeapon : InstantWeapon { - public AutoWeapon(ItemManager context, InstantWeaponData data, Entity entity, EquippedItem item) : base(context, data, entity, item) + public AutoWeapon(InstantWeaponData data, EquippedItem item) : base(data, item) { } diff --git a/Assets/Scripts/ServerShared/Behaviors/Behaviors.cs b/Assets/Scripts/ServerShared/Behaviors/Behaviors.cs index 225a9e0d1..d79d9c3fd 100644 --- a/Assets/Scripts/ServerShared/Behaviors/Behaviors.cs +++ b/Assets/Scripts/ServerShared/Behaviors/Behaviors.cs @@ -102,7 +102,7 @@ public abstract class PersistentBehaviorData Union(16, typeof(HeatData)), // Union(17, typeof(HitscanData)), Union(18, typeof(ItemUsageData)), - Union(19, typeof(RadianceData)), + //Union(19, typeof(RadianceData)), Union(20, typeof(SwitchData)), Union(21, typeof(TriggerData)), Union(22, typeof(VisibilityData)), @@ -128,7 +128,7 @@ public abstract class BehaviorData [Inspectable, JsonProperty("group"), Key(0)] public int Group; - public abstract IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item); + public abstract IBehavior CreateInstance(EquippedItem item); public override string ToString() { diff --git a/Assets/Scripts/ServerShared/Behaviors/Capacitor.cs b/Assets/Scripts/ServerShared/Behaviors/Capacitor.cs index 4a17e5481..a75a53105 100644 --- a/Assets/Scripts/ServerShared/Behaviors/Capacitor.cs +++ b/Assets/Scripts/ServerShared/Behaviors/Capacitor.cs @@ -17,9 +17,9 @@ public class CapacitorData : BehaviorData [Inspectable, JsonProperty("efficiency"), Key(2), RuntimeInspectable] public PerformanceStat Efficiency = new PerformanceStat(); - public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item) + public override IBehavior CreateInstance(EquippedItem item) { - return new Capacitor(context, this, entity, item); + return new Capacitor(this, item); } } @@ -27,9 +27,7 @@ public class Capacitor : IBehavior { private CapacitorData _data; - public Entity Entity { get; } public EquippedItem Item { get; } - public ItemManager Context { get; } public BehaviorData Data => _data; @@ -43,11 +41,9 @@ public class Capacitor : IBehavior Item.AddHeat(abs(charge) * (1-Efficiency)); } - public Capacitor(ItemManager context, CapacitorData data, Entity entity, EquippedItem item) + public Capacitor(CapacitorData data, EquippedItem item) { - Context = context; _data = data; - Entity = entity; Item = item; } diff --git a/Assets/Scripts/ServerShared/Behaviors/ChargedWeapon.cs b/Assets/Scripts/ServerShared/Behaviors/ChargedWeapon.cs index 912e20053..8ddd997e9 100644 --- a/Assets/Scripts/ServerShared/Behaviors/ChargedWeapon.cs +++ b/Assets/Scripts/ServerShared/Behaviors/ChargedWeapon.cs @@ -45,9 +45,9 @@ public class ChargedWeaponData : InstantWeaponData [Inspectable, JsonProperty("chargeHeatMul"), Key(32)] public float ChargeFiringHeatMultiplier = 1; - public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item) + public override IBehavior CreateInstance(EquippedItem item) { - return new ChargedWeapon(context, this, entity, item); + return new ChargedWeapon(this, item); } } @@ -93,7 +93,7 @@ public class ChargedWeapon : InstantWeapon, IEventBehavior get => _charge; } - public ChargedWeapon(ItemManager context, ChargedWeaponData data, Entity entity, EquippedItem item) : base(context, data, entity, item) + public ChargedWeapon(ChargedWeaponData data, EquippedItem item) : base(data, item) { _data = data; } diff --git a/Assets/Scripts/ServerShared/Behaviors/Cockpit.cs b/Assets/Scripts/ServerShared/Behaviors/Cockpit.cs index abf21ceca..528e664d9 100644 --- a/Assets/Scripts/ServerShared/Behaviors/Cockpit.cs +++ b/Assets/Scripts/ServerShared/Behaviors/Cockpit.cs @@ -11,9 +11,9 @@ using static Unity.Mathematics.math; [Inspectable, MessagePackObject, JsonObject(MemberSerialization.OptIn), RuntimeInspectable] public class CockpitData : BehaviorData { - public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item) + public override IBehavior CreateInstance(EquippedItem item) { - return new Cockpit(context, this, entity, item); + return new Cockpit(this, item); } } @@ -21,18 +21,14 @@ public class Cockpit : IBehavior { private CockpitData _data; - public Entity Entity { get; } public EquippedItem Item { get; } - public ItemManager Context { get; } public BehaviorData Data => _data; - public Cockpit(ItemManager context, CockpitData data, Entity entity, EquippedItem item) + public Cockpit(CockpitData data, EquippedItem item) { - Context = context; _data = data; - Entity = entity; Item = item; } diff --git a/Assets/Scripts/ServerShared/Behaviors/ConstantWeapon.cs b/Assets/Scripts/ServerShared/Behaviors/ConstantWeapon.cs index b80be7845..2300c5d32 100644 --- a/Assets/Scripts/ServerShared/Behaviors/ConstantWeapon.cs +++ b/Assets/Scripts/ServerShared/Behaviors/ConstantWeapon.cs @@ -14,9 +14,9 @@ public class ConstantWeaponData : WeaponData [InspectablePrefab, JsonProperty("ammoInterval"), Key(17)] public float AmmoInterval = 1; - public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item) + public override IBehavior CreateInstance(EquippedItem item) { - return new ConstantWeapon(context, this, entity, item); + return new ConstantWeapon(this, item); } } @@ -57,7 +57,7 @@ public class ConstantWeapon : Weapon, IProgressBehavior, IEventBehavior OnStopFiring = null; } - public ConstantWeapon(ItemManager context, ConstantWeaponData data, Entity entity, EquippedItem item) : base(context, data, entity, item) + public ConstantWeapon(ConstantWeaponData data, EquippedItem item) : base(data, item) { _data = data; } @@ -67,7 +67,7 @@ public class ConstantWeapon : Weapon, IProgressBehavior, IEventBehavior base.Execute(delta); if (_firing) { - if (!Entity.TryConsumeEnergy(Item.Evaluate(_data.Energy) * delta)) + if (!Item.Entity.TryConsumeEnergy(Item.Evaluate(_data.Energy) * delta)) { _firing = false; OnStopFiring?.Invoke(); @@ -93,7 +93,7 @@ public class ConstantWeapon : Weapon, IProgressBehavior, IEventBehavior if (_data.MagazineSize > 1 && _ammo > 0) _ammo--; else { - var cargo = Entity.FindItemInCargo(_data.AmmoType); + var cargo = Item.Entity.FindItemInCargo(_data.AmmoType); if (cargo != null) { var item = cargo.ItemsOfType[_data.AmmoType][0]; @@ -117,7 +117,7 @@ public class ConstantWeapon : Weapon, IProgressBehavior, IEventBehavior Item.EquippableItem.Durability -= Item.Wear * delta; Item.AddHeat(Item.Evaluate(_data.Heat) * delta); - Entity.VisibilitySources[this] = Item.Evaluate(_data.Visibility); + Item.Entity.VisibilitySources[this] = Item.Evaluate(_data.Visibility); } return true; } diff --git a/Assets/Scripts/ServerShared/Behaviors/Cooldown.cs b/Assets/Scripts/ServerShared/Behaviors/Cooldown.cs index 6b82be8b5..0b63b2f79 100644 --- a/Assets/Scripts/ServerShared/Behaviors/Cooldown.cs +++ b/Assets/Scripts/ServerShared/Behaviors/Cooldown.cs @@ -15,9 +15,9 @@ public class CooldownData : BehaviorData [Inspectable, JsonProperty("cooldown"), Key(1), RuntimeInspectable] public PerformanceStat Cooldown = new PerformanceStat(); - public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item) + public override IBehavior CreateInstance(EquippedItem item) { - return new Cooldown(context, this, entity, item); + return new Cooldown(this, item); } } @@ -26,20 +26,16 @@ public class Cooldown : IBehavior, IAlwaysUpdatedBehavior, IProgressBehavior private CooldownData _data; public BehaviorData Data => _data; - private Entity Entity { get; } private EquippedItem Item { get; } - private ItemManager Context { get; } private float _cooldown; // Normalized public float Progress => saturate(_cooldown); - public Cooldown(ItemManager context, CooldownData data, Entity entity, EquippedItem item) + public Cooldown(CooldownData data, EquippedItem item) { _data = data; - Entity = entity; Item = item; - Context = context; } public bool Execute(float delta) diff --git a/Assets/Scripts/ServerShared/Behaviors/EnergyDraw.cs b/Assets/Scripts/ServerShared/Behaviors/EnergyDraw.cs index ea70804c9..909c7e9d1 100644 --- a/Assets/Scripts/ServerShared/Behaviors/EnergyDraw.cs +++ b/Assets/Scripts/ServerShared/Behaviors/EnergyDraw.cs @@ -16,9 +16,9 @@ public class EnergyDrawData : BehaviorData [Inspectable, JsonProperty("perSecond"), Key(2)] public bool PerSecond; - public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item) + public override IBehavior CreateInstance(EquippedItem item) { - return new EnergyDraw(context, this, entity, item); + return new EnergyDraw(this, item); } } @@ -26,22 +26,18 @@ public class EnergyDraw : IBehavior { private EnergyDrawData _data; - private Entity Entity { get; } private EquippedItem Item { get; } - private ItemManager Context { get; } public BehaviorData Data => _data; - public EnergyDraw(ItemManager context, EnergyDrawData data, Entity entity, EquippedItem item) + public EnergyDraw(EnergyDrawData data, EquippedItem item) { _data = data; - Entity = entity; Item = item; - Context = context; } public bool Execute(float delta) { - return Entity.TryConsumeEnergy(Item.Evaluate(_data.EnergyDraw) * (_data.PerSecond ? delta : 1)); + return Item.Entity.TryConsumeEnergy(Item.Evaluate(_data.EnergyDraw) * (_data.PerSecond ? delta : 1)); } } \ No newline at end of file diff --git a/Assets/Scripts/ServerShared/Behaviors/Heat.cs b/Assets/Scripts/ServerShared/Behaviors/Heat.cs index 2d4478434..7bcd353bb 100644 --- a/Assets/Scripts/ServerShared/Behaviors/Heat.cs +++ b/Assets/Scripts/ServerShared/Behaviors/Heat.cs @@ -16,9 +16,9 @@ public class HeatData : BehaviorData [Inspectable, JsonProperty("perSecond"), Key(2)] public bool PerSecond; - public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item) + public override IBehavior CreateInstance(EquippedItem item) { - return new Heat(context, this, entity, item); + return new Heat(this, item); } } @@ -26,18 +26,14 @@ public class Heat : IBehavior { private HeatData _data; - private Entity Entity { get; } private EquippedItem Item { get; } - private ItemManager Context { get; } public BehaviorData Data => _data; - public Heat(ItemManager context, HeatData data, Entity entity, EquippedItem item) + public Heat(HeatData data, EquippedItem item) { _data = data; - Entity = entity; Item = item; - Context = context; } public bool Execute(float delta) diff --git a/Assets/Scripts/ServerShared/Behaviors/HeatStorage.cs b/Assets/Scripts/ServerShared/Behaviors/HeatStorage.cs index 2d579ffee..ba19424f2 100644 --- a/Assets/Scripts/ServerShared/Behaviors/HeatStorage.cs +++ b/Assets/Scripts/ServerShared/Behaviors/HeatStorage.cs @@ -11,9 +11,9 @@ using static Unity.Mathematics.math; [Inspectable, MessagePackObject, JsonObject(MemberSerialization.OptIn), RuntimeInspectable] public class HeatStorageData : BehaviorData { - public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item) + public override IBehavior CreateInstance(EquippedItem item) { - return new HeatStorage(context, this, entity, item); + return new HeatStorage(this, item); } } @@ -21,17 +21,13 @@ public class HeatStorage : IBehavior { private HeatStorageData _data; - public Entity Entity { get; } public EquippedItem Item { get; } - public ItemManager Context { get; } public BehaviorData Data => _data; - public HeatStorage(ItemManager context, HeatStorageData data, Entity entity, EquippedItem item) + public HeatStorage(HeatStorageData data, EquippedItem item) { - Context = context; _data = data; - Entity = entity; Item = item; } diff --git a/Assets/Scripts/ServerShared/Behaviors/InstantWeapon.cs b/Assets/Scripts/ServerShared/Behaviors/InstantWeapon.cs index f0c36fa33..203ca440e 100644 --- a/Assets/Scripts/ServerShared/Behaviors/InstantWeapon.cs +++ b/Assets/Scripts/ServerShared/Behaviors/InstantWeapon.cs @@ -21,9 +21,9 @@ public class InstantWeaponData : WeaponData [InspectablePrefab, JsonProperty("ammoInterval"), Key(20)] public bool SingleAmmoBurst; - public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item) + public override IBehavior CreateInstance(EquippedItem item) { - return new InstantWeapon(context, this, entity, item); + return new InstantWeapon(this, item); } } @@ -71,7 +71,7 @@ public class InstantWeapon : Weapon, IProgressBehavior, IEventBehavior OnFire = null; } - public InstantWeapon(ItemManager context, InstantWeaponData data, Entity entity, EquippedItem item) : base(context,data,entity,item) + public InstantWeapon(InstantWeaponData data, EquippedItem item) : base(data, item) { _data = data; _ammo = data.MagazineSize; @@ -81,7 +81,7 @@ public class InstantWeapon : Weapon, IProgressBehavior, IEventBehavior { // If 1 ammo is consumed per burst, perform ammo and energy consumption here // UseAmmo returns false when triggering reload; cancel firing if that is the case - if(_data.SingleAmmoBurst && (!Entity.TryConsumeEnergy(Energy) || !UseAmmo())) return; + if(_data.SingleAmmoBurst && (!Item.Entity.TryConsumeEnergy(Energy) || !UseAmmo())) return; _burstRemaining = (int) BurstCount; _burstInterval = BurstTime / _burstRemaining; @@ -115,7 +115,7 @@ public class InstantWeapon : Weapon, IProgressBehavior, IEventBehavior var hasAmmo = true; if (_data.AmmoType != Guid.Empty) { - var cargo = Entity.FindItemInCargo(_data.AmmoType); + var cargo = Item.Entity.FindItemInCargo(_data.AmmoType); if (cargo != null) { var item = cargo.ItemsOfType[_data.AmmoType][0]; @@ -160,7 +160,7 @@ public class InstantWeapon : Weapon, IProgressBehavior, IEventBehavior { // If multiple ammo is consumed per burst, perform ammo and energy consumption here // UseAmmo returns false when triggering reload; cancel firing if that is the case - if (!_data.SingleAmmoBurst && (!Entity.TryConsumeEnergy(Energy) || !UseAmmo())) + if (!_data.SingleAmmoBurst && (!Item.Entity.TryConsumeEnergy(Energy) || !UseAmmo())) { _burstRemaining = 0; return false; @@ -171,7 +171,7 @@ public class InstantWeapon : Weapon, IProgressBehavior, IEventBehavior OnFire?.Invoke(); Item.EquippableItem.Durability -= Item.Wear; Item.AddHeat(Heat); - Entity.VisibilitySources[this] = Visibility; + Item.Entity.VisibilitySources[this] = Visibility; } return true; } diff --git a/Assets/Scripts/ServerShared/Behaviors/ItemUsage.cs b/Assets/Scripts/ServerShared/Behaviors/ItemUsage.cs index 7087f3241..8c29be978 100644 --- a/Assets/Scripts/ServerShared/Behaviors/ItemUsage.cs +++ b/Assets/Scripts/ServerShared/Behaviors/ItemUsage.cs @@ -13,9 +13,9 @@ public class ItemUsageData : BehaviorData [InspectableDatabaseLink(typeof(SimpleCommodityData)), JsonProperty("item"), Key(1), RuntimeInspectable] public Guid Item; - public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item) + public override IBehavior CreateInstance(EquippedItem item) { - return new ItemUsage(context, this, entity, item); + return new ItemUsage(this, item); } } @@ -23,23 +23,19 @@ public class ItemUsage : IBehavior { private ItemUsageData _data; - private Entity Entity { get; } private EquippedItem Item { get; } - private ItemManager Context { get; } public BehaviorData Data => _data; - public ItemUsage(ItemManager context, ItemUsageData data, Entity entity, EquippedItem item) + public ItemUsage(ItemUsageData data, EquippedItem item) { _data = data; - Entity = entity; Item = item; - Context = context; } public bool Execute(float delta) { - var cargo = Entity.FindItemInCargo(_data.Item); + var cargo = Item.Entity.FindItemInCargo(_data.Item); if (cargo == null) return false; var item = cargo.ItemsOfType[_data.Item][0]; diff --git a/Assets/Scripts/ServerShared/Behaviors/Launcher.cs b/Assets/Scripts/ServerShared/Behaviors/Launcher.cs index 557b94507..f5aca298e 100644 --- a/Assets/Scripts/ServerShared/Behaviors/Launcher.cs +++ b/Assets/Scripts/ServerShared/Behaviors/Launcher.cs @@ -27,9 +27,9 @@ public class LauncherData : LockWeaponData [Inspectable, JsonProperty("missileSpeed"), Key(31), RuntimeInspectable] public PerformanceStat MissileVelocity = new PerformanceStat(); - public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item) + public override IBehavior CreateInstance(EquippedItem item) { - return new LockWeapon(context, this, entity, item); + return new LockWeapon(this, item); } } @@ -54,8 +54,8 @@ public class GuidedWeaponData : InstantWeaponData [Inspectable, JsonProperty("missileSpeed"), Key(26), RuntimeInspectable] public PerformanceStat MissileVelocity = new PerformanceStat(); - public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item) + public override IBehavior CreateInstance(EquippedItem item) { - return new InstantWeapon(context, this, entity, item); + return new InstantWeapon(this, item); } } \ No newline at end of file diff --git a/Assets/Scripts/ServerShared/Behaviors/LockWeapon.cs b/Assets/Scripts/ServerShared/Behaviors/LockWeapon.cs index c20f94c78..46a6bc5fa 100644 --- a/Assets/Scripts/ServerShared/Behaviors/LockWeapon.cs +++ b/Assets/Scripts/ServerShared/Behaviors/LockWeapon.cs @@ -24,9 +24,9 @@ public class LockWeaponData : InstantWeaponData [Inspectable, JsonProperty("decay"), Key(25)] public PerformanceStat Decay = new PerformanceStat(); - public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item) + public override IBehavior CreateInstance(EquippedItem item) { - return new LockWeapon(context, this, entity, item); + return new LockWeapon(this, item); } } @@ -49,27 +49,27 @@ public class LockWeapon : InstantWeapon public override float Progress => saturate(_cooldown > 0 ? _cooldown : _lock); - public override bool CanFire => base.CanFire && _lock > .99f && Entity.TargetRange > MinRange && Entity.TargetRange < Range; + public override bool CanFire => base.CanFire && _lock > .99f && Item.Entity.TargetRange > MinRange && Item.Entity.TargetRange < Range; public float Lock { get => saturate(_lock); } - public LockWeapon(ItemManager context, LockWeaponData data, Entity entity, EquippedItem item) : base(context, data, entity, item) + public LockWeapon(LockWeaponData data, EquippedItem item) : base(data, item) { _data = data; } public override bool Execute(float delta) { - if (_target != Entity.Target.Value) + if (_target != Item.Entity.Target.Value) { _lock = 0; - _target = Entity.Target.Value; + _target = Item.Entity.Target.Value; } - if (Entity.Target.Value != null && Entity.Target.Value.IsHostileTo(Entity)) + if (Item.Entity.Target.Value != null && Item.Entity.Target.Value.IsHostileTo(Item.Entity)) { LockSpeed = Item.Evaluate(_data.LockSpeed); SensorImpact = Item.Evaluate(_data.SensorImpact); @@ -77,11 +77,11 @@ public class LockWeapon : InstantWeapon DirectionImpact = Item.Evaluate(_data.DirectionImpact); Decay = Item.Evaluate(_data.Decay); - var degrees = acos(dot(normalize(Entity.Target.Value.Position - Entity.Position), normalize(Entity.LookDirection))) * 57.2958f; + var degrees = acos(dot(normalize(Item.Entity.Target.Value.Position - Item.Entity.Position), normalize(Item.Entity.LookDirection))) * 57.2958f; if (degrees < LockAngle) { var lerp = 1 - unlerp(0, 90, degrees); - _lock = saturate(_lock + pow(lerp, DirectionImpact) * delta * LockSpeed * pow(Entity.EntityInfoGathered[Entity.Target.Value], SensorImpact)); + _lock = saturate(_lock + pow(lerp, DirectionImpact) * delta * LockSpeed * pow(Item.Entity.EntityInfoGathered[Item.Entity.Target.Value], SensorImpact)); } else _lock = saturate(_lock - delta * Decay); } diff --git a/Assets/Scripts/ServerShared/Behaviors/MiningTool.cs b/Assets/Scripts/ServerShared/Behaviors/MiningTool.cs index 9bfc3eaf4..413c11ac4 100644 --- a/Assets/Scripts/ServerShared/Behaviors/MiningTool.cs +++ b/Assets/Scripts/ServerShared/Behaviors/MiningTool.cs @@ -24,9 +24,9 @@ public class MiningToolData : BehaviorData [Inspectable, JsonProperty("range"), Key(4)] public PerformanceStat Range = new PerformanceStat(); - public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item) + public override IBehavior CreateInstance(EquippedItem item) { - return new MiningTool(context, this, entity, item); + return new MiningTool(this, item); } } @@ -37,31 +37,27 @@ public class MiningTool : IBehavior private MiningToolData _data; - private Entity Entity { get; } private EquippedItem Item { get; } - private ItemManager Context { get; } public BehaviorData Data => _data; public float Range { get; private set; } - public MiningTool(ItemManager context, MiningToolData data, Entity entity, EquippedItem item) + public MiningTool(MiningToolData data, EquippedItem item) { _data = data; - Entity = entity; Item = item; - Context = context; } public bool Execute(float delta) { Range = Item.Evaluate(_data.Range); - var belt = Entity.Zone.AsteroidBelts[AsteroidBelt]; + var belt = Item.Entity.Zone.AsteroidBelts[AsteroidBelt]; if (AsteroidBelt != Guid.Empty && - Entity.Zone.AsteroidExists(AsteroidBelt, Asteroid) && - length(Entity.Position.xz - belt.Positions[Asteroid].xz) - belt.Scales[Asteroid] < Range) + Item.Entity.Zone.AsteroidExists(AsteroidBelt, Asteroid) && + length(Item.Entity.Position.xz - belt.Positions[Asteroid].xz) - belt.Scales[Asteroid] < Range) { - Entity.Zone.MineAsteroid( - Entity, + Item.Entity.Zone.MineAsteroid( + Item.Entity, AsteroidBelt, Asteroid, Item.Evaluate(_data.DamagePerSecond) * delta, diff --git a/Assets/Scripts/ServerShared/Behaviors/Radiance.cs b/Assets/Scripts/ServerShared/Behaviors/Radiance.cs deleted file mode 100644 index b3113d670..000000000 --- a/Assets/Scripts/ServerShared/Behaviors/Radiance.cs +++ /dev/null @@ -1,45 +0,0 @@ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ - -using System; -using System.Linq; -using MessagePack; -using Newtonsoft.Json; - -[Inspectable, MessagePackObject, JsonObject(MemberSerialization.OptIn), RuntimeInspectable] -public class RadianceData : BehaviorData -{ - [Inspectable, JsonProperty("radiance"), Key(1), RuntimeInspectable] - public PerformanceStat Radiance = new PerformanceStat(); - - public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item) - { - return new Radiance(context, this, entity, item); - } -} - -public class Radiance : IBehavior -{ - private RadianceData _data; - - private Entity Entity { get; } - private EquippedItem Item { get; } - private ItemManager Context { get; } - - public BehaviorData Data => _data; - - public Radiance(ItemManager context, RadianceData data, Entity entity, EquippedItem item) - { - _data = data; - Entity = entity; - Item = item; - Context = context; - } - - public bool Execute(float delta) - { - // TODO: Light system! - return true; - } -} \ No newline at end of file diff --git a/Assets/Scripts/ServerShared/Behaviors/Radiance.cs.meta b/Assets/Scripts/ServerShared/Behaviors/Radiance.cs.meta deleted file mode 100644 index 94acbd584..000000000 --- a/Assets/Scripts/ServerShared/Behaviors/Radiance.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 1fbf8a3d31de89a4aa53d43e015536c7 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Scripts/ServerShared/Behaviors/Radiator.cs b/Assets/Scripts/ServerShared/Behaviors/Radiator.cs index 69472fb7c..164bf4175 100644 --- a/Assets/Scripts/ServerShared/Behaviors/Radiator.cs +++ b/Assets/Scripts/ServerShared/Behaviors/Radiator.cs @@ -25,17 +25,15 @@ public class RadiatorData : BehaviorData [Inspectable, JsonProperty("energyUsage"), Key(5), RuntimeInspectable] public PerformanceStat EnergyUsage = new PerformanceStat(); - public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item) + public override IBehavior CreateInstance(EquippedItem item) { - return new Radiator(context, this, entity, item); + return new Radiator(this, item); } } public class Radiator : IBehavior, IAlwaysUpdatedBehavior, IInitializableBehavior { - public Entity Entity { get; } public EquippedItem Item { get; } - public ItemManager Context { get; } public float Temperature { get; private set; } public BehaviorData Data => _data; @@ -47,11 +45,9 @@ public class Radiator : IBehavior, IAlwaysUpdatedBehavior, IInitializableBehavio private RadiatorData _data; - public Radiator(ItemManager context, RadiatorData data, Entity entity, EquippedItem item) + public Radiator(RadiatorData data, EquippedItem item) { - Context = context; _data = data; - Entity = entity; Item = item; } @@ -67,7 +63,7 @@ public class Radiator : IBehavior, IAlwaysUpdatedBehavior, IInitializableBehavio // Temperature ratio would cause more waste heat than pump capacity, stop executing if (tempRatio > PumpedHeat / WasteHeat) return true; - if (!Entity.TryConsumeEnergy(EnergyUsage * tempRatio * delta)) return false; + if (!Item.Entity.TryConsumeEnergy(EnergyUsage * tempRatio * delta)) return false; var pumpedHeat = PumpedHeat * max(itemTemperature - _data.TemperatureFloor, 0); @@ -77,7 +73,7 @@ public class Radiator : IBehavior, IAlwaysUpdatedBehavior, IInitializableBehavio var wasteHeat = WasteHeat * tempRatio; Item.AddHeat((wasteHeat - pumpedHeat) * delta); - Temperature += pumpedHeat / Context.GetThermalMass(Item.EquippableItem) * delta; + Temperature += pumpedHeat / Item.ItemManager.GetThermalMass(Item.EquippableItem) * delta; return true; } @@ -85,9 +81,9 @@ public class Radiator : IBehavior, IAlwaysUpdatedBehavior, IInitializableBehavio public void Update(float delta) { Emissivity = Item.Evaluate(_data.Emissivity); - var rad = pow(Temperature, Context.GameplaySettings.HeatRadiationExponent) * Context.GameplaySettings.HeatRadiationMultiplier * Emissivity; + var rad = pow(Temperature, Item.ItemManager.GameplaySettings.HeatRadiationExponent) * Item.ItemManager.GameplaySettings.HeatRadiationMultiplier * Emissivity; Temperature -= rad * delta; - Entity.VisibilitySources[this] = rad; + Item.Entity.VisibilitySources[this] = rad; } public void Initialize() diff --git a/Assets/Scripts/ServerShared/Behaviors/Reactor.cs b/Assets/Scripts/ServerShared/Behaviors/Reactor.cs index 79d227deb..ca7859a6b 100644 --- a/Assets/Scripts/ServerShared/Behaviors/Reactor.cs +++ b/Assets/Scripts/ServerShared/Behaviors/Reactor.cs @@ -25,9 +25,9 @@ public class ReactorData : BehaviorData [Inspectable, JsonProperty("underload"), Key(4), RuntimeInspectable] public PerformanceStat ThrottlingFactor = new PerformanceStat(); - public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item) + public override IBehavior CreateInstance(EquippedItem item) { - return new Reactor(context, this, entity, item); + return new Reactor(this, item); } } @@ -49,19 +49,17 @@ public class Reactor : IBehavior, IOrderedBehavior private List _capacitors; - public Reactor(ItemManager context, ReactorData data, Entity entity, EquippedItem item) + public Reactor(ReactorData data, EquippedItem item) { - Context = context; _data = data; - Entity = entity; Item = item; - _capacitors = entity.GetBehaviors().ToList(); - entity.Equipment.ObserveAdd().Subscribe(onAdd => + _capacitors = Item.Entity.GetBehaviors().ToList(); + Item.Entity.Equipment.ObserveAdd().Subscribe(onAdd => { var capacitor = onAdd.Value.GetBehavior(); if (capacitor != null) _capacitors.Add(capacitor); }); - entity.Equipment.ObserveRemove().Subscribe(onRemove => + Item.Entity.Equipment.ObserveRemove().Subscribe(onRemove => { var capacitor = onRemove.Value.GetBehavior(); if (capacitor != null) _capacitors.Remove(capacitor); diff --git a/Assets/Scripts/ServerShared/Behaviors/Reflector.cs b/Assets/Scripts/ServerShared/Behaviors/Reflector.cs index 35a1689e4..01482a022 100644 --- a/Assets/Scripts/ServerShared/Behaviors/Reflector.cs +++ b/Assets/Scripts/ServerShared/Behaviors/Reflector.cs @@ -7,7 +7,7 @@ using Newtonsoft.Json; using Unity.Mathematics; using static Unity.Mathematics.math; -[MessagePackObject, JsonObject(MemberSerialization.OptIn), RuntimeInspectable] +[Inspectable, MessagePackObject, JsonObject(MemberSerialization.OptIn), RuntimeInspectable] public class ReflectorData : BehaviorData { [Inspectable, JsonProperty("crossSection"), Key(1), RuntimeInspectable] @@ -16,33 +16,30 @@ public class ReflectorData : BehaviorData // [InspectableAnimationCurve, JsonProperty("visibility"), Key(1)] // public float4[] VisibilityCurve; - public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item) + public override IBehavior CreateInstance(EquippedItem item) { - return new Reflector(context, this, entity, item); + return new Reflector(this, item); } } public class Reflector : IBehavior { - public Entity Entity { get; } public EquippedItem Item { get; } - public ItemManager Context { get; } public BehaviorData Data => _data; private ReflectorData _data; - public Reflector(ItemManager context, ReflectorData data, Entity entity, EquippedItem item) + public Reflector(ReflectorData data, EquippedItem item) { - Context = context; _data = data; - Entity = entity; Item = item; } public bool Execute(float delta) { - // TODO: Light system! + Item.Entity.VisibilitySources[this] = Item.Evaluate(_data.CrossSection) * Item.Entity.Zone.GetLight(Item.Entity.Position.xz); + return true; } } \ No newline at end of file diff --git a/Assets/Scripts/ServerShared/Behaviors/ResourceScanner.cs b/Assets/Scripts/ServerShared/Behaviors/ResourceScanner.cs index 29dbde551..571cf52fe 100644 --- a/Assets/Scripts/ServerShared/Behaviors/ResourceScanner.cs +++ b/Assets/Scripts/ServerShared/Behaviors/ResourceScanner.cs @@ -21,9 +21,9 @@ public class ResourceScannerData : BehaviorData [Inspectable, JsonProperty("scanDuration"), Key(3), RuntimeInspectable] public PerformanceStat ScanDuration = new PerformanceStat(); - public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item) + public override IBehavior CreateInstance(EquippedItem item) { - return new ResourceScanner(context, this, entity, item); + return new ResourceScanner(this, item); } } @@ -35,9 +35,7 @@ public class ResourceScanner : IBehavior, IAlwaysUpdatedBehavior private float _scanTime; private Guid _scanTarget; - private Entity Entity { get; } private EquippedItem Item { get; } - private ItemManager Context { get; } public BehaviorData Data => _data; public float Range { get; private set; } @@ -57,24 +55,22 @@ public class ResourceScanner : IBehavior, IAlwaysUpdatedBehavior } } - public ResourceScanner(ItemManager context, ResourceScannerData data, Entity entity, EquippedItem item) + public ResourceScanner(ResourceScannerData data, EquippedItem item) { _data = data; - Entity = entity; Item = item; - Context = context; } public bool Execute(float delta) { - var planetData = Context.ItemData.Get(ScanTarget); + var planetData = Item.Entity.Zone.Planets[ScanTarget]; if (planetData != null) { if (planetData is AsteroidBeltData beltData) { if(Asteroid > -1 && Asteroid < beltData.Asteroids.Length && - length(Entity.Position.xz - Entity.Zone.AsteroidBelts[ScanTarget].Positions[Asteroid].xz) < Range) + length(Item.Entity.Position.xz - Item.Entity.Zone.AsteroidBelts[ScanTarget].Positions[Asteroid].xz) < Range) { _scanTime += delta; if (_scanTime > ScanDuration) @@ -88,7 +84,7 @@ public class ResourceScanner : IBehavior, IAlwaysUpdatedBehavior } else { - if(length(Entity.Position.xz - Entity.Zone.GetOrbitPosition(planetData.Orbit)) < Range) + if(length(Item.Entity.Position.xz - Item.Entity.Zone.GetOrbitPosition(planetData.Orbit)) < Range) { _scanTime += delta; if (_scanTime > ScanDuration) diff --git a/Assets/Scripts/ServerShared/Behaviors/Sensor.cs b/Assets/Scripts/ServerShared/Behaviors/Sensor.cs index d79a9a454..2bf78c9a0 100644 --- a/Assets/Scripts/ServerShared/Behaviors/Sensor.cs +++ b/Assets/Scripts/ServerShared/Behaviors/Sensor.cs @@ -39,9 +39,9 @@ public class SensorData : BehaviorData [Inspectable, JsonProperty("pingRadiusExponent"), Key(11)] public float PingRadiusExponent = .5f; - public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item) + public override IBehavior CreateInstance(EquippedItem item) { - return new Sensor(context, this, entity, item); + return new Sensor(this, item); } } @@ -54,9 +54,7 @@ public class Sensor : IBehavior, IEventBehavior private float _pingRadius; private HashSet _pingedEntities = new HashSet(); - private Entity Entity { get; } private EquippedItem Item { get; } - private ItemManager Context { get; } public BehaviorData Data => _data; @@ -95,12 +93,10 @@ public class Sensor : IBehavior, IEventBehavior } } - public Sensor(ItemManager context, SensorData data, Entity entity, EquippedItem item) + public Sensor(SensorData data, EquippedItem item) { _data = data; - Entity = entity; Item = item; - Context = context; } public bool Execute(float delta) @@ -119,42 +115,41 @@ public class Sensor : IBehavior, IEventBehavior _pingCooldown -= delta / Item.Evaluate(_data.PingCooldown); // TODO: Handle Active Detection / Visibility From Reflected Radiance - var hardpoint = Entity.Hardpoints[Item.Position.x, Item.Position.y]; - var forward = hardpoint != null && Entity.HardpointTransforms.ContainsKey(hardpoint) ? - normalize(Entity.HardpointTransforms[hardpoint].direction.xz) : - Entity.Direction; - foreach (var entity in Entity.Zone.Entities) + var hardpoint = Item.Entity.Hardpoints[Item.Position.x, Item.Position.y]; + var forward = hardpoint != null && Item.Entity.HardpointTransforms.ContainsKey(hardpoint) ? + normalize(Item.Entity.HardpointTransforms[hardpoint].direction.xz) : + Item.Entity.Direction; + foreach (var entity in Item.Entity.Zone.Entities) { - if(entity != Entity) + if (entity == Item.Entity) continue; + + var diff = entity.Position.xz - Item.Entity.Position.xz; + var angle = acos(dot(forward, normalize(diff))); + var dist = length(diff); + float previous, next; + Item.Entity.EntityInfoGathered.TryGetValue(entity, out previous); + if (!_pingedEntities.Contains(entity) && dist < _pingRadius) { - var diff = entity.Position.xz - Entity.Position.xz; - var angle = acos(dot(forward, normalize(diff))); - var dist = length(diff); - float previous, next; - Entity.EntityInfoGathered.TryGetValue(entity, out previous); - if (!_pingedEntities.Contains(entity) && dist < _pingRadius) - { - _pingedEntities.Add(entity); - next = saturate( - previous + - entity.Visibility * - Item.Evaluate(_data.Sensitivity) * - Item.Evaluate(_data.PingBoost) * - dist); - } - else - { - next = saturate( - previous + - entity.Visibility * - Item.Evaluate(_data.Sensitivity) * - _data.SensitivityCurve.Evaluate(angle / PI) * - delta / dist); - } - next *= 1 - Context.GameplaySettings.TargetInfoDecay * delta; - //Context.Log($"{entity.Name} visibility {(int)(previous * 100)}% -> {(int)(next * 100)}%"); - Entity.EntityInfoGathered[entity] = next; + _pingedEntities.Add(entity); + next = saturate( + previous + + entity.Visibility * + Item.Evaluate(_data.Sensitivity) * + Item.Evaluate(_data.PingBoost) * + dist); } + else + { + next = saturate( + previous + + entity.Visibility * + Item.Evaluate(_data.Sensitivity) * + _data.SensitivityCurve.Evaluate(angle / PI) * + delta / dist); + } + next *= 1 - Item.ItemManager.GameplaySettings.TargetInfoDecay * delta; + //Context.Log($"{entity.Name} visibility {(int)(previous * 100)}% -> {(int)(next * 100)}%"); + Item.Entity.EntityInfoGathered[entity] = next; } return true; } diff --git a/Assets/Scripts/ServerShared/Behaviors/Shield.cs b/Assets/Scripts/ServerShared/Behaviors/Shield.cs index 1b2c1abc8..0ef02801c 100644 --- a/Assets/Scripts/ServerShared/Behaviors/Shield.cs +++ b/Assets/Scripts/ServerShared/Behaviors/Shield.cs @@ -16,17 +16,15 @@ public class ShieldData : BehaviorData [Inspectable, JsonProperty("energy"), Key(2), RuntimeInspectable] public PerformanceStat EnergyUsage = new PerformanceStat(); - public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item) + public override IBehavior CreateInstance(EquippedItem item) { - return new Shield(context, this, entity, item); + return new Shield(this, item); } } public class Shield : IBehavior { - public Entity Entity { get; } public EquippedItem Item { get; } - public ItemManager Context { get; } public float Efficiency { get; private set; } public float EnergyUsage { get; private set; } @@ -35,11 +33,9 @@ public class Shield : IBehavior private ShieldData _data; - public Shield(ItemManager context, ShieldData data, Entity entity, EquippedItem item) + public Shield(ShieldData data, EquippedItem item) { - Context = context; _data = data; - Entity = entity; Item = item; } @@ -52,12 +48,12 @@ public class Shield : IBehavior public bool CanTakeHit(DamageType type, float damage) { - return Entity.CanConsumeEnergy(damage * EnergyUsage); + return Item.Entity.CanConsumeEnergy(damage * EnergyUsage); } public void TakeHit(DamageType type, float damage) { - Entity.TryConsumeEnergy(damage * EnergyUsage); + Item.Entity.TryConsumeEnergy(damage * EnergyUsage); Item.AddHeat(damage / Efficiency); } } \ No newline at end of file diff --git a/Assets/Scripts/ServerShared/Behaviors/StatModifier.cs b/Assets/Scripts/ServerShared/Behaviors/StatModifier.cs index 35e0115d8..e40dd3b44 100644 --- a/Assets/Scripts/ServerShared/Behaviors/StatModifier.cs +++ b/Assets/Scripts/ServerShared/Behaviors/StatModifier.cs @@ -22,9 +22,9 @@ public class StatModifierData : BehaviorData [InspectableType(typeof(BehaviorData)), JsonProperty("requireBehavior"), Key(4)] public Type RequireBehavior; - public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item) + public override IBehavior CreateInstance(EquippedItem item) { - return new StatModifier(context, this, entity, item); + return new StatModifier(this, item); } } @@ -32,9 +32,7 @@ public class StatModifierData : BehaviorData public class StatModifier : IBehavior, IInitializableBehavior, IDisposableBehavior { private StatModifierData _data; - private Entity Entity { get; } private EquippedItem Item { get; } - private ItemManager Context { get; } public BehaviorData Data => _data; @@ -45,12 +43,10 @@ public class StatModifier : IBehavior, IInitializableBehavior, IDisposableBehavi private static Type[] StatObjects => _statObjects = _statObjects ?? typeof(BehaviorData).GetAllChildClasses() .Concat(typeof(EquippableItemData).GetAllChildClasses()).ToArray(); - public StatModifier(ItemManager context, StatModifierData data, Entity entity, EquippedItem item) + public StatModifier(StatModifierData data, EquippedItem item) { _data = data; - Entity = entity; Item = item; - Context = context; } public void Initialize() @@ -63,17 +59,17 @@ public class StatModifier : IBehavior, IInitializableBehavior, IDisposableBehavi if (statField != null) { if (typeof(EquippableItemData).IsAssignableFrom(targetType)) - _stats = Entity.Equipment + _stats = Item.Entity.Equipment .Select(hp => hp.EquippableItem) - .Where(gear => _data.RequireBehavior == null || Context.GetData(gear).Behaviors.Any(behavior => behavior.GetType() == _data.RequireBehavior)) - .Where(gear => Context.GetData(gear).GetType() == targetType) - .Select(gear => statField.GetValue(Context.GetData(gear)) as PerformanceStat) + .Where(gear => _data.RequireBehavior == null || Item.ItemManager.GetData(gear).Behaviors.Any(behavior => behavior.GetType() == _data.RequireBehavior)) + .Where(gear => Item.ItemManager.GetData(gear).GetType() == targetType) + .Select(gear => statField.GetValue(Item.ItemManager.GetData(gear)) as PerformanceStat) .ToArray(); else - _stats = Entity.Equipment + _stats = Item.Entity.Equipment .Select(hp => hp.EquippableItem) - .Where(gear => _data.RequireBehavior == null || Context.GetData(gear).Behaviors.Any(behavior => behavior.GetType() == _data.RequireBehavior)) - .SelectMany(gear => Context.GetData(gear).Behaviors) + .Where(gear => _data.RequireBehavior == null || Item.ItemManager.GetData(gear).Behaviors.Any(behavior => behavior.GetType() == _data.RequireBehavior)) + .SelectMany(gear => Item.ItemManager.GetData(gear).Behaviors) .Where(behaviorData => behaviorData.GetType() == targetType) .Select(behaviorData => statField.GetValue(behaviorData) as PerformanceStat) .ToArray(); @@ -85,15 +81,15 @@ public class StatModifier : IBehavior, IInitializableBehavior, IDisposableBehavi { foreach (var stat in _stats) (_data.Type == StatModifierType.Constant - ? stat.GetConstantModifiers(Entity) - : stat.GetScaleModifiers(Entity))[this] = Item.Evaluate(_data.Modifier); + ? stat.GetConstantModifiers(Item.Entity) + : stat.GetScaleModifiers(Item.Entity))[this] = Item.Evaluate(_data.Modifier); return true; } public void Dispose() { foreach (var stat in _stats) - (_data.Type == StatModifierType.Constant ? stat.GetConstantModifiers(Entity) : stat.GetScaleModifiers(Entity)).Remove(this); + (_data.Type == StatModifierType.Constant ? stat.GetConstantModifiers(Item.Entity) : stat.GetScaleModifiers(Item.Entity)).Remove(this); } } diff --git a/Assets/Scripts/ServerShared/Behaviors/Switch.cs b/Assets/Scripts/ServerShared/Behaviors/Switch.cs index ccf07bb7d..9d5686ae4 100644 --- a/Assets/Scripts/ServerShared/Behaviors/Switch.cs +++ b/Assets/Scripts/ServerShared/Behaviors/Switch.cs @@ -10,9 +10,9 @@ using Newtonsoft.Json; [Inspectable, MessagePackObject, JsonObject(MemberSerialization.OptIn), Order(-25)] public class SwitchData : BehaviorData { - public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item) + public override IBehavior CreateInstance(EquippedItem item) { - return new Switch(context, this, entity, item); + return new Switch(this, item); } } @@ -20,20 +20,16 @@ public class Switch : IBehavior { private SwitchData _data; - private Entity Entity { get; } private EquippedItem Item { get; } - private ItemManager Context { get; } public BehaviorData Data => _data; public bool Activated { get; set; } - public Switch(ItemManager context, SwitchData data, Entity entity, EquippedItem item) + public Switch(SwitchData data, EquippedItem item) { _data = data; - Entity = entity; Item = item; - Context = context; } public bool Execute(float delta) diff --git a/Assets/Scripts/ServerShared/Behaviors/Thermotoggle.cs b/Assets/Scripts/ServerShared/Behaviors/Thermotoggle.cs index 4df055a9c..4fe226352 100644 --- a/Assets/Scripts/ServerShared/Behaviors/Thermotoggle.cs +++ b/Assets/Scripts/ServerShared/Behaviors/Thermotoggle.cs @@ -15,10 +15,13 @@ public class ThermotoggleData : BehaviorData [Inspectable, JsonProperty("highPass"), Key(2)] public bool HighPass; + + [Inspectable, JsonProperty("adjustable"), Key(3)] + public bool Adjustable; - public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item) + public override IBehavior CreateInstance(EquippedItem item) { - return new Thermotoggle(context, this, entity, item); + return new Thermotoggle(this, item); } } @@ -27,18 +30,15 @@ public class Thermotoggle : IBehavior public float TargetTemperature; private ThermotoggleData _data; - private Entity Entity { get; } private EquippedItem Item { get; } - private ItemManager Context { get; } public BehaviorData Data => _data; + public ThermotoggleData ThermotoggleData => _data; - public Thermotoggle(ItemManager context, ThermotoggleData data, Entity entity, EquippedItem item) + public Thermotoggle(ThermotoggleData data, EquippedItem item) { _data = data; - Entity = entity; Item = item; - Context = context; TargetTemperature = data.TargetTemperature; } diff --git a/Assets/Scripts/ServerShared/Behaviors/Thruster.cs b/Assets/Scripts/ServerShared/Behaviors/Thruster.cs index 5d1026809..ab3e68f87 100644 --- a/Assets/Scripts/ServerShared/Behaviors/Thruster.cs +++ b/Assets/Scripts/ServerShared/Behaviors/Thruster.cs @@ -25,17 +25,15 @@ public class ThrusterData : BehaviorData [InspectablePrefab, JsonProperty("Particles"), Key(5)] public string ParticlesPrefab; - public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item) + public override IBehavior CreateInstance(EquippedItem item) { - return new Thruster(context, this, entity, item); + return new Thruster(this, item); } } public class Thruster : IAnalogBehavior { - public Entity Entity { get; } public EquippedItem Item { get; } - public ItemManager Context { get; } public float Thrust { get; private set; } public float Torque { get; } @@ -52,15 +50,13 @@ public class Thruster : IAnalogBehavior private float _input; - public Thruster(ItemManager context, ThrusterData data, Entity entity, EquippedItem item) + public Thruster(ThrusterData data, EquippedItem item) { - Context = context; _data = data; - Entity = entity; Item = item; - var hullData = context.GetData(entity.Hull) as HullData; + var hullData = Item.ItemManager.GetData(Item.Entity.Hull) as HullData; var hullCenter = hullData.Shape.CenterOfMass; - var itemData = context.GetData(item.EquippableItem); + var itemData = Item.ItemManager.GetData(item.EquippableItem); var itemCenter = hullData.Shape.Inset(itemData.Shape, item.Position, item.EquippableItem.Rotation).CenterOfMass; var toCenter = hullCenter - itemCenter; Torque = -dot(normalize(toCenter), float2(1, 0).Rotate(item.EquippableItem.Rotation)); @@ -72,13 +68,13 @@ public class Thruster : IAnalogBehavior if(_input > .01f && Item.Entity.TryConsumeEnergy(_input * Item.Evaluate(_data.EnergyUsage))) { Thrust = Item.Evaluate(_data.Thrust); - Entity.Velocity -= Entity.Direction.Rotate(Item.EquippableItem.Rotation) * _input * Thrust / Entity.Mass * delta; - Entity.Direction = mul(Entity.Direction, - Unity.Mathematics.float2x2.Rotate(_input * Torque * Thrust * Context.GameplaySettings.TorqueMultiplier / Entity.Mass * delta)); + Item.Entity.Velocity -= Item.Entity.Direction.Rotate(Item.EquippableItem.Rotation) * _input * Thrust / Item.Entity.Mass * delta; + Item.Entity.Direction = mul(Item.Entity.Direction, + Unity.Mathematics.float2x2.Rotate(_input * Torque * Thrust * Item.ItemManager.GameplaySettings.TorqueMultiplier / Item.Entity.Mass * delta)); Item.AddHeat(_input * Item.Evaluate(_data.Heat) * delta); var vis = _input * Item.Evaluate(_data.Visibility); - if (!Entity.VisibilitySources.ContainsKey(this) || vis > Entity.VisibilitySources[this]) - Entity.VisibilitySources[this] = vis; + if (!Item.Entity.VisibilitySources.ContainsKey(this) || vis > Item.Entity.VisibilitySources[this]) + Item.Entity.VisibilitySources[this] = vis; return true; } return false; diff --git a/Assets/Scripts/ServerShared/Behaviors/Trigger.cs b/Assets/Scripts/ServerShared/Behaviors/Trigger.cs index 10c30163d..007588214 100644 --- a/Assets/Scripts/ServerShared/Behaviors/Trigger.cs +++ b/Assets/Scripts/ServerShared/Behaviors/Trigger.cs @@ -10,9 +10,9 @@ using Newtonsoft.Json; [Inspectable, MessagePackObject, JsonObject(MemberSerialization.OptIn), Order(-20)] public class TriggerData : BehaviorData { - public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item) + public override IBehavior CreateInstance(EquippedItem item) { - return new Trigger(context, this, entity, item); + return new Trigger(this, item); } } @@ -20,24 +20,16 @@ public class Trigger : IBehavior, IActivatedBehavior { private TriggerData _data; - public Entity Entity { get; } public EquippedItem Item { get; } - public ItemManager Context { get; } public BehaviorData Data => _data; public bool _pulled; - public Trigger(ItemManager context, TriggerData data, Entity entity, EquippedItem item) + public Trigger(TriggerData data, EquippedItem item) { _data = data; - Entity = entity; Item = item; - Context = context; - } - - public void Initialize() - { } public bool Execute(float delta) diff --git a/Assets/Scripts/ServerShared/Behaviors/TurretController.cs b/Assets/Scripts/ServerShared/Behaviors/TurretController.cs index f9496e49a..c13ea7df8 100644 --- a/Assets/Scripts/ServerShared/Behaviors/TurretController.cs +++ b/Assets/Scripts/ServerShared/Behaviors/TurretController.cs @@ -14,9 +14,9 @@ using float3 = Unity.Mathematics.float3; [MessagePackObject, JsonObject(MemberSerialization.OptIn), RuntimeInspectable] public class TurretControllerData : BehaviorData { - public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item) + public override IBehavior CreateInstance(EquippedItem item) { - return new TurretController(context, this, entity, item); + return new TurretController(this, item); } } @@ -27,26 +27,22 @@ public class TurretController : IBehavior private float _shotSpeed; private bool _predictShots; - public Entity EquippedEntity { get; } public EquippedItem Item { get; } - public ItemManager Context { get; } public BehaviorData Data => _data; - public TurretController(ItemManager context, TurretControllerData data, Entity equippedEntity, EquippedItem item) + public TurretController(TurretControllerData data, EquippedItem item) { - Context = context; _data = data; - EquippedEntity = equippedEntity; Item = item; - var weapons = equippedEntity.Equipment.Where(e => e.Behaviors.Any(b => b.Data is WeaponData)); + var weapons = Item.Entity.Equipment.Where(e => e.Behaviors.Any(b => b.Data is WeaponData)); foreach (var weapon in weapons) { CheckWeapon(weapon); } - equippedEntity.Equipment.ObserveAdd().Subscribe(add => CheckWeapon(add.Value)); - equippedEntity.Equipment.ObserveRemove().Subscribe(remove => + Item.Entity.Equipment.ObserveAdd().Subscribe(add => CheckWeapon(add.Value)); + Item.Entity.Equipment.ObserveRemove().Subscribe(remove => { foreach (var b in remove.Value.Behaviors) if (b is Weapon weapon) @@ -71,30 +67,30 @@ public class TurretController : IBehavior public bool Execute(float delta) { - if (EquippedEntity.Target.Value != null) + if (Item.Entity.Target.Value != null) { - var diff = EquippedEntity.Target.Value.Position - EquippedEntity.Position; + var diff = Item.Entity.Target.Value.Position - Item.Entity.Position; if (_predictShots) { - var targetHullData = EquippedEntity.ItemManager.GetData(EquippedEntity.Target.Value.Hull) as HullData; - var targetVelocity = float3(EquippedEntity.Target.Value.Velocity.x, 0, EquippedEntity.Target.Value.Velocity.y); + var targetHullData = Item.Entity.ItemManager.GetData(Item.Entity.Target.Value.Hull) as HullData; + var targetVelocity = float3(Item.Entity.Target.Value.Velocity.x, 0, Item.Entity.Target.Value.Velocity.y); var predictedPosition = AetheriaMath.FirstOrderIntercept( - EquippedEntity.Position, float3.zero, _shotSpeed, - EquippedEntity.Target.Value.Position, targetVelocity + Item.Entity.Position, float3.zero, _shotSpeed, + Item.Entity.Target.Value.Position, targetVelocity ); - predictedPosition.y = EquippedEntity.Zone.GetHeight(predictedPosition.xz) + targetHullData.GridOffset; - EquippedEntity.LookDirection = normalize(predictedPosition - EquippedEntity.Position); + predictedPosition.y = Item.Entity.Zone.GetHeight(predictedPosition.xz) + targetHullData.GridOffset; + Item.Entity.LookDirection = normalize(predictedPosition - Item.Entity.Position); } else - EquippedEntity.LookDirection = normalize(diff); + Item.Entity.LookDirection = normalize(diff); var dist = length(diff); foreach (var x in _weapons) { var data = x.Data as WeaponData; var fire = dot( - EquippedEntity.HardpointTransforms[EquippedEntity.Hardpoints[x.Item.Position.x, x.Item.Position.y]].direction, - EquippedEntity.LookDirection) > .99f; + Item.Entity.HardpointTransforms[Item.Entity.Hardpoints[x.Item.Position.x, x.Item.Position.y]].direction, + Item.Entity.LookDirection) > .99f; if (x.Item.Evaluate(data.Range) > dist && fire) { x.Activate(); @@ -110,7 +106,7 @@ public class TurretController : IBehavior if (x.Firing) x.Deactivate(); } - EquippedEntity.Target.Value = EquippedEntity.VisibleHostiles.FirstOrDefault(e => e is Ship); + Item.Entity.Target.Value = Item.Entity.VisibleHostiles.FirstOrDefault(e => e is Ship); } return true; } diff --git a/Assets/Scripts/ServerShared/Behaviors/VelocityConversion.cs b/Assets/Scripts/ServerShared/Behaviors/VelocityConversion.cs index fef52068f..4214c7955 100644 --- a/Assets/Scripts/ServerShared/Behaviors/VelocityConversion.cs +++ b/Assets/Scripts/ServerShared/Behaviors/VelocityConversion.cs @@ -13,40 +13,28 @@ public class VelocityConversionData : BehaviorData [Inspectable, JsonProperty("traction"), Key(1), RuntimeInspectable] public PerformanceStat Traction = new PerformanceStat(); - public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item) + public override IBehavior CreateInstance(EquippedItem item) { - return new VelocityConversion(context, this, entity, item); + return new VelocityConversion(this, item); } } public class VelocityConversion : IBehavior { - public Entity Entity { get; } public EquippedItem Item { get; } - public ItemManager Context { get; } public BehaviorData Data => _data; private VelocityConversionData _data; - public VelocityConversion(ItemManager context, VelocityConversionData data, Entity entity, EquippedItem item) + public VelocityConversion(VelocityConversionData data, EquippedItem item) { - Context = context; _data = data; - Entity = entity; Item = item; } - public void Initialize() - { - } - public bool Execute(float delta) { return true; } - - public void Remove() - { - } } \ No newline at end of file diff --git a/Assets/Scripts/ServerShared/Behaviors/VelocityLimit.cs b/Assets/Scripts/ServerShared/Behaviors/VelocityLimit.cs index 09b948e75..72e9cdaf1 100644 --- a/Assets/Scripts/ServerShared/Behaviors/VelocityLimit.cs +++ b/Assets/Scripts/ServerShared/Behaviors/VelocityLimit.cs @@ -7,24 +7,22 @@ using Newtonsoft.Json; using Unity.Mathematics; using static Unity.Mathematics.math; -[MessagePackObject, JsonObject(MemberSerialization.OptIn), RuntimeInspectable] +[Inspectable, MessagePackObject, JsonObject(MemberSerialization.OptIn), RuntimeInspectable] public class VelocityLimitData : BehaviorData { [Inspectable, JsonProperty("topSpeed"), Key(1), RuntimeInspectable] public PerformanceStat TopSpeed = new PerformanceStat(); - public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item) + public override IBehavior CreateInstance(EquippedItem item) { - return new VelocityLimit(context, this, entity, item); + return new VelocityLimit(this, item); } } [Order(100)] public class VelocityLimit : IBehavior { - public Entity Entity { get; } public EquippedItem Item { get; } - public ItemManager Context { get; } public float Limit { get; private set; } @@ -32,28 +30,18 @@ public class VelocityLimit : IBehavior private VelocityLimitData _data; - public VelocityLimit(ItemManager context, VelocityLimitData data, Entity entity, EquippedItem item) + public VelocityLimit(VelocityLimitData data, EquippedItem item) { - Context = context; _data = data; - Entity = entity; Item = item; Limit = Item.Evaluate(_data.TopSpeed); } - public void Initialize() - { - } - public bool Execute(float delta) { Limit = Item.Evaluate(_data.TopSpeed); - if (length(Entity.Velocity) > Limit) - Entity.Velocity = normalize(Entity.Velocity) * Limit; + if (length(Item.Entity.Velocity) > Limit) + Item.Entity.Velocity = normalize(Item.Entity.Velocity) * Limit; return true; } - - public void Remove() - { - } } \ No newline at end of file diff --git a/Assets/Scripts/ServerShared/Behaviors/Visibility.cs b/Assets/Scripts/ServerShared/Behaviors/Visibility.cs index 1e5359869..c075e4ee6 100644 --- a/Assets/Scripts/ServerShared/Behaviors/Visibility.cs +++ b/Assets/Scripts/ServerShared/Behaviors/Visibility.cs @@ -16,44 +16,31 @@ public class VisibilityData : BehaviorData [Inspectable, JsonProperty("visibilityDecay"), Key(2)] public PerformanceStat VisibilityDecay = new PerformanceStat(); - public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item) + public override IBehavior CreateInstance(EquippedItem item) { - return new Visibility(context, this, entity, item); + return new Visibility(this, item); } } -public class Visibility : IBehavior, IAlwaysUpdatedBehavior +public class Visibility : IBehavior { private VisibilityData _data; - private Entity Entity { get; } private EquippedItem Item { get; } - private ItemManager Context { get; } public BehaviorData Data => _data; private float _cooldown; // Normalized - public Visibility(ItemManager context, VisibilityData data, Entity entity, EquippedItem item) + public Visibility(VisibilityData data, EquippedItem item) { _data = data; - Entity = entity; Item = item; - Context = context; } public bool Execute(float delta) { - Entity.VisibilitySources[this] = Item.Evaluate(_data.Visibility); + Item.Entity.VisibilitySources[this] = Item.Evaluate(_data.Visibility); return true; } - - public void Update(float delta) - { - // TODO: Time independent decay? - if(Entity.VisibilitySources.ContainsKey(this)) - { - Entity.VisibilitySources[this] *= Item.Evaluate(_data.VisibilityDecay); - } - } } \ No newline at end of file diff --git a/Assets/Scripts/ServerShared/Behaviors/Weapon.cs b/Assets/Scripts/ServerShared/Behaviors/Weapon.cs index 4cec8bb67..48f194e31 100644 --- a/Assets/Scripts/ServerShared/Behaviors/Weapon.cs +++ b/Assets/Scripts/ServerShared/Behaviors/Weapon.cs @@ -70,11 +70,8 @@ public abstract class WeaponData : BehaviorData public abstract class Weapon : IActivatedBehavior { private WeaponData _data; - private EquippableItemData _itemData; - public Entity Entity { get; } public EquippedItem Item { get; } - public ItemManager Context { get; } public abstract float DamagePerSecond { get; } public abstract float RangeDamagePerSecond(float range); @@ -101,13 +98,10 @@ public abstract class Weapon : IActivatedBehavior } - public Weapon(ItemManager context, WeaponData data, Entity entity, EquippedItem item) + public Weapon(WeaponData data, EquippedItem item) { - Context = context; - Entity = entity; Item = item; _data = data; - _itemData = context.GetData(item.EquippableItem); } protected virtual void UpdateStats() diff --git a/Assets/Scripts/ServerShared/Behaviors/Wear.cs b/Assets/Scripts/ServerShared/Behaviors/Wear.cs index 675ebccbb..91aa6749b 100644 --- a/Assets/Scripts/ServerShared/Behaviors/Wear.cs +++ b/Assets/Scripts/ServerShared/Behaviors/Wear.cs @@ -14,30 +14,24 @@ public class WearData : BehaviorData [InspectableTemperature, JsonProperty("perSecond"), Key(1)] public bool PerSecond = true; - public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item) + public override IBehavior CreateInstance(EquippedItem item) { - return new Wear(context, this, entity, item); + return new Wear(this, item); } } public class Wear : IBehavior { private WearData _data; - private EquippableItemData _itemData; - public Entity Entity { get; } public EquippedItem Item { get; } - public ItemManager Context { get; } public BehaviorData Data => _data; - public Wear(ItemManager context, WearData data, Entity entity, EquippedItem item) + public Wear(WearData data, EquippedItem item) { - Context = context; _data = data; - Entity = entity; Item = item; - _itemData = context.GetData(item.EquippableItem); } public bool Execute(float delta) diff --git a/Assets/Scripts/ServerShared/Entity.cs b/Assets/Scripts/ServerShared/Entity.cs index e034b1bca..45f26a83c 100644 --- a/Assets/Scripts/ServerShared/Entity.cs +++ b/Assets/Scripts/ServerShared/Entity.cs @@ -764,9 +764,9 @@ public abstract class Entity foreach (var v in VisibilitySources.Keys.ToArray()) { - VisibilitySources[v] *= max(1 - ItemManager.GameplaySettings.VisibilityDecay * delta, 0); + VisibilitySources[v] = AetheriaMath.Decay(VisibilitySources[v], ItemManager.GameplaySettings.VisibilityDecay, delta); - if (VisibilitySources[v] < 0.01f) VisibilitySources.Remove(v); + if (VisibilitySources[v] < 0.1f) VisibilitySources.Remove(v); } UpdateTemperature(delta); @@ -998,7 +998,7 @@ public class EquippedItem Behaviors = Data.Behaviors - .Select(bd => bd.CreateInstance(itemManager, entity, this)) + .Select(bd => bd.CreateInstance(this)) .ToArray(); BehaviorGroups = Behaviors diff --git a/Assets/Scripts/ServerShared/Settings.cs b/Assets/Scripts/ServerShared/Settings.cs index 8d64821e5..0b07f9252 100644 --- a/Assets/Scripts/ServerShared/Settings.cs +++ b/Assets/Scripts/ServerShared/Settings.cs @@ -23,7 +23,6 @@ public class PlanetSettings public ExponentialCurve WaveRadius; public ExponentialCurve WaveFrequency; public ExponentialCurve WaveSpeed; - public ExponentialCurve FogTintRadius; public ExponentialCurve LightRadius; public ExponentialCurve BodyRadius; public float AsteroidVerticalOffset = -5f; diff --git a/Assets/Scripts/ServerShared/Zone.cs b/Assets/Scripts/ServerShared/Zone.cs index ae1993e7f..8dcf78310 100644 --- a/Assets/Scripts/ServerShared/Zone.cs +++ b/Assets/Scripts/ServerShared/Zone.cs @@ -65,6 +65,9 @@ public class Zone case AsteroidBeltData belt: AsteroidBelts[belt.ID] = new AsteroidBelt(belt); break; + case SunData sun: + PlanetInstances.Add(sun.ID, new Sun(settings, sun, Orbits[planet.Orbit])); + break; case GasGiantData gas: PlanetInstances.Add(gas.ID, new GasGiant(settings, gas, Orbits[planet.Orbit])); break; @@ -305,7 +308,7 @@ public class Zone } public float GetHeight(float2 position) { - float result = -PowerPulse(length(position)/(Pack.Radius*2), Settings.ZoneDepthExponent) * Settings.ZoneDepth; + var result = -PowerPulse(length(position)/(Pack.Radius*2), Settings.ZoneDepthExponent) * Settings.ZoneDepth; foreach (var body in PlanetInstances.Values) { var p = position - body.Orbit.Position; //GetOrbitPosition(body.BodyData.Orbit) @@ -333,6 +336,26 @@ public class Zone return result; } + public float GetLight(float2 position) + { + var light = 0f; + foreach (var body in PlanetInstances.Values) + { + if (body is Sun sun) + { + var p = position - body.Orbit.Position; + var distSqr = lengthsq(p); + var lightRadius = sun.LightRadius.Value; + if (distSqr < lightRadius * lightRadius) + { + light += PowerPulse(sqrt(distSqr) / lightRadius, 8); + } + } + } + + return light; + } + public float2 GetForce(float2 position) { var normal = GetNormal(position); @@ -412,10 +435,17 @@ public class GasGiant : Planet } } -// public class Sun : GasGiant -// { -// -// } +public class Sun : GasGiant +{ + public ReadOnlyReactiveProperty LightRadius; + + public Sun(PlanetSettings settings, SunData data, Orbit orbit) : base(settings, data, orbit) + { + LightRadius = new ReadOnlyReactiveProperty( + data.Mass.CombineLatest(data.LightRadiusMultiplier, + (mass, radius) => settings.LightRadius.Evaluate(mass) * radius)); + } +} public class AsteroidBelt { diff --git a/Assets/Scripts/ServerShared/ZoneData.cs b/Assets/Scripts/ServerShared/ZoneData.cs index c06046a01..f0eeffcdc 100644 --- a/Assets/Scripts/ServerShared/ZoneData.cs +++ b/Assets/Scripts/ServerShared/ZoneData.cs @@ -163,6 +163,9 @@ public class SunData : GasGiantData [JsonProperty("fogTintColor"), Key(21)] public ReactiveProperty FogTintColor = new ReactiveProperty(float3.zero); + + [JsonProperty("lightRadiusMul")] [Key(22)] + public ReactiveProperty LightRadiusMultiplier = new ReactiveProperty(1); } [MessagePackObject, JsonObject(MemberSerialization.OptIn)] diff --git a/Assets/Scripts/UI/InventoryMenu.cs b/Assets/Scripts/UI/InventoryMenu.cs index d1c486517..d01e89e7a 100644 --- a/Assets/Scripts/UI/InventoryMenu.cs +++ b/Assets/Scripts/UI/InventoryMenu.cs @@ -321,8 +321,7 @@ public class InventoryMenu : MonoBehaviour } _selectedPanel = panel; _selectedPosition = cargoEvent.Position; - PropertiesPanel.Clear(); - PropertiesPanel.AddItemProperties(item); + PropertiesPanel.Inspect(item); _selectedPanel = panel; _selectedPosition = cargoEvent.CargoBay.Cargo[item]; _selectedItem = item; @@ -374,7 +373,7 @@ public class InventoryMenu : MonoBehaviour } } - PropertiesPanel.Inspect(entityEvent.Entity, item); + PropertiesPanel.Inspect(item); _selectedPanel = panel; _selectedPosition = item.Position; _selectedItem = item.EquippableItem; diff --git a/Assets/Scripts/UI/PropertiesPanel.cs b/Assets/Scripts/UI/PropertiesPanel.cs index fdc4cc252..b546b0959 100644 --- a/Assets/Scripts/UI/PropertiesPanel.cs +++ b/Assets/Scripts/UI/PropertiesPanel.cs @@ -18,6 +18,7 @@ using static Unity.Mathematics.math; public class PropertiesPanel : MonoBehaviour { + public RectTransform Spacer; public DropdownMenu Dropdown; public TextMeshProUGUI Title; public RectTransform Section; @@ -86,6 +87,14 @@ public class PropertiesPanel : MonoBehaviour SelectedChild = null; } + public RectTransform AddSpacer() + { + var spacer = Instantiate(Spacer, Content ?? transform); + Properties.Add(spacer.gameObject); + OnPropertyAdded?.Invoke(spacer.gameObject); + return spacer; + } + public RectTransform AddSection(string name) { var section = Instantiate(Section, Content ?? transform); @@ -352,68 +361,116 @@ public class PropertiesPanel : MonoBehaviour RefreshValues(); } - public void AddEntityProperties(Entity entity) + private void AddEntityProperties(Entity entity) { AddField("Name", () => entity.Name, name => entity.Name = name); AddProperty("Mass", () => $"{entity.Mass.SignificantDigits(Context.GameplaySettings.SignificantDigits)}"); } - public void AddItemProperties(Entity entity, ItemInstance item) + private void AddItemProperties(ItemInstance item) { var data = Context.ItemData.Get(item.Data); - AddProperty(data.Description);//.Label.fontStyle = FontStyles.Normal; + + AddProperty(data.Description); + var manufacturer = Context.ItemData.Get(data.Manufacturer); - if (manufacturer != null) - { - AddProperty("Manufacturer", () => manufacturer.Name); - } - else - { - AddProperty("Manufacturer", () => "GameCult"); - } + AddProperty("Manufacturer", () => manufacturer?.Name ?? "GameCult"); + if (item is SimpleCommodity simpleCommodity) AddProperty("Quantity", () => simpleCommodity.Quantity.ToString()); + AddProperty("Mass", () => Context.GetMass(item).SignificantDigits(Context.GameplaySettings.SignificantDigits)); - AddProperty("Thermal Mass", () => Context.GetThermalMass(item).SignificantDigits(Context.GameplaySettings.SignificantDigits)); - if (item is EquippableItem gear) + //AddProperty("Thermal Mass", () => Context.GetThermalMass(item).SignificantDigits(Context.GameplaySettings.SignificantDigits)); + } + + private void AddEquippableItemProperties(EquippableItem item, Func statValueFunction) + { + if (item.Durability < .01f) { - var (tier, upgrades) = entity.ItemManager.GetTier(gear); - Title.text = - $"{data.Name} ({tier.Name}{new string('+', upgrades)})"; - if (gear.Durability < .01f) + AddProperty("Item destroyed!"); + return; + } + + var gearData = Context.GetData(item); + AddProperty("Durability", () => $"{(int)(item.Durability / gearData.Durability * 100)}%"); + foreach (var behavior in gearData.Behaviors) + { + var type = behavior.GetType(); + if (type.GetCustomAttribute(typeof(RuntimeInspectable)) != null) { - AddProperty("Item destroyed!"); - } - else - { - var gearData = Context.GetData(gear); - AddProperty("Durability", () => - $"{gear.Durability.SignificantDigits(Context.GameplaySettings.SignificantDigits)}/{gearData.Durability.SignificantDigits(Context.GameplaySettings.SignificantDigits)}"); - foreach (var behavior in gearData.Behaviors) + foreach (var field in type.GetFields().Where(f => f.GetCustomAttribute() != null)) { - var type = behavior.GetType(); - if (type.GetCustomAttribute(typeof(RuntimeInspectable)) != null) + var fieldType = field.FieldType; + if (fieldType == typeof(float)) + AddProperty(field.Name, () => $"{((float) field.GetValue(behavior)).SignificantDigits(Context.GameplaySettings.SignificantDigits)}"); + else if (fieldType == typeof(int)) + AddProperty(field.Name, () => $"{(int) field.GetValue(behavior)}"); + else if (fieldType == typeof(PerformanceStat)) { - foreach (var field in type.GetFields().Where(f => f.GetCustomAttribute() != null)) - { - var fieldType = field.FieldType; - if (fieldType == typeof(float)) - AddProperty(field.Name, () => $"{((float) field.GetValue(behavior)).SignificantDigits(Context.GameplaySettings.SignificantDigits)}"); - else if (fieldType == typeof(int)) - AddProperty(field.Name, () => $"{(int) field.GetValue(behavior)}"); - else if (fieldType == typeof(PerformanceStat)) - { - var stat = (PerformanceStat) field.GetValue(behavior); - AddProperty(field.Name, () => $"{Context.Evaluate(stat, gear).SignificantDigits(Context.GameplaySettings.SignificantDigits)}"); - } - } + var stat = (PerformanceStat) field.GetValue(behavior); + AddProperty(field.Name, () => $"{statValueFunction(stat).SignificantDigits(Context.GameplaySettings.SignificantDigits)}"); } } } } } - public void AddItemDataProperties(ItemData data) + private string GetTitle(EquippableItem item) + { + var data = Context.ItemData.Get(item.Data); + var (tier, upgrades) = Context.GetTier(item); + return + $"{data.Name} ({tier.Name}{new string('+', upgrades)})"; + } + + public void Inspect(EquippedItem item) + { + Clear(); + if (item?.EquippableItem == null) return; + + Title.text = GetTitle(item.EquippableItem); + + AddItemProperties(item.EquippableItem); + AddSpacer(); + + AddEquippableItemProperties(item.EquippableItem, item.Evaluate); + AddSpacer(); + + AddField("Override Shutdown", () => item.EquippableItem.OverrideShutdown, b => item.EquippableItem.OverrideShutdown = b); + AddProperty("Temperature", () => (item.Temperature - 273.15f).SignificantDigits(Context.GameplaySettings.SignificantDigits)); + + foreach (var behavior in item.Behaviors) + { + switch (behavior) + { + case Thermotoggle thermotoggle when thermotoggle.ThermotoggleData.Adjustable: + AddField("Target Temperature", + () => thermotoggle.TargetTemperature, + temp => thermotoggle.TargetTemperature = temp); + break; + } + } + + RefreshValues(); + } + + public void Inspect(ItemInstance item) + { + Clear(); + + AddItemProperties(item); + + if (item is EquippableItem gear) + { + Title.text = GetTitle(gear); + AddSpacer(); + AddEquippableItemProperties(gear, stat => Context.Evaluate(stat, gear)); + } + + RefreshValues(); + } + + public void Inspect(ItemData data) { AddProperty("Type", () => data.Name); AddProperty(data.Description).Label.fontStyle = FontStyles.Normal; @@ -453,60 +510,6 @@ public class PropertiesPanel : MonoBehaviour } } - public void AddItemProperties(ItemInstance item) - { - var data = Context.ItemData.Get(item.Data); - AddItemDataProperties(data); - AddProperty("Mass", () => Context.GetMass(item).SignificantDigits(Context.GameplaySettings.SignificantDigits)); - AddProperty("Thermal Mass", () => Context.GetThermalMass(item).SignificantDigits(Context.GameplaySettings.SignificantDigits)); - if (item is EquippableItem gear) - { - var gearData = Context.GetData(gear); - AddProperty("Durability", () => - $"{gear.Durability.SignificantDigits(Context.GameplaySettings.SignificantDigits)}/{gearData.Durability.SignificantDigits(Context.GameplaySettings.SignificantDigits)}"); - - } - } - - public void Inspect(Entity entity, EquippedItem item) - { - if (this is PropertiesList list) - { - if (list.Expanded) - InspectGearInternal(); - else - list.OnExpand += b => - { - if (b) InspectGearInternal(); - }; - } - else - InspectGearInternal(); - - void InspectGearInternal() - { - //Debug.Log($"Refreshing {hardpoint.Gear.Name} properties"); - Clear(); - if (item.EquippableItem != null) - { - AddField("Override Shutdown", () => item.EquippableItem.OverrideShutdown, b => item.EquippableItem.OverrideShutdown = b); - AddProperty("Temperature", () => (item.Temperature - 273.15f).SignificantDigits(Context.GameplaySettings.SignificantDigits)); - AddItemProperties(entity, item.EquippableItem); - foreach (var behavior in item.Behaviors) - { - if(behavior is IPopulationAssignment populationAssignment) - AddIncrementField("Assigned Population", - () => populationAssignment.AssignedPopulation, - p => populationAssignment.AssignedPopulation = p, - () => 0, () => entity.Population - entity.AssignedPopulation + populationAssignment.AssignedPopulation); - if (behavior is Thermotoggle thermotoggle) - AddField("Target Temperature", () => thermotoggle.TargetTemperature, temp => thermotoggle.TargetTemperature = temp); - } - } - RefreshValues(); - } - } - // public void Inspect(object obj, bool inspectablesOnly = false, bool readWrite = false, bool topLevel = true) // { // if(topLevel) diff --git a/Assets/Scripts/UI/TradeMenu.cs b/Assets/Scripts/UI/TradeMenu.cs index c2b7214d2..aba71b3be 100644 --- a/Assets/Scripts/UI/TradeMenu.cs +++ b/Assets/Scripts/UI/TradeMenu.cs @@ -311,11 +311,7 @@ public class TradeMenu : MonoBehaviour Output = x.output(i), SortKey = x.sortKey(i.data) }).ToArray(), - OnClick = () => - { - Properties.Clear(); - Properties.AddItemProperties(i.item); - }, + OnClick = () => Properties.Inspect(i.item), OnDoubleClick = () => { switch (i.item) diff --git a/Assets/Scripts/UI/TradeMenuDebug.cs b/Assets/Scripts/UI/TradeMenuDebug.cs index d73f2d0a7..8494b0876 100644 --- a/Assets/Scripts/UI/TradeMenuDebug.cs +++ b/Assets/Scripts/UI/TradeMenuDebug.cs @@ -298,8 +298,7 @@ public class TradeMenuDebug : MonoBehaviour }).ToArray(), OnClick = () => { - Properties.Clear(); - Properties.AddItemDataProperties(i); + Properties.Inspect(i); }, OnDoubleClick = () => { diff --git a/Assets/Scripts/Zone Display/ZoneRenderer.cs b/Assets/Scripts/Zone Display/ZoneRenderer.cs index 70f95c982..e48337f39 100644 --- a/Assets/Scripts/Zone Display/ZoneRenderer.cs +++ b/Assets/Scripts/Zone Display/ZoneRenderer.cs @@ -310,11 +310,15 @@ public class ZoneRenderer : MonoBehaviour if (planetData is SunData sunData) { planet = Instantiate(Sun, ZoneRoot); - var sun = (SunObject) planet; - sunData.LightColor.Subscribe(c => sun.Light.color = c.ToColor()); - sunData.Mass.Subscribe(m => sun.Light.range = Settings.PlanetSettings.LightRadius.Evaluate(m)); - sunData.FogTintColor.Subscribe(c => sun.FogTint.material.SetColor("_Color", c.ToColor())); - sunData.Mass.Subscribe(m => sun.FogTint.transform.localScale = Settings.PlanetSettings.FogTintRadius.Evaluate(m) * Vector3.one); + var sunObject = (SunObject) planet; + var sun = Zone.PlanetInstances[planetData.ID] as Sun; + sunData.LightColor.Subscribe(c => sunObject.Light.color = c.ToColor()); + sun.LightRadius.Subscribe(r => + { + sunObject.Light.range = r; + sunObject.FogTint.transform.localScale = r * Vector3.one; + }); + sunData.FogTintColor.Subscribe(c => sunObject.FogTint.material.SetColor("_Color", c.ToColor())); } else planet = Instantiate(GasGiant, ZoneRoot); diff --git a/GameData/AetherDB.msgpack b/GameData/AetherDB.msgpack index 8b380c6b4..b06527dc5 100644 --- a/GameData/AetherDB.msgpack +++ b/GameData/AetherDB.msgpack @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:40889924e8287dccd631a518b45c3855af7725464c1774db02461315586a517d -size 75100 +oid sha256:6998b1baab572766bf9a35358b7ba34f6d53d67c85ed8eb388dfc334b52c72fe +size 75109 diff --git a/GameData/PlayerSettings.msgpack b/GameData/PlayerSettings.msgpack index 88b51a111..dbb8704e1 100644 --- a/GameData/PlayerSettings.msgpack +++ b/GameData/PlayerSettings.msgpack @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:34b510af124f286e371cd12eae04c9b4d688582976472cac2008c5b691e0d67e -size 16955 +oid sha256:584243d86e7507e91e8a2c9b652ff15aa00500cc4fdfa2655be5573b6a26a885 +size 18864 From ec1f8f56d41b9ff7317b097db5c14ab13bba5438 Mon Sep 17 00:00:00 2001 From: Reinier Vens Date: Mon, 12 Apr 2021 14:36:32 +0100 Subject: [PATCH 32/51] Golden Ratio Blue Noise Sampling Improved fog sampling and stochastic transparency by generating low discrepancy temporal sequences using the golden ratio on blue noise samples --- Assets/Materials/UI/Map Gravity Lines.mat | 2 +- Assets/Resources/LDR_LLL1_0.png.meta | 4 +- Assets/Scenes/Main Menu.unity | 40 +++++++++++++------ .../Scripts/Zone Display/BlueNoiseProvider.cs | 3 +- Assets/Shaders/Dither Functions.cginc | 4 +- .../Shaders/Raymarching/VolumeRender.shader | 8 ++-- Assets/Shaders/Raymarching/VolumeSun.shader | 3 +- GameData/PlayerSettings.msgpack | 2 +- 8 files changed, 41 insertions(+), 25 deletions(-) diff --git a/Assets/Materials/UI/Map Gravity Lines.mat b/Assets/Materials/UI/Map Gravity Lines.mat index 2036ba98e..749d876be 100644 --- a/Assets/Materials/UI/Map Gravity Lines.mat +++ b/Assets/Materials/UI/Map Gravity Lines.mat @@ -86,7 +86,7 @@ Material: - _Mode: 0 - _OcclusionStrength: 1 - _Parallax: 0.02 - - _Scale: 1.2708329 + - _Scale: 0.5 - _SmoothnessTextureChannel: 0 - _SpecularHighlights: 1 - _SrcBlend: 1 diff --git a/Assets/Resources/LDR_LLL1_0.png.meta b/Assets/Resources/LDR_LLL1_0.png.meta index cb0f45504..0e31cac49 100644 --- a/Assets/Resources/LDR_LLL1_0.png.meta +++ b/Assets/Resources/LDR_LLL1_0.png.meta @@ -67,7 +67,7 @@ TextureImporter: buildTarget: DefaultTexturePlatform maxTextureSize: 2048 resizeAlgorithm: 0 - textureFormat: -1 + textureFormat: 63 textureCompression: 1 compressionQuality: 50 crunchedCompression: 0 @@ -79,7 +79,7 @@ TextureImporter: buildTarget: Standalone maxTextureSize: 2048 resizeAlgorithm: 0 - textureFormat: -1 + textureFormat: 63 textureCompression: 1 compressionQuality: 50 crunchedCompression: 0 diff --git a/Assets/Scenes/Main Menu.unity b/Assets/Scenes/Main Menu.unity index 36f734ef9..dca2367d0 100644 --- a/Assets/Scenes/Main Menu.unity +++ b/Assets/Scenes/Main Menu.unity @@ -802,8 +802,8 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 741153267} - m_LocalRotation: {x: 0.0155069195, y: 0.9502416, z: -0.30741316, w: 0.047933277} - m_LocalPosition: {x: -117.52002, y: -77.087425, z: 149.09026} + m_LocalRotation: {x: 0.015506901, y: 0.9502416, z: -0.30741307, w: 0.047933236} + m_LocalPosition: {x: -117.51998, y: -77.08744, z: 149.09026} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: - {fileID: 412917866} @@ -820,6 +820,7 @@ GameObject: m_Component: - component: {fileID: 750375534} - component: {fileID: 750375535} + - component: {fileID: 750375536} m_Layer: 0 m_Name: Manager m_TagString: Untagged @@ -867,6 +868,19 @@ MonoBehaviour: Heightmap: {fileID: 8400000, guid: 2fc21a9d3e9647948b56e384cd9378b3, type: 2} ParticleColors: {fileID: 2800000, guid: 56db63da398b2d04394ddbccedce943c, type: 3} GravityCamera: {fileID: 2103364771} +--- !u!114 &750375536 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 750375533} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 13f1fa636e0245e42be783568a76e3d6, type: 3} + m_Name: + m_EditorClassIdentifier: + NoiseTexture: {fileID: 2800000, guid: 7c0a392de8821f345824a79dea0d0d41, type: 3} --- !u!1 &765320284 GameObject: m_ObjectHideFlags: 0 @@ -1220,8 +1234,8 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 965376321} - m_LocalRotation: {x: 0.0155069195, y: 0.9502416, z: -0.30741316, w: 0.047933277} - m_LocalPosition: {x: -117.52002, y: -77.087425, z: 149.09026} + m_LocalRotation: {x: 0.015506901, y: 0.9502416, z: -0.30741307, w: 0.047933236} + m_LocalPosition: {x: -117.51998, y: -77.08744, z: 149.09026} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 0} @@ -2297,12 +2311,12 @@ PrefabInstance: - target: {fileID: 3664209305474245377, guid: 3d8d9cbf10b12214e98891c1f03c1e99, type: 3} propertyPath: m_AnchorMax.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 3664209305474245377, guid: 3d8d9cbf10b12214e98891c1f03c1e99, type: 3} propertyPath: m_AnchorMin.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 3664209305474245377, guid: 3d8d9cbf10b12214e98891c1f03c1e99, type: 3} @@ -2317,17 +2331,17 @@ PrefabInstance: - target: {fileID: 3664209305474245377, guid: 3d8d9cbf10b12214e98891c1f03c1e99, type: 3} propertyPath: m_AnchoredPosition.y - value: 0 + value: -16 objectReference: {fileID: 0} - target: {fileID: 3664209306888449100, guid: 3d8d9cbf10b12214e98891c1f03c1e99, type: 3} propertyPath: m_AnchorMax.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 3664209306888449100, guid: 3d8d9cbf10b12214e98891c1f03c1e99, type: 3} propertyPath: m_AnchorMin.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 3664209306888449100, guid: 3d8d9cbf10b12214e98891c1f03c1e99, type: 3} @@ -2342,7 +2356,7 @@ PrefabInstance: - target: {fileID: 3664209306888449100, guid: 3d8d9cbf10b12214e98891c1f03c1e99, type: 3} propertyPath: m_AnchoredPosition.y - value: 0 + value: -16 objectReference: {fileID: 0} - target: {fileID: 4533226043449861658, guid: 3d8d9cbf10b12214e98891c1f03c1e99, type: 3} @@ -2542,12 +2556,12 @@ PrefabInstance: - target: {fileID: 7329274283166941234, guid: 3d8d9cbf10b12214e98891c1f03c1e99, type: 3} propertyPath: m_AnchorMax.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 7329274283166941234, guid: 3d8d9cbf10b12214e98891c1f03c1e99, type: 3} propertyPath: m_AnchorMin.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 7329274283166941234, guid: 3d8d9cbf10b12214e98891c1f03c1e99, type: 3} @@ -2557,7 +2571,7 @@ PrefabInstance: - target: {fileID: 7329274283166941234, guid: 3d8d9cbf10b12214e98891c1f03c1e99, type: 3} propertyPath: m_SizeDelta.y - value: 0 + value: 144.0148 objectReference: {fileID: 0} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 3d8d9cbf10b12214e98891c1f03c1e99, type: 3} diff --git a/Assets/Scripts/Zone Display/BlueNoiseProvider.cs b/Assets/Scripts/Zone Display/BlueNoiseProvider.cs index 4afebfd2d..926e04ed3 100644 --- a/Assets/Scripts/Zone Display/BlueNoiseProvider.cs +++ b/Assets/Scripts/Zone Display/BlueNoiseProvider.cs @@ -26,9 +26,10 @@ public class BlueNoiseProvider : MonoBehaviour { Shader.SetGlobalVector("_DitheringCoords", new Vector4( (float)_camera.scaledPixelWidth / (float)NoiseTexture.width, - (float)_camera.scaledPixelWidth / (float)NoiseTexture.height, + (float)_camera.scaledPixelHeight / (float)NoiseTexture.height, Random.value, Random.value )); + Shader.SetGlobalInt("_FrameNumber", Time.frameCount); } } diff --git a/Assets/Shaders/Dither Functions.cginc b/Assets/Shaders/Dither Functions.cginc index 4e747464b..6a3b25d98 100644 --- a/Assets/Shaders/Dither Functions.cginc +++ b/Assets/Shaders/Dither Functions.cginc @@ -4,9 +4,11 @@ sampler2D _DitheringTex; float4 _DitheringCoords; +uniform int _FrameNumber; float isDithered(float2 pos, float alpha) { - float dither = tex2D(_DitheringTex, pos * _DitheringCoords.xy + _DitheringCoords.zw).r; + half dither = frac(tex2D(_DitheringTex, pos * _DitheringCoords.xy).r + _FrameNumber * 1.61803398875); + //float dither = tex2D(_DitheringTex, pos * _DitheringCoords.xy + _DitheringCoords.zw).r; return alpha - dither - 0.0001 * (1 - ceil(alpha)); } diff --git a/Assets/Shaders/Raymarching/VolumeRender.shader b/Assets/Shaders/Raymarching/VolumeRender.shader index 96945290a..0137be7f6 100644 --- a/Assets/Shaders/Raymarching/VolumeRender.shader +++ b/Assets/Shaders/Raymarching/VolumeRender.shader @@ -44,9 +44,6 @@ // the number of volume samples to take #define SAMPLE_COUNT 128 - // spacing between samples - //#define SAMPLE_PERIOD 16 - // Shared shader code for pixel view rays, given screen pos and camera frame vectors. // Camera vectors are passed in as this shader is run from a post proc camera, so the unity built-in values are not useful. uniform float4x4 _CamProj; @@ -55,6 +52,7 @@ uniform float3 _CamForward; uniform float3 _CamRight; uniform float _HalfFov; + uniform int _FrameNumber; uniform float _StepExponent; @@ -157,8 +155,8 @@ float4 RayMarch( in float3 origin, in float3 direction, in float zbuf, in float2 screenUV, out float scatterSum ) { - //half rand = tex2D(_DitheringTex, screenUV * _DitheringCoords.xy + _DitheringCoords.zw).r*2; - half rand = nrand(screenUV + frac(_Time.x)) * 2; + half rand = frac(tex2D(_DitheringTex, screenUV * _DitheringCoords.xy).r + _FrameNumber * 1.61803398875); + //half rand = nrand(screenUV + frac(_Time.x)) * 2; float4 sum = (float4)0.; scatterSum = 0.; diff --git a/Assets/Shaders/Raymarching/VolumeSun.shader b/Assets/Shaders/Raymarching/VolumeSun.shader index 023b2b7fc..5c44b16e2 100644 --- a/Assets/Shaders/Raymarching/VolumeSun.shader +++ b/Assets/Shaders/Raymarching/VolumeSun.shader @@ -108,7 +108,8 @@ Shader "Aetheria/Volume Sun" float3 rayPos = IN.worldNormal; float3 rayStep = normalize(IN.viewDir)*_RayStepSize*(2-rim); - float dither = tex2D(_DitheringTex, (screenPos + .5) * _DitheringCoords.xy + _DitheringCoords.zw).r * 2; + half dither = frac(tex2D(_DitheringTex, (screenPos + .5) * _DitheringCoords.xy).r + _FrameNumber * 1.61803398875); + //float dither = tex2D(_DitheringTex, (screenPos + .5) * _DitheringCoords.xy + _DitheringCoords.zw).r * 2; rayPos += rayStep * dither; float3 accum = 0; diff --git a/GameData/PlayerSettings.msgpack b/GameData/PlayerSettings.msgpack index dbb8704e1..dc341c65c 100644 --- a/GameData/PlayerSettings.msgpack +++ b/GameData/PlayerSettings.msgpack @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:584243d86e7507e91e8a2c9b652ff15aa00500cc4fdfa2655be5573b6a26a885 +oid sha256:6aaed2a17711abc2326673af3b4239c9b965a6974f00ce8a542cd80d963da493 size 18864 From abe915fa647ceca26d47b9e975d34233eb9242c6 Mon Sep 17 00:00:00 2001 From: Defirm <32074047+voivoontos@users.noreply.github.com> Date: Mon, 12 Apr 2021 15:48:42 +0200 Subject: [PATCH 33/51] Defirm10 Aetheric Drivers: Nuclear/ electric Weapons: railgun Full LightingGun : miss/ hit/ship destr./fire --- .../Actor-Mixer Hierarchy/SFX_Defirm_Unit.wwu | 1613 +------ .../SFX_defirm_aeth_drive.wwu | 10 + .../Spaceship_Aetheric_drivers.wwu | 3931 +++++++++++++++++ ...omy_WwiseProject.crossover.validationcache | 34 +- ...a-Economy_WwiseProject.crossover.wsettings | 56 +- .../Effects/Default Work Unit.wwu | 160 +- .../Effects/Factory Effects.wwu | 6 +- .../Events/SFX_Defirm_unit.wwu | 1 - .../Events/SFX_defirm_aeth_drive_model.wwu | 321 ++ .../Events/Ship Audio.wwu | 64 +- .../Events/enemy_ship.wwu | 179 - .../ship_technology_parameters.wwu | 75 + .../Game Parameters/weapon_events.wwu | 6 + .../Modulators/Default Work Unit.wwu | 6 + .../SFX_weapon_lightingGun_discharge01.akd | Bin 0 -> 10428 bytes .../SFX_weapon_lightingGun_discharge01.wav | 3 + .../SFX_weapon_lightingGun_dishi.akd | Bin 0 -> 2812 bytes .../SFX_weapon_lightingGun_dishi.wav | 3 + .../SFX_weapon_lightingGun_dislow.akd | Bin 0 -> 2308 bytes .../SFX_weapon_lightingGun_dislow.wav | 3 + .../Plugins/SoundSeed Grain/rotor_1.akd | Bin 0 -> 40912 bytes .../Plugins/SoundSeed Grain/rotor_1.wav | 3 + .../Plugins/SoundSeed Grain/rotor_2.akd | Bin 0 -> 40912 bytes .../Plugins/SoundSeed Grain/rotor_2.wav | 3 + .../SoundSeed Grain/rotor_electric.akd | Bin 0 -> 9952 bytes .../SoundSeed Grain/rotor_electric.wav | 3 + .../SoundSeed Grain/rotor_electric2.akd | Bin 0 -> 9952 bytes .../SoundSeed Grain/rotor_electric2.wav | 3 + .../SoundSeed Grain/rotor_electric3_noise.akd | Bin 0 -> 20552 bytes .../SoundSeed Grain/rotor_electric3_noise.wav | 3 + .../sfx_spcp_drives_dc_motor.akd | Bin 0 -> 4884 bytes .../sfx_spcp_drives_dc_motor.wav | 3 + .../sfx_spcp_drives_dc_scifi_electric.akd | Bin 0 -> 5656 bytes .../sfx_spcp_drives_dc_scifi_electric.wav | 3 + .../sfx_spcp_drives_nuclr01.akd | Bin 0 -> 53572 bytes .../sfx_spcp_drives_nuclr01.wav | 3 + .../SoundSeed Grain/sfx_spcp_thrst_electr.akd | Bin 0 -> 14204 bytes .../SoundSeed Grain/sfx_spcp_thrst_electr.wav | 3 + .../sfx_weapon_target_locking.akd | Bin 0 -> 11288 bytes .../sfx_weapon_target_locking.wav | 3 + ...theria_spaceship_Drivers_nuclear_start.akd | Bin 0 -> 6868 bytes ...theria_spaceship_Drivers_nuclear_start.wav | 3 + .../Originals/SFX/SFX_railgun_miss01.akd | Bin 0 -> 3140 bytes .../Originals/SFX/SFX_railgun_miss01.wav | 3 + .../Originals/SFX/SFX_railgun_miss02.akd | Bin 0 -> 2996 bytes .../Originals/SFX/SFX_railgun_miss02.wav | 3 + .../Originals/SFX/SFX_railgun_miss03.akd | Bin 0 -> 2812 bytes .../Originals/SFX/SFX_railgun_miss03.wav | 3 + .../Originals/SFX/SFX_railgun_miss04.akd | Bin 0 -> 2940 bytes .../Originals/SFX/SFX_railgun_miss04.wav | 3 + .../SFX/SFX_weapon_lightingGun_boom01.akd | Bin 0 -> 1708 bytes .../SFX/SFX_weapon_lightingGun_boom01.wav | 3 + .../SFX/SFX_weapon_lightingGun_boom02.akd | Bin 0 -> 1708 bytes .../SFX/SFX_weapon_lightingGun_boom02.wav | 3 + .../SFX/SFX_weapon_lightingGun_boom03.akd | Bin 0 -> 1708 bytes .../SFX/SFX_weapon_lightingGun_boom03.wav | 3 + .../SFX/SFX_weapon_lightingGun_boom04.akd | Bin 0 -> 1708 bytes .../SFX/SFX_weapon_lightingGun_boom04.wav | 3 + .../SFX/SFX_weapon_lightingGun_boom05.akd | Bin 0 -> 1708 bytes .../SFX/SFX_weapon_lightingGun_boom05.wav | 3 + .../SFX/SFX_weapon_lightingGun_hit01.akd | Bin 0 -> 5904 bytes .../SFX/SFX_weapon_lightingGun_hit01.wav | 3 + .../SFX/SFX_weapon_lightingGun_hit02.akd | Bin 0 -> 6968 bytes .../SFX/SFX_weapon_lightingGun_hit02.wav | 3 + .../SFX/SFX_weapon_lightingGun_hit03.akd | Bin 0 -> 5904 bytes .../SFX/SFX_weapon_lightingGun_hit03.wav | 3 + .../SFX/SFX_weapon_lightingGun_hit04.akd | Bin 0 -> 6968 bytes .../SFX/SFX_weapon_lightingGun_hit04.wav | 3 + .../SFX/SFX_weapon_lightingGun_hit05.akd | Bin 0 -> 6968 bytes .../SFX/SFX_weapon_lightingGun_hit05.wav | 3 + .../SFX/SFX_weapon_lightingGun_miss01.akd | Bin 0 -> 3876 bytes .../SFX/SFX_weapon_lightingGun_miss01.wav | 3 + .../SFX/SFX_weapon_lightingGun_miss02.akd | Bin 0 -> 4508 bytes .../SFX/SFX_weapon_lightingGun_miss02.wav | 3 + .../SFX/SFX_weapon_lightingGun_miss03.akd | Bin 0 -> 4220 bytes .../SFX/SFX_weapon_lightingGun_miss03.wav | 3 + .../sfx_spcp_thrst_electr01.akd | Bin 0 -> 1060 bytes .../sfx_spcp_thrst_electr01.wav | 3 + .../sfx_spcp_thrst_electr02.akd | Bin 0 -> 1060 bytes .../sfx_spcp_thrst_electr02.wav | 3 + .../sfx_spcp_thrst_electr03.akd | Bin 0 -> 1060 bytes .../sfx_spcp_thrst_electr03.wav | 3 + .../sfx_spcp_thrst_electr04.akd | Bin 0 -> 1060 bytes .../sfx_spcp_thrst_electr04.wav | 3 + .../sfx_spcp_thrst_electr05.akd | Bin 0 -> 1060 bytes .../sfx_spcp_thrst_electr05.wav | 3 + .../sfx_spcp_thrst_electr06.akd | Bin 0 -> 1060 bytes .../sfx_spcp_thrst_electr06.wav | 3 + .../sfx_spcp_thrst_electr07.akd | Bin 0 -> 1060 bytes .../sfx_spcp_thrst_electr07.wav | 3 + .../sfx_spcp_thrst_electr08.akd | Bin 0 -> 1060 bytes .../sfx_spcp_thrst_electr08.wav | 3 + .../sfx_spcp_thrst_electr09.akd | Bin 0 -> 1060 bytes .../sfx_spcp_thrst_electr09.wav | 3 + .../sfx_spcp_thrst_electr10.akd | Bin 0 -> 1060 bytes .../sfx_spcp_thrst_electr10.wav | 3 + .../SFX/sfx_spcp_drives_dc_start.akd | Bin 0 -> 4568 bytes .../SFX/sfx_spcp_drives_dc_start.wav | 3 + .../SFX/sfx_spcp_drives_nuc_steam_long01.akd | Bin 0 -> 3516 bytes .../SFX/sfx_spcp_drives_nuc_steam_long01.wav | 3 + .../SFX/sfx_spcp_drives_nuc_steam_long02.akd | Bin 0 -> 4116 bytes .../SFX/sfx_spcp_drives_nuc_steam_long02.wav | 3 + .../SFX/sfx_spcp_drives_nuc_steam_long03.akd | Bin 0 -> 8220 bytes .../SFX/sfx_spcp_drives_nuc_steam_long03.wav | 3 + .../SFX/sfx_spcp_drives_nuc_steam_long04.akd | Bin 0 -> 6232 bytes .../SFX/sfx_spcp_drives_nuc_steam_long04.wav | 3 + .../SFX/sfx_spcp_drives_nuc_steam_long05.akd | Bin 0 -> 6620 bytes .../SFX/sfx_spcp_drives_nuc_steam_long05.wav | 3 + .../SFX/sfx_spcp_drives_nuc_steam_long06.akd | Bin 0 -> 4948 bytes .../SFX/sfx_spcp_drives_nuc_steam_long06.wav | 3 + .../SFX/sfx_spcp_drives_nuc_steam_long07.akd | Bin 0 -> 7132 bytes .../SFX/sfx_spcp_drives_nuc_steam_long07.wav | 3 + .../SFX/sfx_spcp_drives_nuc_steam_shrt01.akd | Bin 0 -> 2652 bytes .../SFX/sfx_spcp_drives_nuc_steam_shrt01.wav | 3 + .../SFX/sfx_spcp_drives_nuc_steam_shrt02.akd | Bin 0 -> 3676 bytes .../SFX/sfx_spcp_drives_nuc_steam_shrt02.wav | 3 + .../SFX/sfx_spcp_drives_nuc_steam_shrt03.akd | Bin 0 -> 2556 bytes .../SFX/sfx_spcp_drives_nuc_steam_shrt03.wav | 3 + .../SFX/sfx_spcp_drives_nuc_steam_shrt04.akd | Bin 0 -> 2916 bytes .../SFX/sfx_spcp_drives_nuc_steam_shrt04.wav | 3 + .../SFX/sfx_spcp_drives_nuc_steam_shrt05.akd | Bin 0 -> 2380 bytes .../SFX/sfx_spcp_drives_nuc_steam_shrt05.wav | 3 + .../SFX/sfx_spcp_drives_nuc_steam_shrt06.akd | Bin 0 -> 3356 bytes .../SFX/sfx_spcp_drives_nuc_steam_shrt06.wav | 3 + .../SFX/sfx_spcp_drives_nuc_steam_shrt07.akd | Bin 0 -> 2252 bytes .../SFX/sfx_spcp_drives_nuc_steam_shrt07.wav | 3 + .../SFX/sfx_spcp_drives_nuc_steam_shrt08.akd | Bin 0 -> 1836 bytes .../SFX/sfx_spcp_drives_nuc_steam_shrt08.wav | 3 + .../Originals/SFX/sfx_spcp_drives_sprc01.akd | Bin 0 -> 1060 bytes .../Originals/SFX/sfx_spcp_drives_sprc01.wav | 3 + .../Originals/SFX/sfx_spcp_drives_sprc02.akd | Bin 0 -> 1060 bytes .../Originals/SFX/sfx_spcp_drives_sprc02.wav | 3 + .../Originals/SFX/sfx_spcp_drives_sprc03.akd | Bin 0 -> 1060 bytes .../Originals/SFX/sfx_spcp_drives_sprc03.wav | 3 + .../Originals/SFX/sfx_spcp_drives_sprc04.akd | Bin 0 -> 1060 bytes .../Originals/SFX/sfx_spcp_drives_sprc04.wav | 3 + .../Originals/SFX/sfx_spcp_drives_sprc05.akd | Bin 0 -> 1060 bytes .../Originals/SFX/sfx_spcp_drives_sprc05.wav | 3 + .../Originals/SFX/sfx_spcp_drives_sprc06.akd | Bin 0 -> 1060 bytes .../Originals/SFX/sfx_spcp_drives_sprc06.wav | 3 + .../Originals/SFX/sfx_spcp_drives_sprc07.akd | Bin 0 -> 1060 bytes .../Originals/SFX/sfx_spcp_drives_sprc07.wav | 3 + .../Originals/SFX/sfx_spcp_drives_sprc08.akd | Bin 0 -> 1060 bytes .../Originals/SFX/sfx_spcp_drives_sprc08.wav | 3 + .../Originals/SFX/sfx_spcp_drives_sprc09.akd | Bin 0 -> 1060 bytes .../Originals/SFX/sfx_spcp_drives_sprc09.wav | 3 + .../Originals/SFX/sfx_spcp_drives_sprc10.akd | Bin 0 -> 1060 bytes .../Originals/SFX/sfx_spcp_drives_sprc10.wav | 3 + .../Originals/SFX/sfx_spcp_drives_sprc11.akd | Bin 0 -> 1060 bytes .../Originals/SFX/sfx_spcp_drives_sprc11.wav | 3 + .../Originals/SFX/sfx_spcp_drives_sprc12.akd | Bin 0 -> 1060 bytes .../Originals/SFX/sfx_spcp_drives_sprc12.wav | 3 + .../Originals/SFX/sfx_spcp_thrst_electr.akd | Bin 0 -> 14204 bytes .../Originals/SFX/sfx_spcp_thrst_electr.wav | 3 + .../Originals/SFX/sfx_spcp_thrst_electr01.akd | Bin 0 -> 1060 bytes .../Originals/SFX/sfx_spcp_thrst_electr01.wav | 3 + .../Originals/SFX/sfx_spcp_thrst_electr02.akd | Bin 0 -> 1060 bytes .../Originals/SFX/sfx_spcp_thrst_electr02.wav | 3 + .../Originals/SFX/sfx_spcp_thrst_electr03.akd | Bin 0 -> 1060 bytes .../Originals/SFX/sfx_spcp_thrst_electr03.wav | 3 + .../Originals/SFX/sfx_spcp_thrst_electr04.akd | Bin 0 -> 1060 bytes .../Originals/SFX/sfx_spcp_thrst_electr04.wav | 3 + .../Originals/SFX/sfx_spcp_thrst_electr05.akd | Bin 0 -> 1060 bytes .../Originals/SFX/sfx_spcp_thrst_electr05.wav | 3 + .../Originals/SFX/sfx_spcp_thrst_electr06.akd | Bin 0 -> 1060 bytes .../Originals/SFX/sfx_spcp_thrst_electr06.wav | 3 + .../Originals/SFX/sfx_spcp_thrst_electr07.akd | Bin 0 -> 1060 bytes .../Originals/SFX/sfx_spcp_thrst_electr07.wav | 3 + .../Originals/SFX/sfx_spcp_thrst_electr08.akd | Bin 0 -> 1060 bytes .../Originals/SFX/sfx_spcp_thrst_electr08.wav | 3 + .../Originals/SFX/sfx_spcp_thrst_electr09.akd | Bin 0 -> 1060 bytes .../Originals/SFX/sfx_spcp_thrst_electr09.wav | 3 + .../Originals/SFX/sfx_spcp_thrst_electr10.akd | Bin 0 -> 1060 bytes .../Originals/SFX/sfx_spcp_thrst_electr10.wav | 3 + .../SFX/sfx_spcp_thrst_electr_loop.akd | Bin 0 -> 1316 bytes .../SFX/sfx_spcp_thrst_electr_loop.wav | 3 + .../SFX/sfx_spcp_thrst_windnoise.akd | Bin 0 -> 27328 bytes .../SFX/sfx_spcp_thrst_windnoise.wav | 3 + .../SFX/sfx_weapon_target_locking.akd | Bin 0 -> 11288 bytes .../SFX/sfx_weapon_target_locking.wav | 3 + .../Default Work Unit.wwu | 178 +- .../Switches/def_test.wwu | 6 + 182 files changed, 5037 insertions(+), 1858 deletions(-) create mode 100644 Aetheria-Economy_WwiseProject/Actor-Mixer Hierarchy/SFX_defirm_aeth_drive.wwu create mode 100644 Aetheria-Economy_WwiseProject/Actor-Mixer Hierarchy/Spaceship_Aetheric_drivers.wwu create mode 100644 Aetheria-Economy_WwiseProject/Events/SFX_defirm_aeth_drive_model.wwu delete mode 100644 Aetheria-Economy_WwiseProject/Events/enemy_ship.wwu create mode 100644 Aetheria-Economy_WwiseProject/Game Parameters/ship_technology_parameters.wwu create mode 100644 Aetheria-Economy_WwiseProject/Originals/Plugins/SoundSeed Grain/SFX_weapon_lightingGun_discharge01.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/Plugins/SoundSeed Grain/SFX_weapon_lightingGun_discharge01.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/Plugins/SoundSeed Grain/SFX_weapon_lightingGun_dishi.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/Plugins/SoundSeed Grain/SFX_weapon_lightingGun_dishi.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/Plugins/SoundSeed Grain/SFX_weapon_lightingGun_dislow.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/Plugins/SoundSeed Grain/SFX_weapon_lightingGun_dislow.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/Plugins/SoundSeed Grain/rotor_1.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/Plugins/SoundSeed Grain/rotor_1.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/Plugins/SoundSeed Grain/rotor_2.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/Plugins/SoundSeed Grain/rotor_2.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/Plugins/SoundSeed Grain/rotor_electric.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/Plugins/SoundSeed Grain/rotor_electric.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/Plugins/SoundSeed Grain/rotor_electric2.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/Plugins/SoundSeed Grain/rotor_electric2.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/Plugins/SoundSeed Grain/rotor_electric3_noise.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/Plugins/SoundSeed Grain/rotor_electric3_noise.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/Plugins/SoundSeed Grain/sfx_spcp_drives_dc_motor.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/Plugins/SoundSeed Grain/sfx_spcp_drives_dc_motor.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/Plugins/SoundSeed Grain/sfx_spcp_drives_dc_scifi_electric.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/Plugins/SoundSeed Grain/sfx_spcp_drives_dc_scifi_electric.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/Plugins/SoundSeed Grain/sfx_spcp_drives_nuclr01.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/Plugins/SoundSeed Grain/sfx_spcp_drives_nuclr01.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/Plugins/SoundSeed Grain/sfx_spcp_thrst_electr.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/Plugins/SoundSeed Grain/sfx_spcp_thrst_electr.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/Plugins/SoundSeed Grain/sfx_weapon_target_locking.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/Plugins/SoundSeed Grain/sfx_weapon_target_locking.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/Aetheria_spaceship_Drivers_nuclear_start.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/Aetheria_spaceship_Drivers_nuclear_start.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX_railgun_miss01.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX_railgun_miss01.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX_railgun_miss02.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX_railgun_miss02.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX_railgun_miss03.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX_railgun_miss03.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX_railgun_miss04.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX_railgun_miss04.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_lightingGun_boom01.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_lightingGun_boom01.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_lightingGun_boom02.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_lightingGun_boom02.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_lightingGun_boom03.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_lightingGun_boom03.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_lightingGun_boom04.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_lightingGun_boom04.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_lightingGun_boom05.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_lightingGun_boom05.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_lightingGun_hit01.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_lightingGun_hit01.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_lightingGun_hit02.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_lightingGun_hit02.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_lightingGun_hit03.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_lightingGun_hit03.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_lightingGun_hit04.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_lightingGun_hit04.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_lightingGun_hit05.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_lightingGun_hit05.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_lightingGun_miss01.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_lightingGun_miss01.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_lightingGun_miss02.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_lightingGun_miss02.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_lightingGun_miss03.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_lightingGun_miss03.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/oneshot_electric/sfx_spcp_thrst_electr01.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/oneshot_electric/sfx_spcp_thrst_electr01.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/oneshot_electric/sfx_spcp_thrst_electr02.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/oneshot_electric/sfx_spcp_thrst_electr02.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/oneshot_electric/sfx_spcp_thrst_electr03.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/oneshot_electric/sfx_spcp_thrst_electr03.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/oneshot_electric/sfx_spcp_thrst_electr04.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/oneshot_electric/sfx_spcp_thrst_electr04.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/oneshot_electric/sfx_spcp_thrst_electr05.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/oneshot_electric/sfx_spcp_thrst_electr05.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/oneshot_electric/sfx_spcp_thrst_electr06.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/oneshot_electric/sfx_spcp_thrst_electr06.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/oneshot_electric/sfx_spcp_thrst_electr07.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/oneshot_electric/sfx_spcp_thrst_electr07.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/oneshot_electric/sfx_spcp_thrst_electr08.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/oneshot_electric/sfx_spcp_thrst_electr08.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/oneshot_electric/sfx_spcp_thrst_electr09.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/oneshot_electric/sfx_spcp_thrst_electr09.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/oneshot_electric/sfx_spcp_thrst_electr10.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/oneshot_electric/sfx_spcp_thrst_electr10.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_dc_start.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_dc_start.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_nuc_steam_long01.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_nuc_steam_long01.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_nuc_steam_long02.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_nuc_steam_long02.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_nuc_steam_long03.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_nuc_steam_long03.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_nuc_steam_long04.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_nuc_steam_long04.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_nuc_steam_long05.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_nuc_steam_long05.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_nuc_steam_long06.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_nuc_steam_long06.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_nuc_steam_long07.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_nuc_steam_long07.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_nuc_steam_shrt01.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_nuc_steam_shrt01.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_nuc_steam_shrt02.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_nuc_steam_shrt02.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_nuc_steam_shrt03.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_nuc_steam_shrt03.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_nuc_steam_shrt04.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_nuc_steam_shrt04.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_nuc_steam_shrt05.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_nuc_steam_shrt05.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_nuc_steam_shrt06.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_nuc_steam_shrt06.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_nuc_steam_shrt07.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_nuc_steam_shrt07.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_nuc_steam_shrt08.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_nuc_steam_shrt08.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_sprc01.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_sprc01.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_sprc02.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_sprc02.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_sprc03.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_sprc03.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_sprc04.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_sprc04.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_sprc05.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_sprc05.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_sprc06.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_sprc06.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_sprc07.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_sprc07.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_sprc08.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_sprc08.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_sprc09.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_sprc09.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_sprc10.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_sprc10.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_sprc11.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_sprc11.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_sprc12.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_sprc12.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_thrst_electr.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_thrst_electr.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_thrst_electr01.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_thrst_electr01.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_thrst_electr02.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_thrst_electr02.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_thrst_electr03.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_thrst_electr03.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_thrst_electr04.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_thrst_electr04.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_thrst_electr05.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_thrst_electr05.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_thrst_electr06.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_thrst_electr06.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_thrst_electr07.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_thrst_electr07.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_thrst_electr08.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_thrst_electr08.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_thrst_electr09.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_thrst_electr09.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_thrst_electr10.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_thrst_electr10.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_thrst_electr_loop.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_thrst_electr_loop.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_thrst_windnoise.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_thrst_windnoise.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/sfx_weapon_target_locking.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/sfx_weapon_target_locking.wav create mode 100644 Aetheria-Economy_WwiseProject/Switches/def_test.wwu diff --git a/Aetheria-Economy_WwiseProject/Actor-Mixer Hierarchy/SFX_Defirm_Unit.wwu b/Aetheria-Economy_WwiseProject/Actor-Mixer Hierarchy/SFX_Defirm_Unit.wwu index 69b328402..d5c5dd71c 100644 --- a/Aetheria-Economy_WwiseProject/Actor-Mixer Hierarchy/SFX_Defirm_Unit.wwu +++ b/Aetheria-Economy_WwiseProject/Actor-Mixer Hierarchy/SFX_Defirm_Unit.wwu @@ -12,7 +12,7 @@ - + @@ -3010,1617 +3010,6 @@ - - - - - - - - 30 - - - - - - - True - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - 0 - 5 - Log3 - - - 2000 - -200 - 37 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 2.8 - - - - - - - - - - - - - - - 0 - -200 - 5 - - - 1 - 0 - 37 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - -6.69195 - 21 - - - 1 - -200 - 53 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - 0 - 5 - - - 71.81706 - 0.12559 - 0 - - - 100 - 0.23097 - 37 - - - - - - - - - - - - - - - - - - - - - 0 - 0.641 - 5 - - - 1 - 0.23866 - 37 - - - - - - - - - - - - - - - - - - - - - 0 - 0.174 - 5 - - - 1 - 0 - 37 - - - - - - - - SFX - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -3.8 - - - - - - - - - - - - - - - 0 - -0.07208 - 21 - - - 1 - -200 - 53 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - SFX - Flamethrower SOUND.wav - - - - - - - - - - - - - - - - 2.8 - - - - - - - - - - - - - - - 0 - -200 - 5 - - - 1 - 0 - 37 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - -6.38715 - 21 - - - 1 - -200 - 53 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - 0 - 5 - - - 71.81706 - 0.12559 - 0 - - - 100 - 0.23097 - 37 - - - - - - - - - SFX - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -3.8 - - - - - - - - - - - - - - - 0 - -2.57085 - 21 - - - 1 - -200 - 53 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - SFX - Flamethrower SOUND.wav - - - - - - - - - - - - - - - - 2.8 - - - - - - - - - - - - - - - 0 - -200 - 5 - - - 1 - 0 - 37 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - -6.38715 - 21 - - - 1 - -200 - 53 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - 0 - 5 - - - 71.81706 - 0.12559 - 0 - - - 100 - 0.23097 - 37 - - - - - - - - - SFX - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -3.8 - - - - - - - - - - - - - - - 0 - 0.07208 - 21 - - - 1 - -200 - 53 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - SFX - Flamethrower SOUND.wav - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0.6 - - - - - - - - - - - - - - - 0 - 5.93877 - 21 - - - 1 - -200 - 53 - - - - - - - - - - - - - - - - - 0 - -12.14909 - 5 - - - 1 - -5 - 0 - - - 10 - -2.80358 - 37 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - 100 - 5 - - - 1 - -0 - 37 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - 115.44484 - 5 - - - 1 - 20 - 37 - - - - - - - - - - - - - - - - - - - - - - - 0 - 93.44537 - 5 - - - 0.19461 - 86.25361 - 0 - - - 0.35774 - 44.70588 - 0 - - - 0.67468 - 44.65156 - 0 - - - 0.69242 - 3.37148 - 0 - - - 1 - 4.20168 - 37 - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - -96 - 21 - - - 1 - 0 - 53 - - - - - - - - - - - - - - - - - - - - - - 0 - 129.076 - 5 - - - 1 - 0 - 37 - - - - - - - - - - SoundSeed Grain - SFX_Spcshp_reactor_extended_V2.0.wav - - - - - - SFX - - - - - - - - - - - - - -15 - - - - - - - - - - - - - - - 0 - -4.88957 - 5 - - - 0.49826 - -200 - 0 - - - 1 - -200 - 37 - - - - - - - - - - - - - - - - - - - - - SFX - Aetheia_Overheat_Alarm.wav - - - - - - - - - - - - - - - - - - - - - - - - - - - - - SFX - SFX__railgun_fire.wav - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - 0 - 5 - - - 0.10095 - -32.41752 - 0 - - - 1 - -55.73771 - 37 - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - 0 - 5 - - - 1 - 79.6253 - 37 - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - -96 - 21 - - - 1 - 0 - 53 - - - - - - - - - - - - - - - - - - SoundSeed Grain - SFX__railgun_charging.wav - - - - - - SFX - - - - - - - - - - - - - - - - - - - - - - - SFX - SFX__railgun_charginf_failure.wav - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - SFX - SFX__railgun_charginf_failure.wav - - - - - - - - - - - - - - - - - - - - - SFX - SFX_railgun_hit2.wav - - - - - - SFX - SFX_railgun_hit3.wav - - - - - - - - - - - - - - - - - - -2.3 - - - - - - - - - - - - - - - - - - - SFX - SFX__ship_sensor_ping.wav - - - - - - SFX - SFX__ship_sensor_ping3.wav - - - - - - - - - - - diff --git a/Aetheria-Economy_WwiseProject/Actor-Mixer Hierarchy/SFX_defirm_aeth_drive.wwu b/Aetheria-Economy_WwiseProject/Actor-Mixer Hierarchy/SFX_defirm_aeth_drive.wwu new file mode 100644 index 000000000..5b4827fd1 --- /dev/null +++ b/Aetheria-Economy_WwiseProject/Actor-Mixer Hierarchy/SFX_defirm_aeth_drive.wwu @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/Aetheria-Economy_WwiseProject/Actor-Mixer Hierarchy/Spaceship_Aetheric_drivers.wwu b/Aetheria-Economy_WwiseProject/Actor-Mixer Hierarchy/Spaceship_Aetheric_drivers.wwu new file mode 100644 index 000000000..25e047bcf --- /dev/null +++ b/Aetheria-Economy_WwiseProject/Actor-Mixer Hierarchy/Spaceship_Aetheric_drivers.wwu @@ -0,0 +1,3931 @@ + + + + + + + + + + + + 7 + + + + + 8.5 + + + + + True + + + + + -1.1 + + + + + + + + + + + + + + + + + + + + 0 + -200 + 5 + + + 1 + 0 + 37 + + + + + + + + + + + + + + + + + + + + + + + + + + + -8.5 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 5558.379 + 5 + Exp1 + + + 1 + 12034.8799 + 37 + + + + + + + + + + + + + + + + + + + + + + + 0 + 0 + 5 + + + 100 + 84 + 37 + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + -96 + 21 + + + 1 + 0 + 53 + + + + + + + + + + + + + + + + + + + + + + 0 + 0 + 5 + + + 43.52732 + 523.61146 + 0 + + + 100 + 336 + 37 + + + + + + + + + + + + + + + SoundSeed Grain + rotor_2.wav + + + + + + SFX + + + + + + + + + + + 2.6 + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 0 + 5 + + + 100 + -209 + 37 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SFX + sfx_spcp_thrst_electr02.wav + + + + + + + + + + + + + + + + + + + + + SFX + sfx_spcp_thrst_electr01.wav + + + + + + + + + + + + + + + + + + + + + SFX + sfx_spcp_thrst_electr03.wav + + + + + + + + + + + + + + + + + + + + + SFX + sfx_spcp_thrst_electr04.wav + + + + + + + + + + + + + + + + + + + + + SFX + sfx_spcp_thrst_electr05.wav + + + + + + + + + + + + + + + + + + + + + SFX + sfx_spcp_thrst_electr06.wav + + + + + + + + + + + + + + + + + + + + + SFX + sfx_spcp_thrst_electr07.wav + + + + + + + + + + + + + + + + + + + + + SFX + sfx_spcp_thrst_electr08.wav + + + + + + + + + + + + + + + + + + + + + SFX + sfx_spcp_thrst_electr09.wav + + + + + + + + + + + + + + + + + + + + + SFX + sfx_spcp_thrst_electr10.wav + + + + + + + + + + + + + + + + 0.3 + + + + + + + + + + + -2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 20000 + 5 + Log2 + + + 1 + 2748.07916 + 37 + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 0 + 5 + + + 1 + 43.09133 + 37 + + + + + + + + + + + + + + + + + + + + + 0 + 0 + 5 + + + 1 + 36.70878 + 37 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + -96 + 21 + + + 1 + 0 + 53 + + + + + + + + + + + + + + + + + + + + + + + 0 + 0 + 5 + Exp1 + + + 100 + 169.606 + 37 + + + + + + + + + + SoundSeed Grain + sfx_spcp_drives_nuclr01.wav + + + + + + SFX + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 8 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + -96 + 21 + + + 1 + 0 + 53 + + + + + + + + + + + + + + + + + + + + + + 0 + -0.117 + 5 + Exp1 + + + 1 + 0.114 + 37 + + + + + + + + + + + + + + + + + + + + + 0 + 0 + 5 + + + 100 + 176.47059 + 37 + + + + + + + + + + SoundSeed Grain + sfx_spcp_drives_dc_scifi_electric.wav + + + + + + SFX + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -8.2 + + + + + + + + + + + + + + + + + + + + + + SFX + sfx_spcp_drives_dc_start.wav + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.3 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -7 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SFX + sfx_spcp_drives_nuc_steam_shrt01.wav + + + + + + + + + + + + + + + + + + + + + + + + + + SFX + sfx_spcp_drives_nuc_steam_shrt02.wav + + + + + + + + + + + + + + + + + + + + + SFX + sfx_spcp_drives_nuc_steam_shrt03.wav + + + + + + + + + + + + + + + + + + + + + SFX + sfx_spcp_drives_nuc_steam_shrt04.wav + + + + + + + + + + + + + + + + + + + + + SFX + sfx_spcp_drives_nuc_steam_shrt05.wav + + + + + + + + + + + + + + + + + + + + + SFX + sfx_spcp_drives_nuc_steam_shrt06.wav + + + + + + + + + + + + + + + + + + + + + SFX + sfx_spcp_drives_nuc_steam_shrt07.wav + + + + + + + + + + + + + + + + + + + + + SFX + sfx_spcp_drives_nuc_steam_shrt08.wav + + + + + + + + + + + + + + + + -16.1 + + + + + + + + + + + + + + + + + + + SFX + Aetheria_spaceship_Drivers_nuclear_start.wav + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.5 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -7.6 + + + + + + + + + + + + + + + + + + + + + + + + SFX + sfx_spcp_drives_nuc_steam_long01.wav + + + + + + + + + + + + + + + + + + + + + SFX + sfx_spcp_drives_nuc_steam_long02.wav + + + + + + + + + + + + + + + + + + + + + SFX + sfx_spcp_drives_nuc_steam_long03.wav + + + + + + + + + + + + + + + + + + + + + SFX + sfx_spcp_drives_nuc_steam_long04.wav + + + + + + + + + + + + + + + + + + + + + SFX + sfx_spcp_drives_nuc_steam_long05.wav + + + + + + + + + + + + + + + + + + + + + SFX + sfx_spcp_drives_nuc_steam_long06.wav + + + + + + + + + + + + + + + + + + + + + SFX + sfx_spcp_drives_nuc_steam_long07.wav + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -2.8 + + + + + + + + + + + + + + + + + SFX + SFX__railgun_fire.wav + + + + + + + + + + + + + + + -4 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 0 + 5 + + + 0.10095 + -32.41752 + 0 + + + 1 + -55.73771 + 37 + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 0 + 5 + + + 1 + 79.6253 + 37 + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + -96 + 21 + + + 1 + 0 + 53 + + + + + + + + + + + + + + + + + + SoundSeed Grain + SFX__railgun_charging.wav + + + + + + SFX + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SFX + SFX__railgun_charginf_failure.wav + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SFX + SFX__railgun_charginf_failure.wav + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + SFX + SFX_railgun_hit3.wav + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -1 + + + + + + + + + + + + + + + + + + + + + SFX + SFX_railgun_hit3.wav + + + + + + + + + + + + + + + 29 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -4.6 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SFX + SFX_railgun_miss01.wav + + + + + + + + + + + + + + + + + + + + + SFX + SFX_railgun_miss02.wav + + + + + + + + + + + + + + + + + + + + + SFX + SFX_railgun_miss03.wav + + + + + + + + + + + + + + + + + + + + + SFX + SFX_railgun_miss04.wav + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 20000 + 5 + + + 1 + 1077.66556 + 37 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + -120 + 21 + + + 1 + 0 + 53 + + + + + + + + + + + + + + + + + + + + + + 0 + 0 + 5 + + + 0.32304 + -455.78635 + 0 + + + 1 + 2962.61127 + 37 + + + + + + + + + + SoundSeed Grain + SFX_weapon_lightingGun_discharge01.wav + + + + + + SFX + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.8 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -4.4 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + -96 + 21 + + + 1 + 0 + 53 + + + + + + + + + + + + + + + + + + + SoundSeed Grain + SFX_weapon_lightingGun_dislow.wav + + + + + + SFX + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.5 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 20000 + 5 + + + 1 + 1206.2725 + 37 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + -96 + 21 + + + 1 + 0 + 53 + + + + + + + + + + + + + + + + + SoundSeed Grain + SFX_weapon_lightingGun_dishi.wav + + + + + + SFX + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -4.6 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SFX + SFX_weapon_lightingGun_hit01.wav + + + + + + + + + + + + + + + + + + + + + + + + + + SFX + SFX_weapon_lightingGun_hit03.wav + + + + + + + + + + + + + + + + + + + + + + + + + + SFX + SFX_weapon_lightingGun_hit05.wav + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SFX + SFX_weapon_lightingGun_boom01.wav + + + + + + + + + + + + + + + + + + + + + + + + + + + SFX + SFX_weapon_lightingGun_boom02.wav + + + + + + + + + + + + + + + + + + + + + + + + + + SFX + SFX_weapon_lightingGun_boom03.wav + + + + + + + + + + + + + + + + + + + + + + + + + + + SFX + SFX_weapon_lightingGun_boom04.wav + + + + + + + + + + + + + + + + + + + + + + + + + + SFX + SFX_weapon_lightingGun_boom05.wav + + + + + + + + + + + + + + + + + + + -4.6 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SFX + SFX_weapon_lightingGun_hit01.wav + + + + + + + + + + + + + + + + + + + + + + + + + + SFX + SFX_weapon_lightingGun_hit03.wav + + + + + + + + + + + + + + + + + + + + + + + + + + SFX + SFX_weapon_lightingGun_hit05.wav + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SFX + SFX_weapon_lightingGun_boom01.wav + + + + + + + + + + + + + + + + + + + + + + + + + + + SFX + SFX_weapon_lightingGun_boom02.wav + + + + + + + + + + + + + + + + + + + + + + + + + + SFX + SFX_weapon_lightingGun_boom03.wav + + + + + + + + + + + + + + + + + + + + + + + + + + + SFX + SFX_weapon_lightingGun_boom04.wav + + + + + + + + + + + + + + + + + + + + + + + + + + SFX + SFX_weapon_lightingGun_boom05.wav + + + + + + + + + + + + + + + + + + + 21 + + + + + + + + + + + + + + + + 5 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SFX + SFX_weapon_lightingGun_miss01.wav + + + + + + + + + + + + + + + + + + + + + + + + + + + SFX + SFX_weapon_lightingGun_miss02.wav + + + + + + + + + + + + + + + + + + + + + + + + + + + SFX + SFX_weapon_lightingGun_miss03.wav + + + + + + + + + + + + + + + + + + -4.6 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 1100 + 5 + + + 0.60451 + 601.27341 + 0 + SCurve + + + 1 + 200 + 37 + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + -96 + 21 + + + 1 + 0 + 53 + + + + + + + + + + + + + + + + + 0 + -2.368 + 5 + Exp1 + + + 1 + -1.39496 + 37 + + + + + + + + + + SoundSeed Grain + sfx_weapon_target_locking.wav + + + + + + SFX + + + + + + + + + + + + + + + + + 8.1 + + + + + + + + + + + + + + + 0 + 5.93877 + 21 + + + 1 + -200 + 53 + + + + + + + + + + + + + + + + + 0 + -12.14909 + 5 + + + 1 + -5 + 0 + + + 10 + -2.80358 + 37 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 0 + 5 + + + 1 + 100 + 37 + + + + + + + + + + + + + + + + + + + + + + + + 0 + 0 + 5 + + + 1 + 100 + 37 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 0 + 5 + + + 1 + -1.275 + 37 + + + + + + + + + + + + + + + + + + + + + 0 + 0 + 5 + + + 0.50119 + -454.287 + 0 + + + 1 + 1110.977 + 37 + + + + + + + + + + SoundSeed Grain + SFX_Spcshp_reactor_extended_V2.0.wav + + + + + + SFX + + + + + + + + + + + + + + + + + + + + + + + + + + + -15 + + + + + + + + + + + + + + + 0 + -4.88957 + 5 + + + 0.49826 + -200 + 0 + + + 1 + -200 + 37 + + + + + + + + + + + + + + + + + + + + + SFX + Aetheia_Overheat_Alarm.wav + + + + + + + + + + + + + + + + + + + -3.1 + + + + + + + + + + + + + + + + + + + + + + SFX + SFX__ship_sensor_ping.wav + + + + + + SFX + SFX__ship_sensor_ping3.wav + + + + + + + + + + + + + diff --git a/Aetheria-Economy_WwiseProject/Aetheria-Economy_WwiseProject.crossover.validationcache b/Aetheria-Economy_WwiseProject/Aetheria-Economy_WwiseProject.crossover.validationcache index 41c6b7868..84e5729eb 100644 --- a/Aetheria-Economy_WwiseProject/Aetheria-Economy_WwiseProject.crossover.validationcache +++ b/Aetheria-Economy_WwiseProject/Aetheria-Economy_WwiseProject.crossover.validationcache @@ -2,36 +2,46 @@ - + + - + - + - + + - - - + + + + + + + - - + + - - - + + + + + + + diff --git a/Aetheria-Economy_WwiseProject/Aetheria-Economy_WwiseProject.crossover.wsettings b/Aetheria-Economy_WwiseProject/Aetheria-Economy_WwiseProject.crossover.wsettings index c0e0b9480..9477cc0b0 100644 --- a/Aetheria-Economy_WwiseProject/Aetheria-Economy_WwiseProject.crossover.wsettings +++ b/Aetheria-Economy_WwiseProject/Aetheria-Economy_WwiseProject.crossover.wsettings @@ -3,31 +3,42 @@ - + + + + + + + + + + + + @@ -41,11 +52,18 @@ + + + + + + + @@ -70,7 +88,7 @@ - + @@ -78,12 +96,16 @@ + + + + - + @@ -100,20 +122,32 @@ - - - + + + - + - - + + + + + + + + + + + + - + + + @@ -146,7 +180,7 @@ - + diff --git a/Aetheria-Economy_WwiseProject/Effects/Default Work Unit.wwu b/Aetheria-Economy_WwiseProject/Effects/Default Work Unit.wwu index 180e60d1e..280e0d18e 100644 --- a/Aetheria-Economy_WwiseProject/Effects/Default Work Unit.wwu +++ b/Aetheria-Economy_WwiseProject/Effects/Default Work Unit.wwu @@ -15,12 +15,166 @@ - - + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 0 + 5 + + + 1 + 100 + 37 + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 20 + 5 + + + 1 + 654.11216 + 37 + + + + + + + + + + + + + + + + + + + + + 0 + 20000 + 5 + + + 1 + 2338.78964 + 37 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 462899 + + + + + + diff --git a/Aetheria-Economy_WwiseProject/Effects/Factory Effects.wwu b/Aetheria-Economy_WwiseProject/Effects/Factory Effects.wwu index ac716afb9..235ecb714 100644 --- a/Aetheria-Economy_WwiseProject/Effects/Factory Effects.wwu +++ b/Aetheria-Economy_WwiseProject/Effects/Factory Effects.wwu @@ -236,11 +236,11 @@ - + - + - + diff --git a/Aetheria-Economy_WwiseProject/Events/SFX_Defirm_unit.wwu b/Aetheria-Economy_WwiseProject/Events/SFX_Defirm_unit.wwu index 6a4233d63..9d669da99 100644 --- a/Aetheria-Economy_WwiseProject/Events/SFX_Defirm_unit.wwu +++ b/Aetheria-Economy_WwiseProject/Events/SFX_Defirm_unit.wwu @@ -37,7 +37,6 @@ - diff --git a/Aetheria-Economy_WwiseProject/Events/SFX_defirm_aeth_drive_model.wwu b/Aetheria-Economy_WwiseProject/Events/SFX_defirm_aeth_drive_model.wwu new file mode 100644 index 000000000..1fd6fc7a1 --- /dev/null +++ b/Aetheria-Economy_WwiseProject/Events/SFX_defirm_aeth_drive_model.wwu @@ -0,0 +1,321 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Aetheria-Economy_WwiseProject/Events/Ship Audio.wwu b/Aetheria-Economy_WwiseProject/Events/Ship Audio.wwu index 474b26e93..bc9f47099 100644 --- a/Aetheria-Economy_WwiseProject/Events/Ship Audio.wwu +++ b/Aetheria-Economy_WwiseProject/Events/Ship Audio.wwu @@ -3,31 +3,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - @@ -135,13 +110,12 @@ - - + - + @@ -149,10 +123,10 @@ - + - + @@ -171,10 +145,10 @@ - + - + @@ -182,10 +156,10 @@ - + - + @@ -202,6 +176,28 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/Aetheria-Economy_WwiseProject/Events/enemy_ship.wwu b/Aetheria-Economy_WwiseProject/Events/enemy_ship.wwu deleted file mode 100644 index 1c7699b02..000000000 --- a/Aetheria-Economy_WwiseProject/Events/enemy_ship.wwu +++ /dev/null @@ -1,179 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Aetheria-Economy_WwiseProject/Game Parameters/ship_technology_parameters.wwu b/Aetheria-Economy_WwiseProject/Game Parameters/ship_technology_parameters.wwu new file mode 100644 index 000000000..dc075fa92 --- /dev/null +++ b/Aetheria-Economy_WwiseProject/Game Parameters/ship_technology_parameters.wwu @@ -0,0 +1,75 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Aetheria-Economy_WwiseProject/Game Parameters/weapon_events.wwu b/Aetheria-Economy_WwiseProject/Game Parameters/weapon_events.wwu index 8df89efe2..384835cbd 100644 --- a/Aetheria-Economy_WwiseProject/Game Parameters/weapon_events.wwu +++ b/Aetheria-Economy_WwiseProject/Game Parameters/weapon_events.wwu @@ -9,6 +9,12 @@ + + + + + + diff --git a/Aetheria-Economy_WwiseProject/Modulators/Default Work Unit.wwu b/Aetheria-Economy_WwiseProject/Modulators/Default Work Unit.wwu index 8e8f719cb..02380f693 100644 --- a/Aetheria-Economy_WwiseProject/Modulators/Default Work Unit.wwu +++ b/Aetheria-Economy_WwiseProject/Modulators/Default Work Unit.wwu @@ -124,6 +124,12 @@ + + + + + + diff --git a/Aetheria-Economy_WwiseProject/Originals/Plugins/SoundSeed Grain/SFX_weapon_lightingGun_discharge01.akd b/Aetheria-Economy_WwiseProject/Originals/Plugins/SoundSeed Grain/SFX_weapon_lightingGun_discharge01.akd new file mode 100644 index 0000000000000000000000000000000000000000..a2c80bb58107d64222eb83891f872bfbf0859292 GIT binary patch literal 10428 zcmZvi33Nz33>=(Zv>&MzFgagWyla@Y|{u6BWT2kZ4?O-v9vw*Mnn+O zA|%qczP<<|f*xz^jUbkxt&_37%KyE2=e%=XpY!Y6%e~!IUwwPs%7l=u^-7V_^2qJ- zNj@xoghZB+FT%RpNk(=y@#w3Pd*y|-M+IU1rJQiN`v|@}P&gkv6nxYMp^d#Jl*}v< zeA^Grk9(qT{%X`eT!>o5#^|5mi|+BY(X;IkOfBM=at&zlS{%H6OAKn>oGXif*I%jLNfF# z7Nw3x&o>RxI;$}nG8>}i^HL>G_X)#Bx6s5U5n1XPUY&UwQ;G|4>-Bupy*FaYVtHPt z?mi9^}(!O^U?YFu}Hb@i|>2HVQ|V6OfTEfQMp}3M~b=5&W)H7y$PK;gD`RbVa%AFgd}&jNF2QfNu$MBRG5rku5ZAADt_SLe zKVqi2yT#R`*{J(k&++4`kq-YxE+qSsP#*+>JbP-l&Dw(z=gy>Kuv%f(>59)mZv#kliR z&~1%E%klwO@caO#9NLQJ6~{2zP!FA^cIYBaQL9}}*w!To=U$7@-8W+^zmu3BaR}$V z&BN%-6=+&e2NTCHNAi8Qstj=ol2}ccf&wsX;tGs%Ji%5`cDd$HF=Ayo2Wh_?`TJ+W z`g>E|VH?PE2tv+Dt?ys1i=Iziu*^DV^XHYBk zm+I>1V7dwmFly#IOnG$~H>|GV2z&v^n{O5xpDLW>l;~+8j);AJj@&bk(LB-DQLz0N zBz-#=vsO32I64|DNB@Ji`^0gl*GepKuSMeeBuMyOmG|{lbMIL&wt*dk_kO^DrKd1U zuCHsQk^xxpSD}GXu5k$w=Bc zFy&M*TK;_@tS2jD_=6&}Hrs*)ar-gM!-NLqme9}CBU#i$B`vGab>B9i#r!XN+OOgM z?bRL8&ofZBVk8pY=(x-Mgz-;}P;Y&Ly1FOvPSwvC*yuUtjJS*1uNE})J}ttAb;YdK zJMsO1Jah+Fa@20^;kfhfedK%VAX$1*@WE?Ti{-9}STG#DLyK_h-TICKIVMBFNK`UT z2F=XjwX`E;hG0|Z~w1B(g(ZA&vn?%QBAtW3j^f!8tP@<#OkI2id1 z&d88NV`#LBqX&C9veP^qzUiKhRtX!>_4a}=t?JGAsshzB{tj;M>*@I8dM(Gw?1m28 z*HakRxd*xm77EhpurcgbBXmVq!-#qw4%4!$n4j?w4UuQjd#VxLEo_1;nvQY$(&*W_ zCzAHQLg!xv=?xi6-j766_$u_DISmWlh-7{g@)3WFklJNXdHt^%oIMHsx-G%Lu~saI zT!%&9N1^hxU|D^p%H$mZbSb4jWAWH%bYC_p}XH$G{jysL`J;}B#=QhpYK-RL z6jQff!Z@t}3xBs^naNfxZZHFN&6}fX+7QMQyjZR_3*9HO(bjqou4|o!o(7KZ|6Po( z2U7(}8Aq*~?}?Ct)@YdIfw~#(F@x;Gc?V-LrPc}zbcLd8vlo(+3)EIa(=a%uEJpe- zM6zcS>bKtz{On3WrsoM)?GHlf?1i~!N+AgtDztq?La|gr9iiwdzA4;$&j{P&C&Kh} zfr$Iu0hKl1MWU#OiM2YQrAaqbX1^BdKT9#!BMHmY+=re=4q^W{@fg;v9hx^aLsP%W z7*Nm4(P~71V_w~J=*wbJ`|_{q8eJ^5&X)c_#+E}ttsL5OZ%63hOL(=+Lv)@WgNE<7 zge~H^u>EyfXwgZivPGB}Ys1vZAF<$4N3<9hBL8_R=1ypVDOXyf68AgCb?btjBetN@ z?gvbnSRY*%E1`0}NY#F-C=Anf3Nj$nsN0+(fq-ql9#TQt`wMNuC)GCmsVJCL3WF2n`u&n7^uAs~+0|3d8W%+)21@ zPY~93VZvEi2MA3dXtSG}uM^%`6blCSK++{o=+A`;XTc_+Z7V1E z^B+_#sG`utpA``?6;U7DMOa_96Uy)ts>`E-&~`N!3Vc#6Z@&w3&|aY(NL95STT~vH zrE2M$RsG<5!fmk#rEILq%O6&W*Ht@r{-NpvTMEU$v9MMjD0n+fB`0>O{82TPL@9PM zXq%nj4m&T{qAKF6s{L_VC5xu2e5032_6<^bzecKgMkzG^kSwf=RtiJ%YQaBOQptqb zDrujflEnj6{lcTdGQlDEQ6Hg{Pg8k=+Cu+hRY8{gX(!$ZU5oi_4Co(+JlrPqf0=|e zevZ%*Z;QZ5ebL$LoS1X4q2tfLeH^411pg%0_wB!`QvJN@$FAVIQGa3h(iF^UmxR%q z`XTXajl^=$uJ1EU@JV~H=9DrHPyLS=CS`8vZWEzJai~qNfr0Tqpf;-!CRXr4z0n7? zdo9q~*+ZCu#|qu60%55ANVxaQSid?)wN{=Y455nz-#klIjJH)+>576>|0v}ob^NuI z2eej+ZG_5~c?!+AUL}9T%e?=H%FA?7dER!_aB+*&gB8N+rwHxYHrRj``F0TeRX5et?xi5_q~12J zB$NtIRMPx{o&PjeHNUnB>+WztLcXhHceJYHW~O2yl1(xm*-7#gRpaR@uQ*!D4^&b{wUb}EsH8%5 zRU2=Ua!yr=NL010^7@r)RLys_O1ceJd2Ah(RC#VEe;iba?_`zVGN3K_CBe}DoYskgs$kRUy@|)D%4VP3+%~Z9wNvidzJil#w$#Y?jx-U%4Vg)~< z7bGXqPG+yLn+D$yTK5q7et@txY$NnzbVB>ERwa4=*vYg~s`Z_$T@Hk(q_B@ly5F=D zmTMgLe&<#MTjv=khg9-sXkmKiM>?5sIO}A@<3+;8Ba=2Q;GisJK>d7 zUKFE}K%pv~q#Wm#mA3k$oeYnY-^B!K`_HP1vz*XI%kf_>Ey#jnc5-Q_oqQW+C&O%Z z?Wb!hxt^@r8a@=Z3Qj>5%X%v3q+RQJRn>01RQZh3LfN)ebsbiPa;J+>L=B-}SwXVv zsU)PSszEiOP0v<&|9(=3U#aAZT=Q=ejhOL3HF7w|)nUka{@7gl{=&q{YJw*DnNrHF`7gpuGFt0l#Ojmvr+S=a*u@6wm z$?kT=H&p1mloINwqv)Q$3qxMXn(guz;p$a`kuvRA%AQ^rvekh47CvagCvyFy503B= zu9t&_Yl?>;xedGWxb~DN+f?3WlIqIqEy%)^LRULU7|N-_`k<2Fo8JQ^uyf^17lKU3sOwsz&04{%LRFYANIIhpj3Z zdD~73ee678n5xvxSIH$=)7HGIlI$QmdHau@ms+OsMpIPsR@z&;S9ZR-x5^K8Q^`!J zbK?S~uFkd-EiaH1uC$Z9#dcEMOeGIq+ez>Jc0SCg5<`NW9KT`b7M)7AW!i~xp`GMH zHhI$APX3&uDnCiPujaOE)mEzHr!2jAIAdLKJ!CG9J=lbx(+r;>E5{eOBkmn=pS zxv;CU?I`8Lc2izM96eq0BExkwDsqG4Cz}NbWHf*ls3Re~p0aTS$5)>Ws0p8yf&_6f{Y>9bH*USKh0Y*@+U1cGkLcnn3 zHbfpRg7L|<`v@?N-@{E?aZ1J#`LX^13wxA+L%a) zeVPy9F=t?TdNu?Gr$O|TNk9fx2D0^}-5vUnc@NzNTbta2oN2q@{h&-pscHjl`vR~I zd&;a)gPCXdmJkw_4$&7kLdcr4kTFa^;4=;UaVVHaZ2>J<0rFI0?=jhQK|uJAlD6m-ScAf#g|WLXZud+R0$&h!92pd6TN zBcT7QbCA>O5LhzvA?t^okmXSc$gr}i?avutGhG1Xw*wG0_X!k@oC!s~Gr>Ec7Pw+& zGE!|cq{gL#_1av>xoC%EGYKkEUV*dzZDy)Dk!3|Uf!v{eVdR)tnD>1j6jXZ($r+u4 zl1?T-V(v&te6|z#dL5)}stbncOW=J-DwwL~L;tO7z|(aH;zpMS+xSYrQ+H7%t{p2L zw-J)syaxXX$zb}L2}uDvAh_Z>a8Dl$whlL#cJgQ7&lXZrH5B5KJ)kJNH+XKj1$^{Y zsN5|F$dQBKdFodnA$lNh)9qT~5N5j41d{sSfYKRdgM!^@khHi`(DH?A!PfH@v--qB z?%S^5YI2)do4sLSHSfX~|AU}a{u@G*ZQy^Slw8M&;B4MO>P!j?sk4d|jT;G`<1BEs z#wVchXCc4wc?e&(7R(K*g6ZdcLGr;K9XA)U#(M;PX-9(iNxvXV{yxxkj{>s1qcH5L z2E}z#pl9tWK}CU=hh$}+sXDh02-I6&E)PvBVgHU+(9(Y%}34U#Fga61zpmhyq zu0FLP;LSNmytWF$mKA_0HVcBEZU^(1uZ&FZE40lWAgn_Y6kJP#DCIuXzEw9U&c`No z>I_6onE<5ezsB5&Wg);f6a0%@K)-kdUA*5Qhy;#gJhqu?+47VXc=rZV?+o_k%?b$n zw^Wce@i`D3d++BV?7H5Q`huZ7%{B$(%s0{q7& z;MuMQSR0QW78f8^Vkadu)iT{;x+KMZvbyP0r*QCyXQgA{3W1&`wz3un!s$&?GQfo0%W&n8C1NpRZw89JXn6>8Mte^<-C{Ki(TWP z=K4}W#mnum=s<-a?spR+)mxxl`p)7jPa_`5LG@NbPa6K%4vtFsSYU2zX9I* zWm5lIf$n>6(5Ekk%B!T`>cb(->lkF5KLEvt1myOV{@23`Y>{?m`aX{>zp`2Snz7*7 zH5FV5Q^EA*9Mii00IuizA!Yp(uwJ^$w2qHe{mdk|8hQ`H9^Zk&DW!wLgLgw>k5Qn% z`77i7-8Aw_8a%9DJ}7F99X^^W1m*5N0PfAcVE$YNw8w3kf%kyroA-h_Ap@@35cvE| zFuaQb+o%srGpI8E90y@1)4}qsCHS_Ahs2ko!1h~f2=|T$XVuLRoU|AcFGqrv4gv4* zCZO!uPPK>ggtKl{Ft0lTNoO@M>7GOIzstZB^$*k5zN1;~`asdFy|6BRJw#Ps0`AlE zK(l>e(N`xy4Oxb(o0ow$azpItZ9s;f2UGhs zGRCY2^Ti5a(MCY@FFnC^%*|3>1b}`_5X3G&3`w2tLr$X=V16+Jic)`+^Bn+jrQ)H` zupfL&-+)ltL9op3u#dnaSj8)kB3Gw<R$}PwEc^|Ny05B9Sfxs67z~uLwg^eTN8kZ;K{D656r~|hB8BF)} z4Rif-m_;0szR)WByMz8=O4WGA(@s+D=rdL@%LwkWGA9%m@0&1-QATwhLu zq4i^My+0&U?l8B%4oFcrbzL0GOl=o2ezY~y8Ko{1M=--l zjTw@TGv)qMO5$Eq>&`$%^18FEn*^Ngy2*7q!pwhPXS}8lbL)07UFlk&Z#aXQy*fci z>M^FAUq;>T!%`R4XDin?(2(7MV3=CKT#KrK+5M6^bvoL4dL&cTmNcOo`v6uH;QSN?zY*`gR+c(#D4o zdY>v;A1Qa6sdY$eMqE~-Yg%=t-EYG9_hD44c$q5xiIh7QQDt4e{NG4Q{#`)%qcN0p z3O4d-dPcT0dknt^OoNDta;NXgyOF+@NGwGS&a($&}mKROgWXe6I8}Er&6u zW?_8rZqAW2nZ<1D;#tqz7a>PT9~^rf@;|!4 z^^^6jf3>|Ph}&ItpPeiw7OKCn4o$^{h%6++6F zU`XjMbF=q9t4d}q2%FmwLPM5-)$=<`^lA;ZtR7JCxHa(j=TzIYnOXMkVp{%nW-V2g zg%~;0c11B#ZUfV5lw#V~H0nAa^{H@`l*w_bWy<`%Zv(2eyhxQk$0%vnRLbHSCF`mh zm2syiUo()B=Svt_x{jHiw3E4T5YuLSr@X=>%BMGB`c~e|yy+MthJDPluskUIC?$gy zQ*yGiT%$0?`@N%D&)JMGct#DCE-$rakV+OfNk_w=bFLM?94}m&vSee`DI4BxXt)%t-T6%(|=t z*M|X28?k`#==W6n>pazJ=^4QvnLG9~Gu2(g_{dz!t(BM-obb(G)rqGW`WZ%8oZwdzu(bQ~qdCX_66Q0@Iic}{gox|}v@G4g+| z?w8kBp@cs)@?)DQuh*AqUyo2O{3&0%mGVB6k~=SrJhLLz3~MQ$+Jf@=T`BM3NqNpj z$}7#FWY;E25}zCO$x%#kQs(~o1+#kJWPGl)nL2WOwN_B_b~UwK>I=%^%AlNjK$Xu= zC~32Rl4^aZuJA51&52>|h8nY7e8%)+dPsY|OO@w~DIe97DxGgI*RdsXe`Xj}K6x^} zD@FPwUrKHbqh$Uiqw;5YrZh>XfX7>+NXiGo*drD=T$U{zlt|l>1L)q0`#Ul2wTAM1gVYCA z`XQvcvn!Z#X&QT9b0dV+pAY(bfy|{!Tk`m5B+ir6{5c$o=gfh^m?JQ+r4zIr2Bw@@ zz>2?=2c4}P7y6&N!ywVx7`!_Mfn`s7(1t!?q`u4% zGksK|JJ}`Vz$h4B@Yq@C7gdh>GTzH^Bg{1!2#*H28J-9Xw*5+!e5QNF;N zhHPHNENhlBZBYW%S1iZ0XMa&r<$;m>X=A4HQ<FYOTIK@)~aI}pJHWX z;1$ZRU8MTdv(j$wQJ#95n$jpEr&cm@Bb{l(rOgC(pu~G)wrfBWX6U(?+2W5f*H1x= zSDelCI|j-e!%3~fx-xR%FUm^|Rb6G}eA|06>mykcwUG86x!A^N$$t4B)GMa zxEdHqOp=i_lGk}98p*)}Mp7ogNG|_lB#-tOl@Ob>?LAbhvy_sH!*>e2ON7=;uC7blG zLkaOZPRi^ul23z-gbe5^Z?z%+-GB1m{Tn6sQ^qk1E0*kkmF$oGw=Y$)A5*gL^51?#NngCAU;ba;x1`@%(ibi1U;a;jQugIa`h5TO zol3^^U;m|~|4`DeD5=9s>gU}6l6s@0o+!zKOY-WH{H-L9E6JNm z^0AV9q$F=BiHjxiv?MN+#Ebvy*QB2+@iQfMR$_l8dRU@g|H-wK98-j(tfb^#rIJV5 zJ_;4*bcKSX9jx^K`EXjh$86Q@mu$cH7*@L7|L43D|NFE5=RA3B$>smgXY&145Bc;Y z9yZFus=Whg;i2Jd{juw;#n!s8_+}f({MZKGn!CV*EA3(8avw;3S_>9DYXN_J>jHb6 z6i9psY|I}4^^OjN(<@uUgGO~=%gQ03wfqAz#|?uzzXDV!^((Y3mcd8?^h_5OUA@K&y4% z*Z}u#*5+#rd!4<51$ez<{R*0cY1}9{)A<+pe9i}gWxo0c&}kcFOkPfw3KM*Cb&pfTTi(qZps&^DiU(Gxf8 zv;A>9*rA!!Htu&+e)^%YYjwi7OU!&oN7~>ggF`lV@(%325 zhu%%ENq>_1Rr1&%X(kycDN#M?AV^-eGWRj$bAlw^funPh=v Mie$FLBxx)8U%ncIasU7T literal 0 HcmV?d00001 diff --git a/Aetheria-Economy_WwiseProject/Originals/Plugins/SoundSeed Grain/SFX_weapon_lightingGun_discharge01.wav b/Aetheria-Economy_WwiseProject/Originals/Plugins/SoundSeed Grain/SFX_weapon_lightingGun_discharge01.wav new file mode 100644 index 000000000..e22e69d8e --- /dev/null +++ b/Aetheria-Economy_WwiseProject/Originals/Plugins/SoundSeed Grain/SFX_weapon_lightingGun_discharge01.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:caef5f00b547baa668179e667e1bf4b6f5e72e15886e5c5a5481d8ddef6bfb02 +size 434132 diff --git a/Aetheria-Economy_WwiseProject/Originals/Plugins/SoundSeed Grain/SFX_weapon_lightingGun_dishi.akd b/Aetheria-Economy_WwiseProject/Originals/Plugins/SoundSeed Grain/SFX_weapon_lightingGun_dishi.akd new file mode 100644 index 0000000000000000000000000000000000000000..10efa8852c140c8b66fd9dcc81f10803d07ae592 GIT binary patch literal 2812 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 Nk_-Ea17`N$y$6EblVkt@ literal 0 HcmV?d00001 diff --git a/Aetheria-Economy_WwiseProject/Originals/Plugins/SoundSeed Grain/rotor_1.wav b/Aetheria-Economy_WwiseProject/Originals/Plugins/SoundSeed Grain/rotor_1.wav new file mode 100644 index 000000000..8c553ad8e --- /dev/null +++ b/Aetheria-Economy_WwiseProject/Originals/Plugins/SoundSeed Grain/rotor_1.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:28d9bfed865fe4d653b790ab6c20f546785fc0b2cfa5c2fab798bf329246af67 +size 1728044 diff --git a/Aetheria-Economy_WwiseProject/Originals/Plugins/SoundSeed Grain/rotor_2.akd b/Aetheria-Economy_WwiseProject/Originals/Plugins/SoundSeed Grain/rotor_2.akd new file mode 100644 index 0000000000000000000000000000000000000000..a213246bbf7c894273aff442eea7441e6432e84b GIT binary patch literal 40912 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

9U~~;rY~DYzWd86{5mz2! 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 literal 0 HcmV?d00001 diff --git a/Aetheria-Economy_WwiseProject/Originals/Plugins/SoundSeed Grain/rotor_2.wav b/Aetheria-Economy_WwiseProject/Originals/Plugins/SoundSeed Grain/rotor_2.wav new file mode 100644 index 000000000..b46fc867d --- /dev/null +++ b/Aetheria-Economy_WwiseProject/Originals/Plugins/SoundSeed Grain/rotor_2.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1a7130068ce40d383e7a342d98de3381a308fa7f9b109b0098061a222c8a1e37 +size 1728044 diff --git a/Aetheria-Economy_WwiseProject/Originals/Plugins/SoundSeed Grain/rotor_electric.akd b/Aetheria-Economy_WwiseProject/Originals/Plugins/SoundSeed Grain/rotor_electric.akd new file mode 100644 index 0000000000000000000000000000000000000000..2993e5c58f681cfd357ae007c4c0fd0f25e6ba3d GIT binary patch literal 9952 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 Je8_}3@IMKDSS0`e literal 0 HcmV?d00001 diff --git a/Aetheria-Economy_WwiseProject/Originals/Plugins/SoundSeed Grain/rotor_electric2.wav b/Aetheria-Economy_WwiseProject/Originals/Plugins/SoundSeed Grain/rotor_electric2.wav new file mode 100644 index 000000000..288708021 --- /dev/null +++ b/Aetheria-Economy_WwiseProject/Originals/Plugins/SoundSeed Grain/rotor_electric2.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c3ead9532278d6a4c6a6d3c4956c39fd7f6d809f1f89b4f8de17bb7998e09d6a +size 414764 diff --git a/Aetheria-Economy_WwiseProject/Originals/Plugins/SoundSeed Grain/rotor_electric3_noise.akd b/Aetheria-Economy_WwiseProject/Originals/Plugins/SoundSeed Grain/rotor_electric3_noise.akd new file mode 100644 index 0000000000000000000000000000000000000000..03de07a689504abe5757cb401960bba1c2c6da83 GIT binary patch literal 20552 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ü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 CPw;~P literal 0 HcmV?d00001 diff --git a/Aetheria-Economy_WwiseProject/Originals/Plugins/SoundSeed Grain/rotor_electric3_noise.wav b/Aetheria-Economy_WwiseProject/Originals/Plugins/SoundSeed Grain/rotor_electric3_noise.wav new file mode 100644 index 000000000..8443a4028 --- /dev/null +++ b/Aetheria-Economy_WwiseProject/Originals/Plugins/SoundSeed Grain/rotor_electric3_noise.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:89f19f2035d76c6b0d5875ac82516e9e7846597bc5a9eb8ffddb04df996185ca +size 864044 diff --git a/Aetheria-Economy_WwiseProject/Originals/Plugins/SoundSeed Grain/sfx_spcp_drives_dc_motor.akd b/Aetheria-Economy_WwiseProject/Originals/Plugins/SoundSeed Grain/sfx_spcp_drives_dc_motor.akd new file mode 100644 index 0000000000000000000000000000000000000000..f36ee81f022786010c4d37cf55cdaab9bac018ad GIT binary patch literal 4884 zcmZwLdvq1my$A3i0w#hwA}^u9Kr1R1I<%k&{0@VN&nTMJ&bj#Q|(J{WGr+M+T% zmI*YH5tSgX4q#rA#|g#|2>UpIAP|E?Py+_S0E(4@3>F1#ytm)qFU=oat7omxnKQHY z?0xp0-~P>>>8xqmV+%Ab16#KiU-*Q&rgh{4kL1*fmgU0!07Zkwl=)-fy1 zyuMw9+fbrBw)CWOL3=S)ac-=lPwG_&+VLh4SG=j1Q8HJ!LzgQLjQ!=p*>_yAwX)cI zZwkA1qhevjF%c}@rcx01E)yeGX=!FoYEcGQqtFf{gR>$W`jra6&D+xIm7~f9tH@9` zB)4x-Hkb=H2={vQ3yjXYgqwXvv3UFzrQHqDXG#aB{-OxCf370%{me8A&z36|AE^?~ zT_=>ww!Ni1uu6+W{92)6{!6Ds)M15+A-ttY1z^nBE&MfG6f<7T6H)xSV){3`L|k2| zm_DIhIum^L2gRcPFQ^!_XYUYh#zDoL0j~*b;OEMO@T=V-Uc5}P;PIsJf3sFGXX^$L zcW$3%Zp#J5v>gq??>9v;rxe!|lIL@k1>Va$h10!SF>lrp;U?c#EH&ez3Sh)LSEnuT zt{dFyv6IS!cuJwtl7%Wdc}m6LcmAEw%(IH^eNRiXiPJlZaO@5hK+c#%+Jk69onrPq zIl>=Ts#tMZpR~`)8x(WC_LL3Y@J8jsi2N(l7K~UjByGVn_w-FWU>>|NeKU+`mnl*i ze^tzV`}jJeDJ@iwhL9 zE3(o|o3KJ%*+=R)5oF>2$s!MKA75i;pSx{ zUt}x0Y;CKr3Y5+6ELBPN%P&OO>zoQ$-O*Mjt5gVDA>tRJX-z5y)Bj9pT_&sOy2;A= zqEMNjpDs}v*fqAW{$8k*?i>|6uF=)TsBlHCyDFcF*$3<#2Vg!Or z>_ckgX%#~9%l}s9wd9MQx@x=C(K3fDrW4+NVB-pImHg2yEe_V zOyn5wv(Bm%csXZL|5;^bpHc>xPrW7lZ^~2(Of6qo5O?}i*i8o%bEbYGE;n>Z$B-P` zBRw7VK4zu^&}LyAL0_MdW+Sq*(iVi1j;R2`G1)3&^ZTWlG2;W|Wyt88z8Ma8>n{AE z@2V6;T95Q$sL{HnQ{dG05UCvGJofPk6+kr2Z*|`V6+z~YGt#W*HJQS^_k?23pDL9L z(aKWc?m!HJRWMH3AZvq#=SFGZewsa6beKdogipUN^rB_NY7%`CESy<7h?Bw;Z?puKDhOp z$N_i2QgR@k)j$#3@REp&N=Yj&CHKx^5!60PEd0O|et9u@EZr(|HIQC)QF7+BBbZ2oL6qc*`MT`o_))7SD}|9bP^#5rSQJlpJs$$V@Q%+Gb+G zZHPs%ZrV)-xT98(1Ie5(ggc>`SZe%-c@Vg{nM|0m+>Fz>*8w~Q>dppcT_ zwd;)0~iA>o=1H+APeWnR#Ta_eF?ySunAHQed5WO1OpJ zk_X8aJ;99mh$AqEU@k#?vRZhXbBIN6FA-k%&E$i2Z>}))x5)zkz-uBEHBtcP;#Fj@ z?wu1%Uwwg?*?uP(pd~*P{?yMX1wr*%iXgtVM0oFSCm-}RRiuGCM3Do=kqTiwcYT6| zKSDkR{eQ}YKd6yB)>J`0xI1T)4f>lX!-g*;1N5qTp>3?Actag&?>{5lrMD8ZH_s7{ zy@+h^N4`rba7xw)?UP1g_L%j;`gARs5EQKuaX-{)!0bkfpKK(z<4K`SolPvb_lQVZ z`$=reB@2SWv@kkuBy0CFFxk6c1b>lD|Jj%&*iFE5W{LA2G8(VhL<- zKRImNE@A%`ISXn^M3?7+ylx1lNhgFb>|92f}zh6gIk82Vvu=yT$p1f;L39Dia zF{k-!VI>X|i;gvlWytZkjy zw*G2cAGNJJxURPKL)-nYEkC#A!M1$U7ME?;r>(zj|Fa$HdK5YUzuMr>gL5CI>fuXi zdoYqR{&jHLh{zxXjU|y zo?D~Q4_b#)8;>oI;q5RMdO=_42|Zu{^n;Et2yOxsEchV|fvbR^KXipoa2Je#QE&tF ThMQp|d=C=P4Xy@`w{h@KPM0cg literal 0 HcmV?d00001 diff --git a/Aetheria-Economy_WwiseProject/Originals/Plugins/SoundSeed Grain/sfx_spcp_drives_dc_motor.wav b/Aetheria-Economy_WwiseProject/Originals/Plugins/SoundSeed Grain/sfx_spcp_drives_dc_motor.wav new file mode 100644 index 000000000..a75b22d47 --- /dev/null +++ b/Aetheria-Economy_WwiseProject/Originals/Plugins/SoundSeed Grain/sfx_spcp_drives_dc_motor.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:897643335ebd677fa6ad580e05bf514c2d3c64829effbf2d2880c7fa23d32a95 +size 198830 diff --git a/Aetheria-Economy_WwiseProject/Originals/Plugins/SoundSeed Grain/sfx_spcp_drives_dc_scifi_electric.akd b/Aetheria-Economy_WwiseProject/Originals/Plugins/SoundSeed Grain/sfx_spcp_drives_dc_scifi_electric.akd new file mode 100644 index 0000000000000000000000000000000000000000..dfada414eb4b0b3dc41a862c8e9275ddce5afde8 GIT binary patch literal 5656 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 Sg8EP$IzweJ@x{S`mhgYA%9jNI literal 0 HcmV?d00001 diff --git a/Aetheria-Economy_WwiseProject/Originals/Plugins/SoundSeed Grain/sfx_spcp_drives_dc_scifi_electric.wav b/Aetheria-Economy_WwiseProject/Originals/Plugins/SoundSeed Grain/sfx_spcp_drives_dc_scifi_electric.wav new file mode 100644 index 000000000..46ba39b63 --- /dev/null +++ b/Aetheria-Economy_WwiseProject/Originals/Plugins/SoundSeed Grain/sfx_spcp_drives_dc_scifi_electric.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3f8a97c38971c03d3ee4a8576dc6bccc45e8528c78add6e8e806f26cdc4ac4a9 +size 231374 diff --git a/Aetheria-Economy_WwiseProject/Originals/Plugins/SoundSeed Grain/sfx_spcp_drives_nuclr01.akd b/Aetheria-Economy_WwiseProject/Originals/Plugins/SoundSeed Grain/sfx_spcp_drives_nuclr01.akd new file mode 100644 index 0000000000000000000000000000000000000000..c7e094443c1c414407119d6cd6ab4a7eafb152d1 GIT binary patch literal 53572 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 literal 0 HcmV?d00001 diff --git a/Aetheria-Economy_WwiseProject/Originals/Plugins/SoundSeed Grain/sfx_weapon_target_locking.wav b/Aetheria-Economy_WwiseProject/Originals/Plugins/SoundSeed Grain/sfx_weapon_target_locking.wav new file mode 100644 index 000000000..f080ba6db --- /dev/null +++ b/Aetheria-Economy_WwiseProject/Originals/Plugins/SoundSeed Grain/sfx_weapon_target_locking.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:034a23110f1b031a7bd9b103ad8b70c604aa4caad2aa894e3e85f89db0893f19 +size 470066 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/Aetheria_spaceship_Drivers_nuclear_start.akd b/Aetheria-Economy_WwiseProject/Originals/SFX/Aetheria_spaceship_Drivers_nuclear_start.akd new file mode 100644 index 0000000000000000000000000000000000000000..1f290a56a19aa01b7fdb8ac22f63ec0a3cc2cbd3 GIT binary patch literal 6868 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 literal 0 HcmV?d00001 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/Aetheria_spaceship_Drivers_nuclear_start.wav b/Aetheria-Economy_WwiseProject/Originals/SFX/Aetheria_spaceship_Drivers_nuclear_start.wav new file mode 100644 index 000000000..032fb9d30 --- /dev/null +++ b/Aetheria-Economy_WwiseProject/Originals/SFX/Aetheria_spaceship_Drivers_nuclear_start.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:49af3f81505d4d2ed796d1f5afd9cfaefd46add66943814b6cc18f6a43205af4 +size 283100 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_railgun_miss01.akd b/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_railgun_miss01.akd new file mode 100644 index 0000000000000000000000000000000000000000..029d226927ab8a08ccd740c20772e9b00ccac4f7 GIT binary patch literal 3140 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 literal 0 HcmV?d00001 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_railgun_miss03.wav b/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_railgun_miss03.wav new file mode 100644 index 000000000..f09033b27 --- /dev/null +++ b/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_railgun_miss03.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a5eee6843679cf39a8d64f1058510ab0cf3b1f4be6ce00cce9285d763629abdc +size 108044 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_railgun_miss04.akd b/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_railgun_miss04.akd new file mode 100644 index 0000000000000000000000000000000000000000..2dd31f46d3ef19bd25d1fcc8be2b3f123e3db0a3 GIT binary patch literal 2940 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 Do;Sp% literal 0 HcmV?d00001 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_railgun_miss04.wav b/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_railgun_miss04.wav new file mode 100644 index 000000000..a1dc2cea5 --- /dev/null +++ b/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_railgun_miss04.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:aaf52324ccb1e1eafcfb04cd6143e69336fd9cfa8fb54489c444d3bf8daab3bb +size 113228 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_lightingGun_boom01.akd b/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_lightingGun_boom01.akd new file mode 100644 index 0000000000000000000000000000000000000000..63466a78490472cfe2cd4a7c41263824e3b6ff27 GIT binary patch literal 1708 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 T!CVmM*^|DU9~Z*)=2YB&f3Vf6 literal 0 HcmV?d00001 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_lightingGun_boom03.wav b/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_lightingGun_boom03.wav new file mode 100644 index 000000000..c0eca6953 --- /dev/null +++ b/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_lightingGun_boom03.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a94b02966cdfd918ed20ead56d9f895227149d43415afbf07aece0c8e9fa909b +size 63020 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_lightingGun_boom04.akd b/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_lightingGun_boom04.akd new file mode 100644 index 0000000000000000000000000000000000000000..eee99d4093fb6f0a712f80074af7365a64effb96 GIT binary patch literal 1708 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 YI6W86MRE~bASZ*lP%era$Qii*0AdEyv;Y7A literal 0 HcmV?d00001 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_lightingGun_boom05.wav b/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_lightingGun_boom05.wav new file mode 100644 index 000000000..010155575 --- /dev/null +++ b/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_lightingGun_boom05.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5da21f6cfc2fc5f59dccde4daa2186f1c1661b7815d2987e979686f6d9b50380 +size 63020 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_lightingGun_hit01.akd b/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_lightingGun_hit01.akd new file mode 100644 index 0000000000000000000000000000000000000000..7e1f5ba66a1b325a3762156eeb235c3f5e387479 GIT binary patch literal 5904 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 literal 0 HcmV?d00001 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_lightingGun_hit01.wav b/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_lightingGun_hit01.wav new file mode 100644 index 000000000..b282d3c2f --- /dev/null +++ b/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_lightingGun_hit01.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:82c7fd2877b19c60fbd2253598091addf6ffa708b2eb7e69ca6a0bbe3021978f +size 242666 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_lightingGun_hit02.akd b/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_lightingGun_hit02.akd new file mode 100644 index 0000000000000000000000000000000000000000..328e991623600bca086bfdc9ded795356902f09c GIT binary patch literal 6968 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 WI;o6OQD1_QM3uT&9;-53<-Y)yj9

kYr?|<4&9o%_cLpjR)2V#@dp^Xf?l(Ww6l zSHwl|=FVn3+tP!V|Ex##-^>MkaXofXYXUVp^Q zk9kBT>s^AiM-HRbB??uCuA?MyJ2n*( zUN-Y12JC%_DehY^Wr-H!yMKX-lsYDyS#d&LzLJEzdPSbGG;H!1jWY^5^VEg!v2lYh zHxGP@LbZ&W?-|i!b_o_(d!wpV7D{KmVy?}}sM+xu=I!sqa|d6*ukD<8O3;4Pu@R_o zD`geClCWZ0AXc1xk0DXpvHC%TB6DjyrgGxqSij^6t(pvRyLd}g_Zmc>(1 z_aYs2a|p^tuVVUS%9@6H@z|kPuxU_hu1)6{cXtIQf*b1KBI=4|*f>$ni?Vz2lJ{p( z9@`bwxgmVx{+YaH^EdyC9TMD4t{82{@EG_EwF*E=6>YIz5- zRTrL`(VZ9Cb>%W4fH&Op;2lnf^RlODsLm@#6^rWL zV@lCm9Pc6U8K>%aB=T8koVZ5EDia5>}@G8 zY37(PH4E!@$6(y8bkwZQ!;o2rnc!1UrZxIu!QD)ZYURvxuUfH0*PTay=f``71@Tp< zI&kygMc6dJ12r}IOk3=PisP+`<<<-)*;s)O_c?N14=4VYyPTK5zK;bbZ(`%uxfrO8 zLQ|O&n!EPE^33g+SMJE~bhG2Ps=WD)pj;H{&tTvxJ50Udg1T<;C>y_x)ZOWZ%A6c_ zs;)Cn&-La0^h@q%iQtZkz34Ho5<{vL*yP?BjTb(JX}pJpm6$8Aa{3muE-_=&IX(IZ zcIV0rAFkcFh+kXi$^AsVon!CISF{lS^L!yz8Uwgx+iTRXGhqCM{+K&tJ$fsRSUE2b zT}Hh}GNw&! z$s6GqK0D&giz1I<(IQ_S-R%mx#$G_h%UKwlQ-Lbo&nTY}jKaM2%v@KCmFzY~H?`vO zKnX|tk$g-<0DtS&hO77HW5w4lsBM$WlH4C*&NUPIwyng3aR+f&mIF`pyNdBdiROV{ zVrJ!XvfvqCZ zyxWL!)p=AuD?+pB9!`N4JZ-BdH{N@|RCk7B>W~VQU3-m*2iu^eT_V=LIDpDcXHmWC zGSeqc2x~@4#Oi?#ZhYTX9K?5FS1K4w_5a za?|ho(0cg^Q;Zowk}5=*tx;h?t7txcgEKd{KE%@Qdr|RIFP^BeVw>@HJfTM|nxFWi zDsDD2t!;(I_Ip^o@D>}tFknp6DXiw_z(>E?+- z{_8M(ez>UT_Czz%o*6x}!|KYc_-vRSHQxI$B_s`-cb!My*L%@0n__8DtY`}bqFOeB zR8)<|zz4l?)nZpZ_p}x>v|n(ytQOpVpC=C;REEO0WhXS@%fiZEF|12iikkU9G4tdh zsQucE7DEl@eH*}Q$4Pn0o*w*;p)0Q_T#eQ5w_?#+4eEPOLgOdVCQ62({Bkdp*2pk% zM;<2Sh`KR$7skxgV&s~y(BSbcnh!3()KD2(+6AER*&P@&JrWHs2!F=9&g21*Ta}9 zTaWsO!C3m>CzL$xic(Obk*b-c$6Ti0bc+e&oLPwB3bTZ7WYU%yO#S!}GnH>;vd0ry z>2uLW_3qZl7Y$IFJZFv z)0pbEfPtq%QL#^s<`$w1tn7obuiBt-=sTu$-_0!VjxfP>beS=)Co^96XMw|gv0zkt z)NSmAl43^;JRm{gTp?5F+M#xk4_fEzm_BhEQ)g!~!znA13~z(ls839BW>uK3&>c(n zeuIIWqVAO(mDaInnCFeki-(!|JEJ&n7E_%$%`Cp5Ouyt7vrfuoit(*c|La9onn_S& zeZx}c$WeOu0aH9^$E;URFh$c7X5D#}sdnsS#@jbpq_+zi*#c%5afc}`|IR|n;!yMP zG?RXGK<%mJOt>(VNnhxhuqn4p@V&$|{r+S^=mBQL^GxybH8Z}=V2a{D%2a*tGND~O zQ%}Cjq+7N#t-Ui!-FLE(=6a^NwT8*uZ!xL!HdgmpThx>HOyj$b36-WY({Ky3#dyNs zw~4YjohY{|p`u0tf$!CzmDxddju(w6xdIWVU8rl-Nsz4U4u&qbiM2ommOuwE_ZaJ%)U9V0s#djF3ooh!g-=0jj zo@`6&^CVQ_bPSqHYazH#3aDzjf&R=MqUz&C6kXq!#kTUGI{99R^&CrO=??UX#hF%r zUj*fI^TAp?145gKA zAZNs8(7&7w5#t8X(2LEWelU`5Y;>f7_!i2lH-J#H0Q4VoiE4rRpLO4uR0T;FR)VX; zV=#`?fpcRpjXm@bq6gPNqD}`fnFGP>sv2spJJ=7wDX z)%zqUVg^tpcLl?-Y$7{6oQwfa8t`Kg1SGtNl+(MQ)+3S@9dV=?lHoL(G(e$W2U=o( z5E=*n3GqpbApYwdh^IXu^F&MPxbP4Z9X}6=!@dXQoeyB}-4CklMNrY5Kz)8cnxwu5 zs+2;ATssCFXXk-(VlbHV%b`NE2poTCNo9KxwD(^?O4S7@hA5OyjS^hL680f4Q zesu8D8B{);fyd3Bw1r+m8@ddk^S8F7@?(^ip2!7{b*G`OVJP)$>qGqm+~~;Sa4O%i z8jQ)Mq;cgoP%iHaw^p^I!F{^ZprF>&DjP(XuCk+%Z3od%g+P=3Xh-E;mV$cMc8Iw? z29zCEi!yT!ngc$;!(@Ttr`9xLu(-xvtD(sUK=s9T@G6#4x58K|g9|XFwHGZ*wnEqA z_SD1WELfM7Lr{(b)i;cVBinn@sHUfIC%rQb{QY;($*ZBLCyNNLP(weYOI3}kCp zLhiENAPr51*vD?PI{XFr=6!%BauWiVO$E){Z$Lk7IZ@{yCmO9&nBY2rgj5MM{hR}> z928FDmrbC}$sMTGzbmc#umqI5$ARi_8Ieu>6#}E|K>MtE^z0D=24`lO(Tmkd){{O%;CBc~f6{N*h8efAOKY7j}cyJ{(ke zMxt;_VXCJOh+<%Ws92l_@wIzke!Vj-zZpUm7tcfHlLt`S-ji0=R)G-li5Qo1BH2|B zMLYAMXxeoM**pn^E(bspwFNF;P|(ENj#S&wgEsiN)5Jld?a=OkB9@3(&K&9eoyj5P~iaq)n~ggDLtT#MCE%;$smgBiuk0 z97O8c+d=Gv?PA|3P<87>RasXcqt=C{j?RUITTWE|ml-t28%W(VPto2vfH3NMSl!#l zQ1q$>QgtKgR|QD)7*)hSd00P&u|YZ7SFV)vdEZU+qsC*FFPD`Z+uBNeI)HFA}xJfzCBnL;WRDM)qHT zl1ssK@N9c3znTOwp9g@RMH3;_;Y-cmPGPb&t5~in1tNDuLF}XJAeHX`&6K6k~i>m(aw51_%pvqw-h=mi$U0_;R9b zC?xS4zXjLZN1^F_J1{>0Na&Ofx%3Da|Ewaa?rtDmUqg(awh_sB(LcPICHl-ZP}h4A z+|XPCkH!N~Sos;PKK>LUPac5C@ugs1v)%Yl-oto*05R65W;|Al!dPEQaModh$L| zWOX6RrV~V!{3X$x{0vn4?h$30mMD)NBOz-p62-6CL@hHAS>zTXbu1&6*|Ukl^9WJ1 zJ46wFjF|8@BKu}6u}pkSRDaDQ`iIwvD)lKbesPINqe_TzjE0C;d4lc!%63oo?>(07 z9>!L;-5c0STb^vov;WDL#eCP6U)l1yfAf%k<9}NmY>QL>`^|siHCy~-i*s!L-R4(q ze$(d1{`DjO+AW*D+w6r+-)#Eu@44Id%eKFE;yU9+oJ4G4sqG<0Ga-7&M))wV1K9t! z^YYp_xbOQdJPB+f_Pzg~aVP)N_dnyrxwh&5(l$F@Mw z`mNwLFA2UnqJv-Re}i4A>)>!d9jve44Wk}!g3Wnr0eWnKZaX)_-<9hj?8q9(^vi%* zwHv`OB^^|8T4+3w2rv4F!^&xsVPN`XI1=~`1PqCRVVgEUsB$0pj?0A^%AGLk-4<9{ zEyjPf6Twpa3j}AS!SU?X@MH53nDuRI@VnFsuC(q3E{~;7 zGA?1K`^cj4IKpWYuf%#{_pEu>s{-eS)X-g_Bxj}dq4a8e4l5U z5<fPj%iNQ)#Dp;1KJHi|f!ogk6A6JqgZNxaol5`~2l@op}W zAP*)?zb6s6CMnTOa#Ss2qL08Fl{O~M>BGo4ktws?k}G%tb?-~1j`o?<{Eda$w*ElH zvcEX<^YLg;=#O!!Imr30M0eLXG~erot}Dlw%aXxNAD^eD)JfFne~Kx~vLsi7XG{!p zv66!InD|`+X4@BIc6Ka^Epr)}e^1gcNu>0OgUjdVRR4r_i05iAui-Oh{`?6N=tJWKKD7 zqb@>Cb~cpm$iT`)7OcB6Qua9>CgM;LFT{n)>S~?jG`^wNfW(htb z+p#=KBl|uNlS?wXVax?Bx-VU3)*c27NuG|@mFrNn_%emGV8UQ6HGa2&DqVL-O6F6} zZ1F}-|F&2$b}E*huwcd2byzpvid8SZMg5SuD7^ZWIgZ_7A)S_BLe4=XuLeoBse@RE zV>k+pR$!dYtiDQnapuyCv&dpf%dO8SRyq- zcaw4Gv)x11hCM{{#gS;P8iRtP5o-Es?9{mS}->T8_^IPFD6Cm~4d;wKhR*nOtX#GfBeVKo$hBpd#5F+u z%;u=w@Rqp~ZZYw2ilq1}Tvcv5#_T_ULW-GLo0K#CM;0b@YmasM?dWH{icMc_!0;go z63_XP_|hsZi}RE7L&nJQHQ!)m`%ReWU#rG(3psIq83xX7AnPu7!IFmCFmB63c+{y5 zVqX{Hh3hTkQwKkl14hi3t-d?4+L4Za($83Y?arN|ogYm$9;D8Ob8*1a zrD)dMRgSB3-IW=`pR?e3OR?h36pRr!p>!w@ogX`yVPqH@$8Esabr-Sl*MXRS>>`Q@ zi=@&PvfgXPuZIMDY%b&f}zDwu&0jz#SuZB*B#Uu)e9X(<521Q3>&+>WNF>MxcXOr zIrzjQv>tnk23H0%3_Qeyzkj3Vmn&#(`~q-9P6AO^$sZ9?k`2f9v) zXb>l(sZj*8Xd9v{U2wM2OJ?>hbiN;=iQTjR+#U^Lb{QFxhy}TYvk7b}~ z-YsS=jzBTl$&AmtqR@N_760~=T%H;#&em~CU?9`q{+I>-bpdM|okL;XZ}@2W1+;$q zEhesrz>@TEG>(~sLgY2Q?#3Vr@be zCN-ahG1Ki>%ALlZ>vAx1Q5+_=)FNqX=LCPJByK9@Tq{|xr8A-pIzc*r&&W1YwDR2yTH^c| ztzQsy-ppl6pN<&Nuo8_~cQ7FED0;2*kef!VLuJ=*sM!3OQu|U;(oWO(H$LDvtpmT+ z77&bSIHO?>ieXPMKJ`7u?SF>V2mipxZ`NY+F^1;5mlzrUl#w2fsle@^M64?!gU=S} zgI1$K)w66#oui-DVc}3juN&*JV%IpV-ja^a`TsIk_dMpVXaTOM>r}kfk`nWhC~`No zNSV8et2*k3NzZ)IGAb1#kIhAW=xrvxUds%3qOfAbBou5Zj5HG^-It!|7@5b+@q3xR ztcp3y8M97Qn08|ebghcTkYoL^Dr+c`4o8c`+$Kz63a2ldNL?P?nc}gVBNOH^Qj;eM zfn87>n(sRr@X$Mns)=TESkC-^5R3a;HMT^a1B%yn{Wa>7M z35!oiV&7TJRB%t#x(&?z_kE^ZZOioC!W2pSaOYgLbZwKsZrky45MCBF;@eIoM*Jc%LlZ1 z4=8D3q+<3N&NQJVDzq7j`x-HE=1f-ArWI%xo~M;RSs|qGd$5;p0DG?=pkzT8Fh09Y z-5$@F^I5rC7i^cv+}DzBMI_iyHU@j|SrA_c;J#*ss$SoM0+p29s-+$er= zfiIsktQ1PFZ3aI>ChC&XFmzvQ*<~bh$zd}Jn`1C)jE1i^mBTAz6u)mvTR!RISbk!= zkNJT0*P$wOE7%gg0CO7ykc73-rbg+kE_E{+GiGDF^aq6NtPp<2moJ>|fU58yzIGUc z%1Na##g+-qq?gpxvK4iHwV4_R9H5q~XCdFT6SV!i@{iWmfa7pGKBe*s=!eHrG(lB1l|w0b<51fY_@$p|-;Y#%JhvWf_TkjI ze>qjw-{Q2BRKK}n9u0|U27-K$OH6AHqPv1xJ$F#0%@_!OSp>GFjUg$wJGhhUX!aRz zh~FOux^^8wf8_=xlWuUq6E{OfYCg=FyBmxhilO9iIapg?f*JZlPz8s;+>FASTPvU< zX&+jukD_bxX6E?*Bukn(6=J3hhTyFIP`c9zRkxl)&Gq|W%0EM0`mcd(Nux=Tt-(0{G&A-h2f~horZA!1X$XDf7HQbj`!aM{#%{wHWUH z>dTWWHy~qI4a{88lb<;LE1vXw40fp#U;WueG-auNJhK4`r;jna$3Q54kP6{Gm%;6E z9!$;r_<$9I_!m`O`M8CYe~{RWf3~>^UpQnc3Rk~DucS>FyW~ES@9Uz4-eol7Y;#_W z7|cgR=y|WJ<9OG`u4<0&NaOq~p=pm0-q?8?B@>QC=ifL7UT@w(K;3QF_pSk79CZ?e z;8e(V27)_7q!kOJF{dO0W9|q@HaaBdxO241dmPy3MnFl-Oh_7f1~mJxLO{lH5N^(b zfP!^k`E(UH+B>LVA5E3LRT7zIWTYUl$Ti>qGrl}cg~nEDkMainsR2;g;yh$@se;NM zu0hDNE#PSBfI4$7nAR<#hU!B!yo~inFja13NxPH0uxPXlvfy#K22E zr|_1HAgCI!9Bln&Q1{%Ww6MJa0$Sb&ab_os-0=~HJ1DPnP2(MnC?7atKA*AE1$7hO zfw*fG#*7|>rUkLo6y~PJ1t+O>zaF&rwn5FQG6-q46%Kr22lLiBP&()U2>-UHq^ZIw z4Jac9?#b>@?KI97|e+Y32 zA8PxpA&5hQ!LVc!rMNWAzhBqm#-=B5Oqu$htCoFcKVC93_56Cu^3v1G@5y!72p z&>boR`?ag!c(xM`?0Ex)-8KA-->*aD7yp6U=QBYnT@PaNc*(dUmD&5{qHXgTbiK=C zdfj=o-myab&j;bsFaLq!MveKiz8?GlOC3yUbO0(2Tm;j6KWaF)j20g3joR;$P#klN zvvv5HI&NL3ihnE^H4#wtPanv*zY2_bnP49)!T@_7kg5BM1gRfYs@pT?SQjI2JtY_U zm{msDU_jJ*codlhl?6v3eq3KL_Ui&MLpwvo)9qlJ){eOrpJHNP4OYzd#>5k|z^lh@ zsLePGJ+=EF`_gT=_OvOlZMYG*Ew{k+)g9^{l}E|7!<=nvAhq1@hRX9p%v4j%jJww| z?H^gx*7^{w6~}^NG(*Ze22+-l!kkV8U^=Z5*cI%DqrlYAL2Y}iYA(B|dc?`h)!+hk z`@Eu-)D}?jLtD`8UJg^ttAJ~_5fWCdg{pI5ko0CKkn+u(@MUkNKeUsYsv80^oa2P0 zXE@h_FmPYggEP&aZ~Ueaf6b-kF9mw?nyG3&Q+ zPlyGcoNMu4%=oGe3JrXi(&{yLAhQH&a+n&|zd}G-CCr$i#)Qj*H~TGu;9oZYd2vD_ z)=km+K()uzbvhNz%bECR5;KMNg4!|DAmo(GH0D4AXn#_u>*_$Nj6KK1fK4oZ@JNXHDjo`(9Dy~zg%x11_~{ z%ahN%A*TOUAf3Y1Ug^J*ZpSn%PF{veU=nq_J5M7Q?uC-ylOVa&4grPRA!+e`sCiTd z&O<&>6&wVbcV4L36NDt=?-RD)GpOUmMpZu_a^^4Qf%*GPh|$@h+Gz*r?HVw6AA+1M zE8swf9UyA%QG>3Qny0LxqHDk8()6H0|1+F2ZYqZHv#vSHc-Kaf$87(l-OQH z={N16`fx23e;z~i-=tF4-o=!B-a#UB`VzRijpU&q*9i0x-aK&;Tev10}K>3(x(JgTPUSnv$x#zU~+l~;|_Y*j~r7gT|Ipm_9m@QHIU{FpWr=C&OQCr@{U8RgNit}X?h9kxKzoDU=Zj)RK)QLyZh1qNQ;0=oj2!@=BsP}!S8qm^ypZo5;oqwNIEC^$l2 zU))2>XD_FDp+o4uKSoiH>AmRfcRlE5|Fw){vU+Tx(pIIjO1Mfdm60m-=hTNlW0j^V zUMdC^Kb6rceN}iBy-G)w0V-5wyh>}8AeA_ko+^V>0#ur*3|ASZqEYFs(n{qcl|Yql jDnnH|sno}8yh^Ofrz#(-e5n$t@|DV1mHK!dq4NI#X!&m* literal 0 HcmV?d00001 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_lightingGun_hit04.wav b/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_lightingGun_hit04.wav new file mode 100644 index 000000000..c39473c23 --- /dev/null +++ b/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_lightingGun_hit04.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3fc21d08fce718149ed1eeae6431f97bf7a5840aa0f157ec6857a39bc7a2d914 +size 288044 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_lightingGun_hit05.akd b/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_lightingGun_hit05.akd new file mode 100644 index 0000000000000000000000000000000000000000..04c9a34abd6c64e30c96c5f45e27872b395208aa GIT binary patch literal 6968 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 JKp_wz@P7x~hh+c& literal 0 HcmV?d00001 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_lightingGun_hit05.wav b/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_lightingGun_hit05.wav new file mode 100644 index 000000000..bcffdcba4 --- /dev/null +++ b/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_lightingGun_hit05.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8a788db0f49c1191057c9ddf53ecc2177e57834f13c3c54af56ec70a7bcfce63 +size 288044 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_lightingGun_miss01.akd b/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_lightingGun_miss01.akd new file mode 100644 index 0000000000000000000000000000000000000000..35319f4fd3c7159ea075930dfff80c8cdf97e0af GIT binary patch literal 3876 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 literal 0 HcmV?d00001 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_lightingGun_miss02.wav b/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_lightingGun_miss02.wav new file mode 100644 index 000000000..55e3606dd --- /dev/null +++ b/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_lightingGun_miss02.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:346d03934fdb64338591bcab7240726d3f549dc5c6ecf06def0ef3a3df02fcb9 +size 177752 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_lightingGun_miss03.akd b/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_lightingGun_miss03.akd new file mode 100644 index 0000000000000000000000000000000000000000..74af2cd5ee533f28e996c577ad4837fed921777f GIT binary patch literal 4220 zcmZvf4OmUt`oNbua(u**8i&GBB*{1kslDE{udmW2hms;3rb!ac7$5oGcZ7_nJ4~93 z93mkchLPH9t&NbxoH6b&G#n-)GcoxXnkM=0lmC65|9zhSdY<2Y_g?#5>s@QTYw!16 z?GQpqsR+5KQYuw1YSFbv=wu7$-S}dJW)-7kzY?V25+trZi=@D_V(KOtx$cl9j~ptE z$fu4EdNJF%LCiYCK}~KisoecEOW1IM9i#3%&$}xZ;O7^5Bg@ zyj?Ny3LM+4k4%ge&a7g(%g;JlT z8n>=n%nJ<%n5C$QjheQX89v|5$~(F6OUGL9#$V$2P1gln91_>8Ul|<3S;=B<*TnLB zotN=ZOY2!>t6C<``GbjXYM6fi8@8ZQ!=D{b;EDZ`c;LYIcIsM2^QxRrc~z_T>tl{D zXSu(fW5qvQX5}r6GVn6QbZr3rmpLq8%VQSo`-(lw)AA4-X94c8Pn|B!y+OWi+kY5!~>O7 zyS68@j@dyS8lY*J2m;RUWEtfdO#hEqR{v}dyLp4MRe`sdy`{p+L+V)aiBFkvp&#>H z`6ILCuV5j!6_$-VGo=%!C}wi0RDFwDD!o|dy02Mw?S58Q@_+^`AIt2q=U6~g3bQUD zOgH!?wFv#0^3qB}v;$e)K1Qu)vzX@i24)Cc#PqRiS$R+>GkeTto_)S#!ShR)wL>l& zwH#Y4^`MeVU)eOK8&mRrq;@%sCHK!_hV4U`WB5+?DseLl8oQkp7p`U@ zS4S|LCWtwX*HILpp_aJcsrBLpYWi1yR@b0m=Ef!(@WzeB9ra|=q+nM3OMj+&H;~o5 z-OSQjxw7Or(G2x@8)hCghe|KL6eQ)HY@3=v4X0jEWywsISk2k(;&8S&I*-{(8)@N~ zBqo_EXtB>QCe3XSM1>0I-8x!a6wY+?4c%_q$a2H{S@!V)rga^_VtfuT-4kyXlf0kl zdjFF;YVXjx_zkrFAz@PcUubpMcINPI#mxRUnJH~8YmnV}_UdP}IC=|nOtR6sx~@!0 z_=qZv!)bOw4y{|>i|KY|Q$x=uw0yHWE7tC0$ZHf~`F|+Hh zQPbOaX21J6&DhzSDgL=s@sDK2z)jS+IEbYQ?U|Hq(r6q2UI!S2J3d0 zVQc?fY7MEN)(@9a^jx9n+u~A3Lo2F8#ZXboq~gn|>YiRr(WxR?Nm(a58eJ*6bVhc( z^`fYvy{xqLqSB|MsrboN8Qlq|O7%L~dcG}1FaDGr6;V`L-i=!2Q51E%REh>~5tPS& z%2Js(MVmUvC}OUxq~4Sbm%XXf@__7!7(=CF(`99lT~@yRSymq2m(f*!S<(f{=$C34 z71WkWRm)_l?cc_QD+94@`jAZ15Sd4Jz;Mf!cQ=Bn2V}I{gxxj=I7< zm%b!LKaAuyd_>e(LF$d&AZ~nr&~-^{eokNV7!nH_!07T4+NZb@Q{y8T^|!ZBIbj!g z9ykJE|A?rufb8EFP6{?nA>&4mAm5yrNHR{Yg`$?35Va_RL_M2A%t`CO(2xZw(tA5q zDZ!-DFq&BWKO`BeFi8k{U*Bf3JF%YC6Jg#ZSbXtExb7H0)?5oElBOQUO?M^Yu_+|G zm4)~eo14dHaR~=U*+}rXmDoIvqG&A{`b1AY)6QysU*1~;ODBJLF<>ZZ_jMOh1j$>sTy@M3dWbi%II-iOv0`BnOgJ14a`2{-e}1>O08+C#I+ijT%O>&wTA;Z$f9r1{-~v|q14-Ly*(b6SCMe)qr< z?M6-xjc>L)YE?LiIxvUaanq8-kNwH*p$kZxsAVLiX*@~z%S0-7hmu8CB1q1nsm=Xn z4xQXAZw{D93UfXs?c>Lh#KQR`k#2(`*RPis!Ft6VD{GEm@!(@@7H?wl>`T1L)`RF>B1zTFVa@jJ z!Jb6>V?UC%QcpZ`!%0Ap9*k$bz{Eze%4yk5oAd<)N1cPbA#I3qN*!lF8?x)Q2U*?#~2+@fqCc zsUap-fs0!b*tPjPi1FD2*+(8?ZEOp$C&z=d{twxbz5@(xhC)#0E7-SGLvClEgrFt4 zkRDqD!l676M~sKUZXH2<^cxl(|G?Jb9IRXzh0QZusj~2j;P83^HLnhUDX{{I2402W zzBaIUtb<_pEHJeGC)j`c9vgleg3V7eu{3m{V0W*?A+BA(7~cZ)?Un#49S8xvVxjPd z9UznzfbID<5Lp70_nZjk_|{-e%*4j(d@OdmFDvFPa>hy#%8K%!@Wx1x#~cLxQvou1 zOoX(QL@4~m7nB!$0JUigx(?g1`9%*vpT7u`{%i|k)gb}RKUf-frVAvC8^Dq@0pi^E zf_-!}7y?g$If-K1-6o8F`a(cYe-@;CDkFJym@@0FV5G-!#G5W)AiE)=V*qHcErQ$! z{;~OW=kcl6I{b3HSM*~1HekDkCF9a!g5?E8J0R{emby;gbDenix zrDwrbss%||0pj`oIOAd{L^SEaQd$C%*E_r`VlOBgzQpGAeo%Mk1Qt`rf!5kionHo^ zsIH~9*E?x_YHw)gV*~9hH>guGK+HXYYaS+n(RLP_qGyBQ6~`gp{~Zj24&$0LK4AH* z7MCLo;_h35m_7k31&459d{4+ez8`0&i~%wIB-WOxW1Vmp+hex@N>0UkyBjDsngmqV z6W6TNK;4uz;JDz4rM0KA@vA(njSK~wS@q3lBA`THY$|()SagZTQo?h=XxfUEj%v)Tn1>BI4{RtNi^Y)M*lb*lr9M>x+A&-Z!?OhB zXbP1^>=TgNTtR$zMNk~+7^R&M92=Km)cvF&PMVF;sZQ9uz8e;!as_E(z96}+5s>}& z610B5AYM2opxDMRsdug*CilXq)nY7KeX--pB8&{X1SPLYu%^0WRPBn9o3DT}0|gYf zU0t68g5r}epzf_OdYUOHW7YmAeIb}T48}^0O;EmW5=8w`LG(T)AYEjM6f#>@k7npU z=NM-m?>t91^J=Gb=84X{(V36^-~7cHpPg~j+144Cobkr_zjR9Hf5|ET^IbZ>59dB| z`rWxtoa^OW59e_(S*4|l^Q`DBu0aeUN1cEZ_l@B4zm;1TE{8P(=E3<@&#=qD|3~lK z`?~+qQ`N)&4>mV z=3NJ_tLx$V+t<+dVjXOI@dA!7c?B7!C(w5J16VPv5pGOwK}?%#U{L3Jh&lEbOwWA- z&i+$A(UPCfJ3xDJ4@{ar6;3Z70x8i$!Rx!xFk|!-*t--Ucwhja+HP>rw^=brLc8KC0yp;1Lmw9rtM{wh6GK2&L=GDsyvWr&JK<$nMp CTLM=A literal 0 HcmV?d00001 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_lightingGun_miss03.wav b/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_lightingGun_miss03.wav new file mode 100644 index 000000000..7e33bd7b0 --- /dev/null +++ b/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_lightingGun_miss03.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:438b2e4a5ce6ef7c3169f1c1952494fab1483c25651807ef308780b293706784 +size 166544 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/oneshot_electric/sfx_spcp_thrst_electr01.akd b/Aetheria-Economy_WwiseProject/Originals/SFX/oneshot_electric/sfx_spcp_thrst_electr01.akd new file mode 100644 index 0000000000000000000000000000000000000000..75fbe40c035bbe6fb13edbf2bd918d627b644ebe GIT binary patch literal 1060 zcmbu8Yiv|S6vu~dmoApardhRUgCi6v*_v!ype?;;*nq?b238OZwa{yAl~6PbY)vf? z?v_%8wscb-!BX(1YFI3x8>vv+p5v8mqef${No%cy zvs%!IW}`e}&wb%GKVwElpMUx30e1fKfcnimWc}9%)cAD_1b)Coay=Q2#S|>;CU;*a znX7-2eov#>eUdVttfaD+nn~lkDR;b;p1J%Qd1khe@p37eSJxAFJ%T@Gq*Ee4hg?l- zX?)5ks>$y#_WdPPpOT)cnvfj`qxH5I`8x&%-V9^#p<`&R^P=5*-(y{%duqX*eGs%; zt-xH+?<7xc5sAhvxU7&k5gcYO)trH_lu-g%-Y)GiW3y&^Hz zE+WlQ5epRx)9Dbgg;~P*BniCeH_)9<;oIB+!Ql_UH`W8b+z-LXG(erR7u2fvz&~68 zmgf+#HRplHTET2+1jAVX{;dmvvEf3-awKfQJ)yl-%p#qO{lB&-e8qHNt3ANFzg2>R z$HAK40f)LwQRMwx6fHR;I!;A|wsRD$S_1V#iEv$dRAd&^2(2bZaOW7rAYZ6YjDl{K zgS&YM{D1tdSRO7EdIJOx@0C7wf^|ev{Q~eEb-?zNgP|+|e`6i+tTNyWykI?; z3aQe}#Cx5%cU!ajX!mpCT$7}>N#c~)f5#r7=`*14_ZOjR+chQSj`-)65oL7gEU378 zMoG#0pS&;r)9%WXwRZVkn!Ubc)y<u#P;WsOqSTb?7bh5q)Tjn{{Y`$ Bfc^jg literal 0 HcmV?d00001 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/oneshot_electric/sfx_spcp_thrst_electr01.wav b/Aetheria-Economy_WwiseProject/Originals/SFX/oneshot_electric/sfx_spcp_thrst_electr01.wav new file mode 100644 index 000000000..6cfe72741 --- /dev/null +++ b/Aetheria-Economy_WwiseProject/Originals/SFX/oneshot_electric/sfx_spcp_thrst_electr01.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3e9ecc6f2c9a06b1d325abc388a8f431c2114adfb885af82b9b7f8e14cdabce3 +size 36044 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/oneshot_electric/sfx_spcp_thrst_electr02.akd b/Aetheria-Economy_WwiseProject/Originals/SFX/oneshot_electric/sfx_spcp_thrst_electr02.akd new file mode 100644 index 0000000000000000000000000000000000000000..06993cb3dd4244e8a566af3c1339913ec4bbd64f GIT binary patch literal 1060 zcmbu8Ye*DP6vuCx`Ano1A6YS3nq@+1l)7`qDGY?ZEJCGbI+=<==@MF6Qj=+AF1Cq< zm8;tWwX)UH5_QjYdifzDR*Otc7!49aY)Pmji0)K=2>K9s;5UbRIOpE~Id`rPA;cI! zhzs*_5Bo6VTnR~MUf$MXC!OPV`DHMYo=Lm(WD*UAH>iG2p^9r9J+Qfz`gLEYj-+9f zLtF55YZDEO%%ajR6P39WG~9WfCXVM&T~IaU7TMA9A%$`tOYrR?Z|aN+r%L7w`gsi^ zsoX)8{!x??%Fr*n64j|xREr~!JENc>?<5-iucEp$0>9-H(>C8|8ps`{iMer7SG_;{O8cgrl8O9sJFL_vD27yL$pg}~@Sp{Oui;M|6w z4Wa~N*dWM`3~)A8fD*bGi0K)~r42yfD99JffwPtYF&qO$R|4v#65vi{fXc^%c={-i zrD-4<@3UK%q-S&AI46>W^`y00Z%qyZsZRjXF$U_& zc96E(!EoU@tbhLylr1)p4%vWv*9_LiS}<=t2i8x8z$M-Uac>nUFOGw3+6Q7`Dacth zpe{cLQeq72D<9<4b-cXFo&R5r^I78Te?5E8T5NXiv%2Q7ST4hjp}if=tW#rrfn_zc zOn31ve}W~3w7#|eegezpVbTBq literal 0 HcmV?d00001 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/oneshot_electric/sfx_spcp_thrst_electr02.wav b/Aetheria-Economy_WwiseProject/Originals/SFX/oneshot_electric/sfx_spcp_thrst_electr02.wav new file mode 100644 index 000000000..c67a6ded5 --- /dev/null +++ b/Aetheria-Economy_WwiseProject/Originals/SFX/oneshot_electric/sfx_spcp_thrst_electr02.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:255d2115918eedb0b90bebb9e577d52c7b56597077bdb998a5b4024e03a1b5e2 +size 36044 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/oneshot_electric/sfx_spcp_thrst_electr03.akd b/Aetheria-Economy_WwiseProject/Originals/SFX/oneshot_electric/sfx_spcp_thrst_electr03.akd new file mode 100644 index 0000000000000000000000000000000000000000..f1d0405aadae4450a68fc8fa7e3612e08246a19b GIT binary patch literal 1060 zcmd^;(M!}p5XaZ+^2{uxh=?$@?4c;6;}?0#j%*PnBy>F_WK?@xK~~t0=%664pBX`Q zNWpPl56L}rhZRZ0DQ3U9enIr0J{$&tWU!GCMd3jp(o?gg4?_Qe1D_rC%M8QJ>{c#Gnd4l@bM|46X=v?V?WyeF8O5~RWi9?tf^P?WW zh4Mou@>CnD=~nbM&!VnyF&*1c(CtkHJ~@oVz7(3-XHr|iYnT(&`On}@ya2V&h4B4R z;9rKo+dBa2(g5(Oey|7cg4~jT=eacOYJLPV(gTdgK_#N#jmN=0orL11JD?9L(1$Mq z`}AJO11Uizb}t2__Jq9fQmFcR;3v)jpSuby+XUgCGoU6Tpn}&yMP{M6CJF56De%)! z7T)v1UW{h;VCMffkK)TnJ4-Al%-=C~G#C@#hV!B}v|sq<#bj)!sJ(qn^lq#azTki2 z-u%-R#Zj(FU!>9fGBH)R8dlBw(bfPoM}Ld5!K|oj&o&m0bXt41cUy1IcUxBkMN|@|FH?uUJ6lPZUQAyrhzcS=loNjd(BTFu literal 0 HcmV?d00001 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/oneshot_electric/sfx_spcp_thrst_electr03.wav b/Aetheria-Economy_WwiseProject/Originals/SFX/oneshot_electric/sfx_spcp_thrst_electr03.wav new file mode 100644 index 000000000..be474a2e6 --- /dev/null +++ b/Aetheria-Economy_WwiseProject/Originals/SFX/oneshot_electric/sfx_spcp_thrst_electr03.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d7df661747ce3d23dfa90c8a4968b5620f3cf10ca4e8cd625a4db53b19b2ddcc +size 36044 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/oneshot_electric/sfx_spcp_thrst_electr04.akd b/Aetheria-Economy_WwiseProject/Originals/SFX/oneshot_electric/sfx_spcp_thrst_electr04.akd new file mode 100644 index 0000000000000000000000000000000000000000..61706f548c409ab56d820b623e09d2f54377e758 GIT binary patch literal 1060 zcmb7@Yitx%6vywDZM&3iyNC$|kxsQz114^%DJIPSIw4VvZEzC|X)whBLs?(+5k&D( zCtavrTw$UvR%v9KP}o>a$7YFW_grS1;MxdrZKAdsbV3MzBCbl2NPXOi_5+DuILYsx zd;d8nIp^Ga%Nb)Giy14D-WZdMG-V!RTf9x8iHtA&lRa>NjM5k>Wy7+b29ck*L%7=~ z$lB(Ro}420V2N;lOHh8>K61(jNZWIc?D!edqO!NUGvv(fB)2L?9sLP%>wlmyAEdy_ zB4M`4{8TR)1ASzC9VNZ?L1MW|QobxE=Y?vra2pwyYclMwU&mOYa*XXA|5Q#geIt0Y z*QTziY&@%KYt}$%eGflIZSrquLCG^K zI2*0u_g?Jg+E-6;t2PO3$1Lo{190EojKZSB&^p(n;Cl^b4~-&gwZ_33cf&j+Yo6_fo^FTp{cafUFe2Z@ z;5^U{W#dtVR+?}U4?}-LYONVKcRdgNqg~L3n_z~LaBr!Dc4QTlszoqfI<2z4_f*z7 zPcki_+4>=mD7h-+ce4JW(S&jX9QN89IQyb5Ivi7-$j0P{yvvP_2;;ck6U*h#L*N4~Z M0!f)9ASspn1Bmd6UH||9 literal 0 HcmV?d00001 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/oneshot_electric/sfx_spcp_thrst_electr04.wav b/Aetheria-Economy_WwiseProject/Originals/SFX/oneshot_electric/sfx_spcp_thrst_electr04.wav new file mode 100644 index 000000000..780727e16 --- /dev/null +++ b/Aetheria-Economy_WwiseProject/Originals/SFX/oneshot_electric/sfx_spcp_thrst_electr04.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:31af1e4a91aecc12a913572bf6f2d74b554f0872329ad6471908fc24b03b7a11 +size 36044 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/oneshot_electric/sfx_spcp_thrst_electr05.akd b/Aetheria-Economy_WwiseProject/Originals/SFX/oneshot_electric/sfx_spcp_thrst_electr05.akd new file mode 100644 index 0000000000000000000000000000000000000000..118f4366e65059e13c6eed7340c1befad27fbbc5 GIT binary patch literal 1060 zcmcJOYe*DP6vwYyYMSPf*~5y4kjN-mSp&5>(#kyJN=jIWTN(5M2Pu;b8;TwxMt3Sd1by|uZ_do0d+wZb?md2l5NQS> zChFz;^g)f8Ku8+(+GqwUD;FUXbpqWVPb0tDhDy%~)bjgK-|`vd9p30#!lC>)4z-uQ zD9c}3a-H zN9J2E3gJ!2d^n4i;zwv6yo>UwG~`Vek?|-+F}W2jj!|^wbK<1Q#;+F%`wVS|q*+AL77x=ylplDW*ZMneIZ2;HcSC&s4V#%lpB5%#+ zeh6M1-?W6=Iv{XTdM{|#U0|O2944Kf$%)&NxEKC1r#xNG36ZNf@~9AqITiG0$G{aY zf_|qR-1UR>zb)YG9|nG3A!rW|f|9WY`0JZN>MsZ9PCGCQ3qZ3LgWK~IXor(PZ>s_l zpGk9df|i{QcC8U4?~@<~l>;AA2Z=&hGQXmx#DPEco8mgyhBqy2tPli-7S^>C!t160+cd)Fm3c!<6@lUEW;Xt3F#9Cy lfOXyeLslcsFh2?%abncqO_@ybqD-O~wfa!T>hh)UzW{12X-5D6 literal 0 HcmV?d00001 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/oneshot_electric/sfx_spcp_thrst_electr05.wav b/Aetheria-Economy_WwiseProject/Originals/SFX/oneshot_electric/sfx_spcp_thrst_electr05.wav new file mode 100644 index 000000000..76130d298 --- /dev/null +++ b/Aetheria-Economy_WwiseProject/Originals/SFX/oneshot_electric/sfx_spcp_thrst_electr05.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ddd85bc7d98fa8ca0453101e4c903e9c26dcc8db53caaa9d4c72b8954f3c7a71 +size 36044 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/oneshot_electric/sfx_spcp_thrst_electr06.akd b/Aetheria-Economy_WwiseProject/Originals/SFX/oneshot_electric/sfx_spcp_thrst_electr06.akd new file mode 100644 index 0000000000000000000000000000000000000000..3d9ec3e65c93d70030c7211b969aa558598a1749 GIT binary patch literal 1060 zcmcJPYe*DP6vwZREi*$)$t??~B#RQ%9-F#zh7B#KzAQ>Y_HfE4nKhM#MUQEzG}79v z$jo9SL(77xj5POLM`THbVlhLdFVn*mdTsW$g6>d$5c=AI-yH6rb2yL7oghMp6i$dQ z^KuLOFys6P*~q-k2O)`g?&7XqL^8Y%<-TVax1t=CYeP8C;!o`j-5590fb!rW6e9{y z4&O;jckiK|pS!4hNur#(54rlu$lXjv{aF~=Vy9D`tfJzZwWy_7kdun+^e}rnl~UBc<++itI#>;J}N5*(R-{B^>jCSzOCk1FO77V-;NnDD9F<6=qG{A@;i;0CMLVpav?+Tz?Z{h5wSo+)4>zEA;3_JX>nI&R zf~x;8iWPOpb?-&n`Z83Lf1!8MZFHvAq8^ipQqOg?=l5gBCO`Tu%ZEDEYSiyFqn7#A zr6f;5WB2m1NFZ)IXwMIWA{Bvm>sgSkXMnrm04etlkiHY(op&DW+slEZ7lORL3%m!W z3DToTVJK<7AXm%;?o1Tef}26hO98QS8*pL|aQmZyRG5L4Sp0uj&6C~_RwC{I8_fWv zeGcd~R?z*!fD9}Exr@zFfS|p53S7Vg@Mg>s%uRCzwWvxMayJRy{wl#)R?p5$1&_&3 zP?yXQ)Z4=llJE^GO(uccQVq^`3dHp{f-R;NG_wX`)KL&~E`Zpx8T7ET5R!HeIQ0~G zvK*kb-32lC3g|EQfS%_7&%qM#e!c~^6t>qTH6VAM1`>V&xKtmIL(lR4Y$>DnKYHJW zX7pwBXY^(C;ls3ihKXUk9m6EcYyM4TEVv)G@V`Qj9Amh pD0uvKJY-jV=Z!qWf*9i%0Ssd{qt*mQAj6nvJj0l8B7^-3$ZtSPbIt$& literal 0 HcmV?d00001 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/oneshot_electric/sfx_spcp_thrst_electr06.wav b/Aetheria-Economy_WwiseProject/Originals/SFX/oneshot_electric/sfx_spcp_thrst_electr06.wav new file mode 100644 index 000000000..5374edee9 --- /dev/null +++ b/Aetheria-Economy_WwiseProject/Originals/SFX/oneshot_electric/sfx_spcp_thrst_electr06.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:26339e85ff27f5caf968c6812e624ac989f8c42e0b4f4ad10a8a80a54c3517ff +size 36044 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/oneshot_electric/sfx_spcp_thrst_electr07.akd b/Aetheria-Economy_WwiseProject/Originals/SFX/oneshot_electric/sfx_spcp_thrst_electr07.akd new file mode 100644 index 0000000000000000000000000000000000000000..3e5508d82045a808aec104e1354ef16fd78284de GIT binary patch literal 1060 zcmcJPX=oHl6vr!rcI|`oHS#4vaA; zi?L*##YKJ5VWcoN$Gf>zAG0!^#^kenGG6v3c78V5?Mg_Fdqv@17brgMIwf|TCI7q_ z`3JnAJ$=_Gd+IXfZwabE=}NUFDAel%LItyjE2prV3iN(N{+e{vbqH5ShUY6cx3fA| zFjLhp8ldcThbhr~jGUq^B!?U&>+hu$O>HK-yqcnUpNMrlMPgDFiJ?w4)@3XbT`J(4T!;AOGYBj^1W_M?8yb)J`t4|HISIyskfB`&jM@k}xDukF z48E)gL{lbbNoRAlg+adqcjO&zOihK1XzvYc;kHQlKJ7!iO*s<5B?ym-AW(e(@lY|0 zr4^9R4#OEy4d3V8kR#T>&D;lhr3CULV6>kEYyT$18;c>X?BrJDE>G2){_);==jxr4 zr~T-wx32fRB&{vhq-nfw$BU;YUhrK-Ik>;LjwgQ?-=dOdw|wBC(hWSh|1aiU{-*sj zPuF_oKWTbgsCjgx41ef+?XTlJYr{l%duY?Z(#k)1 rPRGZ*k*A{ntpB-J=S2riJB_zShQ{-ku4$ubukpO;U%*#yZFT+v$E0{5 literal 0 HcmV?d00001 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/oneshot_electric/sfx_spcp_thrst_electr07.wav b/Aetheria-Economy_WwiseProject/Originals/SFX/oneshot_electric/sfx_spcp_thrst_electr07.wav new file mode 100644 index 000000000..5744ca504 --- /dev/null +++ b/Aetheria-Economy_WwiseProject/Originals/SFX/oneshot_electric/sfx_spcp_thrst_electr07.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:be41f84a5239f1e6cb68f7a3ae3422dea2b32aa7dc6409bbe94a0f31ee558dfe +size 36044 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/oneshot_electric/sfx_spcp_thrst_electr08.akd b/Aetheria-Economy_WwiseProject/Originals/SFX/oneshot_electric/sfx_spcp_thrst_electr08.akd new file mode 100644 index 0000000000000000000000000000000000000000..7d0820cd746d4cc849a175c59895ca6df020bcbe GIT binary patch literal 1060 zcmdUu-%FEW6vrPovuUda75yOM4VqX+lnWg5J?}<{T}4BYCA5_2!lH{^B#BzRF7>8~ z(^;`5^%BLh#0@kA^E|!@A(hZ;l!G8xKk%k5UW5i3N$07&5c&sv;PV`wFXwPL=RC*G z7z=G@%tBUuMi(8)%GepQp)1!>?X)7Rx`0|~4Bf6gt}Z`D--#4T^HFR#w}|QQZ_p9o zXxb*w-;_Z1XcW^U(`bHufYELZLx(@1Io5~St~qN-???(Q2zu zbJ{VxP{(zvhhHpDamV<5Zd8B3sB;L7RFeA(JMeTM!d2-SFEM+#84U5QJNvj14svb( z97?ubXw27fv#f+0XBUwbWzcq`mg}=0QS?6h*$ckfe2B&ow3n@*|IonkD*;A9AE;LY zpjO7gpS%l3TLeP45}eKE8mB6h?B#LT;c8M?6L8xCkBSOd`h=Nar=O5Ir1OB=YO?TeiSRhS84RVL@W*U z!bY;*J@4h2Z_D!B!cVy?)hkyV+UM!7X?Mj4+GJO~x65@*|R70spggV1*m{N~L3nZukjGsmA0A_WuT z#=Jbv24;!$H{eWwA9cn>Q4%XqgYPsN>JCz6Y97UuN;Krvq4xC% zYDLk=T~bgiC`T!%6}3arNKO<{`&uLAxHB|0KarB9(Q!HVtb?UCypqVjZ#qcDq{BI~ zfIGHW(c-Y<;FCLOX+TuHCQy9di=0OniekEn*FHke2<6u`0T9!IcEx3p3 zqKwkmU38|uK`CJjSx4K_6!Nd055MXm?utNS2T+yDZ_AU9V5XR8E~b{@3A z5>Q%7fV-Ft8gBw~buo~QnLsvIfUP$I%(We$#@B+9G6hzXw?NdaB+@XO#8TU}qFia= zl|A2i$*D+roRW;#~jS^=`W6dI#5etC*J0@MP${qucP% zXTJGo40J9iyxTwVQ|J&McG4a8H#YHZJO8uq;a_dpJ{GHoFVooiG^4%725XpKtZN5- zzHPP~f`ZpUUu+22XMXYFd8J03j>!^Zcup1H(Eo#vHu}H^d4bpCbn|DdX6U*5GQ1hA S<%wRCey$%wui1y;#rOj=b5RBW literal 0 HcmV?d00001 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/oneshot_electric/sfx_spcp_thrst_electr09.wav b/Aetheria-Economy_WwiseProject/Originals/SFX/oneshot_electric/sfx_spcp_thrst_electr09.wav new file mode 100644 index 000000000..b7a5db003 --- /dev/null +++ b/Aetheria-Economy_WwiseProject/Originals/SFX/oneshot_electric/sfx_spcp_thrst_electr09.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1f3276f29927ed6a6dc30218aff4fa9935bd4d2a698f4b75f044bfb51d8b0a8d +size 36044 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/oneshot_electric/sfx_spcp_thrst_electr10.akd b/Aetheria-Economy_WwiseProject/Originals/SFX/oneshot_electric/sfx_spcp_thrst_electr10.akd new file mode 100644 index 0000000000000000000000000000000000000000..dea1ac3cb391b9749e94525ee4224b51e4d8709a GIT binary patch literal 1060 zcmcJOYe-Z<6vszX*K{kfAkEa9gbIpnj}KP&Ojo6hvRbwWrIB~BccfeNFhaQ{mYT>G zWlLeK;F?*<8fsyC#;YGnLvVW#y`)=4Q5J1PX4Z%1T7D4v+Q4rfhx4B^bIy#B5MrB7 zh(8~d+q~mVm_W!DeXAmBkBd;M&PMso2DCL_MJfI$5;llr(jdy;*P$>R zheFUiR0g8ZelUq?yC^d~y@lGPYIL4>iKMg#%@5C`FX{_QIWw3em@@aiJmxMx$<)9Y zmbh^~Q&(p(Qx7nQmdd(Al9~Oc!kp#%nXfON`Fyd=dtoXgTkoTKH-04lqI0;+YQq25g;xK=IAC6eo=60@t~$8w?gBZh4al0ykm@;4jU}x#xullLVRckXHc;n?fp(V{(6Wdf zG~in&z1H!X&K#+wy`_(-eQ78)Z8lPAZ#*@x_`&lug_0YyXzJTyD&5~h19(!#-iuxj zy`G~sUI#t@WBd7Wx1F3oj{bM_cF`IKhm#J$lRiK2|7)C^`%>IFlmM|KZqa}4Km0oX z*v9#Btu7yDn6Glx?R#*K{=0jOw_Q7&-d6Lpi}5JysA$zvn~_|NbO|W8mob{0*!{ZN>lq literal 0 HcmV?d00001 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/oneshot_electric/sfx_spcp_thrst_electr10.wav b/Aetheria-Economy_WwiseProject/Originals/SFX/oneshot_electric/sfx_spcp_thrst_electr10.wav new file mode 100644 index 000000000..5fcf4b48d --- /dev/null +++ b/Aetheria-Economy_WwiseProject/Originals/SFX/oneshot_electric/sfx_spcp_thrst_electr10.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:87a54cf7161572634bae512988a48835b3ccd9076bf3cfcef11b031666b06c32 +size 36044 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_dc_start.akd b/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_dc_start.akd new file mode 100644 index 0000000000000000000000000000000000000000..6baccc906509f9a55f889f133936ac6241e6b73f GIT binary patch literal 4568 zcmZwK3v?9K83*tih;0zTEsqAJ>JSM=1X+2;u;0x9N|8cY1Thv0gYs0MtHl~9%77w4 zkt`K8R3yVYyutznQpg<#d=Or`JY5Uw@UTYYG1MqQ?c;yHn4Z&fI_La$cJGoh7V2*l6 zX|<2u?P~Fl{;3>@$s;T|=x(G^_g*#uR;)8b6Hssdvlhu zz@GVc6@yyU)YZ&XBex&qUWvLUq#k(2O@i^+cqaN^R$5u#`&})!Zxa?j-PzT=>YLpv zD0{uP>p*B#U*?~`!`1BJUn?!P<3?Arju0~@A5v`VY!w3gADdY+yiaLH&q@^re^rr6 zg8yn)<$>5bf%)D@rFq>YGmppTa zu2wj_2`if@Ty4U#9?Va>qyh;2`xr~ue^r_x4>Iw=Vx?Jsov&;VtJkVv)mkMM%u>NC zh@HQ*Rwnq@ZB$7x{F!ww&Q@U%ZSH5`(F>L4^qk7XE!~v?_LRq%_)04Oyj1qPlI5Gj_3X_C{rb zf9t{-W{_vf=J38whHGQjJwO(nrBtX5&LxBr1z=}##W5~q$T2gGYh78;2d1;4aX zCAF*pZWWZAdYIL&o$P96?;dQ-FaGRW5Io+C&A(XWY6nNJc9SqQv)C?&LFMTXSq@fZ#YLLh{y((bLvK^`A_H9x$rglkc+al ziUvPn(W;}QCEjWxDT9FCfUHL3DW;qE6O(|vG-cu3HK9fi6BI*GJ?~RjD$T%8h#AyO-OvNG+NwI&J%uSAE_WBPf2G;&NWC27+M_6K1j?|3B`$#jtIzdq|U;cs& zXf?i*)Iw?7NHbpfhWXpuOXmNL0*Jbkq*nFzOY$HTR!dfPdnc*+9dBS_@Xw@X%nh?- z`DN0q>ONA-dFT!qh6&|4(t^;F{~`mz7lqU&G`f@7d2f?uY+1{KV#IaaBlF@^vcOr1 z{sg;&#hg1wlV+TWk_oYiuP|}BJNcI&)`3~qS|eUslQF3evxeMDCOAd;WP_-j%IucY zNVD2w?1K4pJF>I~2Qc%e{mB6FcxUn_b|(Aw`u~^4VWP`KkdzSoQJ89O)vvuBCKv5{# z*jn0E$)Z}B1p5Kqlvv4<*23vDjPm@lVTldWV!Y|nhMz}a2S z{FQS^6Wa!p0m0;XB&N)xMDx$dgV?%qvcRmtya3_rOUZ!PflbVQX*0#aKl=!?cRx#- zH+B$ncEm|5SUXW_855_oe*Pq>b$xd(OO;yEhtRZk%qndr3m{`kcPXIyr|pX9xr@o|cRREmnWrAZr{ zl?O3S50d?TrYwT$Zm%&jbGFo4oLtA^$DWl%&}!d9tY6w3sV&*LNIFpV!h_5^+*?+G zy%}>TSjNYs1r6dXo_UV6*!W_ywLZ%tCWLTau0Pk-pP%Z_OZDf3`u%DBzN~)#RKG9a zJbqk{>(_z$dAWXms~>;=ji(>mrM{ln8i)yS9q6;XzJ|?tjc)t<4ifoeslktlL#Ga* z-i>C{cQ<8GgM0qZbGz%({^vQot6%@0H2f|>p;wy<*$dyVtp7`-;T}n+e|3#?+WA9E zX~XHIwCVNNseI@glz+B_3O;z9hW&CD4gF&e`p(XynPp+R>2z(x7}b-8x1CS-4qQR6 z-dsWZzuZGJ?|F~bL=Mo&>@{@o{7gDGb_K0iyo{({F@;leX=qt4JuvoaWKOR`k>3Qn zB3I|{jLf?Ky-2eK2O`Bgyhz*ZospdtE$C0}?xW!=M$m-^Mp4sG@1YjO4e7(Q>*&bV z2J}P6?;~Y5rBS?p3;OL>Z_!)36Er?Kk>2Xqh6Y^hKqnr_qsWpD)bQKe>1_3_v}{sK znlq{yJ^5)nx^jFWeg1hRrHwv7Rd1}MA=zyxtFGyUiMwvETc9a40|~963*>=r`gG9! n)(#p%Teuq& literal 0 HcmV?d00001 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_dc_start.wav b/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_dc_start.wav new file mode 100644 index 000000000..f0be93f2b --- /dev/null +++ b/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_dc_start.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:23d7120bf2ea9f241ff27563070d24ea014c054cfb0f84ce34e36f57a5bc6870 +size 185612 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_nuc_steam_long01.akd b/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_nuc_steam_long01.akd new file mode 100644 index 0000000000000000000000000000000000000000..91cc34dd21ee89a993fa35c65cbc06291aded179 GIT binary patch literal 3516 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 literal 0 HcmV?d00001 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_nuc_steam_long03.wav b/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_nuc_steam_long03.wav new file mode 100644 index 000000000..c077b12ab --- /dev/null +++ b/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_nuc_steam_long03.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bf7094a914c024b909ea8c91fd0b35128e7ac87324600eeffa7fa97deee70bd7 +size 340598 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_nuc_steam_long04.akd b/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_nuc_steam_long04.akd new file mode 100644 index 0000000000000000000000000000000000000000..4369640e8adee336a40d7f47a463a147a485dffe GIT binary patch literal 6232 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 re`pR3;R`bz?; literal 0 HcmV?d00001 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_nuc_steam_long05.wav b/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_nuc_steam_long05.wav new file mode 100644 index 000000000..fefebc529 --- /dev/null +++ b/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_nuc_steam_long05.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5730ccb4e6fd18880845e9fac988bf8f643cf83a3d1486f77e91d84fa28d313b +size 272672 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_nuc_steam_long06.akd b/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_nuc_steam_long06.akd new file mode 100644 index 0000000000000000000000000000000000000000..b3dd5ad03f92b18ad63c66ea99b4ed79544503d6 GIT binary patch literal 4948 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 literal 0 HcmV?d00001 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_nuc_steam_long06.wav b/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_nuc_steam_long06.wav new file mode 100644 index 000000000..feecd15ba --- /dev/null +++ b/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_nuc_steam_long06.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4503cca61cdd4449389632fdb3b619f7247b96fcc62f413fd6c9c0a6f1a278df +size 201410 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_nuc_steam_long07.akd b/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_nuc_steam_long07.akd new file mode 100644 index 0000000000000000000000000000000000000000..fc0a45111e07fc9cd35e76abcf9591251a75556f GIT binary patch literal 7132 zcmdtniI)?_z6bDP-z5kN$kq&lY{CRa=HjG&Ln*>Vz-I(h6p-eDie8o|h=7R2DvY2J z5J%RQby$QTJLwvlZCHie2Pn%$8bv|SF)WJUMc=n7&O7Ix^ZtQ*bIzyJsqWNXmFh}m z#@MwTjFrT@jN^b;q81LN%;`oP|6}~>zFff6%LRj`HY>2& zAeOB*dR@D#KuhkJqL?>DB|lCWfnhOaL3qdsBk<}}#X$7lqk`ZZC{Qu551camLtiRQ z#7-ORtHVmG)q@pi^7cj*1=-m(B6U_P8)B_W7HE;zuPPh-!ny@o;`UbMgWP>WMImwU zm|UXoih^I^?*GeW&I+Z)zMf*pCVP|?`J>2Sd)`$65a(wZf%!9)1^$wJm4M)& z^U8woswGN*(_@W_Lb%b_MlA2V(pcw&(W|g_L0B8MKxv6|lpg}#3d8TXO=*epN0kSG z<3|kNy`>W1^%!Z0JhUO$MKKit*>|d8pF63vz=GXIWa|{A1Nr>)VZ?H-KRGM5-V6bn#P{tR9ia|7QwGrHO zLTS+pHO{If{^UvD%RIk;g>cl8|2Qg5xlcR zY0fial?12pd=-Pp$FmJF^?MZtadD{%gMAxg2-x9E=s%Z~Q|6S4fgHU^MYLY|N`m*w zG$R~duC&;Z&kg6=d}WlzIEPUs(6_<9ldHmzsJBwZAoz2x!K#f?7DUhF8|>j>%2?Q6 zSs*8`QV#gDo>dNNnpFj8P3%i zDhA$>#mM(!CA!ZrV$J3#51dA`RSf*ckVco`%Io%y;dDhifOT`EVQ|3q<4nK%P3{YR>QFl?3mJs>%WR0j`1dNxES-t)c`tWf2bc zgo*~cP)=Feo6QW-=9a6;#x<1)PA3kDl~$Q9t%sHikqdbg`F+LtnCy30W1N3JHytTR~41+FF* zAPo@5rWq`NI6&6i>qA#+VvRB8u zGH;6OY4fHVvV1RBW4&7#at+QwE^6d5?c9wx`wEtHb&XR!U3s#n%U0HKC9qQIuGF^G zb=h|K?VGqJFV}Y26}Vl}mA6W|Y|9sMnWMGo}%5~ zAqTAXCk}ffRfsh#yOh*<1)18GHUur?HsLq#|k+Ch+dsQ4uo%hPeBj| z=NRnh4btq9izy6tXa_|g@n(VHsS%__tA1a!5;-+h_zX$4QIr-DX$^ zPE$b3UqlupN**O2!Xp=@WXvHOk_X>2L=yP}=hki`=`0~l_AD}zFCi_6bo31Cqf?}@ zmrw^U7Ett3k|acSt}&whPLqVZ232#ksI!o?geWw^FBOvJe~>in-6tpv*3RP;0BcR5 z;g_9ENf3LUA{!C|-y;u#&VIwIdyF)v`Z_rSdY%200e{UNkHIcp202;Bmethl<4w>!Kx1-&8pDb z@b-)*O^gs^ft>P!VI3Ytniw{lY>0lgfg}VU$J_$!+)4_7teZ;_@M|ok1cd)bk`30+ zlMVmv&q%XdzfWO^%-&>JBYGe`s56`d_=Da}nf@gC+Evs&SY=lk(e2a70qZ`5X&sSY zZO||yI28E;*}ILA9G**>cc+yRd>Ge3bh^zo`{Jh*2ERd^lE7B>G3=@{Nei@`Y_JpA z<@{gcBO^EirQe@w;?e<#Xi}TG{03# z%%>3SWcb_eAfLL|UD^o$`s?@q?ldr1J>TgUKotC0tyunAeAa-8lnm@A@v01IidLfMju){aGCQdXbTdVav39#ChB>`;vPh0?V z?il{ca-^{XcagvUF0!{FZm_#mGUNjmX)H3BEbtTc3};ze^1%PSx?yeYKn$#2cM2BTY2F#U8PMY7a$LIH@x~YxN&1D_p~`1xYXLN zprG`jb#ulkuy9j>wKn?lCZ8$;|VII<=s?{tW1MWaG237Ze3G@ct`TCe*< z>}lwM__{-tNg-Alvc`tkgD@v2#Ad^o0U)_u*J{E*;v_8#GZdI$I;f&F~IgZp@s>nnK4N=x~F zsTluj$7TG)r}OxVgAT9v#v<-SKjN=EHiP@#ME>6+Ch#`HC-NmVC12irDxY;~6947u z^SoqEH$J-gll;l~9r*OM*}O!z2Y8Dg0z8&>H{W@o8lQcj9AA6ohfvR%XF~I>bD?=B z4}?xP%n#L`Ff(-bwK1U)MNfz7jm`)S>Q*f@y207(d#|p{uD*U;wx}1#&f7QWp{I-H zwOe1dTb8c(9rlFGh5N>4W;L6bxw6Tm%(kf}WiR5r0_Z+c9`1){Ars0$S*Q=KAPD`S zI@E>xpb`Y2DKvvl@HjjIPrzTH8{7jGp(<2?%FqNbS+Iv74H^I@4)y@lgdE_2Nr-iZ ThoJ{N2Hl}I)PVkA!_)A;urpr+ literal 0 HcmV?d00001 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_nuc_steam_long07.wav b/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_nuc_steam_long07.wav new file mode 100644 index 000000000..29135e5b2 --- /dev/null +++ b/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_nuc_steam_long07.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dc981bdd4f5bece33e6de217238761e78d361801de1474e388aecc0375d45869 +size 294872 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_nuc_steam_shrt01.akd b/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_nuc_steam_shrt01.akd new file mode 100644 index 0000000000000000000000000000000000000000..b37c9d1f616820740e5436d6e4f02985e478f87d GIT binary patch literal 2652 zcmb8xac~vI9S87D0tF-{4+5A7p--U{31eRh49vUT$N2|S1{-`}Dp(O-l~zKLo)kw! zts7#K2vc|#Dk7ylQvx`F{q2#?IMaXJ zna|zs-rnur-resumoc{gKE|@Kmq~1p?1798%+lF+u>ICTw^^xau;j%F+WeAxQY5ka zl(K<+J~&0(FM1WJ-C2?%>HC@H9UhiC1?IjsMXc`eDdMg=rV^08(5O5JRb;28L1No3 zMXWFXrDaMlD)z&R>fqQrQ!Yd+uBjNBv=zq`i^f>7KDD6 zP(g@yUDRUD&58uddNgZviz1l?1u2r4RjXVu-#)Ho(#^_);NP262;yrFX!fBNMZBi% zDh;x%MYCRVmDadHSs)khQ5K}*JG9X9ql$PX%asduZ?#H*`HWIgu&y_2i34X9vF0>r z@m*UKasRSai|vRi65U#*u|JuLWG2^ZUbXM&3fa6Ac4+K-|a~efcWM^n%#O;kW9b+ z5$&;dkpZi`FtP-saaLHsett{@AQt+70UTfk$;E%r+ z9>|3+Xy(#ih#+|J3N64+3I_4zRl+8Z&)3+EazQ+Au@+e0AQ&X-HV7BY#HyRCX$4!IP!##%#HUVC0HCPo4OZn!lF&H`Wn!yf3 z_BP*tRvV1;uJ^Tl-(Uw|S~AQg!|w|X7Ke!=a9zkfA7%k?{~Ts*Fn)EIg@B!y%Gf`q z-iF}Nw;uT4f3oktaVxI&#Tjbb7Z>`zm%jI@Z+`pwqvgpG=nu4Zp;R6twN@IY=J`x51%~K8xhkh^&u)JfrKyw#> p5s(jsK+oVV7zE#eJ0K5+z+e~!MKBa@htcp|xDyKCZU{m#{1-kmPo@9> literal 0 HcmV?d00001 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_nuc_steam_shrt01.wav b/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_nuc_steam_shrt01.wav new file mode 100644 index 000000000..1cc20f39c --- /dev/null +++ b/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_nuc_steam_shrt01.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ea1ed5cf5d48c978bfd7a17229093c3a459ffef00a921d44a06b6354457915d4 +size 101000 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_nuc_steam_shrt02.akd b/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_nuc_steam_shrt02.akd new file mode 100644 index 0000000000000000000000000000000000000000..1b6db3668ee787b0a1c47b32adc72436008e6afc GIT binary patch literal 3676 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 literal 0 HcmV?d00001 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_nuc_steam_shrt02.wav b/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_nuc_steam_shrt02.wav new file mode 100644 index 000000000..b65e3b81b --- /dev/null +++ b/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_nuc_steam_shrt02.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:21963cc7e58f39f15a93606f68da84436d118369c948d6295cdf41317080d3be +size 144044 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_nuc_steam_shrt03.akd b/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_nuc_steam_shrt03.akd new file mode 100644 index 0000000000000000000000000000000000000000..c514e595a0f0afab4a9ed9634b49dc37d8c96245 GIT binary patch literal 2556 zcmZwJ4{TM{836FFZ!LfNhdzq6u!3BHuvrK`QY>xX{hpUUN;6}8I3^XHeInp8kvw34 zVGhpJvWgkIv_%?*a-nsU5a0!iw7h$scZQ&%q;Jj^#-hHlAutzx0!DFA_I=-7mzeA% zzjMw#_q)00o}7H=76L%W-2eeRiaBGCX=a??C7iu~(agvk5kc6e4HCWcZ^F2KMYCYe zd7=KgSF?9Q#i?$RIk8n|iD8}gO*pDUEOScOCAMa!M`i69kae=72?{L8)Q)dfh40FZMsH+I{P)s+)R!|JvJ;YVc z5Er)hCdI_BlE6AIBw-)fyV;j+P6E5wl!QxU$0NR~wj{9DMM-#>M0fa(_a6g~Jlb>& zmXJ(U4;V9h0KPdY{2VZYasW{xbnVFqi_2 z(Y7HFaftQPUJQ}U)Y1rx_3THMUX&J~0udG}EsRtXZ}|xnafo!2OvfjfCKul=i)2Z4 zS+TIH@*>s5iEl?{ebkFl62JFdjFEKVF7!y~;X`PUV8;P$8A�T3|xZ1CO?J-an9T$V%aIk)Tg=V5Ti9LGUFzp$I>~%*|$KKeYwG{6;n2Uk`4o=#2#(bn^0&Z1URt_g4Njmww>M@j!=WF~$A@y};`_tr;m!T^c=*H|Y^bcjKh;;_ zo}-m`{O1+8di*rJ`d|e%I1}-S@-qD8=IiFl^;gZc`TsP_T27f4K0atZy{E;z5q!Zc zcxjbc@#p)@uilt$?%q&fcFaB(esk%2;Y%y`h7WIiDg0T-vhcIpL*Xwr3=IdS9jN8G zaJik_LW;=u$oC1a%}|m{cukARNK!zClYBCcj3y%pfAbJ>D;Yxy39oY*8AZxTkd%_~ Mq=bwm2Dy#=2WhAlE&u=k literal 0 HcmV?d00001 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_nuc_steam_shrt03.wav b/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_nuc_steam_shrt03.wav new file mode 100644 index 000000000..1602e8d51 --- /dev/null +++ b/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_nuc_steam_shrt03.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:04edf86081f4a9f039dfad49c1ba316979cc443cc78676438ad098017fa92b52 +size 97796 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_nuc_steam_shrt04.akd b/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_nuc_steam_shrt04.akd new file mode 100644 index 0000000000000000000000000000000000000000..212c891ae221596bf8dcfb5c13bf129697e4da54 GIT binary patch literal 2916 zcmZwJe{dDW9RTo!5Qy-^hwu_X0tZAOkVVo9Dl^P-=)ygw_XYBz&&qxI01B> zniO_GSI^*Z6r^AMvqI7By(AKy9Bu^_Qy7V?@r2Q=4XNRD5UKr6IVir7gcek(ATSTz zQz4)~*RK44UARDu!cK+u7mWXx$lSy0{8n; zF%al#RT4yx9#;+s*6mg%(3Ui-bPy~Ek@Srhl@9!k;bPR2WT_Xi1S5;Laa9v)+tk&Z#|(T(97m24V`#^uwK(b&TE5|4a~p96KDK* z#U_kbx+jjXC-+*&zA;ESz&_V$v39WQbE4ntu_Unh7K@23mj2Q$!k(?O$clPP2ll3` zge87#>A?K^0EP6d;}&9t=PY~fIZM9L5|gsil7KC5A@=!G7GlSj5m~y;(t*A94}_&a zJJ81+Akrl*9c9@>u6)TtY-%ZyjY};CrIEbc*~rkgvY6&%BD zZ?p;IY#HI}0>SMYg$a!E2uTShy624WgUJgLeWda}p9Z4; zjq`PZKu(1~^1U|Vf3;a4v%Q)G6AlUF@2nLD@c*lwq;KvN8v5xyV*Dc_0zez_o^XT6 zs#+2{+a!?Dc1iewocmYef3sZZAl-GEXhkOlVo8<44V`SV1p`J-?HC;m<1U;0m>1BW$>C@|ty5w>iRK=!#p z;ebF+laOe^RuKg5qIXH~>s112`xeGj%@#Tux`g;!)(YfY$|QQve4zpR@)F^I!0rP? z?nx3RFxFO(^wpID8LM*%8(t!iJd;L@y^Dkd_KH;D09NB6T5z(^fnCtX*|Tk2UY{il zpl?0Rk#Vx0Kz3>mXH$B(9CnYe;#1t7e~Po=w}@FjL?GQ`aS8NYH)C23a~-gQdt&aE za|Z1CUd|eNxy=2X*jd$_9J#^S(HmS}P(#=ii`$oByvY$RQR}C~{_ZpG`mz0-0l8~AXCEx*Qm-QH=kvJ)?4e{X0b4nM*gH3H zBx@HFR#?hO>ln^}tee4EJupg$JT#gkwj(oUdN!9C*_@3X$>o@loUKbEa!xU4&w$fs zysQm$9P+XYpn9{HnV@da3PA|5RrD~7cX7FkaZ7FKbb*gNem|6tZ_UbMQEd;V6>uQeUxAC@2C zznl3du70Akx;*^bd>8-4BmeOp4xIE(X{z^Ld;X~R zY)+Xs;4Adv`(c>~@H^o*8U=;}oYx4D1Re%)U?3O@62K7f07wKL0I4ra29JRI!2sX} fgTQ#8fe9c5i~+cYBf(hkAQ%S5fziMP9s>UZ4^`v7 literal 0 HcmV?d00001 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_nuc_steam_shrt04.wav b/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_nuc_steam_shrt04.wav new file mode 100644 index 000000000..09f296af8 --- /dev/null +++ b/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_nuc_steam_shrt04.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4f41e4734c410f8b27c9934381b6da9ffea6d70ddc2a3d99eebd1c28c9abb95a +size 112238 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_nuc_steam_shrt05.akd b/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_nuc_steam_shrt05.akd new file mode 100644 index 0000000000000000000000000000000000000000..439905be5b376fa36d411863ff39e6b4e2a8267f GIT binary patch literal 2380 zcmZ|ReQcCP9tZFrEibL@Nrk>p6nykh1kJg4RHZw!J{SU|fVY95Qlr_Bdg2>bE~0P= zG6cjP1YC_))FKa_#h!p!EQR7evktX|MW8N1p)tyB|A45`xL9&EaOC{{=COa6=p>(K zUNZB{Jo7v=^Ar=&{%WE;#43pkLSh8bcR_M5qTkiBaA}HVHs2L^r##gQ?UBh=VohPH z1)SzDG~4pyqaZs~Z?PaYXx^Pr#Hl%mmWSN@dntA!VET?jXj)5w>6d2a46_m7h zTLte`q*(Oz^O`w#e`^&C9hNGA=ocByJZiFX`x-UvZ`7fV9_>Qzo>on6tM+QXv@*-K zYXg}jIm^7TN3+nW4(-Bzz6Ws%D3dgV+6yPC%?SsiQ#uenXc) z{jsfD0Sz?j+bn)Am(5+PK}y-uJj>xoOIZeei_#z?rw+a#udD9Z)AX z=r}mH)an?Rw}$I1n3tZ_9%R$^TISM2n#F2nXcuVRMc=Hw=zEKA)J)B|S;v5e%Rp_P zPoM@)1TLg}1+@6ErA{C6t&Th$1GOgU8&J`Gz5(@6E^u(EPoUQAx6Gv??SWgh(Xl>M2KqrUz3g}eCS8UBli~8pKOl`i+ zqW&L}bP-;?99UiEE1;d%&6KHQu5<9ptaI7{-?6!$XnhZ$ z{D@fQlLM9+eSor{mbP0|vX9`GH9Hk+_IJ(x@sS8iFZgRD!$y=wdLe%QSCVC~?Ugw& zJqN7%!XuL9{-2XX7o?eVN+w|TtHUC!w-fDw(q|m$WJp1B8i6lNDG7}u9wU-9I@Qe4jF~`geEJrc8_!+HoeJm zr}W7X+jK%Yph^d<_|VTKOB6I(@k6bWxvP&^(T~5DG05E6BMl@Te%q@5%Nfby-=DDR zA45No34dp0yWW;LaK~=5LKB-X-X@vILwktM?~*P!3mUBGeH$fnOq1o6HB07>4^Yo0 z$-MeorGfg{TP@T5v}EqinHJ4hAsz6x)mrMvQOTUDXRTPjBbl?l#xhk^lI7056L?d} z9Jn=qvYdaGOO~Y(mKpVwwDJc84IL0(wIi7;3M@+Z38q53EvoolF!#(5$w+=Em^-ga zC~&8C34&Pb_0k3NK(nwiBcuVh824prw_s+`NkO$Ih54aDP!3*fvsB$OL60sIDu0#b zF5e)Ss+b^X49r;`SXnHHJvly5QX$mH3PJyyWT`hQ1*2!a4KsD_Izi{*Ogc=bVO?LC z)viyZ9(<33&pQNlmcTIJvz){2H(VnV&n=R3>Mo1CUkV!{$3=Hn zrR?n3Bl4#FM!kbU*{|xMEjRyF8S=&Gv~b*V=^)*F$GSgPjhQ7mf6MAQGX3~HvM@be z{_U%%+*e*LSBXh-;Ke)SqXoB0uWpTw!gsYy4>xW8sd`@i1J!doU!KNe z;BYy7mb}`W> literal 0 HcmV?d00001 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_nuc_steam_shrt05.wav b/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_nuc_steam_shrt05.wav new file mode 100644 index 000000000..d58fffc2c --- /dev/null +++ b/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_nuc_steam_shrt05.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7a3ad20f0ebe3fa9e96181567309257f55c69d507065c2652dd05183098ebdec +size 90230 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_nuc_steam_shrt06.akd b/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_nuc_steam_shrt06.akd new file mode 100644 index 0000000000000000000000000000000000000000..58e3b87351e4dd03f390d01796394c70582d05a1 GIT binary patch literal 3356 zcmZwK3v?C5835oRNPrMEJOdSB69_LAu9*5D^WP5OtCr%`1_Y{c+ky&3xd#y`(BnXX zLY3r#DG+iRHmEeFJT4W4gq_P!phZA(BMs6f#I0`+57VYRP7B!o|1a?zkDYVAy)$!W z{@vN#nVp*{glH}lA`O4_9z0;m>LNs8JI?OFUNumh>LX_R34_M*2#6VmWfx z?lh!j|79Z%TsB_DfCO>hIB%jTXzZRKy+;g6WFb}6Vj?JhxR$w>*P93u2d^@nf80co zH>QzIdc9}DB?~Va68!ZHOFo}8B$CrEF$t-sDh-J*T*b0pYcM48$~G2#xXF-M$p+?) zIg9bnn&3d(B$4WA*z&mbANbFZURtY zRxDx8-Yq7CqOHxwMQUuBiJ%}a!Mqte4C{Hsc*xzegN14u42d^XF>mn{W05XD#v*T2 z8=}0Otfjfc1Z4Ow=HwR}qE@|WA}Ds|uP^k8|EZDNq zkZ8vmrk}!dqo5|kh}sO}teBco{J3#Y%U8>oD0|j8$WF{+Ui~aX+!^DU{aMI(DCqrI z%GquvAa`LI>0^V9i-I$^Fnz~;h6J;Un6ol!h;BcMiTCqOa3bI6hT+UD>0yZ4{z%Hw zv%W(1>5qMlyqs)9)PE29#1;-SM73t(^G7cYV8Z{Azxv@71j9{uhfQHbU=)UuYw8bL&`n_OE{^Kni6wyNjCosf69Bh!Psh3BEr zj8j0|x+Ke*ydOw>O$}HSs`@7=l$CK6927cK4+^bYdt;b*XAS`o53Og(E?2-JF|l*_ z(uB_8_{pz;I6uDvA!IMsv%9Bs4~Ni@>~!Y*CM`S!#dYV^{T;*Wkot5TL{PN<5^zb;Oy*5$0#-5`Jo3jaEc)a|(8zf_1|g)TPGD|TIYf{? zx{bLxF931wTMGikCT)c{YQY&z++ou|p-{u;;E<80S!_=^kYxTl%!#f95*m_V&a=xQ zghbN<2pSiF{j@mcKt2S>*;~%MkqRtnE@DpFcp%=gpMXWdqC1($nE-)zHToi08 zN?95Pu`CQuO>RndCOBknK}vZM2&6aXf=Awbgy}nSf!I#Hm^aq}jZ{#;yiI+9=-VG) zZf;i~-n^kH7p8(nw!4)i=$8#dWnv6+ImB$!Fd)vA9!xLl48-oOmKxbF%A`i>g(Fg< zVDAk;ychd{B~P|W;kHV<^{5ovj!N~9_CR#y=Tag4@*F9UzWk-MNSypLvr#M~uM>_L zsghDDkb3zuY>x^rrBuw68riuYF}3x8)JXhvJ+sLUz*eu87U?;^X6nug$qHYQ3fYF` zQX};$js@8UpQ#gnlSB-zWcKWFNyK@K_wUtG?K4s%JA8@MNNijzZ6)fAF~~SAH4-nm zDO>jx2y*YT0x=df(}$}+WXgbU)!#ew!_b$4v6;3l(wYzg;g*Ey4!R}yH+{>_f4|P#yqHtC1l#| z|EJx)RNXh)VPES0jXEqZ#FO5?@y9S6^C$8j0LnLxpA56Rj)B~|Ff4v>9NfF+e%O6s z5S*_V4%cPh0Rz1L@Y#QIAgBLOczE+|a8pwrtbC>y8KZ?drRZ*fxd&++s^+BD`Eodm}i*is;G!Qwc8_GksqQQvXk^cb{709jt literal 0 HcmV?d00001 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_nuc_steam_shrt06.wav b/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_nuc_steam_shrt06.wav new file mode 100644 index 000000000..47b603173 --- /dev/null +++ b/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_nuc_steam_shrt06.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:caa63087ecfd42cb2fa021e8b171415fc19713f66e39d8e6f69519e933b0c414 +size 130400 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_nuc_steam_shrt07.akd b/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_nuc_steam_shrt07.akd new file mode 100644 index 0000000000000000000000000000000000000000..f4a7fd4d4d3584cad2e558df3e958c7ad96d1ac4 GIT binary patch literal 2252 zcmZwJ3v3ic7zgmLEoh+yu0TsEwwx64!9$=t+S{4yCJ+S?JV{iZvH=7^)KWmOC@e26 z7@?AeB7$s15R2e}v_NmCS)KxFIa*#K-~k#N5j`QG1q}XYwlyJflHbnGmv6F@ncbO9 zB%*%(iDFTkAzV=O`-v`~Hn$iyfwezJIAG=K!T`N}ZzU2pTqq+ZRz>0PkZx6BIJ5L2 zrRRYfAvxokS1G6N3J0<;WK`)8&b%e0_>E1gq@eG(a3K0~rz**t;|M9rOO^2Uv%&$L zT~#QhMo7W*S|uBr7wg5R5D93 zHd#W7cs7bCINfIo3!>APiwKw#OeHvXt&oh~eT5EYx+W|r>RyQaLO}%uuIcLqfl)n0 z=-|zLR-uDg!VBiX0ZK$m6Ovw^A`Ebr`4w++qA-B$bP)-q3wrCeEt$`?6Ow-FrcI#V zNDz|K;~SeEhjR;T6P%>G3bhQ{lJn_4g|<$#CFhx9#f;9g3Ct5y6@ArvwnW8##jH)W zl|@}_6Ue?AA_3dF+R721P12l`A$k+uzvQZkwMn{!w$!;eM42$8Iz&&y!Lkq?fcf1}6$xLZ+2A8}E6SxlMw!w-ONa2#+ zYnDG7A{`U_br9Z=>^}^Fn8RE$57qKKh^Fn}o(?;>Q{pIj;xad&E+xh+iJ zKM02JTONSmg0Hy+;R%}*uXUY!V30r7FF8rSaAnjH?nt3ZC6CB2?Vc8+c#{jc2dqW2 z70+?O39Ls;6>s^w+ymDBjXVg}p?r)zpGQVIJPI_$R>JwmxK#AuVQxXsw6)v|;k&Dq z;8zt~ii|zxiZA04aKtL0R<__qOP2z@h zbFt!NFfMsZhH(P#-~pVZis6bm4C@3&Om9X1=qMwwt`FyuF)vlo=l;W_NLB|fnXlYn zlGX2dF45>KOa~`(6Ei^{THzYIfSKU*sb$o+mKkp}sz>1#xN78c`h@X#P! zK<7He%#CFvRd3ViI~f1EYecz5FMwyVD`}TTt-%+k5rbviHFKy&`QYv7`t6#Jq!asG zkqbVO7O!(PS>+?Ct}o)?N%m1Z!v?c{=a|w}<0%nDhw2_j7$U`ME zYB074xkTGY%HvWnMMYg`A(gv1w$)HTC?`-MlFDMLAsEO}f~gb|zrQ*92Y)fiXMa1d z?9Sx3vtxu1z5*fA5M>k>ltiWwhf}w02#+PN)y7$9Yk~IZlDv2rg8dg13!Tl3v&7oF z%7yFyO^vhU2mMNH=~wRd(Q)RvZ7Vi$_oO&;TTZGZn9uD~K5(Y~qihH-+^Lzrolq>a z=A33{jf^u->t*Eyr?5xa;5@jkY)HP{q6PolrkK;NH1qy@irMq`YLOzPZ18@)OZh;& z^@|qSyGt=^`yI`#Uav&WdX>1+s)gTdP!ha1BFe-5KCHapsrW&8!AfsXLAJh4OUyg2 zn6~$|HCa`!Sm?tR&8b|YT#z#=G;4LKVv+CW zYO-g7vcRdi5o4lmmSSenNX=OmjWN^ciAfOU{hBnpV#b33^p{aF3T7b_XTta8QE?E$E2Clu z41SbSH9IQUnVhKThK!jho0^Y_cOW8Vos}5o^(x(MG2g!ou-F9+e$tT$X<}BY&HY+=>1skrA1<6x4Nu0h( z6EBDWv&;I>-$&sECp5XSl|tZsHZzb1o|%KhEKyG(h~z9M2kcjmXuiu$1(GLMDjpxE88CN)~wkI-_|alCW=NcQ%p(a{6X1eE$$h@I}v(3BE-~$jjDzriEis zih%FhPvnKfr518Px-Nx5T-&P2u8%1M?!9H2b!!8$y+Vu>DgxpkXK7JkvYxKJ|AvKcCRX>cbp+XRHdhMUGxi9+w2#s!L!LPvS6S- zWkG{qu*#B@1=CT79S;>+e!=p3i?xB%#o|85-dEUgB=OLBJ9G{WeW%FiHJX!)V==cBt literal 0 HcmV?d00001 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_nuc_steam_shrt08.wav b/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_nuc_steam_shrt08.wav new file mode 100644 index 000000000..c9135486d --- /dev/null +++ b/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_nuc_steam_shrt08.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5a3ba9bc9f83606de94dd107dd0273994a1ba583a8e4a41da7627e9750e64b88 +size 67916 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_sprc01.akd b/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_sprc01.akd new file mode 100644 index 0000000000000000000000000000000000000000..73db1900dbf4c35d25a6bf31446626e015b63456 GIT binary patch literal 1060 zcmdth&ubGw6bJAzT1`zQtssqu)ObtqqFoPZ*?H#RAw(pBdMKrYpowf(gx1!QBG@I> zT4)Q5k(`V;zjI5DI(~1syP(=3p()GH~W}j<_$9~ zLWse3AzX;oQ+&_@TZKp>+TV&!399~|&MG9%E;$0MuH#M$O8fRYDG;8Al?eFKeOy1; z$L^}h<$06CzBt#~ev*{py-bf#@}4 z3L^YnS1f-_w>n~aFc%>M!i)V>f74G>w+r}(e+a~icZ97Di^0k?+IFf-h7B^Ga<^>x@iIICtixe!H-@tpg!i7RlrscZzkJN zOyi!SyMC`!u5q4?TDPEMKoh99quSdGZL;HZTDJYp>#l#v7yMGcW9^qmx?{TQ(0|6w z|IKX}hq-F{h8+G!fXAN8U5GthyXEA~fSk+ENtH9dK966dKpmJk?qNPh9K(Rfnoit+yRiJ6uqu&9Tn^R&W;AyU3Il=3I|FbiVg%L0?`uiAsqvj;x+aKGGh?>*<AGv=!zK=C1zyX z+fmxpj)FD@;|2z`?jB?&dr&WXhzWvRf zk3;d~IK-BfAP6eKgk}i8F@yAi1NzQ8AhZ{RiTxljyCYD#GXlZu4%oQr0O465=nH&s zxaEPhZ4dCD8X@q^2#vtjc1$ML+;7j=?J3d9*+;typP=m7>>-!&OgI lj;ic3TNM|_Spk9DpGU|eaQWpBP7_G$|H&zrcrM3$!f&UJ6G=5x{ZCKs*W8)8*I8e(+A7n_=i5rwgc z(x`1lR@jU)pUz>w_BV_Q~ZHZhyPN6L+1U zA9q4gTNLJ`C`?Q{K(pik`MDiDx^l4J=!JA^FQo3skbhGK-*`9ZA9q9eR0r6LI$*SL z5ZH-9aFz#Q^->Tlh5*Em1fWhU!)l%kIo?)i_O(J)Nj2!88f>8!NDsC^oyiSpgBy|u zOkmD2f$gFL%oiNc^S+Zyi=CXVXxh|B&&-Ta7AisYp%T(hd@wTS17C3$j2`L&>z*qx z^0NxmsSvmc-24di{mJ@XH|0Lu3)6cZ6kS*K*hNOMZrbvt<4g z`NIO9cR9cdk3}q*#sBe}{Hty7qgWBXL8E;=VJcYQyJ=RU5BOTfBoCgR=R!Ms_%-iw zU*$DZTFddH0i$77GRD0DV_)^a$>m!?E+=OH#8D_y6FUi!*ET|&wTswJhZNll9|rBsAAIh)_sj2h&hLBf zIZ8r^v!4)-jlOmEU@>%n5Ucc3$`lC67Mz0~l%Mrrb<>RT!7Es=xllgm!nk0^t!X<> z`Lb9IXHoq;h>a&fRCWb$iVL9lXa-G{87w3$Sbb$dUval+!QCQBgkF;rgOIh(Qp*!k z%eVSDtQ$E@4EgYl+J~)@fZ~pT!f*@+j>hn#s@K{3!!l&gr&>PqVHU@*x6q9_x@+^FTKzcMq}9lnYsfUngz(6T!2Dz0=7O) zK;)epR4?72Y$V|pV{JPL)m9SRS4~iuHbK?uh1Hv0Fh5%X?c)_7eZQ#q{U;^8I|kC& zHZU*R&XUp*lG2GE6|h=XfJrtE_01d5;O;^EhX<2GC*Yeu z3Knk^TG}9pBS9F@yCHMO4e1=q&DcOZvq94rHfU#i-QRl`Tc~}W+y7tE+WXksXjK&PVv;>PhOUty3v)*>IoQj(sp>P6YV!`3Nu7Nugv& a^Gm(=Fb**!k8*~B!LC2)W=I|nGkybRq$N@S literal 0 HcmV?d00001 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_sprc04.wav b/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_sprc04.wav new file mode 100644 index 000000000..372a69970 --- /dev/null +++ b/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_sprc04.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:03fd4c6475f80a9423fa7ba565176c65a1cb1af51fb72a5d67170cfb309cae63 +size 36044 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_sprc05.akd b/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_sprc05.akd new file mode 100644 index 0000000000000000000000000000000000000000..181631a61d9f10b9b9bfd960da8a35e8cf51e3be GIT binary patch literal 1060 zcmd6mQAm?f6o8Mbv^k4`*n05c$FfCFtADj%|2>rTB8;-IJ(Nh)3@ZqOAvP8NAK4f* zVLt7*hgv8#B4~t!r2k=~!UYWmg$xp@CbeFwrx1FmbE!QDy$T-q?%^EHx%ZrV?`Z;n z0T+OcwLZ@ai?RivSL(o$mFrou%nLzsz6z45=rrfiDRjx8&<%sS_avxwSAyQ`kI{@8 zqrGRN1pX+My#}qe8r1(RN#2J^${dN(NneyajR8`21_+LSo(E(AW;X-r1~+A!-Sn<- zo7NaOG)6xL$0)bbNzV73l&-W<_EQ@ji&QLSuwucie?folU)ZSH<=q!P+A*8AV^>`e z%gg7mY8%Dm&k-!xu3-PSKJ=7Rm?)*N^k4$#o=#wOz{IZWCa!tMvE&=a-A9Kob9D&K z#~hpK!+6n+$`?1n@C!fOVgS6Gfe*jh(b=*Omzzy|xst-<>j;{~2!<<@I8&ZPXD?zr zjF?VUg+9%6qoxbgHmdfmym9T{*4|(GYWG{Kt4_u-+ZZ`JQVw5k7Z=|eq9glAv;A{+ ztbWz*O!-88=%!{n_@B7^U*Ebo&Xwuwd~AoAd{0sAV13~9v~W3cLfXb~Tv%sDRi0q= zR6eHOf0EEnd`}5S%am}Pzo*?@98s_R)>WA&rHPR}*%^6GBh$caXL$6Xo^dd;H`(VO DIZz6U literal 0 HcmV?d00001 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_sprc05.wav b/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_sprc05.wav new file mode 100644 index 000000000..080c2596f --- /dev/null +++ b/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_sprc05.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:88402f85ab2d69704794cd349f3c1ebc9d96085072145fa726aff5239d97499a +size 36044 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_sprc06.akd b/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_sprc06.akd new file mode 100644 index 0000000000000000000000000000000000000000..b288eb19ab740ee453e78eabbdf26037d1d4db31 GIT binary patch literal 1060 zcmd7R-%C?*6aesVX1Yviq#{0u!zX(Q=k+0S--AMimc)ucr5xL34YF7^H;-B zyF%g!gym%JNoEL%V<*QHtO%Aw%>2<04Sg7KC7}@poog8g{Q-XAa}W1$4)^=xezO^4 zwgSe|D0YSEK|^&q z(FilXnqg-NV^fFH#%7p(-3+J1DhyhyP;AB13H5VR%$*$xmI-r`;UEzXqDbBy^3t2mU}b}E@|r&8Ooz;*2l z-21@>iA5WH(wiZ1#tiluCtRC$g88xslJy?&UKoYh^P`~jN>JsLAQW>#-kcM>g%Sjd zB-pwnf##wF^~nJ!Bh&9q;9E4ohI;@~4+p^YxfMdotq>gVhD4wnv~dxFZ$Iqc8t2<2MHF{0ibb?~uvenl7IChHGF z+TY}pTc^1-+{eehO&HSj|EY`q$sMSpUbX!|j^6EL$-c^SDEh_Myx`Obe=xFZ*gokL zI+Y$_%HJ(Gp4}6E_FUz^il1|})@WGbleQOJ*&N^NqgIwp=!&!BB!g&(x*qkLnIwyx KAnIPI>-!CUw@yv~ literal 0 HcmV?d00001 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_sprc06.wav b/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_sprc06.wav new file mode 100644 index 000000000..141c18573 --- /dev/null +++ b/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_sprc06.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3aee2ef101359cde8cfc8d708515c0cc4709e76251a57bd37efa17e3639eb332 +size 36044 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_sprc07.akd b/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_sprc07.akd new file mode 100644 index 0000000000000000000000000000000000000000..92565bac69a1576872c3e57ed3e82cf06f98c8d4 GIT binary patch literal 1060 zcmds$(MwZd6u@t5>aqnB9MOYp4?WB`?TSh5JB_efP9iL@L0j9HFqo~27_=d6SEpPy zVt1IZ2OmUaIVxDxgBTuGDqi1447`Z+6tagsq!p~U&b9U+^cQ&G_nq$?&fz=f;~XQ$ zal(0y(~(Ymq=UqIn&Z5rzXu$+5Okp7xf{zdH-=g#Fl3lO(*-}?HT$u0DUC^@y=4aF z<{1>0U8ojZ*q04sbvBH(%{JzQU@ZkbgiyE!3h^zSg8GXTs5@Q|cD?ZC)g-9-N$^Et zusj-roPQW>zG0BZ1dyHzpw@yQ5Y_8#px$Z&$JJg~xY7&0!z}Y1WEqv*a}v-~6OFm0 z>(M-EzQ#W{dOSs!5Ya?vyQ4|@y`61ry=13KjtHQoYX<{U_x?2cZ^`p16ezZQDi8Dkiah5O;e*mG+9N+)| literal 0 HcmV?d00001 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_sprc07.wav b/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_sprc07.wav new file mode 100644 index 000000000..148c6a855 --- /dev/null +++ b/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_sprc07.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:39173b6f262052ad4f09db9231ca40ed665381d79cd4d33f444fc4c01b4bd79e +size 36044 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_sprc08.akd b/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_sprc08.akd new file mode 100644 index 0000000000000000000000000000000000000000..b398d4203f40334a7d6c005048ce1ba68e0de493 GIT binary patch literal 1060 zcmdth!AlfT7y$6s*4kPtJA&YK4j!aaG9n&)9}7WxSP(}j5H7| z#IP_SBe-5GjS#`D*w0No2zlt>X%+Ec+m>P$9uy?{-sTd; za5ZBtiuxz|P?Ik*cAsMHj)Z<9zX4>Vkc*&aJ%aMLS)AFP#jm|dy!R-HQiEQkbxdN6 z98N{iKOM!`$2ev`#BnQSWBs&^FBU9hX$vQILTLRAVSlHA@@)e()Nv)FW3y)9{HTG) zBMIEq5~vTTXgyXjn-8N!SY;}s`cfI%+WdJY&R(56;==L+2X=|)&JYy3hT!mq4FMAV z(+=-{x5Gi_D_A4l)ek`?J$ew-XF-_w}O?Ypc4__}5g-{J65%GhU3*7F`kZ cMDr4{?=nJ9or(IydZH!|DJPf76>^pQ0~hBEs{jB1 literal 0 HcmV?d00001 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_sprc08.wav b/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_sprc08.wav new file mode 100644 index 000000000..adcfd651a --- /dev/null +++ b/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_sprc08.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4249c5192422d6d012153dc1c0c347bba026e35b12e93e492e2d0f733da96071 +size 36044 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_sprc09.akd b/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_sprc09.akd new file mode 100644 index 0000000000000000000000000000000000000000..96d372af850ac1491d3c6213fe0272017b1378c1 GIT binary patch literal 1060 zcmdVZF-TiM7zgk(#@48%QiTT0@V0iaXh{%l?ydm`-4tB{rD7JzAo_+54k|BV6#7t~ z2sYgw*dm4uF)BoS?|dRoE`>VSf>o%3Ls1bC5kdc#nn4hpJ@~!vy^p*5xVv{{gb?*5 zAudF11rIc(kdO{U!#J{4*x%K~9-M^R#35|&L`40ch)6x35?kP#j0pu2nL(j~IZ!FW z{gpz?=vHV!w=mV>qvp(INhp~muevSC7@4viFh7{K0j;0c?OI4*Z`clyS<_Y^9go{8 zC>1@n2_f${OM{2@BDeR!LY@F?bAn$$c)p7_gY#GC{rfskjKz3hJjS;xqP*`#lzUG< zas{Hbja;c|;UCtz4&j$_?;ZSKf!Qvl|4gjaxXLae$YF{<~M!R{Vwib?Huys z7W)@xhWyjJGj;E)zths6hxGSoine&qgL0f~Wq>Q5t0C7>0&;V543X=s?Z21K_MYsf^^IG?G_8JFEy98@_Ahh#595LDbvxmWSm2ytRtN`P8h+ zrPEf7K*NA#5}2reRRu6hcilFG{k*0AI%icnd|2-EVc)zTVa|_BfhoKmoWe+J2$wzN zk%sDohR2f$^xQ~brJO|PViHGZhR~TELbdiXnq=9fVd;Q|<%e#(`q+)&3>B)j)TCN_ zm)-`d-WCb?m^3yp#{|(Y&afDP!w;B~Ks3yRw9vg~wTB5(3br$o6uTxBwR=*by0>g6 zkx-NsgHiUZvx$Gynz%ll;{I%kzk4&t_ZJ3voi6w(()+{U;{?9MdGS-6_g*r1W6a>A zw*=1#!QqhL88`Lc`g!yBeqO5i&A>)Hfp%ymTk29vfsOUN@ttMtU;WqLqlRLAWG9h( zN49&z$Jl)%!=A6?72A67%C%KxVfF-DGE$1|=zqq&UW;uSN4YY6Q;e?T4O)ld6WtcvWx5{ Wdq^FTbCh$cC-T|!3jjNj^ZN_jry*bf literal 0 HcmV?d00001 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_sprc10.wav b/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_sprc10.wav new file mode 100644 index 000000000..6f23ca8f6 --- /dev/null +++ b/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_sprc10.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:09a798c0d1dcef56f32e32ab84d15ba30c570d47db41f58f0aec03833291f804 +size 36044 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_sprc11.akd b/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_sprc11.akd new file mode 100644 index 0000000000000000000000000000000000000000..6525636732d6850b37be426d3439397a47a6fb14 GIT binary patch literal 1060 zcmc(eUr5tY6vuC?&G`=`f(8W%85j{5MvUA&j94O=_#;Y}nb|`S^TExe4Q=|Hi#18| z2fC%qpoh|5lsHC_^y7DGBWRF`_#{60U}9u$(H?w~&ZYJs^yG^NKKJnZa?U-!@4eg- z#+dssV+P8yMhivxe#Y7;OUv83^nF_|8?422s1|b#F_ar)I5yLQvuX>rpKHdgs%EtI z`?0FekJwYAi_X(w{i{_~06s2-V~Pr^N%(iy&N@48p=EFIY4$ zI5z_@N^B+iU}dHcT0H?c>JGq1*$WFnFN7b+5SL|O6*3H+kimY>0V{VMki8z|@heeI zBhKz6b}hr>?=t-PjbYem9R~Yx2dtlVKxLZ`mKuGKD^?&}q<}Kr0M_UH5@*Ech^4ok3F^ob}T#QueZ Vi4gvZ2zvIcm@pHd`~fPMFarPp literal 0 HcmV?d00001 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_sprc11.wav b/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_sprc11.wav new file mode 100644 index 000000000..7c69221ce --- /dev/null +++ b/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_sprc11.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ced561ca250e5daf23096b155c3ef5dc1129928c97ebd07ee88a64f6ab2ff73b +size 36044 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_sprc12.akd b/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_drives_sprc12.akd new file mode 100644 index 0000000000000000000000000000000000000000..a1540ee2f962c6c73075eaa08a054f918cee0a2e GIT binary patch literal 1060 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 Bfc^jg literal 0 HcmV?d00001 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_thrst_electr01.wav b/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_thrst_electr01.wav new file mode 100644 index 000000000..6cfe72741 --- /dev/null +++ b/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_thrst_electr01.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3e9ecc6f2c9a06b1d325abc388a8f431c2114adfb885af82b9b7f8e14cdabce3 +size 36044 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_thrst_electr02.akd b/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_thrst_electr02.akd new file mode 100644 index 0000000000000000000000000000000000000000..06993cb3dd4244e8a566af3c1339913ec4bbd64f GIT binary patch literal 1060 zcmbu8Ye*DP6vuCx`Ano1A6YS3nq@+1l)7`qDGY?ZEJCGbI+=<==@MF6Qj=+AF1Cq< zm8;tWwX)UH5_QjYdifzDR*Otc7!49aY)Pmji0)K=2>K9s;5UbRIOpE~Id`rPA;cI! zhzs*_5Bo6VTnR~MUf$MXC!OPV`DHMYo=Lm(WD*UAH>iG2p^9r9J+Qfz`gLEYj-+9f zLtF55YZDEO%%ajR6P39WG~9WfCXVM&T~IaU7TMA9A%$`tOYrR?Z|aN+r%L7w`gsi^ zsoX)8{!x??%Fr*n64j|xREr~!JENc>?<5-iucEp$0>9-H(>C8|8ps`{iMer7SG_;{O8cgrl8O9sJFL_vD27yL$pg}~@Sp{Oui;M|6w z4Wa~N*dWM`3~)A8fD*bGi0K)~r42yfD99JffwPtYF&qO$R|4v#65vi{fXc^%c={-i zrD-4<@3UK%q-S&AI46>W^`y00Z%qyZsZRjXF$U_& zc96E(!EoU@tbhLylr1)p4%vWv*9_LiS}<=t2i8x8z$M-Uac>nUFOGw3+6Q7`Dacth zpe{cLQeq72D<9<4b-cXFo&R5r^I78Te?5E8T5NXiv%2Q7ST4hjp}if=tW#rrfn_zc zOn31ve}W~3w7#|eegezpVbTBq literal 0 HcmV?d00001 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_thrst_electr02.wav b/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_thrst_electr02.wav new file mode 100644 index 000000000..c67a6ded5 --- /dev/null +++ b/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_thrst_electr02.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:255d2115918eedb0b90bebb9e577d52c7b56597077bdb998a5b4024e03a1b5e2 +size 36044 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_thrst_electr03.akd b/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_thrst_electr03.akd new file mode 100644 index 0000000000000000000000000000000000000000..f1d0405aadae4450a68fc8fa7e3612e08246a19b GIT binary patch literal 1060 zcmd^;(M!}p5XaZ+^2{uxh=?$@?4c;6;}?0#j%*PnBy>F_WK?@xK~~t0=%664pBX`Q zNWpPl56L}rhZRZ0DQ3U9enIr0J{$&tWU!GCMd3jp(o?gg4?_Qe1D_rC%M8QJ>{c#Gnd4l@bM|46X=v?V?WyeF8O5~RWi9?tf^P?WW zh4Mou@>CnD=~nbM&!VnyF&*1c(CtkHJ~@oVz7(3-XHr|iYnT(&`On}@ya2V&h4B4R z;9rKo+dBa2(g5(Oey|7cg4~jT=eacOYJLPV(gTdgK_#N#jmN=0orL11JD?9L(1$Mq z`}AJO11Uizb}t2__Jq9fQmFcR;3v)jpSuby+XUgCGoU6Tpn}&yMP{M6CJF56De%)! z7T)v1UW{h;VCMffkK)TnJ4-Al%-=C~G#C@#hV!B}v|sq<#bj)!sJ(qn^lq#azTki2 z-u%-R#Zj(FU!>9fGBH)R8dlBw(bfPoM}Ld5!K|oj&o&m0bXt41cUy1IcUxBkMN|@|FH?uUJ6lPZUQAyrhzcS=loNjd(BTFu literal 0 HcmV?d00001 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_thrst_electr03.wav b/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_thrst_electr03.wav new file mode 100644 index 000000000..be474a2e6 --- /dev/null +++ b/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_thrst_electr03.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d7df661747ce3d23dfa90c8a4968b5620f3cf10ca4e8cd625a4db53b19b2ddcc +size 36044 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_thrst_electr04.akd b/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_thrst_electr04.akd new file mode 100644 index 0000000000000000000000000000000000000000..61706f548c409ab56d820b623e09d2f54377e758 GIT binary patch literal 1060 zcmb7@Yitx%6vywDZM&3iyNC$|kxsQz114^%DJIPSIw4VvZEzC|X)whBLs?(+5k&D( zCtavrTw$UvR%v9KP}o>a$7YFW_grS1;MxdrZKAdsbV3MzBCbl2NPXOi_5+DuILYsx zd;d8nIp^Ga%Nb)Giy14D-WZdMG-V!RTf9x8iHtA&lRa>NjM5k>Wy7+b29ck*L%7=~ z$lB(Ro}420V2N;lOHh8>K61(jNZWIc?D!edqO!NUGvv(fB)2L?9sLP%>wlmyAEdy_ zB4M`4{8TR)1ASzC9VNZ?L1MW|QobxE=Y?vra2pwyYclMwU&mOYa*XXA|5Q#geIt0Y z*QTziY&@%KYt}$%eGflIZSrquLCG^K zI2*0u_g?Jg+E-6;t2PO3$1Lo{190EojKZSB&^p(n;Cl^b4~-&gwZ_33cf&j+Yo6_fo^FTp{cafUFe2Z@ z;5^U{W#dtVR+?}U4?}-LYONVKcRdgNqg~L3n_z~LaBr!Dc4QTlszoqfI<2z4_f*z7 zPcki_+4>=mD7h-+ce4JW(S&jX9QN89IQyb5Ivi7-$j0P{yvvP_2;;ck6U*h#L*N4~Z M0!f)9ASspn1Bmd6UH||9 literal 0 HcmV?d00001 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_thrst_electr04.wav b/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_thrst_electr04.wav new file mode 100644 index 000000000..780727e16 --- /dev/null +++ b/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_thrst_electr04.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:31af1e4a91aecc12a913572bf6f2d74b554f0872329ad6471908fc24b03b7a11 +size 36044 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_thrst_electr05.akd b/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_thrst_electr05.akd new file mode 100644 index 0000000000000000000000000000000000000000..118f4366e65059e13c6eed7340c1befad27fbbc5 GIT binary patch literal 1060 zcmcJOYe*DP6vwYyYMSPf*~5y4kjN-mSp&5>(#kyJN=jIWTN(5M2Pu;b8;TwxMt3Sd1by|uZ_do0d+wZb?md2l5NQS> zChFz;^g)f8Ku8+(+GqwUD;FUXbpqWVPb0tDhDy%~)bjgK-|`vd9p30#!lC>)4z-uQ zD9c}3a-H zN9J2E3gJ!2d^n4i;zwv6yo>UwG~`Vek?|-+F}W2jj!|^wbK<1Q#;+F%`wVS|q*+AL77x=ylplDW*ZMneIZ2;HcSC&s4V#%lpB5%#+ zeh6M1-?W6=Iv{XTdM{|#U0|O2944Kf$%)&NxEKC1r#xNG36ZNf@~9AqITiG0$G{aY zf_|qR-1UR>zb)YG9|nG3A!rW|f|9WY`0JZN>MsZ9PCGCQ3qZ3LgWK~IXor(PZ>s_l zpGk9df|i{QcC8U4?~@<~l>;AA2Z=&hGQXmx#DPEco8mgyhBqy2tPli-7S^>C!t160+cd)Fm3c!<6@lUEW;Xt3F#9Cy lfOXyeLslcsFh2?%abncqO_@ybqD-O~wfa!T>hh)UzW{12X-5D6 literal 0 HcmV?d00001 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_thrst_electr05.wav b/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_thrst_electr05.wav new file mode 100644 index 000000000..76130d298 --- /dev/null +++ b/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_thrst_electr05.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ddd85bc7d98fa8ca0453101e4c903e9c26dcc8db53caaa9d4c72b8954f3c7a71 +size 36044 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_thrst_electr06.akd b/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_thrst_electr06.akd new file mode 100644 index 0000000000000000000000000000000000000000..3d9ec3e65c93d70030c7211b969aa558598a1749 GIT binary patch literal 1060 zcmcJPYe*DP6vwZREi*$)$t??~B#RQ%9-F#zh7B#KzAQ>Y_HfE4nKhM#MUQEzG}79v z$jo9SL(77xj5POLM`THbVlhLdFVn*mdTsW$g6>d$5c=AI-yH6rb2yL7oghMp6i$dQ z^KuLOFys6P*~q-k2O)`g?&7XqL^8Y%<-TVax1t=CYeP8C;!o`j-5590fb!rW6e9{y z4&O;jckiK|pS!4hNur#(54rlu$lXjv{aF~=Vy9D`tfJzZwWy_7kdun+^e}rnl~UBc<++itI#>;J}N5*(R-{B^>jCSzOCk1FO77V-;NnDD9F<6=qG{A@;i;0CMLVpav?+Tz?Z{h5wSo+)4>zEA;3_JX>nI&R zf~x;8iWPOpb?-&n`Z83Lf1!8MZFHvAq8^ipQqOg?=l5gBCO`Tu%ZEDEYSiyFqn7#A zr6f;5WB2m1NFZ)IXwMIWA{Bvm>sgSkXMnrm04etlkiHY(op&DW+slEZ7lORL3%m!W z3DToTVJK<7AXm%;?o1Tef}26hO98QS8*pL|aQmZyRG5L4Sp0uj&6C~_RwC{I8_fWv zeGcd~R?z*!fD9}Exr@zFfS|p53S7Vg@Mg>s%uRCzwWvxMayJRy{wl#)R?p5$1&_&3 zP?yXQ)Z4=llJE^GO(uccQVq^`3dHp{f-R;NG_wX`)KL&~E`Zpx8T7ET5R!HeIQ0~G zvK*kb-32lC3g|EQfS%_7&%qM#e!c~^6t>qTH6VAM1`>V&xKtmIL(lR4Y$>DnKYHJW zX7pwBXY^(C;ls3ihKXUk9m6EcYyM4TEVv)G@V`Qj9Amh pD0uvKJY-jV=Z!qWf*9i%0Ssd{qt*mQAj6nvJj0l8B7^-3$ZtSPbIt$& literal 0 HcmV?d00001 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_thrst_electr06.wav b/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_thrst_electr06.wav new file mode 100644 index 000000000..5374edee9 --- /dev/null +++ b/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_thrst_electr06.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:26339e85ff27f5caf968c6812e624ac989f8c42e0b4f4ad10a8a80a54c3517ff +size 36044 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_thrst_electr07.akd b/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_thrst_electr07.akd new file mode 100644 index 0000000000000000000000000000000000000000..3e5508d82045a808aec104e1354ef16fd78284de GIT binary patch literal 1060 zcmcJPX=oHl6vr!rcI|`oHS#4vaA; zi?L*##YKJ5VWcoN$Gf>zAG0!^#^kenGG6v3c78V5?Mg_Fdqv@17brgMIwf|TCI7q_ z`3JnAJ$=_Gd+IXfZwabE=}NUFDAel%LItyjE2prV3iN(N{+e{vbqH5ShUY6cx3fA| zFjLhp8ldcThbhr~jGUq^B!?U&>+hu$O>HK-yqcnUpNMrlMPgDFiJ?w4)@3XbT`J(4T!;AOGYBj^1W_M?8yb)J`t4|HISIyskfB`&jM@k}xDukF z48E)gL{lbbNoRAlg+adqcjO&zOihK1XzvYc;kHQlKJ7!iO*s<5B?ym-AW(e(@lY|0 zr4^9R4#OEy4d3V8kR#T>&D;lhr3CULV6>kEYyT$18;c>X?BrJDE>G2){_);==jxr4 zr~T-wx32fRB&{vhq-nfw$BU;YUhrK-Ik>;LjwgQ?-=dOdw|wBC(hWSh|1aiU{-*sj zPuF_oKWTbgsCjgx41ef+?XTlJYr{l%duY?Z(#k)1 rPRGZ*k*A{ntpB-J=S2riJB_zShQ{-ku4$ubukpO;U%*#yZFT+v$E0{5 literal 0 HcmV?d00001 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_thrst_electr07.wav b/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_thrst_electr07.wav new file mode 100644 index 000000000..5744ca504 --- /dev/null +++ b/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_thrst_electr07.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:be41f84a5239f1e6cb68f7a3ae3422dea2b32aa7dc6409bbe94a0f31ee558dfe +size 36044 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_thrst_electr08.akd b/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_thrst_electr08.akd new file mode 100644 index 0000000000000000000000000000000000000000..7d0820cd746d4cc849a175c59895ca6df020bcbe GIT binary patch literal 1060 zcmdUu-%FEW6vrPovuUda75yOM4VqX+lnWg5J?}<{T}4BYCA5_2!lH{^B#BzRF7>8~ z(^;`5^%BLh#0@kA^E|!@A(hZ;l!G8xKk%k5UW5i3N$07&5c&sv;PV`wFXwPL=RC*G z7z=G@%tBUuMi(8)%GepQp)1!>?X)7Rx`0|~4Bf6gt}Z`D--#4T^HFR#w}|QQZ_p9o zXxb*w-;_Z1XcW^U(`bHufYELZLx(@1Io5~St~qN-???(Q2zu zbJ{VxP{(zvhhHpDamV<5Zd8B3sB;L7RFeA(JMeTM!d2-SFEM+#84U5QJNvj14svb( z97?ubXw27fv#f+0XBUwbWzcq`mg}=0QS?6h*$ckfe2B&ow3n@*|IonkD*;A9AE;LY zpjO7gpS%l3TLeP45}eKE8mB6h?B#LT;c8M?6L8xCkBSOd`h=Nar=O5Ir1OB=YO?TeiSRhS84RVL@W*U z!bY;*J@4h2Z_D!B!cVy?)hkyV+UM!7X?Mj4+GJO~x65@*|R70spggV1*m{N~L3nZukjGsmA0A_WuT z#=Jbv24;!$H{eWwA9cn>Q4%XqgYPsN>JCz6Y97UuN;Krvq4xC% zYDLk=T~bgiC`T!%6}3arNKO<{`&uLAxHB|0KarB9(Q!HVtb?UCypqVjZ#qcDq{BI~ zfIGHW(c-Y<;FCLOX+TuHCQy9di=0OniekEn*FHke2<6u`0T9!IcEx3p3 zqKwkmU38|uK`CJjSx4K_6!Nd055MXm?utNS2T+yDZ_AU9V5XR8E~b{@3A z5>Q%7fV-Ft8gBw~buo~QnLsvIfUP$I%(We$#@B+9G6hzXw?NdaB+@XO#8TU}qFia= zl|A2i$*D+roRW;#~jS^=`W6dI#5etC*J0@MP${qucP% zXTJGo40J9iyxTwVQ|J&McG4a8H#YHZJO8uq;a_dpJ{GHoFVooiG^4%725XpKtZN5- zzHPP~f`ZpUUu+22XMXYFd8J03j>!^Zcup1H(Eo#vHu}H^d4bpCbn|DdX6U*5GQ1hA S<%wRCey$%wui1y;#rOj=b5RBW literal 0 HcmV?d00001 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_thrst_electr09.wav b/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_thrst_electr09.wav new file mode 100644 index 000000000..b7a5db003 --- /dev/null +++ b/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_thrst_electr09.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1f3276f29927ed6a6dc30218aff4fa9935bd4d2a698f4b75f044bfb51d8b0a8d +size 36044 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_thrst_electr10.akd b/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_thrst_electr10.akd new file mode 100644 index 0000000000000000000000000000000000000000..dea1ac3cb391b9749e94525ee4224b51e4d8709a GIT binary patch literal 1060 zcmcJOYe-Z<6vszX*K{kfAkEa9gbIpnj}KP&Ojo6hvRbwWrIB~BccfeNFhaQ{mYT>G zWlLeK;F?*<8fsyC#;YGnLvVW#y`)=4Q5J1PX4Z%1T7D4v+Q4rfhx4B^bIy#B5MrB7 zh(8~d+q~mVm_W!DeXAmBkBd;M&PMso2DCL_MJfI$5;llr(jdy;*P$>R zheFUiR0g8ZelUq?yC^d~y@lGPYIL4>iKMg#%@5C`FX{_QIWw3em@@aiJmxMx$<)9Y zmbh^~Q&(p(Qx7nQmdd(Al9~Oc!kp#%nXfON`Fyd=dtoXgTkoTKH-04lqI0;+YQq25g;xK=IAC6eo=60@t~$8w?gBZh4al0ykm@;4jU}x#xullLVRckXHc;n?fp(V{(6Wdf zG~in&z1H!X&K#+wy`_(-eQ78)Z8lPAZ#*@x_`&lug_0YyXzJTyD&5~h19(!#-iuxj zy`G~sUI#t@WBd7Wx1F3oj{bM_cF`IKhm#J$lRiK2|7)C^`%>IFlmM|KZqa}4Km0oX z*v9#Btu7yDn6Glx?R#*K{=0jOw_Q7&-d6Lpi}5JysA$zvn~_|NbO|W8mob{0*!{ZN>lq literal 0 HcmV?d00001 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_thrst_electr10.wav b/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_thrst_electr10.wav new file mode 100644 index 000000000..5fcf4b48d --- /dev/null +++ b/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_thrst_electr10.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:87a54cf7161572634bae512988a48835b3ccd9076bf3cfcef11b031666b06c32 +size 36044 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_thrst_electr_loop.akd b/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_thrst_electr_loop.akd new file mode 100644 index 0000000000000000000000000000000000000000..e0b5fb19b3e6bcdd254e4b32b5d5f2a6bc9f46d0 GIT binary patch literal 1316 zcmZvce^69a6vrwxt%}M2w<$7CoyB#!DgIj7aRb}ujMeIy+gL1uSi@xO6CkVg<8HL z*H9Y?QE!8|=#lY{t&d4q=Ank_VOoE%j`Ej%NJYKB5DR)b-Psrm^0s+KXYn>T8~l*! zuk?~5dyFhuW3=cn?nk z<<;M)e*7HS1|ATLAEGa|+NpJuhvZo=0^5HyT`s%maBj9h_4<2c-sGY#zfRJAG)ngD zV`Mqm&>@e{2j|R65IQeY)|6fXlN9;K~EhpDPBjJ&4u4yU!nDDGMT zHjjhcteJe$Ao+4f$i1D9SJjd;*9=l_Gq8zv`s>V9>biHGCfwIZn9)U%uh>Z*Pce#V zKN&rRKTymW2eF7zDywdyvcqkZV;m$_cfL)!p9xI9VH9ShLB4H-Y=vh?f7MH_HQd{R zX7Y|Tc1XP@V3GnWg%Jw))JZW@Ysd@%B$n-W$Z0hW^{hAUx(*g^KiHC9M(yo96tEA( zE7Orx+yUo%ca4S{^HA6AkFGaz&}Q9ObUPV+5!b<2coKxtnV>Xfqh}}{U8x3?+%KSfBnl02acEspfKF2eXb#TDiQ-^n zTT)O6OvC(K9qQY;pIehr+HnGWbB=;xjQiYMfLcQ~nlJLTY5;vYBg*S)K~s7SSP26; zc`k~EIP``sL{E?j`!`HOTZJF8wZSM2MgcRK(pmq7Q@pjA+NWyYsrOdBkE*8byL#^b zeaDY$W=+?2iF|OhqsP9oj!wKh1;zV$!a6&l29CaN*oKVhF9Ca^L&#M10&ScKt D5z7)q literal 0 HcmV?d00001 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_thrst_electr_loop.wav b/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_thrst_electr_loop.wav new file mode 100644 index 000000000..b4030b976 --- /dev/null +++ b/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_thrst_electr_loop.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6709edc42f28efad303e62839320f9ffa45206d76d4adb88911ae3fdd555a732 +size 46292 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_thrst_windnoise.akd b/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_spcp_thrst_windnoise.akd new file mode 100644 index 0000000000000000000000000000000000000000..913236719ec26186d17cdb5671ba4f93b4c71616 GIT binary patch literal 27328 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 literal 0 HcmV?d00001 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_weapon_target_locking.wav b/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_weapon_target_locking.wav new file mode 100644 index 000000000..f080ba6db --- /dev/null +++ b/Aetheria-Economy_WwiseProject/Originals/SFX/sfx_weapon_target_locking.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:034a23110f1b031a7bd9b103ad8b70c604aa4caad2aa894e3e85f89db0893f19 +size 470066 diff --git a/Aetheria-Economy_WwiseProject/Soundcaster Sessions/Default Work Unit.wwu b/Aetheria-Economy_WwiseProject/Soundcaster Sessions/Default Work Unit.wwu index d34ae13cd..c3305ab33 100644 --- a/Aetheria-Economy_WwiseProject/Soundcaster Sessions/Default Work Unit.wwu +++ b/Aetheria-Economy_WwiseProject/Soundcaster Sessions/Default Work Unit.wwu @@ -91,6 +91,14 @@ 0 + + + 0 + + + + 0 + 1 @@ -101,11 +109,11 @@ - 1 + 0.74 - 1 + 0.99 @@ -113,7 +121,171 @@ - 0.35 + 0.99 + + + + 0 + + + + 0 + + + + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + + + + 0 + + + + 0 + + + + 0 + + + + 0 + + + + 1 + + + + 0 + + + + 0 + + + + 0.78 + + + + 1 + + + + 0.01 + + + + 0 + + + + 2 + + + + 0 + + + + 1 + + + + 0 + + + + 0 + + + + 0 + + + + 0 diff --git a/Aetheria-Economy_WwiseProject/Switches/def_test.wwu b/Aetheria-Economy_WwiseProject/Switches/def_test.wwu new file mode 100644 index 000000000..dbf86855d --- /dev/null +++ b/Aetheria-Economy_WwiseProject/Switches/def_test.wwu @@ -0,0 +1,6 @@ + + + + + + From 54f7e3a66fbb91c50e1996ff6404806398e23bb1 Mon Sep 17 00:00:00 2001 From: Reinier Vens Date: Tue, 13 Apr 2021 01:50:42 +0100 Subject: [PATCH 34/51] Properties Panel Overhaul Marking player location on galaxy map Fixed non-input field focus disabling global key map Player start ship is now always the same Loadout generator now demands exact match for item dimensions Thermal damage now triggers ItemDamaged event = player can die from cockpit wear! Properties panel now has a much more attractive UI Implemented curve control for properties UI Centralized number formatting in player settings Moved significant digits to player settings Added temperature unit option in player settings --- .../UI/Galaxy Zone Background Primary.mat | 2 +- Assets/Materials/UI/UI Line Material.mat | 111 ++ Assets/Materials/UI/UI Line Material.mat.meta | 8 + Assets/Plugins/AutoExpandGridLayoutGroup.cs | 213 ++++ .../Plugins/AutoExpandGridLayoutGroup.cs.meta | 11 + .../{ => Plugins}/com.unity.uiextensions.meta | 0 .../com.unity.uiextensions/Editor.meta | 0 .../Editor/BezierLineRendererEditor.cs | 0 .../Editor/BezierLineRendererEditor.cs.meta | 0 .../com.unity.uiextensions/Runtime.meta | 0 .../Runtime/Resources.meta | 0 .../Runtime/Resources/Shaders.meta | 0 .../Resources/Shaders/SoftMaskShader.shader | 0 .../Shaders/SoftMaskShader.shader.meta | 0 .../Resources/Shaders/UI Particle Add.shader | 0 .../Shaders/UI Particle Add.shader.meta | 0 .../Shaders/UI Particle AddMultiply.shader | 0 .../UI Particle AddMultiply.shader.meta | 0 .../Shaders/UI Particle AddSmooth.shader | 0 .../Shaders/UI Particle AddSmooth.shader.meta | 0 .../Shaders/UI Particle Alpha Blend.shader | 0 .../UI Particle Alpha Blend.shader.meta | 0 .../Shaders/UI Particle Blend.shader | 0 .../Shaders/UI Particle Blend.shader.meta | 0 .../Shaders/UI Particle Multiply.shader | 0 .../Shaders/UI Particle Multiply.shader.meta | 0 .../Shaders/UI Particle MultiplyDouble.shader | 0 .../UI Particle MultiplyDouble.shader.meta | 0 .../UI Particle Premultiply Blend.shader | 0 .../UI Particle Premultiply Blend.shader.meta | 0 .../UI Particle VertexLit Blended.shader | 0 .../UI Particle VertexLit Blended.shader.meta | 0 .../Resources/Shaders/UIAdditive.shader | 0 .../Resources/Shaders/UIAdditive.shader.meta | 0 .../Resources/Shaders/UIImageCrop.shader | 0 .../Resources/Shaders/UIImageCrop.shader.meta | 0 .../Resources/Shaders/UILinearDodge.shader | 0 .../Shaders/UILinearDodge.shader.meta | 0 .../Resources/Shaders/UIMultiply.shader | 0 .../Resources/Shaders/UIMultiply.shader.meta | 0 .../Resources/Shaders/UIParticleHidden.shader | 0 .../Shaders/UIParticleHidden.shader.meta | 0 .../Runtime/Resources/Shaders/UIScreen.shader | 0 .../Resources/Shaders/UIScreen.shader.meta | 0 .../Resources/Shaders/UISoftAdditive.shader | 0 .../Shaders/UISoftAdditive.shader.meta | 0 .../Runtime/Scripts.meta | 0 .../Runtime/Scripts/Primitives.meta | 0 .../Scripts/Primitives/UILineRenderer.cs | 0 .../Scripts/Primitives/UILineRenderer.cs.meta | 0 .../Scripts/Primitives/UILineRendererList.cs | 0 .../Primitives/UILineRendererList.cs.meta | 0 .../Primitives/UILineTextureRenderer.cs | 0 .../Primitives/UILineTextureRenderer.cs.meta | 0 .../Scripts/Primitives/UIPrimitiveBase.cs | 0 .../Primitives/UIPrimitiveBase.cs.meta | 0 .../Runtime/Scripts/Utilities.meta | 0 .../Runtime/Scripts/Utilities/BezierPath.cs | 0 .../Scripts/Utilities/BezierPath.cs.meta | 0 .../Runtime/Scripts/Utilities/CableCurve.cs | 0 .../Scripts/Utilities/CableCurve.cs.meta | 0 .../Scripts/Utilities/SetPropertyUtility.cs | 0 .../Utilities/SetPropertyUtility.cs.meta | 0 Assets/Prefabs/UI/Main Menu Canvas.prefab | 505 +++++++- Assets/Prefabs/UI/Properties Panel/Fancy.meta | 8 + .../Properties Panel/Fancy/Bool Field.prefab | 549 +++++++++ .../{ => Fancy}/Bool Field.prefab.meta | 0 .../Fancy/Button Field.prefab | 555 +++++++++ .../{ => Fancy}/Button Field.prefab.meta | 0 .../Properties Panel/Fancy/Curve Field.prefab | 1060 +++++++++++++++++ .../Fancy/Curve Field.prefab.meta | 7 + .../Properties Panel/Fancy/Enum Field.prefab | 631 ++++++++++ .../{ => Fancy}/Enum Field.prefab.meta | 0 .../Fancy/Increment Field.prefab | 743 ++++++++++++ .../{ => Fancy}/Increment Field.prefab.meta | 0 .../Properties Panel/Fancy/Input Field.prefab | 852 +++++++++++++ .../{ => Fancy}/Input Field.prefab.meta | 0 .../Fancy/Progress Field.prefab | 573 +++++++++ .../{ => Fancy}/Progress Field.prefab.meta | 0 .../Fancy/Property Label.prefab | 433 +++++++ .../{ => Fancy}/Property Label.prefab.meta | 0 .../UI/Properties Panel/Fancy/Property.prefab | 277 +++++ .../{ => Fancy}/Property.prefab.meta | 0 .../Fancy/Ranged Float Field.prefab | 721 +++++++++++ .../Ranged Float Field.prefab.meta | 0 .../Properties Panel/Fancy/Stat Sheet.prefab | 77 ++ .../Fancy/Stat Sheet.prefab.meta | 7 + .../UI/Properties Panel/Fancy/Stat.prefab | 364 ++++++ .../Properties Panel/Fancy/Stat.prefab.meta | 7 + .../UI/Properties Panel/Properties.prefab | 10 +- .../Prefabs/UI/Properties Panel/Simple.meta | 8 + .../{ => Simple}/Attribute.prefab | 0 .../{ => Simple}/Attribute.prefab.meta | 2 +- .../{ => Simple}/Bool Field.prefab | 0 .../Simple/Bool Field.prefab.meta | 7 + .../{ => Simple}/Button Field.prefab | 0 .../Simple/Button Field.prefab.meta | 7 + .../{ => Simple}/Enum Field.prefab | 0 .../Simple/Enum Field.prefab.meta | 7 + .../{ => Simple}/Increment Field.prefab | 0 .../Simple/Increment Field.prefab.meta | 7 + .../{ => Simple}/Input Field.prefab | 0 .../Simple/Input Field.prefab.meta | 7 + .../{ => Simple}/Progress Field.prefab | 0 .../Simple/Progress Field.prefab.meta | 7 + .../{ => Simple}/Property Label.prefab | 0 .../Simple/Property Label.prefab.meta | 7 + .../{ => Simple}/Property.prefab | 0 .../Simple/Property.prefab.meta | 7 + .../{ => Simple}/Ranged Float Field.prefab | 0 .../Simple/Ranged Float Field.prefab.meta | 7 + .../Flat UI/32px/Flat-Circle-Outline-Half.png | 3 + .../32px/Flat-Circle-Outline-Half.png.meta | 108 ++ .../32px/Flat-Rectangle-Outline-Half.png | 3 + .../32px/Flat-Rectangle-Outline-Half.png.meta | 108 ++ Assets/Resources/Sprites/area7 1.png | 3 + Assets/Resources/Sprites/area7 1.png.meta | 120 ++ Assets/Resources/Sprites/dot.png.meta | 2 +- Assets/Resources/Sprites/dotsmall.png | 3 + Assets/Resources/Sprites/dotsmall.png.meta | 108 ++ Assets/Scenes/ARPG.unity | 60 +- Assets/Scenes/Main Menu.unity | 46 +- Assets/Scripts/Gameplay/ActionGameManager.cs | 14 +- Assets/Scripts/Gameplay/GameSettings.cs | 1 + .../ServerShared/Behaviors/ConstantWeapon.cs | 4 +- .../ServerShared/Behaviors/InstantWeapon.cs | 1 + .../Scripts/ServerShared/Behaviors/Weapon.cs | 6 +- Assets/Scripts/ServerShared/Behaviors/Wear.cs | 12 +- Assets/Scripts/ServerShared/BezierCurve.cs | 28 + Assets/Scripts/ServerShared/Entity.cs | 16 +- Assets/Scripts/ServerShared/Enums.cs | 7 + Assets/Scripts/ServerShared/Extensions.cs | 12 +- .../Scripts/ServerShared/LoadoutGenerator.cs | 14 +- Assets/Scripts/ServerShared/PlayerSettings.cs | 37 + Assets/Scripts/ServerShared/Settings.cs | 1 - Assets/Scripts/UI/CurveField.cs | 75 ++ Assets/Scripts/UI/CurveField.cs.meta | 11 + Assets/Scripts/UI/InventoryMenu.cs | 2 +- Assets/Scripts/UI/InventoryPanel.cs | 13 +- Assets/Scripts/UI/MainMenu.cs | 7 + Assets/Scripts/UI/PropertiesPanel.cs | 147 ++- Assets/Scripts/UI/PropertiesPanel.cs.meta | 22 +- Assets/Scripts/UI/SchematicDisplay.cs | 4 +- Assets/Scripts/UI/SectorMap.cs | 28 + Assets/Scripts/UI/SectorRenderer.cs | 1 + Assets/Scripts/UI/SectorZoneUI.cs | 1 + Assets/Scripts/UI/StatSheet.cs | 24 + Assets/Scripts/UI/StatSheet.cs.meta | 11 + Assets/Scripts/UI/TradeMenu.cs | 8 +- Assets/Scripts/UI/TradeMenuDebug.cs | 8 +- GameData/PlayerSettings.msgpack | 4 +- UserSettings/EditorUserSettings.asset | 2 +- 152 files changed, 8697 insertions(+), 185 deletions(-) create mode 100644 Assets/Materials/UI/UI Line Material.mat create mode 100644 Assets/Materials/UI/UI Line Material.mat.meta create mode 100644 Assets/Plugins/AutoExpandGridLayoutGroup.cs create mode 100644 Assets/Plugins/AutoExpandGridLayoutGroup.cs.meta rename Assets/{ => Plugins}/com.unity.uiextensions.meta (100%) rename Assets/{ => Plugins}/com.unity.uiextensions/Editor.meta (100%) rename Assets/{ => Plugins}/com.unity.uiextensions/Editor/BezierLineRendererEditor.cs (100%) rename Assets/{ => Plugins}/com.unity.uiextensions/Editor/BezierLineRendererEditor.cs.meta (100%) rename Assets/{ => Plugins}/com.unity.uiextensions/Runtime.meta (100%) rename Assets/{ => Plugins}/com.unity.uiextensions/Runtime/Resources.meta (100%) rename Assets/{ => Plugins}/com.unity.uiextensions/Runtime/Resources/Shaders.meta (100%) rename Assets/{ => Plugins}/com.unity.uiextensions/Runtime/Resources/Shaders/SoftMaskShader.shader (100%) rename Assets/{ => Plugins}/com.unity.uiextensions/Runtime/Resources/Shaders/SoftMaskShader.shader.meta (100%) rename Assets/{ => Plugins}/com.unity.uiextensions/Runtime/Resources/Shaders/UI Particle Add.shader (100%) rename Assets/{ => Plugins}/com.unity.uiextensions/Runtime/Resources/Shaders/UI Particle Add.shader.meta (100%) rename Assets/{ => Plugins}/com.unity.uiextensions/Runtime/Resources/Shaders/UI Particle AddMultiply.shader (100%) rename Assets/{ => Plugins}/com.unity.uiextensions/Runtime/Resources/Shaders/UI Particle AddMultiply.shader.meta (100%) rename Assets/{ => Plugins}/com.unity.uiextensions/Runtime/Resources/Shaders/UI Particle AddSmooth.shader (100%) rename Assets/{ => Plugins}/com.unity.uiextensions/Runtime/Resources/Shaders/UI Particle AddSmooth.shader.meta (100%) rename Assets/{ => Plugins}/com.unity.uiextensions/Runtime/Resources/Shaders/UI Particle Alpha Blend.shader (100%) rename Assets/{ => Plugins}/com.unity.uiextensions/Runtime/Resources/Shaders/UI Particle Alpha Blend.shader.meta (100%) rename Assets/{ => Plugins}/com.unity.uiextensions/Runtime/Resources/Shaders/UI Particle Blend.shader (100%) rename Assets/{ => Plugins}/com.unity.uiextensions/Runtime/Resources/Shaders/UI Particle Blend.shader.meta (100%) rename Assets/{ => Plugins}/com.unity.uiextensions/Runtime/Resources/Shaders/UI Particle Multiply.shader (100%) rename Assets/{ => Plugins}/com.unity.uiextensions/Runtime/Resources/Shaders/UI Particle Multiply.shader.meta (100%) rename Assets/{ => Plugins}/com.unity.uiextensions/Runtime/Resources/Shaders/UI Particle MultiplyDouble.shader (100%) rename Assets/{ => Plugins}/com.unity.uiextensions/Runtime/Resources/Shaders/UI Particle MultiplyDouble.shader.meta (100%) rename Assets/{ => Plugins}/com.unity.uiextensions/Runtime/Resources/Shaders/UI Particle Premultiply Blend.shader (100%) rename Assets/{ => Plugins}/com.unity.uiextensions/Runtime/Resources/Shaders/UI Particle Premultiply Blend.shader.meta (100%) rename Assets/{ => Plugins}/com.unity.uiextensions/Runtime/Resources/Shaders/UI Particle VertexLit Blended.shader (100%) rename Assets/{ => Plugins}/com.unity.uiextensions/Runtime/Resources/Shaders/UI Particle VertexLit Blended.shader.meta (100%) rename Assets/{ => Plugins}/com.unity.uiextensions/Runtime/Resources/Shaders/UIAdditive.shader (100%) rename Assets/{ => Plugins}/com.unity.uiextensions/Runtime/Resources/Shaders/UIAdditive.shader.meta (100%) rename Assets/{ => Plugins}/com.unity.uiextensions/Runtime/Resources/Shaders/UIImageCrop.shader (100%) rename Assets/{ => Plugins}/com.unity.uiextensions/Runtime/Resources/Shaders/UIImageCrop.shader.meta (100%) rename Assets/{ => Plugins}/com.unity.uiextensions/Runtime/Resources/Shaders/UILinearDodge.shader (100%) rename Assets/{ => Plugins}/com.unity.uiextensions/Runtime/Resources/Shaders/UILinearDodge.shader.meta (100%) rename Assets/{ => Plugins}/com.unity.uiextensions/Runtime/Resources/Shaders/UIMultiply.shader (100%) rename Assets/{ => Plugins}/com.unity.uiextensions/Runtime/Resources/Shaders/UIMultiply.shader.meta (100%) rename Assets/{ => Plugins}/com.unity.uiextensions/Runtime/Resources/Shaders/UIParticleHidden.shader (100%) rename Assets/{ => Plugins}/com.unity.uiextensions/Runtime/Resources/Shaders/UIParticleHidden.shader.meta (100%) rename Assets/{ => Plugins}/com.unity.uiextensions/Runtime/Resources/Shaders/UIScreen.shader (100%) rename Assets/{ => Plugins}/com.unity.uiextensions/Runtime/Resources/Shaders/UIScreen.shader.meta (100%) rename Assets/{ => Plugins}/com.unity.uiextensions/Runtime/Resources/Shaders/UISoftAdditive.shader (100%) rename Assets/{ => Plugins}/com.unity.uiextensions/Runtime/Resources/Shaders/UISoftAdditive.shader.meta (100%) rename Assets/{ => Plugins}/com.unity.uiextensions/Runtime/Scripts.meta (100%) rename Assets/{ => Plugins}/com.unity.uiextensions/Runtime/Scripts/Primitives.meta (100%) rename Assets/{ => Plugins}/com.unity.uiextensions/Runtime/Scripts/Primitives/UILineRenderer.cs (100%) rename Assets/{ => Plugins}/com.unity.uiextensions/Runtime/Scripts/Primitives/UILineRenderer.cs.meta (100%) rename Assets/{ => Plugins}/com.unity.uiextensions/Runtime/Scripts/Primitives/UILineRendererList.cs (100%) rename Assets/{ => Plugins}/com.unity.uiextensions/Runtime/Scripts/Primitives/UILineRendererList.cs.meta (100%) rename Assets/{ => Plugins}/com.unity.uiextensions/Runtime/Scripts/Primitives/UILineTextureRenderer.cs (100%) rename Assets/{ => Plugins}/com.unity.uiextensions/Runtime/Scripts/Primitives/UILineTextureRenderer.cs.meta (100%) rename Assets/{ => Plugins}/com.unity.uiextensions/Runtime/Scripts/Primitives/UIPrimitiveBase.cs (100%) rename Assets/{ => Plugins}/com.unity.uiextensions/Runtime/Scripts/Primitives/UIPrimitiveBase.cs.meta (100%) rename Assets/{ => Plugins}/com.unity.uiextensions/Runtime/Scripts/Utilities.meta (100%) rename Assets/{ => Plugins}/com.unity.uiextensions/Runtime/Scripts/Utilities/BezierPath.cs (100%) rename Assets/{ => Plugins}/com.unity.uiextensions/Runtime/Scripts/Utilities/BezierPath.cs.meta (100%) rename Assets/{ => Plugins}/com.unity.uiextensions/Runtime/Scripts/Utilities/CableCurve.cs (100%) rename Assets/{ => Plugins}/com.unity.uiextensions/Runtime/Scripts/Utilities/CableCurve.cs.meta (100%) rename Assets/{ => Plugins}/com.unity.uiextensions/Runtime/Scripts/Utilities/SetPropertyUtility.cs (100%) rename Assets/{ => Plugins}/com.unity.uiextensions/Runtime/Scripts/Utilities/SetPropertyUtility.cs.meta (100%) create mode 100644 Assets/Prefabs/UI/Properties Panel/Fancy.meta create mode 100644 Assets/Prefabs/UI/Properties Panel/Fancy/Bool Field.prefab rename Assets/Prefabs/UI/Properties Panel/{ => Fancy}/Bool Field.prefab.meta (100%) create mode 100644 Assets/Prefabs/UI/Properties Panel/Fancy/Button Field.prefab rename Assets/Prefabs/UI/Properties Panel/{ => Fancy}/Button Field.prefab.meta (100%) create mode 100644 Assets/Prefabs/UI/Properties Panel/Fancy/Curve Field.prefab create mode 100644 Assets/Prefabs/UI/Properties Panel/Fancy/Curve Field.prefab.meta create mode 100644 Assets/Prefabs/UI/Properties Panel/Fancy/Enum Field.prefab rename Assets/Prefabs/UI/Properties Panel/{ => Fancy}/Enum Field.prefab.meta (100%) create mode 100644 Assets/Prefabs/UI/Properties Panel/Fancy/Increment Field.prefab rename Assets/Prefabs/UI/Properties Panel/{ => Fancy}/Increment Field.prefab.meta (100%) create mode 100644 Assets/Prefabs/UI/Properties Panel/Fancy/Input Field.prefab rename Assets/Prefabs/UI/Properties Panel/{ => Fancy}/Input Field.prefab.meta (100%) create mode 100644 Assets/Prefabs/UI/Properties Panel/Fancy/Progress Field.prefab rename Assets/Prefabs/UI/Properties Panel/{ => Fancy}/Progress Field.prefab.meta (100%) create mode 100644 Assets/Prefabs/UI/Properties Panel/Fancy/Property Label.prefab rename Assets/Prefabs/UI/Properties Panel/{ => Fancy}/Property Label.prefab.meta (100%) create mode 100644 Assets/Prefabs/UI/Properties Panel/Fancy/Property.prefab rename Assets/Prefabs/UI/Properties Panel/{ => Fancy}/Property.prefab.meta (100%) create mode 100644 Assets/Prefabs/UI/Properties Panel/Fancy/Ranged Float Field.prefab rename Assets/Prefabs/UI/Properties Panel/{ => Fancy}/Ranged Float Field.prefab.meta (100%) create mode 100644 Assets/Prefabs/UI/Properties Panel/Fancy/Stat Sheet.prefab create mode 100644 Assets/Prefabs/UI/Properties Panel/Fancy/Stat Sheet.prefab.meta create mode 100644 Assets/Prefabs/UI/Properties Panel/Fancy/Stat.prefab create mode 100644 Assets/Prefabs/UI/Properties Panel/Fancy/Stat.prefab.meta create mode 100644 Assets/Prefabs/UI/Properties Panel/Simple.meta rename Assets/Prefabs/UI/Properties Panel/{ => Simple}/Attribute.prefab (100%) rename Assets/Prefabs/UI/Properties Panel/{ => Simple}/Attribute.prefab.meta (74%) rename Assets/Prefabs/UI/Properties Panel/{ => Simple}/Bool Field.prefab (100%) create mode 100644 Assets/Prefabs/UI/Properties Panel/Simple/Bool Field.prefab.meta rename Assets/Prefabs/UI/Properties Panel/{ => Simple}/Button Field.prefab (100%) create mode 100644 Assets/Prefabs/UI/Properties Panel/Simple/Button Field.prefab.meta rename Assets/Prefabs/UI/Properties Panel/{ => Simple}/Enum Field.prefab (100%) create mode 100644 Assets/Prefabs/UI/Properties Panel/Simple/Enum Field.prefab.meta rename Assets/Prefabs/UI/Properties Panel/{ => Simple}/Increment Field.prefab (100%) create mode 100644 Assets/Prefabs/UI/Properties Panel/Simple/Increment Field.prefab.meta rename Assets/Prefabs/UI/Properties Panel/{ => Simple}/Input Field.prefab (100%) create mode 100644 Assets/Prefabs/UI/Properties Panel/Simple/Input Field.prefab.meta rename Assets/Prefabs/UI/Properties Panel/{ => Simple}/Progress Field.prefab (100%) create mode 100644 Assets/Prefabs/UI/Properties Panel/Simple/Progress Field.prefab.meta rename Assets/Prefabs/UI/Properties Panel/{ => Simple}/Property Label.prefab (100%) create mode 100644 Assets/Prefabs/UI/Properties Panel/Simple/Property Label.prefab.meta rename Assets/Prefabs/UI/Properties Panel/{ => Simple}/Property.prefab (100%) create mode 100644 Assets/Prefabs/UI/Properties Panel/Simple/Property.prefab.meta rename Assets/Prefabs/UI/Properties Panel/{ => Simple}/Ranged Float Field.prefab (100%) create mode 100644 Assets/Prefabs/UI/Properties Panel/Simple/Ranged Float Field.prefab.meta create mode 100644 Assets/Resources/Sprites/Flat UI/32px/Flat-Circle-Outline-Half.png create mode 100644 Assets/Resources/Sprites/Flat UI/32px/Flat-Circle-Outline-Half.png.meta create mode 100644 Assets/Resources/Sprites/Flat UI/32px/Flat-Rectangle-Outline-Half.png create mode 100644 Assets/Resources/Sprites/Flat UI/32px/Flat-Rectangle-Outline-Half.png.meta create mode 100644 Assets/Resources/Sprites/area7 1.png create mode 100644 Assets/Resources/Sprites/area7 1.png.meta create mode 100644 Assets/Resources/Sprites/dotsmall.png create mode 100644 Assets/Resources/Sprites/dotsmall.png.meta create mode 100644 Assets/Scripts/UI/CurveField.cs create mode 100644 Assets/Scripts/UI/CurveField.cs.meta create mode 100644 Assets/Scripts/UI/StatSheet.cs create mode 100644 Assets/Scripts/UI/StatSheet.cs.meta diff --git a/Assets/Materials/UI/Galaxy Zone Background Primary.mat b/Assets/Materials/UI/Galaxy Zone Background Primary.mat index a96080009..a83976a96 100644 --- a/Assets/Materials/UI/Galaxy Zone Background Primary.mat +++ b/Assets/Materials/UI/Galaxy Zone Background Primary.mat @@ -93,7 +93,7 @@ Material: - _ZWrite: 0 m_Colors: - _CameraFadeParams: {r: 0, g: Infinity, b: 0, a: 0} - - _Color: {r: 0, g: 0, b: 0, a: 1} + - _Color: {r: 0.2924528, g: 0.2924528, b: 0.2924528, a: 1} - _ColorAddSubDiff: {r: 0, g: 0, b: 0, a: 0} - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0} diff --git a/Assets/Materials/UI/UI Line Material.mat b/Assets/Materials/UI/UI Line Material.mat new file mode 100644 index 000000000..eaead4f1a --- /dev/null +++ b/Assets/Materials/UI/UI Line Material.mat @@ -0,0 +1,111 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: UI Line Material + m_Shader: {fileID: 10770, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: + m_LightmapFlags: 0 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: 1f080985c19e8014494de3ff3474d9cc, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _BlendOp: 0 + - _BumpScale: 1 + - _CameraFadingEnabled: 0 + - _CameraFarFadeDistance: 2 + - _CameraNearFadeDistance: 1 + - _ColorMask: 15 + - _ColorMode: 0 + - _Cull: 2 + - _Cutoff: 0.5 + - _DetailNormalMapScale: 1 + - _DistortionBlend: 0.5 + - _DistortionEnabled: 0 + - _DistortionStrength: 1 + - _DistortionStrengthScaled: 0 + - _DstBlend: 0 + - _EmissionEnabled: 0 + - _FlipbookMode: 0 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossyReflections: 1 + - _InvFade: 1 + - _LightingEnabled: 0 + - _Metallic: 0 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _SmoothnessTextureChannel: 0 + - _SoftParticlesEnabled: 0 + - _SoftParticlesFarFadeDistance: 1 + - _SoftParticlesNearFadeDistance: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _Stencil: 0 + - _StencilComp: 8 + - _StencilOp: 0 + - _StencilReadMask: 255 + - _StencilWriteMask: 255 + - _Strength: 0.2 + - _UVSec: 0 + - _UseUIAlphaClip: 0 + - _ZWrite: 1 + m_Colors: + - _CameraFadeParams: {r: 0, g: Infinity, b: 0, a: 0} + - _Color: {r: 1, g: 1, b: 1, a: 1} + - _ColorAddSubDiff: {r: 0, g: 0, b: 0, a: 0} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0} + - _TintColor: {r: 1, g: 1, b: 1, a: 1} + m_BuildTextureStacks: [] diff --git a/Assets/Materials/UI/UI Line Material.mat.meta b/Assets/Materials/UI/UI Line Material.mat.meta new file mode 100644 index 000000000..4148f389c --- /dev/null +++ b/Assets/Materials/UI/UI Line Material.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: fcfc0ffd602442f42bddf109db9d2d20 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/AutoExpandGridLayoutGroup.cs b/Assets/Plugins/AutoExpandGridLayoutGroup.cs new file mode 100644 index 000000000..169bbef3c --- /dev/null +++ b/Assets/Plugins/AutoExpandGridLayoutGroup.cs @@ -0,0 +1,213 @@ +using UnityEngine; +using System.Collections.Generic; + +namespace UnityEngine.UI +{ + [AddComponentMenu("Layout/Auto Expand Grid Layout Group", 152)] + public class AutoExpandGridLayoutGroup : LayoutGroup + { + public enum Corner { UpperLeft = 0, UpperRight = 1, LowerLeft = 2, LowerRight = 3 } + public enum Axis { Horizontal = 0, Vertical = 1 } + public enum Constraint { Flexible = 0, FixedColumnCount = 1, FixedRowCount = 2 } + + [SerializeField] + protected Corner m_StartCorner = Corner.UpperLeft; + public Corner startCorner { get { return m_StartCorner; } set { SetProperty(ref m_StartCorner, value); } } + + [SerializeField] + protected Axis m_StartAxis = Axis.Horizontal; + public Axis startAxis { get { return m_StartAxis; } set { SetProperty(ref m_StartAxis, value); } } + + [SerializeField] + protected Vector2 m_CellSize = new Vector2(100, 100); + public Vector2 cellSize { get { return m_CellSize; } set { SetProperty(ref m_CellSize, value); } } + + [SerializeField] + protected Vector2 m_Spacing = Vector2.zero; + public Vector2 spacing { get { return m_Spacing; } set { SetProperty(ref m_Spacing, value); } } + + [SerializeField] + protected Constraint m_Constraint = Constraint.Flexible; + public Constraint constraint { get { return m_Constraint; } set { SetProperty(ref m_Constraint, value); } } + + [SerializeField] + protected int m_ConstraintCount = 2; + public int constraintCount { get { return m_ConstraintCount; } set { SetProperty(ref m_ConstraintCount, Mathf.Max(1, value)); } } + + protected AutoExpandGridLayoutGroup() + { } + +#if UNITY_EDITOR + protected override void OnValidate() + { + base.OnValidate(); + constraintCount = constraintCount; + } +#endif + + public override void CalculateLayoutInputHorizontal() + { + base.CalculateLayoutInputHorizontal(); + + int minColumns = 0; + int preferredColumns = 0; + if (m_Constraint == Constraint.FixedColumnCount) + { + minColumns = preferredColumns = m_ConstraintCount; + } + else if (m_Constraint == Constraint.FixedRowCount) + { + minColumns = preferredColumns = Mathf.CeilToInt(rectChildren.Count / (float)m_ConstraintCount - 0.001f); + } + else + { + minColumns = 1; + preferredColumns = Mathf.CeilToInt(Mathf.Sqrt(rectChildren.Count)); + } + + SetLayoutInputForAxis( + padding.horizontal + (cellSize.x + spacing.x) * minColumns - spacing.x, + padding.horizontal + (cellSize.x + spacing.x) * preferredColumns - spacing.x, + -1, 0); + } + + public override void CalculateLayoutInputVertical() + { + int minRows = 0; + if (m_Constraint == Constraint.FixedColumnCount) + { + minRows = Mathf.CeilToInt(rectChildren.Count / (float)m_ConstraintCount - 0.001f); + } + else if (m_Constraint == Constraint.FixedRowCount) + { + minRows = m_ConstraintCount; + } + else + { + float width = rectTransform.rect.size.x; + int cellCountX = Mathf.Max(1, Mathf.FloorToInt((width - padding.horizontal + spacing.x + 0.001f) / (cellSize.x + spacing.x))); + minRows = Mathf.CeilToInt(rectChildren.Count / (float)cellCountX); + } + + float minSpace = padding.vertical + (cellSize.y + spacing.y) * minRows - spacing.y; + SetLayoutInputForAxis(minSpace, minSpace, -1, 1); + } + + public override void SetLayoutHorizontal() + { + SetCellsAlongAxis(0); + } + + public override void SetLayoutVertical() + { + SetCellsAlongAxis(1); + } + + private void SetCellsAlongAxis(int axis) + { + // Normally a Layout Controller should only set horizontal values when invoked for the horizontal axis + // and only vertical values when invoked for the vertical axis. + // However, in this case we set both the horizontal and vertical position when invoked for the vertical axis. + // Since we only set the horizontal position and not the size, it shouldn't affect children's layout, + // and thus shouldn't break the rule that all horizontal layout must be calculated before all vertical layout. + + if (axis == 0) + { + // Only set the sizes when invoked for horizontal axis, not the positions. + for (int i = 0; i < rectChildren.Count; i++) + { + RectTransform rect = rectChildren[i]; + + m_Tracker.Add(this, rect, + DrivenTransformProperties.Anchors | + DrivenTransformProperties.AnchoredPosition | + DrivenTransformProperties.SizeDelta); + + rect.anchorMin = Vector2.up; + rect.anchorMax = Vector2.up; + rect.sizeDelta = cellSize; + } + return; + } + + float width = rectTransform.rect.size.x; + float height = rectTransform.rect.size.y; + + int cellCountX = 1; + int cellCountY = 1; + if (m_Constraint == Constraint.FixedColumnCount) + { + cellCountX = m_ConstraintCount; + cellCountY = Mathf.CeilToInt(rectChildren.Count / (float)cellCountX - 0.001f); + } + else if (m_Constraint == Constraint.FixedRowCount) + { + cellCountY = m_ConstraintCount; + cellCountX = Mathf.CeilToInt(rectChildren.Count / (float)cellCountY - 0.001f); + } + else + { + if (cellSize.x + spacing.x <= 0) + cellCountX = int.MaxValue; + else + cellCountX = Mathf.Max(1, Mathf.FloorToInt((width - padding.horizontal + spacing.x + 0.001f) / (cellSize.x + spacing.x))); + + if (cellSize.y + spacing.y <= 0) + cellCountY = int.MaxValue; + else + cellCountY = Mathf.Max(1, Mathf.FloorToInt((height - padding.vertical + spacing.y + 0.001f) / (cellSize.y + spacing.y))); + } + + int cornerX = (int)startCorner % 2; + int cornerY = (int)startCorner / 2; + + int cellsPerMainAxis, actualCellCountX, actualCellCountY; + if (startAxis == Axis.Horizontal) + { + cellsPerMainAxis = cellCountX; + actualCellCountX = Mathf.Clamp(cellCountX, 1, rectChildren.Count); + actualCellCountY = Mathf.Clamp(cellCountY, 1, Mathf.CeilToInt(rectChildren.Count / (float)cellsPerMainAxis)); + } + else + { + cellsPerMainAxis = cellCountY; + actualCellCountY = Mathf.Clamp(cellCountY, 1, rectChildren.Count); + actualCellCountX = Mathf.Clamp(cellCountX, 1, Mathf.CeilToInt(rectChildren.Count / (float)cellsPerMainAxis)); + } + + Vector2 requiredSpace = new Vector2( + actualCellCountX * cellSize.x + (actualCellCountX - 1) * spacing.x, + actualCellCountY * cellSize.y + (actualCellCountY - 1) * spacing.y + ); + Vector2 startOffset = new Vector2( + GetStartOffset(0, requiredSpace.x), + GetStartOffset(1, requiredSpace.y) + ); + + for (int i = 0; i < rectChildren.Count; i++) + { + int positionX; + int positionY; + if (startAxis == Axis.Horizontal) + { + positionX = i % cellsPerMainAxis; + positionY = i / cellsPerMainAxis; + } + else + { + positionX = i / cellsPerMainAxis; + positionY = i % cellsPerMainAxis; + } + + if (cornerX == 1) + positionX = actualCellCountX - 1 - positionX; + if (cornerY == 1) + positionY = actualCellCountY - 1 - positionY; + + float realsize = ((width - (spacing[0] * (actualCellCountX - 1))) / actualCellCountX); + SetChildAlongAxis(rectChildren[i], 0, startOffset.x + (realsize + spacing[0]) * positionX, realsize); + SetChildAlongAxis(rectChildren[i], 1, startOffset.y + (cellSize[1] + spacing[1]) * positionY, cellSize[1]); + } + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/AutoExpandGridLayoutGroup.cs.meta b/Assets/Plugins/AutoExpandGridLayoutGroup.cs.meta new file mode 100644 index 000000000..30cc17b16 --- /dev/null +++ b/Assets/Plugins/AutoExpandGridLayoutGroup.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d29c5f8f94f596d4f8316387788ae810 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/com.unity.uiextensions.meta b/Assets/Plugins/com.unity.uiextensions.meta similarity index 100% rename from Assets/com.unity.uiextensions.meta rename to Assets/Plugins/com.unity.uiextensions.meta diff --git a/Assets/com.unity.uiextensions/Editor.meta b/Assets/Plugins/com.unity.uiextensions/Editor.meta similarity index 100% rename from Assets/com.unity.uiextensions/Editor.meta rename to Assets/Plugins/com.unity.uiextensions/Editor.meta diff --git a/Assets/com.unity.uiextensions/Editor/BezierLineRendererEditor.cs b/Assets/Plugins/com.unity.uiextensions/Editor/BezierLineRendererEditor.cs similarity index 100% rename from Assets/com.unity.uiextensions/Editor/BezierLineRendererEditor.cs rename to Assets/Plugins/com.unity.uiextensions/Editor/BezierLineRendererEditor.cs diff --git a/Assets/com.unity.uiextensions/Editor/BezierLineRendererEditor.cs.meta b/Assets/Plugins/com.unity.uiextensions/Editor/BezierLineRendererEditor.cs.meta similarity index 100% rename from Assets/com.unity.uiextensions/Editor/BezierLineRendererEditor.cs.meta rename to Assets/Plugins/com.unity.uiextensions/Editor/BezierLineRendererEditor.cs.meta diff --git a/Assets/com.unity.uiextensions/Runtime.meta b/Assets/Plugins/com.unity.uiextensions/Runtime.meta similarity index 100% rename from Assets/com.unity.uiextensions/Runtime.meta rename to Assets/Plugins/com.unity.uiextensions/Runtime.meta diff --git a/Assets/com.unity.uiextensions/Runtime/Resources.meta b/Assets/Plugins/com.unity.uiextensions/Runtime/Resources.meta similarity index 100% rename from Assets/com.unity.uiextensions/Runtime/Resources.meta rename to Assets/Plugins/com.unity.uiextensions/Runtime/Resources.meta diff --git a/Assets/com.unity.uiextensions/Runtime/Resources/Shaders.meta b/Assets/Plugins/com.unity.uiextensions/Runtime/Resources/Shaders.meta similarity index 100% rename from Assets/com.unity.uiextensions/Runtime/Resources/Shaders.meta rename to Assets/Plugins/com.unity.uiextensions/Runtime/Resources/Shaders.meta diff --git a/Assets/com.unity.uiextensions/Runtime/Resources/Shaders/SoftMaskShader.shader b/Assets/Plugins/com.unity.uiextensions/Runtime/Resources/Shaders/SoftMaskShader.shader similarity index 100% rename from Assets/com.unity.uiextensions/Runtime/Resources/Shaders/SoftMaskShader.shader rename to Assets/Plugins/com.unity.uiextensions/Runtime/Resources/Shaders/SoftMaskShader.shader diff --git a/Assets/com.unity.uiextensions/Runtime/Resources/Shaders/SoftMaskShader.shader.meta b/Assets/Plugins/com.unity.uiextensions/Runtime/Resources/Shaders/SoftMaskShader.shader.meta similarity index 100% rename from Assets/com.unity.uiextensions/Runtime/Resources/Shaders/SoftMaskShader.shader.meta rename to Assets/Plugins/com.unity.uiextensions/Runtime/Resources/Shaders/SoftMaskShader.shader.meta diff --git a/Assets/com.unity.uiextensions/Runtime/Resources/Shaders/UI Particle Add.shader b/Assets/Plugins/com.unity.uiextensions/Runtime/Resources/Shaders/UI Particle Add.shader similarity index 100% rename from Assets/com.unity.uiextensions/Runtime/Resources/Shaders/UI Particle Add.shader rename to Assets/Plugins/com.unity.uiextensions/Runtime/Resources/Shaders/UI Particle Add.shader diff --git a/Assets/com.unity.uiextensions/Runtime/Resources/Shaders/UI Particle Add.shader.meta b/Assets/Plugins/com.unity.uiextensions/Runtime/Resources/Shaders/UI Particle Add.shader.meta similarity index 100% rename from Assets/com.unity.uiextensions/Runtime/Resources/Shaders/UI Particle Add.shader.meta rename to Assets/Plugins/com.unity.uiextensions/Runtime/Resources/Shaders/UI Particle Add.shader.meta diff --git a/Assets/com.unity.uiextensions/Runtime/Resources/Shaders/UI Particle AddMultiply.shader b/Assets/Plugins/com.unity.uiextensions/Runtime/Resources/Shaders/UI Particle AddMultiply.shader similarity index 100% rename from Assets/com.unity.uiextensions/Runtime/Resources/Shaders/UI Particle AddMultiply.shader rename to Assets/Plugins/com.unity.uiextensions/Runtime/Resources/Shaders/UI Particle AddMultiply.shader diff --git a/Assets/com.unity.uiextensions/Runtime/Resources/Shaders/UI Particle AddMultiply.shader.meta b/Assets/Plugins/com.unity.uiextensions/Runtime/Resources/Shaders/UI Particle AddMultiply.shader.meta similarity index 100% rename from Assets/com.unity.uiextensions/Runtime/Resources/Shaders/UI Particle AddMultiply.shader.meta rename to Assets/Plugins/com.unity.uiextensions/Runtime/Resources/Shaders/UI Particle AddMultiply.shader.meta diff --git a/Assets/com.unity.uiextensions/Runtime/Resources/Shaders/UI Particle AddSmooth.shader b/Assets/Plugins/com.unity.uiextensions/Runtime/Resources/Shaders/UI Particle AddSmooth.shader similarity index 100% rename from Assets/com.unity.uiextensions/Runtime/Resources/Shaders/UI Particle AddSmooth.shader rename to Assets/Plugins/com.unity.uiextensions/Runtime/Resources/Shaders/UI Particle AddSmooth.shader diff --git a/Assets/com.unity.uiextensions/Runtime/Resources/Shaders/UI Particle AddSmooth.shader.meta b/Assets/Plugins/com.unity.uiextensions/Runtime/Resources/Shaders/UI Particle AddSmooth.shader.meta similarity index 100% rename from Assets/com.unity.uiextensions/Runtime/Resources/Shaders/UI Particle AddSmooth.shader.meta rename to Assets/Plugins/com.unity.uiextensions/Runtime/Resources/Shaders/UI Particle AddSmooth.shader.meta diff --git a/Assets/com.unity.uiextensions/Runtime/Resources/Shaders/UI Particle Alpha Blend.shader b/Assets/Plugins/com.unity.uiextensions/Runtime/Resources/Shaders/UI Particle Alpha Blend.shader similarity index 100% rename from Assets/com.unity.uiextensions/Runtime/Resources/Shaders/UI Particle Alpha Blend.shader rename to Assets/Plugins/com.unity.uiextensions/Runtime/Resources/Shaders/UI Particle Alpha Blend.shader diff --git a/Assets/com.unity.uiextensions/Runtime/Resources/Shaders/UI Particle Alpha Blend.shader.meta b/Assets/Plugins/com.unity.uiextensions/Runtime/Resources/Shaders/UI Particle Alpha Blend.shader.meta similarity index 100% rename from Assets/com.unity.uiextensions/Runtime/Resources/Shaders/UI Particle Alpha Blend.shader.meta rename to Assets/Plugins/com.unity.uiextensions/Runtime/Resources/Shaders/UI Particle Alpha Blend.shader.meta diff --git a/Assets/com.unity.uiextensions/Runtime/Resources/Shaders/UI Particle Blend.shader b/Assets/Plugins/com.unity.uiextensions/Runtime/Resources/Shaders/UI Particle Blend.shader similarity index 100% rename from Assets/com.unity.uiextensions/Runtime/Resources/Shaders/UI Particle Blend.shader rename to Assets/Plugins/com.unity.uiextensions/Runtime/Resources/Shaders/UI Particle Blend.shader diff --git a/Assets/com.unity.uiextensions/Runtime/Resources/Shaders/UI Particle Blend.shader.meta b/Assets/Plugins/com.unity.uiextensions/Runtime/Resources/Shaders/UI Particle Blend.shader.meta similarity index 100% rename from Assets/com.unity.uiextensions/Runtime/Resources/Shaders/UI Particle Blend.shader.meta rename to Assets/Plugins/com.unity.uiextensions/Runtime/Resources/Shaders/UI Particle Blend.shader.meta diff --git a/Assets/com.unity.uiextensions/Runtime/Resources/Shaders/UI Particle Multiply.shader b/Assets/Plugins/com.unity.uiextensions/Runtime/Resources/Shaders/UI Particle Multiply.shader similarity index 100% rename from Assets/com.unity.uiextensions/Runtime/Resources/Shaders/UI Particle Multiply.shader rename to Assets/Plugins/com.unity.uiextensions/Runtime/Resources/Shaders/UI Particle Multiply.shader diff --git a/Assets/com.unity.uiextensions/Runtime/Resources/Shaders/UI Particle Multiply.shader.meta b/Assets/Plugins/com.unity.uiextensions/Runtime/Resources/Shaders/UI Particle Multiply.shader.meta similarity index 100% rename from Assets/com.unity.uiextensions/Runtime/Resources/Shaders/UI Particle Multiply.shader.meta rename to Assets/Plugins/com.unity.uiextensions/Runtime/Resources/Shaders/UI Particle Multiply.shader.meta diff --git a/Assets/com.unity.uiextensions/Runtime/Resources/Shaders/UI Particle MultiplyDouble.shader b/Assets/Plugins/com.unity.uiextensions/Runtime/Resources/Shaders/UI Particle MultiplyDouble.shader similarity index 100% rename from Assets/com.unity.uiextensions/Runtime/Resources/Shaders/UI Particle MultiplyDouble.shader rename to Assets/Plugins/com.unity.uiextensions/Runtime/Resources/Shaders/UI Particle MultiplyDouble.shader diff --git a/Assets/com.unity.uiextensions/Runtime/Resources/Shaders/UI Particle MultiplyDouble.shader.meta b/Assets/Plugins/com.unity.uiextensions/Runtime/Resources/Shaders/UI Particle MultiplyDouble.shader.meta similarity index 100% rename from Assets/com.unity.uiextensions/Runtime/Resources/Shaders/UI Particle MultiplyDouble.shader.meta rename to Assets/Plugins/com.unity.uiextensions/Runtime/Resources/Shaders/UI Particle MultiplyDouble.shader.meta diff --git a/Assets/com.unity.uiextensions/Runtime/Resources/Shaders/UI Particle Premultiply Blend.shader b/Assets/Plugins/com.unity.uiextensions/Runtime/Resources/Shaders/UI Particle Premultiply Blend.shader similarity index 100% rename from Assets/com.unity.uiextensions/Runtime/Resources/Shaders/UI Particle Premultiply Blend.shader rename to Assets/Plugins/com.unity.uiextensions/Runtime/Resources/Shaders/UI Particle Premultiply Blend.shader diff --git a/Assets/com.unity.uiextensions/Runtime/Resources/Shaders/UI Particle Premultiply Blend.shader.meta b/Assets/Plugins/com.unity.uiextensions/Runtime/Resources/Shaders/UI Particle Premultiply Blend.shader.meta similarity index 100% rename from Assets/com.unity.uiextensions/Runtime/Resources/Shaders/UI Particle Premultiply Blend.shader.meta rename to Assets/Plugins/com.unity.uiextensions/Runtime/Resources/Shaders/UI Particle Premultiply Blend.shader.meta diff --git a/Assets/com.unity.uiextensions/Runtime/Resources/Shaders/UI Particle VertexLit Blended.shader b/Assets/Plugins/com.unity.uiextensions/Runtime/Resources/Shaders/UI Particle VertexLit Blended.shader similarity index 100% rename from Assets/com.unity.uiextensions/Runtime/Resources/Shaders/UI Particle VertexLit Blended.shader rename to Assets/Plugins/com.unity.uiextensions/Runtime/Resources/Shaders/UI Particle VertexLit Blended.shader diff --git a/Assets/com.unity.uiextensions/Runtime/Resources/Shaders/UI Particle VertexLit Blended.shader.meta b/Assets/Plugins/com.unity.uiextensions/Runtime/Resources/Shaders/UI Particle VertexLit Blended.shader.meta similarity index 100% rename from Assets/com.unity.uiextensions/Runtime/Resources/Shaders/UI Particle VertexLit Blended.shader.meta rename to Assets/Plugins/com.unity.uiextensions/Runtime/Resources/Shaders/UI Particle VertexLit Blended.shader.meta diff --git a/Assets/com.unity.uiextensions/Runtime/Resources/Shaders/UIAdditive.shader b/Assets/Plugins/com.unity.uiextensions/Runtime/Resources/Shaders/UIAdditive.shader similarity index 100% rename from Assets/com.unity.uiextensions/Runtime/Resources/Shaders/UIAdditive.shader rename to Assets/Plugins/com.unity.uiextensions/Runtime/Resources/Shaders/UIAdditive.shader diff --git a/Assets/com.unity.uiextensions/Runtime/Resources/Shaders/UIAdditive.shader.meta b/Assets/Plugins/com.unity.uiextensions/Runtime/Resources/Shaders/UIAdditive.shader.meta similarity index 100% rename from Assets/com.unity.uiextensions/Runtime/Resources/Shaders/UIAdditive.shader.meta rename to Assets/Plugins/com.unity.uiextensions/Runtime/Resources/Shaders/UIAdditive.shader.meta diff --git a/Assets/com.unity.uiextensions/Runtime/Resources/Shaders/UIImageCrop.shader b/Assets/Plugins/com.unity.uiextensions/Runtime/Resources/Shaders/UIImageCrop.shader similarity index 100% rename from Assets/com.unity.uiextensions/Runtime/Resources/Shaders/UIImageCrop.shader rename to Assets/Plugins/com.unity.uiextensions/Runtime/Resources/Shaders/UIImageCrop.shader diff --git a/Assets/com.unity.uiextensions/Runtime/Resources/Shaders/UIImageCrop.shader.meta b/Assets/Plugins/com.unity.uiextensions/Runtime/Resources/Shaders/UIImageCrop.shader.meta similarity index 100% rename from Assets/com.unity.uiextensions/Runtime/Resources/Shaders/UIImageCrop.shader.meta rename to Assets/Plugins/com.unity.uiextensions/Runtime/Resources/Shaders/UIImageCrop.shader.meta diff --git a/Assets/com.unity.uiextensions/Runtime/Resources/Shaders/UILinearDodge.shader b/Assets/Plugins/com.unity.uiextensions/Runtime/Resources/Shaders/UILinearDodge.shader similarity index 100% rename from Assets/com.unity.uiextensions/Runtime/Resources/Shaders/UILinearDodge.shader rename to Assets/Plugins/com.unity.uiextensions/Runtime/Resources/Shaders/UILinearDodge.shader diff --git a/Assets/com.unity.uiextensions/Runtime/Resources/Shaders/UILinearDodge.shader.meta b/Assets/Plugins/com.unity.uiextensions/Runtime/Resources/Shaders/UILinearDodge.shader.meta similarity index 100% rename from Assets/com.unity.uiextensions/Runtime/Resources/Shaders/UILinearDodge.shader.meta rename to Assets/Plugins/com.unity.uiextensions/Runtime/Resources/Shaders/UILinearDodge.shader.meta diff --git a/Assets/com.unity.uiextensions/Runtime/Resources/Shaders/UIMultiply.shader b/Assets/Plugins/com.unity.uiextensions/Runtime/Resources/Shaders/UIMultiply.shader similarity index 100% rename from Assets/com.unity.uiextensions/Runtime/Resources/Shaders/UIMultiply.shader rename to Assets/Plugins/com.unity.uiextensions/Runtime/Resources/Shaders/UIMultiply.shader diff --git a/Assets/com.unity.uiextensions/Runtime/Resources/Shaders/UIMultiply.shader.meta b/Assets/Plugins/com.unity.uiextensions/Runtime/Resources/Shaders/UIMultiply.shader.meta similarity index 100% rename from Assets/com.unity.uiextensions/Runtime/Resources/Shaders/UIMultiply.shader.meta rename to Assets/Plugins/com.unity.uiextensions/Runtime/Resources/Shaders/UIMultiply.shader.meta diff --git a/Assets/com.unity.uiextensions/Runtime/Resources/Shaders/UIParticleHidden.shader b/Assets/Plugins/com.unity.uiextensions/Runtime/Resources/Shaders/UIParticleHidden.shader similarity index 100% rename from Assets/com.unity.uiextensions/Runtime/Resources/Shaders/UIParticleHidden.shader rename to Assets/Plugins/com.unity.uiextensions/Runtime/Resources/Shaders/UIParticleHidden.shader diff --git a/Assets/com.unity.uiextensions/Runtime/Resources/Shaders/UIParticleHidden.shader.meta b/Assets/Plugins/com.unity.uiextensions/Runtime/Resources/Shaders/UIParticleHidden.shader.meta similarity index 100% rename from Assets/com.unity.uiextensions/Runtime/Resources/Shaders/UIParticleHidden.shader.meta rename to Assets/Plugins/com.unity.uiextensions/Runtime/Resources/Shaders/UIParticleHidden.shader.meta diff --git a/Assets/com.unity.uiextensions/Runtime/Resources/Shaders/UIScreen.shader b/Assets/Plugins/com.unity.uiextensions/Runtime/Resources/Shaders/UIScreen.shader similarity index 100% rename from Assets/com.unity.uiextensions/Runtime/Resources/Shaders/UIScreen.shader rename to Assets/Plugins/com.unity.uiextensions/Runtime/Resources/Shaders/UIScreen.shader diff --git a/Assets/com.unity.uiextensions/Runtime/Resources/Shaders/UIScreen.shader.meta b/Assets/Plugins/com.unity.uiextensions/Runtime/Resources/Shaders/UIScreen.shader.meta similarity index 100% rename from Assets/com.unity.uiextensions/Runtime/Resources/Shaders/UIScreen.shader.meta rename to Assets/Plugins/com.unity.uiextensions/Runtime/Resources/Shaders/UIScreen.shader.meta diff --git a/Assets/com.unity.uiextensions/Runtime/Resources/Shaders/UISoftAdditive.shader b/Assets/Plugins/com.unity.uiextensions/Runtime/Resources/Shaders/UISoftAdditive.shader similarity index 100% rename from Assets/com.unity.uiextensions/Runtime/Resources/Shaders/UISoftAdditive.shader rename to Assets/Plugins/com.unity.uiextensions/Runtime/Resources/Shaders/UISoftAdditive.shader diff --git a/Assets/com.unity.uiextensions/Runtime/Resources/Shaders/UISoftAdditive.shader.meta b/Assets/Plugins/com.unity.uiextensions/Runtime/Resources/Shaders/UISoftAdditive.shader.meta similarity index 100% rename from Assets/com.unity.uiextensions/Runtime/Resources/Shaders/UISoftAdditive.shader.meta rename to Assets/Plugins/com.unity.uiextensions/Runtime/Resources/Shaders/UISoftAdditive.shader.meta diff --git a/Assets/com.unity.uiextensions/Runtime/Scripts.meta b/Assets/Plugins/com.unity.uiextensions/Runtime/Scripts.meta similarity index 100% rename from Assets/com.unity.uiextensions/Runtime/Scripts.meta rename to Assets/Plugins/com.unity.uiextensions/Runtime/Scripts.meta diff --git a/Assets/com.unity.uiextensions/Runtime/Scripts/Primitives.meta b/Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Primitives.meta similarity index 100% rename from Assets/com.unity.uiextensions/Runtime/Scripts/Primitives.meta rename to Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Primitives.meta diff --git a/Assets/com.unity.uiextensions/Runtime/Scripts/Primitives/UILineRenderer.cs b/Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Primitives/UILineRenderer.cs similarity index 100% rename from Assets/com.unity.uiextensions/Runtime/Scripts/Primitives/UILineRenderer.cs rename to Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Primitives/UILineRenderer.cs diff --git a/Assets/com.unity.uiextensions/Runtime/Scripts/Primitives/UILineRenderer.cs.meta b/Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Primitives/UILineRenderer.cs.meta similarity index 100% rename from Assets/com.unity.uiextensions/Runtime/Scripts/Primitives/UILineRenderer.cs.meta rename to Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Primitives/UILineRenderer.cs.meta diff --git a/Assets/com.unity.uiextensions/Runtime/Scripts/Primitives/UILineRendererList.cs b/Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Primitives/UILineRendererList.cs similarity index 100% rename from Assets/com.unity.uiextensions/Runtime/Scripts/Primitives/UILineRendererList.cs rename to Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Primitives/UILineRendererList.cs diff --git a/Assets/com.unity.uiextensions/Runtime/Scripts/Primitives/UILineRendererList.cs.meta b/Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Primitives/UILineRendererList.cs.meta similarity index 100% rename from Assets/com.unity.uiextensions/Runtime/Scripts/Primitives/UILineRendererList.cs.meta rename to Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Primitives/UILineRendererList.cs.meta diff --git a/Assets/com.unity.uiextensions/Runtime/Scripts/Primitives/UILineTextureRenderer.cs b/Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Primitives/UILineTextureRenderer.cs similarity index 100% rename from Assets/com.unity.uiextensions/Runtime/Scripts/Primitives/UILineTextureRenderer.cs rename to Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Primitives/UILineTextureRenderer.cs diff --git a/Assets/com.unity.uiextensions/Runtime/Scripts/Primitives/UILineTextureRenderer.cs.meta b/Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Primitives/UILineTextureRenderer.cs.meta similarity index 100% rename from Assets/com.unity.uiextensions/Runtime/Scripts/Primitives/UILineTextureRenderer.cs.meta rename to Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Primitives/UILineTextureRenderer.cs.meta diff --git a/Assets/com.unity.uiextensions/Runtime/Scripts/Primitives/UIPrimitiveBase.cs b/Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Primitives/UIPrimitiveBase.cs similarity index 100% rename from Assets/com.unity.uiextensions/Runtime/Scripts/Primitives/UIPrimitiveBase.cs rename to Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Primitives/UIPrimitiveBase.cs diff --git a/Assets/com.unity.uiextensions/Runtime/Scripts/Primitives/UIPrimitiveBase.cs.meta b/Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Primitives/UIPrimitiveBase.cs.meta similarity index 100% rename from Assets/com.unity.uiextensions/Runtime/Scripts/Primitives/UIPrimitiveBase.cs.meta rename to Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Primitives/UIPrimitiveBase.cs.meta diff --git a/Assets/com.unity.uiextensions/Runtime/Scripts/Utilities.meta b/Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Utilities.meta similarity index 100% rename from Assets/com.unity.uiextensions/Runtime/Scripts/Utilities.meta rename to Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Utilities.meta diff --git a/Assets/com.unity.uiextensions/Runtime/Scripts/Utilities/BezierPath.cs b/Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Utilities/BezierPath.cs similarity index 100% rename from Assets/com.unity.uiextensions/Runtime/Scripts/Utilities/BezierPath.cs rename to Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Utilities/BezierPath.cs diff --git a/Assets/com.unity.uiextensions/Runtime/Scripts/Utilities/BezierPath.cs.meta b/Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Utilities/BezierPath.cs.meta similarity index 100% rename from Assets/com.unity.uiextensions/Runtime/Scripts/Utilities/BezierPath.cs.meta rename to Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Utilities/BezierPath.cs.meta diff --git a/Assets/com.unity.uiextensions/Runtime/Scripts/Utilities/CableCurve.cs b/Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Utilities/CableCurve.cs similarity index 100% rename from Assets/com.unity.uiextensions/Runtime/Scripts/Utilities/CableCurve.cs rename to Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Utilities/CableCurve.cs diff --git a/Assets/com.unity.uiextensions/Runtime/Scripts/Utilities/CableCurve.cs.meta b/Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Utilities/CableCurve.cs.meta similarity index 100% rename from Assets/com.unity.uiextensions/Runtime/Scripts/Utilities/CableCurve.cs.meta rename to Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Utilities/CableCurve.cs.meta diff --git a/Assets/com.unity.uiextensions/Runtime/Scripts/Utilities/SetPropertyUtility.cs b/Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Utilities/SetPropertyUtility.cs similarity index 100% rename from Assets/com.unity.uiextensions/Runtime/Scripts/Utilities/SetPropertyUtility.cs rename to Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Utilities/SetPropertyUtility.cs diff --git a/Assets/com.unity.uiextensions/Runtime/Scripts/Utilities/SetPropertyUtility.cs.meta b/Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Utilities/SetPropertyUtility.cs.meta similarity index 100% rename from Assets/com.unity.uiextensions/Runtime/Scripts/Utilities/SetPropertyUtility.cs.meta rename to Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Utilities/SetPropertyUtility.cs.meta diff --git a/Assets/Prefabs/UI/Main Menu Canvas.prefab b/Assets/Prefabs/UI/Main Menu Canvas.prefab index 4dbe54f95..a03628ba0 100644 --- a/Assets/Prefabs/UI/Main Menu Canvas.prefab +++ b/Assets/Prefabs/UI/Main Menu Canvas.prefab @@ -199,7 +199,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0.00012207031} m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0, y: 1} --- !u!114 &350889891057474420 @@ -220,8 +220,8 @@ MonoBehaviour: m_Top: 0 m_Bottom: 0 m_ChildAlignment: 0 - m_Spacing: 8 - m_ChildForceExpandWidth: 0 + m_Spacing: 4 + m_ChildForceExpandWidth: 1 m_ChildForceExpandHeight: 0 m_ChildControlWidth: 1 m_ChildControlHeight: 1 @@ -331,7 +331,7 @@ MonoBehaviour: m_TargetGraphic: {fileID: 350889890962861327} m_HandleRect: {fileID: 350889890962861326} m_Direction: 2 - m_Value: 1 + m_Value: 0 m_Size: 1 m_NumberOfSteps: 0 m_OnValueChanged: @@ -471,6 +471,201 @@ RectTransform: m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: -20, y: -20} m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &4168753103792055160 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2261466211211207212} + - component: {fileID: 7272396043368045741} + - component: {fileID: 2574731768858481983} + - component: {fileID: 8915418784624150536} + m_Layer: 5 + m_Name: Fill + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2261466211211207212 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4168753103792055160} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 8184616833802884024} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7272396043368045741 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4168753103792055160} + m_CullTransparentMesh: 0 +--- !u!114 &2574731768858481983 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4168753103792055160} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0.041666675, b: 0.1, a: 0.79607844} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: d43f9691259ed984fa09c853c5cda7f0, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &8915418784624150536 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4168753103792055160} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 1 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 +--- !u!1 &4231316076859951230 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8184616833802884024} + - component: {fileID: 503162678088212371} + - component: {fileID: 7974591750172406668} + - component: {fileID: 5464823169674358614} + m_Layer: 5 + m_Name: Dropdown Menu + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &8184616833802884024 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4231316076859951230} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.6666667, y: 0.6666667, z: 0.6666667} + m_Children: + - {fileID: 2261466211211207212} + - {fileID: 7963881274223503427} + m_Father: {fileID: 4533226043457584179} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 46.666626, y: 56} + m_SizeDelta: {x: 250, y: 10} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &503162678088212371 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4231316076859951230} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 0 + m_VerticalFit: 2 +--- !u!114 &7974591750172406668 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4231316076859951230} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_ChildAlignment: 0 + m_Spacing: 0 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 1 + m_ChildControlHeight: 1 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 +--- !u!114 &5464823169674358614 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4231316076859951230} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 848ae49aff071f5458dcc0322b8b84eb, type: 3} + m_Name: + m_EditorClassIdentifier: + Canvas: {fileID: 4533226043457584188} + CancelClickCatcher: {fileID: 725430339668194415} + OptionPrefab: {fileID: 5002943309344603758, guid: b1fe91487e8589444bd3512bc6696b3b, + type: 3} + ContentRoot: {fileID: 7963881274223503427} + OptionHeight: 34 + PaddingHeight: 16 --- !u!1 &4533226043449861659 GameObject: m_ObjectHideFlags: 0 @@ -505,7 +700,7 @@ RectTransform: - {fileID: 4533226043829246279} - {fileID: 4533226044611060154} m_Father: {fileID: 4533226043457584179} - m_RootOrder: 1 + m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} @@ -591,9 +786,12 @@ MonoBehaviour: type: 3} IncrementField: {fileID: 5486709585343280439, guid: 9c14c92a1a08b0a4fb4f6aa6f8504082, type: 3} + StatSheet: {fileID: 0} + CurveField: {fileID: 0} Content: {fileID: 4533226043449861658} SelectedChild: {fileID: 0} - CancelClickCatcher: {fileID: 0} + GameManager: {fileID: 0} + CancelClickCatcher: {fileID: 725430339668194415} ButtonGroup: {fileID: 4533226044611060155} Cancel: {fileID: 1044359407629948051} Confirm: {fileID: 1044359408896957406} @@ -630,8 +828,10 @@ RectTransform: m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 0, y: 0, z: 0} m_Children: - - {fileID: 7329274282942065572} + - {fileID: 8079387348638243065} + - {fileID: 7201272822408223301} - {fileID: 4533226043449861658} + - {fileID: 8184616833802884024} m_Father: {fileID: 0} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -1073,6 +1273,131 @@ MonoBehaviour: m_ChildScaleWidth: 0 m_ChildScaleHeight: 0 m_ReverseArrangement: 0 +--- !u!1 &4861784187296922738 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8079387348638243065} + m_Layer: 5 + m_Name: Container + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8079387348638243065 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4861784187296922738} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 7329274282942065572} + m_Father: {fileID: 4533226043457584179} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &6593818207347750511 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7201272822408223301} + - component: {fileID: 725430339668194415} + - component: {fileID: 783342576815791552} + - component: {fileID: 6909049604758086237} + m_Layer: 5 + m_Name: Context Menu Cancel + m_TagString: UIBackground + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &7201272822408223301 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6593818207347750511} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.6666667, y: 0.6666667, z: 0.6666667} + m_Children: [] + m_Father: {fileID: 4533226043457584179} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 640, y: 360} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &725430339668194415 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6593818207347750511} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 20fa7724865c6b04097615292a325dfe, type: 3} + m_Name: + m_EditorClassIdentifier: + DragDistance: 25 +--- !u!222 &783342576815791552 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6593818207347750511} + m_CullTransparentMesh: 0 +--- !u!114 &6909049604758086237 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6593818207347750511} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!1 &7329274282942065573 GameObject: m_ObjectHideFlags: 0 @@ -1107,13 +1432,13 @@ RectTransform: m_Children: - {fileID: 7329274283166941234} - {fileID: 350889891632477145} - m_Father: {fileID: 4533226043457584179} + m_Father: {fileID: 8079387348638243065} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 64, y: 0} - m_SizeDelta: {x: 400, y: -128} + m_AnchoredPosition: {x: -526, y: 0} + m_SizeDelta: {x: 400, y: 492} m_Pivot: {x: 0, y: 0.5} --- !u!114 &7329274282942065579 MonoBehaviour: @@ -1128,34 +1453,38 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: Spacer: {fileID: 7041706416206723741, guid: 4638d28139b15b34fac8dae056f7d5fd, type: 3} - Dropdown: {fileID: 0} + Dropdown: {fileID: 5464823169674358614} Title: {fileID: 7329274283166941237} Section: {fileID: 1026668114703092140, guid: 3a149ea40b43fbf47b51ec165cb04e5f, type: 3} List: {fileID: 6914334813923144328, guid: 93e63e3a8b352a04897123288d70f04b, type: 3} - Property: {fileID: 9159917045172241898, guid: be88722a74d512d45a454fe91327a389, + Property: {fileID: 9159917045172241898, guid: d3d31bd2f1361eb43be226334b53ff60, type: 3} - PropertyLabel: {fileID: 279061376544739623, guid: 5b8c5126640066e4fabe6e65b7225b3b, + PropertyLabel: {fileID: 279061376544739623, guid: 8b553d18a3837c846bb0de617793bc9a, type: 3} - Attribute: {fileID: 4447025208748278043, guid: 5e3a258a5b91c8246b20962ba6eccb09, + Attribute: {fileID: 4447025208748278043, guid: b8cda1415430f8d4ea58357880fd71f6, type: 3} - InputField: {fileID: 6586910564433979167, guid: fb49ef180533e3e488fa39d80cc2423a, + InputField: {fileID: 6586910564433979167, guid: eaaef0ca79a2cfd4b87e01cf0190935c, type: 3} - RangedFloatField: {fileID: 1663396771457720812, guid: c214f62d8f2188140b96ed12798034c8, + RangedFloatField: {fileID: 1663396771457720812, guid: 3be24fd431000b440851c0c97d67dbe8, type: 3} - ProgressField: {fileID: 256436433275418348, guid: e6524d59d9bc67545b0eb1304bfb9d4b, + ProgressField: {fileID: 256436433275418348, guid: b9772379a05f3024e89123a1bbf3cfc8, type: 3} - EnumField: {fileID: 1444953514731475975, guid: f19a14cd178d48f49ace9ad217bea2ed, + EnumField: {fileID: 1444953514731475975, guid: 18a40fefa34a15047969dd7b5c21a4a3, type: 3} - BoolField: {fileID: 7661950293931311388, guid: 001ad6a15f0d582458d359c0ae4405ed, + BoolField: {fileID: 7661950293931311388, guid: 06119cc28b4edbe4ba3490ecf37cd76c, type: 3} PropertyButton: {fileID: 2983484326545269840, guid: c7113183a38d6f84b8ffe6fa7c342896, type: 3} - ButtonField: {fileID: 6566784227922820057, guid: 6db1feb4cda7b8c419384cd42c85a5c4, + ButtonField: {fileID: 6566784227922820057, guid: 4a29e77b0352c904692be7c5c0ec8e3e, type: 3} - IncrementField: {fileID: 5486709585343280439, guid: 9c14c92a1a08b0a4fb4f6aa6f8504082, + IncrementField: {fileID: 5486709585343280439, guid: 42f7ef5cb30ed394981b0e42042be6e0, type: 3} + StatSheet: {fileID: 3416329628306957711, guid: 4f75723ed178a084e813965e84825bd4, + type: 3} + CurveField: {fileID: 0} Content: {fileID: 350889891057474423} SelectedChild: {fileID: 0} + GameManager: {fileID: 0} --- !u!222 &7329274282942065577 CanvasRenderer: m_ObjectHideFlags: 0 @@ -1387,6 +1716,92 @@ MonoBehaviour: m_EditorClassIdentifier: m_HorizontalFit: 2 m_VerticalFit: 0 +--- !u!1 &7519760948890529380 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7963881274223503427} + - component: {fileID: 4278526810443686449} + - component: {fileID: 8008885947875939009} + - component: {fileID: 689304008519133182} + m_Layer: 5 + m_Name: Content + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7963881274223503427 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7519760948890529380} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 8184616833802884024} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 125, y: -5} + m_SizeDelta: {x: 246, y: 6} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &4278526810443686449 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7519760948890529380} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 3 + m_Right: 3 + m_Top: 3 + m_Bottom: 3 + m_ChildAlignment: 0 + m_Spacing: 1 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 1 + m_ChildControlHeight: 1 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 +--- !u!114 &8008885947875939009 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7519760948890529380} + m_Enabled: 0 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 0 + m_VerticalFit: 1 +--- !u!222 &689304008519133182 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7519760948890529380} + m_CullTransparentMesh: 0 --- !u!1001 &4533226044147941189 PrefabInstance: m_ObjectHideFlags: 0 @@ -1666,6 +2081,18 @@ PrefabInstance: objectReference: {fileID: 0} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 2758dfa2744d7ad4d8877545189d116e, type: 3} +--- !u!114 &2967358985619754986 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 1713457305180270767, guid: 2758dfa2744d7ad4d8877545189d116e, + type: 3} + m_PrefabInstance: {fileID: 4533226044147941189} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: --- !u!224 &2381176779129949493 stripped RectTransform: m_CorrespondingSourceObject: {fileID: 2297648055057363568, guid: 2758dfa2744d7ad4d8877545189d116e, @@ -1684,18 +2111,6 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} m_Name: m_EditorClassIdentifier: ---- !u!114 &2967358985619754986 stripped -MonoBehaviour: - m_CorrespondingSourceObject: {fileID: 1713457305180270767, guid: 2758dfa2744d7ad4d8877545189d116e, - type: 3} - m_PrefabInstance: {fileID: 4533226044147941189} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: --- !u!1001 &4533226044873879560 PrefabInstance: m_ObjectHideFlags: 0 @@ -1986,18 +2401,6 @@ RectTransform: type: 3} m_PrefabInstance: {fileID: 4533226044873879560} m_PrefabAsset: {fileID: 0} ---- !u!114 &1044359407629948051 stripped -MonoBehaviour: - m_CorrespondingSourceObject: {fileID: 3501282941175030939, guid: 2758dfa2744d7ad4d8877545189d116e, - type: 3} - m_PrefabInstance: {fileID: 4533226044873879560} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} - m_Name: - m_EditorClassIdentifier: --- !u!114 &2967358987018748071 stripped MonoBehaviour: m_CorrespondingSourceObject: {fileID: 1713457305180270767, guid: 2758dfa2744d7ad4d8877545189d116e, @@ -2010,3 +2413,15 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} m_Name: m_EditorClassIdentifier: +--- !u!114 &1044359407629948051 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 3501282941175030939, guid: 2758dfa2744d7ad4d8877545189d116e, + type: 3} + m_PrefabInstance: {fileID: 4533226044873879560} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: diff --git a/Assets/Prefabs/UI/Properties Panel/Fancy.meta b/Assets/Prefabs/UI/Properties Panel/Fancy.meta new file mode 100644 index 000000000..1e13ab1b3 --- /dev/null +++ b/Assets/Prefabs/UI/Properties Panel/Fancy.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e3f493201680a3344a2a3f4afbced2b9 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Prefabs/UI/Properties Panel/Fancy/Bool Field.prefab b/Assets/Prefabs/UI/Properties Panel/Fancy/Bool Field.prefab new file mode 100644 index 000000000..fdf6e4c8e --- /dev/null +++ b/Assets/Prefabs/UI/Properties Panel/Fancy/Bool Field.prefab @@ -0,0 +1,549 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &7661950293931311386 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7661950293931311387} + - component: {fileID: 7661950293931311389} + - component: {fileID: 7661950293931311388} + - component: {fileID: 4828684769873383795} + - component: {fileID: 6447526559768554805} + m_Layer: 5 + m_Name: Bool Field + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7661950293931311387 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7661950293931311386} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 7661950295498381397} + - {fileID: 7661950294707789146} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7661950293931311389 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7661950293931311386} + m_CullTransparentMesh: 0 +--- !u!114 &7661950293931311388 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7661950293931311386} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4d340b5dca7aebb40925dc6fe985e731, type: 3} + m_Name: + m_EditorClassIdentifier: + Label: {fileID: 7661950295498381398} + Toggle: {fileID: 7661950294707789148} +--- !u!114 &4828684769873383795 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7661950293931311386} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 8 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 4 + m_Spacing: 4 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 1 + m_ChildControlHeight: 1 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 +--- !u!114 &6447526559768554805 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7661950293931311386} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.45402354, g: 0.45402354, b: 0.603, a: 0.039215688} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 84d126f984de5fd42ac66361c00f830c, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &7661950294137596688 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7661950294137596689} + - component: {fileID: 7661950294137596691} + - component: {fileID: 7661950294137596690} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7661950294137596689 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7661950294137596688} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 7661950295217243554} + m_Father: {fileID: 7661950294707789146} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7661950294137596691 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7661950294137596688} + m_CullTransparentMesh: 0 +--- !u!114 &7661950294137596690 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7661950294137596688} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.7529412, g: 0.7529412, b: 1, a: 0.039215688} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 84d126f984de5fd42ac66361c00f830c, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &7661950294707789145 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7661950294707789146} + - component: {fileID: 7661950294707789148} + - component: {fileID: 7661950294707789147} + - component: {fileID: 4623191057634594966} + m_Layer: 5 + m_Name: Toggle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7661950294707789146 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7661950294707789145} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 7661950294137596689} + m_Father: {fileID: 7661950293931311387} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 400, y: -12} + m_SizeDelta: {x: 0, y: 24} + m_Pivot: {x: 1, y: 0.5} +--- !u!114 &7661950294707789148 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7661950294707789145} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9085046f02f69544eb97fd06b6048fe2, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 0.75, g: 0.75, b: 0.75, a: 1} + m_HighlightedColor: {r: 0.85, g: 0.85, b: 0.85, a: 1} + m_PressedColor: {r: 1, g: 1, b: 1, a: 1} + m_SelectedColor: {r: 0.8018868, g: 0.8018868, b: 0.8018868, a: 1} + m_DisabledColor: {r: 0.301, g: 0.301, b: 0.301, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 7661950294137596690} + toggleTransition: 1 + graphic: {fileID: 7661950295217243555} + m_Group: {fileID: 0} + onValueChanged: + m_PersistentCalls: + m_Calls: [] + m_IsOn: 1 +--- !u!114 &7661950294707789147 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7661950294707789145} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 86710e43de46f6f4bac7c8e50813a599, type: 3} + m_Name: + m_EditorClassIdentifier: + m_AspectMode: 2 + m_AspectRatio: 1 +--- !u!114 &4623191057634594966 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7661950294707789145} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: 24 + m_PreferredWidth: 0 + m_PreferredHeight: -1 + m_FlexibleWidth: 2 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 +--- !u!1 &7661950295217243553 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7661950295217243554} + - component: {fileID: 7661950295217243556} + - component: {fileID: 7661950295217243555} + m_Layer: 5 + m_Name: Checkmark + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7661950295217243554 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7661950295217243553} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 7661950294137596689} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.2, y: 0.2} + m_AnchorMax: {x: 0.8, y: 0.8} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7661950295217243556 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7661950295217243553} + m_CullTransparentMesh: 0 +--- !u!114 &7661950295217243555 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7661950295217243553} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 0.44583336, b: 0.050000012, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 0095c89ecee2662409dc67f284b73a6c, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &7661950295498381396 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7661950295498381397} + - component: {fileID: 7661950295498381399} + - component: {fileID: 7661950295498381398} + - component: {fileID: 398370159} + m_Layer: 5 + m_Name: Name + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7661950295498381397 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7661950295498381396} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 7661950293931311387} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7661950295498381399 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7661950295498381396} + m_CullTransparentMesh: 0 +--- !u!114 &7661950295498381398 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7661950295498381396} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Dolor + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 53555f7a2d5e745428813f1b1118734f, type: 2} + m_sharedMaterial: {fileID: -2804126062856497447, guid: 53555f7a2d5e745428813f1b1118734f, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4279071487 + m_fontColor: {r: 1, g: 0.44583336, b: 0.050000012, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 14 + m_fontSizeBase: 14 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 16 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &398370159 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7661950295498381396} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: 0 + m_PreferredHeight: -1 + m_FlexibleWidth: 3 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 diff --git a/Assets/Prefabs/UI/Properties Panel/Bool Field.prefab.meta b/Assets/Prefabs/UI/Properties Panel/Fancy/Bool Field.prefab.meta similarity index 100% rename from Assets/Prefabs/UI/Properties Panel/Bool Field.prefab.meta rename to Assets/Prefabs/UI/Properties Panel/Fancy/Bool Field.prefab.meta diff --git a/Assets/Prefabs/UI/Properties Panel/Fancy/Button Field.prefab b/Assets/Prefabs/UI/Properties Panel/Fancy/Button Field.prefab new file mode 100644 index 000000000..bc492fa08 --- /dev/null +++ b/Assets/Prefabs/UI/Properties Panel/Fancy/Button Field.prefab @@ -0,0 +1,555 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &790814197411605232 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 790814197411605233} + - component: {fileID: 790814197411605235} + - component: {fileID: 790814197411605234} + m_Layer: 5 + m_Name: Label + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &790814197411605233 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 790814197411605232} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 790814198576895811} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &790814197411605235 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 790814197411605232} + m_CullTransparentMesh: 0 +--- !u!114 &790814197411605234 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 790814197411605232} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Dolor + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 53555f7a2d5e745428813f1b1118734f, type: 2} + m_sharedMaterial: {fileID: -2804126062856497447, guid: 53555f7a2d5e745428813f1b1118734f, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294964185 + m_fontColor: {r: 0.85, g: 0.95199996, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 14 + m_fontSizeBase: 14 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 32 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &790814198576895810 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 790814198576895811} + - component: {fileID: 790814198576895814} + - component: {fileID: 790814198576895813} + - component: {fileID: 226212841} + - component: {fileID: 3430765284349239659} + m_Layer: 5 + m_Name: Button + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &790814198576895811 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 790814198576895810} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 790814197411605233} + m_Father: {fileID: 6566784227922820063} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &790814198576895814 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 790814198576895810} + m_CullTransparentMesh: 0 +--- !u!114 &790814198576895813 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 790814198576895810} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.7529412, g: 0.7529412, b: 1, a: 0.039215688} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 84d126f984de5fd42ac66361c00f830c, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &226212841 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 790814198576895810} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: 24 + m_PreferredWidth: 0 + m_PreferredHeight: -1 + m_FlexibleWidth: 2 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 +--- !u!114 &3430765284349239659 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 790814198576895810} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 0.75, g: 0.75, b: 0.75, a: 1} + m_HighlightedColor: {r: 0.85, g: 0.85, b: 0.85, a: 1} + m_PressedColor: {r: 1, g: 1, b: 1, a: 1} + m_SelectedColor: {r: 0.8, g: 0.8, b: 0.8, a: 1} + m_DisabledColor: {r: 0.3, g: 0.3, b: 0.3, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 790814198576895813} + m_OnClick: + m_PersistentCalls: + m_Calls: [] +--- !u!1 &6566784227922820056 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6566784227922820063} + - component: {fileID: 1185277543755028150} + - component: {fileID: 6566784227922820057} + - component: {fileID: 226212844} + - component: {fileID: 2179802327637591961} + m_Layer: 5 + m_Name: Button Field + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &6566784227922820063 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6566784227922820056} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 6566784228232816309} + - {fileID: 790814198576895811} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &1185277543755028150 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6566784227922820056} + m_CullTransparentMesh: 0 +--- !u!114 &6566784227922820057 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6566784227922820056} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 16f77bec2596fd74ba40cb68aa4c7f20, type: 3} + m_Name: + m_EditorClassIdentifier: + Label: {fileID: 6566784228232816308} + ButtonLabel: {fileID: 790814197411605234} + Button: {fileID: 3430765284349239659} +--- !u!114 &226212844 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6566784227922820056} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 8 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 4 + m_Spacing: 4 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 1 + m_ChildControlHeight: 1 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 +--- !u!114 &2179802327637591961 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6566784227922820056} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.45402354, g: 0.45402354, b: 0.603, a: 0.039215688} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 84d126f984de5fd42ac66361c00f830c, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &6566784228232816310 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6566784228232816309} + - component: {fileID: 6566784228232816315} + - component: {fileID: 6566784228232816308} + - component: {fileID: 226212842} + m_Layer: 5 + m_Name: Name + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &6566784228232816309 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6566784228232816310} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 6566784227922820063} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &6566784228232816315 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6566784228232816310} + m_CullTransparentMesh: 0 +--- !u!114 &6566784228232816308 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6566784228232816310} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Button Field + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 53555f7a2d5e745428813f1b1118734f, type: 2} + m_sharedMaterial: {fileID: -2804126062856497447, guid: 53555f7a2d5e745428813f1b1118734f, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4279071487 + m_fontColor: {r: 1, g: 0.44583336, b: 0.050000012, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 14 + m_fontSizeBase: 14 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 16 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &226212842 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6566784228232816310} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: 0 + m_PreferredHeight: -1 + m_FlexibleWidth: 3 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 diff --git a/Assets/Prefabs/UI/Properties Panel/Button Field.prefab.meta b/Assets/Prefabs/UI/Properties Panel/Fancy/Button Field.prefab.meta similarity index 100% rename from Assets/Prefabs/UI/Properties Panel/Button Field.prefab.meta rename to Assets/Prefabs/UI/Properties Panel/Fancy/Button Field.prefab.meta diff --git a/Assets/Prefabs/UI/Properties Panel/Fancy/Curve Field.prefab b/Assets/Prefabs/UI/Properties Panel/Fancy/Curve Field.prefab new file mode 100644 index 000000000..b2dbe6954 --- /dev/null +++ b/Assets/Prefabs/UI/Properties Panel/Fancy/Curve Field.prefab @@ -0,0 +1,1060 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &2008487937 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2008487938} + - component: {fileID: 2008487940} + - component: {fileID: 2008487939} + m_Layer: 5 + m_Name: CurrentY + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2008487938 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2008487937} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 5150349054046905327} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.25} + m_AnchorMax: {x: 0.5, y: 0.25} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 6, y: 6} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &2008487940 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2008487937} + m_CullTransparentMesh: 1 +--- !u!114 &2008487939 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2008487937} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 0.44583336, b: 0.050000012, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: c2e79c6e20279d04881764c3a171cb17, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &2039464564 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2039464565} + - component: {fileID: 2039464567} + - component: {fileID: 2039464566} + m_Layer: 5 + m_Name: CurrentX + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2039464565 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2039464564} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 5150349054046905327} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0} + m_AnchorMax: {x: 0.5, y: 0.25} + m_AnchoredPosition: {x: 0, y: -1.5} + m_SizeDelta: {x: 2, y: 2} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &2039464567 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2039464564} + m_CullTransparentMesh: 1 +--- !u!114 &2039464566 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2039464564} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 0.44583336, b: 0.050000012, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: c2e79c6e20279d04881764c3a171cb17, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &2565414221130108216 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7117984985042789648} + - component: {fileID: 7248497949783907356} + - component: {fileID: 1090712357699021645} + - component: {fileID: 1349188866125533911} + m_Layer: 5 + m_Name: Title + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7117984985042789648 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2565414221130108216} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 4525093026741206958} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 8, y: -4} + m_SizeDelta: {x: 128, y: 18.64} + m_Pivot: {x: 0, y: 1} +--- !u!222 &7248497949783907356 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2565414221130108216} + m_CullTransparentMesh: 0 +--- !u!114 &1090712357699021645 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2565414221130108216} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Title + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 53555f7a2d5e745428813f1b1118734f, type: 2} + m_sharedMaterial: {fileID: -2804126062856497447, guid: 53555f7a2d5e745428813f1b1118734f, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4279071487 + m_fontColor: {r: 1, g: 0.44583336, b: 0.050000012, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 14 + m_fontSizeBase: 14 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 16 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 256 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &1349188866125533911 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2565414221130108216} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: 24 + m_PreferredWidth: 0 + m_PreferredHeight: -1 + m_FlexibleWidth: 3 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 +--- !u!1 &3823514004492341312 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8457868409217303238} + - component: {fileID: 7164273151663422724} + - component: {fileID: 4631430186069867659} + - component: {fileID: 4989970727597037134} + m_Layer: 5 + m_Name: MinValue + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8457868409217303238 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3823514004492341312} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 4525093026741206958} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 2, y: 0} + m_SizeDelta: {x: 128, y: 8} + m_Pivot: {x: 0, y: 0} +--- !u!222 &7164273151663422724 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3823514004492341312} + m_CullTransparentMesh: 0 +--- !u!114 &4631430186069867659 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3823514004492341312} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: 100 + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 53555f7a2d5e745428813f1b1118734f, type: 2} + m_sharedMaterial: {fileID: -2804126062856497447, guid: 53555f7a2d5e745428813f1b1118734f, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294964185 + m_fontColor: {r: 0.85, g: 0.95199996, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 6 + m_fontSizeBase: 6 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 16 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 256 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &4989970727597037134 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3823514004492341312} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: 24 + m_PreferredWidth: 0 + m_PreferredHeight: -1 + m_FlexibleWidth: 3 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 +--- !u!1 &5150349052900313152 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5150349052900313153} + - component: {fileID: 5150349052900313155} + - component: {fileID: 5150349052900313154} + m_Layer: 5 + m_Name: Bucket + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5150349052900313153 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5150349052900313152} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 4525093026741206958} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 4} + m_SizeDelta: {x: -4, y: -8} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &5150349052900313155 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5150349052900313152} + m_CullTransparentMesh: 1 +--- !u!114 &5150349052900313154 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5150349052900313152} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.85, g: 0.95199996, b: 1, a: 0.32156864} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 51c246761190b2349b69b5f87681c62a, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 2 +--- !u!1 &5150349053090609425 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5150349053090609426} + - component: {fileID: 5150349053090609421} + - component: {fileID: 5150349053090609420} + - component: {fileID: 5150349053090609427} + m_Layer: 5 + m_Name: MidValue + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5150349053090609426 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5150349053090609425} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 4525093026741206958} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0} + m_AnchorMax: {x: 0.5, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 128, y: 8} + m_Pivot: {x: 0.5, y: 0} +--- !u!222 &5150349053090609421 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5150349053090609425} + m_CullTransparentMesh: 0 +--- !u!114 &5150349053090609420 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5150349053090609425} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: 100 + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 53555f7a2d5e745428813f1b1118734f, type: 2} + m_sharedMaterial: {fileID: -2804126062856497447, guid: 53555f7a2d5e745428813f1b1118734f, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294964185 + m_fontColor: {r: 0.85, g: 0.95199996, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 6 + m_fontSizeBase: 6 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 16 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 256 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &5150349053090609427 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5150349053090609425} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: 24 + m_PreferredWidth: 0 + m_PreferredHeight: -1 + m_FlexibleWidth: 3 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 +--- !u!1 &5150349053643444070 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5150349053643444071} + - component: {fileID: 5150349053643444066} + - component: {fileID: 5150349053643444065} + - component: {fileID: 5150349053643444064} + m_Layer: 5 + m_Name: MaxValue + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5150349053643444071 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5150349053643444070} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 4525093026741206958} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0} + m_AnchorMax: {x: 1, y: 0} + m_AnchoredPosition: {x: -2, y: 0} + m_SizeDelta: {x: 128, y: 8} + m_Pivot: {x: 1, y: 0} +--- !u!222 &5150349053643444066 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5150349053643444070} + m_CullTransparentMesh: 0 +--- !u!114 &5150349053643444065 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5150349053643444070} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: 100 + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 53555f7a2d5e745428813f1b1118734f, type: 2} + m_sharedMaterial: {fileID: -2804126062856497447, guid: 53555f7a2d5e745428813f1b1118734f, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294964185 + m_fontColor: {r: 0.85, g: 0.95199996, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 6 + m_fontSizeBase: 6 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 16 + m_HorizontalAlignment: 4 + m_VerticalAlignment: 256 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &5150349053643444064 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5150349053643444070} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: 24 + m_PreferredWidth: 0 + m_PreferredHeight: -1 + m_FlexibleWidth: 3 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 +--- !u!1 &5150349054046905326 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5150349054046905327} + - component: {fileID: 5150349054046905321} + - component: {fileID: 5150349054046905320} + m_Layer: 5 + m_Name: Line + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5150349054046905327 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5150349054046905326} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 2039464565} + - {fileID: 2008487938} + m_Father: {fileID: 4525093026741206958} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 2.5, y: 10} + m_SizeDelta: {x: -5, y: -14} + m_Pivot: {x: 0, y: 0} +--- !u!222 &5150349054046905321 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5150349054046905326} + m_CullTransparentMesh: 1 +--- !u!114 &5150349054046905320 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5150349054046905326} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5b33b2e663e78774c9f0c9af55018725, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.85, g: 0.95199996, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 7c96f826a29855143bed2f0c15b198e6, type: 3} + m_improveResolution: 0 + m_Resolution: 0.03439772 + m_useNativeSize: 1 + m_points: + - {x: 0, y: 1} + - {x: 0.2, y: 0.8} + - {x: 0.3, y: 0.85} + - {x: 0.5, y: 0.23} + - {x: 1, y: 0} + lineThickness: 3 + relativeSize: 1 + lineList: 0 + lineCaps: 0 + bezierSegmentsPerCurve: 10 + LineJoins: 1 + BezierMode: 0 + drivenExternally: 0 +--- !u!1 &8519022237971868197 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4525093026741206958} + - component: {fileID: 4120722731782458431} + - component: {fileID: 2969055130806617518} + - component: {fileID: 7086135065157832333} + - component: {fileID: 3018914896466881005} + m_Layer: 5 + m_Name: Curve Field + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &4525093026741206958 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8519022237971868197} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 5150349054046905327} + - {fileID: 8457868409217303238} + - {fileID: 5150349053090609426} + - {fileID: 5150349053643444071} + - {fileID: 5150349052900313153} + - {fileID: 7117984985042789648} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &4120722731782458431 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8519022237971868197} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: 64 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 +--- !u!222 &2969055130806617518 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8519022237971868197} + m_CullTransparentMesh: 1 +--- !u!114 &7086135065157832333 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8519022237971868197} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.45402354, g: 0.45402354, b: 0.603, a: 0.039215688} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 84d126f984de5fd42ac66361c00f830c, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &3018914896466881005 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8519022237971868197} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7ee1522de6af7de409ddcae9a0f6ccc9, type: 3} + m_Name: + m_EditorClassIdentifier: + Segments: 16 + SigDigs: 3 + Title: {fileID: 1090712357699021645} + MinLabel: {fileID: 4631430186069867659} + MidLabel: {fileID: 5150349053090609420} + MaxLabel: {fileID: 5150349053643444065} + Line: {fileID: 5150349054046905320} + CurrentX: {fileID: 2039464566} + CurrentY: {fileID: 2008487939} diff --git a/Assets/Prefabs/UI/Properties Panel/Fancy/Curve Field.prefab.meta b/Assets/Prefabs/UI/Properties Panel/Fancy/Curve Field.prefab.meta new file mode 100644 index 000000000..3ecbd8ebc --- /dev/null +++ b/Assets/Prefabs/UI/Properties Panel/Fancy/Curve Field.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 168887bbd3de8c74eb3f06d3d46dda4e +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Prefabs/UI/Properties Panel/Fancy/Enum Field.prefab b/Assets/Prefabs/UI/Properties Panel/Fancy/Enum Field.prefab new file mode 100644 index 000000000..cbaf4c6cb --- /dev/null +++ b/Assets/Prefabs/UI/Properties Panel/Fancy/Enum Field.prefab @@ -0,0 +1,631 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &1444953513591056482 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1444953513591056483} + - component: {fileID: 1444953513591056481} + - component: {fileID: 1444953513591056480} + m_Layer: 5 + m_Name: Label + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1444953513591056483 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1444953513591056482} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1444953513611246322} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: -7.5, y: -0.5} + m_SizeDelta: {x: -35, y: -13} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &1444953513591056481 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1444953513591056482} + m_CullTransparentMesh: 0 +--- !u!114 &1444953513591056480 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1444953513591056482} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Option A + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 53555f7a2d5e745428813f1b1118734f, type: 2} + m_sharedMaterial: {fileID: -2804126062856497447, guid: 53555f7a2d5e745428813f1b1118734f, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294964185 + m_fontColor: {r: 0.85, g: 0.95199996, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 14 + m_fontSizeBase: 14 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &1444953513611246325 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1444953513611246322} + - component: {fileID: 1444953513611246321} + - component: {fileID: 1444953513611246320} + - component: {fileID: 4690792748777174348} + - component: {fileID: 1073031607} + m_Layer: 5 + m_Name: Dropdown + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1444953513611246322 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1444953513611246325} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1444953513591056483} + - {fileID: 1444953514355799430} + m_Father: {fileID: 1444953514731475974} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 1, y: 0.5} +--- !u!222 &1444953513611246321 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1444953513611246325} + m_CullTransparentMesh: 0 +--- !u!114 &1444953513611246320 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1444953513611246325} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.7529412, g: 0.7529412, b: 1, a: 0.039215688} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 7ed12bf887e951949bd02894a21fb3ff, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &4690792748777174348 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1444953513611246325} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: 24 + m_PreferredWidth: 0 + m_PreferredHeight: -1 + m_FlexibleWidth: 2 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 +--- !u!114 &1073031607 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1444953513611246325} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 0.75, g: 0.75, b: 0.75, a: 1} + m_HighlightedColor: {r: 0.85, g: 0.85, b: 0.85, a: 1} + m_PressedColor: {r: 1, g: 1, b: 1, a: 1} + m_SelectedColor: {r: 0.8, g: 0.8, b: 0.8, a: 1} + m_DisabledColor: {r: 0.3, g: 0.3, b: 0.3, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1444953513611246320} + m_OnClick: + m_PersistentCalls: + m_Calls: [] +--- !u!1 &1444953513817938009 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1444953513817938006} + - component: {fileID: 1444953513817938004} + - component: {fileID: 1444953513817938007} + - component: {fileID: 9033476071183639230} + m_Layer: 5 + m_Name: Name + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1444953513817938006 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1444953513817938009} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1444953514731475974} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &1444953513817938004 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1444953513817938009} + m_CullTransparentMesh: 0 +--- !u!114 &1444953513817938007 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1444953513817938009} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Dolor + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 53555f7a2d5e745428813f1b1118734f, type: 2} + m_sharedMaterial: {fileID: -2804126062856497447, guid: 53555f7a2d5e745428813f1b1118734f, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4279071487 + m_fontColor: {r: 1, g: 0.44583336, b: 0.050000012, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 14 + m_fontSizeBase: 14 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 16 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &9033476071183639230 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1444953513817938009} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: 0 + m_PreferredHeight: -1 + m_FlexibleWidth: 3 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 +--- !u!1 &1444953514355799433 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1444953514355799430} + - component: {fileID: 1444953514355799428} + - component: {fileID: 1444953514355799431} + m_Layer: 5 + m_Name: Arrow + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1444953514355799430 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1444953514355799433} + m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1444953513611246322} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} + m_AnchorMin: {x: 1, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: -15, y: 0} + m_SizeDelta: {x: 16, y: 16} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &1444953514355799428 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1444953514355799433} + m_CullTransparentMesh: 0 +--- !u!114 &1444953514355799431 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1444953514355799433} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.85, g: 0.95199996, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: ef87bbaa6e6f6824fa1b758cc93393d5, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &1444953514731475977 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1444953514731475974} + - component: {fileID: 1444953514731475972} + - component: {fileID: 1444953514731475975} + - component: {fileID: 4632392883281417793} + - component: {fileID: 1173116018768784544} + m_Layer: 5 + m_Name: Enum Field + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1444953514731475974 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1444953514731475977} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1444953513817938006} + - {fileID: 1444953513611246322} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &1444953514731475972 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1444953514731475977} + m_CullTransparentMesh: 0 +--- !u!114 &1444953514731475975 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1444953514731475977} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6693f0cab8ab72b49bdbc76515d0fc1f, type: 3} + m_Name: + m_EditorClassIdentifier: + Label: {fileID: 1444953513817938007} + Dropdown: {fileID: 1073031607} + DropdownLabel: {fileID: 1444953513591056480} +--- !u!114 &4632392883281417793 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1444953514731475977} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 8 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 4 + m_Spacing: 4 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 1 + m_ChildControlHeight: 1 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 +--- !u!114 &1173116018768784544 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1444953514731475977} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.45402354, g: 0.45402354, b: 0.603, a: 0.039215688} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 84d126f984de5fd42ac66361c00f830c, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 diff --git a/Assets/Prefabs/UI/Properties Panel/Enum Field.prefab.meta b/Assets/Prefabs/UI/Properties Panel/Fancy/Enum Field.prefab.meta similarity index 100% rename from Assets/Prefabs/UI/Properties Panel/Enum Field.prefab.meta rename to Assets/Prefabs/UI/Properties Panel/Fancy/Enum Field.prefab.meta diff --git a/Assets/Prefabs/UI/Properties Panel/Fancy/Increment Field.prefab b/Assets/Prefabs/UI/Properties Panel/Fancy/Increment Field.prefab new file mode 100644 index 000000000..d96e4aabd --- /dev/null +++ b/Assets/Prefabs/UI/Properties Panel/Fancy/Increment Field.prefab @@ -0,0 +1,743 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &1605753206073100128 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8483308900631515678} + - component: {fileID: 8526869212183972466} + - component: {fileID: 2687083270484067498} + - component: {fileID: 5135471079449148330} + - component: {fileID: 4381889698702080136} + m_Layer: 5 + m_Name: Minus + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8483308900631515678 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1605753206073100128} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.75, y: 0.75, z: 1} + m_Children: [] + m_Father: {fileID: 2544338102157427055} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: -24, y: 0} + m_SizeDelta: {x: 24, y: 0} + m_Pivot: {x: 1, y: 0.5} +--- !u!222 &8526869212183972466 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1605753206073100128} + m_CullTransparentMesh: 0 +--- !u!114 &2687083270484067498 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1605753206073100128} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 0.44583336, b: 0.050000012, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: f1aad09b4bf42ba4aa13a9fa1d97f01c, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &5135471079449148330 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1605753206073100128} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 86710e43de46f6f4bac7c8e50813a599, type: 3} + m_Name: + m_EditorClassIdentifier: + m_AspectMode: 1 + m_AspectRatio: 1 +--- !u!114 &4381889698702080136 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1605753206073100128} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 0.75, g: 0.75, b: 0.75, a: 1} + m_HighlightedColor: {r: 0.85, g: 0.85, b: 0.85, a: 1} + m_PressedColor: {r: 1, g: 1, b: 1, a: 1} + m_SelectedColor: {r: 0.8, g: 0.8, b: 0.8, a: 1} + m_DisabledColor: {r: 0.3, g: 0.3, b: 0.3, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 2687083270484067498} + m_OnClick: + m_PersistentCalls: + m_Calls: [] +--- !u!1 &5283002100655394437 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2544338102157427055} + - component: {fileID: 4673874671755542913} + m_Layer: 5 + m_Name: Value + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2544338102157427055 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5283002100655394437} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 3841991687815987397} + - {fileID: 7863247503782211248} + - {fileID: 8483308900631515678} + m_Father: {fileID: 6770904480725292323} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &4673874671755542913 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5283002100655394437} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: 24 + m_PreferredWidth: 0 + m_PreferredHeight: -1 + m_FlexibleWidth: 2 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 +--- !u!1 &6770904480229951562 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6770904480229951561} + - component: {fileID: 6770904480229951559} + - component: {fileID: 6770904480229951560} + - component: {fileID: 4105548676279582035} + m_Layer: 5 + m_Name: Name + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &6770904480229951561 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6770904480229951562} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 6770904480725292323} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &6770904480229951559 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6770904480229951562} + m_CullTransparentMesh: 0 +--- !u!114 &6770904480229951560 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6770904480229951562} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Increment Field + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 53555f7a2d5e745428813f1b1118734f, type: 2} + m_sharedMaterial: {fileID: -2804126062856497447, guid: 53555f7a2d5e745428813f1b1118734f, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4279071487 + m_fontColor: {r: 1, g: 0.44583336, b: 0.050000012, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 14 + m_fontSizeBase: 14 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 16 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &4105548676279582035 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6770904480229951562} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: 0 + m_PreferredHeight: -1 + m_FlexibleWidth: 3 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 +--- !u!1 &6770904480725292324 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6770904480725292323} + - component: {fileID: 1631430149142837322} + - component: {fileID: 7366034754694240657} + - component: {fileID: 5486709585343280439} + - component: {fileID: 8003140079209925633} + m_Layer: 5 + m_Name: Increment Field + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &6770904480725292323 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6770904480725292324} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 6770904480229951561} + - {fileID: 2544338102157427055} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &1631430149142837322 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6770904480725292324} + m_CullTransparentMesh: 0 +--- !u!114 &7366034754694240657 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6770904480725292324} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 8 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 4 + m_Spacing: 4 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 1 + m_ChildControlHeight: 1 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 +--- !u!114 &5486709585343280439 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6770904480725292324} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a20edbefbc04f1241a5e5137ac00951f, type: 3} + m_Name: + m_EditorClassIdentifier: + Label: {fileID: 6770904480229951560} + Value: {fileID: 6924119194371198423} + Increment: {fileID: 1073872882838851452} + Decrement: {fileID: 4381889698702080136} +--- !u!114 &8003140079209925633 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6770904480725292324} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.45402354, g: 0.45402354, b: 0.603, a: 0.039215688} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 84d126f984de5fd42ac66361c00f830c, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &7504558634519373875 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7863247503782211248} + - component: {fileID: 5145711774446738166} + - component: {fileID: 1410452812875009136} + - component: {fileID: 4834146310204943466} + - component: {fileID: 1073872882838851452} + m_Layer: 5 + m_Name: Plus + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7863247503782211248 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7504558634519373875} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.75, y: 0.75, z: 1} + m_Children: [] + m_Father: {fileID: 2544338102157427055} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: -2, y: 0} + m_SizeDelta: {x: 24, y: 0} + m_Pivot: {x: 1, y: 0.5} +--- !u!222 &5145711774446738166 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7504558634519373875} + m_CullTransparentMesh: 0 +--- !u!114 &1410452812875009136 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7504558634519373875} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 0.44583336, b: 0.050000012, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 1d55ddcd5a3c2354faea7e99db862d21, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &4834146310204943466 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7504558634519373875} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 86710e43de46f6f4bac7c8e50813a599, type: 3} + m_Name: + m_EditorClassIdentifier: + m_AspectMode: 1 + m_AspectRatio: 1 +--- !u!114 &1073872882838851452 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7504558634519373875} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 0.75, g: 0.75, b: 0.75, a: 1} + m_HighlightedColor: {r: 0.85, g: 0.85, b: 0.85, a: 1} + m_PressedColor: {r: 1, g: 1, b: 1, a: 1} + m_SelectedColor: {r: 0.8, g: 0.8, b: 0.8, a: 1} + m_DisabledColor: {r: 0.3, g: 0.3, b: 0.3, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1410452812875009136} + m_OnClick: + m_PersistentCalls: + m_Calls: [] +--- !u!1 &8163497113325809434 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3841991687815987397} + - component: {fileID: 3684854048432852154} + - component: {fileID: 6924119194371198423} + m_Layer: 5 + m_Name: Label + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3841991687815987397 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8163497113325809434} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 2544338102157427055} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: -28, y: 0} + m_SizeDelta: {x: -56, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &3684854048432852154 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8163497113325809434} + m_CullTransparentMesh: 0 +--- !u!114 &6924119194371198423 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8163497113325809434} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: 123456 + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 53555f7a2d5e745428813f1b1118734f, type: 2} + m_sharedMaterial: {fileID: -2804126062856497447, guid: 53555f7a2d5e745428813f1b1118734f, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294964185 + m_fontColor: {r: 0.85, g: 0.95199996, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 14 + m_fontSizeBase: 14 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} diff --git a/Assets/Prefabs/UI/Properties Panel/Increment Field.prefab.meta b/Assets/Prefabs/UI/Properties Panel/Fancy/Increment Field.prefab.meta similarity index 100% rename from Assets/Prefabs/UI/Properties Panel/Increment Field.prefab.meta rename to Assets/Prefabs/UI/Properties Panel/Fancy/Increment Field.prefab.meta diff --git a/Assets/Prefabs/UI/Properties Panel/Fancy/Input Field.prefab b/Assets/Prefabs/UI/Properties Panel/Fancy/Input Field.prefab new file mode 100644 index 000000000..7783d6c5c --- /dev/null +++ b/Assets/Prefabs/UI/Properties Panel/Fancy/Input Field.prefab @@ -0,0 +1,852 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &23155009655760171 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 23155009655760172} + - component: {fileID: 5404697270043232325} + - component: {fileID: 6586910564433979167} + - component: {fileID: 1618696626055083012} + - component: {fileID: 7267857215996351324} + m_Layer: 5 + m_Name: Input Field + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &23155009655760172 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 23155009655760171} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 23155009713813574} + - {fileID: 8734896053364945145} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &5404697270043232325 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 23155009655760171} + m_CullTransparentMesh: 0 +--- !u!114 &6586910564433979167 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 23155009655760171} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: eaba78dd36b0e9e4ba8123c4b149fc43, type: 3} + m_Name: + m_EditorClassIdentifier: + Label: {fileID: 23155009713813575} + Field: {fileID: 5938949450847760331} +--- !u!114 &1618696626055083012 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 23155009655760171} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 8 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 4 + m_Spacing: 4 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 1 + m_ChildControlHeight: 1 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 +--- !u!114 &7267857215996351324 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 23155009655760171} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.45402354, g: 0.45402354, b: 0.603, a: 0.039215688} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 84d126f984de5fd42ac66361c00f830c, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &23155009713813573 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 23155009713813574} + - component: {fileID: 23155009713813576} + - component: {fileID: 23155009713813575} + - component: {fileID: 1618696626055083014} + m_Layer: 5 + m_Name: Name + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &23155009713813574 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 23155009713813573} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 23155009655760172} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &23155009713813576 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 23155009713813573} + m_CullTransparentMesh: 0 +--- !u!114 &23155009713813575 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 23155009713813573} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Input Field + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 53555f7a2d5e745428813f1b1118734f, type: 2} + m_sharedMaterial: {fileID: -2804126062856497447, guid: 53555f7a2d5e745428813f1b1118734f, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4279071487 + m_fontColor: {r: 1, g: 0.44583336, b: 0.050000012, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 14 + m_fontSizeBase: 14 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 16 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &1618696626055083014 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 23155009713813573} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: 0 + m_PreferredHeight: -1 + m_FlexibleWidth: 3 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 +--- !u!1 &4325686754214431229 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8734896053364945145} + - component: {fileID: 6425088673482401122} + m_Layer: 5 + m_Name: Field Holder + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8734896053364945145 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4325686754214431229} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 5938949450847760329} + m_Father: {fileID: 23155009655760172} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &6425088673482401122 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4325686754214431229} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: 24 + m_PreferredWidth: 0 + m_PreferredHeight: -1 + m_FlexibleWidth: 2 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 +--- !u!1 &5938949450758544619 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5938949450758544618} + - component: {fileID: 5938949450758544405} + m_Layer: 5 + m_Name: Text Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5938949450758544618 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5938949450758544619} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 5938949451508194215} + - {fileID: 5938949451316023666} + m_Father: {fileID: 5938949450847760329} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -1} + m_SizeDelta: {x: -10, y: -8} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &5938949450758544405 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5938949450758544619} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3312d7739989d2b4e91e6319e9a96d76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: {x: 0, y: 0, z: 0, w: 0} + m_Softness: {x: 0, y: 0} +--- !u!1 &5938949450847760334 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5938949450847760329} + - component: {fileID: 5938949450847760373} + - component: {fileID: 5938949450847760330} + - component: {fileID: 5938949450847760331} + - component: {fileID: 1618696626055083017} + m_Layer: 5 + m_Name: Flat InputField + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5938949450847760329 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5938949450847760334} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 5938949450758544618} + m_Father: {fileID: 8734896053364945145} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 1, y: 0.5} +--- !u!222 &5938949450847760373 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5938949450847760334} + m_CullTransparentMesh: 0 +--- !u!114 &5938949450847760330 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5938949450847760334} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.7529412, g: 0.7529412, b: 1, a: 0.039215688} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 7ed12bf887e951949bd02894a21fb3ff, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &5938949450847760331 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5938949450847760334} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2da0c512f12947e489f739169773d7ca, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 0.75, g: 0.75, b: 0.75, a: 1} + m_HighlightedColor: {r: 0.85, g: 0.85, b: 0.85, a: 1} + m_PressedColor: {r: 1, g: 1, b: 1, a: 1} + m_SelectedColor: {r: 0.8, g: 0.8, b: 0.8, a: 1} + m_DisabledColor: {r: 0.3, g: 0.3, b: 0.3, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 5938949450847760330} + m_TextViewport: {fileID: 5938949450758544618} + m_TextComponent: {fileID: 5938949451316023677} + m_Placeholder: {fileID: 5938949451508194214} + m_VerticalScrollbar: {fileID: 0} + m_VerticalScrollbarEventHandler: {fileID: 0} + m_LayoutGroup: {fileID: 0} + m_ScrollSensitivity: 1 + m_ContentType: 0 + m_InputType: 0 + m_AsteriskChar: 42 + m_KeyboardType: 0 + m_LineType: 0 + m_HideMobileInput: 0 + m_HideSoftKeyboard: 0 + m_CharacterValidation: 0 + m_RegexValue: + m_GlobalPointSize: 14 + m_CharacterLimit: 0 + m_OnEndEdit: + m_PersistentCalls: + m_Calls: [] + m_OnSubmit: + m_PersistentCalls: + m_Calls: [] + m_OnSelect: + m_PersistentCalls: + m_Calls: [] + m_OnDeselect: + m_PersistentCalls: + m_Calls: [] + m_OnTextSelection: + m_PersistentCalls: + m_Calls: [] + m_OnEndTextSelection: + m_PersistentCalls: + m_Calls: [] + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] + m_OnTouchScreenKeyboardStatusChanged: + m_PersistentCalls: + m_Calls: [] + m_CaretColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_CustomCaretColor: 0 + m_SelectionColor: {r: 0.65882355, g: 0.80784315, b: 1, a: 0.7529412} + m_Text: + m_CaretBlinkRate: 0.85 + m_CaretWidth: 1 + m_ReadOnly: 0 + m_RichText: 1 + m_GlobalFontAsset: {fileID: 11400000, guid: 9dcd07b95faae7641a3ff6fccab43c32, type: 2} + m_OnFocusSelectAll: 1 + m_ResetOnDeActivation: 1 + m_RestoreOriginalTextOnEscape: 1 + m_isRichTextEditingAllowed: 0 + m_LineLimit: 0 + m_InputValidator: {fileID: 0} +--- !u!114 &1618696626055083017 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5938949450847760334} + m_Enabled: 0 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: 28 + m_PreferredWidth: 0 + m_PreferredHeight: -1 + m_FlexibleWidth: 2 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 +--- !u!1 &5938949451316023667 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5938949451316023666} + - component: {fileID: 5938949451316023676} + - component: {fileID: 5938949451316023677} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5938949451316023666 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5938949451316023667} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 5938949450758544618} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0.5, y: 0} + m_SizeDelta: {x: -1, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &5938949451316023676 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5938949451316023667} + m_CullTransparentMesh: 0 +--- !u!114 &5938949451316023677 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5938949451316023667} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: "\u200B" + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 53555f7a2d5e745428813f1b1118734f, type: 2} + m_sharedMaterial: {fileID: -2804126062856497447, guid: 53555f7a2d5e745428813f1b1118734f, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294964185 + m_fontColor: {r: 0.85, g: 0.95199996, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 14 + m_fontSizeBase: 14 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 0 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 1 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &5938949451508194212 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5938949451508194215} + - component: {fileID: 5938949451508194209} + - component: {fileID: 5938949451508194214} + m_Layer: 5 + m_Name: Placeholder + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5938949451508194215 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5938949451508194212} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 5938949450758544618} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 1.5, y: 0} + m_SizeDelta: {x: -3, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &5938949451508194209 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5938949451508194212} + m_CullTransparentMesh: 0 +--- !u!114 &5938949451508194214 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5938949451508194212} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Enter text... + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 53555f7a2d5e745428813f1b1118734f, type: 2} + m_sharedMaterial: {fileID: -2804126062856497447, guid: 53555f7a2d5e745428813f1b1118734f, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4255754665 + m_fontColor: {r: 0.66400003, g: 0.66400003, b: 0.66400003, a: 0.99215686} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 14 + m_fontSizeBase: 14 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 2 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 0 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 1 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} diff --git a/Assets/Prefabs/UI/Properties Panel/Input Field.prefab.meta b/Assets/Prefabs/UI/Properties Panel/Fancy/Input Field.prefab.meta similarity index 100% rename from Assets/Prefabs/UI/Properties Panel/Input Field.prefab.meta rename to Assets/Prefabs/UI/Properties Panel/Fancy/Input Field.prefab.meta diff --git a/Assets/Prefabs/UI/Properties Panel/Fancy/Progress Field.prefab b/Assets/Prefabs/UI/Properties Panel/Fancy/Progress Field.prefab new file mode 100644 index 000000000..fc679578a --- /dev/null +++ b/Assets/Prefabs/UI/Properties Panel/Fancy/Progress Field.prefab @@ -0,0 +1,573 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &1103627007437062218 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1684719062263664779} + - component: {fileID: 7932258796196231685} + - component: {fileID: 8894480284447435227} + m_Layer: 5 + m_Name: Fill + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1684719062263664779 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1103627007437062218} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 8181761431199775037} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7932258796196231685 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1103627007437062218} + m_CullTransparentMesh: 0 +--- !u!114 &8894480284447435227 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1103627007437062218} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 0.44583336, b: 0.050000012, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 7ed12bf887e951949bd02894a21fb3ff, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &2128179938907734338 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4052465884214141673} + - component: {fileID: 3178655000854301877} + - component: {fileID: 6640782209009516030} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &4052465884214141673 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2128179938907734338} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 8181761431199775037} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &3178655000854301877 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2128179938907734338} + m_CullTransparentMesh: 0 +--- !u!114 &6640782209009516030 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2128179938907734338} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0.5019608} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 7ed12bf887e951949bd02894a21fb3ff, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &3301729265155698788 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3301729265155698787} + - component: {fileID: 3301729265155698785} + - component: {fileID: 256436433275418348} + - component: {fileID: 308454102} + - component: {fileID: 9168874538616814698} + m_Layer: 5 + m_Name: Progress Field + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3301729265155698787 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3301729265155698788} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 3301729265189646952} + - {fileID: 8626591645481506733} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &3301729265155698785 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3301729265155698788} + m_CullTransparentMesh: 0 +--- !u!114 &256436433275418348 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3301729265155698788} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9f6e88386192c944b8c95e1a6251be66, type: 3} + m_Name: + m_EditorClassIdentifier: + Label: {fileID: 3301729265189646935} + Slider: {fileID: 1245313791973438745} +--- !u!114 &308454102 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3301729265155698788} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 8 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 4 + m_Spacing: 4 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 1 + m_ChildControlHeight: 1 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 +--- !u!114 &9168874538616814698 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3301729265155698788} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.45402354, g: 0.45402354, b: 0.603, a: 0.039215688} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 84d126f984de5fd42ac66361c00f830c, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &3301729265189646953 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3301729265189646952} + - component: {fileID: 3301729265189646934} + - component: {fileID: 3301729265189646935} + - component: {fileID: 308454100} + m_Layer: 5 + m_Name: Name + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3301729265189646952 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3301729265189646953} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 3301729265155698787} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &3301729265189646934 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3301729265189646953} + m_CullTransparentMesh: 0 +--- !u!114 &3301729265189646935 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3301729265189646953} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Progress Bar + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 53555f7a2d5e745428813f1b1118734f, type: 2} + m_sharedMaterial: {fileID: -2804126062856497447, guid: 53555f7a2d5e745428813f1b1118734f, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4279071487 + m_fontColor: {r: 1, g: 0.44583336, b: 0.050000012, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 14 + m_fontSizeBase: 14 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 16 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &308454100 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3301729265189646953} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: 0 + m_PreferredHeight: -1 + m_FlexibleWidth: 3 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 +--- !u!1 &3947597710774014716 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8181761431199775037} + m_Layer: 5 + m_Name: Fill Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8181761431199775037 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3947597710774014716} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 4052465884214141673} + - {fileID: 1684719062263664779} + m_Father: {fileID: 8626591645481506733} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &8579295300066914487 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8626591645481506733} + - component: {fileID: 1245313791973438745} + - component: {fileID: 308454099} + m_Layer: 5 + m_Name: Slider + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8626591645481506733 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8579295300066914487} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 8181761431199775037} + m_Father: {fileID: 3301729265155698787} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 1, y: 0.5} +--- !u!114 &1245313791973438745 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8579295300066914487} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 67db9e8f0e2ae9c40bc1e2b64352a6b4, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + m_Interactable: 0 + m_TargetGraphic: {fileID: 0} + m_FillRect: {fileID: 1684719062263664779} + m_HandleRect: {fileID: 0} + m_Direction: 0 + m_MinValue: 0 + m_MaxValue: 1 + m_WholeNumbers: 0 + m_Value: 0.76 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &308454099 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8579295300066914487} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: 24 + m_PreferredWidth: 0 + m_PreferredHeight: -1 + m_FlexibleWidth: 2 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 diff --git a/Assets/Prefabs/UI/Properties Panel/Progress Field.prefab.meta b/Assets/Prefabs/UI/Properties Panel/Fancy/Progress Field.prefab.meta similarity index 100% rename from Assets/Prefabs/UI/Properties Panel/Progress Field.prefab.meta rename to Assets/Prefabs/UI/Properties Panel/Fancy/Progress Field.prefab.meta diff --git a/Assets/Prefabs/UI/Properties Panel/Fancy/Property Label.prefab b/Assets/Prefabs/UI/Properties Panel/Fancy/Property Label.prefab new file mode 100644 index 000000000..7a62821c3 --- /dev/null +++ b/Assets/Prefabs/UI/Properties Panel/Fancy/Property Label.prefab @@ -0,0 +1,433 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &2677123916028371622 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2677123916028371621} + - component: {fileID: 2677123916028371627} + - component: {fileID: 2677123916028371620} + - component: {fileID: 4623451892811290559} + m_Layer: 5 + m_Name: Name + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2677123916028371621 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2677123916028371622} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 2677123916507168719} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &2677123916028371627 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2677123916028371622} + m_CullTransparentMesh: 0 +--- !u!114 &2677123916028371620 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2677123916028371622} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Property with value + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 53555f7a2d5e745428813f1b1118734f, type: 2} + m_sharedMaterial: {fileID: -2804126062856497447, guid: 53555f7a2d5e745428813f1b1118734f, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4279071487 + m_fontColor: {r: 1, g: 0.44583336, b: 0.050000012, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 14 + m_fontSizeBase: 14 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 16 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &4623451892811290559 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2677123916028371622} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: 24 + m_PreferredWidth: 0 + m_PreferredHeight: -1 + m_FlexibleWidth: 3 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 +--- !u!1 &2677123916507168712 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2677123916507168719} + - component: {fileID: 279061376544739623} + - component: {fileID: 7959015954088891046} + - component: {fileID: 2227437186655761277} + - component: {fileID: 9136976452023066823} + m_Layer: 5 + m_Name: Property Label + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2677123916507168719 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2677123916507168712} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 2677123916028371621} + - {fileID: 6602089867192183683} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &279061376544739623 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2677123916507168712} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b403db1d8980f544099fedf5735cf364, type: 3} + m_Name: + m_EditorClassIdentifier: + Label: {fileID: 2677123916028371620} + Value: {fileID: 1120484356114752953} +--- !u!222 &7959015954088891046 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2677123916507168712} + m_CullTransparentMesh: 0 +--- !u!114 &2227437186655761277 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2677123916507168712} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 8 + m_Right: 8 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 4 + m_Spacing: 4 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 1 + m_ChildControlHeight: 1 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 +--- !u!114 &9136976452023066823 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2677123916507168712} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.45402354, g: 0.45402354, b: 0.603, a: 0.039215688} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 84d126f984de5fd42ac66361c00f830c, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &3567103445860279401 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6602089867192183683} + - component: {fileID: 894355259237647483} + - component: {fileID: 1120484356114752953} + - component: {fileID: 4038861921972693869} + m_Layer: 5 + m_Name: Value + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &6602089867192183683 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3567103445860279401} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 2677123916507168719} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &894355259237647483 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3567103445860279401} + m_CullTransparentMesh: 0 +--- !u!114 &1120484356114752953 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3567103445860279401} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: 123456789 + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 53555f7a2d5e745428813f1b1118734f, type: 2} + m_sharedMaterial: {fileID: -2804126062856497447, guid: 53555f7a2d5e745428813f1b1118734f, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294964185 + m_fontColor: {r: 0.85, g: 0.95199996, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 14 + m_fontSizeBase: 14 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 4 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &4038861921972693869 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3567103445860279401} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: 0 + m_PreferredHeight: -1 + m_FlexibleWidth: 2 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 diff --git a/Assets/Prefabs/UI/Properties Panel/Property Label.prefab.meta b/Assets/Prefabs/UI/Properties Panel/Fancy/Property Label.prefab.meta similarity index 100% rename from Assets/Prefabs/UI/Properties Panel/Property Label.prefab.meta rename to Assets/Prefabs/UI/Properties Panel/Fancy/Property Label.prefab.meta diff --git a/Assets/Prefabs/UI/Properties Panel/Fancy/Property.prefab b/Assets/Prefabs/UI/Properties Panel/Fancy/Property.prefab new file mode 100644 index 000000000..fd7063dc1 --- /dev/null +++ b/Assets/Prefabs/UI/Properties Panel/Fancy/Property.prefab @@ -0,0 +1,277 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &9159917045079857285 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 9159917045079857286} + - component: {fileID: 9159917045079857288} + - component: {fileID: 9159917045079857287} + - component: {fileID: 7146960633174762155} + m_Layer: 5 + m_Name: Name + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &9159917045079857286 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9159917045079857285} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 9159917045172241900} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &9159917045079857288 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9159917045079857285} + m_CullTransparentMesh: 0 +--- !u!114 &9159917045079857287 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9159917045079857285} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: This is a property with a very long name that forces expand. If you keep + typing hopefully it will get long enough that it will be forced to occupy multiple + lines + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 53555f7a2d5e745428813f1b1118734f, type: 2} + m_sharedMaterial: {fileID: -2804126062856497447, guid: 53555f7a2d5e745428813f1b1118734f, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294964185 + m_fontColor: {r: 0.85, g: 0.95199996, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 14 + m_fontSizeBase: 14 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &7146960633174762155 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9159917045079857285} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: 24 + m_PreferredWidth: 0 + m_PreferredHeight: -1 + m_FlexibleWidth: 3 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 +--- !u!1 &9159917045172241899 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 9159917045172241900} + - component: {fileID: 3768814520516454533} + - component: {fileID: 9159917045172241898} + - component: {fileID: 7146960633535889349} + - component: {fileID: 3927977982688720949} + m_Layer: 5 + m_Name: Property + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &9159917045172241900 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9159917045172241899} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 9159917045079857286} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &3768814520516454533 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9159917045172241899} + m_CullTransparentMesh: 0 +--- !u!114 &9159917045172241898 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9159917045172241899} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8c0b005aebd0cd947a04034f1a42e838, type: 3} + m_Name: + m_EditorClassIdentifier: + Label: {fileID: 9159917045079857287} +--- !u!114 &7146960633535889349 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9159917045172241899} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 8 + m_Right: 8 + m_Top: 8 + m_Bottom: 8 + m_ChildAlignment: 4 + m_Spacing: 4 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 1 + m_ChildControlHeight: 1 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 +--- !u!114 &3927977982688720949 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9159917045172241899} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.45402354, g: 0.45402354, b: 0.603, a: 0.039215688} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 84d126f984de5fd42ac66361c00f830c, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 diff --git a/Assets/Prefabs/UI/Properties Panel/Property.prefab.meta b/Assets/Prefabs/UI/Properties Panel/Fancy/Property.prefab.meta similarity index 100% rename from Assets/Prefabs/UI/Properties Panel/Property.prefab.meta rename to Assets/Prefabs/UI/Properties Panel/Fancy/Property.prefab.meta diff --git a/Assets/Prefabs/UI/Properties Panel/Fancy/Ranged Float Field.prefab b/Assets/Prefabs/UI/Properties Panel/Fancy/Ranged Float Field.prefab new file mode 100644 index 000000000..2a55374e3 --- /dev/null +++ b/Assets/Prefabs/UI/Properties Panel/Fancy/Ranged Float Field.prefab @@ -0,0 +1,721 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &653665709475812930 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3217779461217105385} + - component: {fileID: 4073014376677579701} + - component: {fileID: 5238342926289038078} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3217779461217105385 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 653665709475812930} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 7146463267720429741} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: -1, y: 0} + m_SizeDelta: {x: -2, y: 8} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &4073014376677579701 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 653665709475812930} + m_CullTransparentMesh: 0 +--- !u!114 &5238342926289038078 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 653665709475812930} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.2, g: 0.2, b: 0.2, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 7ed12bf887e951949bd02894a21fb3ff, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &794958047001100441 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3222204141728529077} + m_Layer: 5 + m_Name: Handle Slide Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3222204141728529077 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 794958047001100441} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 3436413162678517982} + m_Father: {fileID: 7146463267720429741} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: -0.75, y: 0} + m_SizeDelta: {x: -11.500005, y: 16} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &2002492103477548874 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 287045173602649995} + - component: {fileID: 8831438223745215749} + - component: {fileID: 8067375948697829083} + m_Layer: 5 + m_Name: Fill + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &287045173602649995 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2002492103477548874} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 7282863425963355709} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 10, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &8831438223745215749 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2002492103477548874} + m_CullTransparentMesh: 0 +--- !u!114 &8067375948697829083 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2002492103477548874} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.7529412, g: 0.7529412, b: 1, a: 0.101960786} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 7ed12bf887e951949bd02894a21fb3ff, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &2473098711229072892 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7282863425963355709} + m_Layer: 5 + m_Name: Fill Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7282863425963355709 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2473098711229072892} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 287045173602649995} + m_Father: {fileID: 7146463267720429741} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: -0.75, y: 0} + m_SizeDelta: {x: -11.5, y: 8} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &3491766746367124251 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3436413162678517982} + - component: {fileID: 3123360186942093854} + - component: {fileID: 3441005906764424621} + - component: {fileID: 959243725711984767} + m_Layer: 5 + m_Name: Handle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3436413162678517982 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3491766746367124251} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.75, y: 0.75, z: 1} + m_Children: [] + m_Father: {fileID: 3222204141728529077} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 16, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &3123360186942093854 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3491766746367124251} + m_CullTransparentMesh: 0 +--- !u!114 &3441005906764424621 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3491766746367124251} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 0.44583336, b: 0.050000012, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 84d126f984de5fd42ac66361c00f830c, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &959243725711984767 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3491766746367124251} + m_Enabled: 0 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 86710e43de46f6f4bac7c8e50813a599, type: 3} + m_Name: + m_EditorClassIdentifier: + m_AspectMode: 2 + m_AspectRatio: 1 +--- !u!1 &4127690186169542500 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4127690186169542499} + - component: {fileID: 4127690186169542511} + - component: {fileID: 4127690186169542497} + - component: {fileID: 1663396771457720812} + - component: {fileID: 284875493} + - component: {fileID: 8757870611866378986} + m_Layer: 5 + m_Name: Ranged Float Field + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &4127690186169542499 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4127690186169542500} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 4127690186274268520} + - {fileID: 7146463267720429741} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &4127690186169542511 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4127690186169542500} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: 1 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 +--- !u!222 &4127690186169542497 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4127690186169542500} + m_CullTransparentMesh: 0 +--- !u!114 &1663396771457720812 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4127690186169542500} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9f6e88386192c944b8c95e1a6251be66, type: 3} + m_Name: + m_EditorClassIdentifier: + Label: {fileID: 4127690186274268503} + Slider: {fileID: 419581697200562713} +--- !u!114 &284875493 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4127690186169542500} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 8 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 4 + m_Spacing: 4 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 1 + m_ChildControlHeight: 1 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 +--- !u!114 &8757870611866378986 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4127690186169542500} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.45402354, g: 0.45402354, b: 0.603, a: 0.039215688} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 84d126f984de5fd42ac66361c00f830c, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &4127690186274268521 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4127690186274268520} + - component: {fileID: 4127690186274268502} + - component: {fileID: 4127690186274268503} + - component: {fileID: 284875491} + m_Layer: 5 + m_Name: Name + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &4127690186274268520 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4127690186274268521} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 4127690186169542499} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &4127690186274268502 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4127690186274268521} + m_CullTransparentMesh: 0 +--- !u!114 &4127690186274268503 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4127690186274268521} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Slider Field + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 53555f7a2d5e745428813f1b1118734f, type: 2} + m_sharedMaterial: {fileID: -2804126062856497447, guid: 53555f7a2d5e745428813f1b1118734f, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4279071487 + m_fontColor: {r: 1, g: 0.44583336, b: 0.050000012, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 14 + m_fontSizeBase: 14 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 16 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &284875491 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4127690186274268521} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: 0 + m_PreferredHeight: -1 + m_FlexibleWidth: 3 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 +--- !u!1 &7175745493391583159 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7146463267720429741} + - component: {fileID: 419581697200562713} + - component: {fileID: 284875490} + m_Layer: 5 + m_Name: Slider + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7146463267720429741 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7175745493391583159} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 3217779461217105385} + - {fileID: 7282863425963355709} + - {fileID: 3222204141728529077} + m_Father: {fileID: 4127690186169542499} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 1, y: 0.5} +--- !u!114 &419581697200562713 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7175745493391583159} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 67db9e8f0e2ae9c40bc1e2b64352a6b4, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 3441005906764424621} + m_FillRect: {fileID: 287045173602649995} + m_HandleRect: {fileID: 3436413162678517982} + m_Direction: 0 + m_MinValue: 0 + m_MaxValue: 1 + m_WholeNumbers: 0 + m_Value: 1 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &284875490 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7175745493391583159} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: 24 + m_PreferredWidth: 0 + m_PreferredHeight: -1 + m_FlexibleWidth: 2 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 diff --git a/Assets/Prefabs/UI/Properties Panel/Ranged Float Field.prefab.meta b/Assets/Prefabs/UI/Properties Panel/Fancy/Ranged Float Field.prefab.meta similarity index 100% rename from Assets/Prefabs/UI/Properties Panel/Ranged Float Field.prefab.meta rename to Assets/Prefabs/UI/Properties Panel/Fancy/Ranged Float Field.prefab.meta diff --git a/Assets/Prefabs/UI/Properties Panel/Fancy/Stat Sheet.prefab b/Assets/Prefabs/UI/Properties Panel/Fancy/Stat Sheet.prefab new file mode 100644 index 000000000..742f49b6b --- /dev/null +++ b/Assets/Prefabs/UI/Properties Panel/Fancy/Stat Sheet.prefab @@ -0,0 +1,77 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &5406598146331405230 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 146748748140329441} + - component: {fileID: 8602461136445575818} + - component: {fileID: 3416329628306957711} + m_Layer: 5 + m_Name: Stat Sheet + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &146748748140329441 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5406598146331405230} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &8602461136445575818 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5406598146331405230} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d29c5f8f94f596d4f8316387788ae810, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_StartCorner: 0 + m_StartAxis: 0 + m_CellSize: {x: 100, y: 48} + m_Spacing: {x: 4, y: 4} + m_Constraint: 1 + m_ConstraintCount: 2 +--- !u!114 &3416329628306957711 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5406598146331405230} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b02298592479bca4691d1bb19c2a79cd, type: 3} + m_Name: + m_EditorClassIdentifier: + StatPrefab: {fileID: 9148958552570056354, guid: 4adf44a4eae6e0a44ac66d868a606fd0, + type: 3} diff --git a/Assets/Prefabs/UI/Properties Panel/Fancy/Stat Sheet.prefab.meta b/Assets/Prefabs/UI/Properties Panel/Fancy/Stat Sheet.prefab.meta new file mode 100644 index 000000000..a802bb519 --- /dev/null +++ b/Assets/Prefabs/UI/Properties Panel/Fancy/Stat Sheet.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 4f75723ed178a084e813965e84825bd4 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Prefabs/UI/Properties Panel/Fancy/Stat.prefab b/Assets/Prefabs/UI/Properties Panel/Fancy/Stat.prefab new file mode 100644 index 000000000..fcbe746fb --- /dev/null +++ b/Assets/Prefabs/UI/Properties Panel/Fancy/Stat.prefab @@ -0,0 +1,364 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &3933190602043883200 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 169101331738242590} + - component: {fileID: 8305410312402961146} + - component: {fileID: 2062573798525684514} + - component: {fileID: 9148958552570056354} + m_Layer: 5 + m_Name: Stat + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &169101331738242590 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3933190602043883200} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 215031283457978355} + - {fileID: 6087143909423189777} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &8305410312402961146 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3933190602043883200} + m_CullTransparentMesh: 1 +--- !u!114 &2062573798525684514 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3933190602043883200} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.45402354, g: 0.45402354, b: 0.603, a: 0.039215688} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 84d126f984de5fd42ac66361c00f830c, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &9148958552570056354 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3933190602043883200} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b403db1d8980f544099fedf5735cf364, type: 3} + m_Name: + m_EditorClassIdentifier: + Label: {fileID: 6668013330483942110} + Value: {fileID: 1600793015758364564} +--- !u!1 &5325717872909411501 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6087143909423189777} + - component: {fileID: 9132359249133611180} + - component: {fileID: 1600793015758364564} + m_Layer: 5 + m_Name: Value + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &6087143909423189777 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5325717872909411501} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 169101331738242590} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: 0, y: 1} + m_SizeDelta: {x: -16, y: -2} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &9132359249133611180 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5325717872909411501} + m_CullTransparentMesh: 1 +--- !u!114 &1600793015758364564 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5325717872909411501} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: 12345 + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 53555f7a2d5e745428813f1b1118734f, type: 2} + m_sharedMaterial: {fileID: -2804126062856497447, guid: 53555f7a2d5e745428813f1b1118734f, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294964185 + m_fontColor: {r: 0.85, g: 0.95199996, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 14 + m_fontSizeBase: 14 + m_fontWeight: 400 + m_enableAutoSizing: 1 + m_fontSizeMin: 10 + m_fontSizeMax: 14 + m_fontStyle: 33 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 256 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &8040241135698122173 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 215031283457978355} + - component: {fileID: 7539032487123590734} + - component: {fileID: 6668013330483942110} + m_Layer: 5 + m_Name: Title + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &215031283457978355 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8040241135698122173} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 169101331738242590} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -2} + m_SizeDelta: {x: -16, y: -4} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7539032487123590734 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8040241135698122173} + m_CullTransparentMesh: 1 +--- !u!114 &6668013330483942110 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8040241135698122173} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Stat Name + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 53555f7a2d5e745428813f1b1118734f, type: 2} + m_sharedMaterial: {fileID: -2804126062856497447, guid: 53555f7a2d5e745428813f1b1118734f, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4279071487 + m_fontColor: {r: 1, g: 0.44583336, b: 0.050000012, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 14 + m_fontSizeBase: 14 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 16 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} diff --git a/Assets/Prefabs/UI/Properties Panel/Fancy/Stat.prefab.meta b/Assets/Prefabs/UI/Properties Panel/Fancy/Stat.prefab.meta new file mode 100644 index 000000000..46f44170b --- /dev/null +++ b/Assets/Prefabs/UI/Properties Panel/Fancy/Stat.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 4adf44a4eae6e0a44ac66d868a606fd0 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Prefabs/UI/Properties Panel/Properties.prefab b/Assets/Prefabs/UI/Properties Panel/Properties.prefab index ab3559cc6..9f6c03949 100644 --- a/Assets/Prefabs/UI/Properties Panel/Properties.prefab +++ b/Assets/Prefabs/UI/Properties Panel/Properties.prefab @@ -125,13 +125,13 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: m_Padding: - m_Left: 0 + m_Left: 8 m_Right: 8 m_Top: 8 m_Bottom: 8 m_ChildAlignment: 0 - m_Spacing: 0 - m_ChildForceExpandWidth: 0 + m_Spacing: 4 + m_ChildForceExpandWidth: 1 m_ChildForceExpandHeight: 0 m_ChildControlWidth: 1 m_ChildControlHeight: 1 @@ -782,6 +782,10 @@ MonoBehaviour: type: 3} IncrementField: {fileID: 5486709585343280439, guid: 9c14c92a1a08b0a4fb4f6aa6f8504082, type: 3} + StatSheet: {fileID: 3416329628306957711, guid: 4f75723ed178a084e813965e84825bd4, + type: 3} + CurveField: {fileID: 3018914896466881005, guid: 168887bbd3de8c74eb3f06d3d46dda4e, + type: 3} Content: {fileID: 257019179596293679} SelectedChild: {fileID: 0} --- !u!222 &7131821417165215473 diff --git a/Assets/Prefabs/UI/Properties Panel/Simple.meta b/Assets/Prefabs/UI/Properties Panel/Simple.meta new file mode 100644 index 000000000..863f10ae2 --- /dev/null +++ b/Assets/Prefabs/UI/Properties Panel/Simple.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 719e28e74b0f67042bba7a2acf0dff07 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Prefabs/UI/Properties Panel/Attribute.prefab b/Assets/Prefabs/UI/Properties Panel/Simple/Attribute.prefab similarity index 100% rename from Assets/Prefabs/UI/Properties Panel/Attribute.prefab rename to Assets/Prefabs/UI/Properties Panel/Simple/Attribute.prefab diff --git a/Assets/Prefabs/UI/Properties Panel/Attribute.prefab.meta b/Assets/Prefabs/UI/Properties Panel/Simple/Attribute.prefab.meta similarity index 74% rename from Assets/Prefabs/UI/Properties Panel/Attribute.prefab.meta rename to Assets/Prefabs/UI/Properties Panel/Simple/Attribute.prefab.meta index 3154215a7..b9d14014a 100644 --- a/Assets/Prefabs/UI/Properties Panel/Attribute.prefab.meta +++ b/Assets/Prefabs/UI/Properties Panel/Simple/Attribute.prefab.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 5e3a258a5b91c8246b20962ba6eccb09 +guid: b8cda1415430f8d4ea58357880fd71f6 PrefabImporter: externalObjects: {} userData: diff --git a/Assets/Prefabs/UI/Properties Panel/Bool Field.prefab b/Assets/Prefabs/UI/Properties Panel/Simple/Bool Field.prefab similarity index 100% rename from Assets/Prefabs/UI/Properties Panel/Bool Field.prefab rename to Assets/Prefabs/UI/Properties Panel/Simple/Bool Field.prefab diff --git a/Assets/Prefabs/UI/Properties Panel/Simple/Bool Field.prefab.meta b/Assets/Prefabs/UI/Properties Panel/Simple/Bool Field.prefab.meta new file mode 100644 index 000000000..f2ef9dbcc --- /dev/null +++ b/Assets/Prefabs/UI/Properties Panel/Simple/Bool Field.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 06119cc28b4edbe4ba3490ecf37cd76c +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Prefabs/UI/Properties Panel/Button Field.prefab b/Assets/Prefabs/UI/Properties Panel/Simple/Button Field.prefab similarity index 100% rename from Assets/Prefabs/UI/Properties Panel/Button Field.prefab rename to Assets/Prefabs/UI/Properties Panel/Simple/Button Field.prefab diff --git a/Assets/Prefabs/UI/Properties Panel/Simple/Button Field.prefab.meta b/Assets/Prefabs/UI/Properties Panel/Simple/Button Field.prefab.meta new file mode 100644 index 000000000..ef6fe10cd --- /dev/null +++ b/Assets/Prefabs/UI/Properties Panel/Simple/Button Field.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 4a29e77b0352c904692be7c5c0ec8e3e +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Prefabs/UI/Properties Panel/Enum Field.prefab b/Assets/Prefabs/UI/Properties Panel/Simple/Enum Field.prefab similarity index 100% rename from Assets/Prefabs/UI/Properties Panel/Enum Field.prefab rename to Assets/Prefabs/UI/Properties Panel/Simple/Enum Field.prefab diff --git a/Assets/Prefabs/UI/Properties Panel/Simple/Enum Field.prefab.meta b/Assets/Prefabs/UI/Properties Panel/Simple/Enum Field.prefab.meta new file mode 100644 index 000000000..c85c44cd4 --- /dev/null +++ b/Assets/Prefabs/UI/Properties Panel/Simple/Enum Field.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 18a40fefa34a15047969dd7b5c21a4a3 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Prefabs/UI/Properties Panel/Increment Field.prefab b/Assets/Prefabs/UI/Properties Panel/Simple/Increment Field.prefab similarity index 100% rename from Assets/Prefabs/UI/Properties Panel/Increment Field.prefab rename to Assets/Prefabs/UI/Properties Panel/Simple/Increment Field.prefab diff --git a/Assets/Prefabs/UI/Properties Panel/Simple/Increment Field.prefab.meta b/Assets/Prefabs/UI/Properties Panel/Simple/Increment Field.prefab.meta new file mode 100644 index 000000000..f39cf8bb4 --- /dev/null +++ b/Assets/Prefabs/UI/Properties Panel/Simple/Increment Field.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 42f7ef5cb30ed394981b0e42042be6e0 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Prefabs/UI/Properties Panel/Input Field.prefab b/Assets/Prefabs/UI/Properties Panel/Simple/Input Field.prefab similarity index 100% rename from Assets/Prefabs/UI/Properties Panel/Input Field.prefab rename to Assets/Prefabs/UI/Properties Panel/Simple/Input Field.prefab diff --git a/Assets/Prefabs/UI/Properties Panel/Simple/Input Field.prefab.meta b/Assets/Prefabs/UI/Properties Panel/Simple/Input Field.prefab.meta new file mode 100644 index 000000000..2f7116339 --- /dev/null +++ b/Assets/Prefabs/UI/Properties Panel/Simple/Input Field.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: eaaef0ca79a2cfd4b87e01cf0190935c +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Prefabs/UI/Properties Panel/Progress Field.prefab b/Assets/Prefabs/UI/Properties Panel/Simple/Progress Field.prefab similarity index 100% rename from Assets/Prefabs/UI/Properties Panel/Progress Field.prefab rename to Assets/Prefabs/UI/Properties Panel/Simple/Progress Field.prefab diff --git a/Assets/Prefabs/UI/Properties Panel/Simple/Progress Field.prefab.meta b/Assets/Prefabs/UI/Properties Panel/Simple/Progress Field.prefab.meta new file mode 100644 index 000000000..1ea0fe500 --- /dev/null +++ b/Assets/Prefabs/UI/Properties Panel/Simple/Progress Field.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: b9772379a05f3024e89123a1bbf3cfc8 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Prefabs/UI/Properties Panel/Property Label.prefab b/Assets/Prefabs/UI/Properties Panel/Simple/Property Label.prefab similarity index 100% rename from Assets/Prefabs/UI/Properties Panel/Property Label.prefab rename to Assets/Prefabs/UI/Properties Panel/Simple/Property Label.prefab diff --git a/Assets/Prefabs/UI/Properties Panel/Simple/Property Label.prefab.meta b/Assets/Prefabs/UI/Properties Panel/Simple/Property Label.prefab.meta new file mode 100644 index 000000000..c9a20ad31 --- /dev/null +++ b/Assets/Prefabs/UI/Properties Panel/Simple/Property Label.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 8b553d18a3837c846bb0de617793bc9a +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Prefabs/UI/Properties Panel/Property.prefab b/Assets/Prefabs/UI/Properties Panel/Simple/Property.prefab similarity index 100% rename from Assets/Prefabs/UI/Properties Panel/Property.prefab rename to Assets/Prefabs/UI/Properties Panel/Simple/Property.prefab diff --git a/Assets/Prefabs/UI/Properties Panel/Simple/Property.prefab.meta b/Assets/Prefabs/UI/Properties Panel/Simple/Property.prefab.meta new file mode 100644 index 000000000..6167a5f3b --- /dev/null +++ b/Assets/Prefabs/UI/Properties Panel/Simple/Property.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: d3d31bd2f1361eb43be226334b53ff60 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Prefabs/UI/Properties Panel/Ranged Float Field.prefab b/Assets/Prefabs/UI/Properties Panel/Simple/Ranged Float Field.prefab similarity index 100% rename from Assets/Prefabs/UI/Properties Panel/Ranged Float Field.prefab rename to Assets/Prefabs/UI/Properties Panel/Simple/Ranged Float Field.prefab diff --git a/Assets/Prefabs/UI/Properties Panel/Simple/Ranged Float Field.prefab.meta b/Assets/Prefabs/UI/Properties Panel/Simple/Ranged Float Field.prefab.meta new file mode 100644 index 000000000..bd7c07d7d --- /dev/null +++ b/Assets/Prefabs/UI/Properties Panel/Simple/Ranged Float Field.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 3be24fd431000b440851c0c97d67dbe8 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Sprites/Flat UI/32px/Flat-Circle-Outline-Half.png b/Assets/Resources/Sprites/Flat UI/32px/Flat-Circle-Outline-Half.png new file mode 100644 index 000000000..2c35ab9ab --- /dev/null +++ b/Assets/Resources/Sprites/Flat UI/32px/Flat-Circle-Outline-Half.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6b42f98566c514265635bbafe9ec5e08631d35d9683bba41ae5b7964ceee62e2 +size 3081 diff --git a/Assets/Resources/Sprites/Flat UI/32px/Flat-Circle-Outline-Half.png.meta b/Assets/Resources/Sprites/Flat UI/32px/Flat-Circle-Outline-Half.png.meta new file mode 100644 index 000000000..45760900b --- /dev/null +++ b/Assets/Resources/Sprites/Flat UI/32px/Flat-Circle-Outline-Half.png.meta @@ -0,0 +1,108 @@ +fileFormatVersion: 2 +guid: 2b075a0313e1f6b4fab976adf5215a1b +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: -1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 16, y: 16, z: 16, w: 16} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Sprites/Flat UI/32px/Flat-Rectangle-Outline-Half.png b/Assets/Resources/Sprites/Flat UI/32px/Flat-Rectangle-Outline-Half.png new file mode 100644 index 000000000..e0eb8a6eb --- /dev/null +++ b/Assets/Resources/Sprites/Flat UI/32px/Flat-Rectangle-Outline-Half.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:19cb2ab6ae48dec66f4e748b3988a64651d0fe84880b8589a0f974bf91aa854d +size 2953 diff --git a/Assets/Resources/Sprites/Flat UI/32px/Flat-Rectangle-Outline-Half.png.meta b/Assets/Resources/Sprites/Flat UI/32px/Flat-Rectangle-Outline-Half.png.meta new file mode 100644 index 000000000..e4d74af7e --- /dev/null +++ b/Assets/Resources/Sprites/Flat UI/32px/Flat-Rectangle-Outline-Half.png.meta @@ -0,0 +1,108 @@ +fileFormatVersion: 2 +guid: 51c246761190b2349b69b5f87681c62a +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: -1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 10, y: 10, z: 10, w: 10} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Sprites/area7 1.png b/Assets/Resources/Sprites/area7 1.png new file mode 100644 index 000000000..5ed22f087 --- /dev/null +++ b/Assets/Resources/Sprites/area7 1.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4c3d6119197bb42aa909628058a98f2749fdb4b555d0297b94f5f02f274c5296 +size 15516 diff --git a/Assets/Resources/Sprites/area7 1.png.meta b/Assets/Resources/Sprites/area7 1.png.meta new file mode 100644 index 000000000..f8fdd60ab --- /dev/null +++ b/Assets/Resources/Sprites/area7 1.png.meta @@ -0,0 +1,120 @@ +fileFormatVersion: 2 +guid: 7c96f826a29855143bed2f0c15b198e6 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 1 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: WebGL + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: dc4d94502b2d0a74196bece81fb777f3 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Sprites/dot.png.meta b/Assets/Resources/Sprites/dot.png.meta index 6b3b4628b..182771cd1 100644 --- a/Assets/Resources/Sprites/dot.png.meta +++ b/Assets/Resources/Sprites/dot.png.meta @@ -47,7 +47,7 @@ TextureImporter: alignment: 0 spritePivot: {x: 0.5, y: 0.5} spritePixelsToUnits: 100 - spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteBorder: {x: 4, y: 4, z: 4, w: 4} spriteGenerateFallbackPhysicsShape: 1 alphaUsage: 1 alphaIsTransparency: 1 diff --git a/Assets/Resources/Sprites/dotsmall.png b/Assets/Resources/Sprites/dotsmall.png new file mode 100644 index 000000000..3f5b0b7ce --- /dev/null +++ b/Assets/Resources/Sprites/dotsmall.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3adef8f19197d5c52e9ad89a12965f21d6179bb479640fcdf54ea4cd1451b3b1 +size 1922 diff --git a/Assets/Resources/Sprites/dotsmall.png.meta b/Assets/Resources/Sprites/dotsmall.png.meta new file mode 100644 index 000000000..2cce2ca57 --- /dev/null +++ b/Assets/Resources/Sprites/dotsmall.png.meta @@ -0,0 +1,108 @@ +fileFormatVersion: 2 +guid: 7618adbb5d8e2bb4cadd563ff02962ad +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: -1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scenes/ARPG.unity b/Assets/Scenes/ARPG.unity index b8557f8a0..14e1c109c 100644 --- a/Assets/Scenes/ARPG.unity +++ b/Assets/Scenes/ARPG.unity @@ -3991,11 +3991,11 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 259676746} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0.0125, z: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] - m_Father: {fileID: 1511875452} - m_RootOrder: 3 + m_Father: {fileID: 393631323} + m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!64 &259676748 MeshCollider: @@ -4965,6 +4965,38 @@ MonoBehaviour: m_Calls: [] m_LegacyBlendHint: 0 m_ComponentOwner: {fileID: 359038939} +--- !u!1 &393631322 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 393631323} + m_Layer: 19 + m_Name: Icon Container + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &393631323 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 393631322} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0.012499095, z: 1} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 259676747} + - {fileID: 708399894} + m_Father: {fileID: 1511875452} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &394213709 GameObject: m_ObjectHideFlags: 0 @@ -8242,7 +8274,7 @@ Transform: m_LocalScale: {x: 15, y: 15, z: 1} m_Children: [] m_Father: {fileID: 1511875452} - m_RootOrder: 2 + m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!64 &542243547 MeshCollider: @@ -9541,6 +9573,7 @@ MonoBehaviour: type: 3} IncrementField: {fileID: 5486709585343280439, guid: 9c14c92a1a08b0a4fb4f6aa6f8504082, type: 3} + StatSheet: {fileID: 0} Content: {fileID: 620555923} SelectedChild: {fileID: 0} CancelClickCatcher: {fileID: 1420548305} @@ -10996,11 +11029,11 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 708399893} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 2} - m_LocalScale: {x: 0.87800574, y: 0.87800574, z: 1.7560115} + m_LocalPosition: {x: 0, y: -0.012499095, z: 1} + m_LocalScale: {x: 0.8889809, y: 0.92190605, z: 1.7560115} m_Children: [] - m_Father: {fileID: 1511875452} - m_RootOrder: 0 + m_Father: {fileID: 393631323} + m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!64 &708399895 MeshCollider: @@ -21527,10 +21560,9 @@ Transform: m_LocalPosition: {x: 0.25, y: 0.25, z: 0} m_LocalScale: {x: 0.015, y: 0.015, z: 1} m_Children: - - {fileID: 708399894} - {fileID: 1857285685} - {fileID: 542243546} - - {fileID: 259676747} + - {fileID: 393631323} - {fileID: 2092739550} m_Father: {fileID: 812977435} m_RootOrder: 0 @@ -21551,6 +21583,7 @@ MonoBehaviour: Secondary: {fileID: 1857285687} Influence: {fileID: 542243548} Label: {fileID: 2092739552} + IconContainer: {fileID: 393631323} --- !u!114 &1511875454 MonoBehaviour: m_ObjectHideFlags: 0 @@ -26316,7 +26349,7 @@ Transform: m_LocalScale: {x: 3, y: 3, z: 3} m_Children: [] m_Father: {fileID: 1511875452} - m_RootOrder: 1 + m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!64 &1857285686 MeshCollider: @@ -28416,7 +28449,7 @@ RectTransform: m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 1511875452} - m_RootOrder: 4 + m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} @@ -29541,6 +29574,8 @@ MonoBehaviour: m_PreInfinity: 2 m_PostInfinity: 2 m_RotationOrder: 4 + PlayerLocationLabelColor: {r: 1, g: 0.44583336, b: 0.050000012, a: 1} + PlayerLocationIconSize: 1.25 --- !u!4 &2132980329 Transform: m_ObjectHideFlags: 0 @@ -33749,6 +33784,7 @@ MonoBehaviour: type: 3} IncrementField: {fileID: 5486709585343280439, guid: 9c14c92a1a08b0a4fb4f6aa6f8504082, type: 3} + StatSheet: {fileID: 0} Content: {fileID: 3255828831356619720} SelectedChild: {fileID: 0} --- !u!114 &5496444666756201237 diff --git a/Assets/Scenes/Main Menu.unity b/Assets/Scenes/Main Menu.unity index dca2367d0..a4cae2244 100644 --- a/Assets/Scenes/Main Menu.unity +++ b/Assets/Scenes/Main Menu.unity @@ -802,8 +802,8 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 741153267} - m_LocalRotation: {x: 0.015506901, y: 0.9502416, z: -0.30741307, w: 0.047933236} - m_LocalPosition: {x: -117.51998, y: -77.08744, z: 149.09026} + m_LocalRotation: {x: 0.0155069195, y: 0.9502416, z: -0.30741316, w: 0.047933277} + m_LocalPosition: {x: -117.52002, y: -77.087425, z: 149.09026} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: - {fileID: 412917866} @@ -1234,8 +1234,8 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 965376321} - m_LocalRotation: {x: 0.015506901, y: 0.9502416, z: -0.30741307, w: 0.047933236} - m_LocalPosition: {x: -117.51998, y: -77.08744, z: 149.09026} + m_LocalRotation: {x: 0.0155069195, y: 0.9502416, z: -0.30741316, w: 0.047933277} + m_LocalPosition: {x: -117.52002, y: -77.087425, z: 149.09026} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 0} @@ -2173,11 +2173,6 @@ PrefabInstance: propertyPath: m_SizeDelta.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 350889891057474423, guid: 3d8d9cbf10b12214e98891c1f03c1e99, - type: 3} - propertyPath: m_AnchoredPosition.y - value: 0 - objectReference: {fileID: 0} - target: {fileID: 350889891632477145, guid: 3d8d9cbf10b12214e98891c1f03c1e99, type: 3} propertyPath: m_AnchorMax.y @@ -2311,12 +2306,12 @@ PrefabInstance: - target: {fileID: 3664209305474245377, guid: 3d8d9cbf10b12214e98891c1f03c1e99, type: 3} propertyPath: m_AnchorMax.y - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 3664209305474245377, guid: 3d8d9cbf10b12214e98891c1f03c1e99, type: 3} propertyPath: m_AnchorMin.y - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 3664209305474245377, guid: 3d8d9cbf10b12214e98891c1f03c1e99, type: 3} @@ -2326,22 +2321,22 @@ PrefabInstance: - target: {fileID: 3664209305474245377, guid: 3d8d9cbf10b12214e98891c1f03c1e99, type: 3} propertyPath: m_AnchoredPosition.x - value: 60.98 + value: 0 objectReference: {fileID: 0} - target: {fileID: 3664209305474245377, guid: 3d8d9cbf10b12214e98891c1f03c1e99, type: 3} propertyPath: m_AnchoredPosition.y - value: -16 + value: 0 objectReference: {fileID: 0} - target: {fileID: 3664209306888449100, guid: 3d8d9cbf10b12214e98891c1f03c1e99, type: 3} propertyPath: m_AnchorMax.y - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 3664209306888449100, guid: 3d8d9cbf10b12214e98891c1f03c1e99, type: 3} propertyPath: m_AnchorMin.y - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 3664209306888449100, guid: 3d8d9cbf10b12214e98891c1f03c1e99, type: 3} @@ -2351,12 +2346,12 @@ PrefabInstance: - target: {fileID: 3664209306888449100, guid: 3d8d9cbf10b12214e98891c1f03c1e99, type: 3} propertyPath: m_AnchoredPosition.x - value: 55.675 + value: 0 objectReference: {fileID: 0} - target: {fileID: 3664209306888449100, guid: 3d8d9cbf10b12214e98891c1f03c1e99, type: 3} propertyPath: m_AnchoredPosition.y - value: -16 + value: 0 objectReference: {fileID: 0} - target: {fileID: 4533226043449861658, guid: 3d8d9cbf10b12214e98891c1f03c1e99, type: 3} @@ -2553,15 +2548,20 @@ PrefabInstance: propertyPath: m_AnchoredPosition.y value: 0 objectReference: {fileID: 0} + - target: {fileID: 5464823169674358614, guid: 3d8d9cbf10b12214e98891c1f03c1e99, + type: 3} + propertyPath: Canvas + value: + objectReference: {fileID: 4533226044378988780} - target: {fileID: 7329274283166941234, guid: 3d8d9cbf10b12214e98891c1f03c1e99, type: 3} propertyPath: m_AnchorMax.y - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 7329274283166941234, guid: 3d8d9cbf10b12214e98891c1f03c1e99, type: 3} propertyPath: m_AnchorMin.y - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 7329274283166941234, guid: 3d8d9cbf10b12214e98891c1f03c1e99, type: 3} @@ -2571,7 +2571,13 @@ PrefabInstance: - target: {fileID: 7329274283166941234, guid: 3d8d9cbf10b12214e98891c1f03c1e99, type: 3} propertyPath: m_SizeDelta.y - value: 144.0148 + value: 0 objectReference: {fileID: 0} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 3d8d9cbf10b12214e98891c1f03c1e99, type: 3} +--- !u!223 &4533226044378988780 stripped +Canvas: + m_CorrespondingSourceObject: {fileID: 4533226043457584188, guid: 3d8d9cbf10b12214e98891c1f03c1e99, + type: 3} + m_PrefabInstance: {fileID: 4533226044378988779} + m_PrefabAsset: {fileID: 0} diff --git a/Assets/Scripts/Gameplay/ActionGameManager.cs b/Assets/Scripts/Gameplay/ActionGameManager.cs index 8602ab7ea..5ad585922 100644 --- a/Assets/Scripts/Gameplay/ActionGameManager.cs +++ b/Assets/Scripts/Gameplay/ActionGameManager.cs @@ -210,7 +210,7 @@ public class ActionGameManager : MonoBehaviour Input.Global.MapToggle.performed += context => { - if (EventSystem.current.currentSelectedGameObject != null) return; + if (EventSystem.current.currentSelectedGameObject?.GetComponent() != null) return; if (MainMenu.gameObject.activeSelf) return; if (Menu.gameObject.activeSelf && Menu.CurrentTab == MenuTab.Map) { @@ -237,7 +237,7 @@ public class ActionGameManager : MonoBehaviour Input.Global.Inventory.performed += context => { - if (EventSystem.current.currentSelectedGameObject != null) return; + if (EventSystem.current.currentSelectedGameObject?.GetComponent() != null) return; if (MainMenu.gameObject.activeSelf) return; if (Menu.gameObject.activeSelf && Menu.CurrentTab == MenuTab.Inventory) { @@ -262,7 +262,7 @@ public class ActionGameManager : MonoBehaviour Input.Global.Dock.performed += context => { - if (EventSystem.current.currentSelectedGameObject != null) return; + if (EventSystem.current.currentSelectedGameObject?.GetComponent() != null) return; if (MainMenu.gameObject.activeSelf) return; if (CurrentEntity == null) { @@ -278,7 +278,7 @@ public class ActionGameManager : MonoBehaviour Input.Global.MainMenu.performed += context => { - if (EventSystem.current.currentSelectedGameObject != null) return; + if (EventSystem.current.currentSelectedGameObject?.GetComponent() != null) return; if (CurrentEntity == null) return; if (MainMenu.gameObject.activeSelf) { @@ -670,7 +670,11 @@ public class ActionGameManager : MonoBehaviour SectorMap.QueueZoneReveal(CurrentSector.Entrance.AdjacentZones.Prepend(CurrentSector.Entrance)); PopulateLevel(CurrentSector.Entrance); var loadoutGenerator = new LoadoutGenerator(ref ItemManager.Random, ItemManager, CurrentSector, Zone.SectorZone, null, 2); - var ship = EntitySerializer.Unpack(ItemManager, Zone, loadoutGenerator.GenerateShipLoadout(), true); + var ship = EntitySerializer.Unpack( + ItemManager, + Zone, + loadoutGenerator.GenerateShipLoadout(data => string.IsNullOrEmpty(Settings.StartingHullName) || data.Name==Settings.StartingHullName ), + true); // EntitySerializer.Unpack(ItemManager, Zone, Loadouts.First(x => x.Name == StarterShipTemplate), true); ((Ship) ship).IsPlayerShip = true; ship.Position = float3.zero; diff --git a/Assets/Scripts/Gameplay/GameSettings.cs b/Assets/Scripts/Gameplay/GameSettings.cs index a19a9292c..8e986d71e 100644 --- a/Assets/Scripts/Gameplay/GameSettings.cs +++ b/Assets/Scripts/Gameplay/GameSettings.cs @@ -10,6 +10,7 @@ using UnityEngine; [CreateAssetMenu(fileName = "Sector Display Properties", menuName = "Aetheria/Sector Display Properties")] public class GameSettings : ScriptableObject { + public string StartingHullName = "Longinus"; public float HeatstrokePhasingFloor = 0; public float HeatstrokePhasingFrequency = 5; public float WormholeDistanceRatio; diff --git a/Assets/Scripts/ServerShared/Behaviors/ConstantWeapon.cs b/Assets/Scripts/ServerShared/Behaviors/ConstantWeapon.cs index 2300c5d32..af35f25e5 100644 --- a/Assets/Scripts/ServerShared/Behaviors/ConstantWeapon.cs +++ b/Assets/Scripts/ServerShared/Behaviors/ConstantWeapon.cs @@ -115,7 +115,9 @@ public class ConstantWeapon : Weapon, IProgressBehavior, IEventBehavior } } - Item.EquippableItem.Durability -= Item.Wear * delta; + var dmg = Item.Wear * delta; + Item.EquippableItem.Durability -= dmg; + Item.Entity.ItemDamage.OnNext((Item, dmg)); Item.AddHeat(Item.Evaluate(_data.Heat) * delta); Item.Entity.VisibilitySources[this] = Item.Evaluate(_data.Visibility); } diff --git a/Assets/Scripts/ServerShared/Behaviors/InstantWeapon.cs b/Assets/Scripts/ServerShared/Behaviors/InstantWeapon.cs index 203ca440e..b2624ef72 100644 --- a/Assets/Scripts/ServerShared/Behaviors/InstantWeapon.cs +++ b/Assets/Scripts/ServerShared/Behaviors/InstantWeapon.cs @@ -170,6 +170,7 @@ public class InstantWeapon : Weapon, IProgressBehavior, IEventBehavior _burstTimer -= _burstInterval; OnFire?.Invoke(); Item.EquippableItem.Durability -= Item.Wear; + Item.Entity.ItemDamage.OnNext((Item, Item.Wear)); Item.AddHeat(Heat); Item.Entity.VisibilitySources[this] = Visibility; } diff --git a/Assets/Scripts/ServerShared/Behaviors/Weapon.cs b/Assets/Scripts/ServerShared/Behaviors/Weapon.cs index 48f194e31..a5b923011 100644 --- a/Assets/Scripts/ServerShared/Behaviors/Weapon.cs +++ b/Assets/Scripts/ServerShared/Behaviors/Weapon.cs @@ -30,13 +30,13 @@ public abstract class WeaponData : BehaviorData [InspectableRangedFloat(0,1), JsonProperty("damageSpread"), Key(4)] public PerformanceStat DamageSpread = new PerformanceStat(); - [Inspectable, JsonProperty("minRange"), Key(5), RuntimeInspectable] + [Inspectable, JsonProperty("minRange"), Key(5)] public PerformanceStat MinRange = new PerformanceStat(); - [Inspectable, JsonProperty("range"), Key(6), RuntimeInspectable] + [Inspectable, JsonProperty("range"), Key(6)] public PerformanceStat Range = new PerformanceStat(); - [InspectableAnimationCurve, JsonProperty("damageCurve"), Key(7), RuntimeInspectable] + [InspectableAnimationCurve, JsonProperty("damageCurve"), Key(7)] public BezierCurve DamageCurve; [InspectablePrefab, JsonProperty("effect"), Key(8)] diff --git a/Assets/Scripts/ServerShared/Behaviors/Wear.cs b/Assets/Scripts/ServerShared/Behaviors/Wear.cs index 91aa6749b..224fc1f20 100644 --- a/Assets/Scripts/ServerShared/Behaviors/Wear.cs +++ b/Assets/Scripts/ServerShared/Behaviors/Wear.cs @@ -37,8 +37,16 @@ public class Wear : IBehavior public bool Execute(float delta) { if (_data.PerSecond) - Item.EquippableItem.Durability -= Item.Wear * delta; - else Item.EquippableItem.Durability -= Item.Wear; + { + var dmg = Item.Wear * delta; + Item.EquippableItem.Durability -= dmg; + Item.Entity.ItemDamage.OnNext((Item, dmg)); + } + else + { + Item.EquippableItem.Durability -= Item.Wear; + Item.Entity.ItemDamage.OnNext((Item, Item.Wear)); + } return true; } } \ No newline at end of file diff --git a/Assets/Scripts/ServerShared/BezierCurve.cs b/Assets/Scripts/ServerShared/BezierCurve.cs index ee91a9a44..78ac3ef22 100644 --- a/Assets/Scripts/ServerShared/BezierCurve.cs +++ b/Assets/Scripts/ServerShared/BezierCurve.cs @@ -1,4 +1,5 @@ using System; +using System.Linq; using MessagePack; using Newtonsoft.Json; using Unity.Mathematics; @@ -11,6 +12,33 @@ public class BezierCurve [IgnoreMember] private int2 _cachedIndices; + [IgnoreMember] private const int STEPS = 64; + + [IgnoreMember] private float? _maximum; + + [IgnoreMember] + public float Maximum + { + get + { + if (_maximum != null) return _maximum ?? 0; + var samples = Enumerable.Range(0, STEPS).Select(i => (float) i / STEPS).ToArray(); + float max = 0; + _maximum = 0; + foreach (var f in samples) + { + var p = Evaluate(f); + if (p > max) + { + max = p; + _maximum = f; + } + } + + return _maximum??0; + } + } + // Integrate area under curve between start and end time public float IntegrateCurve(float startTime, float endTime, int steps) { diff --git a/Assets/Scripts/ServerShared/Entity.cs b/Assets/Scripts/ServerShared/Entity.cs index 45f26a83c..0eb7355f0 100644 --- a/Assets/Scripts/ServerShared/Entity.cs +++ b/Assets/Scripts/ServerShared/Entity.cs @@ -770,8 +770,9 @@ public abstract class Entity } UpdateTemperature(delta); - - + + foreach (var item in _orderedEquipment) item.UpdatePerformance(); + if (_active) { if(Cockpit != null) @@ -1042,11 +1043,8 @@ public class EquippedItem Entity.AddHeat(hullCoord, heat / InsetShape.Coordinates.Length, ignoreThermalMass); } - public void Update(float delta) + public void UpdatePerformance() { - foreach (var behavior in Behaviors) - if(behavior is IAlwaysUpdatedBehavior alwaysUpdatedBehavior) alwaysUpdatedBehavior.Update(delta); - var temp = Temperature; ThermalPerformance = Data.Performance(temp); DurabilityPerformance = EquippableItem.Durability / Data.Durability; @@ -1057,6 +1055,12 @@ public class EquippedItem ) * Data.Durability / Data.ThermalResilience; ThermalOnline.Value = ThermalPerformance > performanceThreshold || Entity.OverrideShutdown && EquippableItem.OverrideShutdown; DurabilityOnline.Value = EquippableItem.Durability > .01f; + } + + public void Update(float delta) + { + foreach (var behavior in Behaviors) + if(behavior is IAlwaysUpdatedBehavior alwaysUpdatedBehavior) alwaysUpdatedBehavior.Update(delta); if (Active.Value) { diff --git a/Assets/Scripts/ServerShared/Enums.cs b/Assets/Scripts/ServerShared/Enums.cs index f5acbc6bb..aeb4bde24 100644 --- a/Assets/Scripts/ServerShared/Enums.cs +++ b/Assets/Scripts/ServerShared/Enums.cs @@ -162,4 +162,11 @@ public enum CompoundCommodityCategory Tools = 3, Manufacturing = 4, Assemblies = 5 +} + +public enum TemperatureUnit +{ + Kelvin, + Celsius, + Fahrenheit } \ No newline at end of file diff --git a/Assets/Scripts/ServerShared/Extensions.cs b/Assets/Scripts/ServerShared/Extensions.cs index fc4b1832c..84f3bd82e 100644 --- a/Assets/Scripts/ServerShared/Extensions.cs +++ b/Assets/Scripts/ServerShared/Extensions.cs @@ -1,6 +1,7 @@ using System; using System.Collections; using System.Collections.Generic; +using System.Globalization; using System.Linq; using System.Numerics; using System.Reflection; @@ -116,17 +117,6 @@ public static class Extensions throw new ArgumentOutOfRangeException(nameof(rotation), rotation, null); } } - - public static string SignificantDigits(this float d, int digits=10) - { - int magnitude = d == 0.0f ? 0 : (int)Math.Floor(Math.Log10(Math.Abs(d))) + 1; - digits -= magnitude; - if (digits < 0) - digits = 0; - string fmt = "f" + digits; - string strdec = d.ToString(fmt); - return strdec.Contains(".") ? strdec.TrimEnd('0').TrimEnd('.') : strdec; - } private static Random? _random; //private static Random Random => (Random) (_random ??= new Random((uint) (DateTime.Now.Ticks%uint.MaxValue))); diff --git a/Assets/Scripts/ServerShared/LoadoutGenerator.cs b/Assets/Scripts/ServerShared/LoadoutGenerator.cs index 6fc1d635e..2ac662de3 100644 --- a/Assets/Scripts/ServerShared/LoadoutGenerator.cs +++ b/Assets/Scripts/ServerShared/LoadoutGenerator.cs @@ -30,9 +30,9 @@ public class LoadoutGenerator PriceExponent = priceExponent; } - public EntityPack GenerateShipLoadout() + public EntityPack GenerateShipLoadout(Predicate hullFilter = null) { - var hull = ItemManager.CreateInstance(RandomHull(HullType.Ship)) as EquippableItem; + var hull = ItemManager.CreateInstance(RandomHull(HullType.Ship, hullFilter)) as EquippableItem; var entity = new Ship(ItemManager, null, hull, ItemManager.GameplaySettings.DefaultEntitySettings); entity.Faction = Faction; OutfitEntity(entity); @@ -82,10 +82,13 @@ public class LoadoutGenerator return EntitySerializer.Pack(entity); } - public HullData RandomHull(HullType type) + public HullData RandomHull(HullType type, Predicate hullFilter = null) { return ItemManager.ItemData.GetAll() - .Where(item => item.HullType == type && (Faction == null || item.Manufacturer == Faction.ID || Faction.Allegiance.ContainsKey(item.Manufacturer))) + .Where(item => + (hullFilter?.Invoke(item) ?? true) && + item.HullType == type && + (Faction == null || item.Manufacturer == Faction.ID || Faction.Allegiance.ContainsKey(item.Manufacturer))) .WeightedRandomElements(ref Random, item => (Faction == null || item.Manufacturer == Faction.ID ? 1 : Faction.Allegiance[item.Manufacturer]) / // Prioritize items from allied manufacturers @@ -119,7 +122,8 @@ public class LoadoutGenerator { return RandomItem(sizeExponent, item => item.HardpointType == hardpoint.Type && (filter?.Invoke(item) ?? true) && - item.Shape.FitsWithin(hardpoint.Shape, hardpoint.Rotation, out _)); + item.Shape.FitsWithin(hardpoint.Shape, hardpoint.Rotation, out _) && + item.Shape.Coordinates.Length==hardpoint.Shape.Coordinates.Length); } private void OutfitEntity(Entity entity) diff --git a/Assets/Scripts/ServerShared/PlayerSettings.cs b/Assets/Scripts/ServerShared/PlayerSettings.cs index 56118287c..67d7e0e3d 100644 --- a/Assets/Scripts/ServerShared/PlayerSettings.cs +++ b/Assets/Scripts/ServerShared/PlayerSettings.cs @@ -1,4 +1,5 @@ using System; +using System.Globalization; using MessagePack; [MessagePackObject, Serializable] @@ -6,4 +7,40 @@ public class PlayerSettings { [Key(0)] public string Name = "Anonymous"; [Key(1)] public SavedGame CurrentRun; + [Key(2)] public TemperatureUnit TemperatureUnit = TemperatureUnit.Celsius; + [Key(3)] public int SignificantDigits = 3; + + public string FormatTemperature(float t) + { + return TemperatureUnit switch + { + TemperatureUnit.Kelvin => $"{Format(t)}°K", + TemperatureUnit.Celsius => $"{Format(t - 273.15f)}°C", + TemperatureUnit.Fahrenheit => $"{Format((t - 273.15f) * (9f / 5) + 32)}°F", + _ => throw new ArgumentOutOfRangeException() + }; + } + + public float ParseTemperature(string s) + { + var t = float.Parse(s); + return TemperatureUnit switch + { + TemperatureUnit.Kelvin => t, + TemperatureUnit.Celsius => t + 273.15f, + TemperatureUnit.Fahrenheit => (t - 32) * (5f / 9) + 273.15f, + _ => throw new ArgumentOutOfRangeException() + }; + } + + public string Format(float d) + { + var magnitude = d == 0.0f ? 0 : (int)Math.Floor(Math.Log10(Math.Abs(d))) + 1; + SignificantDigits -= magnitude; + if (SignificantDigits < 0) + SignificantDigits = 0; + var strdec = d.ToString($"N{SignificantDigits}"); + var dec = Convert.ToChar(CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator); + return strdec.Contains(CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator) ? strdec.TrimEnd('0').TrimEnd(dec) : strdec; + } } \ No newline at end of file diff --git a/Assets/Scripts/ServerShared/Settings.cs b/Assets/Scripts/ServerShared/Settings.cs index 0b07f9252..8643cfe6c 100644 --- a/Assets/Scripts/ServerShared/Settings.cs +++ b/Assets/Scripts/ServerShared/Settings.cs @@ -153,7 +153,6 @@ public class GameplaySettings public int TriggerGroupCount = 6; public float WarpDistance = 25; public float DockingDistance = 25; - public int SignificantDigits = 3; public float ProductionPersonalityLerp = .05f; public float MessageDuration = 4f; public float TargetPersistenceDuration = 3; diff --git a/Assets/Scripts/UI/CurveField.cs b/Assets/Scripts/UI/CurveField.cs new file mode 100644 index 000000000..7f851034b --- /dev/null +++ b/Assets/Scripts/UI/CurveField.cs @@ -0,0 +1,75 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.Linq; +using Microsoft.Msagl.DebugHelpers; +using TMPro; +using UnityEngine; +using UnityEngine.UI; +using UnityEngine.UI.Extensions; +using static Unity.Mathematics.math; + +public class CurveField : MonoBehaviour +{ + public int Segments = 16; + public int SigDigs = 3; + public TextMeshProUGUI Title; + public TextMeshProUGUI MinLabel; + public TextMeshProUGUI MidLabel; + public TextMeshProUGUI MaxLabel; + public UILineRenderer Line; + public Image CurrentX; + public Image CurrentY; + + private BezierCurve _curve; + //private Func _xFunc; + + public void SetCurrent(float x) + { + CurrentX.gameObject.SetActive(true); + CurrentY.gameObject.SetActive(true); + var xrect = CurrentX.GetComponent(); + var yrect = CurrentY.GetComponent(); + var y = _curve.Evaluate(x); + xrect.anchorMin = new Vector2(x, 0); + xrect.anchorMax = new Vector2(x, y); + yrect.anchorMin = new Vector2(x, y); + yrect.anchorMax = new Vector2(x, y); + } + + public void Show(string label, BezierCurve curve, Func xFunc, bool showMax = false) + { + _curve = curve; + //_xFunc = xFunc; + CurrentX.gameObject.SetActive(false); + CurrentY.gameObject.SetActive(false); + Title.text = label; + var points = new List(); + var keys = curve.Keys.Select(v => new Vector2(v.x, v.y)); + if (curve.Keys[0].x > .01f) keys = keys.Prepend(new Vector2(0, curve.Keys[0].y)); + if (curve.Keys[curve.Keys.Length-1].x < .99f) keys = keys.Append(new Vector2(1, curve.Keys[curve.Keys.Length-1].y)); + var keysArray = keys.ToArray(); + for (int i = 0; i < keysArray.Length - 1; i++) + { + for (int j = 0; j < Segments; j++) + { + var x = lerp(keysArray[i].x, keysArray[i + 1].x, (float) j / Segments); + points.Add(new Vector2(x, curve.Evaluate(x))); + } + } + points.Add(new Vector2(1, curve.Evaluate(1))); + + Line.Points = points.ToArray(); + MinLabel.text = xFunc(0); + MaxLabel.text = xFunc(1); + if (showMax) + { + var midX = curve.Maximum; + MidLabel.text = xFunc(midX); + var rect = MidLabel.GetComponent(); + rect.anchorMin = new Vector2(midX, rect.anchorMin.y); + rect.anchorMax = new Vector2(midX, rect.anchorMax.y); + } + else MidLabel.text = xFunc(.5f); + } +} diff --git a/Assets/Scripts/UI/CurveField.cs.meta b/Assets/Scripts/UI/CurveField.cs.meta new file mode 100644 index 000000000..8d64d4efb --- /dev/null +++ b/Assets/Scripts/UI/CurveField.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 7ee1522de6af7de409ddcae9a0f6ccc9 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/UI/InventoryMenu.cs b/Assets/Scripts/UI/InventoryMenu.cs index d01e89e7a..466285840 100644 --- a/Assets/Scripts/UI/InventoryMenu.cs +++ b/Assets/Scripts/UI/InventoryMenu.cs @@ -76,7 +76,7 @@ public class InventoryMenu : MonoBehaviour void Start() { - PropertiesPanel.Context = GameManager.ItemManager; + PropertiesPanel.GameManager = GameManager; foreach (var panel in InventoryPanels) { panel.OnBeginDragAsObservable().Subscribe(data => diff --git a/Assets/Scripts/UI/InventoryPanel.cs b/Assets/Scripts/UI/InventoryPanel.cs index f4acaf0dc..a9a328a74 100644 --- a/Assets/Scripts/UI/InventoryPanel.cs +++ b/Assets/Scripts/UI/InventoryPanel.cs @@ -50,6 +50,7 @@ public class InventoryPanel : MonoBehaviour, IPointerClickHandler public Color CellBackgroundColor = new Color(0, 0, 0, .75f); public float MinTempRange = 1; public float DoubleClickTime = .5f; + public float HitDamageThreshold = 1; Subject _onBeginDrag; Subject _onDrag; @@ -206,8 +207,8 @@ public class InventoryPanel : MonoBehaviour, IPointerClickHandler var opacity = smoothstep(0, MinTempRange, tempRange); if(MinTempLabel) { - MinTempLabel.text = $"{((int) (_displayedEntity.MinTemp - 273.15f)).ToString()}°C"; - MaxTempLabel.text = $"{((int) (_displayedEntity.MaxTemp - 273.15f)).ToString()}°C"; + MinTempLabel.text = ActionGameManager.PlayerSettings.FormatTemperature(_displayedEntity.MinTemp); + MaxTempLabel.text = ActionGameManager.PlayerSettings.FormatTemperature(_displayedEntity.MaxTemp); } var hullData = GameManager.ItemManager.GetData(_displayedEntity.Hull) as HullData; for(var x = 0; x < _temperatureTexture.width; x++) @@ -403,11 +404,11 @@ public class InventoryPanel : MonoBehaviour, IPointerClickHandler RefreshCells(hitCells); })); - _subscriptions.Add(entity.ItemDamage.Subscribe(hit => + _subscriptions.Add(entity.ItemDamage.Where(hit=>hit.damage > HitDamageThreshold).Subscribe(hit => { - var data = entity.ItemManager.GetData(hit.item.EquippableItem); - var hitCells = data.Shape.Coordinates.Select(v => v + hit.item.Position).ToArray(); - StartCoroutine(Pulse(hitCells, HitType.Armor, _hitSequence++)); + var hitCells = hit.item.InsetShape.Coordinates; + if(gameObject.activeInHierarchy) + StartCoroutine(Pulse(hitCells, HitType.Armor, _hitSequence++)); RefreshCells(hitCells); })); } diff --git a/Assets/Scripts/UI/MainMenu.cs b/Assets/Scripts/UI/MainMenu.cs index 6e0a3f846..28a947a34 100644 --- a/Assets/Scripts/UI/MainMenu.cs +++ b/Assets/Scripts/UI/MainMenu.cs @@ -176,6 +176,13 @@ public class MainMenu : MonoBehaviour _nextMenu.panel.AddField("Name", () => ActionGameManager.PlayerSettings.Name, s => ActionGameManager.PlayerSettings.Name = s); + _nextMenu.panel.AddField("Temperature Unit", + () => (int) ActionGameManager.PlayerSettings.TemperatureUnit, + i => ActionGameManager.PlayerSettings.TemperatureUnit = (TemperatureUnit) i, + Enum.GetNames(typeof(TemperatureUnit))); + _nextMenu.panel.AddField("Significant Digits", + () => ActionGameManager.PlayerSettings.SignificantDigits, + i => ActionGameManager.PlayerSettings.SignificantDigits = i); _nextMenu.panel.AddButton("Back", () => { diff --git a/Assets/Scripts/UI/PropertiesPanel.cs b/Assets/Scripts/UI/PropertiesPanel.cs index b546b0959..9424f40a2 100644 --- a/Assets/Scripts/UI/PropertiesPanel.cs +++ b/Assets/Scripts/UI/PropertiesPanel.cs @@ -34,9 +34,11 @@ public class PropertiesPanel : MonoBehaviour public PropertyButton PropertyButton; public ButtonField ButtonField; public IncrementField IncrementField; + public StatSheet StatSheet; + public CurveField CurveField; public RectTransform Content; [HideInInspector] public FlatFlatButton SelectedChild; - [HideInInspector] public ItemManager Context; + [HideInInspector] public ActionGameManager GameManager; protected List Properties = new List(); protected List Buttons = new List(); @@ -133,10 +135,19 @@ public class PropertiesPanel : MonoBehaviour return property; } + public StatSheet AddStatSheet() + { + var sheet = Instantiate(StatSheet, Content ?? transform); + Properties.Add(sheet.gameObject); + OnPropertyAdded?.Invoke(sheet.gameObject); + RefreshPropertyValues += () => sheet.RefreshValues(); + return sheet; + } + public PropertiesList AddList(string name) //, IEnumerable<(string, Func)> elements) { var list = Instantiate(List, Content ?? transform); - list.Context = Context; + list.GameManager = GameManager; list.Dropdown = Dropdown; list.Title.text = name; // foreach (var element in elements) @@ -165,6 +176,13 @@ public class PropertiesPanel : MonoBehaviour return attributeInstance; } + public CurveField AddCurveField() + { + var curveInstance = Instantiate(CurveField, Content ?? transform); + Properties.Add(curveInstance.gameObject); + return curveInstance; + } + public virtual PropertyButton AddButton(string name, Action onClick) { var button = Instantiate(PropertyButton, Content ?? transform); @@ -344,42 +362,43 @@ public class PropertiesPanel : MonoBehaviour OnPropertyAdded?.Invoke(field.gameObject); } - public void Inspect(Entity entity) - { - Clear(); - Title.text = entity.Name; - var hullData = Context.GetData(entity.Hull) as HullData; - AddSection( - hullData.HullType == HullType.Ship ? "Ship" : - hullData.HullType == HullType.Station ? "Station" : - "Platform"); - //AddList(hullData.Name).Inspect(hull, entity); - //PropertiesPanel.AddProperty("Hull", () => $"{hullData.Name}"); - AddEntityProperties(entity); - //cargoList.SetExpanded(false,true); - - RefreshValues(); - } + // public void Inspect(Entity entity) + // { + // Clear(); + // Title.text = entity.Name; + // var hullData = Context.GetData(entity.Hull) as HullData; + // AddSection( + // hullData.HullType == HullType.Ship ? "Ship" : + // hullData.HullType == HullType.Station ? "Station" : + // "Platform"); + // //AddList(hullData.Name).Inspect(hull, entity); + // //PropertiesPanel.AddProperty("Hull", () => $"{hullData.Name}"); + // AddEntityProperties(entity); + // //cargoList.SetExpanded(false,true); + // + // RefreshValues(); + // } - private void AddEntityProperties(Entity entity) - { - AddField("Name", () => entity.Name, name => entity.Name = name); - AddProperty("Mass", () => $"{entity.Mass.SignificantDigits(Context.GameplaySettings.SignificantDigits)}"); - } + // private void AddEntityProperties(Entity entity) + // { + // AddField("Name", () => entity.Name, name => entity.Name = name); + // AddProperty("Mass", () => $"{entity.Mass.SignificantDigits(Context.GameplaySettings.SignificantDigits)}"); + // } private void AddItemProperties(ItemInstance item) { - var data = Context.ItemData.Get(item.Data); + var data = ActionGameManager.CultCache.Get(item.Data); AddProperty(data.Description); - var manufacturer = Context.ItemData.Get(data.Manufacturer); - AddProperty("Manufacturer", () => manufacturer?.Name ?? "GameCult"); - if (item is SimpleCommodity simpleCommodity) AddProperty("Quantity", () => simpleCommodity.Quantity.ToString()); - AddProperty("Mass", () => Context.GetMass(item).SignificantDigits(Context.GameplaySettings.SignificantDigits)); + var sheet = AddStatSheet(); + var manufacturer = ActionGameManager.CultCache.Get(data.Manufacturer); + sheet.AddStat("Manufacturer", () => manufacturer?.Name ?? "GameCult"); + sheet.AddStat("Mass", () => ActionGameManager.PlayerSettings.Format(GameManager.ItemManager.GetMass(item))); + //AddProperty("Thermal Mass", () => Context.GetThermalMass(item).SignificantDigits(Context.GameplaySettings.SignificantDigits)); } @@ -387,38 +406,49 @@ public class PropertiesPanel : MonoBehaviour { if (item.Durability < .01f) { - AddProperty("Item destroyed!"); return; } - var gearData = Context.GetData(item); - AddProperty("Durability", () => $"{(int)(item.Durability / gearData.Durability * 100)}%"); + var gearData = GameManager.ItemManager.GetData(item); + + var sheet = AddStatSheet(); foreach (var behavior in gearData.Behaviors) { - var type = behavior.GetType(); - if (type.GetCustomAttribute(typeof(RuntimeInspectable)) != null) + if (behavior is StatModifierData statMod) { + sheet.AddStat($"{statMod.Stat.Target.SplitCamelCase()}:{statMod.Stat.Stat.SplitCamelCase()}", () => $"{(statMod.Type == StatModifierType.Constant ? "+" : "x")}{ActionGameManager.PlayerSettings.Format(statValueFunction(statMod.Modifier))}"); + } + else + { + var type = behavior.GetType(); + if (type.GetCustomAttribute(typeof(RuntimeInspectable)) == null) continue; foreach (var field in type.GetFields().Where(f => f.GetCustomAttribute() != null)) { var fieldType = field.FieldType; if (fieldType == typeof(float)) - AddProperty(field.Name, () => $"{((float) field.GetValue(behavior)).SignificantDigits(Context.GameplaySettings.SignificantDigits)}"); + sheet.AddStat(field.Name.SplitCamelCase(), () => $"{ActionGameManager.PlayerSettings.Format((float) field.GetValue(behavior))}"); else if (fieldType == typeof(int)) - AddProperty(field.Name, () => $"{(int) field.GetValue(behavior)}"); + sheet.AddStat(field.Name.SplitCamelCase(), () => $"{(int) field.GetValue(behavior)}"); else if (fieldType == typeof(PerformanceStat)) { var stat = (PerformanceStat) field.GetValue(behavior); - AddProperty(field.Name, () => $"{statValueFunction(stat).SignificantDigits(Context.GameplaySettings.SignificantDigits)}"); + sheet.AddStat(field.Name.SplitCamelCase(), () => $"{ActionGameManager.PlayerSettings.Format(statValueFunction(stat))}"); } } } } + + if (gearData.Behaviors.FirstOrDefault(b => b is WeaponData) is WeaponData weapon) + { + var range = AddCurveField(); + range.Show("Damage Range", weapon.DamageCurve, t => ActionGameManager.PlayerSettings.Format(lerp(statValueFunction(weapon.MinRange), statValueFunction(weapon.Range), t))); + } } private string GetTitle(EquippableItem item) { - var data = Context.ItemData.Get(item.Data); - var (tier, upgrades) = Context.GetTier(item); + var data = ActionGameManager.CultCache.Get(item.Data); + var (tier, upgrades) = GameManager.ItemManager.GetTier(item); return $"{data.Name} ({tier.Name}{new string('+', upgrades)})"; } @@ -433,11 +463,24 @@ public class PropertiesPanel : MonoBehaviour AddItemProperties(item.EquippableItem); AddSpacer(); + var gearData = GameManager.ItemManager.GetData(item.EquippableItem); + var statusSheet = AddStatSheet(); + if (item.EquippableItem.Durability < .01f) + statusSheet.AddStat("Durability", () => "Item Destroyed!"); + else statusSheet.AddStat("Durability", () => $"{(int)(item.EquippableItem.Durability / gearData.Durability * 100)}%"); + statusSheet.AddStat("Temperature", () => ActionGameManager.PlayerSettings.FormatTemperature(item.Temperature)); + + var heatCurve = AddCurveField(); + heatCurve.Show( + "Thermal Performance", + gearData.HeatPerformanceCurve, + t => ActionGameManager.PlayerSettings.FormatTemperature(lerp(gearData.MinimumTemperature, gearData.MaximumTemperature, t)), + true); + RefreshPropertyValues += () => heatCurve.SetCurrent(unlerp(gearData.MinimumTemperature, gearData.MaximumTemperature, item.Temperature)); AddEquippableItemProperties(item.EquippableItem, item.Evaluate); AddSpacer(); AddField("Override Shutdown", () => item.EquippableItem.OverrideShutdown, b => item.EquippableItem.OverrideShutdown = b); - AddProperty("Temperature", () => (item.Temperature - 273.15f).SignificantDigits(Context.GameplaySettings.SignificantDigits)); foreach (var behavior in item.Behaviors) { @@ -464,7 +507,16 @@ public class PropertiesPanel : MonoBehaviour { Title.text = GetTitle(gear); AddSpacer(); - AddEquippableItemProperties(gear, stat => Context.Evaluate(stat, gear)); + var gearData = GameManager.ItemManager.GetData(gear); + var statusSheet = AddStatSheet(); + statusSheet.AddStat("Durability", () => $"{(int)(gear.Durability / gearData.Durability * 100)}%"); + var heatCurve = AddCurveField(); + heatCurve.Show( + "Thermal Performance", + gearData.HeatPerformanceCurve, + t => ActionGameManager.PlayerSettings.FormatTemperature(lerp(gearData.MinimumTemperature, gearData.MaximumTemperature, t)), + true); + AddEquippableItemProperties(gear, stat => GameManager.ItemManager.Evaluate(stat, gear)); } RefreshValues(); @@ -476,15 +528,16 @@ public class PropertiesPanel : MonoBehaviour AddProperty(data.Description).Label.fontStyle = FontStyles.Normal; if (data is EquippableItemData gearData) { - AddProperty("Durability", () => gearData.Durability.SignificantDigits(Context.GameplaySettings.SignificantDigits)); + AddProperty("Durability", () => ActionGameManager.PlayerSettings.Format(gearData.Durability)); + var sheet = AddStatSheet(); foreach (var behavior in gearData.Behaviors) { if (behavior is StatModifierData statMod) { if(Math.Abs(statMod.Modifier.Min - statMod.Modifier.Max) < .001f) - AddProperty("Stat Mod", () => $"{statMod.Stat.Target}:{statMod.Stat.Stat}{(statMod.Type == StatModifierType.Constant ? "+" : "x")}{statMod.Modifier.Min.SignificantDigits(Context.GameplaySettings.SignificantDigits)}"); + sheet.AddStat($"{statMod.Stat.Target}:{statMod.Stat.Stat}", () => $"{(statMod.Type == StatModifierType.Constant ? "+" : "x")}{ActionGameManager.PlayerSettings.Format(statMod.Modifier.Min)}"); else - AddProperty("Stat Mod", () => $"{statMod.Stat.Target}:{statMod.Stat.Stat}{(statMod.Type == StatModifierType.Constant ? "+" : "x")}{statMod.Modifier.Min.SignificantDigits(Context.GameplaySettings.SignificantDigits)}-{statMod.Modifier.Max.SignificantDigits(Context.GameplaySettings.SignificantDigits)}"); + sheet.AddStat($"{statMod.Stat.Target}:{statMod.Stat.Stat}", () => $"{(statMod.Type == StatModifierType.Constant ? "+" : "x")}{ActionGameManager.PlayerSettings.Format(statMod.Modifier.Min)}-{ActionGameManager.PlayerSettings.Format(statMod.Modifier.Max)}"); } var type = behavior.GetType(); if (type.GetCustomAttribute(typeof(RuntimeInspectable)) != null) @@ -493,16 +546,16 @@ public class PropertiesPanel : MonoBehaviour { var fieldType = field.FieldType; if (fieldType == typeof(float)) - AddProperty(field.Name, () => $"{((float) field.GetValue(behavior)).SignificantDigits(Context.GameplaySettings.SignificantDigits)}"); + sheet.AddStat(field.Name, () => $"{ActionGameManager.PlayerSettings.Format((float) field.GetValue(behavior))}"); else if (fieldType == typeof(int)) - AddProperty(field.Name, () => $"{(int) field.GetValue(behavior)}"); + sheet.AddStat(field.Name, () => $"{(int) field.GetValue(behavior)}"); else if (fieldType == typeof(PerformanceStat)) { var stat = (PerformanceStat) field.GetValue(behavior); if(Math.Abs(stat.Min - stat.Max) < .001f) - AddProperty(field.Name, () => $"{stat.Min.SignificantDigits(Context.GameplaySettings.SignificantDigits)}"); + sheet.AddStat(field.Name, () => $"{ActionGameManager.PlayerSettings.Format(stat.Min)}"); else - AddProperty(field.Name, () => $"{stat.Min.SignificantDigits(Context.GameplaySettings.SignificantDigits)}-{stat.Max.SignificantDigits(Context.GameplaySettings.SignificantDigits)}"); + sheet.AddStat(field.Name, () => $"{ActionGameManager.PlayerSettings.Format(stat.Min)}-{ActionGameManager.PlayerSettings.Format(stat.Max)}"); } } } diff --git a/Assets/Scripts/UI/PropertiesPanel.cs.meta b/Assets/Scripts/UI/PropertiesPanel.cs.meta index 2cadb0bc8..73509456b 100644 --- a/Assets/Scripts/UI/PropertiesPanel.cs.meta +++ b/Assets/Scripts/UI/PropertiesPanel.cs.meta @@ -3,7 +3,27 @@ guid: 8c2bf4a7080061d42a87046c37bf0c60 MonoImporter: externalObjects: {} serializedVersion: 2 - defaultReferences: [] + defaultReferences: + - Spacer: {instanceID: 0} + - Dropdown: {instanceID: 0} + - Title: {instanceID: 0} + - Section: {instanceID: 0} + - List: {instanceID: 0} + - Property: {instanceID: 0} + - PropertyLabel: {instanceID: 0} + - Attribute: {instanceID: 0} + - InputField: {instanceID: 0} + - RangedFloatField: {instanceID: 0} + - ProgressField: {instanceID: 0} + - EnumField: {instanceID: 0} + - BoolField: {instanceID: 0} + - PropertyButton: {instanceID: 0} + - ButtonField: {instanceID: 0} + - IncrementField: {instanceID: 0} + - StatSheet: {fileID: 3416329628306957711, guid: 4f75723ed178a084e813965e84825bd4, + type: 3} + - Content: {instanceID: 0} + - SelectedChild: {instanceID: 0} executionOrder: 0 icon: {instanceID: 0} userData: diff --git a/Assets/Scripts/UI/SchematicDisplay.cs b/Assets/Scripts/UI/SchematicDisplay.cs index 9c2e723f8..092498d05 100644 --- a/Assets/Scripts/UI/SchematicDisplay.cs +++ b/Assets/Scripts/UI/SchematicDisplay.cs @@ -259,7 +259,7 @@ public class SchematicDisplay : MonoBehaviour if (_capacitors.Length == 0) { EnergyFill.anchorMax = Vector2.up; - EnergyLabel.text = _reactor.Draw.SignificantDigits(3); + EnergyLabel.text = ActionGameManager.PlayerSettings.Format(_reactor.Draw); } else { @@ -280,7 +280,7 @@ public class SchematicDisplay : MonoBehaviour var hullData = _entity.ItemManager.GetData(_hull); var dur = _hull.Durability / hullData.Durability; HullDurabilityFill.anchorMax = new Vector2(dur, 1); - HullDurabilityLabel.text = $"{(dur*100).SignificantDigits(3)}%"; + HullDurabilityLabel.text = $"{ActionGameManager.PlayerSettings.Format(dur*100)}%"; foreach (var x in _schematicItems) { diff --git a/Assets/Scripts/UI/SectorMap.cs b/Assets/Scripts/UI/SectorMap.cs index b0b87f1ec..b759995c0 100644 --- a/Assets/Scripts/UI/SectorMap.cs +++ b/Assets/Scripts/UI/SectorMap.cs @@ -38,7 +38,10 @@ public class SectorMap : MonoBehaviour public float LinkWidth; public float CriticalLinkWidth; public AnimationCurve IconScaleAnimation; + public Color PlayerLocationLabelColor; + public float PlayerLocationIconSize = 1.25f; + private SectorZone _currentPlayerLocation; private HashSet _revealedZones = new HashSet(); private HashSet<(SectorZone, SectorZone)> _revealedLinks = new HashSet<(SectorZone, SectorZone)>(); @@ -48,6 +51,29 @@ public class SectorMap : MonoBehaviour private Dictionary _zoneInstances = new Dictionary(); private Queue> _queuedZoneReveals = new Queue>(); + public void MarkPlayerLocation(SectorZone zone) + { + if (_currentPlayerLocation != null) + { + _zoneInstances[_currentPlayerLocation].Label.color = Color.white; + _zoneInstances[_currentPlayerLocation].Label.fontStyle = FontStyles.Normal; + _zoneInstances[_currentPlayerLocation].IconContainer.localScale = Vector3.one; + } + + _currentPlayerLocation = zone; + if(_zoneInstances.ContainsKey(_currentPlayerLocation)) + { + MarkPlayerLocation(_zoneInstances[_currentPlayerLocation]); + } + } + + private void MarkPlayerLocation(SectorZoneUI zoneUI) + { + zoneUI.Label.color = PlayerLocationLabelColor; + zoneUI.Label.fontStyle = FontStyles.Bold; + zoneUI.IconContainer.localScale = new Vector3(PlayerLocationIconSize, PlayerLocationIconSize, 1); + } + public void QueueZoneReveal(IEnumerable zones) { _queuedZoneReveals.Enqueue(zones); @@ -72,6 +98,8 @@ public class SectorMap : MonoBehaviour if (!_revealedZones.Contains(zone)) { var zoneInstance = ZonePrototype.Instantiate(); + if(zone == _currentPlayerLocation) + MarkPlayerLocation(zoneInstance); _zoneInstances[zone] = zoneInstance; var zoneInstanceTransform = zoneInstance.transform; zoneTransforms.Add(zoneInstanceTransform); diff --git a/Assets/Scripts/UI/SectorRenderer.cs b/Assets/Scripts/UI/SectorRenderer.cs index 8cfb14a42..b7a38e93c 100644 --- a/Assets/Scripts/UI/SectorRenderer.cs +++ b/Assets/Scripts/UI/SectorRenderer.cs @@ -92,6 +92,7 @@ public class SectorRenderer : MonoBehaviour, IBeginDragHandler, IDragHandler, IS _viewSize = .25f; Map.StartReveal(LinkAnimationDuration, IconAnimationDuration); + Map.MarkPlayerLocation(GameManager.CurrentEntity.Zone.SectorZone); } private void OnDisable() diff --git a/Assets/Scripts/UI/SectorZoneUI.cs b/Assets/Scripts/UI/SectorZoneUI.cs index a3cb48d3f..aa568e018 100644 --- a/Assets/Scripts/UI/SectorZoneUI.cs +++ b/Assets/Scripts/UI/SectorZoneUI.cs @@ -10,4 +10,5 @@ public class SectorZoneUI : MonoBehaviour public MeshRenderer Secondary; public MeshRenderer Influence; public TextMeshPro Label; + public Transform IconContainer; } diff --git a/Assets/Scripts/UI/StatSheet.cs b/Assets/Scripts/UI/StatSheet.cs new file mode 100644 index 000000000..29a3e4b89 --- /dev/null +++ b/Assets/Scripts/UI/StatSheet.cs @@ -0,0 +1,24 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class StatSheet : MonoBehaviour +{ + public PropertyLabel StatPrefab; + + private List<(PropertyLabel property, Func value)> _stats = new List<(PropertyLabel property, Func value)>(); + + public void AddStat(string label, Func value) + { + var instance = Instantiate(StatPrefab, transform); + instance.Label.text = label; + _stats.Add((instance, value)); + } + + public void RefreshValues() + { + foreach(var stat in _stats) + stat.property.Value.text = stat.value(); + } +} diff --git a/Assets/Scripts/UI/StatSheet.cs.meta b/Assets/Scripts/UI/StatSheet.cs.meta new file mode 100644 index 000000000..59bd91c0b --- /dev/null +++ b/Assets/Scripts/UI/StatSheet.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b02298592479bca4691d1bb19c2a79cd +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/UI/TradeMenu.cs b/Assets/Scripts/UI/TradeMenu.cs index aba71b3be..6d83b0fc4 100644 --- a/Assets/Scripts/UI/TradeMenu.cs +++ b/Assets/Scripts/UI/TradeMenu.cs @@ -37,7 +37,7 @@ public class TradeMenu : MonoBehaviour if (GameManager.DockedEntity == null) return; _targetCargo = GameManager.DockingBay; TargetCargoLabel.text = "Docking Bay"; - Properties.Context = GameManager.ItemManager; + Properties.GameManager = GameManager; MinimumSizeFilter.Width.onEndEdit.RemoveAllListeners(); MinimumSizeFilter.Width.onEndEdit.AddListener(_ => Populate()); @@ -210,7 +210,7 @@ public class TradeMenu : MonoBehaviour return 0; })); columns.Add(("Mass", 1, - x => () => x.data.Mass.SignificantDigits(3), + x => () => ActionGameManager.PlayerSettings.Format(x.data.Mass), data => data.Mass)); columns.Add(("Price", 1, x => () => (x.item is CraftedItemInstance craftedItemInstance ? GameManager.ItemManager.GetPrice(craftedItemInstance) : x.data.Price).ToString("N0"), @@ -252,7 +252,7 @@ public class TradeMenu : MonoBehaviour columns.Add((field.Name, 1, x => { var behavior = ((EquippableItemData) x.data).Behaviors.FirstOrDefault(b => type.IsInstanceOfType(b)); - return () => ((float) field.GetValue(behavior)).SignificantDigits(3); + return () => ActionGameManager.PlayerSettings.Format((float) field.GetValue(behavior)); }, data => { var behavior = ((EquippableItemData) data).Behaviors.FirstOrDefault(b => type.IsInstanceOfType(b)); @@ -273,7 +273,7 @@ public class TradeMenu : MonoBehaviour columns.Add((field.Name, 1, x => { var behavior = ((EquippableItemData) x.data).Behaviors.FirstOrDefault(b => type.IsInstanceOfType(b)); - return () => ((PerformanceStat) field.GetValue(behavior)).Max.SignificantDigits(3); + return () => ActionGameManager.PlayerSettings.Format(((PerformanceStat) field.GetValue(behavior)).Max); }, data => { var behavior = ((EquippableItemData) data).Behaviors.FirstOrDefault(b => type.IsInstanceOfType(b)); diff --git a/Assets/Scripts/UI/TradeMenuDebug.cs b/Assets/Scripts/UI/TradeMenuDebug.cs index 8494b0876..defed04f1 100644 --- a/Assets/Scripts/UI/TradeMenuDebug.cs +++ b/Assets/Scripts/UI/TradeMenuDebug.cs @@ -34,7 +34,7 @@ public class TradeMenuDebug : MonoBehaviour { _targetCargo = GameManager.DockingBay; TargetCargoLabel.text = "Docking Bay"; - Properties.Context = GameManager.ItemManager; + Properties.GameManager = GameManager; MinimumSizeFilter.Width.onEndEdit.AddListener(_ => Populate()); MinimumSizeFilter.Height.onEndEdit.AddListener(_ => Populate()); MaximumSizeFilter.Width.onEndEdit.AddListener(_ => Populate()); @@ -196,7 +196,7 @@ public class TradeMenuDebug : MonoBehaviour return 0; })); columns.Add(("Mass", 1, - data => () => data.Mass.SignificantDigits(3), + data => () => ActionGameManager.PlayerSettings.Format(data.Mass), data => data.Mass)); columns.Add(("Price", 1, data => () => data.Price.ToString("N0"), @@ -237,7 +237,7 @@ public class TradeMenuDebug : MonoBehaviour columns.Add((field.Name, 1, data => { var behavior = ((EquippableItemData) data).Behaviors.FirstOrDefault(b => type.IsInstanceOfType(b)); - return () => ((float) field.GetValue(behavior)).SignificantDigits(3); + return () => ActionGameManager.PlayerSettings.Format((float) field.GetValue(behavior)); }, data => { var behavior = ((EquippableItemData) data).Behaviors.FirstOrDefault(b => type.IsInstanceOfType(b)); @@ -258,7 +258,7 @@ public class TradeMenuDebug : MonoBehaviour columns.Add((field.Name, 1, data => { var behavior = ((EquippableItemData) data).Behaviors.FirstOrDefault(b => type.IsInstanceOfType(b)); - return () => ((PerformanceStat) field.GetValue(behavior)).Max.SignificantDigits(3); + return () => ActionGameManager.PlayerSettings.Format(((PerformanceStat) field.GetValue(behavior)).Max); }, data => { var behavior = ((EquippableItemData) data).Behaviors.FirstOrDefault(b => type.IsInstanceOfType(b)); diff --git a/GameData/PlayerSettings.msgpack b/GameData/PlayerSettings.msgpack index dc341c65c..9f577b986 100644 --- a/GameData/PlayerSettings.msgpack +++ b/GameData/PlayerSettings.msgpack @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:6aaed2a17711abc2326673af3b4239c9b965a6974f00ce8a542cd80d963da493 -size 18864 +oid sha256:1c40ca2581b784a49fae1ed58c17011926cca8ee92e7281f0c77a47eb9fb6534 +size 18061 diff --git a/UserSettings/EditorUserSettings.asset b/UserSettings/EditorUserSettings.asset index 243b698c4..bc307be86 100644 --- a/UserSettings/EditorUserSettings.asset +++ b/UserSettings/EditorUserSettings.asset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:b4fb3152599a8666aedca5b475f5e565647b91afd1835b193b2ae6acf78653c1 +oid sha256:caf20eb516bc53f1774f3a147124ab3b7e9869c889cf6083eba3f4507444845a size 1699 From b171b940dccc61d06e373514b8325543e3020c01 Mon Sep 17 00:00:00 2001 From: Reinier Vens Date: Tue, 13 Apr 2021 02:16:03 +0100 Subject: [PATCH 35/51] Significant Digits Hotfix Formatting code was consuming the sigdigs whenever it was used. Whoops! --- Assets/Materials/UI/Map Gravity Lines.mat | 2 +- .../UI/Properties Panel/Simple/Ranged Float Field.prefab | 3 +-- Assets/Scenes/Main Menu.unity | 8 ++++---- Assets/Scripts/ServerShared/PlayerSettings.cs | 9 +++++---- GameData/PlayerSettings.msgpack | 2 +- 5 files changed, 12 insertions(+), 12 deletions(-) diff --git a/Assets/Materials/UI/Map Gravity Lines.mat b/Assets/Materials/UI/Map Gravity Lines.mat index 749d876be..a21223d9f 100644 --- a/Assets/Materials/UI/Map Gravity Lines.mat +++ b/Assets/Materials/UI/Map Gravity Lines.mat @@ -86,7 +86,7 @@ Material: - _Mode: 0 - _OcclusionStrength: 1 - _Parallax: 0.02 - - _Scale: 0.5 + - _Scale: 1.441227 - _SmoothnessTextureChannel: 0 - _SpecularHighlights: 1 - _SrcBlend: 1 diff --git a/Assets/Prefabs/UI/Properties Panel/Simple/Ranged Float Field.prefab b/Assets/Prefabs/UI/Properties Panel/Simple/Ranged Float Field.prefab index a95a826c4..3a13a994a 100644 --- a/Assets/Prefabs/UI/Properties Panel/Simple/Ranged Float Field.prefab +++ b/Assets/Prefabs/UI/Properties Panel/Simple/Ranged Float Field.prefab @@ -487,8 +487,7 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_text: Slider FieldSlider FieldSlider FieldSlider FieldSlider FieldSlider FieldSlider - FieldSlider Field + m_text: Slider Field m_isRightToLeft: 0 m_fontAsset: {fileID: 11400000, guid: 53555f7a2d5e745428813f1b1118734f, type: 2} m_sharedMaterial: {fileID: -2804126062856497447, guid: 53555f7a2d5e745428813f1b1118734f, diff --git a/Assets/Scenes/Main Menu.unity b/Assets/Scenes/Main Menu.unity index a4cae2244..89f4dbcab 100644 --- a/Assets/Scenes/Main Menu.unity +++ b/Assets/Scenes/Main Menu.unity @@ -802,8 +802,8 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 741153267} - m_LocalRotation: {x: 0.0155069195, y: 0.9502416, z: -0.30741316, w: 0.047933277} - m_LocalPosition: {x: -117.52002, y: -77.087425, z: 149.09026} + m_LocalRotation: {x: 0.015506903, y: 0.9502416, z: -0.30741313, w: 0.04793323} + m_LocalPosition: {x: -117.51999, y: -77.08743, z: 149.09026} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: - {fileID: 412917866} @@ -1234,8 +1234,8 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 965376321} - m_LocalRotation: {x: 0.0155069195, y: 0.9502416, z: -0.30741316, w: 0.047933277} - m_LocalPosition: {x: -117.52002, y: -77.087425, z: 149.09026} + m_LocalRotation: {x: 0.015506903, y: 0.9502416, z: -0.30741313, w: 0.04793323} + m_LocalPosition: {x: -117.51999, y: -77.08743, z: 149.09026} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 0} diff --git a/Assets/Scripts/ServerShared/PlayerSettings.cs b/Assets/Scripts/ServerShared/PlayerSettings.cs index 67d7e0e3d..daea4cb1b 100644 --- a/Assets/Scripts/ServerShared/PlayerSettings.cs +++ b/Assets/Scripts/ServerShared/PlayerSettings.cs @@ -36,10 +36,11 @@ public class PlayerSettings public string Format(float d) { var magnitude = d == 0.0f ? 0 : (int)Math.Floor(Math.Log10(Math.Abs(d))) + 1; - SignificantDigits -= magnitude; - if (SignificantDigits < 0) - SignificantDigits = 0; - var strdec = d.ToString($"N{SignificantDigits}"); + var digits = SignificantDigits; + digits -= magnitude; + if (digits < 0) + digits = 0; + var strdec = d.ToString($"N{digits}"); var dec = Convert.ToChar(CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator); return strdec.Contains(CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator) ? strdec.TrimEnd('0').TrimEnd(dec) : strdec; } diff --git a/GameData/PlayerSettings.msgpack b/GameData/PlayerSettings.msgpack index 9f577b986..241d80ee6 100644 --- a/GameData/PlayerSettings.msgpack +++ b/GameData/PlayerSettings.msgpack @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:1c40ca2581b784a49fae1ed58c17011926cca8ee92e7281f0c77a47eb9fb6534 +oid sha256:4837af8686704ae9bcc731ac076fe9db437881a5a1a217f65012aeaf777a99d7 size 18061 From 324b2f268fc218a748350eeb2ab8b15a6491c4c8 Mon Sep 17 00:00:00 2001 From: Defirm <32074047+voivoontos@users.noreply.github.com> Date: Tue, 13 Apr 2021 19:11:33 +0200 Subject: [PATCH 36/51] defirm11 LightingGun full MachineGun full IonCannon full shield full --- .../Spaceship_Aetheric_drivers.wwu | 1863 ++++++++++++++++- ...omy_WwiseProject.crossover.validationcache | 12 +- ...a-Economy_WwiseProject.crossover.wsettings | 36 +- .../Events/Default Work Unit.wwu | 22 + .../Events/SFX_defirm_aeth_drive_model.wwu | 330 ++- .../Events/Ship Audio.wwu | 77 - .../SFX_spcship_shield_active.akd | Bin 0 -> 2556 bytes .../SFX_spcship_shield_active.wav | 3 + .../SFX_spcship_shield_active02.akd | Bin 0 -> 42512 bytes .../SFX_spcship_shield_active02.wav | 3 + .../SFX_weapon_ioncannon_ship_charge.akd | Bin 0 -> 7552 bytes .../SFX_weapon_ioncannon_ship_charge.wav | 3 + .../SFX_weapon_lightingGun_charge.akd | Bin 0 -> 19852 bytes .../SFX_weapon_lightingGun_charge.wav | 3 + .../Originals/SFX/SFX_spcship_shield_down.akd | Bin 0 -> 5672 bytes .../Originals/SFX/SFX_spcship_shield_down.wav | 3 + .../Originals/SFX/SFX_spcship_shield_up.akd | Bin 0 -> 2700 bytes .../Originals/SFX/SFX_spcship_shield_up.wav | 3 + .../Originals/SFX/SFX_weapon_cannon_fire.akd | Bin 0 -> 5764 bytes .../Originals/SFX/SFX_weapon_cannon_fire.wav | 3 + .../Originals/SFX/SFX_weapon_cannon_hit.akd | Bin 0 -> 22472 bytes .../Originals/SFX/SFX_weapon_cannon_hit.wav | 3 + .../SFX/SFX_weapon_cannon_miss01.akd | Bin 0 -> 4132 bytes .../SFX/SFX_weapon_cannon_miss01.wav | 3 + .../SFX/SFX_weapon_cannon_miss02.akd | Bin 0 -> 4132 bytes .../SFX/SFX_weapon_cannon_miss02.wav | 3 + .../SFX/SFX_weapon_cannon_miss03.akd | Bin 0 -> 4492 bytes .../SFX/SFX_weapon_cannon_miss03.wav | 3 + .../SFX/SFX_weapon_cannon_miss04.akd | Bin 0 -> 4204 bytes .../SFX/SFX_weapon_cannon_miss04.wav | 3 + .../SFX/SFX_weapon_ioncannon_fire01.akd | Bin 0 -> 3756 bytes .../SFX/SFX_weapon_ioncannon_fire01.wav | 3 + .../SFX/SFX_weapon_ioncannon_fire02.akd | Bin 0 -> 3756 bytes .../SFX/SFX_weapon_ioncannon_fire02.wav | 3 + .../SFX/SFX_weapon_ioncannon_fire03.akd | Bin 0 -> 3756 bytes .../SFX/SFX_weapon_ioncannon_fire03.wav | 3 + .../SFX/SFX_weapon_ioncannon_fire04.akd | Bin 0 -> 3756 bytes .../SFX/SFX_weapon_ioncannon_fire04.wav | 3 + .../SFX/SFX_weapon_ioncannon_hit01.akd | Bin 0 -> 3156 bytes .../SFX/SFX_weapon_ioncannon_hit01.wav | 3 + .../SFX/SFX_weapon_ioncannon_hit02.akd | Bin 0 -> 3156 bytes .../SFX/SFX_weapon_ioncannon_hit02.wav | 3 + .../SFX/SFX_weapon_ioncannon_hit03.akd | Bin 0 -> 3156 bytes .../SFX/SFX_weapon_ioncannon_hit03.wav | 3 + .../SFX/SFX_weapon_ioncannon_hit04.akd | Bin 0 -> 3156 bytes .../SFX/SFX_weapon_ioncannon_hit04.wav | 3 + .../SFX/SFX_weapon_ioncannon_miss01.akd | Bin 0 -> 1804 bytes .../SFX/SFX_weapon_ioncannon_miss01.wav | 3 + .../SFX/SFX_weapon_ioncannon_miss02.akd | Bin 0 -> 1804 bytes .../SFX/SFX_weapon_ioncannon_miss02.wav | 3 + .../SFX/SFX_weapon_ioncannon_miss03.akd | Bin 0 -> 1804 bytes .../SFX/SFX_weapon_ioncannon_miss03.wav | 3 + .../SFX/SFX_weapon_ioncannon_miss04.akd | Bin 0 -> 1804 bytes .../SFX/SFX_weapon_ioncannon_miss04.wav | 3 + .../SFX_weapon_ioncannon_ship_destroyed.akd | Bin 0 -> 21732 bytes .../SFX_weapon_ioncannon_ship_destroyed.wav | 3 + ..._weapon_ioncannon_ship_overcharge_fail.akd | Bin 0 -> 1292 bytes ..._weapon_ioncannon_ship_overcharge_fail.wav | 3 + .../SFX_weapon_lightingGun_charge_fail.akd | Bin 0 -> 3316 bytes .../SFX_weapon_lightingGun_charge_fail.wav | 3 + .../SFX/SFX_weapon_machinegun_fire01.akd | Bin 0 -> 948 bytes .../SFX/SFX_weapon_machinegun_fire01.wav | 3 + .../SFX/SFX_weapon_machinegun_fire02.akd | Bin 0 -> 948 bytes .../SFX/SFX_weapon_machinegun_fire02.wav | 3 + .../SFX/SFX_weapon_machinegun_fire03.akd | Bin 0 -> 948 bytes .../SFX/SFX_weapon_machinegun_fire03.wav | 3 + .../SFX/SFX_weapon_machinegun_fire04.akd | Bin 0 -> 964 bytes .../SFX/SFX_weapon_machinegun_fire04.wav | 3 + .../SFX/SFX_weapon_machinegun_hit.akd | Bin 0 -> 2036 bytes .../SFX/SFX_weapon_machinegun_hit.wav | 3 + .../SFX/SFX_weapon_machinegun_hit02.akd | Bin 0 -> 2036 bytes .../SFX/SFX_weapon_machinegun_hit02.wav | 3 + .../SFX/SFX_weapon_machinegun_hit03.akd | Bin 0 -> 2036 bytes .../SFX/SFX_weapon_machinegun_hit03.wav | 3 + .../SFX/SFX_weapon_machinegun_hit04.akd | Bin 0 -> 2036 bytes .../SFX/SFX_weapon_machinegun_hit04.wav | 3 + .../SFX/SFX_weapon_machinegun_miss01.akd | Bin 0 -> 1316 bytes .../SFX/SFX_weapon_machinegun_miss01.wav | 3 + .../SFX/SFX_weapon_machinegun_miss02.akd | Bin 0 -> 1244 bytes .../SFX/SFX_weapon_machinegun_miss02.wav | 3 + .../SFX/SFX_weapon_machinegun_miss03.akd | Bin 0 -> 1220 bytes .../SFX/SFX_weapon_machinegun_miss03.wav | 3 + .../SFX/SFX_weapon_machinegun_miss04.akd | Bin 0 -> 1188 bytes .../SFX/SFX_weapon_machinegun_miss04.wav | 3 + .../SFX_weapon_machinegun_ship_destroyed.akd | Bin 0 -> 15748 bytes .../SFX_weapon_machinegun_ship_destroyed.wav | 3 + .../Default Work Unit.wwu | 38 +- 87 files changed, 2374 insertions(+), 124 deletions(-) create mode 100644 Aetheria-Economy_WwiseProject/Originals/Plugins/SoundSeed Grain/SFX_spcship_shield_active.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/Plugins/SoundSeed Grain/SFX_spcship_shield_active.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/Plugins/SoundSeed Grain/SFX_spcship_shield_active02.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/Plugins/SoundSeed Grain/SFX_spcship_shield_active02.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/Plugins/SoundSeed Grain/SFX_weapon_ioncannon_ship_charge.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/Plugins/SoundSeed Grain/SFX_weapon_ioncannon_ship_charge.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/Plugins/SoundSeed Grain/SFX_weapon_lightingGun_charge.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/Plugins/SoundSeed Grain/SFX_weapon_lightingGun_charge.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX_spcship_shield_down.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX_spcship_shield_down.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX_spcship_shield_up.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX_spcship_shield_up.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_cannon_fire.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_cannon_fire.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_cannon_hit.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_cannon_hit.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_cannon_miss01.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_cannon_miss01.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_cannon_miss02.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_cannon_miss02.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_cannon_miss03.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_cannon_miss03.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_cannon_miss04.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_cannon_miss04.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_ioncannon_fire01.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_ioncannon_fire01.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_ioncannon_fire02.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_ioncannon_fire02.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_ioncannon_fire03.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_ioncannon_fire03.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_ioncannon_fire04.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_ioncannon_fire04.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_ioncannon_hit01.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_ioncannon_hit01.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_ioncannon_hit02.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_ioncannon_hit02.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_ioncannon_hit03.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_ioncannon_hit03.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_ioncannon_hit04.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_ioncannon_hit04.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_ioncannon_miss01.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_ioncannon_miss01.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_ioncannon_miss02.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_ioncannon_miss02.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_ioncannon_miss03.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_ioncannon_miss03.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_ioncannon_miss04.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_ioncannon_miss04.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_ioncannon_ship_destroyed.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_ioncannon_ship_destroyed.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_ioncannon_ship_overcharge_fail.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_ioncannon_ship_overcharge_fail.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_lightingGun_charge_fail.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_lightingGun_charge_fail.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_machinegun_fire01.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_machinegun_fire01.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_machinegun_fire02.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_machinegun_fire02.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_machinegun_fire03.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_machinegun_fire03.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_machinegun_fire04.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_machinegun_fire04.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_machinegun_hit.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_machinegun_hit.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_machinegun_hit02.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_machinegun_hit02.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_machinegun_hit03.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_machinegun_hit03.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_machinegun_hit04.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_machinegun_hit04.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_machinegun_miss01.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_machinegun_miss01.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_machinegun_miss02.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_machinegun_miss02.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_machinegun_miss03.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_machinegun_miss03.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_machinegun_miss04.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_machinegun_miss04.wav create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_machinegun_ship_destroyed.akd create mode 100644 Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_machinegun_ship_destroyed.wav diff --git a/Aetheria-Economy_WwiseProject/Actor-Mixer Hierarchy/Spaceship_Aetheric_drivers.wwu b/Aetheria-Economy_WwiseProject/Actor-Mixer Hierarchy/Spaceship_Aetheric_drivers.wwu index 25e047bcf..83877e640 100644 --- a/Aetheria-Economy_WwiseProject/Actor-Mixer Hierarchy/Spaceship_Aetheric_drivers.wwu +++ b/Aetheria-Economy_WwiseProject/Actor-Mixer Hierarchy/Spaceship_Aetheric_drivers.wwu @@ -7,6 +7,7 @@ + 7 @@ -1561,7 +1562,7 @@ - + @@ -2167,7 +2168,7 @@ - + @@ -2339,7 +2340,7 @@ - + @@ -2669,7 +2670,7 @@ - + @@ -2964,9 +2965,22 @@ - + + + + + + + + + + + + + + -4.6 @@ -3259,7 +3273,7 @@ - + @@ -3412,22 +3426,242 @@ + + + + + + 4.1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 4 + 5 + Exp1 + + + 1 + 7 + 37 + + + + + + + + + + + + + + + + + + + + + 0 + 0 + 5 + + + 1 + 0 + 37 + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + -96 + 21 + + + 1 + 0 + 53 + + + + + + + + + + + + + + + + + + + + + + 0 + 0 + 5 + + + 1 + 455.78635 + 37 + + + + + + + + + + SoundSeed Grain + SFX_weapon_lightingGun_charge.wav + + + + + + SFX + + + + + + + + + + + + -7.3 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SFX + SFX_weapon_lightingGun_charge_fail.wav + + + + + + + + + - + + -4.6 - - - + + + + @@ -3550,6 +3784,1389 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + 4 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SFX + SFX_weapon_cannon_fire.wav + + + + + + + + + + + + + + + 10 + + + + + + + + + + + + + + + -2.2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SFX + SFX_weapon_cannon_hit.wav + + + + + + + + + + + + + + + + + + + + + + + + + + + -2.2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SFX + SFX_weapon_cannon_hit.wav + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SFX + SFX_weapon_cannon_miss01.wav + + + + + + + + + + + + + + + + + + + + + SFX + SFX_weapon_cannon_miss02.wav + + + + + + + + + + + + + + + + + + + + + SFX + SFX_weapon_cannon_miss03.wav + + + + + + + + + + + + + + + + + + + + + SFX + SFX_weapon_cannon_miss04.wav + + + + + + + + + + + + + + + + + + + + + 8 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SFX + SFX_weapon_machinegun_fire01.wav + + + + + + + + + + + + + + + + + + + + + SFX + SFX_weapon_machinegun_fire02.wav + + + + + + + + + + + + + + + + + + + + + SFX + SFX_weapon_machinegun_fire03.wav + + + + + + + + + + + + + + + + + + + + + SFX + SFX_weapon_machinegun_fire04.wav + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SFX + SFX_weapon_machinegun_hit.wav + + + + + + + + + + + + + + + + + + + + + SFX + SFX_weapon_machinegun_hit02.wav + + + + + + + + + + + + + + + + + + + + + SFX + SFX_weapon_machinegun_hit03.wav + + + + + + + + + + + + + + + + + + + + + SFX + SFX_weapon_machinegun_hit04.wav + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SFX + SFX_weapon_machinegun_miss01.wav + + + + + + + + + + + + + + + + + + + + + SFX + SFX_weapon_machinegun_miss02.wav + + + + + + + + + + + + + + + + + + + + + SFX + SFX_weapon_machinegun_miss03.wav + + + + + + + + + + + + + + + + + + + + + SFX + SFX_weapon_machinegun_miss04.wav + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SFX + SFX_weapon_machinegun_ship_destroyed.wav + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SFX + SFX_weapon_ioncannon_fire01.wav + + + + + + + + + + + + + + + + + + + + + SFX + SFX_weapon_ioncannon_fire02.wav + + + + + + + + + + + + + + + + + + + + + SFX + SFX_weapon_ioncannon_fire03.wav + + + + + + + + + + + + + + + + + + + + + SFX + SFX_weapon_ioncannon_fire04.wav + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SFX + SFX_weapon_ioncannon_miss01.wav + + + + + + + + + + + + + + + + + + + + + SFX + SFX_weapon_ioncannon_miss02.wav + + + + + + + + + + + + + + + + + + + + + SFX + SFX_weapon_ioncannon_miss03.wav + + + + + + + + + + + + + + + + + + + + + SFX + SFX_weapon_ioncannon_miss04.wav + + + + + + + + + + + + + + + + + 9 + + + + + -2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SFX + SFX_weapon_ioncannon_hit01.wav + + + + + + + + + + + + + + + + + + + + + SFX + SFX_weapon_ioncannon_hit02.wav + + + + + + + + + + + + + + + + + + + + + SFX + SFX_weapon_ioncannon_hit03.wav + + + + + + + + + + + + + + + + + + + + + SFX + SFX_weapon_ioncannon_hit04.wav + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SFX + SFX_weapon_ioncannon_ship_destroyed.wav + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 20 + 5 + Exp1 + + + 1 + 2055.41459 + 37 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + -96 + 21 + + + 1 + 0 + 53 + + + + + + + + + + + + + + + + + + + + + + 0 + 0 + 5 + Exp1 + + + 1 + 244.10433 + 37 + + + + + + + + + + SoundSeed Grain + SFX_weapon_ioncannon_ship_charge.wav + + + + + + SFX + + + + + + + + + + + + + + + + + + + + + + + + + + 3 + + + + + + + + + + + + + + + + + SFX + SFX_weapon_ioncannon_ship_overcharge_fail.wav + + + + + + + + + + + @@ -3557,11 +5174,13 @@ + + + -0.9 + + - - 8.1 - @@ -3925,6 +5544,224 @@ + + + + + + + + 3 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + -96 + 21 + + + 1 + 0 + 53 + + + + + + + + + + + + + + + + + SoundSeed Grain + SFX_spcship_shield_active02.wav + + + + + + SFX + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 17 + + + + + -5.6 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SFX + SFX_spcship_shield_up.wav + + + + + + + + + + + + + + + -5.1 + + + + + + + + + + + + + + + + + SFX + SFX_spcship_shield_down.wav + + + + + + + + + + + diff --git a/Aetheria-Economy_WwiseProject/Aetheria-Economy_WwiseProject.crossover.validationcache b/Aetheria-Economy_WwiseProject/Aetheria-Economy_WwiseProject.crossover.validationcache index 84e5729eb..fdf9ed6f6 100644 --- a/Aetheria-Economy_WwiseProject/Aetheria-Economy_WwiseProject.crossover.validationcache +++ b/Aetheria-Economy_WwiseProject/Aetheria-Economy_WwiseProject.crossover.validationcache @@ -5,7 +5,7 @@ - + @@ -19,13 +19,13 @@ - + - + - + @@ -35,8 +35,8 @@ - - + + diff --git a/Aetheria-Economy_WwiseProject/Aetheria-Economy_WwiseProject.crossover.wsettings b/Aetheria-Economy_WwiseProject/Aetheria-Economy_WwiseProject.crossover.wsettings index 9477cc0b0..d93a0bbba 100644 --- a/Aetheria-Economy_WwiseProject/Aetheria-Economy_WwiseProject.crossover.wsettings +++ b/Aetheria-Economy_WwiseProject/Aetheria-Economy_WwiseProject.crossover.wsettings @@ -3,10 +3,11 @@ - + + @@ -26,24 +27,37 @@ + + + + + + + + + + + + + @@ -51,19 +65,27 @@ + + + + + + + + @@ -105,7 +127,7 @@ - + @@ -122,12 +144,12 @@ - - + + - + @@ -145,9 +167,9 @@ - + - + diff --git a/Aetheria-Economy_WwiseProject/Events/Default Work Unit.wwu b/Aetheria-Economy_WwiseProject/Events/Default Work Unit.wwu index db2228738..459084f81 100644 --- a/Aetheria-Economy_WwiseProject/Events/Default Work Unit.wwu +++ b/Aetheria-Economy_WwiseProject/Events/Default Work Unit.wwu @@ -102,6 +102,28 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/Aetheria-Economy_WwiseProject/Events/SFX_defirm_aeth_drive_model.wwu b/Aetheria-Economy_WwiseProject/Events/SFX_defirm_aeth_drive_model.wwu index 1fd6fc7a1..3d19fe8c6 100644 --- a/Aetheria-Economy_WwiseProject/Events/SFX_defirm_aeth_drive_model.wwu +++ b/Aetheria-Economy_WwiseProject/Events/SFX_defirm_aeth_drive_model.wwu @@ -77,13 +77,6 @@ - - - - - - - @@ -91,6 +84,13 @@ + + + + + + + @@ -255,7 +255,7 @@ - + @@ -298,7 +298,7 @@ - + @@ -309,7 +309,317 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Aetheria-Economy_WwiseProject/Events/Ship Audio.wwu b/Aetheria-Economy_WwiseProject/Events/Ship Audio.wwu index bc9f47099..77e87eabc 100644 --- a/Aetheria-Economy_WwiseProject/Events/Ship Audio.wwu +++ b/Aetheria-Economy_WwiseProject/Events/Ship Audio.wwu @@ -110,61 +110,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -176,28 +121,6 @@ - - - - - - - - - - - - - - - - - - - - - - diff --git a/Aetheria-Economy_WwiseProject/Originals/Plugins/SoundSeed Grain/SFX_spcship_shield_active.akd b/Aetheria-Economy_WwiseProject/Originals/Plugins/SoundSeed Grain/SFX_spcship_shield_active.akd new file mode 100644 index 0000000000000000000000000000000000000000..4fca8af262c77900a05420bd84a3295feb4c84f0 GIT binary patch literal 2556 zcmZuz4{Vg>9e$_>ye$R3(jqMtdR8U{%Qzg2Qu@A}2DNMqZirA3;j%Dg(X}-S>jc7) zRa?-?u|eB_gxgq1rA5L`K7K-W(f;W3Et?53|Hi(v3aW=@OG&^4#~` z`~Lnu&+q-d%LeemA|Qj;NEg5O2`PS!ApAL^VmX5F-z)-GE#iJb*;qlp7ChN32!2D* z_8@=%+9F7s_!0r06GYntYug2hM+N?`3*12)j9l+V=L|u~Oo3W2h|qSRT98~xpX=7~ z|B*2~=4r9sXzqo}1a;pNoZBJje2R8^#Fu2wONV*CM&M~twVU`mLc2oNGH4N5+YRJe z#BLQdh6U3a#5=h{e6a@cwbqMoWh-;l2}*ke$B&6hZ5PBI6F5gLqI)bxw32~SU5MmZ zq#m)TtQ1wXTu^yNaFsr(je?3MaiS^aYVJmgy#!lmJCgNovG7l@NIYj%lJz$(7jO5o zt54_CpKo?Si{h+~t?8^3y+7L@;jrUl#6r7Jb=*?0w{SsbJ_J z`Ti06oF-~u8gqTbeK7Yt3ulK#Tb{TbG5U@W#Q$Uwenf`(tg2=Wl`>RQPuuTO3-;Rj z9p0}dT#LG?tZAGmXNsV&NK|k(>rAk=0OP*EUJkKO#w-~x*q9++OR=bADQ%Vss&YlS ztT8!9yx-0c6|WU<(M<8RH&E9CQ5Zv?Sj|4$TQ)7LVxP5 zsFC{@i~cd}BVnD$kae$Jx86zW9lXZ%D~x;Iy4$H?>=ow8Wc|(77k-{s&VSV{60k1sS9~&4S6mObfJ>E z4?HQDdrW-lH9>p34E_0_c-vR-JWc0W`=A_i8_UzrfZkVQx1{-q?;^6ubjo5mPk}Tuy{#4`mE`tijS-jJD?`@(# z<3`6As96S$rNl$@<67NPgMszN>zK?uGmS#FK|gauKhxgo30(V`Mxdy^Otp^({AQ;G0I} z&n8FY#Qj)%vsqjCphj>8_dDp{s~zX89_BH&*!X&PGT-Bj|1A40H!5P-d!9k%G=skB z#)v{g*`XX?$EU>_&Azk$4r=Kk#lrMnG0)>XxRs;G&3 zMMJTt{?|3%1MGbhxeu`JFk|JgrfQ?w@|ou+%u!XLlH?~u?bKr9{h*L~4{1~ubDzGc z*~V*_NBt@YUfWnx-<`DiP-9@8Q8CU>>fh}Dm`49)>h(L;#oQqnC-OG+*vvH;uVxbU zt)}f-gEFFT3G3d+9Gi`D*+ZQ0uQT4HmE^0;sLle$I86;|>HiwzY||>qwYnmMPpDxRrYpMqmjBbvX=bs6OYm-Q@huqoc%fM;c5k{zh(S8SDLzIcbQP?ZUf)D<@our^7LPUFW#5`dk^wC zJpA0`b13~B8MgW2+@$9wJ(r*BFw7tGrXM96iIGJ5zef5q?Z!pzY&oybKXZ@H_mgm(GgfEJ`9F3&|6Ti%9eva8Us~hu+n99bqD7{d_pcv5t$TO%>;7%$^!?5$ zT{E^zk2vG$2mX;^);46Bv|Z2U8Rp2i(|U5tDSbeRzBKT*Uef%QzUX!6Cvs2db$P$g zFP=TBpKgCu@9f;K-#`AcE-gN;<-l8d#kqd{_m-qSv-wTE^|KZ|7-`Vv;UhYC;ehTc zzOFAk1XEu%YPgnk2e+r|BeIAze?Fps7)?wiCK8!Mny)EDy1zo=RwAD$BE}Kpi98~k b$R)-SIm86QA#Nci6JrQJF^L#OkQ)34y$@}) literal 0 HcmV?d00001 diff --git a/Aetheria-Economy_WwiseProject/Originals/Plugins/SoundSeed Grain/SFX_spcship_shield_active.wav b/Aetheria-Economy_WwiseProject/Originals/Plugins/SoundSeed Grain/SFX_spcship_shield_active.wav new file mode 100644 index 000000000..a9c011210 --- /dev/null +++ b/Aetheria-Economy_WwiseProject/Originals/Plugins/SoundSeed Grain/SFX_spcship_shield_active.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:34141e3c1e9a43a806d0364b2bdac3d5eff4fe49706d725548b23146b6bd96ad +size 97646 diff --git a/Aetheria-Economy_WwiseProject/Originals/Plugins/SoundSeed Grain/SFX_spcship_shield_active02.akd b/Aetheria-Economy_WwiseProject/Originals/Plugins/SoundSeed Grain/SFX_spcship_shield_active02.akd new file mode 100644 index 0000000000000000000000000000000000000000..26e354c50cfad5ce50997a20738a5af60605f994 GIT binary patch literal 42512 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©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 J>6_$#q-J9ExHd!KtLFNElPN{C|kG{^8C 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 literal 0 HcmV?d00001 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_spcship_shield_down.wav b/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_spcship_shield_down.wav new file mode 100644 index 000000000..546a64739 --- /dev/null +++ b/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_spcship_shield_down.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:682b1b25e437d563bc13af1b6b2553fa6a2589a90d8c0bfa9cd25733a7323a29 +size 232130 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_spcship_shield_up.akd b/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_spcship_shield_up.akd new file mode 100644 index 0000000000000000000000000000000000000000..3a2acedcc3228400f23065ff8ffa22a5f1d92cb8 GIT binary patch literal 2700 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 KB6XI!NdE({ZtyGs literal 0 HcmV?d00001 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_cannon_miss01.wav b/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_cannon_miss01.wav new file mode 100644 index 000000000..faff1311a --- /dev/null +++ b/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_cannon_miss01.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fd3f98d99229a816452c583e9de86ebb75467ffb589de301b1affa3a48ba5c47 +size 162860 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_cannon_miss02.akd b/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_cannon_miss02.akd new file mode 100644 index 0000000000000000000000000000000000000000..67a0f8a423d9ef3b0f53e20cc6ca8eb95b1853a8 GIT binary patch literal 4132 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 W^b@obh$IRk1Oo(31T6*eg8u+BsNz!q literal 0 HcmV?d00001 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_cannon_miss02.wav b/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_cannon_miss02.wav new file mode 100644 index 000000000..1997b19f7 --- /dev/null +++ b/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_cannon_miss02.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:241854b2f08e952a43b37a6b6a5457de091099d485405f95782d46be6bd96d14 +size 162800 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_cannon_miss03.akd b/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_cannon_miss03.akd new file mode 100644 index 0000000000000000000000000000000000000000..d0cab8f7f8c98a3e8518a471eb495a48f1b6c895 GIT binary patch literal 4492 zcmZvg33yD``^R5F5=&}?MC`Xh6Z;@!GIQV4D?(#y$5LXyR0*|=rKFVqX>38r&>*(t z+A3PhG`3{sp5vyplwzW(MkPAc(6LlQOH-x&oq1Zn=lMO)|2)rU&b{xw_iXQb&i9CU7Q3$ksA^6%9f!4eType8DeMO)QaD(qnHz<$X zFzA|_28S?hLMT&qJ=Tpwzw1WkP^N?qV$$;%M(++`v_o5QKbZLva~U0)!IbmsnbVoc z?Ab1+%-+c~+i0e|H;0*vw=>tAJZ6r{WsaadOznQ0(cN5M`+H`DRf%@BWWGoftJNCtJ|Wu^td%Y zHg^>_^?R4co)i6i{D|d`na*Q3&EWKDD;~8glw1CY;M$eu+_C8vGp65WdV@8*^5jYm zOQLw%KA9^|Z!snJ1oO3gF1XJ8!zS_Ad6T)Tcngo3oz2srCa>-q&V94SF(s&lXmb>g zYM96~%ELIl(~zs?*Lm#ZR1P(CrVhHo?jLsXvYLmv#oLNkXT@+@_q49uQ&_TlGoSou z2bUto@T&KR^Xl)L@xtR~p1pbncP*L3Q}@m1<>8q;Cvgq$oH?u z1E%whoH`fqs_Z@dSa23E{VRj#T$#&TEd7xCn^0c$?Fy##+Q8z*e$2;SKf-G@baKdF z!j+24GM(|JUKxL!OEYtL{^t^}YWkGHvs^cLifuU)26Ib!EO$*<%?FK7=i2Qy+#jF9 z?F)Wl>T63Gtvf@9Pm=ZWO~?8ChhK=gH}iw7^0={REvkLCp>I$U!uBB4gfGf+;(6t8 z#zVKB;4L0+=8cn+M8xtXu#87(q-SxO`~-)qd%cq%Wv_YQZeU!r6^hW1u0V}h z(VqJowdDRy|HrEjh!|hg&jXX@dEnAP53HZ!k({#_TDxb@C}3UGj(`$+XH*sd7#9uD;F;?N39D?O}xm=K^K`4vQvj~ z+jL4~Msw>h`XrWVO`0Pqw>-I1`0`RXob;90Cg_*va?>mbvj^OEDI+J!bVo>_CuHNX+)P$`}o!Osh>n+USN0_rk2~$;3 z&g`#Q=-o(e%InC@`C^`&Drf4zJOT2k$U&o%g_aS%+YkZuGsW!zHG}=@Okvr*s3)=ukL7r}kO8QMz7-gCljL&skmZ z?$IIXp$DcA9X3zZL0PMVceidx$8~xjO@}Yu&|#QahgzL=xYtRCAtyab+X7u#xK9Td zAnM!ZF-%ma%U0`PAELu!s>5eHJTUMjothGL`q@yOCbZLOo<*mf=Id~GqYg$h;im*0 z>P*+EIbDaX$34*Ql7|+=>GY0WhxwbWV9ZZ|@;^P4wb0?Ey&l+B=z+0EJuvdV2cAZG z;O1Bl7{dOxu+wTcxCeT`G0_d%nt5QwhaNcN^uQ327q1u3LlfZKXgAm^1RuHKa9t0` zVIJ_h5`fw*P_|I$*SkW$nz}(-S_BXo50bqIGJ3ng-^C4SBKLI`TGt@~V1WfpSBtY5qjx5IvO-4UoBZp z(xxva_mkI?>e5BTZ`38;qBx?i4k7ua%}84ORFWSzlQ@(tboO|F8TERSj9nI@*y4!q zattxPS%~I{|&gNI(9HYQG2Qcv-`$iFs)9*CqD-^@x;Ig=Ih0 zBFS&BAgM)|1h7)yv zBN93$nrQJ)&~zxAxIR3HjwSanW$sd9U%G^pKm3H$f3TI%&gW6duSNwfqm=zER%KI? zvfNJS=y^IE+ajkFrxK~W6DhkEPqeZ|1m<7!fI7*&cT5(U9Jh{0E%%UGHS&nk07=Hx zIHFzLMwZ`SM_ksM=&&8d)PBv0+T#XJ?thx-QwoW8>?PE?Z9ym~wb40#IqlX$qV9f+ zWK7*a(gx%a$NFW29^Ocl)7eOqnxpn`oY2CR`2LbZB=+xv1V{l1z2+u#yBU?ik7Rmr zoDApgdty&DB(d|`lf5fXkn)yCi1+>pa_+f{_=dd1)J>fk3@`CWVH%Te<}>Z}2v)8g zA(mE0N$LBX{FZi-_`iLfsLKhF^!BJ2D`eB9y=V+@Aj~qM7Sj$3vp*;1#iz(`vsMtp z^*&L%-9jl=#7T{x(CPmJy&Eag`a@AM*CvK+BIe0$Na`nTN%cEBNd3oK$+?_Yh_gu) zp|0Mf?8HElzraE)4l{xJb7YwINcQCz2=DGj@0b*l|70R5+&+j%14k0I&m=V7DU#s` zMa@|gA)9$%kl{(`*n>ci_N4k`Phu+RN}xiO!Ft99ipv7^E3Ni+$50xv2kGTw2=z{& z+M+wc+U7{BAIXwl7Zsd>%8v15OA`uT_+zCb36VblK3(!01LsTmUpcXY7rICwJ&G-cE%l}4u zSUplbxf#(+U5I(b9yGBslv=)p_MYod>re~fk{M~eE+{?eh+5?+tlGF5;j1!PZ7QMi zeHYZ8j}~KpO;*;3{&;F2gqskKU9dq=gbX9|WuthfOidGH=$9hXkCw^w(PkOuE|!(5 zO)}*EY@;E)Wq9qdjh+$x-+V}{p)ZLFaEXC65lo7Hg;8p z{8s;`a!f=A-1os7xbOOKG%cKj<33%2uMatcgQq{kt-n=ctB0l7+Ikd6T-$|Xemsd2 zI(~&cn_tEoF%|en$D4T4{4*x6e}=6pg2)zTB9Eaf+2Zd`v{8-7osZ4rgCCQ~tP+I; z>Q9MEB!}CDll8t3GWmHJnb!RQK2(3e5t*MMo!A4_$nN;;n<@yM3F^0Jk2@{!uj0-{#0bRS8_-e^Cg?0^BIqTs3SJgO3xq2m5J$}g0bkV-ga~2;|g;oquN=WVusaC8k5@f3g8bxT4#ej$vi+t1be*E#C^WAfP$z;x*ncSJV zGtWE?0C{f%)K}l!t3K+kX8>IF>Jp|>fDonhFhI3Ze~Y~hMHDC{Tp2p08=FX6$GoE!PeTpG^vP<7G0v!(3Upthsd9&kJWK z)hA0=2~*!p89gms+D{Fa;idg#23nq)WOjIKS=b{?re=?p?#r4CIUOS*Em2x(N6OsN z2{L!gPHBJjGpRinCSBilk}UAPG_77Eqh{@ugD&ou)gR51QB@nHW91Z?ePq1M{yATk zoZBjG@7)lvGRDKDePWDErA&GMLY8z-H%VJkd+A7gAS!M( zmbsgCS@?3Stay|r1K*&$eE-#TMCzea?)&UuJe7lUgw?>*uccO2o1Cz%FWybqK zX?B{V&vRe!w!0bsZoE;u^rB2YS|s)BgJkmQH>IoUfG}T`!kjZiRz8~~lh5W$e{zA0 zlZ|9WPCv;jFB#gRV@#{Sao zj?Og9<%>k1C_}*UD#Pb5Fr5FIDgr$g3%H{RXHsjS-RmT@?e&Cnh)sLVu16-vOtv?Q{yzJH|t& zBCoAj2zy+C2$Z%L<|eVK-t7k5*=lH?Hxsa`n}GJ;8`_p{jX>i_5qS8L;9+eI2;by! zBo+%(X0gzsFB&kXsc=q95x!qCgs-#H;05hOpfw6}RGKg)E*F6&>x5SL$ncHpDm1l* znD;CdT4`rt<|O#yPYmtYB?D3(dikXn4PSDMaF$yHOz3GqQV#n?13Hg3fJS*?_ieB5)<%ODtG?hvJ#eh6 zl~=YgcyxpTTh;#xZENs!X7FB71`M0w1y8J(uSqcAJ~NYt5FD91JPW8 z==>)EwT=VO*Q6K1)=O3xyquZ({)DdZi>S{r&^1(|c6Tw_Idf2{}d)qdxugFq!C|u*nkyaXk+3Ka&Ity_S2NztuaB#62>2& zXL@c^3Vc(Aj$a#*HuGnMb@Q#h@GQnHchIuUgW>5N$iA;JX+>Y6KJ^Bg@3tbh+eD_S zWb(bxh8*!O)Mpf9$lS(ctNI)5z2nJT+=ncYwU{xbIa$(Pp_;*+DL7?1ncf^g{?o%L zx!@&&oo%Tyy$z+$PomU6G=j-GYOB*QuqB54Gy74{GMm!J4OQ(9C%=0nrSovI*Z&L6 zOY4*7h$6o3SxVi3#zrONpP>--d5TSeJj2a>C- zC&h(-O%;U~$kAsWgKn|l~pUa6$&EmsIEAs(=m z9fAIdOzZa&>i1`oDP;yhLN1ke+D{?pn~>hK5(|T|RAIED%9J-qyRwpgX}6Ym_if}q z`6;zNQ9`DTI}s{dps(vOVOh{thIfjmniUCDD=KK@iVB zP~=RH}5^t0&e7^&Y&e^GnxjeIXmD0It~ZXKKWNPALv2;QJf!g{*sP~US?VsZe*6d==PLb$qeFz=d?5n;9rk0e%g5-)-RK;hk5C%387WLZ<^=>-yyq}nM>H`MZUC{Z}IOOL} zGhg*%qz_IU<5jkEJW>bG4r+VkLGX3qCR^y2Ck1)^<^U8*a%^G z6b5eOBiDB$^jm3#R-3F``;2KPzhk~06VUmt4f)M8Ogmi8pzk)uGxHfAF_H06!xpo`iQ7q$$y%{{8!uYP) z3>ImO-&@SM$HMrDOy;|PjQQrBV!q$Jj9+&%_|U|l+ifeqqA@6I$3S18>d0ikBNCuf zV=H_(pJ}$`49=ah0{&`+@sF%9)m9s@gwy zCjsnL3Gil~6(GwB3*Waw!ctYfSmj?$fNx&4LQSd__``UxER9#Eu@Zo-1JqFro}6Qz z#N|)o=qGXKlX$Ey9;u5fp6t_gWuNR9Pu9h{b)jzkt9uXY-rFbhziyt?jmMMzs5}0p zD~*)8vtiwJeqbv)cBUCE@s7s&|Ced>JBOC>U*qpX!m)mz|L4B4|K$DGeX49-@&C$G zzb~ss`(L$Df=Y*`b&1zG7e z8$|vx3w>3VNOkSD+c=EM#}23a(*{v$=`*xx#YH??eH5p;o0Bsmlp0Rkic5+kG39(0 zjE#uL*lre#So|u!_C^ZcC^Mn=uSU4DWqX|FYKQmVy2nngva_0j$i}RAnZ0&ChW%k~ z%f7uHw6@&fv_5AWXPxzF6KmbG)?I4Ap`{Y3bXB617Rqx+wUFMn3Vswp&W>M#IRu_6>3mu0f$2tyeB03#h@gx3`g_?G7?#t)|D;6;!h$gIoi~ zQ~t{Sl$F_+%quAr_H7EOL&Hg17)t8VPf>re2ravUDBl)FVNG(V`siZPf;lODUnghJ zmgM-%mz+y;$l*7eE-m<&ycHjl`gJl{K1m?<{d6)1O(BOgowPBTlph>Lw%bvp#9l*h z#%;8{C6W6~2V(2HlUE>Zog}CC*3xfjL#TZziC9417pdz^?0%twkFH~+q=zCPtBFS+unySAVPWjWvP)$@%S|G;3T2g_Q$(305 zw-My*G@jUBL#RBW9o3n^#J0Dm@>eUVeC`^mDt(3S*v3@lT0-5|Xk>Y3DtVJ+Vxwg6(2$WU}Sh z$SD0CE#2zS{^bi1n}4D1_!gxRchGs%LWN_3NKYJv9wha5&}NHH1- zr_h31(G|Q0&5(JhHd-qDK7!VmV`zQ-3Mxg_=$%l6`h>&CCZ(gfB^{M-1>XNdfpflAPu zXvEGy%{LpRTRF&bCDc68s9g*~CbvWTf@SFXaXD(Ki%<_)iiYoCWV0ur_9_wepW{)p zbVvPW3bME2QU9_#n)ZIEeGjO1%0RYg2D0N(!q+HNR@Hg*XFjOMXN%mNiR^4gRDSFz zWO||UgAFBrVRvw6)HnE`*}O5Dk%LgVJQOuH3E6VtZ~I8p?na@OJRkKvv(U)SLTQI8 z?DatDZURd4V$p~cdfu}mJCKH~R~(vig|C-hL#1O+)Gvy6_Y+Z>o`Y)C`zWPFqaK@# zYDy}y`yxK~h6&kGsNR1Inb4~|7=&iJ@HIXK)pwH7JkcMOmIIN!j6fwl5}C6FD#5;} zhPFX|sYvm$5cx87nwd#vXrF#yq8E ztlgn9wkWTR`MJs%C6qCDQW?|!ev-Y!lg#qrNme!OB-6*AVCLczjIAqWY*Xp~t^rDT zDyt1ib?n>)EJZMHD7UZ8;5E+&a`s>}SI1^@>*`6|8EE6moDsbEHJ$4@J9!VEWBl6g zBYYiw&T}$1b4$NeUbUnzcb126-v$0WYvye3jhe<;&!xQl&>C(VKAUTMKIE;6R`SA) z%X!iAPkHx`HgZR^&7cQ<2r&c4bH|d=TzlCAjKEP~c7K;^^XG75)o-ATsD*9m1w1Tp zJ7@7Zyk^5J-l}p9FHBy=U1>jp7E=WlzvjH~S}R`laVW2T*@+jfN#*WB8#jmL@aho` zJ|TZSpZ4f4+;`p-o;5X-d;heY_o!UPm7@p2Jh&6Q-%aA)piG{=XCiky$8pQgyMa~c zP**#ed$*-?B{7$$&tA-Jr4M|#cS&PzzubZ==Qn{RJRiKZdA#Y`_1yB@%AJ#w zxiRL>gic@Hc<{sigs`|$Ei;I=kPdDrY^+;ZwXDAvnhbhL5lQYu$=W^&1r z!(BTKkl;MHvwCsYP2kQNiCepLYpQc`K>P8{qIL0jeZJhNC0=u7JapdxHKEUmFOniH`|Xhudv_t8f4vT%Y9de za((7Ka2$ICEFp$xT^F(acMaI*K83W_3a@T5kSi8p^Vde)nsp0Y-`oYa#{{$JKG>(% zf->))z?PSQ+5QYzf_8wue>Z5Azk!-9+E?5L%eK22^ApTPK70 zOb6@4-JqUX2j;RoFyCkgQbr``1v#KM$pqFr3DhG!Kq?pw#*J(+o{D+dIvsW<)1oalJt4&PARlgOT48)J-$Mh@A`O-}-=Z zPT2b)0QA~$(7blg+N6PbArCCJO`zRR1T(r9sEa0pzGXU??@s~K=N;i^4Cq_}ePSf2 zBdkL2AW#~O11Ts2)bkTSde98CD{VxdCV}+DRAA?Zf-&+m6?1E_De1w#)6 zR_PB)a#PS+y^@t14`ufDV_94INH!L}lJz)0P@DM!D>h}V$q%y8xkxrf70QaeT-LT$ z%1Wa=S#z(GS)Nm7ziBc{iwG-i#gYEsg@LVV~cyuWZ=IHSCKT*87Ha zvRf>7<&-&v=mcU0)e-^1P!RHUa*9jF+dUY5y{{O~JmiJ*p z3m1%^W`V|u|K+>W|JU{(-wD}z@&9NO&qcy$TuBGsL)2&9x(Q!Y1n~OjDQy{FfzP3F z+!N?C;~ZS=@+Cx1y$s!^mqS$bY1rHjVd0%($dh-$#iUZGTxr0`x%*(*;=|Cn(|%a7 z)(u@po`fN%-B9#~3+7$P1^>V2!b>#^c9&(s-8&PZ?rLAiFNlDpHU98JTmU?4|3c2v z&dQ@sdF12k56A~{56i{h9hBF7zg^zbe~Vmx^D{a1++KN0*iL!ZgI#i9+;+L9_gXnS zc$WM!t&e1&ptGR6poyS9?)5Pb7x)V5 z$If36DCj6?E(j7>1kr*RL6Sfcv=zh)Vg(_B)`9>*n4pcIlORISP7o=G5;PUG5cmn| chp(lez2HxRu7cMD9Rytj-2_%aoFGB)KWc6&D*ylh literal 0 HcmV?d00001 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_ioncannon_fire01.wav b/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_ioncannon_fire01.wav new file mode 100644 index 000000000..87b9936de --- /dev/null +++ b/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_ioncannon_fire01.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1eac1b9735a800317ab65b19fed7f08b8dbaa697b02c0e37dbda7252280224e9 +size 147074 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_ioncannon_fire02.akd b/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_ioncannon_fire02.akd new file mode 100644 index 0000000000000000000000000000000000000000..1f45ceb61ad0a6974243d147b46a20a067b2c8af GIT binary patch literal 3756 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 IAa#)b8!m4_00000 literal 0 HcmV?d00001 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_ioncannon_fire02.wav b/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_ioncannon_fire02.wav new file mode 100644 index 000000000..02eaddd44 --- /dev/null +++ b/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_ioncannon_fire02.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1e1ba7035307836920cd2d346784627e3e7f6495206ca71d0b0327973b54114a +size 147074 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_ioncannon_fire03.akd b/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_ioncannon_fire03.akd new file mode 100644 index 0000000000000000000000000000000000000000..ff14d9af8978bcfe92a7d43cad8a0a8b2afa4df6 GIT binary patch literal 3756 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 literal 0 HcmV?d00001 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_ioncannon_fire04.wav b/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_ioncannon_fire04.wav new file mode 100644 index 000000000..08e98fbac --- /dev/null +++ b/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_ioncannon_fire04.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:430ee50d7195a88bdbdb21ddf7f46a3574bccddd9db51b3f88fe44e4883e6b89 +size 147074 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_ioncannon_hit01.akd b/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_ioncannon_hit01.akd new file mode 100644 index 0000000000000000000000000000000000000000..f174ff2df6e09448144cdcc33ef960279a08904f GIT binary patch literal 3156 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 WNMa?eB{7m{Ng#%Cl6Xlk$-e>jB^fOM literal 0 HcmV?d00001 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_ioncannon_hit01.wav b/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_ioncannon_hit01.wav new file mode 100644 index 000000000..c7140fa73 --- /dev/null +++ b/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_ioncannon_hit01.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8f6c813556d6bf13644f043f880e36d8316dba0692147d65d52458d31615459d +size 122702 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_ioncannon_hit02.akd b/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_ioncannon_hit02.akd new file mode 100644 index 0000000000000000000000000000000000000000..4f5348a968b27ad63fbfbf51242529dca640cbce GIT binary patch literal 3156 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 H=Y9SQ#3L8F literal 0 HcmV?d00001 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_ioncannon_hit04.wav b/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_ioncannon_hit04.wav new file mode 100644 index 000000000..c74db0163 --- /dev/null +++ b/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_ioncannon_hit04.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b96e261c6996fb2d98a3bd40e9fe7aad497ca55e6c995e171f906917a413bdee +size 122702 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_ioncannon_miss01.akd b/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_ioncannon_miss01.akd new file mode 100644 index 0000000000000000000000000000000000000000..9a468fad3e0d65001b232180a7566f16c64752f4 GIT binary patch literal 1804 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 literal 0 HcmV?d00001 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_ioncannon_miss02.wav b/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_ioncannon_miss02.wav new file mode 100644 index 000000000..0833fb4e0 --- /dev/null +++ b/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_ioncannon_miss02.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:baaa58113eb1c10fe59f08e6850640be583ac2128897666f4723cf700c59f487 +size 66770 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_ioncannon_miss03.akd b/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_ioncannon_miss03.akd new file mode 100644 index 0000000000000000000000000000000000000000..29a67fe3dbaae4ea8af02e9411cf965b7d2d7a9a GIT binary patch literal 1804 zcmY+^dr%eE836E40vIWeD@HM<<80*N6|COKV30lEvT4Y~5UICDBWWhd;uWjyq`^qh zL`;vVjxU0@#zw1zS*a5dOLMD;;62}FjnvZA$5khZV9<^6Rg8MYS2RF-u8x0rW`29l zp53$O?6-TqcmSB61rQ}`9+U@J0xf*!G`<{^BwL-^2)TT?*>%TA^RsCU~MEcx{T%KdBY=kxs##3xeOiDPa8$ z!QJbGeY#%oiep00Um@&;Rl*pFWPdh-;AbAP4~!;0_X(kY_>F*Tn+3n-74W-h1lMMf z-ME&Fv%eIX(`+G>Ax{N%NHxum25=yFz z!rCD+mn|W?$E12USkAa#5Tq5b;_xslH1$Wy?JBV9)5lnl6-C@`Eh8;N%8rGkG`>!O zE!!y^X4a#jF&1BtPZtLyTkgy#%Qf~3@;3L9XLF(Dxp|3JUY=pucit!C#3SU{nPhph z$65Z|lhl47!&0m(LBoE!|L>YP0R9}X z&0Ns8fDC*^jK4dL@tczv|NU6TPi8SVoW}T#0tO$y%($?uXm@zfxs`NZ!f8BwQc^h3nbfbBo63aTzVfg!FsBhno z3Pfwpwkv2)n2bi;6b!ZYW5|00?YP03epb<-`Az2eE5~|woEDBr)Re6~IQ;Ast*qk= zhO{<>-mj6r_Lyd*gI0X_B@OIC477cPN^37VOK+ivEydyLNX?un-)UVNhV$A`FRekC zmyi7UCRFqW46JX$SebVpR=QbK44K#-S2zozJ2%m9=cDCjSPRNPo5u?c2#f1 z;j;dA!ojD1TV0X2{(Q1}eDrFyx%R3W`f@yLn6;Sk3ynyCS;+7oE$wH;0@CQlz0$w3I9* oNsmcCkp@dHX^0dr#YqWLqBKm3#P3n*L5v=e?MU1PN`s{T14}RI{{R30 literal 0 HcmV?d00001 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_ioncannon_miss03.wav b/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_ioncannon_miss03.wav new file mode 100644 index 000000000..f9417f2e3 --- /dev/null +++ b/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_ioncannon_miss03.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d5fd27b2fd257c468411dd25a36984a5f504a1e8f321b052328412c7a94d97a4 +size 66770 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_ioncannon_miss04.akd b/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_ioncannon_miss04.akd new file mode 100644 index 0000000000000000000000000000000000000000..1e1800ca79694515c003c396b8efb71b1001b96e GIT binary patch literal 1804 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 k+b{*ZYAH>7~wEzGB literal 0 HcmV?d00001 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_ioncannon_ship_overcharge_fail.wav b/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_ioncannon_ship_overcharge_fail.wav new file mode 100644 index 000000000..a25265ca9 --- /dev/null +++ b/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_ioncannon_ship_overcharge_fail.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d1e663958ce892853f413eb7c0a680b42791413292086c6ab350584ceed51a3f +size 45722 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_lightingGun_charge_fail.akd b/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_lightingGun_charge_fail.akd new file mode 100644 index 0000000000000000000000000000000000000000..392e45345adb5687f0c40bf0e8a1860087e6a46b GIT binary patch literal 3316 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 literal 0 HcmV?d00001 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_lightingGun_charge_fail.wav b/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_lightingGun_charge_fail.wav new file mode 100644 index 000000000..42d332e59 --- /dev/null +++ b/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_lightingGun_charge_fail.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2992712b768d49277246dcd718a26f9971391122459a8b072e37171e9b37ca9e +size 129032 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_machinegun_fire01.akd b/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_machinegun_fire01.akd new file mode 100644 index 0000000000000000000000000000000000000000..098b2a124be191ceaf81107348dc599683284a8c GIT binary patch literal 948 zcmZva4`@|&6vt1`bbHUqZe#ggVXwQTY@oL3$|n1r-@P;U$ZWFK2$!2ZnMC1SvK+V! z`6UYk*Z#y{izF_B%I2a;i?(}z_jiBltY@NFtnyFTn=6;JYMU!GS?hO61EB+--{E{Y z=kPm+lLi2}nE(OhnWG+MQU&G8C!Z)5ELbeczWzomYaAB!zvp>h-dN_znHgbjpB0j? z5fhJ>h=qYg-e1#U@3}vhc=nUoUfTLuF%kP)X!%oUT|9&GW=u@HoiA!HM?5IW^y00f zg6|#?&kU7{)aZJVxSc23K3Ohg`B}o=+C|{k-N=4=4Oz{04l#{e^V3D)4=JLoJ}9iV zfM6r0YaLnbwjDZ(=O+(f+3_=|YbOy-%#iqJVT1+OxjghS*DJ%WKD)?eKVIdKb&JPy zR-v9@U~+jC%9T%}^?o{nmxl1ii-c9Q5_mVpp*fGkBj+60GUk}M5f`c+cHzBIZhn#E z`q(@-ITmzf<4w*oZgX=c>ayvut3A~0O5E@Eo!{&B74LPS_ZJ(cRy(lk0UHv>Y=4)j zI~+Q^!KP$`X7o&^8|=y&)OW7Kw7wB)?YTswD+`Re(iO(W8kW4QZk? zgLaK*)GR4LDM}F{IYlsZu1I!mMk}-pVeUaJiyg%Lp3}Ia>J+l_Pm!HIit+DWK?rO` z_QFDpU)7Pl9!0Y<3uSB{f!QWv4dkM1$U&LePgrj^fp#R!c#1$>jRTij92VZp8L#G0 z|DXd?FFBB0JP70MHt4N`ka*UGa z>>Jq_xFdGhhq3xf7cP!mBY_qFlXv`I?VdbU>zCi7sd%emTgzcOUwLckM*7=u3-#lr z{f%^};}$-)WE_h&4WRMi^B5Uki^W-;q;B9N;^+GoQuwp@y;Br(6#oB%3V)td#XQA7 DbpmW@ literal 0 HcmV?d00001 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_machinegun_fire01.wav b/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_machinegun_fire01.wav new file mode 100644 index 000000000..532256e15 --- /dev/null +++ b/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_machinegun_fire01.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1641c27c711465ba252e86609866ee11f765ac788e0360133fbab11b3410be99 +size 31004 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_machinegun_fire02.akd b/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_machinegun_fire02.akd new file mode 100644 index 0000000000000000000000000000000000000000..a06b9ff6aa4804eabc444127c42ae46045448c26 GIT binary patch literal 948 zcmZvaYe*DP6vuDwW^0)kSXow1+k-WNo`lxUok`aRl4WIO7BryM_R>XrEQvH(24$}g zQI-~4)FNfM1(w>JGaC`vYOy`YH8Qss*#ny_%b=n=lplf){O;lW?>U!y&b{G;kklwb zLYSAYvxS+L1&f$pX{g7;`Stk2{S7^py%>n#Ro@}2`k*9E?Jk|D+MUzT{yhm_J+8y( z#r3$=m#EI%Ca4y}Y&G2zuX2Gf)DlNv=U9rKfEBA!BUDRrnEG|YWcBR0NowYLH&#^E zpw!-g&ca5F_hq1c+%j~8UxDDyTCjJS(c~C~CWC|R=VJ@!LfgG6jJ619inO72|0ZZ# zT7cU)45StdIHWFcb-#qpFcGs060q~)3e-;Ipz~=Ok^||OePJ*L9t}e8XCG)C&EOgU z5WIC8xVvvbEP4*y<6iKWbb}-P2WV%$!_=~8;Ig%YJhU0KhC4u3RfE=Z9;QC31g-cK zXl=(J^JE1`SIWU(Tn^si1K{c153+F$a24x7&dpcI@DfFzrMx-HD({c7o(*lIese2r z+A)_}@=_?NanL}DgW5)p7bdpG3N6*8)E~2pHl4~v&)NlOTX~FZ<}c`DN5Py_9mb zbv##dm3JLX26@XI2o!{3e3B8#(@TxyNx^lJl*5xA8y_^Acv9D6l?!((Vyav53*C@; z|1~rv%|QF|DHwDTOe^Y#QtMjq?#%-+Ck~`HGeC^-D_n;W$dq@Ax9y`6dHOg6KOY7$ zs|H-gOW=v!1Cixrz!i@M*QQaxMe`tub3m$C4_rb%kXZ{s{*(dYgcOjjF)oVW+Ls9A z{USwPx>_OJvIN3u4MsN0zJJ#DKDyR7zrMVFOtUlkGxWc$TWw_s%}Q(M7iPurA%DfL z>_+}QoaC1}KUzbk{U`6nAMKw!R;!o)qp>)T5#Q{lgP7OO71AX;k5WCpS1VJuV=_&* v8EJBkfkya#@yW55`6IUTe7JcvujlJFkfEQe_oLri?_mJL#0X;;7@>^cEQyih literal 0 HcmV?d00001 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_machinegun_fire02.wav b/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_machinegun_fire02.wav new file mode 100644 index 000000000..20d7bf2a8 --- /dev/null +++ b/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_machinegun_fire02.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:37406cceb9d4933091386a18d6d220e3c9864b4898d6c2a4f384d06567ad3443 +size 31190 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_machinegun_fire03.akd b/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_machinegun_fire03.akd new file mode 100644 index 0000000000000000000000000000000000000000..ba9a296a2401483f42877df916e17d21c8964e75 GIT binary patch literal 948 zcmZvae{57m5XXo1><_Wn>e-h5L0=WH6iN=glydCMy+16eQpklGp@QjCN+9Hj^$&q! zBg-XKf!%W&U`sfna7K$Jwdu801A=&(SQ}5H`=b4W#7RCo zneWa_c4zk?09fh-$dI1LHfXDUHA=D0apk_QJw2g{ThNpz@gWG~{ zons_s<|s#{Z^mJwETm!)v_7@iZOTkf!p_iLAVO+TGnmN%IBTRC0lq9PA~%_hWM0yFkfL z3`(>QkgvLpoUgt`)s1-+9?hd5?Lct0pxQbgliyV0?vc3^zFtI$n&lK(sV5eoRn8FZjzpojzytS+P}}Q7ULV5dJt5@T*HD`?gs!*4n7Vlu`Ic8u zb!Qy>kWZGOwQ@hR{%m7fU=b>BE=KO`XMF!z##_7$+)vAQpY*_8)59y9 zba=N>hbxC;P!Ntma{d6^>WD&q`v7csHtLYGocU)nbGNmb`ONg6WowcLB=+C7ZMfkU zeqB9`E9&N9#((0dy9>82?!;Zcjj@bn|C4v=U+um;S!>Jw=SuAR J3%EtnC@8r!ZGZ&S*=YYD@g<*m zdEb2BWaiC0LI~-6f)Izuyk9ILOi`4G>>l@EO3uJ-i~I3Au3_=&CAvFviN37IqYw7Z z(Mjqen9@zS*K!*_EKFm^c%DwqF4xU881;jQ4>*-Ussfli)ou0KuWFpj^2Ga?@Q<4oyMm%x#dLn+AT@f?$ya)`fH6mCgfk z90B=$7nonRK`?g@_*Z-a#&8UL3!5Qb)&%~aT0k9*f%lKU&$>8TkQ(yg>Q4`GLx8f55-^9p;~1$IRnM)!`&nx+Bbeu!5C3TiAx8 z7_)NDQ|0O)m5nTxyzwX_=6-6vvX7F#>cA?g1gpIhtkPY;-&-M(u9GkFy$*@QhhI=X zeVVF{EK08B0_TqdIWYlbVib(lm1ted#o&RTLAgEx)}>kqzg`QZeoXUqIDtog(2U50 z77U%%$Qx%h{$>mkgN>j}M?ro*3hD26gRg!!@Ma%`tFs~8P!H;z9T1*;8?53g2tN}7 zqwQ7kj%&dfSqr4P0Qh7faHpmjnP)WqZnnfzUWq7^eT09Jbc&hI{JWX=vbCA{%=jO& zHNk9w{nza%bQ0FtnW7uFETxYB#7#yob$rx8uefeVj#dBTJN>WrfKT+=?GI?8-Ykgj zIKVPQt~R%_HR;coUGJ;h&UQ^LV_8rAP3KM%Hg@km9qlL?k z_x3lxw>$gx{c!-$9srVL%?x?5>yf~FcH{jn1KrY+A8;n2I7!%)Y557gHCu#DA6cJJ z`N(U+=HIkSR7$?tZzuFM6_~bc%WFEN=HP<~DSsv8W1Da`ZWg{y zQ~3XEi9q0ni2dwy(KR~7RC-}57o9@6KUc&Klnecb5X#l>3HEN9V7rQi)#(;~ z-MGm^V@3*g?=`M3{TH`#dN>BJayE7^w=Oks%$dcJO*nS^ zoLj+aZhd^5vnQjR`C2*t)WYHZDaRp=>-PpZcpYb7F6a34Cmb&>sOShbF$at%lPV*@XIWFT4}fpb#?6{iiRD(3s?Ud86i*oLW*s{}hK7ldLs98j@o1gA_Lo zQZ}(7L2>BRrY|~8Y;5n`+eTCo*p&SSCQ45P48*q^?E0M?C%!f^50w>Vw>(-j#px(= zPIVNO7R}O{Q%kh2&r?nRdWVTVkAa@uYV*MdGtG%{aTQ#{_E4@~wVZsKjaet|1 zT`kd849n2^K1fb*~^}J?^ulh;os~l?OH4v8GLPF_v)PF2Ul^qXJJnp7eN}S-- zaLVd_LG;Ew#2*J`%l<=HPX%GO3JL4`Bhj~Z5v4AT`mGF#+D{0}J4aaEvxMEVj<7%# z(O=$9*u04ZAKp#ajuL{Y>xlmPc4GbZC4$r&Dn`at);EbN2c}W*emMto3~OmU(JNaB z)U^cTR}maNuVUC%mAyjmuT8b#3E zq2kI%Dwf?rSiOw7o|bE5w+FQ&R76r#3?7Xj8j0YYeieBaRD7tam@{96{*a0zUKI~s z_oAZ13*QkBdPjR=?=*$rAt{-wlr26Cw&79vk>0^ literal 0 HcmV?d00001 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_machinegun_hit.wav b/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_machinegun_hit.wav new file mode 100644 index 000000000..b708d8e8d --- /dev/null +++ b/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_machinegun_hit.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b67a0b442784f5340f8eb22f2354763e53cd38c203b255b506b40597a353650f +size 75680 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_machinegun_hit02.akd b/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_machinegun_hit02.akd new file mode 100644 index 0000000000000000000000000000000000000000..0a7e5be56f59c0580b3228c0a2b14d66ffc010ed GIT binary patch literal 2036 zcmZYAe^6A%9RToej)b2VIFY~!q`eANOp0Oyy?Ni+A9esBlL2h1Wrq5(+DL#8tYBWGVPP|0=N7#)NifAcvn-6RzAP;4-lcD? z|A}CV<65HtC1>-#u-2N!-8k~g~hROYZ%-6 zqVOy1!AU|_Xhx7T#aw zN1q5yI4(BcjFZt2FXx|2l;)0P*_xOn2PdYB8R-C(LQ-g6Os;)^YQks_(RqIZd1_*ddQ#f4RcxO9N^SJjvnji#WVz6MB1uVBd6d`pJ8oO~9Nr ztl%MMgwR_+u)E7REPsL1%w62v{T2u2H=v}!fMY-AFl#Ia=W5RGE$7VtIA_IqYPlQXH4A?6;tSt|NLfaz3%-9wbHgzpB6=3glTiB`?4)~q{k@1}U z!^WHMKT|N}`_l^co*7fnw!&F3HMxP*FWf*_aIIh&6#`mL8gQr9tCwLiSU||$EgQ+k z=?x_F=r&?++)m6Ja|s(=LfE`#$RI5w{yj0|{E|50fBG`+>ah{u!~{Zv38cz9jP)gV zv9t40;$E0VoU?#*<=6BvMImWJ6yqJzXj%bi0(|HM*Pu)fS_Y1MV#E04Q z`B;zgV46{jn79t~b@)ZoH+4S2Q&r>1I~1NZVv>Hc)%R1?k9PG zMyhy7tqbM>cuiU32KI(pBVXhL{7r#e05dmQ1ta_H$i6nRkBqD*D`#ZBjm)2sI*p9` zfXZ2{Jfv7>lXYc$G=M#MeK<0DJhuI>v$%2_ZhdnLo-p+*WK-wZ|K%O~w(mQ6>Rs#g z@ARqrFO=jRmtqb2CCSrO<;$#rc;%I~!gKfUe! zP5(;o@Z;s4J09+~{?EEnl~~29kM-RVN|Z86c~E&+vFf6ZXNXf0loTaKu`BV4^<54n RNg1sqD#^+icGo-06w_BL>Bd-KG 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 literal 0 HcmV?d00001 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_machinegun_hit04.wav b/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_machinegun_hit04.wav new file mode 100644 index 000000000..ea3bc2585 --- /dev/null +++ b/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_machinegun_hit04.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9c86090838d195c5b723656d7a20136608e43de0048544e6340d7c0be881c210 +size 75680 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_machinegun_miss01.akd b/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_machinegun_miss01.akd new file mode 100644 index 0000000000000000000000000000000000000000..485e1ebb88d5baa4acba935a62c0c41e1d5c95a6 GIT binary patch literal 1316 zcmb8ve`u9e7zgmP>Dn^euBk9v+8awK1G`I6@7;M`UeGy>VmB<>g!CFVl~iU#NunOv z%`W7o<_|C>FHPn4OKzraZtrsq5;h0W=SU62PV7^jJWU9`e0a+;;p zgdhXgmsVNzHFJU(46b_CQfFnb7SboGf($Glzr<>KX=A`{CR?nPi&_E}Zrp2$`BQ@s z^lfVlvJfl#MSI{JiCd}m$=ZOpd&6hu`AW^ipG$n}^ToaZ{{FTHt9En=_U7s?u@pj2 z=82gd!cs@kMG*gs?R9O96ri5@*)lKOmWqYL#JqyJpR1*)BQ{@v%Qr48nJZ zEbr|Km!)SETV|f?vg|(%mean*Er;0tUSejjpE8i`UPjKzWu#u|mIl<3NyMBY$5It% zqz7hPLW=Pa36TTl@F>gMeM4HMP2@ptXcuMS{H<0p5IfOFamdXcATeivI!;Y-GZ5Z9 z%ZeXwblKpmdC9*&beXyEmfHhQOm4OQs@&oZLP^hFOTPPs%bf20mY1v{rfxm$CPDmA zN7>VLl!+wCF!c##z+6TRR}#|Os-*%k?o3|cfod@VnzMPiZ>q%~(04p)sb3?42{k=W zApUpwwZ-uM9^R*%8}7?+Jq5@uha%v!fk(7rB1QY7R67vJ!u!b`Q?E+-+(`PV_#;_Z z^)K_j&*vVPhqb)?fgJ94!ntNcV-WAOPLS0@8QC)>LYH)ccAtHNieGM%Z5vn14Gm-H z_e2vNb@vd@k3DvfzN#srP`XYYs(-3_{`!-%-hWX|<;%%F%8B1Cpw6HUbbR8$ZIE%^F$A5JxO zsICqZ(X=0lLWsH<7mQ#a(H6dWQ`b!Y!}VxJLy+poXt2x6JqL90ZX>evh-X7&b)V6_ zIPA0f8zX!dM!lY3FdEod!TV8koqz75td#YV-=HqT}|uNc|i7J0O6k>|WyVNm-- zj|Jy@Gt7>+81BQV9@Cp9c`i5yT8zY)dmc;m^csmBll>&vu>nR-wenfQl72NL8}baN zpwzF1#39G9Zv5=$L)X8%jQk@DeT)5Z!00{`_33QXcU6s%h_-qT*gaRg2xR+~c=UdW z=hoyH`uUTL4fHf^=+d$bvD}i39$Av1XQ!Hti+h`i{rBo`>H>StUt|FVe`2?QzKhw* z)VUa4J{PlleZjQcZv@viB+T;{>tB+wUOh=wq_8;ITM%dXT(Z@Vf{Vex>f8{@fRJn9I|@$l-ZEwA7^KD8%lP(W2+D zC*G!&6rEab?pPt$op~f)KJOF@mR8E0iKCKh2e+S)-BV`B@~VxZb^Mmt(E8B44YjpV heg}_S7zRTCza1?-7s#BY}JV0fqvv?*lV1%X9z$ literal 0 HcmV?d00001 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_machinegun_miss02.wav b/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_machinegun_miss02.wav new file mode 100644 index 000000000..f02a4e2be --- /dev/null +++ b/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_machinegun_miss02.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a9f0213d1b027909758a72cab044e8c1fe613666190e073d2fb8c13b8b23eb07 +size 43298 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_machinegun_miss03.akd b/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_machinegun_miss03.akd new file mode 100644 index 0000000000000000000000000000000000000000..09204dd323d2e9169bea2a62da7e197d093c713d GIT binary patch literal 1220 zcmbW%Ur1A76aer~ZMJmUR$5jnOG+w4W{H~K@3J%tLTHfIBDD)jSxBrN%0k99Eoagk zlw>{B`ac43QAljNx9i04L1>2L@?YvhX#_3m!7!?GzU70_OMURW=ib9P@EyK;uZ9rf zSw~1DM9~WuSneo7EO_JZ^pc)Vuc#~XA>*epA3^N~2?^Fqk_nK68%K`{(Fv@elG5kS7M*BTRnW&eL&{Y~Xa#Rw5P<56u z4Z9=(D5_D$5)mcW0e9^W3AxgfWE8lmk^4d5XD$;_^|DPx{GC8N;8czFgm-n2?i)LSkofV@hSCI=HG<9wHo0OeROBPKe0 zh=8X#y?|c7}-)lkm@9dlzAH?#8HaK?LtP` zY^R8f+8D)epvYbMoarA*=L0}Ho5h&i$vhIQNBA1xqtE){{N*!+jq4V98GY@q@$nu8n?(_%RSM0+bkCUhLLe{BIV1H-rNjPY(BA&6xEk0sFb=lh7cg*g}I zi-24WPyzgwaa}J`4xXF9 z7;)3(5M2Qc*Y?iCZOx-pHz3lB?T2W`OBKD^X{2dYEfniA`tH+_vfZ@ou$$9WP8ZyI ndpW=Db>lYd#}yCM0DeDg4h_UuungeLIAb)30dWBLv=saT0=&M# literal 0 HcmV?d00001 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_machinegun_miss03.wav b/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_machinegun_miss03.wav new file mode 100644 index 000000000..d50cbc766 --- /dev/null +++ b/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_machinegun_miss03.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:eff74cdc3a916bbd5b0408aebd352fa2a4b2ece97da50415e2dc07c9bdd68e2d +size 42632 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_machinegun_miss04.akd b/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_machinegun_miss04.akd new file mode 100644 index 0000000000000000000000000000000000000000..19f9667c22cf13069916850192026c3d9d5f7173 GIT binary patch literal 1188 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�R7AkI|7SKu^b0j1=-%a zfeE&vTuUu_gLt1i9PzltqQ_?~n!nbv_rPA43t(P;wwH~^+;6cQgcyC;hvjP6;dwiY z>ceMQqoFZPSZ2mLVL@@keP!^s3sdU{7IjMn-Fh8P&9L6*LPO#)`_-{Za zmKiaYQP5UzBGaDPs7XFD6<&gv+nONr{fz!$o1~5`6~pG?$YW)Y3tdcuq3gfq#2wSZ zESp1jlCE3SY^EjmbOUGb_aw}7cnicV`pAbljr!FxUikd-t8nvSKRARq|NFK@WA-?5 z@Mt!%O!+PKs`bf;pvK4F@e+cs*$?_9?>O#!SN&#*m);;h;2->}h zIgEj39P1iR^)a5tu(t;>^!^8y$ulsWxNF&4VBa^{ESax3p1){>NLZWjS4ZD zso+}};(mffhu>S&9-0(=(vnwTYiI!FZehu1`2Dkmy7LD1ZogXc#$YxbFs}65EZQ{1 zlEZ6ajhoq`FYCi)s&*`w;C0Wks5jhLXGdE!>!~FhG-oOaF7HN-vfx8FonHZ7!cN;t zLC;fzhnU~R?64;^;o&Hzm_-)7y9uBF&c*}n-B1^`gJANk3a6^M;CEZur;qR8-`y6iLOwbNzrI>weP25^PR6wBkwwkpEm;H46-XE%L8}{SdeRLLZargj0HG%go&9KgOc-2Q1Qw7G>5H)oBvez{L?m*V7`$ zp9ELY$Fk*?9E*8*n_6_~AmY8RCHErV+=I_DXJx94xn<1)J7b)=5vQT>?-JOzSVfCo zKeS|N@a1l8i;kiWDFW_KYs8ecF8T|zsO9e#xp!F934HFA5}G{AlA94vJ*vWI#SlYv zEb4)=%?G!Cm}=1kaQ$m4=x7#}cj_U(ov>)#J4-HrUoU*L=yI?n=b>+PEnMCPH?L1d zUWZ;cl=yr$rsi(s!7W&;V%$mSGhznjH`1ag#K-`|;wH?qD7fwa)sh9%qrOGH{B{Sn zT8+Qsbt%{*qLU>@K*tIpr+)2j(J64_YgUWmUO}hue9#XTRf85icxX{~*uMzs=T9A= zozu_{{Mdh)MZ0EM^ha}x=3EJ+vg7Kp9c0l z1N)DG{m8&RT3{dVzx}KK_FV$|1%dsBz&bs!AMoEgIk4UetP=z4m%zFsP@f0t@<3f2 zs8<7ZV4#i*)IEVZBao-R*8|9hfjkw+GlBdO(B1Dk8;J9Ojvzh)arNE*;72m}trw6I z2z)m$@UPCmMdJR9fnq_w865O~-`v->i--=ZAl#Q4a!`f;&vX0#_ul{W96lTP`2X`B zUJpTME1ae7`}looP<9R-634Bd)(}M&#fU2-+KD-B=W$5xO`>GNNO$15%OAVAGv|LG z7Bv4P_5rPn#fbuw&Wjc0&WX%vmWv(J7K+Ca3&o^GyF}-63q{%GtHgpu`^3RvMl@}| zRn*_UQFK@`P4qprN0f<96n8r<63tr<74Dy6#KLrI#EiXb#qf9g#Iy|u#CkHKVY>@r z(?BgYms}}gKaLlJZmbZ&cgBfK@m0j&^Ok7WqppY<H+wG8p=26Sf`dip-kF6vb4ron_(R^lETyRY z<7X~C{a>Co;w=~6{+?%^dBZ1~77|?}i;5b*-{So-H~B!!G>K0HnI=v@HSts@!g=*BDB;KE_-Dg zN6os%#ZF!0em}%<->B96wTPF;t=`V1=_nsLzlWXEd$?g^!~Lh8<>)3ed0PB_p58SD z&MK0L2QUBRKCjmBi=~<$H%jE?dr$Cn{|3IhZV`VPwwN=2SVvV(Y{@^qsKv!w)n|7^O&(sq z9QTeY%cFBO;*4t=anCaacu{;FUi7RuKib`abF}NiySpM!P57B3CJf+#nTzp^GR1h% znNmD>X(n#&Ny(#c735#>y|4i#GxN9~-dM-~O~L(KCE5L~B(Hv#i>J@7!;Q9;;krlD z^6r0g0-5>WRG+Ljhx77_Z^d}ps}SygBLifYb@p2Z4G(5!P+)$iFM%I3aeJx71r|dORSDdS6I6BO@Q)12Ou914%7q60Y!j5zzE<+ zpexV`s18g7ngK0z>% literal 0 HcmV?d00001 diff --git a/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_machinegun_ship_destroyed.wav b/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_machinegun_ship_destroyed.wav new file mode 100644 index 000000000..3ea6c45c1 --- /dev/null +++ b/Aetheria-Economy_WwiseProject/Originals/SFX/SFX_weapon_machinegun_ship_destroyed.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d27349640286729bea2d96cf06870b7b42dc45e7821b283e1cee63a07a33c95b +size 660140 diff --git a/Aetheria-Economy_WwiseProject/Soundcaster Sessions/Default Work Unit.wwu b/Aetheria-Economy_WwiseProject/Soundcaster Sessions/Default Work Unit.wwu index c3305ab33..b4e4e15d9 100644 --- a/Aetheria-Economy_WwiseProject/Soundcaster Sessions/Default Work Unit.wwu +++ b/Aetheria-Economy_WwiseProject/Soundcaster Sessions/Default Work Unit.wwu @@ -14,7 +14,7 @@ - + @@ -30,7 +30,7 @@ - + @@ -46,7 +46,7 @@ - + @@ -62,7 +62,7 @@ - + @@ -78,7 +78,7 @@ - + @@ -145,6 +145,10 @@ + + + + @@ -154,7 +158,11 @@ - + + + + + @@ -166,25 +174,33 @@ - + + + + + - + + + + + @@ -194,7 +210,7 @@ - + @@ -206,7 +222,7 @@ - + @@ -261,7 +277,7 @@ - 2 + 10 From 11bfc739fe8ff674243eafed1c7b9d850df50ccc Mon Sep 17 00:00:00 2001 From: Reinier Vens Date: Wed, 14 Apr 2021 03:29:14 +0100 Subject: [PATCH 37/51] Aetheric Drive Added Aetheric Drive hardpoint and item behavior Added Drive RPM UI to HUD Fixed death not disabling continue option Disabling global input when dialog is visible Fixed loadout generator failure when zero price item present Replaced fixed top speed with drag coefficients --- Aetheria.Shared.Unity.csproj | 1 + Assets/Materials/UI/Map Gravity Lines.mat | 2 +- .../Properties Panel/Fancy/Curve Field.prefab | 16 +- Assets/Resources/Aetheria.inputactions | 23 +- Assets/Resources/Settings.asset | 4 +- Assets/Resources/Sprites/Attribution.txt | 2 + Assets/Resources/Sprites/Icons/Resize1.png | 3 + .../Resources/Sprites/Icons/Resize1.png.meta | 108 ++ Assets/Resources/Sprites/Icons/Rotate.png | 3 + .../Resources/Sprites/Icons/Rotate.png.meta | 108 ++ Assets/Resources/Sprites/line-basic.png | 3 + Assets/Resources/Sprites/line-basic.png.meta | 108 ++ Assets/Scenes/ARPG.unity | 1482 ++++++++++++++++- Assets/Scenes/Main Menu.unity | 8 +- Assets/Scripts/AetheriaInput.cs | 53 +- Assets/Scripts/Gameplay/ActionGameManager.cs | 222 ++- Assets/Scripts/ServerShared/AetheriaMath.cs | 10 + .../ServerShared/Behaviors/AetherDrive.cs | 121 ++ .../Behaviors/AetherDrive.cs.meta | 3 + .../ServerShared/Behaviors/AutoWeapon.cs | 4 +- .../ServerShared/Behaviors/Behaviors.cs | 4 +- .../ServerShared/Behaviors/Capacitor.cs | 2 +- .../ServerShared/Behaviors/ChargedWeapon.cs | 8 +- .../Scripts/ServerShared/Behaviors/Cockpit.cs | 2 +- .../ServerShared/Behaviors/ConstantWeapon.cs | 14 +- .../ServerShared/Behaviors/Cooldown.cs | 2 +- .../ServerShared/Behaviors/EnergyDraw.cs | 4 +- Assets/Scripts/ServerShared/Behaviors/Heat.cs | 4 +- .../ServerShared/Behaviors/HeatStorage.cs | 2 +- .../ServerShared/Behaviors/InstantWeapon.cs | 8 +- .../ServerShared/Behaviors/ItemUsage.cs | 2 +- .../ServerShared/Behaviors/LockWeapon.cs | 8 +- .../ServerShared/Behaviors/MiningTool.cs | 4 +- .../ServerShared/Behaviors/Radiator.cs | 8 +- .../Scripts/ServerShared/Behaviors/Reactor.cs | 4 +- .../ServerShared/Behaviors/Reflector.cs | 2 +- .../ServerShared/Behaviors/ResourceScanner.cs | 6 +- .../Scripts/ServerShared/Behaviors/Sensor.cs | 10 +- .../Scripts/ServerShared/Behaviors/Shield.cs | 2 +- .../ServerShared/Behaviors/StatModifier.cs | 2 +- .../Scripts/ServerShared/Behaviors/Switch.cs | 2 +- .../ServerShared/Behaviors/Thermotoggle.cs | 2 +- .../ServerShared/Behaviors/Thruster.cs | 8 +- .../Scripts/ServerShared/Behaviors/Trigger.cs | 2 +- .../Behaviors/TurretController.cs | 2 +- .../Behaviors/VelocityConversion.cs | 2 +- .../ServerShared/Behaviors/VelocityLimit.cs | 2 +- .../ServerShared/Behaviors/Visibility.cs | 2 +- .../Scripts/ServerShared/Behaviors/Weapon.cs | 2 +- Assets/Scripts/ServerShared/Behaviors/Wear.cs | 4 +- Assets/Scripts/ServerShared/Enums.cs | 5 +- Assets/Scripts/ServerShared/ItemData.cs | 3 + .../Scripts/ServerShared/LoadoutGenerator.cs | 14 +- Assets/Scripts/ServerShared/PlayerSettings.cs | 2 +- Assets/Scripts/ServerShared/Settings.cs | 2 + Assets/Scripts/ServerShared/Ship.cs | 141 +- Assets/Scripts/UI/ConfirmationDialog.cs | 2 + Assets/Scripts/UI/ConsoleView.cs | 6 +- Assets/Scripts/UI/ContextMenu.cs | 2 + Assets/Scripts/UI/DropdownMenu.cs | 2 + Assets/Scripts/UI/MainMenu.cs | 6 +- Assets/Scripts/UI/SchematicDisplay.cs | 27 +- GameData/AetherDB.msgpack | 4 +- GameData/PlayerSettings.msgpack | 4 +- RethinkDB.csproj | 2 +- 65 files changed, 2312 insertions(+), 320 deletions(-) create mode 100644 Assets/Resources/Sprites/Icons/Resize1.png create mode 100644 Assets/Resources/Sprites/Icons/Resize1.png.meta create mode 100644 Assets/Resources/Sprites/Icons/Rotate.png create mode 100644 Assets/Resources/Sprites/Icons/Rotate.png.meta create mode 100644 Assets/Resources/Sprites/line-basic.png create mode 100644 Assets/Resources/Sprites/line-basic.png.meta create mode 100644 Assets/Scripts/ServerShared/Behaviors/AetherDrive.cs create mode 100644 Assets/Scripts/ServerShared/Behaviors/AetherDrive.cs.meta diff --git a/Aetheria.Shared.Unity.csproj b/Aetheria.Shared.Unity.csproj index 6c2d70788..ab7380a3e 100644 --- a/Aetheria.Shared.Unity.csproj +++ b/Aetheria.Shared.Unity.csproj @@ -252,6 +252,7 @@ + diff --git a/Assets/Materials/UI/Map Gravity Lines.mat b/Assets/Materials/UI/Map Gravity Lines.mat index a21223d9f..749d876be 100644 --- a/Assets/Materials/UI/Map Gravity Lines.mat +++ b/Assets/Materials/UI/Map Gravity Lines.mat @@ -86,7 +86,7 @@ Material: - _Mode: 0 - _OcclusionStrength: 1 - _Parallax: 0.02 - - _Scale: 1.441227 + - _Scale: 0.5 - _SmoothnessTextureChannel: 0 - _SpecularHighlights: 1 - _SrcBlend: 1 diff --git a/Assets/Prefabs/UI/Properties Panel/Fancy/Curve Field.prefab b/Assets/Prefabs/UI/Properties Panel/Fancy/Curve Field.prefab index b2dbe6954..ea233162a 100644 --- a/Assets/Prefabs/UI/Properties Panel/Fancy/Curve Field.prefab +++ b/Assets/Prefabs/UI/Properties Panel/Fancy/Curve Field.prefab @@ -184,9 +184,9 @@ RectTransform: m_RootOrder: 5 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} + m_AnchorMax: {x: 1, y: 1} m_AnchoredPosition: {x: 8, y: -4} - m_SizeDelta: {x: 128, y: 18.64} + m_SizeDelta: {x: -16, y: 18.64} m_Pivot: {x: 0, y: 1} --- !u!222 &7248497949783907356 CanvasRenderer: @@ -495,9 +495,9 @@ RectTransform: m_RootOrder: 4 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 4} - m_SizeDelta: {x: -4, y: -8} + m_AnchorMax: {x: 1, y: 0} + m_AnchoredPosition: {x: 0, y: 9} + m_SizeDelta: {x: -4, y: 1.5} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &5150349052900313155 CanvasRenderer: @@ -520,14 +520,14 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} - m_Color: {r: 0.85, g: 0.95199996, b: 1, a: 0.32156864} + m_Color: {r: 0.85, g: 0.95199996, b: 1, a: 1} m_RaycastTarget: 1 m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 51c246761190b2349b69b5f87681c62a, type: 3} + m_Sprite: {fileID: 21300000, guid: ea8a1213adadb5a4fba6b1785033a34b, type: 3} m_Type: 1 m_PreserveAspect: 0 m_FillCenter: 1 @@ -916,7 +916,7 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 7c96f826a29855143bed2f0c15b198e6, type: 3} + m_Sprite: {fileID: 21300000, guid: e0e5557671b85144099aa4c15740eca5, type: 3} m_improveResolution: 0 m_Resolution: 0.03439772 m_useNativeSize: 1 diff --git a/Assets/Resources/Aetheria.inputactions b/Assets/Resources/Aetheria.inputactions index b5efc5dd7..dda305f65 100644 --- a/Assets/Resources/Aetheria.inputactions +++ b/Assets/Resources/Aetheria.inputactions @@ -1111,13 +1111,21 @@ "id": "2e2023b8-ce3b-4cb3-a12a-ff4ac610f11b", "actions": [ { - "name": "Map Toggle", + "name": "Zone Map", "type": "Button", "id": "e43f020b-dec0-43d2-a83b-1390d45819be", "expectedControlType": "Button", "processors": "", "interactions": "" }, + { + "name": "Galaxy Map", + "type": "Button", + "id": "d198f18c-8c55-4a31-a694-4959c763f664", + "expectedControlType": "Button", + "processors": "", + "interactions": "" + }, { "name": "Inventory", "type": "Button", @@ -1151,7 +1159,7 @@ "interactions": "", "processors": "", "groups": "Keyboard&Mouse", - "action": "Map Toggle", + "action": "Zone Map", "isComposite": false, "isPartOfComposite": false }, @@ -1187,6 +1195,17 @@ "action": "MainMenu", "isComposite": false, "isPartOfComposite": false + }, + { + "name": "", + "id": "f90929d5-d8d1-40dc-acc7-7ae294971d12", + "path": "/m", + "interactions": "", + "processors": "", + "groups": "Keyboard&Mouse", + "action": "Galaxy Map", + "isComposite": false, + "isPartOfComposite": false } ] } diff --git a/Assets/Resources/Settings.asset b/Assets/Resources/Settings.asset index 5c959526a..fa7a35d76 100644 --- a/Assets/Resources/Settings.asset +++ b/Assets/Resources/Settings.asset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:f927571ef9726e262bfc172d9bc8828c928b710d83dd36420c2ae217ffe39dfc -size 11597 +oid sha256:e88b31e49996b44a93bc845588151847eb73a8902c5939b54f4755ece6a7622d +size 11764 diff --git a/Assets/Resources/Sprites/Attribution.txt b/Assets/Resources/Sprites/Attribution.txt index d410495a9..03524509d 100644 --- a/Assets/Resources/Sprites/Attribution.txt +++ b/Assets/Resources/Sprites/Attribution.txt @@ -74,6 +74,8 @@ capacitor by Giovanny Mine by Creaticca Creative Agency pattern by Andrejs Kirma edit by The Icon Z +Resize by Markus +Rotate by Rohith M Other diff --git a/Assets/Resources/Sprites/Icons/Resize1.png b/Assets/Resources/Sprites/Icons/Resize1.png new file mode 100644 index 000000000..390055a13 --- /dev/null +++ b/Assets/Resources/Sprites/Icons/Resize1.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1327779757daae78e7b89efc83d81a0b9908510b0d9ff7327e8490c57b0f0897 +size 4798 diff --git a/Assets/Resources/Sprites/Icons/Resize1.png.meta b/Assets/Resources/Sprites/Icons/Resize1.png.meta new file mode 100644 index 000000000..e8db2989f --- /dev/null +++ b/Assets/Resources/Sprites/Icons/Resize1.png.meta @@ -0,0 +1,108 @@ +fileFormatVersion: 2 +guid: 55bed7a5ff978bf4c8cbda9971585df0 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: -1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 32 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 32 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Sprites/Icons/Rotate.png b/Assets/Resources/Sprites/Icons/Rotate.png new file mode 100644 index 000000000..07b5b537b --- /dev/null +++ b/Assets/Resources/Sprites/Icons/Rotate.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:79aa28f9bb1437130d8d687445c1724840a6d3323213b993a37bb85c55c8d17b +size 12602 diff --git a/Assets/Resources/Sprites/Icons/Rotate.png.meta b/Assets/Resources/Sprites/Icons/Rotate.png.meta new file mode 100644 index 000000000..ff0dd4a9c --- /dev/null +++ b/Assets/Resources/Sprites/Icons/Rotate.png.meta @@ -0,0 +1,108 @@ +fileFormatVersion: 2 +guid: 4b33557baae0da54a96c0aa97bf752ee +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: -1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 32 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 32 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Sprites/line-basic.png b/Assets/Resources/Sprites/line-basic.png new file mode 100644 index 000000000..6153c41ab --- /dev/null +++ b/Assets/Resources/Sprites/line-basic.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b4fd163e3670d64804a01c6286c7f5e86572c2394db1f6a1425c320d72e72014 +size 1836 diff --git a/Assets/Resources/Sprites/line-basic.png.meta b/Assets/Resources/Sprites/line-basic.png.meta new file mode 100644 index 000000000..be7ffef0c --- /dev/null +++ b/Assets/Resources/Sprites/line-basic.png.meta @@ -0,0 +1,108 @@ +fileFormatVersion: 2 +guid: e0e5557671b85144099aa4c15740eca5 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: -1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scenes/ARPG.unity b/Assets/Scenes/ARPG.unity index 14e1c109c..767880601 100644 --- a/Assets/Scenes/ARPG.unity +++ b/Assets/Scenes/ARPG.unity @@ -1430,6 +1430,81 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 125191966} m_CullTransparentMesh: 0 +--- !u!1 &126433269 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 126433270} + - component: {fileID: 126433272} + - component: {fileID: 126433271} + m_Layer: 5 + m_Name: Icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &126433270 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 126433269} + m_LocalRotation: {x: 0, y: 0, z: 0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 691045497} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 90} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 8, y: 0} + m_SizeDelta: {x: 14, y: -2} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &126433271 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 126433269} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 55bed7a5ff978bf4c8cbda9971585df0, type: 3} + m_Type: 0 + m_PreserveAspect: 1 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &126433272 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 126433269} + m_CullTransparentMesh: 0 --- !u!1 &133322211 GameObject: m_ObjectHideFlags: 0 @@ -2231,7 +2306,7 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_Sprite: {fileID: 21300000, guid: dc8c6f7a85945d242bd4cbd92df0a7d4, type: 3} + m_Sprite: {fileID: 21300000, guid: 8ebf281ca9b898f4f9a209b6ee01c843, type: 3} m_Type: 0 m_PreserveAspect: 1 m_FillCenter: 1 @@ -3251,11 +3326,11 @@ RectTransform: - {fileID: 2044077502} - {fileID: 197007679} m_Father: {fileID: 746825913} - m_RootOrder: 0 + m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 90.5, y: -9} + m_AnchoredPosition: {x: 90.5, y: -25} m_SizeDelta: {x: 181, y: 18} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &232470598 @@ -4764,6 +4839,140 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: ac0b09e7857660247b1477e93731de29, type: 3} m_Name: m_EditorClassIdentifier: +--- !u!1 &383790463 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 383790464} + - component: {fileID: 383790466} + - component: {fileID: 383790465} + m_Layer: 5 + m_Name: Strafe RPM + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &383790464 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 383790463} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 691045497} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 8, y: 0} + m_SizeDelta: {x: -16, y: -4} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &383790465 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 383790463} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: 18,000 + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 3fb7d873bb5a7944bb9a7c73c430c44b, type: 2} + m_sharedMaterial: {fileID: 2100000, guid: b9d2f6c9804cec1489502dcc1c19ec54, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 10 + m_fontSizeBase: 10 + m_fontWeight: 400 + m_enableAutoSizing: 1 + m_fontSizeMin: 6 + m_fontSizeMax: 16 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!222 &383790466 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 383790463} + m_CullTransparentMesh: 0 --- !u!1 &388927454 GameObject: m_ObjectHideFlags: 0 @@ -5489,6 +5698,8 @@ MonoBehaviour: OverrideIconBlinkSpeed: 0 ShieldIcon: {fileID: 0} HeatsinkBackground: {fileID: 0} + AetherDriveUi: {fileID: 0} + AetherDriveUiSpacer: {fileID: 0} EnergyLabel: {fileID: 0} CockpitTemperatureLabel: {fileID: 0} RadiatorTemperatureLabel: {fileID: 0} @@ -5497,12 +5708,18 @@ MonoBehaviour: VisibilityLabel: {fileID: 858665366} HullDurabilityLabel: {fileID: 2101419019} DistanceLabel: {fileID: 517688448} + ForwardRPMLabel: {fileID: 0} + StrafeRPMLabel: {fileID: 0} + TurnRPMLabel: {fileID: 0} SensorCooldownFill: {fileID: 0} EnergyFill: {fileID: 0} HullDurabilityFill: {fileID: 1904825248} HeatstrokeMeterFill: {fileID: 0} HypothermiaMeterFill: {fileID: 0} HeatstrokeLimitFill: {fileID: 0} + ForwardRPMFill: {fileID: 0} + StrafeRPMFill: {fileID: 0} + TurnRPMFill: {fileID: 0} TriggerGroups: {fileID: 1399423353} TriggerGroupsFadeDuration: 0.5 TriggerGroupsPersistDuration: 5 @@ -6374,6 +6591,7 @@ MonoBehaviour: CellBackgroundColor: {r: 0, g: 0, b: 0, a: 0.9490196} MinTempRange: 0 DoubleClickTime: 0.5 + HitDamageThreshold: 1 EmptyCells: [] --- !u!1 &411347518 GameObject: @@ -9574,8 +9792,10 @@ MonoBehaviour: IncrementField: {fileID: 5486709585343280439, guid: 9c14c92a1a08b0a4fb4f6aa6f8504082, type: 3} StatSheet: {fileID: 0} + CurveField: {fileID: 0} Content: {fileID: 620555923} SelectedChild: {fileID: 0} + GameManager: {fileID: 0} CancelClickCatcher: {fileID: 1420548305} ButtonGroup: {fileID: 947321577} Cancel: {fileID: 1176624628} @@ -10760,6 +10980,105 @@ RectTransform: m_AnchoredPosition: {x: 64, y: 0} m_SizeDelta: {x: 14, y: 0} m_Pivot: {x: 0, y: 0.5} +--- !u!1 &691045496 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 691045497} + - component: {fileID: 691045500} + - component: {fileID: 691045499} + - component: {fileID: 691045498} + m_Layer: 5 + m_Name: Strafe + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &691045497 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 691045496} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1542388328} + - {fileID: 126433270} + - {fileID: 383790464} + m_Father: {fileID: 1735948312} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 90.5, y: 0} + m_SizeDelta: {x: 59, y: 14} + m_Pivot: {x: 0.5, y: 1} +--- !u!114 &691045498 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 691045496} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0.011764706} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &691045499 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 691045496} + m_CullTransparentMesh: 1 +--- !u!114 &691045500 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 691045496} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: 16 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 --- !u!1 &693745763 GameObject: m_ObjectHideFlags: 0 @@ -11218,6 +11537,105 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 719842150} m_CullTransparentMesh: 1 +--- !u!1 &723697980 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 723697981} + - component: {fileID: 723697984} + - component: {fileID: 723697983} + - component: {fileID: 723697982} + m_Layer: 5 + m_Name: Forward + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &723697981 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 723697980} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1946192591} + - {fileID: 1463754850} + - {fileID: 1558236436} + m_Father: {fileID: 1735948312} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 29.5, y: -0} + m_SizeDelta: {x: 59, y: 14} + m_Pivot: {x: 0.5, y: 1} +--- !u!114 &723697982 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 723697980} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0.011764706} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &723697983 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 723697980} + m_CullTransparentMesh: 1 +--- !u!114 &723697984 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 723697980} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: 16 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 --- !u!1 &732687889 GameObject: m_ObjectHideFlags: 0 @@ -11432,7 +11850,7 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_text: Moving Thing + m_text: Confirmation Dialog m_isRightToLeft: 0 m_fontAsset: {fileID: 11400000, guid: 53555f7a2d5e745428813f1b1118734f, type: 2} m_sharedMaterial: {fileID: -2804126062856497447, guid: 53555f7a2d5e745428813f1b1118734f, @@ -11538,6 +11956,7 @@ RectTransform: m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: + - {fileID: 1735948312} - {fileID: 232470597} m_Father: {fileID: 60313920} m_RootOrder: 1 @@ -12080,6 +12499,71 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 776416423} m_CullTransparentMesh: 1 +--- !u!1 &779460299 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 779460300} + - component: {fileID: 779460301} + m_Layer: 5 + m_Name: Weapon Groups Container + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &779460300 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 779460299} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 964827173} + - {fileID: 1376734759} + - {fileID: 1399423350} + m_Father: {fileID: 1558520822} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 129, y: 0} + m_Pivot: {x: 1, y: 1} +--- !u!114 &779460301 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 779460299} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 0 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 0 + m_ChildControlWidth: 1 + m_ChildControlHeight: 1 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 --- !u!1 &783543864 GameObject: m_ObjectHideFlags: 0 @@ -13205,6 +13689,81 @@ MonoBehaviour: m_FlexibleWidth: -1 m_FlexibleHeight: -1 m_LayoutPriority: 1 +--- !u!1 &853400335 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 853400336} + - component: {fileID: 853400338} + - component: {fileID: 853400337} + m_Layer: 5 + m_Name: Icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &853400336 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 853400335} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: -1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1214607512} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 8, y: 0} + m_SizeDelta: {x: 10, y: -4} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &853400337 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 853400335} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 4b33557baae0da54a96c0aa97bf752ee, type: 3} + m_Type: 0 + m_PreserveAspect: 1 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &853400338 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 853400335} + m_CullTransparentMesh: 0 --- !u!1 &858665364 GameObject: m_ObjectHideFlags: 0 @@ -14085,6 +14644,140 @@ MonoBehaviour: Tab: 0 Text: {fileID: 931657853} RequireDock: 0 +--- !u!1 &932757481 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 932757482} + - component: {fileID: 932757484} + - component: {fileID: 932757483} + m_Layer: 5 + m_Name: Turn RPM + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &932757482 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 932757481} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1214607512} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 8, y: 0} + m_SizeDelta: {x: -16, y: -4} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &932757483 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 932757481} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: 18,000 + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 3fb7d873bb5a7944bb9a7c73c430c44b, type: 2} + m_sharedMaterial: {fileID: 2100000, guid: b9d2f6c9804cec1489502dcc1c19ec54, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 10 + m_fontSizeBase: 10 + m_fontWeight: 400 + m_enableAutoSizing: 1 + m_fontSizeMin: 6 + m_fontSizeMax: 16 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!222 &932757484 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 932757481} + m_CullTransparentMesh: 0 --- !u!1 &933815652 GameObject: m_ObjectHideFlags: 0 @@ -14738,6 +15431,62 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 2da0c512f12947e489f739169773d7ca, type: 3} m_Name: m_EditorClassIdentifier: +--- !u!1 &964827172 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 964827173} + - component: {fileID: 964827174} + m_Layer: 5 + m_Name: Spacer + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &964827173 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 964827172} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 779460300} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 64.5, y: -28} + m_SizeDelta: {x: 129, y: 56} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &964827174 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 964827172} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: 56 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 --- !u!1 &970624069 GameObject: m_ObjectHideFlags: 0 @@ -15452,6 +16201,8 @@ MonoBehaviour: ShipPanel: {fileID: 7628189704109037582} TargetShipPanel: {fileID: 410701133} Dialog: {fileID: 620555924} + Context: {fileID: 0} + Dropdown: {fileID: 0} IntroDuration: 10 --- !u!4 &1009503730 Transform: @@ -15979,6 +16730,81 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1012981707} m_CullTransparentMesh: 0 +--- !u!1 &1013676407 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1013676408} + - component: {fileID: 1013676410} + - component: {fileID: 1013676409} + m_Layer: 5 + m_Name: Turn Fill + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1013676408 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1013676407} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1214607512} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0.8, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1013676409 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1013676407} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0.101960786} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1013676410 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1013676407} + m_CullTransparentMesh: 0 --- !u!1 &1029396710 GameObject: m_ObjectHideFlags: 0 @@ -17781,6 +18607,105 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1187424823} m_CullTransparentMesh: 0 +--- !u!1 &1214607511 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1214607512} + - component: {fileID: 1214607515} + - component: {fileID: 1214607514} + - component: {fileID: 1214607513} + m_Layer: 5 + m_Name: Turn + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1214607512 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1214607511} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1013676408} + - {fileID: 853400336} + - {fileID: 932757482} + m_Father: {fileID: 1735948312} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 151.5, y: 0} + m_SizeDelta: {x: 59, y: 14} + m_Pivot: {x: 0.5, y: 1} +--- !u!114 &1214607513 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1214607511} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0.011764706} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1214607514 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1214607511} + m_CullTransparentMesh: 1 +--- !u!114 &1214607515 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1214607511} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: 16 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 --- !u!1 &1218822609 GameObject: m_ObjectHideFlags: 0 @@ -19426,6 +20351,62 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1367229140} m_CullTransparentMesh: 0 +--- !u!1 &1376734758 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1376734759} + - component: {fileID: 1376734760} + m_Layer: 5 + m_Name: RPM Spacer + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1376734759 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1376734758} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 779460300} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 64.5, y: -64} + m_SizeDelta: {x: 129, y: 16} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1376734760 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1376734758} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: 16 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 --- !u!1 &1378019500 GameObject: m_ObjectHideFlags: 0 @@ -19659,7 +20640,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 1 + m_IsActive: 0 --- !u!224 &1396909587 RectTransform: m_ObjectHideFlags: 0 @@ -20074,7 +21055,6 @@ GameObject: m_Component: - component: {fileID: 1399423350} - component: {fileID: 1399423352} - - component: {fileID: 1399423351} - component: {fileID: 1399423353} m_Layer: 5 m_Name: Weapon Groups @@ -20096,28 +21076,14 @@ RectTransform: m_Children: - {fileID: 133322212} - {fileID: 1564656281} - m_Father: {fileID: 1558520822} - m_RootOrder: 0 + m_Father: {fileID: 779460300} + m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 439, y: 204} - m_SizeDelta: {x: 128, y: 16} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: -72} + m_SizeDelta: {x: 129, y: 18} m_Pivot: {x: 0, y: 1} ---- !u!114 &1399423351 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1399423349} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} - m_Name: - m_EditorClassIdentifier: - m_HorizontalFit: 0 - m_VerticalFit: 2 --- !u!114 &1399423352 MonoBehaviour: m_ObjectHideFlags: 0 @@ -20912,6 +21878,81 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 1281fe44325f9b548aa42dc331b17266, type: 3} m_Name: m_EditorClassIdentifier: +--- !u!1 &1463754849 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1463754850} + - component: {fileID: 1463754852} + - component: {fileID: 1463754851} + m_Layer: 5 + m_Name: Icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1463754850 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1463754849} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 723697981} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 8, y: 0} + m_SizeDelta: {x: 14, y: -2} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1463754851 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1463754849} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 55bed7a5ff978bf4c8cbda9971585df0, type: 3} + m_Type: 0 + m_PreserveAspect: 1 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1463754852 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1463754849} + m_CullTransparentMesh: 0 --- !u!1 &1464157084 GameObject: m_ObjectHideFlags: 0 @@ -22051,6 +23092,81 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1539162433} m_CullTransparentMesh: 1 +--- !u!1 &1542388327 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1542388328} + - component: {fileID: 1542388330} + - component: {fileID: 1542388329} + m_Layer: 5 + m_Name: Strafe Fill + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1542388328 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1542388327} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 691045497} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0.8, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1542388329 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1542388327} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0.101960786} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1542388330 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1542388327} + m_CullTransparentMesh: 0 --- !u!1 &1547889398 GameObject: m_ObjectHideFlags: 0 @@ -22566,6 +23682,140 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1558182380} m_CullTransparentMesh: 1 +--- !u!1 &1558236435 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1558236436} + - component: {fileID: 1558236438} + - component: {fileID: 1558236437} + m_Layer: 5 + m_Name: Forward RPM + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1558236436 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1558236435} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 723697981} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 8, y: 0} + m_SizeDelta: {x: -16, y: -4} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1558236437 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1558236435} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: 18,000 + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 3fb7d873bb5a7944bb9a7c73c430c44b, type: 2} + m_sharedMaterial: {fileID: 2100000, guid: b9d2f6c9804cec1489502dcc1c19ec54, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 10 + m_fontSizeBase: 10 + m_fontWeight: 400 + m_enableAutoSizing: 1 + m_fontSizeMin: 6 + m_fontSizeMax: 16 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!222 &1558236438 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1558236435} + m_CullTransparentMesh: 0 --- !u!1 &1558520821 GameObject: m_ObjectHideFlags: 0 @@ -22593,7 +23843,7 @@ RectTransform: m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: - - {fileID: 1399423350} + - {fileID: 779460300} - {fileID: 7628189704109037581} m_Father: {fileID: 346000247} m_RootOrder: 2 @@ -22809,8 +24059,8 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 63.5, y: -8} - m_SizeDelta: {x: 127, y: 16} + m_AnchoredPosition: {x: 64, y: -9} + m_SizeDelta: {x: 128, y: 18} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &1564656282 MonoBehaviour: @@ -22866,7 +24116,7 @@ MonoBehaviour: m_MinWidth: -1 m_MinHeight: -1 m_PreferredWidth: -1 - m_PreferredHeight: 16 + m_PreferredHeight: 18 m_FlexibleWidth: -1 m_FlexibleHeight: -1 m_LayoutPriority: 1 @@ -24937,6 +26187,92 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1733988258} m_CullTransparentMesh: 1 +--- !u!1 &1735948311 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1735948312} + - component: {fileID: 1735948314} + - component: {fileID: 1735948313} + m_Layer: 5 + m_Name: RPM Display + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1735948312 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1735948311} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 723697981} + - {fileID: 691045497} + - {fileID: 1214607512} + m_Father: {fileID: 746825913} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 90.5, y: -7} + m_SizeDelta: {x: 181, y: 14} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1735948313 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1735948311} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 2 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 0 + m_ChildControlWidth: 1 + m_ChildControlHeight: 1 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 +--- !u!114 &1735948314 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1735948311} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: 14 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 --- !u!1 &1741914909 GameObject: m_ObjectHideFlags: 0 @@ -27196,6 +28532,81 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1943948574} m_CullTransparentMesh: 0 +--- !u!1 &1946192590 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1946192591} + - component: {fileID: 1946192593} + - component: {fileID: 1946192592} + m_Layer: 5 + m_Name: Forward Fill + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1946192591 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1946192590} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 723697981} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0.8, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1946192592 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1946192590} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0.101960786} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1946192593 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1946192590} + m_CullTransparentMesh: 0 --- !u!1 &1952022815 GameObject: m_ObjectHideFlags: 0 @@ -33785,8 +35196,10 @@ MonoBehaviour: IncrementField: {fileID: 5486709585343280439, guid: 9c14c92a1a08b0a4fb4f6aa6f8504082, type: 3} StatSheet: {fileID: 0} + CurveField: {fileID: 0} Content: {fileID: 3255828831356619720} SelectedChild: {fileID: 0} + GameManager: {fileID: 0} --- !u!114 &5496444666756201237 MonoBehaviour: m_ObjectHideFlags: 0 @@ -35432,6 +36845,7 @@ MonoBehaviour: CellBackgroundColor: {r: 0, g: 0, b: 0, a: 0.9490196} MinTempRange: 0 DoubleClickTime: 0.5 + HitDamageThreshold: 1 EmptyCells: [] --- !u!114 &7628189704109037583 MonoBehaviour: @@ -35467,6 +36881,8 @@ MonoBehaviour: OverrideIconBlinkSpeed: 10 ShieldIcon: {fileID: 19222411} HeatsinkBackground: {fileID: 661332569} + AetherDriveUi: {fileID: 1735948311} + AetherDriveUiSpacer: {fileID: 1376734758} EnergyLabel: {fileID: 804489113} CockpitTemperatureLabel: {fileID: 212527384} RadiatorTemperatureLabel: {fileID: 1752418078} @@ -35475,12 +36891,18 @@ MonoBehaviour: VisibilityLabel: {fileID: 2122035461} HullDurabilityLabel: {fileID: 697075017} DistanceLabel: {fileID: 0} + ForwardRPMLabel: {fileID: 1558236437} + StrafeRPMLabel: {fileID: 383790465} + TurnRPMLabel: {fileID: 932757483} SensorCooldownFill: {fileID: 1943948575} EnergyFill: {fileID: 271575215} HullDurabilityFill: {fileID: 753112995} HeatstrokeMeterFill: {fileID: 1029396711} HypothermiaMeterFill: {fileID: 79341832} HeatstrokeLimitFill: {fileID: 933815653} + ForwardRPMFill: {fileID: 1946192591} + StrafeRPMFill: {fileID: 1542388328} + TurnRPMFill: {fileID: 1013676408} TriggerGroups: {fileID: 1399423353} TriggerGroupsFadeDuration: 0.5 TriggerGroupsPersistDuration: 5 diff --git a/Assets/Scenes/Main Menu.unity b/Assets/Scenes/Main Menu.unity index 89f4dbcab..8f51544c7 100644 --- a/Assets/Scenes/Main Menu.unity +++ b/Assets/Scenes/Main Menu.unity @@ -802,8 +802,8 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 741153267} - m_LocalRotation: {x: 0.015506903, y: 0.9502416, z: -0.30741313, w: 0.04793323} - m_LocalPosition: {x: -117.51999, y: -77.08743, z: 149.09026} + m_LocalRotation: {x: 0.015506932, y: 0.9502416, z: -0.30741316, w: 0.04793331} + m_LocalPosition: {x: -117.520035, y: -77.087425, z: 149.09027} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: - {fileID: 412917866} @@ -1234,8 +1234,8 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 965376321} - m_LocalRotation: {x: 0.015506903, y: 0.9502416, z: -0.30741313, w: 0.04793323} - m_LocalPosition: {x: -117.51999, y: -77.08743, z: 149.09026} + m_LocalRotation: {x: 0.015506932, y: 0.9502416, z: -0.30741316, w: 0.04793331} + m_LocalPosition: {x: -117.520035, y: -77.087425, z: 149.09027} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 0} diff --git a/Assets/Scripts/AetheriaInput.cs b/Assets/Scripts/AetheriaInput.cs index 9f288fb63..095b75dac 100644 --- a/Assets/Scripts/AetheriaInput.cs +++ b/Assets/Scripts/AetheriaInput.cs @@ -1124,13 +1124,21 @@ public class @AetheriaInput : IInputActionCollection, IDisposable ""id"": ""2e2023b8-ce3b-4cb3-a12a-ff4ac610f11b"", ""actions"": [ { - ""name"": ""Map Toggle"", + ""name"": ""Zone Map"", ""type"": ""Button"", ""id"": ""e43f020b-dec0-43d2-a83b-1390d45819be"", ""expectedControlType"": ""Button"", ""processors"": """", ""interactions"": """" }, + { + ""name"": ""Galaxy Map"", + ""type"": ""Button"", + ""id"": ""d198f18c-8c55-4a31-a694-4959c763f664"", + ""expectedControlType"": ""Button"", + ""processors"": """", + ""interactions"": """" + }, { ""name"": ""Inventory"", ""type"": ""Button"", @@ -1164,7 +1172,7 @@ public class @AetheriaInput : IInputActionCollection, IDisposable ""interactions"": """", ""processors"": """", ""groups"": ""Keyboard&Mouse"", - ""action"": ""Map Toggle"", + ""action"": ""Zone Map"", ""isComposite"": false, ""isPartOfComposite"": false }, @@ -1200,6 +1208,17 @@ public class @AetheriaInput : IInputActionCollection, IDisposable ""action"": ""MainMenu"", ""isComposite"": false, ""isPartOfComposite"": false + }, + { + ""name"": """", + ""id"": ""f90929d5-d8d1-40dc-acc7-7ae294971d12"", + ""path"": ""/m"", + ""interactions"": """", + ""processors"": """", + ""groups"": ""Keyboard&Mouse"", + ""action"": ""Galaxy Map"", + ""isComposite"": false, + ""isPartOfComposite"": false } ] } @@ -1284,7 +1303,8 @@ public class @AetheriaInput : IInputActionCollection, IDisposable m_UI_Drag = m_UI.FindAction("Drag", throwIfNotFound: true); // Global m_Global = asset.FindActionMap("Global", throwIfNotFound: true); - m_Global_MapToggle = m_Global.FindAction("Map Toggle", throwIfNotFound: true); + m_Global_ZoneMap = m_Global.FindAction("Zone Map", throwIfNotFound: true); + m_Global_GalaxyMap = m_Global.FindAction("Galaxy Map", throwIfNotFound: true); m_Global_Inventory = m_Global.FindAction("Inventory", throwIfNotFound: true); m_Global_Dock = m_Global.FindAction("Dock", throwIfNotFound: true); m_Global_MainMenu = m_Global.FindAction("MainMenu", throwIfNotFound: true); @@ -1651,7 +1671,8 @@ public class @AetheriaInput : IInputActionCollection, IDisposable // Global private readonly InputActionMap m_Global; private IGlobalActions m_GlobalActionsCallbackInterface; - private readonly InputAction m_Global_MapToggle; + private readonly InputAction m_Global_ZoneMap; + private readonly InputAction m_Global_GalaxyMap; private readonly InputAction m_Global_Inventory; private readonly InputAction m_Global_Dock; private readonly InputAction m_Global_MainMenu; @@ -1659,7 +1680,8 @@ public class @AetheriaInput : IInputActionCollection, IDisposable { private @AetheriaInput m_Wrapper; public GlobalActions(@AetheriaInput wrapper) { m_Wrapper = wrapper; } - public InputAction @MapToggle => m_Wrapper.m_Global_MapToggle; + public InputAction @ZoneMap => m_Wrapper.m_Global_ZoneMap; + public InputAction @GalaxyMap => m_Wrapper.m_Global_GalaxyMap; public InputAction @Inventory => m_Wrapper.m_Global_Inventory; public InputAction @Dock => m_Wrapper.m_Global_Dock; public InputAction @MainMenu => m_Wrapper.m_Global_MainMenu; @@ -1672,9 +1694,12 @@ public class @AetheriaInput : IInputActionCollection, IDisposable { if (m_Wrapper.m_GlobalActionsCallbackInterface != null) { - @MapToggle.started -= m_Wrapper.m_GlobalActionsCallbackInterface.OnMapToggle; - @MapToggle.performed -= m_Wrapper.m_GlobalActionsCallbackInterface.OnMapToggle; - @MapToggle.canceled -= m_Wrapper.m_GlobalActionsCallbackInterface.OnMapToggle; + @ZoneMap.started -= m_Wrapper.m_GlobalActionsCallbackInterface.OnZoneMap; + @ZoneMap.performed -= m_Wrapper.m_GlobalActionsCallbackInterface.OnZoneMap; + @ZoneMap.canceled -= m_Wrapper.m_GlobalActionsCallbackInterface.OnZoneMap; + @GalaxyMap.started -= m_Wrapper.m_GlobalActionsCallbackInterface.OnGalaxyMap; + @GalaxyMap.performed -= m_Wrapper.m_GlobalActionsCallbackInterface.OnGalaxyMap; + @GalaxyMap.canceled -= m_Wrapper.m_GlobalActionsCallbackInterface.OnGalaxyMap; @Inventory.started -= m_Wrapper.m_GlobalActionsCallbackInterface.OnInventory; @Inventory.performed -= m_Wrapper.m_GlobalActionsCallbackInterface.OnInventory; @Inventory.canceled -= m_Wrapper.m_GlobalActionsCallbackInterface.OnInventory; @@ -1688,9 +1713,12 @@ public class @AetheriaInput : IInputActionCollection, IDisposable m_Wrapper.m_GlobalActionsCallbackInterface = instance; if (instance != null) { - @MapToggle.started += instance.OnMapToggle; - @MapToggle.performed += instance.OnMapToggle; - @MapToggle.canceled += instance.OnMapToggle; + @ZoneMap.started += instance.OnZoneMap; + @ZoneMap.performed += instance.OnZoneMap; + @ZoneMap.canceled += instance.OnZoneMap; + @GalaxyMap.started += instance.OnGalaxyMap; + @GalaxyMap.performed += instance.OnGalaxyMap; + @GalaxyMap.canceled += instance.OnGalaxyMap; @Inventory.started += instance.OnInventory; @Inventory.performed += instance.OnInventory; @Inventory.canceled += instance.OnInventory; @@ -1772,7 +1800,8 @@ public class @AetheriaInput : IInputActionCollection, IDisposable } public interface IGlobalActions { - void OnMapToggle(InputAction.CallbackContext context); + void OnZoneMap(InputAction.CallbackContext context); + void OnGalaxyMap(InputAction.CallbackContext context); void OnInventory(InputAction.CallbackContext context); void OnDock(InputAction.CallbackContext context); void OnMainMenu(InputAction.CallbackContext context); diff --git a/Assets/Scripts/Gameplay/ActionGameManager.cs b/Assets/Scripts/Gameplay/ActionGameManager.cs index 5ad585922..17ff9fac0 100644 --- a/Assets/Scripts/Gameplay/ActionGameManager.cs +++ b/Assets/Scripts/Gameplay/ActionGameManager.cs @@ -63,6 +63,8 @@ public class ActionGameManager : MonoBehaviour public static Sector CurrentSector; + + public GameSettings Settings; //public string StarterShipTemplate = "Longinus"; public float2 Sensitivity; @@ -104,6 +106,8 @@ public class ActionGameManager : MonoBehaviour public InventoryPanel ShipPanel; public InventoryPanel TargetShipPanel; public ConfirmationDialog Dialog; + public ContextMenu Context; + public DropdownMenu Dropdown; public float IntroDuration; @@ -160,17 +164,11 @@ public class ActionGameManager : MonoBehaviour File.WriteAllBytes(Path.Combine(_loadoutPath.FullName, $"{pack.Name}.loadout"), MessagePackSerializer.Serialize(pack)); } - private void OnApplicationQuit() - { - if(CurrentSector!=null) - { - SaveState(); - } - } + private void OnApplicationQuit() => SaveState(); public void SaveState() { - PlayerSettings.CurrentRun = new SavedGame(CurrentSector, Zone, DockedEntity??CurrentEntity); + PlayerSettings.SavedRun = CurrentSector == null ? null : new SavedGame(CurrentSector, Zone, DockedEntity ?? CurrentEntity); SavePlayerSettings(); } @@ -208,57 +206,15 @@ public class ActionGameManager : MonoBehaviour ZoneRenderer.MinimapDistance = Settings.MinimapZoomLevels[_zoomLevelIndex]; }; - Input.Global.MapToggle.performed += context => + Input.Global.ZoneMap.performed += context => { - if (EventSystem.current.currentSelectedGameObject?.GetComponent() != null) return; - if (MainMenu.gameObject.activeSelf) return; - if (Menu.gameObject.activeSelf && Menu.CurrentTab == MenuTab.Map) - { - Cursor.lockState = CursorLockMode.Locked; - Menu.gameObject.SetActive(false); - if (CurrentEntity != null && CurrentEntity.Parent == null) - { - Input.Player.Enable(); - GameplayUI.gameObject.SetActive(true); - - SchematicDisplay.ShowShip(CurrentEntity); - ShipPanel.Display(CurrentEntity, true); - } - - return; - } - - Cursor.lockState = CursorLockMode.None; - Input.Player.Disable(); - GameplayUI.gameObject.SetActive(false); - Menu.ShowTab(MenuTab.Map); + ToggleMenuTab(MenuTab.Map); MenuMap.Position = CurrentEntity.Position.xz; }; - Input.Global.Inventory.performed += context => - { - if (EventSystem.current.currentSelectedGameObject?.GetComponent() != null) return; - if (MainMenu.gameObject.activeSelf) return; - if (Menu.gameObject.activeSelf && Menu.CurrentTab == MenuTab.Inventory) - { - Cursor.lockState = CursorLockMode.Locked; - Menu.gameObject.SetActive(false); - if (CurrentEntity != null && CurrentEntity.Parent == null) - { - Input.Player.Enable(); - GameplayUI.gameObject.SetActive(true); - - SchematicDisplay.ShowShip(CurrentEntity); - ShipPanel.Display(CurrentEntity, true); - } - return; - } + Input.Global.Inventory.performed += context => ToggleMenuTab(MenuTab.Inventory); - Cursor.lockState = CursorLockMode.None; - Input.Player.Disable(); - Menu.ShowTab(MenuTab.Inventory); - GameplayUI.gameObject.SetActive(false); - }; + Input.Global.GalaxyMap.performed += context => ToggleMenuTab(MenuTab.Galaxy); Input.Global.Dock.performed += context => { @@ -317,33 +273,10 @@ public class ActionGameManager : MonoBehaviour Input.Player.EnterWormhole.performed += context => { - if(CurrentEntity is Ship ship) + foreach (var wormhole in ZoneRenderer.WormholeInstances.Keys) { - foreach (var wormhole in ZoneRenderer.WormholeInstances.Keys) - { - if (length(wormhole.Position - CurrentEntity.Position.xz) < Settings.GameplaySettings.WormholeExitRadius) - { - var oldZone = Zone; - // var wormholeCameraFollow = new GameObject("Wormhole Camera Follow").transform; - // wormholeCameraFollow.position = new Vector3(wormhole.Position.x, -50, wormhole.Position.y); - // wormholeCameraFollow.rotation = Quaternion.LookRotation(Vector3.down, ship.LookDirection); - // WormholeCamera.enabled = true; - // WormholeCamera.Follow = wormholeCameraFollow; - // FollowCamera.enabled = false; - ship.EnterWormhole(wormhole.Position); - ship.OnEnteredWormhole += () => - { - PopulateLevel(wormhole.Target); - foreach(var zone in wormhole.Target.AdjacentZones) - CurrentSector.DiscoveredZones.Add(zone); - SectorMap.QueueZoneReveal(wormhole.Target.AdjacentZones); - ship.ExitWormhole(ZoneRenderer.WormholeInstances.Keys.First(w=>w.Target==oldZone.SectorZone).Position, - Settings.GameplaySettings.WormholeExitVelocity * ItemManager.Random.NextFloat2Direction()); - CurrentEntity.Zone = Zone; - SaveState(); - }; - } - } + if (!(length(wormhole.Position - CurrentEntity.Position.xz) < Settings.GameplaySettings.WormholeExitRadius)) continue; + EnterWormhole(wormhole); } }; @@ -625,6 +558,30 @@ public class ActionGameManager : MonoBehaviour }); } + private void EnterWormhole(Wormhole wormhole) + { + if (!(CurrentEntity is Ship ship)) return; + // var wormholeCameraFollow = new GameObject("Wormhole Camera Follow").transform; + // wormholeCameraFollow.position = new Vector3(wormhole.Position.x, -50, wormhole.Position.y); + // wormholeCameraFollow.rotation = Quaternion.LookRotation(Vector3.down, ship.LookDirection); + // WormholeCamera.enabled = true; + // WormholeCamera.Follow = wormholeCameraFollow; + // FollowCamera.enabled = false; + ship.EnterWormhole(wormhole.Position); + ship.OnEnteredWormhole += () => + { + var oldZone = Zone; + PopulateLevel(wormhole.Target); + foreach (var zone in wormhole.Target.AdjacentZones) + CurrentSector.DiscoveredZones.Add(zone); + SectorMap.QueueZoneReveal(wormhole.Target.AdjacentZones); + ship.ExitWormhole(ZoneRenderer.WormholeInstances.Keys.First(w => w.Target == oldZone.SectorZone).Position, + Settings.GameplaySettings.WormholeExitVelocity * ItemManager.Random.NextFloat2Direction()); + CurrentEntity.Zone = Zone; + SaveState(); + }; + } + public void PopulateLevel(SectorZone sectorZone) { if (sectorZone == null) throw new ArgumentNullException(nameof(sectorZone)); @@ -661,11 +618,36 @@ public class ActionGameManager : MonoBehaviour } } + private void ToggleMenuTab(MenuTab tab) + { + if (EventSystem.current.currentSelectedGameObject?.GetComponent() != null) return; + if (MainMenu.gameObject.activeSelf) return; + if (Menu.gameObject.activeSelf && Menu.CurrentTab == tab) + { + Cursor.lockState = CursorLockMode.Locked; + Menu.gameObject.SetActive(false); + if (CurrentEntity != null && CurrentEntity.Parent == null) + { + Input.Player.Enable(); + GameplayUI.gameObject.SetActive(true); + + SchematicDisplay.ShowShip(CurrentEntity); + ShipPanel.Display(CurrentEntity, true); + } + return; + } + + Cursor.lockState = CursorLockMode.None; + Input.Player.Disable(); + Menu.ShowTab(tab); + GameplayUI.gameObject.SetActive(false); + } + private void StartGame() { if (CurrentSector != null) { - if (PlayerSettings.CurrentRun == null) + if (PlayerSettings.SavedRun == null) { SectorMap.QueueZoneReveal(CurrentSector.Entrance.AdjacentZones.Prepend(CurrentSector.Entrance)); PopulateLevel(CurrentSector.Entrance); @@ -688,8 +670,8 @@ public class ActionGameManager : MonoBehaviour foreach(var group in CurrentSector.DiscoveredZones .GroupBy(dz=>dz.Distance[CurrentSector.Entrance])) SectorMap.QueueZoneReveal(group); - PopulateLevel(CurrentSector.Zones[PlayerSettings.CurrentRun.CurrentZone]); - var targetEntity = Zone.Entities[PlayerSettings.CurrentRun.CurrentZoneEntity]; + PopulateLevel(CurrentSector.Zones[PlayerSettings.SavedRun.CurrentZone]); + var targetEntity = Zone.Entities[PlayerSettings.SavedRun.CurrentZoneEntity]; if (targetEntity is OrbitalEntity orbitalEntity) { CurrentEntity = targetEntity.Children.First(c => c is Ship {IsPlayerShip: true}); @@ -913,42 +895,7 @@ public class ActionGameManager : MonoBehaviour _visibleHostileIndicators.Remove(removeEvent.Value); })); - _shipSubscriptions.Add(CurrentEntity.Death.Subscribe(cause => - { - var deathTime = Time.time; - UnbindEntity(); - CurrentEntity = null; - VolumeRenderer.EnableDepth = false; - MainMenu.gameObject.SetActive(true); - Menu.gameObject.SetActive(false); - PlayerSettings.CurrentRun = null; - SavePlayerSettings(); - Observable.EveryUpdate() - .Where(_ => Time.time - deathTime < DeathPPTransitionTime) - .Subscribe(_ => - { - var t = (Time.time - deathTime) / DeathPPTransitionTime; - if(cause==CauseOfDeath.Heatstroke) - { - HeatstrokePP.weight = 1 - t; - SevereHeatstrokePP.weight = 1 - t; - } - else if (cause == CauseOfDeath.Hypothermia) - { - HypothermiaPP.weight = 1 - t; - SevereHypothermiaPP.weight = 1 - t; - } - DeathPP.weight = t; - }, - () => - { - HeatstrokePP.weight = 0; - SevereHeatstrokePP.weight = 0; - HypothermiaPP.weight = 0; - SevereHypothermiaPP.weight = 0; - DeathPP.weight = 1; - }); - })); + _shipSubscriptions.Add(CurrentEntity.Death.Subscribe(Die)); _lockingIndicators = CurrentEntity.GetBehaviors() .Select(x => @@ -958,6 +905,43 @@ public class ActionGameManager : MonoBehaviour }).ToArray(); } + private void Die(CauseOfDeath cause) + { + var deathTime = Time.time; + UnbindEntity(); + CurrentEntity = null; + VolumeRenderer.EnableDepth = false; + MainMenu.gameObject.SetActive(true); + Menu.gameObject.SetActive(false); + CurrentSector = null; + SavePlayerSettings(); + Observable.EveryUpdate() + .Where(_ => Time.time - deathTime < DeathPPTransitionTime) + .Subscribe(_ => + { + var t = (Time.time - deathTime) / DeathPPTransitionTime; + if(cause==CauseOfDeath.Heatstroke) + { + HeatstrokePP.weight = 1 - t; + SevereHeatstrokePP.weight = 1 - t; + } + else if (cause == CauseOfDeath.Hypothermia) + { + HypothermiaPP.weight = 1 - t; + SevereHypothermiaPP.weight = 1 - t; + } + DeathPP.weight = t; + }, + () => + { + HeatstrokePP.weight = 0; + SevereHeatstrokePP.weight = 0; + HypothermiaPP.weight = 0; + SevereHypothermiaPP.weight = 0; + DeathPP.weight = 1; + }); + } + public void SaveZone(string name) => File.WriteAllBytes( Path.Combine(_gameDataDirectory.FullName, $"{name}.zone"), MessagePackSerializer.Serialize(Zone.PackZone())); diff --git a/Assets/Scripts/ServerShared/AetheriaMath.cs b/Assets/Scripts/ServerShared/AetheriaMath.cs index 0080b3a80..0056ade65 100644 --- a/Assets/Scripts/ServerShared/AetheriaMath.cs +++ b/Assets/Scripts/ServerShared/AetheriaMath.cs @@ -12,6 +12,16 @@ public static class AetheriaMath { return source * exp(-lambda * dt); } + + public static float3 Decay(float3 source, float lambda, float dt) + { + return source * exp(-lambda * dt); + } + + public static float3 Decay(float3 source, float3 lambda, float dt) + { + return source * exp(-lambda * dt); + } public static float Damp(float a, float b, float lambda, float dt) { diff --git a/Assets/Scripts/ServerShared/Behaviors/AetherDrive.cs b/Assets/Scripts/ServerShared/Behaviors/AetherDrive.cs new file mode 100644 index 000000000..130f3868c --- /dev/null +++ b/Assets/Scripts/ServerShared/Behaviors/AetherDrive.cs @@ -0,0 +1,121 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ + +using MessagePack; +using Newtonsoft.Json; +using Unity.Mathematics; +using static Unity.Mathematics.math; + +[Inspectable, MessagePackObject, JsonObject(MemberSerialization.OptIn), EntityTypeRestriction(HullType.Ship), RuntimeInspectable] +public class AetherDriveData : BehaviorData +{ + [Inspectable, JsonProperty("diameters"), Key(1)] + public float3 RotorDiameter; + + [Inspectable, JsonProperty("masses"), Key(2)] + public float3 RotorMass; + + [Inspectable, JsonProperty("rpm"), Key(3), RuntimeInspectable] + public PerformanceStat MaximumRpm; + + [Inspectable, JsonProperty("couplingLambdas"), Key(4)] + public float3 CouplingLambda; + + [Inspectable, JsonProperty("couplingEfficiency"), Key(5), RuntimeInspectable] + public PerformanceStat CouplingEfficiency; + + [Inspectable, JsonProperty("torque"), Key(6), RuntimeInspectable] + public PerformanceStat Torque; + + [Inspectable, JsonProperty("torqueProfile"), Key(7), RuntimeInspectable] + public BezierCurve TorqueProfile; + + [Inspectable, JsonProperty("draw"), Key(8), RuntimeInspectable] + public PerformanceStat EnergyDraw; + + [Inspectable, JsonProperty("passiveCoupling"), Key(9), RuntimeInspectable] + public PerformanceStat PassiveCoupling; + + public override IBehavior CreateInstance(EquippedItem item) + { + return new AetherDrive(this, item); + } +} + +public class AetherDrive : IBehavior +{ + private AetherDriveData _data; + private float3 _axis; + + public EquippedItem Item { get; } + public float3 Thrust { get; private set; } + public float3 Rpm { get; private set; } + public float MaximumRpm { get; private set; } + + public BehaviorData Data => _data; + public AetherDriveData DriveData => _data; + + public float3 Axis + { + get => _axis; + set => _axis = clamp(value, -1, 1); + } + + public AetherDrive(AetherDriveData data, EquippedItem item) + { + _data = data; + Item = item; + } + + public bool Execute(float dt) + { + var rotorSpeed = Rpm * _data.RotorDiameter / 100; + + var forward = normalize(Item.Entity.Direction); + var right = forward.Rotate(ItemRotation.Clockwise); + + var speed = float2(dot(Item.Entity.Velocity, forward), dot(Item.Entity.Velocity, right)); + var couplingEfficiency = Item.Evaluate(_data.CouplingEfficiency); + var efficiency = float3(saturate(1 - speed / max(rotorSpeed.xy, 1) * sign(_axis.xy)) * couplingEfficiency, 1); + + Thrust = (Rpm - AetheriaMath.Decay(Rpm, _data.CouplingLambda, dt)) * _data.RotorMass * efficiency; + + var couplingLambda = _data.CouplingLambda * max(abs(_axis), Item.Evaluate(_data.PassiveCoupling)); + var previousRpm = Rpm; + Rpm = AetheriaMath.Decay(Rpm, couplingLambda, dt); + var rpmLoss = previousRpm - Rpm; + var force = rpmLoss * _data.RotorMass * efficiency; + + var heat = rpmLoss * _data.RotorMass * (1 - couplingEfficiency); + Item.AddHeat((heat.x + heat.y + heat.z)*Item.ItemManager.GameplaySettings.AetherHeatMultiplier); + + Item.Entity.Velocity += forward * (_axis.x * force.x / Item.Entity.Mass); + Item.Entity.Velocity += right * (_axis.y * force.y / Item.Entity.Mass); + Item.Entity.Direction = mul(Item.Entity.Direction, + Unity.Mathematics.float2x2.Rotate(force.z * _axis.z * Item.ItemManager.GameplaySettings.AetherTorqueMultiplier / Item.Entity.Mass)); + + if(float.IsNaN(Item.Entity.Velocity.x)) + Item.ItemManager.Log("FUCK FUCK FUCK FUCK"); + + MaximumRpm = Item.Evaluate(_data.MaximumRpm); + var torqueProfile = float3( + _data.TorqueProfile.Evaluate(Rpm.x / MaximumRpm), + _data.TorqueProfile.Evaluate(Rpm.y / MaximumRpm), + _data.TorqueProfile.Evaluate(Rpm.z / MaximumRpm)); + var potentialTorque = Item.Evaluate(_data.Torque) * torqueProfile; + var potentialRpmDelta = potentialTorque / length(_data.RotorMass) * dt; + var actualRpmDelta = min(MaximumRpm - Rpm, potentialRpmDelta); + var torqueRatio = actualRpmDelta / potentialRpmDelta; + var draw = torqueRatio * Item.Evaluate(_data.EnergyDraw) / 3; + + if (Item.Entity.TryConsumeEnergy((draw.x + draw.y + draw.z)*dt)) + { + Rpm += actualRpmDelta; + return true; + } + + + return false; + } +} \ No newline at end of file diff --git a/Assets/Scripts/ServerShared/Behaviors/AetherDrive.cs.meta b/Assets/Scripts/ServerShared/Behaviors/AetherDrive.cs.meta new file mode 100644 index 000000000..96fd33b04 --- /dev/null +++ b/Assets/Scripts/ServerShared/Behaviors/AetherDrive.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 2022c838bbc64a0d86cfbd477e6a379c +timeCreated: 1618332827 \ No newline at end of file diff --git a/Assets/Scripts/ServerShared/Behaviors/AutoWeapon.cs b/Assets/Scripts/ServerShared/Behaviors/AutoWeapon.cs index 1d744209b..f1edb9c78 100644 --- a/Assets/Scripts/ServerShared/Behaviors/AutoWeapon.cs +++ b/Assets/Scripts/ServerShared/Behaviors/AutoWeapon.cs @@ -22,11 +22,11 @@ public class AutoWeapon : InstantWeapon { } - public override bool Execute(float delta) + public override bool Execute(float dt) { if(_firing && _burstRemaining == 0 && _cooldown < 0) Trigger(); - return base.Execute(delta); + return base.Execute(dt); } } diff --git a/Assets/Scripts/ServerShared/Behaviors/Behaviors.cs b/Assets/Scripts/ServerShared/Behaviors/Behaviors.cs index d79d9c3fd..aef3e82ab 100644 --- a/Assets/Scripts/ServerShared/Behaviors/Behaviors.cs +++ b/Assets/Scripts/ServerShared/Behaviors/Behaviors.cs @@ -15,7 +15,7 @@ using static Unity.Mathematics.noise; public interface IBehavior { - bool Execute(float delta); + bool Execute(float dt); BehaviorData Data { get; } } @@ -96,7 +96,7 @@ public abstract class PersistentBehaviorData Union(9, typeof(WearData)), Union(10, typeof(VelocityConversionData)), Union(11, typeof(VelocityLimitData)), - // Union(13, typeof(PatrolControllerData)), + Union(12, typeof(AetherDriveData)), // Union(14, typeof(TowingControllerData)), Union(15, typeof(CooldownData)), Union(16, typeof(HeatData)), diff --git a/Assets/Scripts/ServerShared/Behaviors/Capacitor.cs b/Assets/Scripts/ServerShared/Behaviors/Capacitor.cs index a75a53105..e6eade882 100644 --- a/Assets/Scripts/ServerShared/Behaviors/Capacitor.cs +++ b/Assets/Scripts/ServerShared/Behaviors/Capacitor.cs @@ -47,7 +47,7 @@ public class Capacitor : IBehavior Item = item; } - public bool Execute(float delta) + public bool Execute(float dt) { Capacity = Item.Evaluate(_data.Capacity); Efficiency = Item.Evaluate(_data.Efficiency); diff --git a/Assets/Scripts/ServerShared/Behaviors/ChargedWeapon.cs b/Assets/Scripts/ServerShared/Behaviors/ChargedWeapon.cs index 8ddd997e9..ca0c909f4 100644 --- a/Assets/Scripts/ServerShared/Behaviors/ChargedWeapon.cs +++ b/Assets/Scripts/ServerShared/Behaviors/ChargedWeapon.cs @@ -112,14 +112,14 @@ public class ChargedWeapon : InstantWeapon, IEventBehavior Velocity *= lerp(1, _data.ChargeFiringVelocityMultiplier, saturate(_charge)); } - public override bool Execute(float delta) + public override bool Execute(float dt) { if (_charging) { - _charge += delta / ChargeTime; + _charge += dt / ChargeTime; if (!_charged) { - Item.AddHeat(ChargeHeat * (delta / ChargeTime)); + Item.AddHeat(ChargeHeat * (dt / ChargeTime)); if(_charge > 1) { _charged = true; @@ -136,7 +136,7 @@ public class ChargedWeapon : InstantWeapon, IEventBehavior Item.EquippableItem.Durability -= _data.FailureDamage; } } - return base.Execute(delta); + return base.Execute(dt); } public override void Activate() diff --git a/Assets/Scripts/ServerShared/Behaviors/Cockpit.cs b/Assets/Scripts/ServerShared/Behaviors/Cockpit.cs index 528e664d9..372d11d32 100644 --- a/Assets/Scripts/ServerShared/Behaviors/Cockpit.cs +++ b/Assets/Scripts/ServerShared/Behaviors/Cockpit.cs @@ -32,7 +32,7 @@ public class Cockpit : IBehavior Item = item; } - public bool Execute(float delta) + public bool Execute(float dt) { return true; } diff --git a/Assets/Scripts/ServerShared/Behaviors/ConstantWeapon.cs b/Assets/Scripts/ServerShared/Behaviors/ConstantWeapon.cs index af35f25e5..473ed5eba 100644 --- a/Assets/Scripts/ServerShared/Behaviors/ConstantWeapon.cs +++ b/Assets/Scripts/ServerShared/Behaviors/ConstantWeapon.cs @@ -62,12 +62,12 @@ public class ConstantWeapon : Weapon, IProgressBehavior, IEventBehavior _data = data; } - public override bool Execute(float delta) + public override bool Execute(float dt) { - base.Execute(delta); + base.Execute(dt); if (_firing) { - if (!Item.Entity.TryConsumeEnergy(Item.Evaluate(_data.Energy) * delta)) + if (!Item.Entity.TryConsumeEnergy(Item.Evaluate(_data.Energy) * dt)) { _firing = false; OnStopFiring?.Invoke(); @@ -77,7 +77,7 @@ public class ConstantWeapon : Weapon, IProgressBehavior, IEventBehavior { if (_reloading) { - _reload -= delta / _data.ReloadTime; + _reload -= dt / _data.ReloadTime; if (_reload < 0) { _reloading = false; @@ -86,7 +86,7 @@ public class ConstantWeapon : Weapon, IProgressBehavior, IEventBehavior return false; } - _ammoInterval -= delta / _data.AmmoInterval; + _ammoInterval -= dt / _data.AmmoInterval; if (_ammoInterval < 0) { _ammoInterval = 1; @@ -115,10 +115,10 @@ public class ConstantWeapon : Weapon, IProgressBehavior, IEventBehavior } } - var dmg = Item.Wear * delta; + var dmg = Item.Wear * dt; Item.EquippableItem.Durability -= dmg; Item.Entity.ItemDamage.OnNext((Item, dmg)); - Item.AddHeat(Item.Evaluate(_data.Heat) * delta); + Item.AddHeat(Item.Evaluate(_data.Heat) * dt); Item.Entity.VisibilitySources[this] = Item.Evaluate(_data.Visibility); } return true; diff --git a/Assets/Scripts/ServerShared/Behaviors/Cooldown.cs b/Assets/Scripts/ServerShared/Behaviors/Cooldown.cs index 0b63b2f79..47f6da01f 100644 --- a/Assets/Scripts/ServerShared/Behaviors/Cooldown.cs +++ b/Assets/Scripts/ServerShared/Behaviors/Cooldown.cs @@ -38,7 +38,7 @@ public class Cooldown : IBehavior, IAlwaysUpdatedBehavior, IProgressBehavior Item = item; } - public bool Execute(float delta) + public bool Execute(float dt) { if (_cooldown < 0) { diff --git a/Assets/Scripts/ServerShared/Behaviors/EnergyDraw.cs b/Assets/Scripts/ServerShared/Behaviors/EnergyDraw.cs index 909c7e9d1..382139155 100644 --- a/Assets/Scripts/ServerShared/Behaviors/EnergyDraw.cs +++ b/Assets/Scripts/ServerShared/Behaviors/EnergyDraw.cs @@ -36,8 +36,8 @@ public class EnergyDraw : IBehavior Item = item; } - public bool Execute(float delta) + public bool Execute(float dt) { - return Item.Entity.TryConsumeEnergy(Item.Evaluate(_data.EnergyDraw) * (_data.PerSecond ? delta : 1)); + return Item.Entity.TryConsumeEnergy(Item.Evaluate(_data.EnergyDraw) * (_data.PerSecond ? dt : 1)); } } \ No newline at end of file diff --git a/Assets/Scripts/ServerShared/Behaviors/Heat.cs b/Assets/Scripts/ServerShared/Behaviors/Heat.cs index 7bcd353bb..49c0082fb 100644 --- a/Assets/Scripts/ServerShared/Behaviors/Heat.cs +++ b/Assets/Scripts/ServerShared/Behaviors/Heat.cs @@ -36,9 +36,9 @@ public class Heat : IBehavior Item = item; } - public bool Execute(float delta) + public bool Execute(float dt) { - Item.AddHeat(Item.Evaluate(_data.Heat) * (_data.PerSecond ? delta : 1)); + Item.AddHeat(Item.Evaluate(_data.Heat) * (_data.PerSecond ? dt : 1)); return true; } diff --git a/Assets/Scripts/ServerShared/Behaviors/HeatStorage.cs b/Assets/Scripts/ServerShared/Behaviors/HeatStorage.cs index ba19424f2..956a65adf 100644 --- a/Assets/Scripts/ServerShared/Behaviors/HeatStorage.cs +++ b/Assets/Scripts/ServerShared/Behaviors/HeatStorage.cs @@ -31,7 +31,7 @@ public class HeatStorage : IBehavior Item = item; } - public bool Execute(float delta) + public bool Execute(float dt) { return true; } diff --git a/Assets/Scripts/ServerShared/Behaviors/InstantWeapon.cs b/Assets/Scripts/ServerShared/Behaviors/InstantWeapon.cs index b2624ef72..e8a5637fa 100644 --- a/Assets/Scripts/ServerShared/Behaviors/InstantWeapon.cs +++ b/Assets/Scripts/ServerShared/Behaviors/InstantWeapon.cs @@ -136,12 +136,12 @@ public class InstantWeapon : Weapon, IProgressBehavior, IEventBehavior } - public override bool Execute(float delta) + public override bool Execute(float dt) { - base.Execute(delta); + base.Execute(dt); if (_coolingDown) { - _cooldown -= delta / (_data.MagazineSize > 0 && _ammo == 0 ? _data.ReloadTime : Cooldown); + _cooldown -= dt / (_data.MagazineSize > 0 && _ammo == 0 ? _data.ReloadTime : Cooldown); if (_cooldown < 0) { _coolingDown = false; @@ -155,7 +155,7 @@ public class InstantWeapon : Weapon, IProgressBehavior, IEventBehavior } } - _burstTimer += delta; + _burstTimer += dt; while (_burstRemaining > 0 && _burstTimer > 0) { // If multiple ammo is consumed per burst, perform ammo and energy consumption here diff --git a/Assets/Scripts/ServerShared/Behaviors/ItemUsage.cs b/Assets/Scripts/ServerShared/Behaviors/ItemUsage.cs index 8c29be978..52b05af7e 100644 --- a/Assets/Scripts/ServerShared/Behaviors/ItemUsage.cs +++ b/Assets/Scripts/ServerShared/Behaviors/ItemUsage.cs @@ -33,7 +33,7 @@ public class ItemUsage : IBehavior Item = item; } - public bool Execute(float delta) + public bool Execute(float dt) { var cargo = Item.Entity.FindItemInCargo(_data.Item); if (cargo == null) return false; diff --git a/Assets/Scripts/ServerShared/Behaviors/LockWeapon.cs b/Assets/Scripts/ServerShared/Behaviors/LockWeapon.cs index 46a6bc5fa..fca86aebd 100644 --- a/Assets/Scripts/ServerShared/Behaviors/LockWeapon.cs +++ b/Assets/Scripts/ServerShared/Behaviors/LockWeapon.cs @@ -61,7 +61,7 @@ public class LockWeapon : InstantWeapon _data = data; } - public override bool Execute(float delta) + public override bool Execute(float dt) { if (_target != Item.Entity.Target.Value) { @@ -81,12 +81,12 @@ public class LockWeapon : InstantWeapon if (degrees < LockAngle) { var lerp = 1 - unlerp(0, 90, degrees); - _lock = saturate(_lock + pow(lerp, DirectionImpact) * delta * LockSpeed * pow(Item.Entity.EntityInfoGathered[Item.Entity.Target.Value], SensorImpact)); + _lock = saturate(_lock + pow(lerp, DirectionImpact) * dt * LockSpeed * pow(Item.Entity.EntityInfoGathered[Item.Entity.Target.Value], SensorImpact)); } - else _lock = saturate(_lock - delta * Decay); + else _lock = saturate(_lock - dt * Decay); } - return base.Execute(delta); + return base.Execute(dt); } } diff --git a/Assets/Scripts/ServerShared/Behaviors/MiningTool.cs b/Assets/Scripts/ServerShared/Behaviors/MiningTool.cs index 413c11ac4..40426583a 100644 --- a/Assets/Scripts/ServerShared/Behaviors/MiningTool.cs +++ b/Assets/Scripts/ServerShared/Behaviors/MiningTool.cs @@ -48,7 +48,7 @@ public class MiningTool : IBehavior Item = item; } - public bool Execute(float delta) + public bool Execute(float dt) { Range = Item.Evaluate(_data.Range); var belt = Item.Entity.Zone.AsteroidBelts[AsteroidBelt]; @@ -60,7 +60,7 @@ public class MiningTool : IBehavior Item.Entity, AsteroidBelt, Asteroid, - Item.Evaluate(_data.DamagePerSecond) * delta, + Item.Evaluate(_data.DamagePerSecond) * dt, Item.Evaluate(_data.Efficiency), Item.Evaluate(_data.Penetration)); return true; diff --git a/Assets/Scripts/ServerShared/Behaviors/Radiator.cs b/Assets/Scripts/ServerShared/Behaviors/Radiator.cs index 164bf4175..e5a9065e5 100644 --- a/Assets/Scripts/ServerShared/Behaviors/Radiator.cs +++ b/Assets/Scripts/ServerShared/Behaviors/Radiator.cs @@ -51,7 +51,7 @@ public class Radiator : IBehavior, IAlwaysUpdatedBehavior, IInitializableBehavio Item = item; } - public bool Execute(float delta) + public bool Execute(float dt) { PumpedHeat = Item.Evaluate(_data.PumpedHeat); WasteHeat = Item.Evaluate(_data.WasteHeat); @@ -63,7 +63,7 @@ public class Radiator : IBehavior, IAlwaysUpdatedBehavior, IInitializableBehavio // Temperature ratio would cause more waste heat than pump capacity, stop executing if (tempRatio > PumpedHeat / WasteHeat) return true; - if (!Item.Entity.TryConsumeEnergy(EnergyUsage * tempRatio * delta)) return false; + if (!Item.Entity.TryConsumeEnergy(EnergyUsage * tempRatio * dt)) return false; var pumpedHeat = PumpedHeat * max(itemTemperature - _data.TemperatureFloor, 0); @@ -72,8 +72,8 @@ public class Radiator : IBehavior, IAlwaysUpdatedBehavior, IInitializableBehavio var wasteHeat = WasteHeat * tempRatio; - Item.AddHeat((wasteHeat - pumpedHeat) * delta); - Temperature += pumpedHeat / Item.ItemManager.GetThermalMass(Item.EquippableItem) * delta; + Item.AddHeat((wasteHeat - pumpedHeat) * dt); + Temperature += pumpedHeat / Item.ItemManager.GetThermalMass(Item.EquippableItem) * dt; return true; } diff --git a/Assets/Scripts/ServerShared/Behaviors/Reactor.cs b/Assets/Scripts/ServerShared/Behaviors/Reactor.cs index ca7859a6b..20df3c4a7 100644 --- a/Assets/Scripts/ServerShared/Behaviors/Reactor.cs +++ b/Assets/Scripts/ServerShared/Behaviors/Reactor.cs @@ -71,9 +71,9 @@ public class Reactor : IBehavior, IOrderedBehavior Draw += energy; } - public bool Execute(float delta) + public bool Execute(float dt) { - var charge = Item.Evaluate(_data.Charge) * delta; + var charge = Item.Evaluate(_data.Charge) * dt; var efficiency = Item.Evaluate(_data.Efficiency); // This behavior executes last, so any components drawing power have already done so diff --git a/Assets/Scripts/ServerShared/Behaviors/Reflector.cs b/Assets/Scripts/ServerShared/Behaviors/Reflector.cs index 01482a022..eea92e1be 100644 --- a/Assets/Scripts/ServerShared/Behaviors/Reflector.cs +++ b/Assets/Scripts/ServerShared/Behaviors/Reflector.cs @@ -36,7 +36,7 @@ public class Reflector : IBehavior Item = item; } - public bool Execute(float delta) + public bool Execute(float dt) { Item.Entity.VisibilitySources[this] = Item.Evaluate(_data.CrossSection) * Item.Entity.Zone.GetLight(Item.Entity.Position.xz); diff --git a/Assets/Scripts/ServerShared/Behaviors/ResourceScanner.cs b/Assets/Scripts/ServerShared/Behaviors/ResourceScanner.cs index 571cf52fe..452885047 100644 --- a/Assets/Scripts/ServerShared/Behaviors/ResourceScanner.cs +++ b/Assets/Scripts/ServerShared/Behaviors/ResourceScanner.cs @@ -61,7 +61,7 @@ public class ResourceScanner : IBehavior, IAlwaysUpdatedBehavior Item = item; } - public bool Execute(float delta) + public bool Execute(float dt) { var planetData = Item.Entity.Zone.Planets[ScanTarget]; if (planetData != null) @@ -72,7 +72,7 @@ public class ResourceScanner : IBehavior, IAlwaysUpdatedBehavior Asteroid < beltData.Asteroids.Length && length(Item.Entity.Position.xz - Item.Entity.Zone.AsteroidBelts[ScanTarget].Positions[Asteroid].xz) < Range) { - _scanTime += delta; + _scanTime += dt; if (_scanTime > ScanDuration) { // TODO: Implement Scanning! @@ -86,7 +86,7 @@ public class ResourceScanner : IBehavior, IAlwaysUpdatedBehavior { if(length(Item.Entity.Position.xz - Item.Entity.Zone.GetOrbitPosition(planetData.Orbit)) < Range) { - _scanTime += delta; + _scanTime += dt; if (_scanTime > ScanDuration) { //Context.ItemData.Get(Entity.Corporation).PlanetSurveyFloor[ScanTarget] = MinimumDensity; diff --git a/Assets/Scripts/ServerShared/Behaviors/Sensor.cs b/Assets/Scripts/ServerShared/Behaviors/Sensor.cs index 2bf78c9a0..c1456302e 100644 --- a/Assets/Scripts/ServerShared/Behaviors/Sensor.cs +++ b/Assets/Scripts/ServerShared/Behaviors/Sensor.cs @@ -99,11 +99,11 @@ public class Sensor : IBehavior, IEventBehavior Item = item; } - public bool Execute(float delta) + public bool Execute(float dt) { if (_pinging) { - _pingLerp += delta / _data.PingDuration; + _pingLerp += dt / _data.PingDuration; _pingRadius = lerp(0, Item.Evaluate(_data.PingRange), pow(_pingLerp, _data.PingRadiusExponent)); if (_pingLerp > 1) { @@ -112,7 +112,7 @@ public class Sensor : IBehavior, IEventBehavior } } - _pingCooldown -= delta / Item.Evaluate(_data.PingCooldown); + _pingCooldown -= dt / Item.Evaluate(_data.PingCooldown); // TODO: Handle Active Detection / Visibility From Reflected Radiance var hardpoint = Item.Entity.Hardpoints[Item.Position.x, Item.Position.y]; @@ -145,9 +145,9 @@ public class Sensor : IBehavior, IEventBehavior entity.Visibility * Item.Evaluate(_data.Sensitivity) * _data.SensitivityCurve.Evaluate(angle / PI) * - delta / dist); + dt / dist); } - next *= 1 - Item.ItemManager.GameplaySettings.TargetInfoDecay * delta; + next *= 1 - Item.ItemManager.GameplaySettings.TargetInfoDecay * dt; //Context.Log($"{entity.Name} visibility {(int)(previous * 100)}% -> {(int)(next * 100)}%"); Item.Entity.EntityInfoGathered[entity] = next; } diff --git a/Assets/Scripts/ServerShared/Behaviors/Shield.cs b/Assets/Scripts/ServerShared/Behaviors/Shield.cs index 0ef02801c..a1dc6069e 100644 --- a/Assets/Scripts/ServerShared/Behaviors/Shield.cs +++ b/Assets/Scripts/ServerShared/Behaviors/Shield.cs @@ -39,7 +39,7 @@ public class Shield : IBehavior Item = item; } - public bool Execute(float delta) + public bool Execute(float dt) { Efficiency = Item.Evaluate(_data.Efficiency); EnergyUsage = Item.Evaluate(_data.EnergyUsage); diff --git a/Assets/Scripts/ServerShared/Behaviors/StatModifier.cs b/Assets/Scripts/ServerShared/Behaviors/StatModifier.cs index e40dd3b44..f065f96ca 100644 --- a/Assets/Scripts/ServerShared/Behaviors/StatModifier.cs +++ b/Assets/Scripts/ServerShared/Behaviors/StatModifier.cs @@ -77,7 +77,7 @@ public class StatModifier : IBehavior, IInitializableBehavior, IDisposableBehavi } } - public bool Execute(float delta) + public bool Execute(float dt) { foreach (var stat in _stats) (_data.Type == StatModifierType.Constant diff --git a/Assets/Scripts/ServerShared/Behaviors/Switch.cs b/Assets/Scripts/ServerShared/Behaviors/Switch.cs index 9d5686ae4..41d6d019a 100644 --- a/Assets/Scripts/ServerShared/Behaviors/Switch.cs +++ b/Assets/Scripts/ServerShared/Behaviors/Switch.cs @@ -32,7 +32,7 @@ public class Switch : IBehavior Item = item; } - public bool Execute(float delta) + public bool Execute(float dt) { return Activated; } diff --git a/Assets/Scripts/ServerShared/Behaviors/Thermotoggle.cs b/Assets/Scripts/ServerShared/Behaviors/Thermotoggle.cs index 4fe226352..cdb1d7e49 100644 --- a/Assets/Scripts/ServerShared/Behaviors/Thermotoggle.cs +++ b/Assets/Scripts/ServerShared/Behaviors/Thermotoggle.cs @@ -42,7 +42,7 @@ public class Thermotoggle : IBehavior TargetTemperature = data.TargetTemperature; } - public bool Execute(float delta) + public bool Execute(float dt) { return Item.Temperature < TargetTemperature ^ _data.HighPass; } diff --git a/Assets/Scripts/ServerShared/Behaviors/Thruster.cs b/Assets/Scripts/ServerShared/Behaviors/Thruster.cs index ab3e68f87..601d3be99 100644 --- a/Assets/Scripts/ServerShared/Behaviors/Thruster.cs +++ b/Assets/Scripts/ServerShared/Behaviors/Thruster.cs @@ -63,15 +63,15 @@ public class Thruster : IAnalogBehavior Thrust = Item.Evaluate(_data.Thrust); } - public bool Execute(float delta) + public bool Execute(float dt) { if(_input > .01f && Item.Entity.TryConsumeEnergy(_input * Item.Evaluate(_data.EnergyUsage))) { Thrust = Item.Evaluate(_data.Thrust); - Item.Entity.Velocity -= Item.Entity.Direction.Rotate(Item.EquippableItem.Rotation) * _input * Thrust / Item.Entity.Mass * delta; + Item.Entity.Velocity -= Item.Entity.Direction.Rotate(Item.EquippableItem.Rotation) * _input * Thrust / Item.Entity.Mass * dt; Item.Entity.Direction = mul(Item.Entity.Direction, - Unity.Mathematics.float2x2.Rotate(_input * Torque * Thrust * Item.ItemManager.GameplaySettings.TorqueMultiplier / Item.Entity.Mass * delta)); - Item.AddHeat(_input * Item.Evaluate(_data.Heat) * delta); + Unity.Mathematics.float2x2.Rotate(_input * Torque * Thrust * Item.ItemManager.GameplaySettings.TorqueMultiplier / Item.Entity.Mass * dt)); + Item.AddHeat(_input * Item.Evaluate(_data.Heat) * dt); var vis = _input * Item.Evaluate(_data.Visibility); if (!Item.Entity.VisibilitySources.ContainsKey(this) || vis > Item.Entity.VisibilitySources[this]) Item.Entity.VisibilitySources[this] = vis; diff --git a/Assets/Scripts/ServerShared/Behaviors/Trigger.cs b/Assets/Scripts/ServerShared/Behaviors/Trigger.cs index 007588214..d70111c97 100644 --- a/Assets/Scripts/ServerShared/Behaviors/Trigger.cs +++ b/Assets/Scripts/ServerShared/Behaviors/Trigger.cs @@ -32,7 +32,7 @@ public class Trigger : IBehavior, IActivatedBehavior Item = item; } - public bool Execute(float delta) + public bool Execute(float dt) { if (_pulled) { diff --git a/Assets/Scripts/ServerShared/Behaviors/TurretController.cs b/Assets/Scripts/ServerShared/Behaviors/TurretController.cs index c13ea7df8..a7d9b0801 100644 --- a/Assets/Scripts/ServerShared/Behaviors/TurretController.cs +++ b/Assets/Scripts/ServerShared/Behaviors/TurretController.cs @@ -65,7 +65,7 @@ public class TurretController : IBehavior } } - public bool Execute(float delta) + public bool Execute(float dt) { if (Item.Entity.Target.Value != null) { diff --git a/Assets/Scripts/ServerShared/Behaviors/VelocityConversion.cs b/Assets/Scripts/ServerShared/Behaviors/VelocityConversion.cs index 4214c7955..2e6d61c15 100644 --- a/Assets/Scripts/ServerShared/Behaviors/VelocityConversion.cs +++ b/Assets/Scripts/ServerShared/Behaviors/VelocityConversion.cs @@ -33,7 +33,7 @@ public class VelocityConversion : IBehavior Item = item; } - public bool Execute(float delta) + public bool Execute(float dt) { return true; } diff --git a/Assets/Scripts/ServerShared/Behaviors/VelocityLimit.cs b/Assets/Scripts/ServerShared/Behaviors/VelocityLimit.cs index 72e9cdaf1..78cc75935 100644 --- a/Assets/Scripts/ServerShared/Behaviors/VelocityLimit.cs +++ b/Assets/Scripts/ServerShared/Behaviors/VelocityLimit.cs @@ -37,7 +37,7 @@ public class VelocityLimit : IBehavior Limit = Item.Evaluate(_data.TopSpeed); } - public bool Execute(float delta) + public bool Execute(float dt) { Limit = Item.Evaluate(_data.TopSpeed); if (length(Item.Entity.Velocity) > Limit) diff --git a/Assets/Scripts/ServerShared/Behaviors/Visibility.cs b/Assets/Scripts/ServerShared/Behaviors/Visibility.cs index c075e4ee6..57c31ab8d 100644 --- a/Assets/Scripts/ServerShared/Behaviors/Visibility.cs +++ b/Assets/Scripts/ServerShared/Behaviors/Visibility.cs @@ -38,7 +38,7 @@ public class Visibility : IBehavior Item = item; } - public bool Execute(float delta) + public bool Execute(float dt) { Item.Entity.VisibilitySources[this] = Item.Evaluate(_data.Visibility); return true; diff --git a/Assets/Scripts/ServerShared/Behaviors/Weapon.cs b/Assets/Scripts/ServerShared/Behaviors/Weapon.cs index a5b923011..3a7ebe28e 100644 --- a/Assets/Scripts/ServerShared/Behaviors/Weapon.cs +++ b/Assets/Scripts/ServerShared/Behaviors/Weapon.cs @@ -118,7 +118,7 @@ public abstract class Weapon : IActivatedBehavior Velocity = Item.Evaluate(_data.Velocity); } - public virtual bool Execute(float delta) + public virtual bool Execute(float dt) { UpdateStats(); return true; diff --git a/Assets/Scripts/ServerShared/Behaviors/Wear.cs b/Assets/Scripts/ServerShared/Behaviors/Wear.cs index 224fc1f20..4e9ccee87 100644 --- a/Assets/Scripts/ServerShared/Behaviors/Wear.cs +++ b/Assets/Scripts/ServerShared/Behaviors/Wear.cs @@ -34,11 +34,11 @@ public class Wear : IBehavior Item = item; } - public bool Execute(float delta) + public bool Execute(float dt) { if (_data.PerSecond) { - var dmg = Item.Wear * delta; + var dmg = Item.Wear * dt; Item.EquippableItem.Durability -= dmg; Item.Entity.ItemDamage.OnNext((Item, dmg)); } diff --git a/Assets/Scripts/ServerShared/Enums.cs b/Assets/Scripts/ServerShared/Enums.cs index aeb4bde24..bc44b397a 100644 --- a/Assets/Scripts/ServerShared/Enums.cs +++ b/Assets/Scripts/ServerShared/Enums.cs @@ -41,7 +41,7 @@ public enum HardpointType Tool, Thermal, Thruster, - WarpThruster, + WarpDrive, Reactor, Radiator, Shield, @@ -49,7 +49,8 @@ public enum HardpointType Energy, Ballistic, Launcher, - ControlModule + ControlModule, + AetherDrive } public enum WeaponType diff --git a/Assets/Scripts/ServerShared/ItemData.cs b/Assets/Scripts/ServerShared/ItemData.cs index 05d26a8f0..df8d9a81c 100644 --- a/Assets/Scripts/ServerShared/ItemData.cs +++ b/Assets/Scripts/ServerShared/ItemData.cs @@ -430,6 +430,9 @@ public class HullData : EquippableItemData [Inspectable, JsonProperty("armor"), Key(24)] public float Armor; + [Inspectable, JsonProperty("drag"), Key(25)] + public float Drag; + [IgnoreMember] public Shape InteriorCells { diff --git a/Assets/Scripts/ServerShared/LoadoutGenerator.cs b/Assets/Scripts/ServerShared/LoadoutGenerator.cs index 2ac662de3..e0999e55f 100644 --- a/Assets/Scripts/ServerShared/LoadoutGenerator.cs +++ b/Assets/Scripts/ServerShared/LoadoutGenerator.cs @@ -70,8 +70,9 @@ public class LoadoutGenerator } var cargo = entity.CargoBays.First(); - var inventory = RandomItems(16, 1, - data => !(data is HullData hull && hull.HullType != HullType.Ship) && !(data is CargoBayData)) + IEnumerable inventory = RandomItems(16, 1, + data => !(data is HullData hull && hull.HullType != HullType.Ship) && !(data is CargoBayData)); + inventory = inventory .OrderByDescending(item=>item.Shape.Coordinates.Length); foreach (var item in inventory) { @@ -86,6 +87,7 @@ public class LoadoutGenerator { return ItemManager.ItemData.GetAll() .Where(item => + item.Price > 0 && (hullFilter?.Invoke(item) ?? true) && item.HullType == type && (Faction == null || item.Manufacturer == Faction.ID || Faction.Allegiance.ContainsKey(item.Manufacturer))) @@ -101,9 +103,11 @@ public class LoadoutGenerator public T[] RandomItems(int count, float sizeExponent, Predicate filter = null) where T : EquippableItemData { return ItemManager.ItemData.GetAll() - .Where(item => Sector.ContainsFaction(item.Manufacturer) && - (Faction == null || Faction.Allegiance.ContainsKey(item.Manufacturer)) && - (filter?.Invoke(item) ?? true)) + .Where(item => + item.Price > 0 && + Sector.ContainsFaction(item.Manufacturer) && + (Faction == null || Faction.Allegiance.ContainsKey(item.Manufacturer)) && + (filter?.Invoke(item) ?? true)) .WeightedRandomElements(ref Random, item => (Faction == null || item.Manufacturer == Faction.ID ? 1 : Faction.Allegiance[item.Manufacturer]) * // Prioritize items from allied manufacturers pow(item.Shape.Coordinates.Length, sizeExponent) / // Prioritize larger items diff --git a/Assets/Scripts/ServerShared/PlayerSettings.cs b/Assets/Scripts/ServerShared/PlayerSettings.cs index daea4cb1b..b5d224e0a 100644 --- a/Assets/Scripts/ServerShared/PlayerSettings.cs +++ b/Assets/Scripts/ServerShared/PlayerSettings.cs @@ -6,7 +6,7 @@ using MessagePack; public class PlayerSettings { [Key(0)] public string Name = "Anonymous"; - [Key(1)] public SavedGame CurrentRun; + [Key(1)] public SavedGame SavedRun; [Key(2)] public TemperatureUnit TemperatureUnit = TemperatureUnit.Celsius; [Key(3)] public int SignificantDigits = 3; diff --git a/Assets/Scripts/ServerShared/Settings.cs b/Assets/Scripts/ServerShared/Settings.cs index 8643cfe6c..0ebe881b8 100644 --- a/Assets/Scripts/ServerShared/Settings.cs +++ b/Assets/Scripts/ServerShared/Settings.cs @@ -176,6 +176,8 @@ public class GameplaySettings public ExponentialLerp LockSpinSpeed; public float TorqueFloor; public float TorqueMultiplier; + public float AetherTorqueMultiplier; + public float AetherHeatMultiplier; public float VisibilityDecay; public float TargetInfoDecay; public float TargetDetectionInfoThreshold; diff --git a/Assets/Scripts/ServerShared/Ship.cs b/Assets/Scripts/ServerShared/Ship.cs index dd6132640..6dd7f00a1 100644 --- a/Assets/Scripts/ServerShared/Ship.cs +++ b/Assets/Scripts/ServerShared/Ship.cs @@ -35,6 +35,8 @@ public class Ship : Entity private HashSet _leftThrusters; private HashSet _clockwiseThrusters; private HashSet _counterClockwiseThrusters; + private HashSet _aetherDriveItems; + private HashSet _aetherDrives; private bool _exitingWormhole = false; private bool _enteringWormhole = false; @@ -51,9 +53,9 @@ public class Ship : Entity public float ClockwiseTorque { get; private set; } public float CounterClockwiseTorque { get; private set; } public float LeftStrafeTotalTorque { get; private set; } - private Thruster[] LeftStrafeTorqueThrusters; + private List LeftStrafeTorqueThrusters = new List(); public float RightStrafeTotalTorque { get; private set; } - private Thruster[] RightStrafeTorqueThrusters; + private List RightStrafeTorqueThrusters = new List(); public float TurnTime(float2 direction) { @@ -89,91 +91,90 @@ public class Ship : Entity public override void Activate() { base.Activate(); + + _aetherDrives = new HashSet(GetBehaviors()); + _aetherDriveItems = new HashSet(_aetherDrives.Select(x => x.Item)); _allThrusters = GetBehaviors().ToArray(); _thrusterItems = new HashSet(_allThrusters.Select(x=>x.Item)); _forwardThrusters = new HashSet(_allThrusters .Where(x => x.Item.EquippableItem.Rotation == ItemRotation.Reversed)); - RecalculateForwardThrust(); - foreach (var thruster in _forwardThrusters) - thruster.Item.Online.Skip(1).Subscribe(b => RecalculateForwardThrust()); _reverseThrusters = new HashSet(_allThrusters .Where(x => x.Item.EquippableItem.Rotation == ItemRotation.None)); - RecalculateReverseThrust(); - foreach (var thruster in _reverseThrusters) - thruster.Item.Online.Skip(1).Subscribe(b => RecalculateReverseThrust()); _rightThrusters = new HashSet(_allThrusters .Where(x => x.Item.EquippableItem.Rotation == ItemRotation.CounterClockwise)); - RecalculateRightStrafeThrust(); - foreach (var thruster in _rightThrusters) - thruster.Item.Online.Skip(1).Subscribe(b => RecalculateRightStrafeThrust()); _leftThrusters = new HashSet(_allThrusters .Where(x => x.Item.EquippableItem.Rotation == ItemRotation.Clockwise)); - RecalculateLeftStrafeThrust(); - foreach (var thruster in _leftThrusters) - thruster.Item.Online.Skip(1).Subscribe(b => RecalculateLeftStrafeThrust()); _counterClockwiseThrusters = new HashSet(_allThrusters .Where(x => x.Torque < -ItemManager.GameplaySettings.TorqueFloor)); - RecalculateCounterClockwiseTorque(); - foreach (var thruster in _counterClockwiseThrusters) - thruster.Item.Online.Skip(1).Subscribe(b => RecalculateCounterClockwiseTorque()); _clockwiseThrusters = new HashSet(_allThrusters .Where(x => x.Torque > ItemManager.GameplaySettings.TorqueFloor)); - RecalculateClockwiseTorque(); - foreach (var thruster in _clockwiseThrusters) - thruster.Item.Online.Skip(1).Subscribe(b => RecalculateClockwiseTorque()); } public Ship(ItemManager itemManager, Zone zone, EquippableItem hull, EntitySettings settings) : base(itemManager, zone, hull, settings) { - void CheckForThruster(EquippedItem item) - { - if (_thrusterItems.Contains(item)) - { - foreach (var behavior in item.Behaviors) - { - if (behavior is Thruster thruster) - { - if (_forwardThrusters.Contains(thruster)) RecalculateForwardThrust(); - if (_reverseThrusters.Contains(thruster)) RecalculateReverseThrust(); - if (_rightThrusters.Contains(thruster)) RecalculateRightStrafeThrust(); - if (_leftThrusters.Contains(thruster)) RecalculateLeftStrafeThrust(); - if (_clockwiseThrusters.Contains(thruster)) RecalculateClockwiseTorque(); - if (_counterClockwiseThrusters.Contains(thruster)) RecalculateCounterClockwiseTorque(); - } - } - } - } + ItemDestroyed.Where(item=>_thrusterItems.Contains(item)).Subscribe(RemoveThruster); + ItemDestroyed.Where(item=>_aetherDriveItems.Contains(item)).Subscribe(RemoveAetherDrive); + } - ItemDamage.Select(x => x.item).Subscribe(CheckForThruster); + private void RemoveAetherDrive(EquippedItem item) + { + _aetherDriveItems.Remove(item); + _aetherDrives.Remove(item.GetBehavior()); + } + + private void RemoveThruster(EquippedItem item) + { + _thrusterItems.Remove(item); + var thruster = item.GetBehavior(); + if (_forwardThrusters.Contains(thruster)) _forwardThrusters.Remove(thruster); + if (_reverseThrusters.Contains(thruster)) _reverseThrusters.Remove(thruster); + if (_rightThrusters.Contains(thruster)) _rightThrusters.Remove(thruster); + if (_leftThrusters.Contains(thruster)) _leftThrusters.Remove(thruster); + if (_clockwiseThrusters.Contains(thruster)) _clockwiseThrusters.Remove(thruster); + if (_counterClockwiseThrusters.Contains(thruster)) _counterClockwiseThrusters.Remove(thruster); } #region ThrustCalculation + + private void RecalculateThrust() + { + RecalculateForwardThrust(); + RecalculateReverseThrust(); + RecalculateLeftStrafeThrust(); + RecalculateRightStrafeThrust(); + RecalculateClockwiseTorque(); + RecalculateCounterClockwiseTorque(); + } private void RecalculateForwardThrust() { ForwardThrust = 0; foreach (var thruster in _forwardThrusters) - { - if(thruster.Item.Active.Value) + if (thruster.Item.Active.Value) ForwardThrust += thruster.Thrust; - } + + foreach (var drive in _aetherDrives) + if (drive.Item.Active.Value) + ForwardThrust += drive.Thrust.x; } private void RecalculateReverseThrust() { ReverseThrust = 0; foreach (var thruster in _reverseThrusters) - { - if(thruster.Item.Active.Value) + if (thruster.Item.Active.Value) ReverseThrust += thruster.Thrust; - } + + foreach (var drive in _aetherDrives) + if (drive.Item.Active.Value) + ReverseThrust += drive.Thrust.x; } private void RecalculateLeftStrafeThrust() @@ -188,9 +189,14 @@ public class Ship : Entity LeftStrafeTotalTorque += thruster.Torque * thruster.Thrust; } } - LeftStrafeTorqueThrusters = _leftThrusters - .Where(x => abs(sign(x.Torque) - sign(LeftStrafeTotalTorque)) < .01f) - .ToArray(); + LeftStrafeTorqueThrusters.Clear(); + foreach(var thruster in _leftThrusters) + if (abs(sign(thruster.Torque) - sign(LeftStrafeTotalTorque)) < .01f) + LeftStrafeTorqueThrusters.Add(thruster); + + foreach (var drive in _aetherDrives) + if (drive.Item.Active.Value) + LeftStrafeThrust += drive.Thrust.y; } private void RecalculateRightStrafeThrust() @@ -205,29 +211,38 @@ public class Ship : Entity RightStrafeTotalTorque += thruster.Torque * thruster.Thrust; } } - RightStrafeTorqueThrusters = _rightThrusters - .Where(x => abs(sign(x.Torque) - sign(RightStrafeTotalTorque)) < .01f) - .ToArray(); + RightStrafeTorqueThrusters.Clear(); + foreach(var thruster in _rightThrusters) + if (abs(sign(thruster.Torque) - sign(RightStrafeTotalTorque)) < .01f) + RightStrafeTorqueThrusters.Add(thruster); + + foreach (var drive in _aetherDrives) + if (drive.Item.Active.Value) + RightStrafeThrust += drive.Thrust.y; } private void RecalculateClockwiseTorque() { ClockwiseTorque = 0; foreach (var thruster in _clockwiseThrusters) - { - if(thruster.Item.Active.Value) + if (thruster.Item.Active.Value) ClockwiseTorque += thruster.Torque; - } + + foreach (var drive in _aetherDrives) + if (drive.Item.Active.Value) + ClockwiseTorque += drive.Thrust.z; } private void RecalculateCounterClockwiseTorque() { CounterClockwiseTorque = 0; foreach (var thruster in _counterClockwiseThrusters) - { - if(thruster.Item.Active.Value) + if (thruster.Item.Active.Value) CounterClockwiseTorque -= thruster.Torque; - } + + foreach (var drive in _aetherDrives) + if (drive.Item.Active.Value) + CounterClockwiseTorque += drive.Thrust.z; } #endregion @@ -236,8 +251,9 @@ public class Ship : Entity { if (_active && !_exitingWormhole && !_enteringWormhole) { + RecalculateThrust(); foreach (var thruster in _allThrusters) thruster.Axis = 0; - var rightThrusterTorqueCompensation = abs(RightStrafeTotalTorque) / RightStrafeTorqueThrusters.Length; + var rightThrusterTorqueCompensation = abs(RightStrafeTotalTorque) / RightStrafeTorqueThrusters.Count; foreach (var thruster in _rightThrusters) { var thrust = 0f; @@ -246,7 +262,7 @@ public class Ship : Entity thrust -= MovementDirection.x * (rightThrusterTorqueCompensation / (abs(thruster.Torque) * thruster.Thrust)); thruster.Axis = thrust; } - var leftThrusterTorqueCompensation = abs(LeftStrafeTotalTorque) / LeftStrafeTorqueThrusters.Length; + var leftThrusterTorqueCompensation = abs(LeftStrafeTotalTorque) / LeftStrafeTorqueThrusters.Count; foreach (var thruster in _leftThrusters) { var thrust = 0f; @@ -269,7 +285,14 @@ public class Ship : Entity foreach (var thruster in _clockwiseThrusters) thruster.Axis += deltaRot; foreach (var thruster in _counterClockwiseThrusters) thruster.Axis += -deltaRot; + + foreach (var drive in _aetherDrives) + drive.Axis = float3(MovementDirection.y, MovementDirection.x, deltaRot); } + + var velocityMagnitude = length(Velocity); + if(velocityMagnitude > .01f) + Velocity = normalize(Velocity) * AetheriaMath.Decay(velocityMagnitude, HullData.Drag, delta); Position.xz += Velocity * delta; diff --git a/Assets/Scripts/UI/ConfirmationDialog.cs b/Assets/Scripts/UI/ConfirmationDialog.cs index fea00c611..dd09ab0c5 100644 --- a/Assets/Scripts/UI/ConfirmationDialog.cs +++ b/Assets/Scripts/UI/ConfirmationDialog.cs @@ -49,6 +49,7 @@ public class ConfirmationDialog : PropertiesPanel else _onCancel?.Invoke(); CancelClickCatcher?.gameObject.SetActive(false); gameObject.SetActive(false); + ActionGameManager.Instance?.Input.Global.Enable(); } public void MoveToCursor() @@ -71,5 +72,6 @@ public class ConfirmationDialog : PropertiesPanel ButtonGroup.SetActive(onConfirm!=null || onCancel!=null); CancelClickCatcher?.gameObject.SetActive(true); + ActionGameManager.Instance?.Input.Global.Disable(); } } diff --git a/Assets/Scripts/UI/ConsoleView.cs b/Assets/Scripts/UI/ConsoleView.cs index a2b5b2f8c..dd5c438d8 100644 --- a/Assets/Scripts/UI/ConsoleView.cs +++ b/Assets/Scripts/UI/ConsoleView.cs @@ -136,7 +136,11 @@ public class ConsoleView : MonoBehaviour { LogTextArea.text = string.Join("\n", newLog); // if (AcceptingInput) // LogTextArea.text += "\n\n> " + _inputString; - Observable.NextFrame().Subscribe(_ => Scroll.verticalNormalizedPosition = 0); + Observable.NextFrame().Subscribe(_ => + { + if(Scroll) + Scroll.verticalNormalizedPosition = 0; + }); } } diff --git a/Assets/Scripts/UI/ContextMenu.cs b/Assets/Scripts/UI/ContextMenu.cs index 300d04029..2c782ace4 100644 --- a/Assets/Scripts/UI/ContextMenu.cs +++ b/Assets/Scripts/UI/ContextMenu.cs @@ -48,6 +48,7 @@ public class ContextMenu : MonoBehaviour Destroy(_dropdown); CancelClickCatcher.gameObject.SetActive(false); gameObject.SetActive(false); + ActionGameManager.Instance?.Input.Global.Enable(); } public void Clear() @@ -128,5 +129,6 @@ public class ContextMenu : MonoBehaviour rect.position = (Parent != null ? ForcePosition : (Vector3) mousePosition) + Vector3.up * deltaY; if (Parent==null) CancelClickCatcher.gameObject.SetActive(true); + ActionGameManager.Instance?.Input.Global.Disable(); } } diff --git a/Assets/Scripts/UI/DropdownMenu.cs b/Assets/Scripts/UI/DropdownMenu.cs index faff072a4..a39ed216b 100644 --- a/Assets/Scripts/UI/DropdownMenu.cs +++ b/Assets/Scripts/UI/DropdownMenu.cs @@ -36,6 +36,7 @@ public class DropdownMenu : MonoBehaviour { CancelClickCatcher.gameObject.SetActive(false); gameObject.SetActive(false); + ActionGameManager.Instance?.Input.Global.Enable(); } public void Clear() @@ -74,5 +75,6 @@ public class DropdownMenu : MonoBehaviour rect.sizeDelta = parent.sizeDelta; rect.position = pivotTop ? corners[0] : corners[1]; CancelClickCatcher.gameObject.SetActive(true); + ActionGameManager.Instance?.Input.Global.Disable(); } } diff --git a/Assets/Scripts/UI/MainMenu.cs b/Assets/Scripts/UI/MainMenu.cs index 28a947a34..07e804c7c 100644 --- a/Assets/Scripts/UI/MainMenu.cs +++ b/Assets/Scripts/UI/MainMenu.cs @@ -92,11 +92,11 @@ public class MainMenu : MonoBehaviour _nextMenu.panel.Title.text = TitleSubtitle("aetheria", "terminus"); if (!InGame) { - if(ActionGameManager.PlayerSettings.CurrentRun != null) + if(ActionGameManager.PlayerSettings.SavedRun != null) _nextMenu.panel.AddButton("Continue", () => { - ActionGameManager.CurrentSector = new Sector(ActionGameManager.CultCache, ActionGameManager.PlayerSettings.CurrentRun); + ActionGameManager.CurrentSector = new Sector(ActionGameManager.CultCache, ActionGameManager.PlayerSettings.SavedRun); SceneManager.LoadScene("ARPG"); }); else @@ -119,7 +119,7 @@ public class MainMenu : MonoBehaviour var task = Task.Run(() => new Sector(Settings.SectorGenerationSettings, ActionGameManager.CultCache, 0, setState)); task.ContinueWith(task => Observable.NextFrame().Subscribe(_ => { - ActionGameManager.PlayerSettings.CurrentRun = null; + ActionGameManager.PlayerSettings.SavedRun = null; ActionGameManager.CurrentSector = task.Result; SceneManager.LoadScene("ARPG"); })); diff --git a/Assets/Scripts/UI/SchematicDisplay.cs b/Assets/Scripts/UI/SchematicDisplay.cs index 092498d05..b3d345e1d 100644 --- a/Assets/Scripts/UI/SchematicDisplay.cs +++ b/Assets/Scripts/UI/SchematicDisplay.cs @@ -23,14 +23,20 @@ public class SchematicDisplay : MonoBehaviour public GameObject ShieldIcon; public Image HeatsinkBackground; + public GameObject AetherDriveUi; + public GameObject AetherDriveUiSpacer; + public TextMeshProUGUI EnergyLabel; public TextMeshProUGUI CockpitTemperatureLabel; public TextMeshProUGUI RadiatorTemperatureLabel; - [FormerlySerializedAs("HeatsinkTemperatureLabel")] public TextMeshProUGUI HeatStorageTemperatureLabel; + public TextMeshProUGUI HeatStorageTemperatureLabel; public TextMeshProUGUI CargoTemperatureLabel; public TextMeshProUGUI VisibilityLabel; public TextMeshProUGUI HullDurabilityLabel; public TextMeshProUGUI DistanceLabel; + public TextMeshProUGUI ForwardRPMLabel; + public TextMeshProUGUI StrafeRPMLabel; + public TextMeshProUGUI TurnRPMLabel; public RectTransform SensorCooldownFill; public RectTransform EnergyFill; @@ -38,6 +44,9 @@ public class SchematicDisplay : MonoBehaviour public RectTransform HeatstrokeMeterFill; public RectTransform HypothermiaMeterFill; public RectTransform HeatstrokeLimitFill; + public RectTransform ForwardRPMFill; + public RectTransform StrafeRPMFill; + public RectTransform TurnRPMFill; public CanvasGroup TriggerGroups; public float TriggerGroupsFadeDuration = .5f; @@ -55,6 +64,7 @@ public class SchematicDisplay : MonoBehaviour private EquippedCargoBay[] _cargoBays; private SchematicDisplayItem[] _schematicItems; private Graphic[] _groupGraphics; + private AetherDrive _aetherDrive; private int _selectedGroupIndex; private int _selectedItemIndex; @@ -116,6 +126,9 @@ public class SchematicDisplay : MonoBehaviour _cockpit = entity.GetBehavior(); _reactor = entity.GetBehavior(); _capacitors = entity.GetBehaviors().ToArray(); + _aetherDrive = entity.GetBehavior(); + AetherDriveUi.SetActive(_aetherDrive != null); + AetherDriveUiSpacer.SetActive(_aetherDrive != null); _radiators = entity.GetBehaviors().ToArray(); if (_radiators.Length == 0) @@ -268,6 +281,18 @@ public class SchematicDisplay : MonoBehaviour EnergyFill.anchorMax = new Vector2(charge / maxCharge, 1); EnergyLabel.text = $"{((int)charge).ToString()}/{((int)maxCharge).ToString()} + ({((int)_reactor.Draw).ToString()})"; } + + if (_aetherDrive != null) + { + ForwardRPMLabel.text = ActionGameManager.PlayerSettings.Format(_aetherDrive.Rpm.x); + ForwardRPMFill.anchorMax = new Vector2(_aetherDrive.Rpm.x / _aetherDrive.MaximumRpm, 1); + + StrafeRPMLabel.text = ActionGameManager.PlayerSettings.Format(_aetherDrive.Rpm.y); + StrafeRPMFill.anchorMax = new Vector2(_aetherDrive.Rpm.y / _aetherDrive.MaximumRpm, 1); + + TurnRPMLabel.text = ActionGameManager.PlayerSettings.Format(_aetherDrive.Rpm.z); + TurnRPMFill.anchorMax = new Vector2(_aetherDrive.Rpm.z / _aetherDrive.MaximumRpm, 1); + } } else { diff --git a/GameData/AetherDB.msgpack b/GameData/AetherDB.msgpack index b06527dc5..c2455d053 100644 --- a/GameData/AetherDB.msgpack +++ b/GameData/AetherDB.msgpack @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:6998b1baab572766bf9a35358b7ba34f6d53d67c85ed8eb388dfc334b52c72fe -size 75109 +oid sha256:21ce7bd21f283b5deb556e09791445df142f9ca3025499205ae4a4d9b0b1afd2 +size 76200 diff --git a/GameData/PlayerSettings.msgpack b/GameData/PlayerSettings.msgpack index 241d80ee6..2505783c8 100644 --- a/GameData/PlayerSettings.msgpack +++ b/GameData/PlayerSettings.msgpack @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:4837af8686704ae9bcc731ac076fe9db437881a5a1a217f65012aeaf777a99d7 -size 18061 +oid sha256:0cf5ad8787020982cacb09d4ce84cfa9bb0ae60d9ce09b901f8ac28a4de6421f +size 18270 diff --git a/RethinkDB.csproj b/RethinkDB.csproj index 1ccf35b55..b5ef29462 100644 --- a/RethinkDB.csproj +++ b/RethinkDB.csproj @@ -249,8 +249,8 @@ - + From c1d632f18aaf59d714ef868ff350ad7f507a3ad9 Mon Sep 17 00:00:00 2001 From: Ferenc Fodor Date: Thu, 15 Apr 2021 02:41:30 +0200 Subject: [PATCH 38/51] Updated Function Icons --- Assets/Resources/Sprites/Icons/Weapons/FunctionAB.png | 4 ++-- Assets/Resources/Sprites/Icons/Weapons/FunctionAB.png.meta | 2 +- Assets/Resources/Sprites/Icons/Weapons/FunctionBF.png | 4 ++-- Assets/Resources/Sprites/Icons/Weapons/FunctionBF.png.meta | 2 +- Assets/Resources/Sprites/Icons/Weapons/FunctionCF.png | 4 ++-- Assets/Resources/Sprites/Icons/Weapons/FunctionCF.png.meta | 2 +- Assets/Resources/Sprites/Icons/Weapons/FunctionI.png | 4 ++-- Assets/Resources/Sprites/Icons/Weapons/FunctionI.png.meta | 2 +- Assets/Resources/Sprites/Icons/Weapons/FunctionNE.png | 4 ++-- Assets/Resources/Sprites/Icons/Weapons/FunctionNE.png.meta | 2 +- Assets/Resources/Sprites/Icons/Weapons/FunctionRF.png | 4 ++-- Assets/Resources/Sprites/Icons/Weapons/FunctionRF.png.meta | 2 +- 12 files changed, 18 insertions(+), 18 deletions(-) diff --git a/Assets/Resources/Sprites/Icons/Weapons/FunctionAB.png b/Assets/Resources/Sprites/Icons/Weapons/FunctionAB.png index 2245a9dbc..28335ffad 100644 --- a/Assets/Resources/Sprites/Icons/Weapons/FunctionAB.png +++ b/Assets/Resources/Sprites/Icons/Weapons/FunctionAB.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:162fe55e299d76b0e04c8a90f3f5587b4e0d00f4df94820f51b64756958a117b -size 30576 +oid sha256:c25d112b0d8545a7b4e7cf272273f19de1beeff93eaff47c0241768ca99a0227 +size 30601 diff --git a/Assets/Resources/Sprites/Icons/Weapons/FunctionAB.png.meta b/Assets/Resources/Sprites/Icons/Weapons/FunctionAB.png.meta index 46b572201..54258f4b6 100644 --- a/Assets/Resources/Sprites/Icons/Weapons/FunctionAB.png.meta +++ b/Assets/Resources/Sprites/Icons/Weapons/FunctionAB.png.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 262e9e24564ec684ca2e9d0d5cc7340c +guid: aa8e45d5088c1cc4082667910177d7c7 TextureImporter: internalIDToNameTable: [] externalObjects: {} diff --git a/Assets/Resources/Sprites/Icons/Weapons/FunctionBF.png b/Assets/Resources/Sprites/Icons/Weapons/FunctionBF.png index f841ad7ae..60184577a 100644 --- a/Assets/Resources/Sprites/Icons/Weapons/FunctionBF.png +++ b/Assets/Resources/Sprites/Icons/Weapons/FunctionBF.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:25b0ee7fc294c005f34fe8d0004d78c7baaf76600b92f77e64e56f9593cfbcd9 -size 30372 +oid sha256:4cb205706757b6cbe10b4a38af857b72b1535c36791bef9e51dcaba619736120 +size 36871 diff --git a/Assets/Resources/Sprites/Icons/Weapons/FunctionBF.png.meta b/Assets/Resources/Sprites/Icons/Weapons/FunctionBF.png.meta index 66ffbb3fb..dbcdb702e 100644 --- a/Assets/Resources/Sprites/Icons/Weapons/FunctionBF.png.meta +++ b/Assets/Resources/Sprites/Icons/Weapons/FunctionBF.png.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 162b3e5032ea8db4dbbfc43df49d2ad8 +guid: c3abee12667411144a1c23cff1840b7e TextureImporter: internalIDToNameTable: [] externalObjects: {} diff --git a/Assets/Resources/Sprites/Icons/Weapons/FunctionCF.png b/Assets/Resources/Sprites/Icons/Weapons/FunctionCF.png index 3a0519070..bfda132f5 100644 --- a/Assets/Resources/Sprites/Icons/Weapons/FunctionCF.png +++ b/Assets/Resources/Sprites/Icons/Weapons/FunctionCF.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:2b1e74b5bbe4c7241e2b09e03eadd3e13df12c81d4ddd5e3f0e39b4f577290cd -size 36523 +oid sha256:ef7c7b97294542ed2c6483a6de9115dcc45ee588e869a34e9461ca2c7223950f +size 42459 diff --git a/Assets/Resources/Sprites/Icons/Weapons/FunctionCF.png.meta b/Assets/Resources/Sprites/Icons/Weapons/FunctionCF.png.meta index e25899eab..0a26de6c3 100644 --- a/Assets/Resources/Sprites/Icons/Weapons/FunctionCF.png.meta +++ b/Assets/Resources/Sprites/Icons/Weapons/FunctionCF.png.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: b77180e315f7ee0478e0b0a3ceafd956 +guid: 9a983a9eeaab07e46a96af42c17ed794 TextureImporter: internalIDToNameTable: [] externalObjects: {} diff --git a/Assets/Resources/Sprites/Icons/Weapons/FunctionI.png b/Assets/Resources/Sprites/Icons/Weapons/FunctionI.png index 99752442a..337aea7c2 100644 --- a/Assets/Resources/Sprites/Icons/Weapons/FunctionI.png +++ b/Assets/Resources/Sprites/Icons/Weapons/FunctionI.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:bf541ef83dff52c20a7481c9b0979e0bcca30d44a77f92f72e72b02fc0d6031c -size 31718 +oid sha256:8a7ce6bb8b524fbfb59bb6635db949f0d9ca8c1c0de6205fb07142cd54f30a08 +size 37275 diff --git a/Assets/Resources/Sprites/Icons/Weapons/FunctionI.png.meta b/Assets/Resources/Sprites/Icons/Weapons/FunctionI.png.meta index 7050fe8a3..504b965be 100644 --- a/Assets/Resources/Sprites/Icons/Weapons/FunctionI.png.meta +++ b/Assets/Resources/Sprites/Icons/Weapons/FunctionI.png.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 3d6feaf6c3f205e429b562da28bca3df +guid: 0cf7d7ba0910fd6408c8fb860998e35f TextureImporter: internalIDToNameTable: [] externalObjects: {} diff --git a/Assets/Resources/Sprites/Icons/Weapons/FunctionNE.png b/Assets/Resources/Sprites/Icons/Weapons/FunctionNE.png index a6b13844c..946a3289a 100644 --- a/Assets/Resources/Sprites/Icons/Weapons/FunctionNE.png +++ b/Assets/Resources/Sprites/Icons/Weapons/FunctionNE.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:e27e56cb7451512a0b07fa1043a440087316e3aeedcb483f5c89a1d92b5b8867 -size 39486 +oid sha256:dbe4743a967b5d52300070a74878d981b5ec4323bdbffa6487218e3f8f4b063f +size 38180 diff --git a/Assets/Resources/Sprites/Icons/Weapons/FunctionNE.png.meta b/Assets/Resources/Sprites/Icons/Weapons/FunctionNE.png.meta index 24d38faf3..d948d92b2 100644 --- a/Assets/Resources/Sprites/Icons/Weapons/FunctionNE.png.meta +++ b/Assets/Resources/Sprites/Icons/Weapons/FunctionNE.png.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 01ec5541ca0e6984d828f5480531c8ab +guid: f7cfbb7765985ac4cb50e6ea43036a7d TextureImporter: internalIDToNameTable: [] externalObjects: {} diff --git a/Assets/Resources/Sprites/Icons/Weapons/FunctionRF.png b/Assets/Resources/Sprites/Icons/Weapons/FunctionRF.png index a04aee398..4de9d5731 100644 --- a/Assets/Resources/Sprites/Icons/Weapons/FunctionRF.png +++ b/Assets/Resources/Sprites/Icons/Weapons/FunctionRF.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:9eba80473198fe88536d83f16e917c39341e408ff023855efcd8ef3e94f9adda -size 31669 +oid sha256:4c8bf28cb84765f25b38e8d4352d58ba553ade3ffb5c012505c6cb3e4b1ce6b8 +size 36861 diff --git a/Assets/Resources/Sprites/Icons/Weapons/FunctionRF.png.meta b/Assets/Resources/Sprites/Icons/Weapons/FunctionRF.png.meta index 2a6613e17..737a05c7e 100644 --- a/Assets/Resources/Sprites/Icons/Weapons/FunctionRF.png.meta +++ b/Assets/Resources/Sprites/Icons/Weapons/FunctionRF.png.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: efe0b5cdaf240974abc687a0b158a239 +guid: 1e2c75a98e736694e8b9f7d3c2d212c2 TextureImporter: internalIDToNameTable: [] externalObjects: {} From 11a55e236b736726ac2877d3a9b804c4a720df83 Mon Sep 17 00:00:00 2001 From: Reinier Vens Date: Thu, 15 Apr 2021 04:25:22 +0100 Subject: [PATCH 39/51] Loot Fixed: unable to undock with an aetheric drive (game requires locomotion) Entities have a chance of dropping any item on board when killed Mine behavior generalized to grid objects, used in dropped loot Added tractor beam (not itemized yet) which pulls in nearby loot (and mines!) Items are added to player inventory when they collide with the ship (and mines explode!) Added console command to spawn turret --- .../Substance/Metal/Pickup Base.sbsar | 3 + .../Substance/Metal/Pickup Base.sbsar.meta | 382 ++ .../Substance/Metal/Pickup Trim.sbsar | 3 + .../Substance/Metal/Pickup Trim.sbsar.meta | 381 ++ .../Metal/metal_car_paint red.sbsar.meta | 4 +- .../Metal/metal_car_paint white.sbsar.meta | 6 +- Assets/Models/primitives.blend | 4 +- Assets/Models/primitives.blend.meta | 3 +- Assets/Models/primitives.blend1 | Bin 530908 -> 752752 bytes Assets/Prefabs/RPG/Pickups.meta | 8 + .../Prefabs/RPG/Pickups/Dodecahedron.prefab | 134 + .../RPG/Pickups/Dodecahedron.prefab.meta | 7 + Assets/Prefabs/RPG/Pickups/Hexahedron.prefab | 134 + .../RPG/Pickups/Hexahedron.prefab.meta | 7 + Assets/Prefabs/RPG/Pickups/Icosahedron.prefab | 134 + .../RPG/Pickups/Icosahedron.prefab.meta | 7 + Assets/Prefabs/RPG/Pickups/Octahedron.prefab | 134 + .../RPG/Pickups/Octahedron.prefab.meta | 7 + Assets/Prefabs/RPG/Pickups/Tetrahedron.prefab | 134 + .../RPG/Pickups/Tetrahedron.prefab.meta | 7 + Assets/Resources/Aetheria.inputactions | 19 + Assets/Resources/Prefabs/Ships/Djinni.prefab | 89 + .../Resources/Prefabs/Ships/Longinus.prefab | 89 + Assets/Resources/Prefabs/Tractor Beam.prefab | 4823 +++++++++++++++++ .../Prefabs/Tractor Beam.prefab.meta | 7 + .../Resources/Prefabs/Turrets/Turret.prefab | 4 + .../Prefabs/Weapons/Mine Launcher.prefab | 26 +- Assets/Scenes/ARPG.unity | 14 +- Assets/Scenes/Main Menu.unity | 14 +- Assets/Scripts/AetheriaInput.cs | 29 + Assets/Scripts/Gameplay/ActionGameManager.cs | 27 +- Assets/Scripts/Gameplay/EntityInstance.cs | 32 +- Assets/Scripts/Gameplay/GameSettings.cs | 3 + Assets/Scripts/Gameplay/GridObject.cs | 49 + Assets/Scripts/Gameplay/GridObject.cs.meta | 3 + Assets/Scripts/Gameplay/ItemPickup.cs | 6 + Assets/Scripts/Gameplay/ItemPickup.cs.meta | 3 + .../{ => Scripts/Gameplay}/ShieldAnimation.cs | 0 .../Gameplay}/ShieldAnimation.cs.meta | 0 .../{ => Scripts/Gameplay}/ShieldManager.cs | 33 +- .../Gameplay}/ShieldManager.cs.meta | 0 Assets/{ => Scripts/Gameplay}/ShieldTest.cs | 0 .../{ => Scripts/Gameplay}/ShieldTest.cs.meta | 0 Assets/Scripts/Gameplay/ShipInstance.cs | 12 + Assets/Scripts/Gameplay/TimedDestroy.cs | 19 + Assets/Scripts/Gameplay/TimedDestroy.cs.meta | 3 + Assets/Scripts/Gameplay/TractorBeam.cs | 33 + Assets/Scripts/Gameplay/TractorBeam.cs.meta | 3 + .../Weapons/ConstantParticleWeapon.cs | 6 +- Assets/Scripts/Gameplay/Weapons/Mine.cs | 76 +- .../Scripts/Gameplay/Weapons/MineManager.cs | 16 +- Assets/Scripts/ServerShared/Entity.cs | 2 + Assets/Scripts/Zone Display/ZoneRenderer.cs | 174 +- GameData/PlayerSettings.msgpack | 4 +- ProjectSettings/DynamicsManager.asset | 2 +- ProjectSettings/TagManager.asset | 4 +- 56 files changed, 6962 insertions(+), 161 deletions(-) create mode 100644 Assets/Materials/Substance/Metal/Pickup Base.sbsar create mode 100644 Assets/Materials/Substance/Metal/Pickup Base.sbsar.meta create mode 100644 Assets/Materials/Substance/Metal/Pickup Trim.sbsar create mode 100644 Assets/Materials/Substance/Metal/Pickup Trim.sbsar.meta create mode 100644 Assets/Prefabs/RPG/Pickups.meta create mode 100644 Assets/Prefabs/RPG/Pickups/Dodecahedron.prefab create mode 100644 Assets/Prefabs/RPG/Pickups/Dodecahedron.prefab.meta create mode 100644 Assets/Prefabs/RPG/Pickups/Hexahedron.prefab create mode 100644 Assets/Prefabs/RPG/Pickups/Hexahedron.prefab.meta create mode 100644 Assets/Prefabs/RPG/Pickups/Icosahedron.prefab create mode 100644 Assets/Prefabs/RPG/Pickups/Icosahedron.prefab.meta create mode 100644 Assets/Prefabs/RPG/Pickups/Octahedron.prefab create mode 100644 Assets/Prefabs/RPG/Pickups/Octahedron.prefab.meta create mode 100644 Assets/Prefabs/RPG/Pickups/Tetrahedron.prefab create mode 100644 Assets/Prefabs/RPG/Pickups/Tetrahedron.prefab.meta create mode 100644 Assets/Resources/Prefabs/Tractor Beam.prefab create mode 100644 Assets/Resources/Prefabs/Tractor Beam.prefab.meta create mode 100644 Assets/Scripts/Gameplay/GridObject.cs create mode 100644 Assets/Scripts/Gameplay/GridObject.cs.meta create mode 100644 Assets/Scripts/Gameplay/ItemPickup.cs create mode 100644 Assets/Scripts/Gameplay/ItemPickup.cs.meta rename Assets/{ => Scripts/Gameplay}/ShieldAnimation.cs (100%) rename Assets/{ => Scripts/Gameplay}/ShieldAnimation.cs.meta (100%) rename Assets/{ => Scripts/Gameplay}/ShieldManager.cs (54%) rename Assets/{ => Scripts/Gameplay}/ShieldManager.cs.meta (100%) rename Assets/{ => Scripts/Gameplay}/ShieldTest.cs (100%) rename Assets/{ => Scripts/Gameplay}/ShieldTest.cs.meta (100%) create mode 100644 Assets/Scripts/Gameplay/TimedDestroy.cs create mode 100644 Assets/Scripts/Gameplay/TimedDestroy.cs.meta create mode 100644 Assets/Scripts/Gameplay/TractorBeam.cs create mode 100644 Assets/Scripts/Gameplay/TractorBeam.cs.meta diff --git a/Assets/Materials/Substance/Metal/Pickup Base.sbsar b/Assets/Materials/Substance/Metal/Pickup Base.sbsar new file mode 100644 index 000000000..963310406 --- /dev/null +++ b/Assets/Materials/Substance/Metal/Pickup Base.sbsar @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dbee14b278a03ed59e1df8ecd6ba2b07ab7c2b2089e5e2bc3fad5673694a9f03 +size 14971 diff --git a/Assets/Materials/Substance/Metal/Pickup Base.sbsar.meta b/Assets/Materials/Substance/Metal/Pickup Base.sbsar.meta new file mode 100644 index 000000000..6d99d8ddf --- /dev/null +++ b/Assets/Materials/Substance/Metal/Pickup Base.sbsar.meta @@ -0,0 +1,382 @@ +fileFormatVersion: 2 +guid: 26a894e543f3ed44893b1620707ca62c +ScriptedImporter: + internalIDToNameTable: + - first: + 1: 100000 + second: metal_car_paint/metal_car_paint + - first: + 4: 400000 + second: metal_car_paint/metal_car_paint/Transform + - first: + 21: 2100000 + second: mat.Car paint + - first: + 23: 2300000 + second: metal_car_paint/metal_car_paint/MeshRenderer + - first: + 28: 2800000 + second: Car paint_baseColor + - first: + 28: 2800002 + second: Car paint_normal + - first: + 28: 2800004 + second: Car paint_metallic + - first: + 28: 2800006 + second: Car paint_ambientOcclusion + - first: + 28: 2800008 + second: Car paint_height + - first: + 33: 3300000 + second: metal_car_paint/metal_car_paint/MeshFilter + - first: + 114: 11400000 + second: sbsar + - first: + 114: 11400002 + second: graph0 + - first: + 135: 13500000 + second: metal_car_paint/metal_car_paint/SphereCollider + - first: + 1001: 100100000 + second: metal_car_paint + externalObjects: {} + serializedVersion: 2 + userData: + assetBundleName: + assetBundleVariant: + script: {fileID: 232528478, guid: 43a8bbf65be290d44ba52b94476242b9, type: 3} + version: 29 + projectContext: 0 + mGraphInstanceData: + - graphLabel: Car paint + prototypeName: Car paint + graphDescIndex: 0 + generateAllOutputs: 0 + generateMipMaps: 1 + preset: " \n \n + \n \n \n \n \n \n \n \n \n + \n \n" + shaderName: Standard + materialProperties: + shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} + shaderKeywords: _MAINTEX _METALLICGLOSSMAP _NORMALMAP _OCCLUSIONMAP _PARALLAXMAP + lightmapFlags: 4 + enableInstancingVariants: 0 + doubleSidedGI: 0 + customRenderQueue: -1 + texEnvs: + - name: _BumpMap + texture: {fileID: 3068890721646206586, guid: 26a894e543f3ed44893b1620707ca62c, + type: 3} + scale: {x: 1, y: 1} + offset: {x: 0, y: 0} + - name: _DetailAlbedoMap + texture: {instanceID: 0} + scale: {x: 1, y: 1} + offset: {x: 0, y: 0} + - name: _DetailMask + texture: {instanceID: 0} + scale: {x: 1, y: 1} + offset: {x: 0, y: 0} + - name: _DetailNormalMap + texture: {instanceID: 0} + scale: {x: 1, y: 1} + offset: {x: 0, y: 0} + - name: _EmissionMap + texture: {instanceID: 0} + scale: {x: 0.5, y: 0.5} + offset: {x: 0, y: 0} + - name: _MainTex + texture: {fileID: 5917659159057834157, guid: 26a894e543f3ed44893b1620707ca62c, + type: 3} + scale: {x: 0.5, y: 0.5} + offset: {x: 0, y: 0} + - name: _MetallicGlossMap + texture: {fileID: -3552914696322007609, guid: 26a894e543f3ed44893b1620707ca62c, + type: 3} + scale: {x: 1, y: 1} + offset: {x: 0, y: 0} + - name: _OcclusionMap + texture: {fileID: -1242281561028671816, guid: 26a894e543f3ed44893b1620707ca62c, + type: 3} + scale: {x: 1, y: 1} + offset: {x: 0, y: 0} + - name: _ParallaxMap + texture: {fileID: -1652887728991447519, guid: 26a894e543f3ed44893b1620707ca62c, + type: 3} + scale: {x: 1, y: 1} + offset: {x: 0, y: 0} + floats: + - name: _BumpScale + float: 1 + - name: _Cutoff + float: 0.5 + - name: _DetailNormalMapScale + float: 1 + - name: _DstBlend + float: 0 + - name: _GlossMapScale + float: 1 + - name: _Glossiness + float: 1 + - name: _GlossyReflections + float: 1 + - name: _Metallic + float: 1 + - name: _Mode + float: 0 + - name: _OcclusionStrength + float: 1 + - name: _Parallax + float: 0.02 + - name: _SmoothnessTextureChannel + float: 0 + - name: _SpecularHighlights + float: 1 + - name: _SrcBlend + float: 1 + - name: _UVSec + float: 0 + - name: _ZWrite + float: 1 + colors: + - name: _Color + color: {r: 1, g: 1, b: 1, a: 1} + - name: _EmissionColor + color: {r: 0, g: 0, b: 0, a: 1} + outputDescList: + - outputName: diffuse + identifier: diffuse + usageName: diffuse + channelStr: diffuse + label: Diffuse + usage: 0 + bImage: 1 + bNumerical: 0 + bLinear: 0 + - outputName: baseColor + identifier: basecolor + usageName: baseColor + channelStr: baseColor + label: Base Color + usage: 1 + bImage: 1 + bNumerical: 0 + bLinear: 0 + - outputName: normal + identifier: normal + usageName: normal + channelStr: normal + label: Normal + usage: 7 + bImage: 1 + bNumerical: 0 + bLinear: 1 + - outputName: specular + identifier: specular + usageName: specular + channelStr: specular + label: Specular + usage: 11 + bImage: 1 + bNumerical: 0 + bLinear: 0 + - outputName: glossiness + identifier: glossiness + usageName: glossiness + channelStr: glossiness + label: Glossiness + usage: 14 + bImage: 1 + bNumerical: 0 + bLinear: 1 + - outputName: roughness + identifier: roughness + usageName: roughness + channelStr: roughness + label: Roughness + usage: 15 + bImage: 1 + bNumerical: 0 + bLinear: 1 + - outputName: metallic + identifier: metallic + usageName: metallic + channelStr: metallic + label: Metallic + usage: 34 + bImage: 1 + bNumerical: 0 + bLinear: 1 + - outputName: ambientOcclusion + identifier: ambient_occlusion + usageName: ambientOcclusion + channelStr: ambientOcclusion + label: Ambient Occlusion + usage: 5 + bImage: 1 + bNumerical: 0 + bLinear: 1 + - outputName: height + identifier: height + usageName: height + channelStr: height + label: Height + usage: 9 + bImage: 1 + bNumerical: 0 + bLinear: 1 + texturePackingList: + - targetName: diffuse + components: + - sourceName: diffuse + from: 0 + to: 3 + - targetName: baseColor + components: + - sourceName: baseColor + from: 0 + to: 3 + - targetName: normal + components: + - sourceName: normal + from: 0 + to: 3 + - targetName: specular + components: + - sourceName: specular + from: 0 + to: 3 + - targetName: glossiness + components: + - sourceName: glossiness + from: 0 + to: 3 + - targetName: roughness + components: + - sourceName: roughness + from: 0 + to: 3 + - targetName: metallic + components: + - sourceName: smoothness + from: 0 + to: 3 + - targetName: ambientOcclusion + components: + - sourceName: ambientOcclusion + from: 0 + to: 3 + - targetName: height + components: + - sourceName: height + from: 0 + to: 3 + textureParameters: + - textureName: Car paint_glossiness + wrapMode: 0 + filterMode: 1 + aniso: 1 + - textureName: Car paint_diffuse + wrapMode: 0 + filterMode: 1 + aniso: 1 + - textureName: Car paint_baseColor + wrapMode: 0 + filterMode: 1 + aniso: 1 + - textureName: Car paint_normal + wrapMode: 0 + filterMode: 1 + aniso: 1 + - textureName: Car paint_specular + wrapMode: 0 + filterMode: 1 + aniso: 1 + - textureName: Car paint_roughness + wrapMode: 0 + filterMode: 1 + aniso: 1 + - textureName: Car paint_metallic + wrapMode: 0 + filterMode: 1 + aniso: 1 + - textureName: Car paint_ambientOcclusion + wrapMode: 0 + filterMode: 1 + aniso: 1 + - textureName: Car paint_height + wrapMode: 0 + filterMode: 1 + aniso: 1 + - textureName: Car paint - diffuse + wrapMode: 0 + filterMode: 1 + aniso: 1 + - textureName: Car paint - baseColor + wrapMode: 0 + filterMode: 1 + aniso: 1 + - textureName: Car paint - normal + wrapMode: 0 + filterMode: 1 + aniso: 1 + - textureName: Car paint - specular + wrapMode: 0 + filterMode: 1 + aniso: 1 + - textureName: Car paint - glossiness + wrapMode: 0 + filterMode: 1 + aniso: 1 + - textureName: Car paint - roughness + wrapMode: 0 + filterMode: 1 + aniso: 1 + - textureName: Car paint - metallic + wrapMode: 0 + filterMode: 1 + aniso: 1 + - textureName: Car paint - ambientOcclusion + wrapMode: 0 + filterMode: 1 + aniso: 1 + - textureName: Car paint - height + wrapMode: 0 + filterMode: 1 + aniso: 1 + colorSpaceList: [] + inputTextureMap: [] + targetSettingList: + - label: Default + bOverride: 0 + bLockRatio: 1 + textureWidth: 2048 + textureHeight: 2048 + textureFormatMode: 0 + normalCompressed: 0 + bGenerateOnLoad: 1 + material: {fileID: 3720744386649352057, guid: 26a894e543f3ed44893b1620707ca62c, + type: 3} + generatedTextures: + - {fileID: 5917659159057834157, guid: 26a894e543f3ed44893b1620707ca62c, type: 3} + - {fileID: 3068890721646206586, guid: 26a894e543f3ed44893b1620707ca62c, type: 3} + - {fileID: -3552914696322007609, guid: 26a894e543f3ed44893b1620707ca62c, type: 3} + - {fileID: -1242281561028671816, guid: 26a894e543f3ed44893b1620707ca62c, type: 3} + - {fileID: -1652887728991447519, guid: 26a894e543f3ed44893b1620707ca62c, type: 3} diff --git a/Assets/Materials/Substance/Metal/Pickup Trim.sbsar b/Assets/Materials/Substance/Metal/Pickup Trim.sbsar new file mode 100644 index 000000000..963310406 --- /dev/null +++ b/Assets/Materials/Substance/Metal/Pickup Trim.sbsar @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dbee14b278a03ed59e1df8ecd6ba2b07ab7c2b2089e5e2bc3fad5673694a9f03 +size 14971 diff --git a/Assets/Materials/Substance/Metal/Pickup Trim.sbsar.meta b/Assets/Materials/Substance/Metal/Pickup Trim.sbsar.meta new file mode 100644 index 000000000..17898eab9 --- /dev/null +++ b/Assets/Materials/Substance/Metal/Pickup Trim.sbsar.meta @@ -0,0 +1,381 @@ +fileFormatVersion: 2 +guid: c00b5a4f1e4743a4ca59b8030251f900 +ScriptedImporter: + internalIDToNameTable: + - first: + 1: 100000 + second: metal_car_paint/metal_car_paint + - first: + 4: 400000 + second: metal_car_paint/metal_car_paint/Transform + - first: + 21: 2100000 + second: mat.Car paint + - first: + 23: 2300000 + second: metal_car_paint/metal_car_paint/MeshRenderer + - first: + 28: 2800000 + second: Car paint_baseColor + - first: + 28: 2800002 + second: Car paint_normal + - first: + 28: 2800004 + second: Car paint_metallic + - first: + 28: 2800006 + second: Car paint_ambientOcclusion + - first: + 28: 2800008 + second: Car paint_height + - first: + 33: 3300000 + second: metal_car_paint/metal_car_paint/MeshFilter + - first: + 114: 11400000 + second: sbsar + - first: + 114: 11400002 + second: graph0 + - first: + 135: 13500000 + second: metal_car_paint/metal_car_paint/SphereCollider + - first: + 1001: 100100000 + second: metal_car_paint + externalObjects: {} + serializedVersion: 2 + userData: + assetBundleName: + assetBundleVariant: + script: {fileID: 232528478, guid: 43a8bbf65be290d44ba52b94476242b9, type: 3} + version: 29 + projectContext: 0 + mGraphInstanceData: + - graphLabel: Car paint + prototypeName: Car paint + graphDescIndex: 0 + generateAllOutputs: 0 + generateMipMaps: 1 + preset: " \n \n + \n \n \n \n \n \n \n \n \n \n \n" + shaderName: Standard + materialProperties: + shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} + shaderKeywords: _MAINTEX _METALLICGLOSSMAP _NORMALMAP _OCCLUSIONMAP _PARALLAXMAP + lightmapFlags: 4 + enableInstancingVariants: 0 + doubleSidedGI: 0 + customRenderQueue: -1 + texEnvs: + - name: _BumpMap + texture: {fileID: 3068890721646206586, guid: c00b5a4f1e4743a4ca59b8030251f900, + type: 3} + scale: {x: 1, y: 1} + offset: {x: 0, y: 0} + - name: _DetailAlbedoMap + texture: {instanceID: 0} + scale: {x: 1, y: 1} + offset: {x: 0, y: 0} + - name: _DetailMask + texture: {instanceID: 0} + scale: {x: 1, y: 1} + offset: {x: 0, y: 0} + - name: _DetailNormalMap + texture: {instanceID: 0} + scale: {x: 1, y: 1} + offset: {x: 0, y: 0} + - name: _EmissionMap + texture: {instanceID: 0} + scale: {x: 0.5, y: 0.5} + offset: {x: 0, y: 0} + - name: _MainTex + texture: {fileID: 5917659159057834157, guid: c00b5a4f1e4743a4ca59b8030251f900, + type: 3} + scale: {x: 0.5, y: 0.5} + offset: {x: 0, y: 0} + - name: _MetallicGlossMap + texture: {fileID: -3552914696322007609, guid: c00b5a4f1e4743a4ca59b8030251f900, + type: 3} + scale: {x: 1, y: 1} + offset: {x: 0, y: 0} + - name: _OcclusionMap + texture: {fileID: -1242281561028671816, guid: c00b5a4f1e4743a4ca59b8030251f900, + type: 3} + scale: {x: 1, y: 1} + offset: {x: 0, y: 0} + - name: _ParallaxMap + texture: {fileID: -1652887728991447519, guid: c00b5a4f1e4743a4ca59b8030251f900, + type: 3} + scale: {x: 1, y: 1} + offset: {x: 0, y: 0} + floats: + - name: _BumpScale + float: 1 + - name: _Cutoff + float: 0.5 + - name: _DetailNormalMapScale + float: 1 + - name: _DstBlend + float: 0 + - name: _GlossMapScale + float: 1 + - name: _Glossiness + float: 0.5 + - name: _GlossyReflections + float: 1 + - name: _Metallic + float: 0 + - name: _Mode + float: 0 + - name: _OcclusionStrength + float: 1 + - name: _Parallax + float: 0.005 + - name: _SmoothnessTextureChannel + float: 0 + - name: _SpecularHighlights + float: 1 + - name: _SrcBlend + float: 1 + - name: _UVSec + float: 0 + - name: _ZWrite + float: 1 + colors: + - name: _Color + color: {r: 1, g: 1, b: 1, a: 1} + - name: _EmissionColor + color: {r: 0, g: 0, b: 0, a: 1} + outputDescList: + - outputName: diffuse + identifier: diffuse + usageName: diffuse + channelStr: diffuse + label: Diffuse + usage: 0 + bImage: 1 + bNumerical: 0 + bLinear: 0 + - outputName: baseColor + identifier: basecolor + usageName: baseColor + channelStr: baseColor + label: Base Color + usage: 1 + bImage: 1 + bNumerical: 0 + bLinear: 0 + - outputName: normal + identifier: normal + usageName: normal + channelStr: normal + label: Normal + usage: 7 + bImage: 1 + bNumerical: 0 + bLinear: 1 + - outputName: specular + identifier: specular + usageName: specular + channelStr: specular + label: Specular + usage: 11 + bImage: 1 + bNumerical: 0 + bLinear: 0 + - outputName: glossiness + identifier: glossiness + usageName: glossiness + channelStr: glossiness + label: Glossiness + usage: 14 + bImage: 1 + bNumerical: 0 + bLinear: 1 + - outputName: roughness + identifier: roughness + usageName: roughness + channelStr: roughness + label: Roughness + usage: 15 + bImage: 1 + bNumerical: 0 + bLinear: 1 + - outputName: metallic + identifier: metallic + usageName: metallic + channelStr: metallic + label: Metallic + usage: 34 + bImage: 1 + bNumerical: 0 + bLinear: 1 + - outputName: ambientOcclusion + identifier: ambient_occlusion + usageName: ambientOcclusion + channelStr: ambientOcclusion + label: Ambient Occlusion + usage: 5 + bImage: 1 + bNumerical: 0 + bLinear: 1 + - outputName: height + identifier: height + usageName: height + channelStr: height + label: Height + usage: 9 + bImage: 1 + bNumerical: 0 + bLinear: 1 + texturePackingList: + - targetName: diffuse + components: + - sourceName: diffuse + from: 0 + to: 3 + - targetName: baseColor + components: + - sourceName: baseColor + from: 0 + to: 3 + - targetName: normal + components: + - sourceName: normal + from: 0 + to: 3 + - targetName: specular + components: + - sourceName: specular + from: 0 + to: 3 + - targetName: glossiness + components: + - sourceName: glossiness + from: 0 + to: 3 + - targetName: roughness + components: + - sourceName: roughness + from: 0 + to: 3 + - targetName: metallic + components: + - sourceName: smoothness + from: 0 + to: 3 + - targetName: ambientOcclusion + components: + - sourceName: ambientOcclusion + from: 0 + to: 3 + - targetName: height + components: + - sourceName: height + from: 0 + to: 3 + textureParameters: + - textureName: Car paint_glossiness + wrapMode: 0 + filterMode: 1 + aniso: 1 + - textureName: Car paint_diffuse + wrapMode: 0 + filterMode: 1 + aniso: 1 + - textureName: Car paint_baseColor + wrapMode: 0 + filterMode: 1 + aniso: 1 + - textureName: Car paint_normal + wrapMode: 0 + filterMode: 1 + aniso: 1 + - textureName: Car paint_specular + wrapMode: 0 + filterMode: 1 + aniso: 1 + - textureName: Car paint_roughness + wrapMode: 0 + filterMode: 1 + aniso: 1 + - textureName: Car paint_metallic + wrapMode: 0 + filterMode: 1 + aniso: 1 + - textureName: Car paint_ambientOcclusion + wrapMode: 0 + filterMode: 1 + aniso: 1 + - textureName: Car paint_height + wrapMode: 0 + filterMode: 1 + aniso: 1 + - textureName: Car paint - diffuse + wrapMode: 0 + filterMode: 1 + aniso: 1 + - textureName: Car paint - baseColor + wrapMode: 0 + filterMode: 1 + aniso: 1 + - textureName: Car paint - normal + wrapMode: 0 + filterMode: 1 + aniso: 1 + - textureName: Car paint - specular + wrapMode: 0 + filterMode: 1 + aniso: 1 + - textureName: Car paint - glossiness + wrapMode: 0 + filterMode: 1 + aniso: 1 + - textureName: Car paint - roughness + wrapMode: 0 + filterMode: 1 + aniso: 1 + - textureName: Car paint - metallic + wrapMode: 0 + filterMode: 1 + aniso: 1 + - textureName: Car paint - ambientOcclusion + wrapMode: 0 + filterMode: 1 + aniso: 1 + - textureName: Car paint - height + wrapMode: 0 + filterMode: 1 + aniso: 1 + colorSpaceList: [] + inputTextureMap: [] + targetSettingList: + - label: Default + bOverride: 0 + bLockRatio: 1 + textureWidth: 2048 + textureHeight: 2048 + textureFormatMode: 0 + normalCompressed: 0 + bGenerateOnLoad: 1 + material: {fileID: 3720744386649352057, guid: c00b5a4f1e4743a4ca59b8030251f900, + type: 3} + generatedTextures: + - {fileID: 5917659159057834157, guid: c00b5a4f1e4743a4ca59b8030251f900, type: 3} + - {fileID: 3068890721646206586, guid: c00b5a4f1e4743a4ca59b8030251f900, type: 3} + - {fileID: -3552914696322007609, guid: c00b5a4f1e4743a4ca59b8030251f900, type: 3} + - {fileID: -1242281561028671816, guid: c00b5a4f1e4743a4ca59b8030251f900, type: 3} + - {fileID: -1652887728991447519, guid: c00b5a4f1e4743a4ca59b8030251f900, type: 3} diff --git a/Assets/Materials/Substance/Metal/metal_car_paint red.sbsar.meta b/Assets/Materials/Substance/Metal/metal_car_paint red.sbsar.meta index 90d42c83c..8d2a60963 100644 --- a/Assets/Materials/Substance/Metal/metal_car_paint red.sbsar.meta +++ b/Assets/Materials/Substance/Metal/metal_car_paint red.sbsar.meta @@ -99,12 +99,12 @@ ScriptedImporter: offset: {x: 0, y: 0} - name: _EmissionMap texture: {instanceID: 0} - scale: {x: 2, y: 2} + scale: {x: 1, y: 1} offset: {x: 0, y: 0} - name: _MainTex texture: {fileID: 5917659159057834157, guid: 504c7bfe0d50ff64a88b8eac2ceb46f8, type: 3} - scale: {x: 2, y: 2} + scale: {x: 1, y: 1} offset: {x: 0, y: 0} - name: _MetallicGlossMap texture: {fileID: -3552914696322007609, guid: 504c7bfe0d50ff64a88b8eac2ceb46f8, diff --git a/Assets/Materials/Substance/Metal/metal_car_paint white.sbsar.meta b/Assets/Materials/Substance/Metal/metal_car_paint white.sbsar.meta index 4f750a27b..accd5a6d0 100644 --- a/Assets/Materials/Substance/Metal/metal_car_paint white.sbsar.meta +++ b/Assets/Materials/Substance/Metal/metal_car_paint white.sbsar.meta @@ -66,7 +66,7 @@ ScriptedImporter: value=\"1\" />\n \n \n \n \n \n \n \n @@ -100,12 +100,12 @@ ScriptedImporter: offset: {x: 0, y: 0} - name: _EmissionMap texture: {instanceID: 0} - scale: {x: 1, y: 1} + scale: {x: 0.5, y: 0.5} offset: {x: 0, y: 0} - name: _MainTex texture: {fileID: 5917659159057834157, guid: b2bec4b400153d745b2915f1c43e5c96, type: 3} - scale: {x: 2, y: 2} + scale: {x: 0.5, y: 0.5} offset: {x: 0, y: 0} - name: _MetallicGlossMap texture: {fileID: -3552914696322007609, guid: b2bec4b400153d745b2915f1c43e5c96, diff --git a/Assets/Models/primitives.blend b/Assets/Models/primitives.blend index 3d2280ed9..4ae335cde 100644 --- a/Assets/Models/primitives.blend +++ b/Assets/Models/primitives.blend @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:107b5a0f5e7db87132c0523534a2c66b23280a8c61bdfeeb21d0f2d487a1208c -size 534468 +oid sha256:27f04974e5e3be6cb2b63202ced0350de589d6b6bec31099edafd1d157e6820a +size 752752 diff --git a/Assets/Models/primitives.blend.meta b/Assets/Models/primitives.blend.meta index 4f00887e6..a8fdd5815 100644 --- a/Assets/Models/primitives.blend.meta +++ b/Assets/Models/primitives.blend.meta @@ -1,7 +1,7 @@ fileFormatVersion: 2 guid: b4479e2dcccbdc048878a980f116a96b ModelImporter: - serializedVersion: 20101 + serializedVersion: 20200 internalIDToNameTable: - first: 74: 1989289236423521904 @@ -103,6 +103,7 @@ ModelImporter: animationType: 2 humanoidOversampling: 1 avatarSetup: 0 + addHumanoidExtraRootOnlyWhenUsingAvatar: 0 additionalBone: 0 userData: assetBundleName: diff --git a/Assets/Models/primitives.blend1 b/Assets/Models/primitives.blend1 index 2aad1047e8b4581fc1bead85df4c39f5769f7e8b..561b4b0cb73e1a1c6949b95df633416c88bdb2a0 100644 GIT binary patch literal 752752 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%0AB*+`qy%_zr)- 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 A!2kdN diff --git a/Assets/Prefabs/RPG/Pickups.meta b/Assets/Prefabs/RPG/Pickups.meta new file mode 100644 index 000000000..f049b82b4 --- /dev/null +++ b/Assets/Prefabs/RPG/Pickups.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 00756c5884305d640afda217bd572807 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Prefabs/RPG/Pickups/Dodecahedron.prefab b/Assets/Prefabs/RPG/Pickups/Dodecahedron.prefab new file mode 100644 index 000000000..50850e7a8 --- /dev/null +++ b/Assets/Prefabs/RPG/Pickups/Dodecahedron.prefab @@ -0,0 +1,134 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &5284461483464579928 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8489385781787202308} + - component: {fileID: 2667259809042191123} + - component: {fileID: 2093307059618178533} + - component: {fileID: 8815906420840494942} + - component: {fileID: 8842807112802394818} + - component: {fileID: 8689774408369415534} + m_Layer: 21 + m_Name: Dodecahedron + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &8489385781787202308 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5284461483464579928} + m_LocalRotation: {x: -0.7069834, y: 0, z: 0, w: 0.7072302} + m_LocalPosition: {x: 2.76403, y: 0, z: 0} + m_LocalScale: {x: 3, y: 3, z: 3} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: -89.98, y: 0, z: 0} +--- !u!33 &2667259809042191123 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5284461483464579928} + m_Mesh: {fileID: 4241688549776596879, guid: b4479e2dcccbdc048878a980f116a96b, type: 3} +--- !u!23 &2093307059618178533 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5284461483464579928} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 3720744386649352057, guid: c00b5a4f1e4743a4ca59b8030251f900, type: 3} + - {fileID: 3720744386649352057, guid: 26a894e543f3ed44893b1620707ca62c, type: 3} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!135 &8815906420840494942 +SphereCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5284461483464579928} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Radius: 0.91187096 + m_Center: {x: 0, y: 0, z: 0} +--- !u!114 &8842807112802394818 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5284461483464579928} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 737f47c158214f0995ba2835f040ed96, type: 3} + m_Name: + m_EditorClassIdentifier: + RotationSpeed: 1 + GridOffset: 0 + GridAttraction: 10 + Gravity: 1 + Drag: 0.05 + LaunchDrag: 0.2 +--- !u!54 &8689774408369415534 +Rigidbody: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5284461483464579928} + serializedVersion: 2 + m_Mass: 1 + m_Drag: 0 + m_AngularDrag: 0.05 + m_UseGravity: 0 + m_IsKinematic: 1 + m_Interpolate: 0 + m_Constraints: 0 + m_CollisionDetection: 0 diff --git a/Assets/Prefabs/RPG/Pickups/Dodecahedron.prefab.meta b/Assets/Prefabs/RPG/Pickups/Dodecahedron.prefab.meta new file mode 100644 index 000000000..1fc187fe8 --- /dev/null +++ b/Assets/Prefabs/RPG/Pickups/Dodecahedron.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: d2cec1d8c3d94074e9d2e6088e1c02d7 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Prefabs/RPG/Pickups/Hexahedron.prefab b/Assets/Prefabs/RPG/Pickups/Hexahedron.prefab new file mode 100644 index 000000000..52c9b96fa --- /dev/null +++ b/Assets/Prefabs/RPG/Pickups/Hexahedron.prefab @@ -0,0 +1,134 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &7643266616531142933 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3419130779256825702} + - component: {fileID: 3269639735116279291} + - component: {fileID: 7427774873968414741} + - component: {fileID: 674324171579366365} + - component: {fileID: 7449398549621940518} + - component: {fileID: 648083621841515580} + m_Layer: 21 + m_Name: Hexahedron + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3419130779256825702 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7643266616531142933} + m_LocalRotation: {x: -0.7069834, y: 0, z: 0, w: 0.7072302} + m_LocalPosition: {x: -2.6274304, y: 0, z: 0} + m_LocalScale: {x: 3, y: 3, z: 3} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: -89.98, y: 0, z: 0} +--- !u!33 &3269639735116279291 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7643266616531142933} + m_Mesh: {fileID: 3976614008025827415, guid: b4479e2dcccbdc048878a980f116a96b, type: 3} +--- !u!23 &7427774873968414741 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7643266616531142933} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 3720744386649352057, guid: c00b5a4f1e4743a4ca59b8030251f900, type: 3} + - {fileID: 3720744386649352057, guid: 26a894e543f3ed44893b1620707ca62c, type: 3} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!135 &674324171579366365 +SphereCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7643266616531142933} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Radius: 0.8 + m_Center: {x: 0, y: 0, z: 0} +--- !u!114 &7449398549621940518 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7643266616531142933} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 737f47c158214f0995ba2835f040ed96, type: 3} + m_Name: + m_EditorClassIdentifier: + RotationSpeed: 1 + GridOffset: 0 + GridAttraction: 10 + Gravity: 1 + Drag: 0.05 + LaunchDrag: 0.2 +--- !u!54 &648083621841515580 +Rigidbody: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7643266616531142933} + serializedVersion: 2 + m_Mass: 1 + m_Drag: 0 + m_AngularDrag: 0.05 + m_UseGravity: 0 + m_IsKinematic: 1 + m_Interpolate: 0 + m_Constraints: 0 + m_CollisionDetection: 0 diff --git a/Assets/Prefabs/RPG/Pickups/Hexahedron.prefab.meta b/Assets/Prefabs/RPG/Pickups/Hexahedron.prefab.meta new file mode 100644 index 000000000..fea99ad63 --- /dev/null +++ b/Assets/Prefabs/RPG/Pickups/Hexahedron.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 366909b6a01d7254d8eef01c333f8e00 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Prefabs/RPG/Pickups/Icosahedron.prefab b/Assets/Prefabs/RPG/Pickups/Icosahedron.prefab new file mode 100644 index 000000000..10ab93e8d --- /dev/null +++ b/Assets/Prefabs/RPG/Pickups/Icosahedron.prefab @@ -0,0 +1,134 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &7167547457198401877 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7548484292876150345} + - component: {fileID: 7390838957595368880} + - component: {fileID: 6960669510133879758} + - component: {fileID: 3507902894264904200} + - component: {fileID: 8747099621875196907} + - component: {fileID: -5409019571952974707} + m_Layer: 21 + m_Name: Icosahedron + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &7548484292876150345 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7167547457198401877} + m_LocalRotation: {x: -0.7069834, y: 0, z: 0, w: 0.7072302} + m_LocalPosition: {x: -0, y: 0, z: -2.9576573} + m_LocalScale: {x: 3, y: 3, z: 3} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: -89.98, y: 0, z: 0} +--- !u!33 &7390838957595368880 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7167547457198401877} + m_Mesh: {fileID: -7230695461121354804, guid: b4479e2dcccbdc048878a980f116a96b, type: 3} +--- !u!23 &6960669510133879758 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7167547457198401877} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 3720744386649352057, guid: c00b5a4f1e4743a4ca59b8030251f900, type: 3} + - {fileID: 3720744386649352057, guid: 26a894e543f3ed44893b1620707ca62c, type: 3} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!135 &3507902894264904200 +SphereCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7167547457198401877} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Radius: 0.8303433 + m_Center: {x: 0, y: 0, z: 0} +--- !u!114 &8747099621875196907 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7167547457198401877} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 737f47c158214f0995ba2835f040ed96, type: 3} + m_Name: + m_EditorClassIdentifier: + RotationSpeed: 1 + GridOffset: 0 + GridAttraction: 10 + Gravity: 1 + Drag: 0.05 + LaunchDrag: 0.2 +--- !u!54 &-5409019571952974707 +Rigidbody: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7167547457198401877} + serializedVersion: 2 + m_Mass: 1 + m_Drag: 0 + m_AngularDrag: 0.05 + m_UseGravity: 0 + m_IsKinematic: 1 + m_Interpolate: 0 + m_Constraints: 0 + m_CollisionDetection: 0 diff --git a/Assets/Prefabs/RPG/Pickups/Icosahedron.prefab.meta b/Assets/Prefabs/RPG/Pickups/Icosahedron.prefab.meta new file mode 100644 index 000000000..40047d1f8 --- /dev/null +++ b/Assets/Prefabs/RPG/Pickups/Icosahedron.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: f399719f41451754eba07ca072698b68 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Prefabs/RPG/Pickups/Octahedron.prefab b/Assets/Prefabs/RPG/Pickups/Octahedron.prefab new file mode 100644 index 000000000..422a70c86 --- /dev/null +++ b/Assets/Prefabs/RPG/Pickups/Octahedron.prefab @@ -0,0 +1,134 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &8555821447211356933 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5807113421007930924} + - component: {fileID: 4899765339662518078} + - component: {fileID: 1691511938472729356} + - component: {fileID: 3657818610818556929} + - component: {fileID: 946329779588188460} + - component: {fileID: -4611973708976329780} + m_Layer: 21 + m_Name: Octahedron + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &5807113421007930924 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8555821447211356933} + m_LocalRotation: {x: -0.7069834, y: 0, z: 0, w: 0.7072302} + m_LocalPosition: {x: -0, y: 0, z: 2.7794502} + m_LocalScale: {x: 3, y: 3, z: 3} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: -89.98, y: 0, z: 0} +--- !u!33 &4899765339662518078 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8555821447211356933} + m_Mesh: {fileID: 3635823603335089682, guid: b4479e2dcccbdc048878a980f116a96b, type: 3} +--- !u!23 &1691511938472729356 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8555821447211356933} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 3720744386649352057, guid: c00b5a4f1e4743a4ca59b8030251f900, type: 3} + - {fileID: 3720744386649352057, guid: 26a894e543f3ed44893b1620707ca62c, type: 3} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!135 &3657818610818556929 +SphereCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8555821447211356933} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Radius: 0.75 + m_Center: {x: 0, y: 0, z: 0} +--- !u!114 &946329779588188460 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8555821447211356933} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 737f47c158214f0995ba2835f040ed96, type: 3} + m_Name: + m_EditorClassIdentifier: + RotationSpeed: 1 + GridOffset: 0 + GridAttraction: 10 + Gravity: 1 + Drag: 0.05 + LaunchDrag: 0.2 +--- !u!54 &-4611973708976329780 +Rigidbody: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8555821447211356933} + serializedVersion: 2 + m_Mass: 1 + m_Drag: 0 + m_AngularDrag: 0.05 + m_UseGravity: 0 + m_IsKinematic: 1 + m_Interpolate: 0 + m_Constraints: 0 + m_CollisionDetection: 0 diff --git a/Assets/Prefabs/RPG/Pickups/Octahedron.prefab.meta b/Assets/Prefabs/RPG/Pickups/Octahedron.prefab.meta new file mode 100644 index 000000000..fc6311680 --- /dev/null +++ b/Assets/Prefabs/RPG/Pickups/Octahedron.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: d2b7e9a9cd7733041b0553682e4b61af +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Prefabs/RPG/Pickups/Tetrahedron.prefab b/Assets/Prefabs/RPG/Pickups/Tetrahedron.prefab new file mode 100644 index 000000000..02510fd61 --- /dev/null +++ b/Assets/Prefabs/RPG/Pickups/Tetrahedron.prefab @@ -0,0 +1,134 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &7767746557817481743 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8414659055235772867} + - component: {fileID: 2868629223358676395} + - component: {fileID: 6959931328227918623} + - component: {fileID: 4540815661693075899} + - component: {fileID: 4008709970769624704} + - component: {fileID: -6589342969031261525} + m_Layer: 21 + m_Name: Tetrahedron + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &8414659055235772867 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7767746557817481743} + m_LocalRotation: {x: -0.7069834, y: 0, z: 0, w: 0.7072302} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 3, y: 3, z: 3} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: -89.98, y: 0, z: 0} +--- !u!33 &2868629223358676395 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7767746557817481743} + m_Mesh: {fileID: -7178685034035712819, guid: b4479e2dcccbdc048878a980f116a96b, type: 3} +--- !u!23 &6959931328227918623 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7767746557817481743} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 3720744386649352057, guid: c00b5a4f1e4743a4ca59b8030251f900, type: 3} + - {fileID: 3720744386649352057, guid: 26a894e543f3ed44893b1620707ca62c, type: 3} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!135 &4540815661693075899 +SphereCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7767746557817481743} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Radius: 0.60371214 + m_Center: {x: 0, y: 0, z: 0} +--- !u!114 &4008709970769624704 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7767746557817481743} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 737f47c158214f0995ba2835f040ed96, type: 3} + m_Name: + m_EditorClassIdentifier: + RotationSpeed: 1 + GridOffset: 0 + GridAttraction: 10 + Gravity: 1 + Drag: 0.05 + LaunchDrag: 0.2 +--- !u!54 &-6589342969031261525 +Rigidbody: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7767746557817481743} + serializedVersion: 2 + m_Mass: 1 + m_Drag: 0 + m_AngularDrag: 0.05 + m_UseGravity: 0 + m_IsKinematic: 1 + m_Interpolate: 0 + m_Constraints: 0 + m_CollisionDetection: 0 diff --git a/Assets/Prefabs/RPG/Pickups/Tetrahedron.prefab.meta b/Assets/Prefabs/RPG/Pickups/Tetrahedron.prefab.meta new file mode 100644 index 000000000..d21048f8a --- /dev/null +++ b/Assets/Prefabs/RPG/Pickups/Tetrahedron.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 521bfeece7dd5fd4e8f166d38493f18c +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Aetheria.inputactions b/Assets/Resources/Aetheria.inputactions index dda305f65..5a43bcfa9 100644 --- a/Assets/Resources/Aetheria.inputactions +++ b/Assets/Resources/Aetheria.inputactions @@ -196,6 +196,14 @@ "expectedControlType": "Button", "processors": "", "interactions": "" + }, + { + "name": "Tractor Beam", + "type": "Value", + "id": "e61d5d8e-eaf7-449d-8d54-624e15b6c964", + "expectedControlType": "", + "processors": "", + "interactions": "" } ], "bindings": [ @@ -649,6 +657,17 @@ "action": "Hide UI", "isComposite": false, "isPartOfComposite": false + }, + { + "name": "", + "id": "37683a7e-02b1-4daa-a990-a51a30e7f8e9", + "path": "/f", + "interactions": "", + "processors": "", + "groups": "Keyboard&Mouse", + "action": "Tractor Beam", + "isComposite": false, + "isPartOfComposite": false } ] }, diff --git a/Assets/Resources/Prefabs/Ships/Djinni.prefab b/Assets/Resources/Prefabs/Ships/Djinni.prefab index f673c5f74..716f4d675 100644 --- a/Assets/Resources/Prefabs/Ships/Djinni.prefab +++ b/Assets/Resources/Prefabs/Ships/Djinni.prefab @@ -6913,6 +6913,7 @@ Transform: - {fileID: 3659313866188730483} - {fileID: 5496325214845933821} - {fileID: 5670809732538438839} + - {fileID: 680201488166242961} m_Father: {fileID: 0} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -6957,6 +6958,7 @@ MonoBehaviour: - {fileID: 555770309889367125} DestroyEffect: {fileID: 1121192042590650, guid: e1b08032bec16ba4eb1ae23cbd572664, type: 3} + TractorBeam: {fileID: 3725076945201460397} --- !u!1 &8620289461215737213 GameObject: m_ObjectHideFlags: 0 @@ -7343,3 +7345,90 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: a42e4b31178f74d43b17322b0ae8f178, type: 3} m_Name: m_EditorClassIdentifier: +--- !u!1001 &5078168084166504631 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 9106854767781449910} + m_Modifications: + - target: {fileID: 2009124798951080406, guid: 1df59848be1db8547bc662080d0d6000, + type: 3} + propertyPath: m_Name + value: Tractor Beam + objectReference: {fileID: 0} + - target: {fileID: 5695304557067713062, guid: 1df59848be1db8547bc662080d0d6000, + type: 3} + propertyPath: m_RootOrder + value: 7 + objectReference: {fileID: 0} + - target: {fileID: 5695304557067713062, guid: 1df59848be1db8547bc662080d0d6000, + type: 3} + propertyPath: m_LocalPosition.x + value: 0.2 + objectReference: {fileID: 0} + - target: {fileID: 5695304557067713062, guid: 1df59848be1db8547bc662080d0d6000, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5695304557067713062, guid: 1df59848be1db8547bc662080d0d6000, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5695304557067713062, guid: 1df59848be1db8547bc662080d0d6000, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5695304557067713062, guid: 1df59848be1db8547bc662080d0d6000, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5695304557067713062, guid: 1df59848be1db8547bc662080d0d6000, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5695304557067713062, guid: 1df59848be1db8547bc662080d0d6000, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5695304557067713062, guid: 1df59848be1db8547bc662080d0d6000, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5695304557067713062, guid: 1df59848be1db8547bc662080d0d6000, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5695304557067713062, guid: 1df59848be1db8547bc662080d0d6000, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 1df59848be1db8547bc662080d0d6000, type: 3} +--- !u!4 &680201488166242961 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 5695304557067713062, guid: 1df59848be1db8547bc662080d0d6000, + type: 3} + m_PrefabInstance: {fileID: 5078168084166504631} + m_PrefabAsset: {fileID: 0} +--- !u!114 &3725076945201460397 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 8487991487311807514, guid: 1df59848be1db8547bc662080d0d6000, + type: 3} + m_PrefabInstance: {fileID: 5078168084166504631} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3f02211fcfb247b88dc54e58ad3b72d8, type: 3} + m_Name: + m_EditorClassIdentifier: diff --git a/Assets/Resources/Prefabs/Ships/Longinus.prefab b/Assets/Resources/Prefabs/Ships/Longinus.prefab index 73b21b07c..c38a7709f 100644 --- a/Assets/Resources/Prefabs/Ships/Longinus.prefab +++ b/Assets/Resources/Prefabs/Ships/Longinus.prefab @@ -42,6 +42,7 @@ Transform: - {fileID: 3808243476704657384} - {fileID: 4269524162621747868} - {fileID: 6012453260758506882} + - {fileID: 8650006510622813505} m_Father: {fileID: 0} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: -153.969, z: 0} @@ -83,6 +84,7 @@ MonoBehaviour: - {fileID: 5252554217388465174} DestroyEffect: {fileID: 1121192042590650, guid: e1b08032bec16ba4eb1ae23cbd572664, type: 3} + TractorBeam: {fileID: 4812185330873570173} --- !u!1 &622200413621136596 GameObject: m_ObjectHideFlags: 0 @@ -1866,3 +1868,90 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: a42e4b31178f74d43b17322b0ae8f178, type: 3} m_Name: m_EditorClassIdentifier: +--- !u!1001 &3964071774140897127 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 737798575382408336} + m_Modifications: + - target: {fileID: 2009124798951080406, guid: 1df59848be1db8547bc662080d0d6000, + type: 3} + propertyPath: m_Name + value: Tractor Beam + objectReference: {fileID: 0} + - target: {fileID: 5695304557067713062, guid: 1df59848be1db8547bc662080d0d6000, + type: 3} + propertyPath: m_RootOrder + value: 14 + objectReference: {fileID: 0} + - target: {fileID: 5695304557067713062, guid: 1df59848be1db8547bc662080d0d6000, + type: 3} + propertyPath: m_LocalPosition.x + value: 0.2 + objectReference: {fileID: 0} + - target: {fileID: 5695304557067713062, guid: 1df59848be1db8547bc662080d0d6000, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5695304557067713062, guid: 1df59848be1db8547bc662080d0d6000, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5695304557067713062, guid: 1df59848be1db8547bc662080d0d6000, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5695304557067713062, guid: 1df59848be1db8547bc662080d0d6000, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5695304557067713062, guid: 1df59848be1db8547bc662080d0d6000, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5695304557067713062, guid: 1df59848be1db8547bc662080d0d6000, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5695304557067713062, guid: 1df59848be1db8547bc662080d0d6000, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5695304557067713062, guid: 1df59848be1db8547bc662080d0d6000, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5695304557067713062, guid: 1df59848be1db8547bc662080d0d6000, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 1df59848be1db8547bc662080d0d6000, type: 3} +--- !u!4 &8650006510622813505 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 5695304557067713062, guid: 1df59848be1db8547bc662080d0d6000, + type: 3} + m_PrefabInstance: {fileID: 3964071774140897127} + m_PrefabAsset: {fileID: 0} +--- !u!114 &4812185330873570173 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 8487991487311807514, guid: 1df59848be1db8547bc662080d0d6000, + type: 3} + m_PrefabInstance: {fileID: 3964071774140897127} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3f02211fcfb247b88dc54e58ad3b72d8, type: 3} + m_Name: + m_EditorClassIdentifier: diff --git a/Assets/Resources/Prefabs/Tractor Beam.prefab b/Assets/Resources/Prefabs/Tractor Beam.prefab new file mode 100644 index 000000000..9ce0d7760 --- /dev/null +++ b/Assets/Resources/Prefabs/Tractor Beam.prefab @@ -0,0 +1,4823 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &2009124798951080406 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5695304557067713062} + - component: {fileID: 5087162364086924483} + - component: {fileID: 2008928242227303111} + - component: {fileID: 8487991487311807514} + m_Layer: 0 + m_Name: Tractor Beam + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &5695304557067713062 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2009124798951080406} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0.2, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!198 &5087162364086924483 +ParticleSystem: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2009124798951080406} + serializedVersion: 7 + lengthInSec: 5 + simulationSpeed: 5 + stopAction: 0 + cullingMode: 0 + ringBufferMode: 0 + ringBufferLoopRange: {x: 0, y: 1} + looping: 1 + prewarm: 0 + playOnAwake: 1 + useUnscaledTime: 0 + autoRandomSeed: 1 + useRigidbodyForVelocity: 1 + startDelay: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + moveWithTransform: 1 + moveWithCustomTransform: {fileID: 0} + scalingMode: 1 + randomSeed: 0 + InitialModule: + serializedVersion: 3 + enabled: 1 + startLifetime: + serializedVersion: 2 + minMaxState: 0 + scalar: 5 + minScalar: 5 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startSpeed: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 5 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startColor: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + startSize: + serializedVersion: 2 + minMaxState: 0 + scalar: 25 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startSizeY: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startSizeZ: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startRotationX: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startRotationY: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startRotation: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + randomizeRotationDirection: 0 + maxNumParticles: 1000 + size3D: 0 + rotation3D: 0 + gravityModifier: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + ShapeModule: + serializedVersion: 6 + enabled: 1 + type: 0 + angle: 0 + length: 5 + boxThickness: {x: 0, y: 0, z: 0} + radiusThickness: 0 + donutRadius: 0.2 + m_Position: {x: 0, y: 0, z: 75} + m_Rotation: {x: 0, y: 0, z: 0} + m_Scale: {x: 1, y: 1, z: 1} + placementMode: 0 + m_MeshMaterialIndex: 0 + m_MeshNormalOffset: 0 + m_MeshSpawn: + mode: 0 + spread: 0 + speed: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Mesh: {fileID: 0} + m_MeshRenderer: {fileID: 0} + m_SkinnedMeshRenderer: {fileID: 0} + m_Sprite: {fileID: 0} + m_SpriteRenderer: {fileID: 0} + m_UseMeshMaterialIndex: 0 + m_UseMeshColors: 1 + alignToDirection: 0 + m_Texture: {fileID: 0} + m_TextureClipChannel: 3 + m_TextureClipThreshold: 0 + m_TextureUVChannel: 0 + m_TextureColorAffectsParticles: 1 + m_TextureAlphaAffectsParticles: 1 + m_TextureBilinearFiltering: 0 + randomDirectionAmount: 0 + sphericalDirectionAmount: 0 + randomPositionAmount: 0 + radius: + value: 0.0001 + mode: 0 + spread: 0 + speed: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + arc: + value: 360 + mode: 0 + spread: 0 + speed: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + EmissionModule: + enabled: 1 + serializedVersion: 4 + rateOverTime: + serializedVersion: 2 + minMaxState: 0 + scalar: 2 + minScalar: 10 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + rateOverDistance: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_BurstCount: 0 + m_Bursts: [] + SizeModule: + enabled: 1 + curve: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: -2 + outSlope: -2 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 0.109731965 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + RotationModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + curve: + serializedVersion: 2 + minMaxState: 0 + scalar: 0.7853982 + minScalar: 0.7853982 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + ColorModule: + enabled: 1 + gradient: + serializedVersion: 2 + minMaxState: 1 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 0.6839622, g: 0.9423445, b: 1, a: 0} + key1: {r: 1, g: 0.100000024, b: 0.5976472, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 2704 + atime2: 65535 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 3 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + UVModule: + serializedVersion: 2 + enabled: 0 + mode: 0 + timeMode: 0 + fps: 30 + frameOverTime: + serializedVersion: 2 + minMaxState: 1 + scalar: 0.9999 + minScalar: 0.9999 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startFrame: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + speedRange: {x: 0, y: 1} + tilesX: 1 + tilesY: 1 + animationType: 0 + rowIndex: 0 + cycles: 1 + uvChannelMask: -1 + rowMode: 1 + sprites: + - sprite: {fileID: 0} + flipU: 0 + flipV: 0 + VelocityModule: + enabled: 1 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalX: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalY: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalZ: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalOffsetX: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalOffsetY: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalOffsetZ: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + radial: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: -0.012468338 + inSlope: -2.2808027 + outSlope: -2.2808027 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0.11152415 + - serializedVersion: 3 + time: 1 + value: -1 + inSlope: -0.16428299 + outSlope: -0.16428299 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.1821562 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + speedModifier: + serializedVersion: 2 + minMaxState: 0 + scalar: 20 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + inWorldSpace: 0 + InheritVelocityModule: + enabled: 0 + m_Mode: 0 + m_Curve: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + LifetimeByEmitterSpeedModule: + enabled: 0 + m_Curve: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: -0.8 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0.2 + inSlope: -0.8 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Range: {x: 0, y: 1} + ForceModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + inWorldSpace: 0 + randomizePerFrame: 0 + ExternalForcesModule: + serializedVersion: 2 + enabled: 0 + multiplierCurve: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + influenceFilter: 0 + influenceMask: + serializedVersion: 2 + m_Bits: 4294967295 + influenceList: [] + ClampVelocityModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + magnitude: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxis: 0 + inWorldSpace: 0 + multiplyDragByParticleSize: 1 + multiplyDragByParticleVelocity: 1 + dampen: 0 + drag: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + NoiseModule: + enabled: 0 + strength: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + strengthY: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + strengthZ: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + frequency: 0.5 + damping: 1 + octaves: 1 + octaveMultiplier: 0.5 + octaveScale: 2 + quality: 2 + scrollSpeed: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remap: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: -1 + inSlope: 0 + outSlope: 2 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 2 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remapY: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: -1 + inSlope: 0 + outSlope: 2 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 2 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remapZ: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: -1 + inSlope: 0 + outSlope: 2 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 2 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remapEnabled: 0 + positionAmount: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + rotationAmount: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + sizeAmount: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + SizeBySpeedModule: + enabled: 0 + curve: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + range: {x: 0, y: 1} + separateAxes: 0 + RotationBySpeedModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + curve: + serializedVersion: 2 + minMaxState: 0 + scalar: 0.7853982 + minScalar: 0.7853982 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + range: {x: 0, y: 1} + ColorBySpeedModule: + enabled: 0 + gradient: + serializedVersion: 2 + minMaxState: 1 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + range: {x: 0, y: 1} + CollisionModule: + enabled: 0 + serializedVersion: 4 + type: 0 + collisionMode: 0 + colliderForce: 0 + multiplyColliderForceByParticleSize: 0 + multiplyColliderForceByParticleSpeed: 0 + multiplyColliderForceByCollisionAngle: 1 + m_Planes: [] + m_Dampen: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Bounce: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_EnergyLossOnCollision: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minKillSpeed: 0 + maxKillSpeed: 10000 + radiusScale: 1 + collidesWith: + serializedVersion: 2 + m_Bits: 4294967295 + maxCollisionShapes: 256 + quality: 0 + voxelSize: 0.5 + collisionMessages: 0 + collidesWithDynamic: 1 + interiorCollisions: 0 + TriggerModule: + enabled: 0 + serializedVersion: 2 + inside: 1 + outside: 0 + enter: 0 + exit: 0 + colliderQueryMode: 0 + radiusScale: 1 + primitives: [] + SubModule: + serializedVersion: 2 + enabled: 0 + subEmitters: + - serializedVersion: 3 + emitter: {fileID: 0} + type: 0 + properties: 0 + emitProbability: 1 + LightsModule: + enabled: 0 + ratio: 0 + light: {fileID: 0} + randomDistribution: 1 + color: 1 + range: 1 + intensity: 1 + rangeCurve: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + intensityCurve: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + maxLights: 20 + TrailModule: + enabled: 0 + mode: 0 + ratio: 1 + lifetime: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minVertexDistance: 0.2 + textureMode: 0 + ribbonCount: 1 + shadowBias: 0.5 + worldSpace: 0 + dieWithParticles: 1 + sizeAffectsWidth: 1 + sizeAffectsLifetime: 0 + inheritParticleColor: 1 + generateLightingData: 0 + splitSubEmitterRibbons: 0 + attachRibbonsToTransform: 0 + colorOverLifetime: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + widthOverTrail: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + colorOverTrail: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + CustomDataModule: + enabled: 0 + mode0: 0 + vectorComponentCount0: 4 + color0: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + colorLabel0: Color + vector0_0: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_0: X + vector0_1: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_1: Y + vector0_2: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_2: Z + vector0_3: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_3: W + mode1: 0 + vectorComponentCount1: 4 + color1: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + colorLabel1: Color + vector1_0: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_0: X + vector1_1: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_1: Y + vector1_2: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_2: Z + vector1_3: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_3: W +--- !u!199 &2008928242227303111 +ParticleSystemRenderer: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2009124798951080406} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: c743050056b7f9a409136c378f3f62b8, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_RenderMode: 0 + m_SortMode: 0 + m_MinParticleSize: 0 + m_MaxParticleSize: 0.5 + m_CameraVelocityScale: 0 + m_VelocityScale: 0 + m_LengthScale: 2 + m_SortingFudge: 0 + m_NormalDirection: 1 + m_ShadowBias: 0 + m_RenderAlignment: 4 + m_Pivot: {x: 0, y: 0, z: 0} + m_Flip: {x: 0, y: 0, z: 0} + m_UseCustomVertexStreams: 0 + m_EnableGPUInstancing: 1 + m_ApplyActiveColorSpace: 1 + m_AllowRoll: 1 + m_FreeformStretching: 0 + m_RotateWithStretchDirection: 1 + m_VertexStreams: 00010304 + m_Mesh: {fileID: 0} + m_Mesh1: {fileID: 0} + m_Mesh2: {fileID: 0} + m_Mesh3: {fileID: 0} + m_MaskInteraction: 0 +--- !u!114 &8487991487311807514 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2009124798951080406} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3f02211fcfb247b88dc54e58ad3b72d8, type: 3} + m_Name: + m_EditorClassIdentifier: + ParticleSystem: {fileID: 5087162364086924483} + Radius: 25 + Traction: 25 + Distance: 75 diff --git a/Assets/Resources/Prefabs/Tractor Beam.prefab.meta b/Assets/Resources/Prefabs/Tractor Beam.prefab.meta new file mode 100644 index 000000000..09197c590 --- /dev/null +++ b/Assets/Resources/Prefabs/Tractor Beam.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 1df59848be1db8547bc662080d0d6000 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Prefabs/Turrets/Turret.prefab b/Assets/Resources/Prefabs/Turrets/Turret.prefab index c7484c207..8f83fc3ee 100644 --- a/Assets/Resources/Prefabs/Turrets/Turret.prefab +++ b/Assets/Resources/Prefabs/Turrets/Turret.prefab @@ -1072,11 +1072,15 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 170aefb3b5cd0e444826f3561d38a962, type: 3} m_Name: m_EditorClassIdentifier: + PingPrefab: {fileID: 0} InvisibleMaterial: {fileID: 2100000, guid: c94a225de88e5ce42af01c34df3521e6, type: 2} + Shield: {fileID: 0} HullColliders: - {fileID: 6946734302097032818} - {fileID: 2664341253667465548} - {fileID: 3028840165937219683} + - {fileID: 8304154918997209436} + EquipmentHardpoints: [] RadiatorHardpoints: [] ThrusterHardpoints: [] WeaponHardpoints: diff --git a/Assets/Resources/Prefabs/Weapons/Mine Launcher.prefab b/Assets/Resources/Prefabs/Weapons/Mine Launcher.prefab index e1b617a59..f183326fb 100644 --- a/Assets/Resources/Prefabs/Weapons/Mine Launcher.prefab +++ b/Assets/Resources/Prefabs/Weapons/Mine Launcher.prefab @@ -13,7 +13,8 @@ GameObject: - component: {fileID: 4535912766998605946} - component: {fileID: 2069293240452108309} - component: {fileID: 951258163572815990} - m_Layer: 0 + - component: {fileID: 6357237398779034136} + m_Layer: 21 m_Name: Mine m_TagString: Untagged m_Icon: {fileID: 0} @@ -110,6 +111,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: f190191fe8c8419f85767868c50cde5f, type: 3} m_Name: m_EditorClassIdentifier: + GridObject: {fileID: 6357237398779034136} MeshRenderer: {fileID: 4535912766998605946} EmissionSubmesh: 2 EmissionCurve: @@ -149,17 +151,29 @@ MonoBehaviour: ArmedCycleDuration: 0.25 ActiveEmission: 100 ArmedEmission: 1000 + HitEffect: {fileID: 3349939966709198091} + Lifetime: 30 + ActivationDelay: 2 + BlastRange: 25 + BlastDelay: 2 +--- !u!114 &6357237398779034136 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 756302067359749329} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 737f47c158214f0995ba2835f040ed96, type: 3} + m_Name: + m_EditorClassIdentifier: RotationSpeed: 1 GridOffset: 0 GridAttraction: 10 Gravity: 1 Drag: 0.05 LaunchDrag: 0.2 - HitEffect: {fileID: 3349939966709198091} - Lifetime: 30 - ActivationDelay: 2 - BlastRange: 25 - BlastDelay: 2 --- !u!1 &951357816492268516 GameObject: m_ObjectHideFlags: 0 diff --git a/Assets/Scenes/ARPG.unity b/Assets/Scenes/ARPG.unity index 767880601..c5001857d 100644 --- a/Assets/Scenes/ARPG.unity +++ b/Assets/Scenes/ARPG.unity @@ -16316,6 +16316,14 @@ MonoBehaviour: LODHandler: {fileID: 1009503736} SlimeRenderer: {fileID: 1254851254} SlimeGravityCamera: {fileID: 1066823975} + SimpleCommodityPickup: {fileID: 4008709970769624704, guid: 521bfeece7dd5fd4e8f166d38493f18c, + type: 3} + CompoundCommodityPickup: {fileID: 7449398549621940518, guid: 366909b6a01d7254d8eef01c333f8e00, + type: 3} + GearPickup: {fileID: 946329779588188460, guid: d2b7e9a9cd7733041b0553682e4b61af, + type: 3} + WeaponPickup: {fileID: 8842807112802394818, guid: d2cec1d8c3d94074e9d2e6088e1c02d7, + type: 3} Tour: 0 TourSwitchTime: 10 TourFollowDistance: 100 @@ -23266,7 +23274,7 @@ PrefabInstance: - target: {fileID: 878382121558056004, guid: 2758dfa2744d7ad4d8877545189d116e, type: 3} propertyPath: m_AnchoredPosition.x - value: 55.675 + value: 0 objectReference: {fileID: 0} - target: {fileID: 878382121558056004, guid: 2758dfa2744d7ad4d8877545189d116e, type: 3} @@ -24569,7 +24577,7 @@ PrefabInstance: - target: {fileID: 878382121558056004, guid: 2758dfa2744d7ad4d8877545189d116e, type: 3} propertyPath: m_AnchoredPosition.x - value: 60.98 + value: 0 objectReference: {fileID: 0} - target: {fileID: 878382121558056004, guid: 2758dfa2744d7ad4d8877545189d116e, type: 3} @@ -30395,7 +30403,7 @@ Camera: m_Depth: -1 m_CullingMask: serializedVersion: 2 - m_Bits: 33 + m_Bits: 2097185 m_RenderingPath: 3 m_TargetTexture: {fileID: 0} m_TargetDisplay: 0 diff --git a/Assets/Scenes/Main Menu.unity b/Assets/Scenes/Main Menu.unity index 8f51544c7..e535a0f59 100644 --- a/Assets/Scenes/Main Menu.unity +++ b/Assets/Scenes/Main Menu.unity @@ -542,7 +542,7 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 553528106} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalPosition: {x: -0.03, y: 0, z: -0.01} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 0} @@ -802,8 +802,8 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 741153267} - m_LocalRotation: {x: 0.015506932, y: 0.9502416, z: -0.30741316, w: 0.04793331} - m_LocalPosition: {x: -117.520035, y: -77.087425, z: 149.09027} + m_LocalRotation: {x: 0.01550689, y: 0.9502416, z: -0.3074131, w: 0.047933202} + m_LocalPosition: {x: -117.51997, y: -77.08743, z: 149.09024} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: - {fileID: 412917866} @@ -1234,8 +1234,8 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 965376321} - m_LocalRotation: {x: 0.015506932, y: 0.9502416, z: -0.30741316, w: 0.04793331} - m_LocalPosition: {x: -117.520035, y: -77.087425, z: 149.09027} + m_LocalRotation: {x: 0.01550689, y: 0.9502416, z: -0.3074131, w: 0.047933202} + m_LocalPosition: {x: -117.51997, y: -77.08743, z: 149.09024} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 0} @@ -2321,7 +2321,7 @@ PrefabInstance: - target: {fileID: 3664209305474245377, guid: 3d8d9cbf10b12214e98891c1f03c1e99, type: 3} propertyPath: m_AnchoredPosition.x - value: 0 + value: 60.98 objectReference: {fileID: 0} - target: {fileID: 3664209305474245377, guid: 3d8d9cbf10b12214e98891c1f03c1e99, type: 3} @@ -2346,7 +2346,7 @@ PrefabInstance: - target: {fileID: 3664209306888449100, guid: 3d8d9cbf10b12214e98891c1f03c1e99, type: 3} propertyPath: m_AnchoredPosition.x - value: 0 + value: 55.675 objectReference: {fileID: 0} - target: {fileID: 3664209306888449100, guid: 3d8d9cbf10b12214e98891c1f03c1e99, type: 3} diff --git a/Assets/Scripts/AetheriaInput.cs b/Assets/Scripts/AetheriaInput.cs index 095b75dac..91261f1e4 100644 --- a/Assets/Scripts/AetheriaInput.cs +++ b/Assets/Scripts/AetheriaInput.cs @@ -209,6 +209,14 @@ public class @AetheriaInput : IInputActionCollection, IDisposable ""expectedControlType"": ""Button"", ""processors"": """", ""interactions"": """" + }, + { + ""name"": ""Tractor Beam"", + ""type"": ""Value"", + ""id"": ""e61d5d8e-eaf7-449d-8d54-624e15b6c964"", + ""expectedControlType"": """", + ""processors"": """", + ""interactions"": """" } ], ""bindings"": [ @@ -662,6 +670,17 @@ public class @AetheriaInput : IInputActionCollection, IDisposable ""action"": ""Hide UI"", ""isComposite"": false, ""isPartOfComposite"": false + }, + { + ""name"": """", + ""id"": ""37683a7e-02b1-4daa-a990-a51a30e7f8e9"", + ""path"": ""/f"", + ""interactions"": """", + ""processors"": """", + ""groups"": ""Keyboard&Mouse"", + ""action"": ""Tractor Beam"", + ""isComposite"": false, + ""isPartOfComposite"": false } ] }, @@ -1290,6 +1309,7 @@ public class @AetheriaInput : IInputActionCollection, IDisposable m_Player_OverrideShutdown = m_Player.FindAction("Override Shutdown", throwIfNotFound: true); m_Player_Ping = m_Player.FindAction("Ping", throwIfNotFound: true); m_Player_HideUI = m_Player.FindAction("Hide UI", throwIfNotFound: true); + m_Player_TractorBeam = m_Player.FindAction("Tractor Beam", throwIfNotFound: true); // UI m_UI = asset.FindActionMap("UI", throwIfNotFound: true); m_UI_Navigate = m_UI.FindAction("Navigate", throwIfNotFound: true); @@ -1381,6 +1401,7 @@ public class @AetheriaInput : IInputActionCollection, IDisposable private readonly InputAction m_Player_OverrideShutdown; private readonly InputAction m_Player_Ping; private readonly InputAction m_Player_HideUI; + private readonly InputAction m_Player_TractorBeam; public struct PlayerActions { private @AetheriaInput m_Wrapper; @@ -1409,6 +1430,7 @@ public class @AetheriaInput : IInputActionCollection, IDisposable public InputAction @OverrideShutdown => m_Wrapper.m_Player_OverrideShutdown; public InputAction @Ping => m_Wrapper.m_Player_Ping; public InputAction @HideUI => m_Wrapper.m_Player_HideUI; + public InputAction @TractorBeam => m_Wrapper.m_Player_TractorBeam; public InputActionMap Get() { return m_Wrapper.m_Player; } public void Enable() { Get().Enable(); } public void Disable() { Get().Disable(); } @@ -1490,6 +1512,9 @@ public class @AetheriaInput : IInputActionCollection, IDisposable @HideUI.started -= m_Wrapper.m_PlayerActionsCallbackInterface.OnHideUI; @HideUI.performed -= m_Wrapper.m_PlayerActionsCallbackInterface.OnHideUI; @HideUI.canceled -= m_Wrapper.m_PlayerActionsCallbackInterface.OnHideUI; + @TractorBeam.started -= m_Wrapper.m_PlayerActionsCallbackInterface.OnTractorBeam; + @TractorBeam.performed -= m_Wrapper.m_PlayerActionsCallbackInterface.OnTractorBeam; + @TractorBeam.canceled -= m_Wrapper.m_PlayerActionsCallbackInterface.OnTractorBeam; } m_Wrapper.m_PlayerActionsCallbackInterface = instance; if (instance != null) @@ -1566,6 +1591,9 @@ public class @AetheriaInput : IInputActionCollection, IDisposable @HideUI.started += instance.OnHideUI; @HideUI.performed += instance.OnHideUI; @HideUI.canceled += instance.OnHideUI; + @TractorBeam.started += instance.OnTractorBeam; + @TractorBeam.performed += instance.OnTractorBeam; + @TractorBeam.canceled += instance.OnTractorBeam; } } } @@ -1785,6 +1813,7 @@ public class @AetheriaInput : IInputActionCollection, IDisposable void OnOverrideShutdown(InputAction.CallbackContext context); void OnPing(InputAction.CallbackContext context); void OnHideUI(InputAction.CallbackContext context); + void OnTractorBeam(InputAction.CallbackContext context); } public interface IUIActions { diff --git a/Assets/Scripts/Gameplay/ActionGameManager.cs b/Assets/Scripts/Gameplay/ActionGameManager.cs index 17ff9fac0..aa2244b48 100644 --- a/Assets/Scripts/Gameplay/ActionGameManager.cs +++ b/Assets/Scripts/Gameplay/ActionGameManager.cs @@ -515,6 +515,27 @@ public class ActionGameManager : MonoBehaviour } }); + ConsoleController.AddCommand("spawnturret", + _ => + { + var nearestFaction = CurrentSector.Factions.MinBy(f => CurrentSector.HomeZones[f].Distance[Zone.SectorZone]); + + var loadoutGenerator = new LoadoutGenerator( + ref ItemManager.Random, + ItemManager, + CurrentSector, + Zone.SectorZone, + nearestFaction, + .5f); + + var turret = EntitySerializer.Unpack(ItemManager, Zone, loadoutGenerator.GenerateTurretLoadout(), true); + turret.Position.xz = _currentEntity.Position.xz + + ItemManager.Random.NextFloat2Direction() * ItemManager.Random.NextFloat(50, 500); + turret.Zone = Zone; + Zone.Entities.Add(turret); + turret.Activate(); + }); + ConsoleController.AddCommand("pingscene", _ => { @@ -770,7 +791,7 @@ public class ActionGameManager : MonoBehaviour Dialog.MoveToCursor(); AkSoundEngine.PostEvent("UI_Fail", gameObject); } - else if (CurrentEntity.GetBehavior() == null) + else if (CurrentEntity.GetBehavior() == null && CurrentEntity.GetBehavior() == null) { Dialog.Clear(); Dialog.Title.text = "Can't undock. Missing thruster component!"; @@ -1011,6 +1032,10 @@ public class ActionGameManager : MonoBehaviour { ship.MovementDirection = Input.Player.Move.ReadValue(); } + + var tractorPower = Input.Player.TractorBeam.ReadValue(); + CurrentEntity.TractorPower = + saturate(CurrentEntity.TractorPower + sign(tractorPower - CurrentEntity.TractorPower) * Time.deltaTime * 2); } Zone.Update(Time.deltaTime); } diff --git a/Assets/Scripts/Gameplay/EntityInstance.cs b/Assets/Scripts/Gameplay/EntityInstance.cs index 9fd6158b4..1dca776f6 100644 --- a/Assets/Scripts/Gameplay/EntityInstance.cs +++ b/Assets/Scripts/Gameplay/EntityInstance.cs @@ -7,6 +7,7 @@ using UnityEngine; using Unity.Mathematics; using static Unity.Mathematics.math; using float2 = Unity.Mathematics.float2; +using Random = UnityEngine.Random; public class EntityInstance : MonoBehaviour { @@ -60,6 +61,7 @@ public class EntityInstance : MonoBehaviour public Transform LookAtPoint { get; private set; } public Entity Entity { get; private set; } public ZoneRenderer ZoneRenderer { get; private set; } + public Transform LocalSpace { get; private set; } public bool Visible { get => _fade > 0.01f; @@ -67,6 +69,7 @@ public class EntityInstance : MonoBehaviour private void Awake() { + LocalSpace = new GameObject().transform; var meshes = gameObject.GetComponentsInChildren(); var materials = new List<(Material material, List<(MeshRenderer renderer, int index)> submeshes)>(); foreach (var mesh in meshes) @@ -150,6 +153,8 @@ public class EntityInstance : MonoBehaviour public virtual void SetEntity(ZoneRenderer zoneRenderer, Entity entity) { gameObject.name = entity.Name; + LocalSpace.gameObject.name = $"{entity.Name} Sim Space"; + LocalSpace.SetParent(transform.parent); Entity = entity; ZoneRenderer = zoneRenderer; var hullData = entity.ItemManager.GetData(entity.Hull) as HullData; @@ -419,6 +424,27 @@ public class EntityInstance : MonoBehaviour { if (!this) return; _destroyed = true; + foreach (var gear in Entity.Equipment) + { + if (Random.value < ZoneRenderer.Settings.LootDropProbability) + { + ZoneRenderer.DropItem( + Entity.Position, + Random.onUnitSphere * ZoneRenderer.Settings.LootDropVelocity, + gear.EquippableItem); + } + } + + foreach (var cargo in Entity.CargoBays) + { + foreach (var item in cargo.Cargo.Keys) + { + ZoneRenderer.DropItem( + Entity.Position, + Random.onUnitSphere * ZoneRenderer.Settings.LootDropVelocity, + item); + } + } if (DestroyEffect != null) { var t = Instantiate(DestroyEffect).transform; @@ -453,6 +479,7 @@ public class EntityInstance : MonoBehaviour public virtual void Update() { + LocalSpace.localPosition = transform.localPosition; if (_currentPing.transform) { _currentPing.transform.localScale = _sensor.PingRadius * Vector3.one; @@ -531,15 +558,16 @@ public class EntityInstance : MonoBehaviour public virtual void OnDestroy() { + Destroy(LocalSpace.gameObject); foreach (var r in _radiatorSfx) { - AkSoundEngine.PostEvent(r.Key.Item.Data.SoundEffectTrigger + "_stop", r.Value); + AkSoundEngine.PostEvent($"{r.Key.Item.Data.SoundEffectTrigger}_stop", r.Value); AkSoundEngine.UnregisterGameObj(r.Value); } if (_reactor.reactor != null) { - AkSoundEngine.PostEvent(_reactor.reactor.Item.Data.SoundEffectTrigger + "_stop", _reactor.sfxSource); + AkSoundEngine.PostEvent($"{_reactor.reactor.Item.Data.SoundEffectTrigger}_stop", _reactor.sfxSource); AkSoundEngine.UnregisterGameObj(_reactor.sfxSource); } foreach(var x in _subscriptions) diff --git a/Assets/Scripts/Gameplay/GameSettings.cs b/Assets/Scripts/Gameplay/GameSettings.cs index 8e986d71e..a655de366 100644 --- a/Assets/Scripts/Gameplay/GameSettings.cs +++ b/Assets/Scripts/Gameplay/GameSettings.cs @@ -11,6 +11,9 @@ using UnityEngine; public class GameSettings : ScriptableObject { public string StartingHullName = "Longinus"; + public float PickupLifetime = 30; + public float LootDropProbability = .25f; + public float LootDropVelocity = 25; public float HeatstrokePhasingFloor = 0; public float HeatstrokePhasingFrequency = 5; public float WormholeDistanceRatio; diff --git a/Assets/Scripts/Gameplay/GridObject.cs b/Assets/Scripts/Gameplay/GridObject.cs new file mode 100644 index 000000000..ef722a1d2 --- /dev/null +++ b/Assets/Scripts/Gameplay/GridObject.cs @@ -0,0 +1,49 @@ +using System; +using Unity.Mathematics; +using UnityEngine; +using static Unity.Mathematics.math; +using Random = UnityEngine.Random; + +public class GridObject : MonoBehaviour +{ + public float RotationSpeed; + public float GridOffset; + public float GridAttraction; + public float Gravity; + public float Drag = .1f; + public float LaunchDrag; + + private float2 _selfVelocity; + private float _timeOffset; + + public Zone Zone { get; set; } + public Vector3 Velocity { get; set; } + + private void Start() + { + _timeOffset = Random.value * 100; + } + + void Update() + { + if (Zone == null) return; + + var t = transform; + var position = t.position; + var gridHeight = Zone.GetHeight(position.Flatland()) + GridOffset; + Velocity += Vector3.up * (sign(gridHeight - position.y) * GridAttraction * Time.deltaTime); + Velocity *= max(0, 1 - LaunchDrag * Time.deltaTime); + var normal = Zone.GetNormal(position.Flatland()); + var force = new float2(normal.x, normal.z); + var forceMagnitude = lengthsq(force); + if (forceMagnitude > .001f) + { + var fa = 1 / (1 - forceMagnitude) - 1; + _selfVelocity += normalize(force) * Zone.Settings.GravityStrength * fa * Gravity; + } + + _selfVelocity *= max(0, 1 - Drag * Time.deltaTime); + t.position = position + (Velocity + new Vector3(_selfVelocity.x, 0, _selfVelocity.y)) * Time.deltaTime; + t.localRotation = Quaternion.Euler(sin(Time.time - _timeOffset * RotationSpeed) * 90, 0, cos(Time.time - _timeOffset * RotationSpeed) * 90); + } +} \ No newline at end of file diff --git a/Assets/Scripts/Gameplay/GridObject.cs.meta b/Assets/Scripts/Gameplay/GridObject.cs.meta new file mode 100644 index 000000000..335d81a85 --- /dev/null +++ b/Assets/Scripts/Gameplay/GridObject.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 737f47c158214f0995ba2835f040ed96 +timeCreated: 1618441439 \ No newline at end of file diff --git a/Assets/Scripts/Gameplay/ItemPickup.cs b/Assets/Scripts/Gameplay/ItemPickup.cs new file mode 100644 index 000000000..4355cde7d --- /dev/null +++ b/Assets/Scripts/Gameplay/ItemPickup.cs @@ -0,0 +1,6 @@ +using UnityEngine; + +public class ItemPickup : MonoBehaviour +{ + public ItemInstance Item { get; set; } +} \ No newline at end of file diff --git a/Assets/Scripts/Gameplay/ItemPickup.cs.meta b/Assets/Scripts/Gameplay/ItemPickup.cs.meta new file mode 100644 index 000000000..6f44763a0 --- /dev/null +++ b/Assets/Scripts/Gameplay/ItemPickup.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 0c18f67d85af44c2b5afc8ecd15ce960 +timeCreated: 1618445037 \ No newline at end of file diff --git a/Assets/ShieldAnimation.cs b/Assets/Scripts/Gameplay/ShieldAnimation.cs similarity index 100% rename from Assets/ShieldAnimation.cs rename to Assets/Scripts/Gameplay/ShieldAnimation.cs diff --git a/Assets/ShieldAnimation.cs.meta b/Assets/Scripts/Gameplay/ShieldAnimation.cs.meta similarity index 100% rename from Assets/ShieldAnimation.cs.meta rename to Assets/Scripts/Gameplay/ShieldAnimation.cs.meta diff --git a/Assets/ShieldManager.cs b/Assets/Scripts/Gameplay/ShieldManager.cs similarity index 54% rename from Assets/ShieldManager.cs rename to Assets/Scripts/Gameplay/ShieldManager.cs index fc6ef5de6..fc24c8b12 100644 --- a/Assets/ShieldManager.cs +++ b/Assets/Scripts/Gameplay/ShieldManager.cs @@ -1,6 +1,7 @@ using System; using System.Collections; using System.Collections.Generic; +using System.Linq; using Unity.Mathematics; using static Unity.Mathematics.math; using UnityEngine; @@ -17,7 +18,37 @@ public class ShieldManager : MonoBehaviour var otherShield = other.collider.GetComponent(); if (!otherShield) { - Debug.Log("Shield collision occurred, but other collider isn't a shield!"); + var gridObject = other.collider.GetComponent(); + if (gridObject) + { + var itemPickup = other.collider.GetComponent(); + var mine = other.collider.GetComponent(); + if (itemPickup) + { + if (Entity.CargoBays.Any(c => c.TryStore(itemPickup.Item))) + { + // TODO: Pickup notification! + Destroy(itemPickup.gameObject); + } + else + { + // TODO: Pickup failed notification! + var cp = other.GetContact(0); + gridObject.Velocity += cp.normal * 25; + Debug.Log("Attempted item pickup, but no space in cargo bay!"); + } + } + else if (mine) + { + mine.Explode(); + } + else + { + Debug.Log("Shield collision occurred with grid object, but other collider isn't a mine or an item pickup!"); + } + } + else + Debug.Log("Shield collision occurred, but other collider isn't a shield or a grid object!"); return; } var contact = other.GetContact(0); diff --git a/Assets/ShieldManager.cs.meta b/Assets/Scripts/Gameplay/ShieldManager.cs.meta similarity index 100% rename from Assets/ShieldManager.cs.meta rename to Assets/Scripts/Gameplay/ShieldManager.cs.meta diff --git a/Assets/ShieldTest.cs b/Assets/Scripts/Gameplay/ShieldTest.cs similarity index 100% rename from Assets/ShieldTest.cs rename to Assets/Scripts/Gameplay/ShieldTest.cs diff --git a/Assets/ShieldTest.cs.meta b/Assets/Scripts/Gameplay/ShieldTest.cs.meta similarity index 100% rename from Assets/ShieldTest.cs.meta rename to Assets/Scripts/Gameplay/ShieldTest.cs.meta diff --git a/Assets/Scripts/Gameplay/ShipInstance.cs b/Assets/Scripts/Gameplay/ShipInstance.cs index 8fbd7189f..307e2e995 100644 --- a/Assets/Scripts/Gameplay/ShipInstance.cs +++ b/Assets/Scripts/Gameplay/ShipInstance.cs @@ -1,9 +1,12 @@ +using System; using System.Collections; using System.Linq; using UnityEngine; public class ShipInstance : EntityInstance { + private static int _shipIndex; + public TractorBeam TractorBeam; private class ThrusterInstance { public Thruster Thruster; @@ -17,6 +20,12 @@ public class ShipInstance : EntityInstance public Ship Ship { get; private set; } + private void Start() + { + var tractorBeamMain = TractorBeam.ParticleSystem.main; + tractorBeamMain.customSimulationSpace = LocalSpace; + } + public override void SetEntity(ZoneRenderer zoneRenderer, Entity entity) { base.SetEntity(zoneRenderer, entity); @@ -79,6 +88,9 @@ public class ShipInstance : EntityInstance public override void Update() { base.Update(); + + TractorBeam.Power = Entity.TractorPower; + TractorBeam.Direction = Entity.LookDirection; foreach (var thrusterInstance in _thrusters) { diff --git a/Assets/Scripts/Gameplay/TimedDestroy.cs b/Assets/Scripts/Gameplay/TimedDestroy.cs new file mode 100644 index 000000000..fbbd86f8c --- /dev/null +++ b/Assets/Scripts/Gameplay/TimedDestroy.cs @@ -0,0 +1,19 @@ +using System; +using UnityEngine; + +public class TimedDestroy : MonoBehaviour +{ + public float Duration; + + private float _startTime; + + private void Start() + { + _startTime = Time.time; + } + + public void Update() + { + if(Time.time - _startTime > Duration) Destroy(gameObject); + } +} \ No newline at end of file diff --git a/Assets/Scripts/Gameplay/TimedDestroy.cs.meta b/Assets/Scripts/Gameplay/TimedDestroy.cs.meta new file mode 100644 index 000000000..2f6bac661 --- /dev/null +++ b/Assets/Scripts/Gameplay/TimedDestroy.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 5d5539a23b814254b038a16f32f1d8a9 +timeCreated: 1618453298 \ No newline at end of file diff --git a/Assets/Scripts/Gameplay/TractorBeam.cs b/Assets/Scripts/Gameplay/TractorBeam.cs new file mode 100644 index 000000000..579cc813f --- /dev/null +++ b/Assets/Scripts/Gameplay/TractorBeam.cs @@ -0,0 +1,33 @@ +using System; +using UnityEngine; + +public class TractorBeam : MonoBehaviour +{ + public ParticleSystem ParticleSystem; + public float Radius; + public float Traction; + public float Distance; + + public float Power { get; set; } + public Vector3 Direction { get; set; } + + public void Update() + { + transform.rotation = Quaternion.LookRotation(Direction); + var emission = ParticleSystem.emission; + if (Power > .01f) + { + var objectFound = false; + foreach (var o in Physics.SphereCastAll(transform.position, Radius, Direction, Distance, 1 << 21)) + { + var gridObject = o.collider.GetComponent(); + if (gridObject == null) continue; + objectFound = true; + gridObject.Velocity += Vector3.Normalize(transform.position - gridObject.transform.position) * (Traction * Time.deltaTime); + } + + emission.rateOverTimeMultiplier = objectFound ? Power : 0; + } + else emission.rateOverTimeMultiplier = 0; + } +} \ No newline at end of file diff --git a/Assets/Scripts/Gameplay/TractorBeam.cs.meta b/Assets/Scripts/Gameplay/TractorBeam.cs.meta new file mode 100644 index 000000000..296204490 --- /dev/null +++ b/Assets/Scripts/Gameplay/TractorBeam.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 3f02211fcfb247b88dc54e58ad3b72d8 +timeCreated: 1618450377 \ No newline at end of file diff --git a/Assets/Scripts/Gameplay/Weapons/ConstantParticleWeapon.cs b/Assets/Scripts/Gameplay/Weapons/ConstantParticleWeapon.cs index 92be211d4..f09d10ed4 100644 --- a/Assets/Scripts/Gameplay/Weapons/ConstantParticleWeapon.cs +++ b/Assets/Scripts/Gameplay/Weapons/ConstantParticleWeapon.cs @@ -17,7 +17,6 @@ public class ConstantParticleWeapon : MonoBehaviour private float _emission; private List _collisionParticles = new List(); private HullCollider _hull; - private Transform _simulationSpace; private void Start() { @@ -33,12 +32,11 @@ public class ConstantParticleWeapon : MonoBehaviour public void Initialize() { - _simulationSpace = new GameObject($"{gameObject.name} Sim Space").transform; foreach(var p in Particles) { var main = p.main; main.simulationSpace = ParticleSystemSimulationSpace.Custom; - main.customSimulationSpace = _simulationSpace; + main.customSimulationSpace = Source.LocalSpace; } var trigger = Particles[0].trigger; @@ -57,11 +55,9 @@ public class ConstantParticleWeapon : MonoBehaviour private void Update() { if (Source == null) return; - _simulationSpace.position = Source.transform.position; if (_stopping && Particles.All(p=>p.particleCount == 0)) { GetComponent().ReturnToPool(); - Destroy(_simulationSpace.gameObject); return; } } diff --git a/Assets/Scripts/Gameplay/Weapons/Mine.cs b/Assets/Scripts/Gameplay/Weapons/Mine.cs index fc3d42e71..0d9c2a48c 100644 --- a/Assets/Scripts/Gameplay/Weapons/Mine.cs +++ b/Assets/Scripts/Gameplay/Weapons/Mine.cs @@ -8,6 +8,7 @@ using Random = UnityEngine.Random; public class Mine : MonoBehaviour { + public GridObject GridObject; public MeshRenderer MeshRenderer; public int EmissionSubmesh; public AnimationCurve EmissionCurve; @@ -15,12 +16,6 @@ public class Mine : MonoBehaviour public float ArmedCycleDuration; public float ActiveEmission; public float ArmedEmission; - public float RotationSpeed; - public float GridOffset; - public float GridAttraction; - public float Gravity; - public float Drag = .1f; - public float LaunchDrag; public Prototype HitEffect; public float Lifetime; @@ -28,7 +23,6 @@ public class Mine : MonoBehaviour public float BlastRange; public float BlastDelay; - private float2 _selfVelocity; private float _startTime; private float _blastTime; private bool _blastCountdown; @@ -36,9 +30,6 @@ public class Mine : MonoBehaviour private Material _material; private float _pulseLerp; private float _emission; - - public Zone Zone { get; set; } - public Vector3 Velocity { get; set; } public float Damage { get; set; } public DamageType DamageType { get; set; } public EntityInstance Source { get; set; } @@ -60,25 +51,8 @@ public class Mine : MonoBehaviour // Update is called once per frame void Update() { - if (Zone == null) return; - - var t = transform; - var position = t.position; - var gridHeight = Zone.GetHeight(position.Flatland()) + GridOffset; - Velocity += Vector3.up * (sign(gridHeight - position.y) * GridAttraction * Time.deltaTime); - Velocity *= max(0, 1 - LaunchDrag * Time.deltaTime); - var normal = Zone.GetNormal(position.Flatland()); - var force = new float2(normal.x, normal.z); - var forceMagnitude = lengthsq(force); - if (forceMagnitude > .001f) - { - var fa = 1 / (1 - forceMagnitude) - 1; - _selfVelocity += normalize(force) * Zone.Settings.GravityStrength * fa * Gravity; - } - _selfVelocity *= max(0, 1 - Drag * Time.deltaTime); - t.position = position + (Velocity + new Vector3(_selfVelocity.x,0,_selfVelocity.y)) * Time.deltaTime; - t.localRotation = Quaternion.Euler(sin(Time.time-_startTime * RotationSpeed) * 90, 0, cos(Time.time-_startTime * RotationSpeed) * 90); - + var position = transform.position; + if (Time.time - _startTime > ActivationDelay && !_active) { _active = true; @@ -91,7 +65,7 @@ public class Mine : MonoBehaviour _pulseLerp %= 1; if(!_blastCountdown) { - foreach (var collider in Physics.OverlapSphere(t.position, BlastRange, 1)) + foreach (var collider in Physics.OverlapSphere(position, BlastRange, 1)) { var hull = collider.GetComponent(); if (hull) @@ -106,26 +80,32 @@ public class Mine : MonoBehaviour Time.time - _startTime > Lifetime || _blastCountdown && Time.time > _blastTime) { - foreach (var collider in Physics.OverlapSphere(t.position, BlastRange, 1 | (1 << 17))) - { - var shield = collider.GetComponent(); - if (shield && (shield.Entity.Shield != null && shield.Entity.Shield.Item.Active.Value && shield.Entity.Shield.CanTakeHit(DamageType, Damage))) - { - shield.Entity.Shield.TakeHit(DamageType, Damage); - shield.ShowHit(t.position, sqrt(Damage)); - } - var hull = collider.GetComponent(); - if (hull && !(hull.Entity.Shield != null && hull.Entity.Shield.Item.Active.Value && hull.Entity.Shield.CanTakeHit(DamageType, Damage))) - { - hull.SendSplash(Damage, DamageType, Source.Entity, (collider.transform.position - t.position).normalized); - } - } - - var ht = HitEffect.Instantiate(); - ht.position = t.position; - GetComponent().ReturnToPool(); + Explode(); } } _material.SetFloat("_Emission", _emission * EmissionCurve.Evaluate(_pulseLerp)); } + + public void Explode() + { + var position = transform.position; + foreach (var collider in Physics.OverlapSphere(position, BlastRange, 1 | (1 << 17))) + { + var shield = collider.GetComponent(); + if (shield && (shield.Entity.Shield != null && shield.Entity.Shield.Item.Active.Value && shield.Entity.Shield.CanTakeHit(DamageType, Damage))) + { + shield.Entity.Shield.TakeHit(DamageType, Damage); + shield.ShowHit(position, sqrt(Damage)); + } + var hull = collider.GetComponent(); + if (hull && !(hull.Entity.Shield != null && hull.Entity.Shield.Item.Active.Value && hull.Entity.Shield.CanTakeHit(DamageType, Damage))) + { + hull.SendSplash(Damage, DamageType, Source.Entity, (collider.transform.position - position).normalized); + } + } + + var ht = HitEffect.Instantiate(); + ht.position = position; + GetComponent().ReturnToPool(); + } } diff --git a/Assets/Scripts/Gameplay/Weapons/MineManager.cs b/Assets/Scripts/Gameplay/Weapons/MineManager.cs index 39e21ca1f..3a9b671e3 100644 --- a/Assets/Scripts/Gameplay/Weapons/MineManager.cs +++ b/Assets/Scripts/Gameplay/Weapons/MineManager.cs @@ -18,17 +18,17 @@ public class MineManager : InstantWeaponEffectManager var angle = weapon.Spread / 2; p.Source = source; p.transform.position = barrel.position; - p.Velocity = Quaternion.Euler( - Random.Range(-angle, angle), - Random.Range(-angle, angle), - Random.Range(-angle, angle)) * - barrel.forward * - weapon.Velocity; + p.GridObject.Velocity = Quaternion.Euler( + Random.Range(-angle, angle), + Random.Range(-angle, angle), + Random.Range(-angle, angle)) * + barrel.forward * + weapon.Velocity; if(InheritVelocity) - p.Velocity += new Vector3(source.Entity.Velocity.x, 0, source.Entity.Velocity.y); + p.GridObject.Velocity += new Vector3(source.Entity.Velocity.x, 0, source.Entity.Velocity.y); p.Damage = weapon.Damage; p.Range = weapon.Range; p.DamageType = weapon.WeaponData.DamageType; - p.Zone = source.Entity.Zone; + p.GridObject.Zone = source.Entity.Zone; } } diff --git a/Assets/Scripts/ServerShared/Entity.cs b/Assets/Scripts/ServerShared/Entity.cs index 0eb7355f0..447e99f8c 100644 --- a/Assets/Scripts/ServerShared/Entity.cs +++ b/Assets/Scripts/ServerShared/Entity.cs @@ -84,6 +84,8 @@ public abstract class Entity public bool OverrideShutdown { get; set; } + public float TractorPower { get; set; } + public bool Active { get => _active; diff --git a/Assets/Scripts/Zone Display/ZoneRenderer.cs b/Assets/Scripts/Zone Display/ZoneRenderer.cs index e48337f39..f3287722d 100644 --- a/Assets/Scripts/Zone Display/ZoneRenderer.cs +++ b/Assets/Scripts/Zone Display/ZoneRenderer.cs @@ -37,9 +37,12 @@ public class ZoneRenderer : MonoBehaviour public LODHandler LODHandler; public Slime SlimeRenderer; public Camera SlimeGravityCamera; - - [Header("Tour")] - public bool Tour; + public GridObject SimpleCommodityPickup; + public GridObject CompoundCommodityPickup; + public GridObject GearPickup; + public GridObject WeaponPickup; + + [Header("Tour")] public bool Tour; public float TourSwitchTime = 5f; public float TourFollowDistance = 30f; public float TourHeightOffset = 15; @@ -48,21 +51,17 @@ public class ZoneRenderer : MonoBehaviour // public Mesh[] AsteroidMeshes; // public Material AsteroidMaterial; - [Header("Prefabs")] - public MeshFilter AsteroidBeltUI; + [Header("Prefabs")] public MeshFilter AsteroidBeltUI; public PlanetObject Planet; public GasGiantObject GasGiant; public SunObject Sun; - - [Header("Icons")] - public Texture2D PlanetoidIcon; + + [Header("Icons")] public Texture2D PlanetoidIcon; public Texture2D PlanetIcon; - - [HideInInspector] - public Dictionary EntityInstances = new Dictionary(); - [HideInInspector] - public Dictionary Planets = new Dictionary(); - + + [HideInInspector] public Dictionary EntityInstances = new Dictionary(); + [HideInInspector] public Dictionary Planets = new Dictionary(); + private Dictionary _beltObjects = new Dictionary(); private Dictionary _beltMeshes = new Dictionary(); private Dictionary _beltMatrices = new Dictionary(); @@ -81,6 +80,7 @@ public class ZoneRenderer : MonoBehaviour private PlanetObject[] _suns; public Dictionary WormholeInstances = new Dictionary(); + private List _gridObjects = new List(); public Zone Zone { get; private set; } public ItemManager ItemManager { get; set; } @@ -101,9 +101,9 @@ public class ZoneRenderer : MonoBehaviour } else { - foreach(var entity in EntityInstances.Values) + foreach (var entity in EntityInstances.Values) entity.FadeOut(EntityFadeTime); - foreach(var entity in value.VisibleEntities) + foreach (var entity in value.VisibleEntities) EntityInstances[entity].FadeIn(EntityFadeTime); EntityInstances[value].FadeIn(EntityFadeTime); _perspectiveSubscriptions[0] = value.VisibleEntities.ObserveAdd() @@ -132,7 +132,7 @@ public class ZoneRenderer : MonoBehaviour { set { - foreach(var camera in MinimapCameras) + foreach (var camera in MinimapCameras) camera.orthographicSize = value; // MinimapGravityQuad.transform.localScale = value * 2 * Vector3.one; } @@ -142,7 +142,7 @@ public class ZoneRenderer : MonoBehaviour { ViewDistance = Settings.DefaultViewDistance; MinimapDistance = Settings.MinimapZoomLevels[Settings.DefaultMinimapZoom]; - + _tourTimer = TourSwitchTime; _transposer = SceneCamera.GetCinemachineComponent(); } @@ -155,24 +155,25 @@ public class ZoneRenderer : MonoBehaviour SectorBrushes.localScale = zone.Pack.Radius * 2 * Vector3.one; SlimeGravityCamera.orthographicSize = zone.Pack.Radius; SlimeRenderer.ZoneRadius = zone.Pack.Radius; - foreach(var p in zone.Planets.Values) + foreach (var p in zone.Planets.Values) LoadPlanet(p); _suns = Planets.Values.Where(p => p is SunObject).ToArray(); - - foreach (var x in Planets) - { - if (!(zone.Planets[x.Key] is GasGiantData)) - { - - } - } - - foreach(var entity in zone.Entities) + + // foreach (var x in Planets) + // { + // if (!(zone.Planets[x.Key] is GasGiantData)) + // { + // + // } + // } + + foreach (var entity in zone.Entities) { Debug.Log($"Loading entity {entity.Name} from existing zone entity collection"); LoadEntity(entity); } + _zoneSubscriptions.Add(zone.Entities.ObserveAdd().Subscribe(e => { //Debug.Log($"Loading entity {e.Value.Name} from zone add event"); @@ -183,8 +184,8 @@ public class ZoneRenderer : MonoBehaviour //Debug.Log($"Unloading entity {e.Value.Name} from zone remove event"); UnloadEntity(e.Value); })); - - if(zone.SectorZone != null) + + if (zone.SectorZone != null) { foreach (var adjacentZone in zone.SectorZone.AdjacentZones) { @@ -210,28 +211,34 @@ public class ZoneRenderer : MonoBehaviour if (Zone == null) return; foreach (var wormhole in WormholeInstances.Values) Destroy(wormhole); WormholeInstances.Clear(); - - foreach(var subscription in _zoneSubscriptions) + + foreach (var subscription in _zoneSubscriptions) subscription.Dispose(); _zoneSubscriptions.Clear(); + + foreach(var gridObject in _gridObjects) + if(gridObject) Destroy(gridObject.gameObject); + _gridObjects.Clear(); foreach (var entity in Zone.Entities) { Debug.Log($"Unloading entity {entity.Name} from entities remaining during clear!"); UnloadEntity(entity); } - + if (Planets.Count > 0) { foreach (var planet in Planets.Values) { DestroyImmediate(planet.gameObject); } + Planets.Clear(); foreach (var beltObject in _beltObjects.Values) { Destroy(beltObject.Filter); } + _beltObjects.Clear(); _beltMeshes.Clear(); _beltMatrices.Clear(); @@ -272,11 +279,11 @@ public class ZoneRenderer : MonoBehaviour { foreach (var behavior in item.Behaviors) { - if(behavior is IEventBehavior eventBehavior) + if (behavior is IEventBehavior eventBehavior) eventBehavior.ResetEvents(); } } - + Destroy(EntityInstances[entity].gameObject); EntityInstances.Remove(entity); } @@ -286,20 +293,26 @@ public class ZoneRenderer : MonoBehaviour if (planetData is AsteroidBeltData beltData) { var meshes = AsteroidMeshes.ToList(); - while(meshes.Count > Settings.AsteroidMeshCount) - meshes.RemoveAt(Random.Range(0,meshes.Count)); + while (meshes.Count > Settings.AsteroidMeshCount) + meshes.RemoveAt(Random.Range(0, meshes.Count)); _beltMeshes[planetData.ID] = meshes.ToArray(); _beltMatrices[planetData.ID] = new Matrix4x4[meshes.Count][]; var count = beltData.Asteroids.Length / meshes.Count; var remainder = beltData.Asteroids.Length - count * meshes.Count; for (int i = 0; i < meshes.Count; i++) { - _beltMatrices[planetData.ID][i] = new Matrix4x4[i(); - var belt = new AsteroidBeltUI(Zone, Zone.AsteroidBelts[beltData.ID], beltObject, collider, AsteroidSpritesheetWidth, AsteroidSpritesheetHeight, Settings.MinimapAsteroidSize); + var belt = new AsteroidBeltUI(Zone, + Zone.AsteroidBelts[beltData.ID], + beltObject, + collider, + AsteroidSpritesheetWidth, + AsteroidSpritesheetHeight, + Settings.MinimapAsteroidSize); _beltObjects[beltData.ID] = belt; } else @@ -333,7 +346,7 @@ public class ZoneRenderer : MonoBehaviour gasGiant.GravityWavesRadius.Subscribe(f => gas.GravityWaves.transform.localScale = f * Vector3.one); gasGiant.GravityWavesDepth.Subscribe(f => gas.GravityWaves.material.SetFloat("_Depth", f)); planetData.Mass.Subscribe(f => gas.GravityWaves.material.SetFloat("_Frequency", Settings.PlanetSettings.WaveFrequency.Evaluate(f))); - //gas.WaveScroll.Speed = Properties.GravitySettings.WaveSpeed.Evaluate(f); + //gas.WaveScroll.Speed = Properties.GravitySettings.WaveSpeed.Evaluate(f); } else { @@ -347,10 +360,7 @@ public class ZoneRenderer : MonoBehaviour } var planetInstance = Zone.PlanetInstances[planetData.ID]; - planetInstance.BodyRadius.Subscribe(f => - { - planet.Body.transform.localScale = f * Vector3.one; - }); + planetInstance.BodyRadius.Subscribe(f => { planet.Body.transform.localScale = f * Vector3.one; }); planetInstance.GravityWellRadius.Subscribe(f => planet.GravityWell.transform.localScale = f * Vector3.one); planetInstance.GravityWellDepth.Subscribe(f => { @@ -359,7 +369,7 @@ public class ZoneRenderer : MonoBehaviour planet.Icon.transform.position = new Vector3(0, -f, 0); }); planetInstance.BodyData.Mass.Subscribe(f => planet.Icon.transform.localScale = Settings.IconSize.Evaluate(f) * Vector3.one); - + Planets[planetData.ID] = planet; if (!_rootFound) @@ -368,6 +378,7 @@ public class ZoneRenderer : MonoBehaviour _root = planet; } } + LODHandler.FindPlanets(); } @@ -404,7 +415,8 @@ public class ZoneRenderer : MonoBehaviour { SlimeRenderer.SpawnPositions[i] = _suns[i].Body.transform.position.Flatland(); } - foreach(var belt in Zone.AsteroidBelts) + + foreach (var belt in Zone.AsteroidBelts) { var meshes = _beltMeshes[belt.Key]; var count = belt.Value.Positions.Length / meshes.Length; @@ -423,19 +435,21 @@ public class ZoneRenderer : MonoBehaviour Graphics.DrawMeshInstanced(meshes[i].Mesh, 0, meshes[i].Material, _beltMatrices[belt.Key][i]); } + _beltObjects[belt.Key].Update(belt.Value.Positions); } - + foreach (var planet in Planets) { var planetInstance = Zone.PlanetInstances[planet.Key]; var p = Zone.GetOrbitPosition(planetInstance.BodyData.Orbit); planet.Value.transform.position = new Vector3(p.x, 0, p.y); planet.Value.Body.transform.localPosition = new Vector3(0, Zone.GetHeight(p) + planetInstance.BodyRadius.Value * 2, 0); - if(planet.Value is GasGiantObject gasGiantObject) + if (planet.Value is GasGiantObject gasGiantObject) { - gasGiantObject.GravityWaves.material.SetFloat("_Phase", Zone.Time * ((GasGiant) Zone.PlanetInstances[planet.Key]).GravityWavesSpeed.Value); - if(!(planet.Value is SunObject)) + gasGiantObject.GravityWaves.material.SetFloat("_Phase", + Zone.Time * ((GasGiant) Zone.PlanetInstances[planet.Key]).GravityWavesSpeed.Value); + if (!(planet.Value is SunObject)) { var toParent = normalize(Zone.GetOrbitPosition(Zone.Orbits[planetInstance.BodyData.Orbit].Data.Parent) - p); gasGiantObject.SunMaterial.LightingDirection = new Vector3(toParent.x, 0, toParent.y); @@ -447,17 +461,37 @@ public class ZoneRenderer : MonoBehaviour var fogPos = FogCameraParent.position; SectorBoundaryBrush.material.SetFloat("_Power", Settings.PlanetSettings.ZoneDepthExponent); SectorBoundaryBrush.material.SetFloat("_Depth", Settings.PlanetSettings.ZoneDepth + Settings.PlanetSettings.ZoneBoundaryFog); - var startDepth = Zone.PowerPulse(Settings.MinimapZoneGravityRange, Settings.PlanetSettings.ZoneDepthExponent) * Settings.PlanetSettings.ZoneDepth; + var startDepth = Zone.PowerPulse(Settings.MinimapZoneGravityRange, Settings.PlanetSettings.ZoneDepthExponent) * + Settings.PlanetSettings.ZoneDepth; var depthRange = Settings.PlanetSettings.ZoneDepth - startDepth + _maxDepth; // MinimapGravityQuad.material.SetFloat("_StartDepth", startDepth); // MinimapGravityQuad.material.SetFloat("_DepthRange", depthRange); FogMaterial.SetFloat("_GridOffset", Settings.PlanetSettings.ZoneBoundaryFog); - FogMaterial.SetVector("_GridTransform", new Vector4(fogPos.x,fogPos.z,_viewDistance*2)); + FogMaterial.SetVector("_GridTransform", new Vector4(fogPos.x, fogPos.z, _viewDistance * 2)); // var gravPos = MinimapGravityQuad.transform.position; // gravPos.y = -Settings.PlanetSettings.ZoneDepth - _maxDepth; // MinimapGravityQuad.transform.position = gravPos; // MinimapTintQuad.transform.position = gravPos - Vector3.up*10; } + + public void DropItem(Vector3 position, Vector3 velocity, ItemInstance item) + { + var gridObject = item switch + { + SimpleCommodity _ => Instantiate(SimpleCommodityPickup), + CompoundCommodity _ => Instantiate(CompoundCommodityPickup), + EquippableItem equippableItem when ItemManager.GetData(equippableItem) is WeaponItemData => Instantiate(WeaponPickup), + EquippableItem _ => Instantiate(GearPickup) + }; + var t = gridObject.transform; + t.parent = ZoneRoot; + gridObject.Zone = Zone; + t.position = position; + gridObject.Velocity = velocity; + gridObject.gameObject.AddComponent().Item = item; + gridObject.gameObject.AddComponent().Duration = Settings.PickupLifetime; + _gridObjects.Add(gridObject); + } } @@ -483,7 +517,13 @@ public class AsteroidBeltUI private AsteroidBelt _belt; private float _scale; - public AsteroidBeltUI(Zone zone, AsteroidBelt belt, MeshFilter meshFilter, MeshCollider collider, int spritesheetWidth, int spritesheetHeight, float scale) + public AsteroidBeltUI(Zone zone, + AsteroidBelt belt, + MeshFilter meshFilter, + MeshCollider collider, + int spritesheetWidth, + int spritesheetHeight, + float scale) { _belt = belt; _zone = zone; @@ -491,10 +531,10 @@ public class AsteroidBeltUI _collider = collider; var orbit = zone.Orbits[belt.Data.Orbit]; _orbitParent = orbit.Data.Parent; - _vertices = new Vector3[_belt.Data.Asteroids.Length*4]; - _normals = new Vector3[_belt.Data.Asteroids.Length*4]; - _uvs = new Vector2[_belt.Data.Asteroids.Length*4]; - _indices = new int[_belt.Data.Asteroids.Length*6]; + _vertices = new Vector3[_belt.Data.Asteroids.Length * 4]; + _normals = new Vector3[_belt.Data.Asteroids.Length * 4]; + _uvs = new Vector2[_belt.Data.Asteroids.Length * 4]; + _indices = new int[_belt.Data.Asteroids.Length * 6]; _scale = scale; var maxDist = 0f; @@ -506,12 +546,12 @@ public class AsteroidBeltUI maxDist = belt.Data.Asteroids[i].Distance; var spriteX = Random.Range(0, spritesheetWidth); var spriteY = Random.Range(0, spritesheetHeight); - + _uvs[i * 4] = new Vector2(spriteX * spriteSize.x, spriteY * spriteSize.y); _uvs[i * 4 + 1] = new Vector2(spriteX * spriteSize.x, spriteY * spriteSize.y + spriteSize.y); _uvs[i * 4 + 2] = new Vector2(spriteX * spriteSize.x + spriteSize.x, spriteY * spriteSize.y + spriteSize.y); _uvs[i * 4 + 3] = new Vector2(spriteX * spriteSize.x + spriteSize.x, spriteY * spriteSize.y); - + _indices[i * 6] = i * 4; _indices[i * 6 + 1] = i * 4 + 1; _indices[i * 6 + 2] = i * 4 + 3; @@ -519,12 +559,12 @@ public class AsteroidBeltUI _indices[i * 6 + 4] = i * 4 + 1; _indices[i * 6 + 5] = i * 4 + 2; } - + for (var i = 0; i < _normals.Length; i++) { _normals[i] = -Vector3.forward; } - + _mesh = new Mesh(); _mesh.vertices = _vertices; _mesh.uv = _uvs; @@ -544,10 +584,10 @@ public class AsteroidBeltUI { var rotation = Quaternion.Euler(90, _belt.Rotations[i], 0); //var position = new Vector3(_belt.Transforms[i].x, _zone.GetHeight(parentPosition), _belt.Transforms[i].y); - _vertices[i * 4] = rotation * new Vector3(-_belt.Scales[i] * _scale,-_belt.Scales[i] * _scale,0) + (Vector3) positions[i]; - _vertices[i * 4 + 1] = rotation * new Vector3(-_belt.Scales[i] * _scale,_belt.Scales[i] * _scale,0) + (Vector3) positions[i]; - _vertices[i * 4 + 2] = rotation * new Vector3(_belt.Scales[i] * _scale,_belt.Scales[i] * _scale,0) + (Vector3) positions[i]; - _vertices[i * 4 + 3] = rotation * new Vector3(_belt.Scales[i] * _scale,-_belt.Scales[i] * _scale,0) + (Vector3) positions[i]; + _vertices[i * 4] = rotation * new Vector3(-_belt.Scales[i] * _scale, -_belt.Scales[i] * _scale, 0) + (Vector3) positions[i]; + _vertices[i * 4 + 1] = rotation * new Vector3(-_belt.Scales[i] * _scale, _belt.Scales[i] * _scale, 0) + (Vector3) positions[i]; + _vertices[i * 4 + 2] = rotation * new Vector3(_belt.Scales[i] * _scale, _belt.Scales[i] * _scale, 0) + (Vector3) positions[i]; + _vertices[i * 4 + 3] = rotation * new Vector3(_belt.Scales[i] * _scale, -_belt.Scales[i] * _scale, 0) + (Vector3) positions[i]; } _mesh.bounds = new Bounds(new Vector3(parentPosition.x, 0, parentPosition.y), Vector3.one * (_size * 2)); diff --git a/GameData/PlayerSettings.msgpack b/GameData/PlayerSettings.msgpack index 2505783c8..c9869da05 100644 --- a/GameData/PlayerSettings.msgpack +++ b/GameData/PlayerSettings.msgpack @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:0cf5ad8787020982cacb09d4ce84cfa9bb0ae60d9ce09b901f8ac28a4de6421f -size 18270 +oid sha256:f36eee9a6cc4c91c1b09999e17fc4dff0a69a9d41ffd89c55eab6df4a45313ab +size 18311 diff --git a/ProjectSettings/DynamicsManager.asset b/ProjectSettings/DynamicsManager.asset index 98f09ecba..c6535b5a0 100644 --- a/ProjectSettings/DynamicsManager.asset +++ b/ProjectSettings/DynamicsManager.asset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d856ea646d82fd0547190760ee31ddc3d19d23a033c3ebbacc5813c73aae1e7c +oid sha256:4a6754cd0dfbfa25eecde10a94a0592601e343b6860c7c34b36758dcfb3ae3d8 size 1289 diff --git a/ProjectSettings/TagManager.asset b/ProjectSettings/TagManager.asset index ae6dd4ad0..1f0a5ee37 100644 --- a/ProjectSettings/TagManager.asset +++ b/ProjectSettings/TagManager.asset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:af21f6625e09ef63a71929135db7e1e2d5789c6d8ca2157345fb8bd6ba6edeaa -size 513 +oid sha256:a23231dec871ade8276039a1e197222c09a2700c47c3dd12ca1adf15c30c6c18 +size 524 From 282035dd259876fbc96b4afbdf5f8cd579582f7c Mon Sep 17 00:00:00 2001 From: Ferenc Fodor Date: Thu, 15 Apr 2021 23:45:57 +0200 Subject: [PATCH 40/51] Updated Weapon Icon (Function AP) --- Assets/Resources/Sprites/Icons/Weapons/FunctionAP.png | 4 ++-- Assets/Resources/Sprites/Icons/Weapons/FunctionAP.png.meta | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Assets/Resources/Sprites/Icons/Weapons/FunctionAP.png b/Assets/Resources/Sprites/Icons/Weapons/FunctionAP.png index 95df70f5a..3f543beaa 100644 --- a/Assets/Resources/Sprites/Icons/Weapons/FunctionAP.png +++ b/Assets/Resources/Sprites/Icons/Weapons/FunctionAP.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:234e656134b9b1a58608fad9aa3ed4644748808d90e748cfb1bc78e1322a055d -size 24295 +oid sha256:99c1a17f3419537196219e64961ccb9897277cc995e9bbe985b9702d7038f684 +size 31776 diff --git a/Assets/Resources/Sprites/Icons/Weapons/FunctionAP.png.meta b/Assets/Resources/Sprites/Icons/Weapons/FunctionAP.png.meta index 859d70868..348335974 100644 --- a/Assets/Resources/Sprites/Icons/Weapons/FunctionAP.png.meta +++ b/Assets/Resources/Sprites/Icons/Weapons/FunctionAP.png.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 401b9ed79a8cffc428a5e2f786fd9af5 +guid: 584bf84286cfb644a8c8cd6438e9378e TextureImporter: internalIDToNameTable: [] externalObjects: {} From 4489b18452da78c5c4f3faeb512b75fb486b60a2 Mon Sep 17 00:00:00 2001 From: Reinier Vens Date: Sun, 18 Apr 2021 05:13:20 +0100 Subject: [PATCH 41/51] Action Bar (WIP) Refactor item instance to use DatabaseLink Labels now pop up when aiming at loot Yeeted HUD trigger group UI into the abyss Created rebindable action bar (missing: assigning actions) Created Consumable Items Refactored behaviors to work on consumable items Implemented Velocity Conversion Behavior --- .../Ubuntu/Ubuntu-L Small SDF Stochastic.mat | 105 + .../Ubuntu-L Small SDF Stochastic.mat.meta | 8 + Assets/Fonts/Ubuntu/Ubuntu-L Small SDF.asset | 4 +- Assets/Plugins/LayoutElementFitParent.cs | 115 + Assets/Plugins/LayoutElementFitParent.cs.meta | 11 + .../Prefabs/RPG/Pickups/Dodecahedron.prefab | 204 +- Assets/Prefabs/RPG/Pickups/Hexahedron.prefab | 206 +- Assets/Prefabs/RPG/Pickups/Icosahedron.prefab | 200 +- Assets/Prefabs/RPG/Pickups/Octahedron.prefab | 200 +- Assets/Prefabs/RPG/Pickups/Scan Label.prefab | 171 ++ .../RPG/Pickups/Scan Label.prefab.meta | 7 + Assets/Prefabs/RPG/Pickups/Tetrahedron.prefab | 200 +- Assets/Prefabs/UI/Action Slot.prefab | 932 ++++++++ Assets/Prefabs/UI/Action Slot.prefab.meta | 7 + Assets/Resources/Aetheria.inputactions | 264 --- Assets/Resources/Settings.asset | 4 +- Assets/Resources/Sprites/Attribution.txt | 1 + .../Sprites/Icons/Tech/Cloud.png.meta | 8 +- .../Sprites/Icons/Tech/Cooler.png.meta | 8 +- .../Icons/Tech/Final - Reactor.png.meta | 8 +- .../Sprites/Icons/Tech/Fire.png.meta | 8 +- .../Icons/Tech/Fxperiment Turbine.png.meta | 8 +- .../Sprites/Icons/Tech/Heat.png.meta | 8 +- .../Sprites/Icons/Tech/Laser.png.meta | 8 +- .../Sprites/Icons/Tech/Reactor.png.meta | 8 +- .../Sprites/Icons/Tech/Spiral.png.meta | 8 +- .../Sprites/Icons/Tech/Tex_skill_01.PNG.meta | 8 +- .../Sprites/Icons/Tech/Tex_skill_02.PNG.meta | 8 +- .../Sprites/Icons/Tech/Tex_skill_03.PNG.meta | 8 +- .../Sprites/Icons/Tech/Tex_skill_04.PNG.meta | 8 +- .../Sprites/Icons/Tech/Tex_skill_05.PNG.meta | 8 +- .../Sprites/Icons/Tech/Tex_skill_06.PNG.meta | 8 +- .../Sprites/Icons/Tech/Tex_skill_07.PNG.meta | 8 +- .../Sprites/Icons/Tech/Tex_skill_08.PNG.meta | 8 +- .../Sprites/Icons/Tech/Tex_skill_09.PNG.meta | 8 +- .../Sprites/Icons/Tech/Tex_skill_10.PNG.meta | 8 +- .../Sprites/Icons/Tech/Tex_skill_100.PNG.meta | 8 +- .../Sprites/Icons/Tech/Tex_skill_101.PNG.meta | 8 +- .../Sprites/Icons/Tech/Tex_skill_102.PNG.meta | 8 +- .../Sprites/Icons/Tech/Tex_skill_103.PNG.meta | 8 +- .../Sprites/Icons/Tech/Tex_skill_104.PNG.meta | 8 +- .../Sprites/Icons/Tech/Tex_skill_105.PNG.meta | 8 +- .../Sprites/Icons/Tech/Tex_skill_106.PNG.meta | 8 +- .../Sprites/Icons/Tech/Tex_skill_107.PNG.meta | 8 +- .../Sprites/Icons/Tech/Tex_skill_108.PNG.meta | 8 +- .../Sprites/Icons/Tech/Tex_skill_109.PNG.meta | 8 +- .../Sprites/Icons/Tech/Tex_skill_11.PNG.meta | 8 +- .../Sprites/Icons/Tech/Tex_skill_110.PNG.meta | 8 +- .../Sprites/Icons/Tech/Tex_skill_111.PNG.meta | 8 +- .../Sprites/Icons/Tech/Tex_skill_12.PNG.meta | 8 +- .../Sprites/Icons/Tech/Tex_skill_13.PNG.meta | 8 +- .../Sprites/Icons/Tech/Tex_skill_14.PNG.meta | 8 +- .../Sprites/Icons/Tech/Tex_skill_15.PNG.meta | 8 +- .../Sprites/Icons/Tech/Tex_skill_16.PNG.meta | 8 +- .../Sprites/Icons/Tech/Tex_skill_17.PNG.meta | 8 +- .../Sprites/Icons/Tech/Tex_skill_18.PNG.meta | 8 +- .../Sprites/Icons/Tech/Tex_skill_19.PNG.meta | 8 +- .../Sprites/Icons/Tech/Tex_skill_20.PNG.meta | 8 +- .../Sprites/Icons/Tech/Tex_skill_21.PNG.meta | 8 +- .../Sprites/Icons/Tech/Tex_skill_22.PNG.meta | 8 +- .../Sprites/Icons/Tech/Tex_skill_23.PNG.meta | 8 +- .../Sprites/Icons/Tech/Tex_skill_24.PNG.meta | 8 +- .../Sprites/Icons/Tech/Tex_skill_25.PNG.meta | 8 +- .../Sprites/Icons/Tech/Tex_skill_26.PNG.meta | 8 +- .../Sprites/Icons/Tech/Tex_skill_27.PNG.meta | 8 +- .../Sprites/Icons/Tech/Tex_skill_28.PNG.meta | 8 +- .../Sprites/Icons/Tech/Tex_skill_29.PNG.meta | 8 +- .../Sprites/Icons/Tech/Tex_skill_30.PNG.meta | 8 +- .../Sprites/Icons/Tech/Tex_skill_31.PNG.meta | 8 +- .../Sprites/Icons/Tech/Tex_skill_32.PNG.meta | 8 +- .../Sprites/Icons/Tech/Tex_skill_33.PNG.meta | 8 +- .../Sprites/Icons/Tech/Tex_skill_34.PNG.meta | 8 +- .../Sprites/Icons/Tech/Tex_skill_35.PNG.meta | 8 +- .../Sprites/Icons/Tech/Tex_skill_36.PNG.meta | 8 +- .../Sprites/Icons/Tech/Tex_skill_37.PNG.meta | 8 +- .../Sprites/Icons/Tech/Tex_skill_38.PNG.meta | 8 +- .../Sprites/Icons/Tech/Tex_skill_39.PNG.meta | 8 +- .../Sprites/Icons/Tech/Tex_skill_40.PNG.meta | 8 +- .../Sprites/Icons/Tech/Tex_skill_41.PNG.meta | 8 +- .../Sprites/Icons/Tech/Tex_skill_42.PNG.meta | 8 +- .../Sprites/Icons/Tech/Tex_skill_43.PNG.meta | 8 +- .../Sprites/Icons/Tech/Tex_skill_44.PNG.meta | 8 +- .../Sprites/Icons/Tech/Tex_skill_45.PNG.meta | 8 +- .../Sprites/Icons/Tech/Tex_skill_46.PNG.meta | 8 +- .../Sprites/Icons/Tech/Tex_skill_47.PNG.meta | 8 +- .../Sprites/Icons/Tech/Tex_skill_48.PNG.meta | 8 +- .../Sprites/Icons/Tech/Tex_skill_49.PNG.meta | 8 +- .../Sprites/Icons/Tech/Tex_skill_50.PNG.meta | 8 +- .../Sprites/Icons/Tech/Tex_skill_51.PNG.meta | 8 +- .../Sprites/Icons/Tech/Tex_skill_52.PNG.meta | 8 +- .../Sprites/Icons/Tech/Tex_skill_53.PNG.meta | 8 +- .../Sprites/Icons/Tech/Tex_skill_54.PNG.meta | 8 +- .../Sprites/Icons/Tech/Tex_skill_55.PNG.meta | 8 +- .../Sprites/Icons/Tech/Tex_skill_56.PNG.meta | 8 +- .../Sprites/Icons/Tech/Tex_skill_57.PNG.meta | 8 +- .../Sprites/Icons/Tech/Tex_skill_58.PNG.meta | 8 +- .../Sprites/Icons/Tech/Tex_skill_59.PNG.meta | 8 +- .../Sprites/Icons/Tech/Tex_skill_60.PNG.meta | 8 +- .../Sprites/Icons/Tech/Tex_skill_61.PNG.meta | 8 +- .../Sprites/Icons/Tech/Tex_skill_62.PNG.meta | 8 +- .../Sprites/Icons/Tech/Tex_skill_63.PNG.meta | 8 +- .../Sprites/Icons/Tech/Tex_skill_64.PNG.meta | 8 +- .../Sprites/Icons/Tech/Tex_skill_65.PNG.meta | 8 +- .../Sprites/Icons/Tech/Tex_skill_66.PNG.meta | 8 +- .../Sprites/Icons/Tech/Tex_skill_67.PNG.meta | 8 +- .../Sprites/Icons/Tech/Tex_skill_68.PNG.meta | 8 +- .../Sprites/Icons/Tech/Tex_skill_69.PNG.meta | 8 +- .../Sprites/Icons/Tech/Tex_skill_70.PNG.meta | 8 +- .../Sprites/Icons/Tech/Tex_skill_71.PNG.meta | 8 +- .../Sprites/Icons/Tech/Tex_skill_72.PNG.meta | 8 +- .../Sprites/Icons/Tech/Tex_skill_73.PNG.meta | 8 +- .../Sprites/Icons/Tech/Tex_skill_74.PNG.meta | 8 +- .../Sprites/Icons/Tech/Tex_skill_75.PNG.meta | 8 +- .../Sprites/Icons/Tech/Tex_skill_76.PNG.meta | 8 +- .../Sprites/Icons/Tech/Tex_skill_77.PNG.meta | 8 +- .../Sprites/Icons/Tech/Tex_skill_78.PNG.meta | 8 +- .../Sprites/Icons/Tech/Tex_skill_79.PNG.meta | 8 +- .../Sprites/Icons/Tech/Tex_skill_80.PNG.meta | 8 +- .../Sprites/Icons/Tech/Tex_skill_81.PNG.meta | 8 +- .../Sprites/Icons/Tech/Tex_skill_82.PNG.meta | 8 +- .../Sprites/Icons/Tech/Tex_skill_83.PNG.meta | 8 +- .../Sprites/Icons/Tech/Tex_skill_84.PNG.meta | 8 +- .../Sprites/Icons/Tech/Tex_skill_85.PNG.meta | 8 +- .../Sprites/Icons/Tech/Tex_skill_86.PNG.meta | 8 +- .../Sprites/Icons/Tech/Tex_skill_87.PNG.meta | 8 +- .../Sprites/Icons/Tech/Tex_skill_88.PNG.meta | 8 +- .../Sprites/Icons/Tech/Tex_skill_89.PNG.meta | 8 +- .../Sprites/Icons/Tech/Tex_skill_90.PNG.meta | 8 +- .../Sprites/Icons/Tech/Tex_skill_91.PNG.meta | 8 +- .../Sprites/Icons/Tech/Tex_skill_92.PNG.meta | 8 +- .../Sprites/Icons/Tech/Tex_skill_93.PNG.meta | 8 +- .../Sprites/Icons/Tech/Tex_skill_94.PNG.meta | 8 +- .../Sprites/Icons/Tech/Tex_skill_95.PNG.meta | 8 +- .../Sprites/Icons/Tech/Tex_skill_96.PNG.meta | 8 +- .../Sprites/Icons/Tech/Tex_skill_97.PNG.meta | 8 +- .../Sprites/Icons/Tech/Tex_skill_98.PNG.meta | 8 +- .../Sprites/Icons/Tech/Tex_skill_99.PNG.meta | 8 +- .../Sprites/Icons/Tech/ballistic.png.meta | 8 +- .../Icons/Tech/chevron-truncated.png.meta | 8 +- .../Icons/Tech/compoundObject.png.meta | 8 +- .../Sprites/Icons/Tech/fighter.png.meta | 8 +- .../Sprites/Icons/Tech/final missile.png.meta | 8 +- .../Sprites/Icons/Tech/invisible.png.meta | 8 +- .../Sprites/Icons/Tech/meteor.png.meta | 8 +- .../Sprites/Icons/Tech/mini missile.png.meta | 8 +- .../Sprites/Icons/Tech/satellite.png.meta | 8 +- .../Sprites/Icons/Tech/storm.png.meta | 8 +- .../Icons/Tech/technical thinking.png.meta | 8 +- .../Sprites/Icons/Tech/tools3.png.meta | 8 +- .../Sprites/Icons/Tech/wing1.png.meta | 8 +- Assets/Resources/Sprites/Icons/shift.png | 3 + Assets/Resources/Sprites/Icons/shift.png.meta | 108 + Assets/Resources/Sprites/white.png | 3 + Assets/Resources/Sprites/white.png.meta | 108 + Assets/Scenes/ARPG.unity | 2026 +---------------- Assets/Scenes/Main Menu.unity | 8 +- Assets/Scripts/AetheriaInput.cs | 376 +-- Assets/Scripts/Gameplay/ActionBarSlot.cs | 206 ++ Assets/Scripts/Gameplay/ActionBarSlot.cs.meta | 3 + Assets/Scripts/Gameplay/ActionGameManager.cs | 253 +- Assets/Scripts/Gameplay/ItemPickup.cs | 35 + Assets/Scripts/ServerShared/AetheriaMath.cs | 10 + Assets/Scripts/ServerShared/Agents/Minion.cs | 2 +- .../ServerShared/Behaviors/AetherDrive.cs | 51 +- .../ServerShared/Behaviors/AutoWeapon.cs | 7 +- .../ServerShared/Behaviors/Behaviors.cs | 93 +- .../ServerShared/Behaviors/Capacitor.cs | 29 +- .../ServerShared/Behaviors/ChargedWeapon.cs | 24 +- .../Scripts/ServerShared/Behaviors/Cockpit.cs | 22 +- .../ServerShared/Behaviors/ConstantWeapon.cs | 24 +- .../ServerShared/Behaviors/Cooldown.cs | 25 +- .../ServerShared/Behaviors/EnergyDraw.cs | 25 +- Assets/Scripts/ServerShared/Behaviors/Heat.cs | 24 +- .../ServerShared/Behaviors/HeatStorage.cs | 19 +- .../ServerShared/Behaviors/InstantWeapon.cs | 32 +- .../ServerShared/Behaviors/ItemUsage.cs | 25 +- .../ServerShared/Behaviors/Launcher.cs | 4 +- .../ServerShared/Behaviors/LockWeapon.cs | 32 +- .../ServerShared/Behaviors/MiningTool.cs | 40 +- .../ServerShared/Behaviors/Radiator.cs | 54 +- .../Scripts/ServerShared/Behaviors/Reactor.cs | 59 +- .../ServerShared/Behaviors/Reflector.cs | 25 +- .../ServerShared/Behaviors/ResourceScanner.cs | 34 +- .../Scripts/ServerShared/Behaviors/Sensor.cs | 54 +- .../Scripts/ServerShared/Behaviors/Shield.cs | 30 +- .../ServerShared/Behaviors/StatModifier.cs | 42 +- .../Scripts/ServerShared/Behaviors/Switch.cs | 21 +- .../ServerShared/Behaviors/Thermotoggle.cs | 23 +- .../ServerShared/Behaviors/Thruster.cs | 49 +- .../Scripts/ServerShared/Behaviors/Trigger.cs | 23 +- .../Behaviors/TurretController.cs | 80 +- .../Behaviors/VelocityConversion.cs | 26 +- .../ServerShared/Behaviors/VelocityLimit.cs | 31 +- .../ServerShared/Behaviors/Visibility.cs | 25 +- .../Scripts/ServerShared/Behaviors/Weapon.cs | 38 +- Assets/Scripts/ServerShared/Behaviors/Wear.cs | 33 +- .../CultCache/ReflectionExtensions.cs | 2 +- Assets/Scripts/ServerShared/Entity.cs | 145 +- .../Scripts/ServerShared/EntitySerializer.cs | 4 +- Assets/Scripts/ServerShared/ItemData.cs | 76 +- Assets/Scripts/ServerShared/ItemInstance.cs | 9 +- Assets/Scripts/ServerShared/ItemManager.cs | 55 +- Assets/Scripts/ServerShared/SavedGame.cs | 31 + Assets/Scripts/UI/ConsoleView.cs | 9 +- Assets/Scripts/UI/InventoryMenu.cs | 8 +- Assets/Scripts/UI/InventoryPanel.cs | 2 +- Assets/Scripts/UI/PropertiesPanel.cs | 4 +- Assets/Scripts/UI/SchematicDisplay.cs | 104 +- Assets/Scripts/UI/TradeMenu.cs | 6 +- Assets/Scripts/UI/TradeMenuDebug.cs | 4 +- Assets/Scripts/Zone Display/ZoneRenderer.cs | 31 +- .../Shaders/Raymarching/VolumeRender.shader | 3 +- Assets/Shaders/TMP_SDF.shader | 323 +++ Assets/Shaders/TMP_SDF.shader.meta | 3 + GameData/AetherDB.msgpack | 4 +- GameData/Narrative/TheIntercept.ink | 1686 -------------- GameData/PlayerSettings.msgpack | 4 +- 217 files changed, 4941 insertions(+), 5539 deletions(-) create mode 100644 Assets/Fonts/Ubuntu/Ubuntu-L Small SDF Stochastic.mat create mode 100644 Assets/Fonts/Ubuntu/Ubuntu-L Small SDF Stochastic.mat.meta create mode 100644 Assets/Plugins/LayoutElementFitParent.cs create mode 100644 Assets/Plugins/LayoutElementFitParent.cs.meta create mode 100644 Assets/Prefabs/RPG/Pickups/Scan Label.prefab create mode 100644 Assets/Prefabs/RPG/Pickups/Scan Label.prefab.meta create mode 100644 Assets/Prefabs/UI/Action Slot.prefab create mode 100644 Assets/Prefabs/UI/Action Slot.prefab.meta create mode 100644 Assets/Resources/Sprites/Icons/shift.png create mode 100644 Assets/Resources/Sprites/Icons/shift.png.meta create mode 100644 Assets/Resources/Sprites/white.png create mode 100644 Assets/Resources/Sprites/white.png.meta create mode 100644 Assets/Scripts/Gameplay/ActionBarSlot.cs create mode 100644 Assets/Scripts/Gameplay/ActionBarSlot.cs.meta create mode 100644 Assets/Shaders/TMP_SDF.shader create mode 100644 Assets/Shaders/TMP_SDF.shader.meta delete mode 100644 GameData/Narrative/TheIntercept.ink diff --git a/Assets/Fonts/Ubuntu/Ubuntu-L Small SDF Stochastic.mat b/Assets/Fonts/Ubuntu/Ubuntu-L Small SDF Stochastic.mat new file mode 100644 index 000000000..a83f6f68e --- /dev/null +++ b/Assets/Fonts/Ubuntu/Ubuntu-L Small SDF Stochastic.mat @@ -0,0 +1,105 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Ubuntu-L Small SDF Stochastic + m_Shader: {fileID: 4800000, guid: 68e6db2ebdc24f95958faec2be5558d6, type: 3} + m_ShaderKeywords: UNDERLAY_ON + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _Cube: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _FaceTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2985719337874870690, guid: 53555f7a2d5e745428813f1b1118734f, + type: 2} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OutlineTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _Ambient: 0.5 + - _Bevel: 0.5 + - _BevelClamp: 0 + - _BevelOffset: 0 + - _BevelRoundness: 0 + - _BevelWidth: 0 + - _BumpFace: 0 + - _BumpOutline: 0 + - _ColorMask: 15 + - _Diffuse: 0.5 + - _FaceDilate: 0 + - _FaceUVSpeedX: 0 + - _FaceUVSpeedY: 0 + - _GlowInner: 0.05 + - _GlowOffset: 0 + - _GlowOuter: 0.05 + - _GlowPower: 0.75 + - _GradientScale: 9 + - _LightAngle: 3.1416 + - _MaskSoftnessX: 0 + - _MaskSoftnessY: 0 + - _OutlineSoftness: 0.1 + - _OutlineUVSpeedX: 0 + - _OutlineUVSpeedY: 0 + - _OutlineWidth: 0 + - _PerspectiveFilter: 0.875 + - _Reflectivity: 10 + - _ScaleRatioA: 0.8888889 + - _ScaleRatioB: 0.7222222 + - _ScaleRatioC: 0.28831226 + - _ScaleX: 1 + - _ScaleY: 1 + - _ShaderFlags: 0 + - _Sharpness: 0 + - _SpecularPower: 2 + - _Stencil: 0 + - _StencilComp: 8 + - _StencilOp: 0 + - _StencilReadMask: 255 + - _StencilWriteMask: 255 + - _TextureHeight: 1024 + - _TextureWidth: 1024 + - _UnderlayDilate: 1 + - _UnderlayOffsetX: 1 + - _UnderlayOffsetY: -1 + - _UnderlaySoftness: 0.505 + - _VertexOffsetX: 0 + - _VertexOffsetY: 0 + - _WeightBold: 0.75 + - _WeightNormal: 0 + m_Colors: + - _ClipRect: {r: -32767, g: -32767, b: 32767, a: 32767} + - _EnvMatrixRotation: {r: 0, g: 0, b: 0, a: 0} + - _FaceColor: {r: 1, g: 1, b: 1, a: 1} + - _GlowColor: {r: 0, g: 1, b: 0, a: 0.5} + - _MaskCoord: {r: 0, g: 0, b: 32767, a: 32767} + - _OutlineColor: {r: 0, g: 0, b: 0, a: 1} + - _ReflectFaceColor: {r: 0, g: 0, b: 0, a: 1} + - _ReflectOutlineColor: {r: 0, g: 0, b: 0, a: 1} + - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} + - _UnderlayColor: {r: 0, g: 0, b: 0, a: 1} + m_BuildTextureStacks: [] diff --git a/Assets/Fonts/Ubuntu/Ubuntu-L Small SDF Stochastic.mat.meta b/Assets/Fonts/Ubuntu/Ubuntu-L Small SDF Stochastic.mat.meta new file mode 100644 index 000000000..ff7d74f1a --- /dev/null +++ b/Assets/Fonts/Ubuntu/Ubuntu-L Small SDF Stochastic.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 42a7a06ba69bf9645a481e0b5e3ed46a +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Fonts/Ubuntu/Ubuntu-L Small SDF.asset b/Assets/Fonts/Ubuntu/Ubuntu-L Small SDF.asset index 9f19b9b03..376683635 100644 --- a/Assets/Fonts/Ubuntu/Ubuntu-L Small SDF.asset +++ b/Assets/Fonts/Ubuntu/Ubuntu-L Small SDF.asset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:850c01b4207c3f31059e33c320437dd56d53648ecb7a0f1712e3baa6ae7003b4 -size 2594226 +oid sha256:2bda689329cb641f09eb8620d185ae1b8cec94cb2784d72f9d04650fcee5b5da +size 2594294 diff --git a/Assets/Plugins/LayoutElementFitParent.cs b/Assets/Plugins/LayoutElementFitParent.cs new file mode 100644 index 000000000..56cceb51a --- /dev/null +++ b/Assets/Plugins/LayoutElementFitParent.cs @@ -0,0 +1,115 @@ +using UnityEngine; +using UnityEngine.UI; + +[RequireComponent(typeof(RectTransform), typeof(LayoutElement))] +[ExecuteInEditMode] +public class LayoutElementFitParent : MonoBehaviour +{ + [SerializeField] private float aspectRatio = 1; + + [SerializeField] private bool updateMin = false; + [SerializeField] private bool updatePreferred = false; + + private bool isDirty = false; + private Vector2 lastParentSize; + + private new RectTransform transform; + private LayoutElement layoutElement; + + public float AspectRatio + { + get { return aspectRatio; } + set + { + aspectRatio = value; + isDirty = true; + } + } + + public bool UpdateMin + { + get { return updateMin; } + set + { + updateMin = value; + isDirty = true; + } + } + + public bool UpdatePreferred + { + get { return updatePreferred; } + set + { + updatePreferred = value; + isDirty = true; + } + } + + private void OnEnable() + { + transform = GetComponent(); + layoutElement = GetComponent(); + + isDirty = true; + } + + private void Update() + { + Vector2 parentSize = GetParentSize(); + + // Mark as dirty if parent's size changes + if (lastParentSize != parentSize) + { + lastParentSize = parentSize; + isDirty = true; + } + + // Only recalculate layout size if something has changed + if (!isDirty) return; + isDirty = false; + + float neededWidth = parentSize.y * aspectRatio; + float neededHeight = parentSize.x / aspectRatio; + + // Is height the limiting factor? + if (neededWidth <= parentSize.x) + { + // Scale to match parent's height + SetSizes(neededWidth, parentSize.y); + } + else + { + // Scale to match parent's width + SetSizes(parentSize.x, neededHeight); + } + } + +#if UNITY_EDITOR + private void OnValidate() + { + // Inspector fields have changed, mark as dirty + isDirty = true; + } +#endif + + private void SetSizes(float x, float y) + { + if (updateMin) + { + layoutElement.minWidth = x; + layoutElement.minHeight = y; + } + if (updatePreferred) + { + layoutElement.preferredWidth = x; + layoutElement.preferredHeight = y; + } + } + + private Vector2 GetParentSize() + { + var parent = transform.parent as RectTransform; + return parent == null ? Vector2.zero : parent.rect.size; + } +} \ No newline at end of file diff --git a/Assets/Plugins/LayoutElementFitParent.cs.meta b/Assets/Plugins/LayoutElementFitParent.cs.meta new file mode 100644 index 000000000..7595f568b --- /dev/null +++ b/Assets/Plugins/LayoutElementFitParent.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a588f4b3f3e229540a82e5f976b08e2d +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Prefabs/RPG/Pickups/Dodecahedron.prefab b/Assets/Prefabs/RPG/Pickups/Dodecahedron.prefab index 50850e7a8..620c46bfa 100644 --- a/Assets/Prefabs/RPG/Pickups/Dodecahedron.prefab +++ b/Assets/Prefabs/RPG/Pickups/Dodecahedron.prefab @@ -1,5 +1,36 @@ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: +--- !u!1 &4094535758000554889 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6463386671854692106} + m_Layer: 21 + m_Name: Container + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &6463386671854692106 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4094535758000554889} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 9133920759869389018} + m_Father: {fileID: 8489385781787202308} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &5284461483464579928 GameObject: m_ObjectHideFlags: 0 @@ -14,6 +45,7 @@ GameObject: - component: {fileID: 8815906420840494942} - component: {fileID: 8842807112802394818} - component: {fileID: 8689774408369415534} + - component: {fileID: 5705448000916375656} m_Layer: 21 m_Name: Dodecahedron m_TagString: Untagged @@ -28,13 +60,14 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 5284461483464579928} - m_LocalRotation: {x: -0.7069834, y: 0, z: 0, w: 0.7072302} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 2.76403, y: 0, z: 0} m_LocalScale: {x: 3, y: 3, z: 3} - m_Children: [] + m_Children: + - {fileID: 6463386671854692106} m_Father: {fileID: 0} m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: -89.98, y: 0, z: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!33 &2667259809042191123 MeshFilter: m_ObjectHideFlags: 0 @@ -132,3 +165,168 @@ Rigidbody: m_Interpolate: 0 m_Constraints: 0 m_CollisionDetection: 0 +--- !u!114 &5705448000916375656 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5284461483464579928} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0c18f67d85af44c2b5afc8ecd15ce960, type: 3} + m_Name: + m_EditorClassIdentifier: + LabelFadeDuration: 0.5 + LabelPersistDuration: 3 + LabelDisplayAngle: 15 + LabelDisplayMaxDistance: 500 + ScanLabelContainer: {fileID: 6463386671854692106} + ScanLabel: {fileID: 3355762817961458026} +--- !u!1001 &306400354849379669 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 6463386671854692106} + m_Modifications: + - target: {fileID: 2945231343692618236, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_Name + value: Scan Label + objectReference: {fileID: 0} + - target: {fileID: 3085702413493447743, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_fontSize + value: 12 + objectReference: {fileID: 0} + - target: {fileID: 3085702413493447743, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_fontSizeBase + value: 12 + objectReference: {fileID: 0} + - target: {fileID: 8827822687143161231, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 8827822687143161231, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 8827822687143161231, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8827822687143161231, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_AnchorMax.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 8827822687143161231, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_AnchorMax.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 8827822687143161231, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_AnchorMin.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 8827822687143161231, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_AnchorMin.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 8827822687143161231, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8827822687143161231, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8827822687143161231, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8827822687143161231, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8827822687143161231, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_LocalPosition.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 8827822687143161231, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_LocalRotation.w + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8827822687143161231, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8827822687143161231, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_LocalRotation.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8827822687143161231, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8827822687143161231, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_AnchoredPosition.x + value: -1.39 + objectReference: {fileID: 0} + - target: {fileID: 8827822687143161231, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0.86 + objectReference: {fileID: 0} + - target: {fileID: 8827822687143161231, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8827822687143161231, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 180 + objectReference: {fileID: 0} + - target: {fileID: 8827822687143161231, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: e7877477dc889804ea9d04f7ffd08e9b, type: 3} +--- !u!224 &9133920759869389018 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 8827822687143161231, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + m_PrefabInstance: {fileID: 306400354849379669} + m_PrefabAsset: {fileID: 0} +--- !u!114 &3355762817961458026 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 3085702413493447743, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + m_PrefabInstance: {fileID: 306400354849379669} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9541d86e2fd84c1d9990edf0852d74ab, type: 3} + m_Name: + m_EditorClassIdentifier: diff --git a/Assets/Prefabs/RPG/Pickups/Hexahedron.prefab b/Assets/Prefabs/RPG/Pickups/Hexahedron.prefab index 52c9b96fa..7e449197b 100644 --- a/Assets/Prefabs/RPG/Pickups/Hexahedron.prefab +++ b/Assets/Prefabs/RPG/Pickups/Hexahedron.prefab @@ -1,5 +1,36 @@ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: +--- !u!1 &3193517496555256095 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3601651121922051457} + m_Layer: 21 + m_Name: Container + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3601651121922051457 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3193517496555256095} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 7638477100053754924} + m_Father: {fileID: 3419130779256825702} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &7643266616531142933 GameObject: m_ObjectHideFlags: 0 @@ -13,6 +44,7 @@ GameObject: - component: {fileID: 7427774873968414741} - component: {fileID: 674324171579366365} - component: {fileID: 7449398549621940518} + - component: {fileID: 4507103896627202189} - component: {fileID: 648083621841515580} m_Layer: 21 m_Name: Hexahedron @@ -28,13 +60,14 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 7643266616531142933} - m_LocalRotation: {x: -0.7069834, y: 0, z: 0, w: 0.7072302} - m_LocalPosition: {x: -2.6274304, y: 0, z: 0} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 3, y: 3, z: 3} - m_Children: [] + m_Children: + - {fileID: 3601651121922051457} m_Father: {fileID: 0} m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: -89.98, y: 0, z: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!33 &3269639735116279291 MeshFilter: m_ObjectHideFlags: 0 @@ -116,6 +149,24 @@ MonoBehaviour: Gravity: 1 Drag: 0.05 LaunchDrag: 0.2 +--- !u!114 &4507103896627202189 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7643266616531142933} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0c18f67d85af44c2b5afc8ecd15ce960, type: 3} + m_Name: + m_EditorClassIdentifier: + LabelFadeDuration: 0.5 + LabelPersistDuration: 3 + LabelDisplayAngle: 15 + LabelDisplayMaxDistance: 500 + ScanLabelContainer: {fileID: 3601651121922051457} + ScanLabel: {fileID: 4202270197902620060} --- !u!54 &648083621841515580 Rigidbody: m_ObjectHideFlags: 0 @@ -132,3 +183,150 @@ Rigidbody: m_Interpolate: 0 m_Constraints: 0 m_CollisionDetection: 0 +--- !u!1001 &1190053687094253987 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 3601651121922051457} + m_Modifications: + - target: {fileID: 2945231343692618236, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_Name + value: Scan Label + objectReference: {fileID: 0} + - target: {fileID: 3085702413493447743, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_fontSize + value: 12 + objectReference: {fileID: 0} + - target: {fileID: 3085702413493447743, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_fontSizeBase + value: 12 + objectReference: {fileID: 0} + - target: {fileID: 8827822687143161231, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 8827822687143161231, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 8827822687143161231, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8827822687143161231, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_AnchorMax.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 8827822687143161231, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_AnchorMax.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 8827822687143161231, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_AnchorMin.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 8827822687143161231, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_AnchorMin.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 8827822687143161231, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8827822687143161231, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8827822687143161231, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8827822687143161231, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8827822687143161231, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_LocalPosition.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 8827822687143161231, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_LocalRotation.w + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8827822687143161231, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8827822687143161231, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_LocalRotation.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8827822687143161231, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8827822687143161231, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_AnchoredPosition.x + value: -1.39 + objectReference: {fileID: 0} + - target: {fileID: 8827822687143161231, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0.86 + objectReference: {fileID: 0} + - target: {fileID: 8827822687143161231, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8827822687143161231, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 180 + objectReference: {fileID: 0} + - target: {fileID: 8827822687143161231, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: e7877477dc889804ea9d04f7ffd08e9b, type: 3} +--- !u!224 &7638477100053754924 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 8827822687143161231, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + m_PrefabInstance: {fileID: 1190053687094253987} + m_PrefabAsset: {fileID: 0} +--- !u!114 &4202270197902620060 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 3085702413493447743, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + m_PrefabInstance: {fileID: 1190053687094253987} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9541d86e2fd84c1d9990edf0852d74ab, type: 3} + m_Name: + m_EditorClassIdentifier: diff --git a/Assets/Prefabs/RPG/Pickups/Icosahedron.prefab b/Assets/Prefabs/RPG/Pickups/Icosahedron.prefab index 10ab93e8d..65d429108 100644 --- a/Assets/Prefabs/RPG/Pickups/Icosahedron.prefab +++ b/Assets/Prefabs/RPG/Pickups/Icosahedron.prefab @@ -1,5 +1,36 @@ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: +--- !u!1 &6430764275721745537 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4002800527770282731} + m_Layer: 21 + m_Name: Container + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4002800527770282731 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6430764275721745537} + m_LocalRotation: {x: 0.7069834, y: -0, z: -0, w: 0.7072302} + m_LocalPosition: {x: 0, y: -0.9858858, z: 0.000344038} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 5373456011921669618} + m_Father: {fileID: 7548484292876150345} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &7167547457198401877 GameObject: m_ObjectHideFlags: 0 @@ -13,6 +44,7 @@ GameObject: - component: {fileID: 6960669510133879758} - component: {fileID: 3507902894264904200} - component: {fileID: 8747099621875196907} + - component: {fileID: 1545255963217739444} - component: {fileID: -5409019571952974707} m_Layer: 21 m_Name: Icosahedron @@ -31,7 +63,8 @@ Transform: m_LocalRotation: {x: -0.7069834, y: 0, z: 0, w: 0.7072302} m_LocalPosition: {x: -0, y: 0, z: -2.9576573} m_LocalScale: {x: 3, y: 3, z: 3} - m_Children: [] + m_Children: + - {fileID: 4002800527770282731} m_Father: {fileID: 0} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: -89.98, y: 0, z: 0} @@ -116,6 +149,24 @@ MonoBehaviour: Gravity: 1 Drag: 0.05 LaunchDrag: 0.2 +--- !u!114 &1545255963217739444 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7167547457198401877} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0c18f67d85af44c2b5afc8ecd15ce960, type: 3} + m_Name: + m_EditorClassIdentifier: + LabelFadeDuration: 0.5 + LabelPersistDuration: 3 + LabelDisplayAngle: 15 + LabelDisplayMaxDistance: 500 + ScanLabelContainer: {fileID: 4002800527770282731} + ScanLabel: {fileID: 1928241908402748482} --- !u!54 &-5409019571952974707 Rigidbody: m_ObjectHideFlags: 0 @@ -132,3 +183,150 @@ Rigidbody: m_Interpolate: 0 m_Constraints: 0 m_CollisionDetection: 0 +--- !u!1001 &3463514625940279421 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 4002800527770282731} + m_Modifications: + - target: {fileID: 2945231343692618236, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_Name + value: Scan Label + objectReference: {fileID: 0} + - target: {fileID: 3085702413493447743, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_fontSize + value: 12 + objectReference: {fileID: 0} + - target: {fileID: 3085702413493447743, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_fontSizeBase + value: 12 + objectReference: {fileID: 0} + - target: {fileID: 8827822687143161231, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 8827822687143161231, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 8827822687143161231, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8827822687143161231, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_AnchorMax.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 8827822687143161231, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_AnchorMax.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 8827822687143161231, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_AnchorMin.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 8827822687143161231, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_AnchorMin.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 8827822687143161231, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8827822687143161231, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8827822687143161231, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8827822687143161231, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8827822687143161231, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_LocalPosition.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 8827822687143161231, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_LocalRotation.w + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8827822687143161231, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8827822687143161231, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_LocalRotation.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8827822687143161231, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8827822687143161231, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_AnchoredPosition.x + value: -1.39 + objectReference: {fileID: 0} + - target: {fileID: 8827822687143161231, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0.86 + objectReference: {fileID: 0} + - target: {fileID: 8827822687143161231, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8827822687143161231, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 180 + objectReference: {fileID: 0} + - target: {fileID: 8827822687143161231, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: e7877477dc889804ea9d04f7ffd08e9b, type: 3} +--- !u!224 &5373456011921669618 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 8827822687143161231, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + m_PrefabInstance: {fileID: 3463514625940279421} + m_PrefabAsset: {fileID: 0} +--- !u!114 &1928241908402748482 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 3085702413493447743, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + m_PrefabInstance: {fileID: 3463514625940279421} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9541d86e2fd84c1d9990edf0852d74ab, type: 3} + m_Name: + m_EditorClassIdentifier: diff --git a/Assets/Prefabs/RPG/Pickups/Octahedron.prefab b/Assets/Prefabs/RPG/Pickups/Octahedron.prefab index 422a70c86..7d07605aa 100644 --- a/Assets/Prefabs/RPG/Pickups/Octahedron.prefab +++ b/Assets/Prefabs/RPG/Pickups/Octahedron.prefab @@ -1,5 +1,36 @@ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: +--- !u!1 &3932408193141279893 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2388751103296260666} + m_Layer: 21 + m_Name: Container + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2388751103296260666 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3932408193141279893} + m_LocalRotation: {x: 0.7069834, y: -0, z: -0, w: 0.7072302} + m_LocalPosition: {x: 0, y: 0.9264834, z: -0.0003232956} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 7372978312502119311} + m_Father: {fileID: 5807113421007930924} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &8555821447211356933 GameObject: m_ObjectHideFlags: 0 @@ -13,6 +44,7 @@ GameObject: - component: {fileID: 1691511938472729356} - component: {fileID: 3657818610818556929} - component: {fileID: 946329779588188460} + - component: {fileID: 7390748043139687254} - component: {fileID: -4611973708976329780} m_Layer: 21 m_Name: Octahedron @@ -31,7 +63,8 @@ Transform: m_LocalRotation: {x: -0.7069834, y: 0, z: 0, w: 0.7072302} m_LocalPosition: {x: -0, y: 0, z: 2.7794502} m_LocalScale: {x: 3, y: 3, z: 3} - m_Children: [] + m_Children: + - {fileID: 2388751103296260666} m_Father: {fileID: 0} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: -89.98, y: 0, z: 0} @@ -116,6 +149,24 @@ MonoBehaviour: Gravity: 1 Drag: 0.05 LaunchDrag: 0.2 +--- !u!114 &7390748043139687254 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8555821447211356933} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0c18f67d85af44c2b5afc8ecd15ce960, type: 3} + m_Name: + m_EditorClassIdentifier: + LabelFadeDuration: 0.5 + LabelPersistDuration: 3 + LabelDisplayAngle: 15 + LabelDisplayMaxDistance: 500 + ScanLabelContainer: {fileID: 2388751103296260666} + ScanLabel: {fileID: 3891726626588969535} --- !u!54 &-4611973708976329780 Rigidbody: m_ObjectHideFlags: 0 @@ -132,3 +183,150 @@ Rigidbody: m_Interpolate: 0 m_Constraints: 0 m_CollisionDetection: 0 +--- !u!1001 &2076349920387032576 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 2388751103296260666} + m_Modifications: + - target: {fileID: 2945231343692618236, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_Name + value: Scan Label + objectReference: {fileID: 0} + - target: {fileID: 3085702413493447743, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_fontSize + value: 12 + objectReference: {fileID: 0} + - target: {fileID: 3085702413493447743, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_fontSizeBase + value: 12 + objectReference: {fileID: 0} + - target: {fileID: 8827822687143161231, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 8827822687143161231, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 8827822687143161231, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8827822687143161231, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_AnchorMax.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 8827822687143161231, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_AnchorMax.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 8827822687143161231, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_AnchorMin.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 8827822687143161231, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_AnchorMin.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 8827822687143161231, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8827822687143161231, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8827822687143161231, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8827822687143161231, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8827822687143161231, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_LocalPosition.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 8827822687143161231, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_LocalRotation.w + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8827822687143161231, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8827822687143161231, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_LocalRotation.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8827822687143161231, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8827822687143161231, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_AnchoredPosition.x + value: -1.39 + objectReference: {fileID: 0} + - target: {fileID: 8827822687143161231, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0.86 + objectReference: {fileID: 0} + - target: {fileID: 8827822687143161231, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8827822687143161231, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 180 + objectReference: {fileID: 0} + - target: {fileID: 8827822687143161231, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: e7877477dc889804ea9d04f7ffd08e9b, type: 3} +--- !u!224 &7372978312502119311 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 8827822687143161231, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + m_PrefabInstance: {fileID: 2076349920387032576} + m_PrefabAsset: {fileID: 0} +--- !u!114 &3891726626588969535 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 3085702413493447743, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + m_PrefabInstance: {fileID: 2076349920387032576} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9541d86e2fd84c1d9990edf0852d74ab, type: 3} + m_Name: + m_EditorClassIdentifier: diff --git a/Assets/Prefabs/RPG/Pickups/Scan Label.prefab b/Assets/Prefabs/RPG/Pickups/Scan Label.prefab new file mode 100644 index 000000000..dff141f55 --- /dev/null +++ b/Assets/Prefabs/RPG/Pickups/Scan Label.prefab @@ -0,0 +1,171 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &2945231343692618236 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8827822687143161231} + - component: {fileID: 2000937249754104238} + - component: {fileID: 3085702413493447743} + m_Layer: 0 + m_Name: Scan Label + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8827822687143161231 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2945231343692618236} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!23 &2000937249754104238 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2945231343692618236} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 42a7a06ba69bf9645a481e0b5e3ed46a, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!114 &3085702413493447743 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2945231343692618236} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9541d86e2fd84c1d9990edf0852d74ab, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Sample text + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 53555f7a2d5e745428813f1b1118734f, type: 2} + m_sharedMaterial: {fileID: 2100000, guid: 42a7a06ba69bf9645a481e0b5e3ed46a, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 36 + m_fontSizeBase: 36 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 1024 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 0 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 0 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_renderer: {fileID: 2000937249754104238} + m_maskType: 0 + _SortingLayerID: 0 + _SortingOrder: 0 diff --git a/Assets/Prefabs/RPG/Pickups/Scan Label.prefab.meta b/Assets/Prefabs/RPG/Pickups/Scan Label.prefab.meta new file mode 100644 index 000000000..95ccd9ddf --- /dev/null +++ b/Assets/Prefabs/RPG/Pickups/Scan Label.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: e7877477dc889804ea9d04f7ffd08e9b +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Prefabs/RPG/Pickups/Tetrahedron.prefab b/Assets/Prefabs/RPG/Pickups/Tetrahedron.prefab index 02510fd61..c81b41104 100644 --- a/Assets/Prefabs/RPG/Pickups/Tetrahedron.prefab +++ b/Assets/Prefabs/RPG/Pickups/Tetrahedron.prefab @@ -1,5 +1,36 @@ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: +--- !u!1 &2238948151922859802 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7682789761269032435} + m_Layer: 21 + m_Name: Container + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &7682789761269032435 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2238948151922859802} + m_LocalRotation: {x: 0.7069834, y: -0, z: -0, w: 0.7072302} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 3300919539099916088} + m_Father: {fileID: 8414659055235772867} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &7767746557817481743 GameObject: m_ObjectHideFlags: 0 @@ -13,6 +44,7 @@ GameObject: - component: {fileID: 6959931328227918623} - component: {fileID: 4540815661693075899} - component: {fileID: 4008709970769624704} + - component: {fileID: 7436534270673427838} - component: {fileID: -6589342969031261525} m_Layer: 21 m_Name: Tetrahedron @@ -31,7 +63,8 @@ Transform: m_LocalRotation: {x: -0.7069834, y: 0, z: 0, w: 0.7072302} m_LocalPosition: {x: -0, y: 0, z: 0} m_LocalScale: {x: 3, y: 3, z: 3} - m_Children: [] + m_Children: + - {fileID: 7682789761269032435} m_Father: {fileID: 0} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: -89.98, y: 0, z: 0} @@ -116,6 +149,24 @@ MonoBehaviour: Gravity: 1 Drag: 0.05 LaunchDrag: 0.2 +--- !u!114 &7436534270673427838 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7767746557817481743} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0c18f67d85af44c2b5afc8ecd15ce960, type: 3} + m_Name: + m_EditorClassIdentifier: + LabelFadeDuration: 0.5 + LabelPersistDuration: 3 + LabelDisplayAngle: 15 + LabelDisplayMaxDistance: 500 + ScanLabelContainer: {fileID: 7682789761269032435} + ScanLabel: {fileID: 9051985514531952264} --- !u!54 &-6589342969031261525 Rigidbody: m_ObjectHideFlags: 0 @@ -132,3 +183,150 @@ Rigidbody: m_Interpolate: 0 m_Constraints: 0 m_CollisionDetection: 0 +--- !u!1001 &6290826240748108471 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 7682789761269032435} + m_Modifications: + - target: {fileID: 2945231343692618236, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_Name + value: Scan Label + objectReference: {fileID: 0} + - target: {fileID: 3085702413493447743, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_fontSize + value: 12 + objectReference: {fileID: 0} + - target: {fileID: 3085702413493447743, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_fontSizeBase + value: 12 + objectReference: {fileID: 0} + - target: {fileID: 8827822687143161231, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 8827822687143161231, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 8827822687143161231, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8827822687143161231, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_AnchorMax.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 8827822687143161231, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_AnchorMax.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 8827822687143161231, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_AnchorMin.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 8827822687143161231, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_AnchorMin.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 8827822687143161231, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8827822687143161231, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8827822687143161231, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8827822687143161231, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8827822687143161231, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_LocalPosition.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 8827822687143161231, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_LocalRotation.w + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8827822687143161231, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8827822687143161231, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_LocalRotation.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8827822687143161231, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8827822687143161231, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_AnchoredPosition.x + value: -1.39 + objectReference: {fileID: 0} + - target: {fileID: 8827822687143161231, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0.86 + objectReference: {fileID: 0} + - target: {fileID: 8827822687143161231, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8827822687143161231, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 180 + objectReference: {fileID: 0} + - target: {fileID: 8827822687143161231, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: e7877477dc889804ea9d04f7ffd08e9b, type: 3} +--- !u!224 &3300919539099916088 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 8827822687143161231, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + m_PrefabInstance: {fileID: 6290826240748108471} + m_PrefabAsset: {fileID: 0} +--- !u!114 &9051985514531952264 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 3085702413493447743, guid: e7877477dc889804ea9d04f7ffd08e9b, + type: 3} + m_PrefabInstance: {fileID: 6290826240748108471} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9541d86e2fd84c1d9990edf0852d74ab, type: 3} + m_Name: + m_EditorClassIdentifier: diff --git a/Assets/Prefabs/UI/Action Slot.prefab b/Assets/Prefabs/UI/Action Slot.prefab new file mode 100644 index 000000000..1bf80adc3 --- /dev/null +++ b/Assets/Prefabs/UI/Action Slot.prefab @@ -0,0 +1,932 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &5265890416424360399 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7189530886183100189} + - component: {fileID: 2613005521369391627} + - component: {fileID: 4039105166987355348} + m_Layer: 5 + m_Name: Label + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7189530886183100189 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5265890416424360399} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 8334150340270499360} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &2613005521369391627 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5265890416424360399} + m_CullTransparentMesh: 1 +--- !u!114 &4039105166987355348 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5265890416424360399} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: G5 + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 49f936dc5a44a87449c71bc4e50f0aa8, type: 2} + m_sharedMaterial: {fileID: 21328109656793898, guid: 49f936dc5a44a87449c71bc4e50f0aa8, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 36 + m_fontSizeBase: 36 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &8334150340270499363 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8334150340270499360} + - component: {fileID: 8334150340270499418} + - component: {fileID: 8334150340270499365} + - component: {fileID: 8334150340270499364} + - component: {fileID: 8334150340270499367} + - component: {fileID: 8334150340270499366} + - component: {fileID: 8334150340270499361} + m_Layer: 5 + m_Name: Action Slot + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8334150340270499360 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8334150340270499363} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 8334150341076115031} + - {fileID: 8334150340821902613} + - {fileID: 7189530886183100189} + - {fileID: 8334150342215846672} + - {fileID: 8334150340841115259} + - {fileID: 8334150341270877134} + - {fileID: 8334150341178146430} + - {fileID: 8334150340826609675} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &8334150340270499418 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8334150340270499363} + m_CullTransparentMesh: 1 +--- !u!114 &8334150340270499365 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8334150340270499363} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 84d126f984de5fd42ac66361c00f830c, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &8334150340270499364 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8334150340270499363} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: 64 + m_PreferredHeight: 64 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 +--- !u!114 &8334150340270499367 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8334150340270499363} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a588f4b3f3e229540a82e5f976b08e2d, type: 3} + m_Name: + m_EditorClassIdentifier: + aspectRatio: 1 + updateMin: 0 + updatePreferred: 1 +--- !u!114 &8334150340270499366 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8334150340270499363} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f285e0b05ca24b83bd6cd48419cbad6e, type: 3} + m_Name: + m_EditorClassIdentifier: + Label: {fileID: 4039105166987355348} + Icon: {fileID: 8334150342215846673} + InputLabel: {fileID: 8334150341270877135} + InputIcon: {fileID: 8334150340841115256} + QuantityRemaining: {fileID: 8334150341178146431} + Fill: {fileID: 8334150340821902602} +--- !u!114 &8334150340270499361 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8334150340270499363} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 31a19414c41e5ae4aae2af33fee712f6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ShowMaskGraphic: 0 +--- !u!1 &8334150340821902612 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8334150340821902613} + - component: {fileID: 8334150340821902603} + - component: {fileID: 8334150340821902602} + m_Layer: 5 + m_Name: Fill + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8334150340821902613 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8334150340821902612} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 8334150340270499360} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &8334150340821902603 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8334150340821902612} + m_CullTransparentMesh: 1 +--- !u!114 &8334150340821902602 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8334150340821902612} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 0.44583336, b: 0.050000012, a: 0.65882355} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: f0c4d03b3421b2e41bb247df6a85c88e, type: 3} + m_Type: 3 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 1 + m_FillAmount: 0.536 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 0.5 +--- !u!1 &8334150340826609674 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8334150340826609675} + - component: {fileID: 8334150340826609673} + - component: {fileID: 8334150340826609672} + m_Layer: 5 + m_Name: Outline + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8334150340826609675 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8334150340826609674} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 8334150340270499360} + m_RootOrder: 7 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0.000015258789, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &8334150340826609673 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8334150340826609674} + m_CullTransparentMesh: 1 +--- !u!114 &8334150340826609672 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8334150340826609674} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.85, g: 0.95199996, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 53be25fb8ef6567478599a1f7299ca24, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 4 +--- !u!1 &8334150340841115258 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8334150340841115259} + - component: {fileID: 8334150340841115257} + - component: {fileID: 8334150340841115256} + m_Layer: 5 + m_Name: InputIcon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8334150340841115259 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8334150340841115258} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: -1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 8334150340270499360} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 8, y: 11} + m_SizeDelta: {x: 16, y: 16} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &8334150340841115257 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8334150340841115258} + m_CullTransparentMesh: 1 +--- !u!114 &8334150340841115256 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8334150340841115258} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: a308a6cbccf9c9b4fa444a974e7968df, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &8334150341076115030 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8334150341076115031} + - component: {fileID: 8334150341076115029} + - component: {fileID: 8334150341076115028} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8334150341076115031 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8334150341076115030} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 8334150340270499360} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0.000015258789, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &8334150341076115029 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8334150341076115030} + m_CullTransparentMesh: 1 +--- !u!114 &8334150341076115028 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8334150341076115030} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: 46238d909c2092c4eb873278d84c6ce8, type: 2} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 84d126f984de5fd42ac66361c00f830c, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &8334150341178146425 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8334150341178146430} + - component: {fileID: 8334150341178146428} + - component: {fileID: 8334150341178146431} + m_Layer: 5 + m_Name: Remaining + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8334150341178146430 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8334150341178146425} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 8334150340270499360} + m_RootOrder: 6 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: -2, y: -1} + m_SizeDelta: {x: 32, y: 32} + m_Pivot: {x: 1, y: 1} +--- !u!222 &8334150341178146428 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8334150341178146425} + m_CullTransparentMesh: 1 +--- !u!114 &8334150341178146431 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8334150341178146425} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: 3/6 + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 53555f7a2d5e745428813f1b1118734f, type: 2} + m_sharedMaterial: {fileID: -2804126062856497447, guid: 53555f7a2d5e745428813f1b1118734f, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 14 + m_fontSizeBase: 14 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 4 + m_VerticalAlignment: 256 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &8334150341270877129 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8334150341270877134} + - component: {fileID: 8334150341270877132} + - component: {fileID: 8334150341270877135} + m_Layer: 5 + m_Name: InputLabel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8334150341270877134 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8334150341270877129} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 8334150340270499360} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 2, y: 1} + m_SizeDelta: {x: 32, y: 32} + m_Pivot: {x: 0, y: 0} +--- !u!222 &8334150341270877132 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8334150341270877129} + m_CullTransparentMesh: 1 +--- !u!114 &8334150341270877135 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8334150341270877129} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: 1 + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 53555f7a2d5e745428813f1b1118734f, type: 2} + m_sharedMaterial: {fileID: -2804126062856497447, guid: 53555f7a2d5e745428813f1b1118734f, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 20 + m_fontSizeBase: 20 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 1024 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &8334150342215846675 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8334150342215846672} + - component: {fileID: 8334150342215846678} + - component: {fileID: 8334150342215846673} + m_Layer: 5 + m_Name: Icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8334150342215846672 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8334150342215846675} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 8334150340270499360} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -16, y: -16} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &8334150342215846678 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8334150342215846675} + m_CullTransparentMesh: 1 +--- !u!114 &8334150342215846673 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8334150342215846675} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1344c3c82d62a2a41a3576d8abb8e3ea, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Texture: {fileID: 2800000, guid: 44a01fdfb3b1a7c4bb6f5b3e239f9b5c, type: 3} + m_UVRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 diff --git a/Assets/Prefabs/UI/Action Slot.prefab.meta b/Assets/Prefabs/UI/Action Slot.prefab.meta new file mode 100644 index 000000000..3b7f54e67 --- /dev/null +++ b/Assets/Prefabs/UI/Action Slot.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: bfce34a0acbaa454e97a700e1875357e +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Aetheria.inputactions b/Assets/Resources/Aetheria.inputactions index 5a43bcfa9..df5ceb07d 100644 --- a/Assets/Resources/Aetheria.inputactions +++ b/Assets/Resources/Aetheria.inputactions @@ -21,54 +21,6 @@ "processors": "", "interactions": "" }, - { - "name": "Fire Group 1", - "type": "Button", - "id": "575943b0-4866-4be0-a289-3253973523b1", - "expectedControlType": "Button", - "processors": "", - "interactions": "" - }, - { - "name": "Fire Group 2", - "type": "Button", - "id": "b9bdfa1f-db61-4ec3-883a-fc3f9e88c5f5", - "expectedControlType": "Button", - "processors": "", - "interactions": "" - }, - { - "name": "Fire Group 3", - "type": "Button", - "id": "d79871a2-8565-4cf3-809f-9c979adfcd81", - "expectedControlType": "Button", - "processors": "", - "interactions": "" - }, - { - "name": "Fire Group 4", - "type": "Button", - "id": "59902e9e-1dfb-4624-9599-72ff763ef327", - "expectedControlType": "Button", - "processors": "", - "interactions": "" - }, - { - "name": "Fire Group 5", - "type": "Button", - "id": "80b549c1-7378-48c5-8da2-ce95b9c92913", - "expectedControlType": "Button", - "processors": "", - "interactions": "" - }, - { - "name": "Fire Group 6", - "type": "Button", - "id": "4ba5091e-051a-41df-9985-6c0e082b20a5", - "expectedControlType": "Button", - "processors": "", - "interactions": "" - }, { "name": "Minimap Zoom", "type": "Button", @@ -77,46 +29,6 @@ "processors": "", "interactions": "" }, - { - "name": "Next Weapon Group", - "type": "Button", - "id": "8ed69fe0-d934-44ea-94c0-d5d69cc33b32", - "expectedControlType": "Button", - "processors": "", - "interactions": "" - }, - { - "name": "Previous Weapon Group", - "type": "Button", - "id": "93f19768-6c19-4bab-8b53-4e3e5ba764fc", - "expectedControlType": "Button", - "processors": "", - "interactions": "" - }, - { - "name": "Next Weapon", - "type": "Button", - "id": "09a5e315-6290-4ab5-9e7c-55b7523562b7", - "expectedControlType": "Button", - "processors": "", - "interactions": "" - }, - { - "name": "Previous Weapon", - "type": "Button", - "id": "ed923265-545f-4475-ba7c-885371612325", - "expectedControlType": "Button", - "processors": "", - "interactions": "" - }, - { - "name": "Toggle Weapon Group", - "type": "Button", - "id": "c61da4ef-e0bc-4d17-aab0-8e2979c3de3c", - "expectedControlType": "Button", - "processors": "", - "interactions": "" - }, { "name": "Target Reticle", "type": "Button", @@ -361,50 +273,6 @@ "isComposite": false, "isPartOfComposite": false }, - { - "name": "", - "id": "143bb1cd-cc10-4eca-a2f0-a3664166fe91", - "path": "/rightTrigger", - "interactions": "", - "processors": "", - "groups": ";Gamepad", - "action": "Fire Group 1", - "isComposite": false, - "isPartOfComposite": false - }, - { - "name": "", - "id": "05f6913d-c316-48b2-a6bb-e225f14c7960", - "path": "/leftButton", - "interactions": "", - "processors": "", - "groups": ";Keyboard&Mouse", - "action": "Fire Group 1", - "isComposite": false, - "isPartOfComposite": false - }, - { - "name": "", - "id": "ee3d0cd2-254e-47a7-a8cb-bc94d9658c54", - "path": "/trigger", - "interactions": "", - "processors": "", - "groups": "Joystick", - "action": "Fire Group 1", - "isComposite": false, - "isPartOfComposite": false - }, - { - "name": "", - "id": "8c676533-8c53-4b6a-9368-d194b8a997f8", - "path": "/1", - "interactions": "", - "processors": "", - "groups": "Keyboard&Mouse", - "action": "Fire Group 1", - "isComposite": false, - "isPartOfComposite": false - }, { "name": "", "id": "495c3ec6-3188-4309-9072-f958e89c87ec", @@ -416,138 +284,6 @@ "isComposite": false, "isPartOfComposite": false }, - { - "name": "", - "id": "444b4049-a11e-4bef-8a57-345c3d1a7545", - "path": "/rightArrow", - "interactions": "", - "processors": "", - "groups": "Keyboard&Mouse", - "action": "Next Weapon Group", - "isComposite": false, - "isPartOfComposite": false - }, - { - "name": "", - "id": "fb6c0d4c-dae6-406b-b35a-c35b5d25022c", - "path": "/leftArrow", - "interactions": "", - "processors": "", - "groups": "Keyboard&Mouse", - "action": "Previous Weapon Group", - "isComposite": false, - "isPartOfComposite": false - }, - { - "name": "", - "id": "bac8c902-3cad-4a7f-8773-35800a2ee3b9", - "path": "/downArrow", - "interactions": "", - "processors": "", - "groups": "Keyboard&Mouse", - "action": "Next Weapon", - "isComposite": false, - "isPartOfComposite": false - }, - { - "name": "", - "id": "969aff21-097a-4c35-9c46-2239e5f321f5", - "path": "/upArrow", - "interactions": "", - "processors": "", - "groups": "Keyboard&Mouse", - "action": "Previous Weapon", - "isComposite": false, - "isPartOfComposite": false - }, - { - "name": "", - "id": "a2bcbfda-f091-433f-8ac9-112396507408", - "path": "/rightCtrl", - "interactions": "", - "processors": "", - "groups": "Keyboard&Mouse", - "action": "Toggle Weapon Group", - "isComposite": false, - "isPartOfComposite": false - }, - { - "name": "", - "id": "48b8b6ee-8435-439a-96a1-c968254ff605", - "path": "/rightButton", - "interactions": "", - "processors": "", - "groups": ";Keyboard&Mouse", - "action": "Fire Group 2", - "isComposite": false, - "isPartOfComposite": false - }, - { - "name": "", - "id": "8ae75721-10ab-4d83-8322-82cbb3fdcc44", - "path": "/2", - "interactions": "", - "processors": "", - "groups": "Keyboard&Mouse", - "action": "Fire Group 2", - "isComposite": false, - "isPartOfComposite": false - }, - { - "name": "", - "id": "7f89c9af-795b-4b1e-ad43-dac3350cfbe3", - "path": "/middleButton", - "interactions": "", - "processors": "", - "groups": ";Keyboard&Mouse", - "action": "Fire Group 3", - "isComposite": false, - "isPartOfComposite": false - }, - { - "name": "", - "id": "c249f018-c10a-4c2c-a4ba-9fba54ed33e9", - "path": "/3", - "interactions": "", - "processors": "", - "groups": "Keyboard&Mouse", - "action": "Fire Group 3", - "isComposite": false, - "isPartOfComposite": false - }, - { - "name": "", - "id": "421e49a0-897e-4ea3-af8d-af96989d2957", - "path": "/4", - "interactions": "", - "processors": "", - "groups": ";Keyboard&Mouse", - "action": "Fire Group 4", - "isComposite": false, - "isPartOfComposite": false - }, - { - "name": "", - "id": "1c8a43b7-4200-43b9-925c-c1634554083c", - "path": "/5", - "interactions": "", - "processors": "", - "groups": ";Keyboard&Mouse", - "action": "Fire Group 5", - "isComposite": false, - "isPartOfComposite": false - }, - { - "name": "", - "id": "0680216e-b462-45a3-8050-2b89dcb615aa", - "path": "/6", - "interactions": "", - "processors": "", - "groups": ";Keyboard&Mouse", - "action": "Fire Group 6", - "isComposite": false, - "isPartOfComposite": false - }, { "name": "", "id": "5211a58c-428b-4ee6-820d-2f67789806d6", diff --git a/Assets/Resources/Settings.asset b/Assets/Resources/Settings.asset index fa7a35d76..72963dd53 100644 --- a/Assets/Resources/Settings.asset +++ b/Assets/Resources/Settings.asset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:e88b31e49996b44a93bc845588151847eb73a8902c5939b54f4755ece6a7622d -size 11764 +oid sha256:641b4c172ddb913405777b54a4c27f5376f697ea6a5c4de1b3b23186379dab8d +size 11840 diff --git a/Assets/Resources/Sprites/Attribution.txt b/Assets/Resources/Sprites/Attribution.txt index 03524509d..5f98ef312 100644 --- a/Assets/Resources/Sprites/Attribution.txt +++ b/Assets/Resources/Sprites/Attribution.txt @@ -76,6 +76,7 @@ pattern by Andrejs Kirma edit by The Icon Z Resize by Markus Rotate by Rohith M +up key by Dika Darma Other diff --git a/Assets/Resources/Sprites/Icons/Tech/Cloud.png.meta b/Assets/Resources/Sprites/Icons/Tech/Cloud.png.meta index 68ced4a80..de062bba3 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Cloud.png.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Cloud.png.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/Cooler.png.meta b/Assets/Resources/Sprites/Icons/Tech/Cooler.png.meta index 14ef40679..cd9a63ee0 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Cooler.png.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Cooler.png.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/Final - Reactor.png.meta b/Assets/Resources/Sprites/Icons/Tech/Final - Reactor.png.meta index 23a87f366..d60d387d2 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Final - Reactor.png.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Final - Reactor.png.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 1 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/Fire.png.meta b/Assets/Resources/Sprites/Icons/Tech/Fire.png.meta index 6709ca381..23fea2e50 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Fire.png.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Fire.png.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/Fxperiment Turbine.png.meta b/Assets/Resources/Sprites/Icons/Tech/Fxperiment Turbine.png.meta index 44ecd9d65..c258093e8 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Fxperiment Turbine.png.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Fxperiment Turbine.png.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/Heat.png.meta b/Assets/Resources/Sprites/Icons/Tech/Heat.png.meta index 05b1ab32a..92875d80a 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Heat.png.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Heat.png.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/Laser.png.meta b/Assets/Resources/Sprites/Icons/Tech/Laser.png.meta index 9f2900130..e96244e0d 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Laser.png.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Laser.png.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/Reactor.png.meta b/Assets/Resources/Sprites/Icons/Tech/Reactor.png.meta index 157a63064..4e06a6f85 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Reactor.png.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Reactor.png.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/Spiral.png.meta b/Assets/Resources/Sprites/Icons/Tech/Spiral.png.meta index 443fde1ff..c57252f66 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Spiral.png.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Spiral.png.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_01.PNG.meta b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_01.PNG.meta index 9b56e93a2..13522164e 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_01.PNG.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_01.PNG.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_02.PNG.meta b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_02.PNG.meta index 6097e4276..4526d476d 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_02.PNG.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_02.PNG.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_03.PNG.meta b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_03.PNG.meta index 6a5c961dc..c4bf6f110 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_03.PNG.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_03.PNG.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_04.PNG.meta b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_04.PNG.meta index 2e9cf1527..1bf2263a6 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_04.PNG.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_04.PNG.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_05.PNG.meta b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_05.PNG.meta index a8fbcd382..aa857959a 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_05.PNG.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_05.PNG.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_06.PNG.meta b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_06.PNG.meta index d286f02a4..4852fd5aa 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_06.PNG.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_06.PNG.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_07.PNG.meta b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_07.PNG.meta index f73c22797..be9c92e9f 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_07.PNG.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_07.PNG.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_08.PNG.meta b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_08.PNG.meta index 4a54aa265..31ccd833b 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_08.PNG.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_08.PNG.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_09.PNG.meta b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_09.PNG.meta index b88350fe2..7a49ce5b0 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_09.PNG.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_09.PNG.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_10.PNG.meta b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_10.PNG.meta index 4fec9869f..d28f33a34 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_10.PNG.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_10.PNG.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_100.PNG.meta b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_100.PNG.meta index cc49b63de..6017cb1b6 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_100.PNG.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_100.PNG.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_101.PNG.meta b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_101.PNG.meta index a75a28062..3f7464b8e 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_101.PNG.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_101.PNG.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_102.PNG.meta b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_102.PNG.meta index 9dee1973b..0cce8b697 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_102.PNG.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_102.PNG.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_103.PNG.meta b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_103.PNG.meta index 64bdbf33b..94d2cef26 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_103.PNG.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_103.PNG.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_104.PNG.meta b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_104.PNG.meta index 9fd015f24..0bd743227 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_104.PNG.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_104.PNG.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_105.PNG.meta b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_105.PNG.meta index e39b900f2..67daeb82c 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_105.PNG.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_105.PNG.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_106.PNG.meta b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_106.PNG.meta index 7f6f0897c..4a3c314d4 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_106.PNG.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_106.PNG.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_107.PNG.meta b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_107.PNG.meta index 51c8f5795..15416b1a6 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_107.PNG.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_107.PNG.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_108.PNG.meta b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_108.PNG.meta index 326645e23..660ba5c03 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_108.PNG.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_108.PNG.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_109.PNG.meta b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_109.PNG.meta index cb95dc9d6..9bc3fea4a 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_109.PNG.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_109.PNG.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_11.PNG.meta b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_11.PNG.meta index a0e850521..419479602 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_11.PNG.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_11.PNG.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_110.PNG.meta b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_110.PNG.meta index 4a96d7ce6..b78374a3d 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_110.PNG.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_110.PNG.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_111.PNG.meta b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_111.PNG.meta index b67b56a61..97b221b8c 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_111.PNG.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_111.PNG.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_12.PNG.meta b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_12.PNG.meta index 3a4f5e29c..ae2742257 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_12.PNG.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_12.PNG.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_13.PNG.meta b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_13.PNG.meta index 2cc9e3ff1..2588ad065 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_13.PNG.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_13.PNG.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_14.PNG.meta b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_14.PNG.meta index 0ebb4feaa..1a2a8b090 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_14.PNG.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_14.PNG.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_15.PNG.meta b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_15.PNG.meta index 313a89199..7fda86602 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_15.PNG.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_15.PNG.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_16.PNG.meta b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_16.PNG.meta index 43076805c..b09ade529 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_16.PNG.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_16.PNG.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_17.PNG.meta b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_17.PNG.meta index 1ced45e48..3bbd6ac04 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_17.PNG.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_17.PNG.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_18.PNG.meta b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_18.PNG.meta index 9cce95916..92146c23b 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_18.PNG.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_18.PNG.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_19.PNG.meta b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_19.PNG.meta index a530f6bab..882770b2d 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_19.PNG.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_19.PNG.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_20.PNG.meta b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_20.PNG.meta index bc373295a..5a926c2b1 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_20.PNG.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_20.PNG.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_21.PNG.meta b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_21.PNG.meta index 75af0e653..4c3ebe12f 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_21.PNG.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_21.PNG.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_22.PNG.meta b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_22.PNG.meta index c7a1034aa..85dd53fb8 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_22.PNG.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_22.PNG.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_23.PNG.meta b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_23.PNG.meta index 38db5e328..8c1d05adc 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_23.PNG.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_23.PNG.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_24.PNG.meta b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_24.PNG.meta index 05f241eba..165401c0c 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_24.PNG.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_24.PNG.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_25.PNG.meta b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_25.PNG.meta index d30cccf02..9e930a811 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_25.PNG.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_25.PNG.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_26.PNG.meta b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_26.PNG.meta index 8798d6973..529c9876d 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_26.PNG.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_26.PNG.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_27.PNG.meta b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_27.PNG.meta index 7166bb976..32dd4fe9e 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_27.PNG.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_27.PNG.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_28.PNG.meta b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_28.PNG.meta index 92bb1fc00..ccd8f445b 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_28.PNG.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_28.PNG.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_29.PNG.meta b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_29.PNG.meta index 7879660fa..b2436e370 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_29.PNG.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_29.PNG.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_30.PNG.meta b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_30.PNG.meta index 0d40adafb..8cc2fc59d 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_30.PNG.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_30.PNG.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_31.PNG.meta b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_31.PNG.meta index d862356c3..272cd6b9b 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_31.PNG.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_31.PNG.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_32.PNG.meta b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_32.PNG.meta index 1c37b94f6..e92c87ce7 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_32.PNG.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_32.PNG.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_33.PNG.meta b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_33.PNG.meta index 0d67a04b5..7599bd200 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_33.PNG.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_33.PNG.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_34.PNG.meta b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_34.PNG.meta index cf8899b42..45706bc14 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_34.PNG.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_34.PNG.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_35.PNG.meta b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_35.PNG.meta index 4536a4b80..d19a644a2 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_35.PNG.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_35.PNG.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_36.PNG.meta b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_36.PNG.meta index 59ec13586..a1360de1a 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_36.PNG.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_36.PNG.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_37.PNG.meta b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_37.PNG.meta index 927dfe5fc..12ae4ac7b 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_37.PNG.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_37.PNG.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_38.PNG.meta b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_38.PNG.meta index 2c135a085..0a9ab6c2a 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_38.PNG.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_38.PNG.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_39.PNG.meta b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_39.PNG.meta index 035228f1a..676de8320 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_39.PNG.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_39.PNG.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_40.PNG.meta b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_40.PNG.meta index 77fc2f326..d3f99d9a0 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_40.PNG.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_40.PNG.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_41.PNG.meta b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_41.PNG.meta index 377cc06c7..a89cf87f0 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_41.PNG.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_41.PNG.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_42.PNG.meta b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_42.PNG.meta index 886638182..23c88fb8f 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_42.PNG.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_42.PNG.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_43.PNG.meta b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_43.PNG.meta index 34963ef96..2f2867c0f 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_43.PNG.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_43.PNG.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_44.PNG.meta b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_44.PNG.meta index 251385b02..585c4c4b6 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_44.PNG.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_44.PNG.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_45.PNG.meta b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_45.PNG.meta index 365702241..ef9629215 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_45.PNG.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_45.PNG.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_46.PNG.meta b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_46.PNG.meta index 1a514ce3c..7169ffe5d 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_46.PNG.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_46.PNG.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_47.PNG.meta b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_47.PNG.meta index 703d7cd3a..8b5a205f8 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_47.PNG.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_47.PNG.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_48.PNG.meta b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_48.PNG.meta index 8dd6f393f..40ba73473 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_48.PNG.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_48.PNG.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_49.PNG.meta b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_49.PNG.meta index 2bda326e2..293863da8 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_49.PNG.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_49.PNG.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_50.PNG.meta b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_50.PNG.meta index 38b1f9b29..83d68185f 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_50.PNG.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_50.PNG.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_51.PNG.meta b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_51.PNG.meta index 509bc21c5..99d5f295f 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_51.PNG.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_51.PNG.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_52.PNG.meta b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_52.PNG.meta index 8cebb7ad4..3bafa2bd3 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_52.PNG.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_52.PNG.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_53.PNG.meta b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_53.PNG.meta index 5648437cc..82df2a5fd 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_53.PNG.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_53.PNG.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_54.PNG.meta b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_54.PNG.meta index 0bb47b6b4..0ee51b338 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_54.PNG.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_54.PNG.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_55.PNG.meta b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_55.PNG.meta index 25096d1d0..f78d4b631 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_55.PNG.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_55.PNG.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_56.PNG.meta b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_56.PNG.meta index 547150993..ccec273f9 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_56.PNG.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_56.PNG.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_57.PNG.meta b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_57.PNG.meta index 33f625030..8243533c5 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_57.PNG.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_57.PNG.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_58.PNG.meta b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_58.PNG.meta index 6ed9169b7..263553112 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_58.PNG.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_58.PNG.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_59.PNG.meta b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_59.PNG.meta index 4110d72bc..62505724b 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_59.PNG.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_59.PNG.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_60.PNG.meta b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_60.PNG.meta index 1f5f5c35b..8aba2a710 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_60.PNG.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_60.PNG.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_61.PNG.meta b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_61.PNG.meta index 100f26189..3daf1ba9b 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_61.PNG.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_61.PNG.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_62.PNG.meta b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_62.PNG.meta index 2e528257a..834bb5cc7 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_62.PNG.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_62.PNG.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_63.PNG.meta b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_63.PNG.meta index c091c7381..2f7a7321a 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_63.PNG.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_63.PNG.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_64.PNG.meta b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_64.PNG.meta index 429a17b13..bcd87c667 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_64.PNG.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_64.PNG.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_65.PNG.meta b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_65.PNG.meta index 1063b74b6..680cf8eb7 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_65.PNG.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_65.PNG.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_66.PNG.meta b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_66.PNG.meta index 1b1368f8d..b27c45480 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_66.PNG.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_66.PNG.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_67.PNG.meta b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_67.PNG.meta index ffa5a02b9..89b1a10ed 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_67.PNG.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_67.PNG.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_68.PNG.meta b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_68.PNG.meta index b50294dbb..15bf61b72 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_68.PNG.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_68.PNG.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_69.PNG.meta b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_69.PNG.meta index 9966577f5..b28b88bad 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_69.PNG.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_69.PNG.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_70.PNG.meta b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_70.PNG.meta index 20d5624e0..c0e571d9f 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_70.PNG.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_70.PNG.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_71.PNG.meta b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_71.PNG.meta index a5e6d32d3..de359737e 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_71.PNG.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_71.PNG.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_72.PNG.meta b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_72.PNG.meta index e1a465324..2df40096b 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_72.PNG.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_72.PNG.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_73.PNG.meta b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_73.PNG.meta index d2969adf9..c358bb12b 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_73.PNG.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_73.PNG.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_74.PNG.meta b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_74.PNG.meta index 1ee43a5b5..6dddcd5b0 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_74.PNG.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_74.PNG.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_75.PNG.meta b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_75.PNG.meta index 123288fff..0c724c492 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_75.PNG.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_75.PNG.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_76.PNG.meta b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_76.PNG.meta index 2cff0f400..c208566aa 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_76.PNG.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_76.PNG.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_77.PNG.meta b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_77.PNG.meta index 641923448..0bd13aeae 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_77.PNG.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_77.PNG.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_78.PNG.meta b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_78.PNG.meta index 918b0f0fd..30aead035 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_78.PNG.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_78.PNG.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_79.PNG.meta b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_79.PNG.meta index 24207f334..97ad0d38b 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_79.PNG.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_79.PNG.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_80.PNG.meta b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_80.PNG.meta index 137c4ae25..3a40dd7e6 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_80.PNG.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_80.PNG.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_81.PNG.meta b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_81.PNG.meta index 3cbdf2bc4..e2d2c0157 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_81.PNG.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_81.PNG.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_82.PNG.meta b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_82.PNG.meta index f564dcad6..45a5ee777 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_82.PNG.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_82.PNG.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_83.PNG.meta b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_83.PNG.meta index c56426d67..3a55e6f22 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_83.PNG.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_83.PNG.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_84.PNG.meta b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_84.PNG.meta index 7e7a2662a..713b89cdc 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_84.PNG.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_84.PNG.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_85.PNG.meta b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_85.PNG.meta index 3f3e87a78..53d4f4281 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_85.PNG.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_85.PNG.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_86.PNG.meta b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_86.PNG.meta index 121daa975..2497ebd4b 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_86.PNG.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_86.PNG.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_87.PNG.meta b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_87.PNG.meta index c95e2e8c6..1a6c15096 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_87.PNG.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_87.PNG.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_88.PNG.meta b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_88.PNG.meta index bf8876390..1638bf8b5 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_88.PNG.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_88.PNG.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_89.PNG.meta b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_89.PNG.meta index 9fe31d9d0..521ff3139 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_89.PNG.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_89.PNG.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_90.PNG.meta b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_90.PNG.meta index a2f888b08..f5b12895e 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_90.PNG.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_90.PNG.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_91.PNG.meta b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_91.PNG.meta index 312cd9ac8..c0158e98c 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_91.PNG.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_91.PNG.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_92.PNG.meta b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_92.PNG.meta index 67f8c5603..f274a1a2d 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_92.PNG.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_92.PNG.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_93.PNG.meta b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_93.PNG.meta index 222d17e4a..ff6b2f56b 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_93.PNG.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_93.PNG.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_94.PNG.meta b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_94.PNG.meta index 419f880bf..016d5a274 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_94.PNG.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_94.PNG.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_95.PNG.meta b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_95.PNG.meta index 103c239ee..bec4f8199 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_95.PNG.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_95.PNG.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_96.PNG.meta b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_96.PNG.meta index 1f4f1eee0..dfe0df405 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_96.PNG.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_96.PNG.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_97.PNG.meta b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_97.PNG.meta index b91fcd492..4b994febf 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_97.PNG.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_97.PNG.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_98.PNG.meta b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_98.PNG.meta index dc9b35284..a46d2fdc3 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_98.PNG.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_98.PNG.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_99.PNG.meta b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_99.PNG.meta index d613705cc..fb742688d 100644 --- a/Assets/Resources/Sprites/Icons/Tech/Tex_skill_99.PNG.meta +++ b/Assets/Resources/Sprites/Icons/Tech/Tex_skill_99.PNG.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/ballistic.png.meta b/Assets/Resources/Sprites/Icons/Tech/ballistic.png.meta index 82bd1e002..7ccaac9dc 100644 --- a/Assets/Resources/Sprites/Icons/Tech/ballistic.png.meta +++ b/Assets/Resources/Sprites/Icons/Tech/ballistic.png.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/chevron-truncated.png.meta b/Assets/Resources/Sprites/Icons/Tech/chevron-truncated.png.meta index 8ee409257..1b23677cd 100644 --- a/Assets/Resources/Sprites/Icons/Tech/chevron-truncated.png.meta +++ b/Assets/Resources/Sprites/Icons/Tech/chevron-truncated.png.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/compoundObject.png.meta b/Assets/Resources/Sprites/Icons/Tech/compoundObject.png.meta index f09ebe651..837e71f04 100644 --- a/Assets/Resources/Sprites/Icons/Tech/compoundObject.png.meta +++ b/Assets/Resources/Sprites/Icons/Tech/compoundObject.png.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/fighter.png.meta b/Assets/Resources/Sprites/Icons/Tech/fighter.png.meta index 23f3d886d..d2a006347 100644 --- a/Assets/Resources/Sprites/Icons/Tech/fighter.png.meta +++ b/Assets/Resources/Sprites/Icons/Tech/fighter.png.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/final missile.png.meta b/Assets/Resources/Sprites/Icons/Tech/final missile.png.meta index be1866168..3bdf8c5c1 100644 --- a/Assets/Resources/Sprites/Icons/Tech/final missile.png.meta +++ b/Assets/Resources/Sprites/Icons/Tech/final missile.png.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/invisible.png.meta b/Assets/Resources/Sprites/Icons/Tech/invisible.png.meta index b4c5c02e8..590b19b3e 100644 --- a/Assets/Resources/Sprites/Icons/Tech/invisible.png.meta +++ b/Assets/Resources/Sprites/Icons/Tech/invisible.png.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/meteor.png.meta b/Assets/Resources/Sprites/Icons/Tech/meteor.png.meta index b4d35780d..b79b132da 100644 --- a/Assets/Resources/Sprites/Icons/Tech/meteor.png.meta +++ b/Assets/Resources/Sprites/Icons/Tech/meteor.png.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/mini missile.png.meta b/Assets/Resources/Sprites/Icons/Tech/mini missile.png.meta index c3b75cb2a..9441c6ea9 100644 --- a/Assets/Resources/Sprites/Icons/Tech/mini missile.png.meta +++ b/Assets/Resources/Sprites/Icons/Tech/mini missile.png.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/satellite.png.meta b/Assets/Resources/Sprites/Icons/Tech/satellite.png.meta index 1a8db6a19..9e06240df 100644 --- a/Assets/Resources/Sprites/Icons/Tech/satellite.png.meta +++ b/Assets/Resources/Sprites/Icons/Tech/satellite.png.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/storm.png.meta b/Assets/Resources/Sprites/Icons/Tech/storm.png.meta index 8f769d8da..17de354db 100644 --- a/Assets/Resources/Sprites/Icons/Tech/storm.png.meta +++ b/Assets/Resources/Sprites/Icons/Tech/storm.png.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/technical thinking.png.meta b/Assets/Resources/Sprites/Icons/Tech/technical thinking.png.meta index 35f2eed2a..b69c70f5a 100644 --- a/Assets/Resources/Sprites/Icons/Tech/technical thinking.png.meta +++ b/Assets/Resources/Sprites/Icons/Tech/technical thinking.png.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/tools3.png.meta b/Assets/Resources/Sprites/Icons/Tech/tools3.png.meta index 70b83a4ba..129036c29 100644 --- a/Assets/Resources/Sprites/Icons/Tech/tools3.png.meta +++ b/Assets/Resources/Sprites/Icons/Tech/tools3.png.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/Tech/wing1.png.meta b/Assets/Resources/Sprites/Icons/Tech/wing1.png.meta index d8c0d0d91..27011e1de 100644 --- a/Assets/Resources/Sprites/Icons/Tech/wing1.png.meta +++ b/Assets/Resources/Sprites/Icons/Tech/wing1.png.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -55,6 +55,8 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 @@ -63,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -75,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 32 + maxTextureSize: 64 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/Sprites/Icons/shift.png b/Assets/Resources/Sprites/Icons/shift.png new file mode 100644 index 000000000..ae7be0d3c --- /dev/null +++ b/Assets/Resources/Sprites/Icons/shift.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cff2ffe6001d402ea7cdb7b8b1eac216bb38a6034e3487c9a2825d05c1c99d2d +size 13270 diff --git a/Assets/Resources/Sprites/Icons/shift.png.meta b/Assets/Resources/Sprites/Icons/shift.png.meta new file mode 100644 index 000000000..25dd2a25b --- /dev/null +++ b/Assets/Resources/Sprites/Icons/shift.png.meta @@ -0,0 +1,108 @@ +fileFormatVersion: 2 +guid: 6a42d073009184c4f9bd47c2d4e8d1f7 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: -1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 64 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 64 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Sprites/white.png b/Assets/Resources/Sprites/white.png new file mode 100644 index 000000000..f90e7946b --- /dev/null +++ b/Assets/Resources/Sprites/white.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:63cb99ad2b5ddbd6044f1df437cdb5be8eed70e85358b540750937f31cc01f87 +size 81 diff --git a/Assets/Resources/Sprites/white.png.meta b/Assets/Resources/Sprites/white.png.meta new file mode 100644 index 000000000..36577b4fb --- /dev/null +++ b/Assets/Resources/Sprites/white.png.meta @@ -0,0 +1,108 @@ +fileFormatVersion: 2 +guid: f0c4d03b3421b2e41bb247df6a85c88e +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: -1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scenes/ARPG.unity b/Assets/Scenes/ARPG.unity index c5001857d..c79ceede9 100644 --- a/Assets/Scenes/ARPG.unity +++ b/Assets/Scenes/ARPG.unity @@ -1087,43 +1087,6 @@ RectTransform: m_AnchoredPosition: {x: -0.000015258789, y: -40} m_SizeDelta: {x: 0, y: 12} m_Pivot: {x: 0.5, y: 1} ---- !u!1 &111335746 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 111335747} - m_Layer: 5 - m_Name: Group 1 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &111335747 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 111335746} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 1454158446} - - {fileID: 2011788089} - m_Father: {fileID: 1564656281} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 0.00010681152, y: 0} - m_SizeDelta: {x: 14, y: 0} - m_Pivot: {x: 0, y: 0.5} --- !u!1 &121030072 GameObject: m_ObjectHideFlags: 0 @@ -1505,102 +1468,6 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 126433269} m_CullTransparentMesh: 0 ---- !u!1 &133322211 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 133322212} - - component: {fileID: 133322215} - - component: {fileID: 133322214} - - component: {fileID: 133322213} - m_Layer: 5 - m_Name: Background - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &133322212 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 133322211} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 1399423350} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: -1.5, y: 0} - m_SizeDelta: {x: 3, y: 10} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &133322213 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 133322211} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} - m_Name: - m_EditorClassIdentifier: - m_IgnoreLayout: 1 - m_MinWidth: -1 - m_MinHeight: -1 - m_PreferredWidth: -1 - m_PreferredHeight: -1 - m_FlexibleWidth: -1 - m_FlexibleHeight: -1 - m_LayoutPriority: 1 ---- !u!114 &133322214 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 133322211} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 2100000, guid: 0f1ddbd2b64ea724c81430875def275d, type: 2} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 4f0cb39a28e35cb439bcc9df886c3623, type: 3} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 4 ---- !u!222 &133322215 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 133322211} - m_CullTransparentMesh: 0 --- !u!1 &134113270 GameObject: m_ObjectHideFlags: 0 @@ -2581,276 +2448,6 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 205462982} m_CullTransparentMesh: 0 ---- !u!1 &206010631 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 206010632} - - component: {fileID: 206010634} - - component: {fileID: 206010633} - m_Layer: 5 - m_Name: Text (TMP) - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &206010632 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 206010631} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 840997852} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &206010633 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 206010631} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: '4 - -' - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: 3fb7d873bb5a7944bb9a7c73c430c44b, type: 2} - m_sharedMaterial: {fileID: 2100000, guid: b9d2f6c9804cec1489502dcc1c19ec54, type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, a: 1} - m_enableVertexGradient: 0 - m_colorMode: 3 - m_fontColorGradient: - topLeft: {r: 1, g: 1, b: 1, a: 1} - topRight: {r: 1, g: 1, b: 1, a: 1} - bottomLeft: {r: 1, g: 1, b: 1, a: 1} - bottomRight: {r: 1, g: 1, b: 1, a: 1} - m_fontColorGradientPreset: {fileID: 0} - m_spriteAsset: {fileID: 0} - m_tintAllSprites: 0 - m_StyleSheet: {fileID: 0} - m_TextStyleHashCode: -1183493901 - m_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_fontSize: 10 - m_fontSizeBase: 10 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_HorizontalAlignment: 2 - m_VerticalAlignment: 512 - m_textAlignment: 65535 - m_characterSpacing: 0 - m_wordSpacing: 0 - m_lineSpacing: 0 - m_lineSpacingMax: 0 - m_paragraphSpacing: 0 - m_charWidthMaxAdj: 0 - m_enableWordWrapping: 1 - m_wordWrappingRatios: 0.4 - m_overflowMode: 0 - m_linkedTextComponent: {fileID: 0} - parentLinkedComponent: {fileID: 0} - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_IsTextObjectScaleStatic: 0 - m_VertexBufferAutoSizeReduction: 1 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_hasFontAssetChanged: 0 - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!222 &206010634 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 206010631} - m_CullTransparentMesh: 0 ---- !u!1 &206030074 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 206030075} - - component: {fileID: 206030077} - - component: {fileID: 206030076} - m_Layer: 5 - m_Name: Text (TMP) - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &206030075 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 206030074} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 594274406} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &206030076 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 206030074} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: 2 - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: 3fb7d873bb5a7944bb9a7c73c430c44b, type: 2} - m_sharedMaterial: {fileID: 2100000, guid: b9d2f6c9804cec1489502dcc1c19ec54, type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, a: 1} - m_enableVertexGradient: 0 - m_colorMode: 3 - m_fontColorGradient: - topLeft: {r: 1, g: 1, b: 1, a: 1} - topRight: {r: 1, g: 1, b: 1, a: 1} - bottomLeft: {r: 1, g: 1, b: 1, a: 1} - bottomRight: {r: 1, g: 1, b: 1, a: 1} - m_fontColorGradientPreset: {fileID: 0} - m_spriteAsset: {fileID: 0} - m_tintAllSprites: 0 - m_StyleSheet: {fileID: 0} - m_TextStyleHashCode: -1183493901 - m_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_fontSize: 10 - m_fontSizeBase: 10 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_HorizontalAlignment: 2 - m_VerticalAlignment: 512 - m_textAlignment: 65535 - m_characterSpacing: 0 - m_wordSpacing: 0 - m_lineSpacing: 0 - m_lineSpacingMax: 0 - m_paragraphSpacing: 0 - m_charWidthMaxAdj: 0 - m_enableWordWrapping: 1 - m_wordWrappingRatios: 0.4 - m_overflowMode: 0 - m_linkedTextComponent: {fileID: 0} - parentLinkedComponent: {fileID: 0} - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_IsTextObjectScaleStatic: 0 - m_VertexBufferAutoSizeReduction: 1 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_hasFontAssetChanged: 0 - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!222 &206030077 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 206030074} - m_CullTransparentMesh: 0 --- !u!1 &212527382 GameObject: m_ObjectHideFlags: 0 @@ -5206,6 +4803,68 @@ Transform: m_Father: {fileID: 1511875452} m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &393961847 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 393961848} + - component: {fileID: 393961849} + m_Layer: 5 + m_Name: Action Bar + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &393961848 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 393961847} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 761574181} + m_RootOrder: 10 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0} + m_AnchorMax: {x: 0.5, y: 0} + m_AnchoredPosition: {x: 0, y: 16} + m_SizeDelta: {x: 1000, y: 64} + m_Pivot: {x: 0.5, y: 0} +--- !u!114 &393961849 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 393961847} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 4 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 1 + m_ChildControlHeight: 1 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 --- !u!1 &394213709 GameObject: m_ObjectHideFlags: 0 @@ -5691,7 +5350,7 @@ MonoBehaviour: m_EditorClassIdentifier: Settings: {fileID: 11400000, guid: cd2344e2001a37544aab0960c164d4ff, type: 2} ListElementPrototype: {fileID: 1462704895} - TriggerGroupPrototype: {fileID: 1564656282} + TriggerGroupPrototype: {fileID: 0} HeaderElementEnabledColor: {r: 0, g: 0, b: 0, a: 0} HeaderElementDisabledColor: {r: 0, g: 0, b: 0, a: 0} OverrideIcon: {fileID: 0} @@ -5699,7 +5358,6 @@ MonoBehaviour: ShieldIcon: {fileID: 0} HeatsinkBackground: {fileID: 0} AetherDriveUi: {fileID: 0} - AetherDriveUiSpacer: {fileID: 0} EnergyLabel: {fileID: 0} CockpitTemperatureLabel: {fileID: 0} RadiatorTemperatureLabel: {fileID: 0} @@ -5720,10 +5378,6 @@ MonoBehaviour: ForwardRPMFill: {fileID: 0} StrafeRPMFill: {fileID: 0} TurnRPMFill: {fileID: 0} - TriggerGroups: {fileID: 1399423353} - TriggerGroupsFadeDuration: 0.5 - TriggerGroupsPersistDuration: 5 - TriggerGroupColor: {r: 0.75, g: 0.75, b: 1, a: 0.050980393} --- !u!114 &410701130 MonoBehaviour: m_ObjectHideFlags: 0 @@ -9618,43 +9272,6 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 3d7c7b928d043a3449b93bce9de03d1c, type: 3} m_Name: m_EditorClassIdentifier: ---- !u!1 &594274405 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 594274406} - m_Layer: 5 - m_Name: Group 2 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &594274406 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 594274405} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 1821203004} - - {fileID: 206030075} - m_Father: {fileID: 1564656281} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 16, y: 0} - m_SizeDelta: {x: 14, y: 0} - m_Pivot: {x: 0, y: 0.5} --- !u!1 &608624598 GameObject: m_ObjectHideFlags: 0 @@ -10728,140 +10345,6 @@ Transform: m_Father: {fileID: 0} m_RootOrder: 7 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &677710706 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 677710707} - - component: {fileID: 677710709} - - component: {fileID: 677710708} - m_Layer: 5 - m_Name: Text (TMP) - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &677710707 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 677710706} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 690981292} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &677710708 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 677710706} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: 5 - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: 3fb7d873bb5a7944bb9a7c73c430c44b, type: 2} - m_sharedMaterial: {fileID: 2100000, guid: b9d2f6c9804cec1489502dcc1c19ec54, type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, a: 1} - m_enableVertexGradient: 0 - m_colorMode: 3 - m_fontColorGradient: - topLeft: {r: 1, g: 1, b: 1, a: 1} - topRight: {r: 1, g: 1, b: 1, a: 1} - bottomLeft: {r: 1, g: 1, b: 1, a: 1} - bottomRight: {r: 1, g: 1, b: 1, a: 1} - m_fontColorGradientPreset: {fileID: 0} - m_spriteAsset: {fileID: 0} - m_tintAllSprites: 0 - m_StyleSheet: {fileID: 0} - m_TextStyleHashCode: -1183493901 - m_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_fontSize: 10 - m_fontSizeBase: 10 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_HorizontalAlignment: 2 - m_VerticalAlignment: 512 - m_textAlignment: 65535 - m_characterSpacing: 0 - m_wordSpacing: 0 - m_lineSpacing: 0 - m_lineSpacingMax: 0 - m_paragraphSpacing: 0 - m_charWidthMaxAdj: 0 - m_enableWordWrapping: 1 - m_wordWrappingRatios: 0.4 - m_overflowMode: 0 - m_linkedTextComponent: {fileID: 0} - parentLinkedComponent: {fileID: 0} - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_IsTextObjectScaleStatic: 0 - m_VertexBufferAutoSizeReduction: 1 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_hasFontAssetChanged: 0 - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!222 &677710709 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 677710706} - m_CullTransparentMesh: 0 --- !u!1 &677960091 GameObject: m_ObjectHideFlags: 0 @@ -10943,43 +10426,6 @@ MeshFilter: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 677960091} m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} ---- !u!1 &690981291 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 690981292} - m_Layer: 5 - m_Name: Group 5 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &690981292 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 690981291} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 2060887866} - - {fileID: 677710707} - m_Father: {fileID: 1564656281} - m_RootOrder: 4 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 64, y: 0} - m_SizeDelta: {x: 14, y: 0} - m_Pivot: {x: 0, y: 0.5} --- !u!1 &691045496 GameObject: m_ObjectHideFlags: 0 @@ -11575,7 +11021,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 29.5, y: -0} + m_AnchoredPosition: {x: 29.5, y: 0} m_SizeDelta: {x: 59, y: 14} m_Pivot: {x: 0.5, y: 1} --- !u!114 &723697982 @@ -11718,81 +11164,6 @@ Transform: m_Father: {fileID: 415301831} m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &737569921 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 737569922} - - component: {fileID: 737569924} - - component: {fileID: 737569923} - m_Layer: 5 - m_Name: Image - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &737569922 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 737569921} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 2139956860} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &737569923 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 737569921} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.7529412, g: 0.7529412, b: 1, a: 0.101960786} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 2 ---- !u!222 &737569924 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 737569921} - m_CullTransparentMesh: 0 --- !u!1 &738229275 GameObject: m_ObjectHideFlags: 0 @@ -12342,6 +11713,7 @@ RectTransform: - {fileID: 178733680} - {fileID: 472507698} - {fileID: 1723136546} + - {fileID: 393961848} m_Father: {fileID: 0} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -12499,71 +11871,6 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 776416423} m_CullTransparentMesh: 1 ---- !u!1 &779460299 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 779460300} - - component: {fileID: 779460301} - m_Layer: 5 - m_Name: Weapon Groups Container - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &779460300 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 779460299} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 964827173} - - {fileID: 1376734759} - - {fileID: 1399423350} - m_Father: {fileID: 1558520822} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 1, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 129, y: 0} - m_Pivot: {x: 1, y: 1} ---- !u!114 &779460301 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 779460299} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Padding: - m_Left: 0 - m_Right: 0 - m_Top: 0 - m_Bottom: 0 - m_ChildAlignment: 0 - m_Spacing: 0 - m_ChildForceExpandWidth: 1 - m_ChildForceExpandHeight: 0 - m_ChildControlWidth: 1 - m_ChildControlHeight: 1 - m_ChildScaleWidth: 0 - m_ChildScaleHeight: 0 - m_ReverseArrangement: 0 --- !u!1 &783543864 GameObject: m_ObjectHideFlags: 0 @@ -13485,43 +12792,6 @@ MonoBehaviour: blendDistance: 0 weight: 0 priority: 2 ---- !u!1 &840997851 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 840997852} - m_Layer: 5 - m_Name: Group 4 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &840997852 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 840997851} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 2030710204} - - {fileID: 206010632} - m_Father: {fileID: 1564656281} - m_RootOrder: 3 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 48, y: 0} - m_SizeDelta: {x: 14, y: 0} - m_Pivot: {x: 0, y: 0.5} --- !u!114 &843760693 stripped MonoBehaviour: m_CorrespondingSourceObject: {fileID: 3501282941175030939, guid: 2758dfa2744d7ad4d8877545189d116e, @@ -15431,62 +14701,6 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 2da0c512f12947e489f739169773d7ca, type: 3} m_Name: m_EditorClassIdentifier: ---- !u!1 &964827172 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 964827173} - - component: {fileID: 964827174} - m_Layer: 5 - m_Name: Spacer - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &964827173 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 964827172} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 779460300} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 64.5, y: -28} - m_SizeDelta: {x: 129, y: 56} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &964827174 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 964827172} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} - m_Name: - m_EditorClassIdentifier: - m_IgnoreLayout: 0 - m_MinWidth: -1 - m_MinHeight: -1 - m_PreferredWidth: -1 - m_PreferredHeight: 56 - m_FlexibleWidth: -1 - m_FlexibleHeight: -1 - m_LayoutPriority: 1 --- !u!1 &970624069 GameObject: m_ObjectHideFlags: 0 @@ -16172,6 +15386,12 @@ MonoBehaviour: HypothermiaPP: {fileID: 1800086610} SevereHeatstrokePP: {fileID: 837424435} SevereHypothermiaPP: {fileID: 694183021} + ShiftIcon: {fileID: 21300000, guid: 6a42d073009184c4f9bd47c2d4e8d1f7, type: 3} + MouseLeftIcon: {fileID: 21300000, guid: a308a6cbccf9c9b4fa444a974e7968df, type: 3} + MouseMiddleIcon: {fileID: 21300000, guid: 188698480e3264043842e31a1d7b26ab, type: 3} + ActionBar: {fileID: 393961848} + ActionBarSlot: {fileID: 8334150340270499366, guid: bfce34a0acbaa454e97a700e1875357e, + type: 3} EffectManagerParent: {fileID: 134113271} TradeMenu: {fileID: 522642869} HostileTargetIndicator: {fileID: 1787772783} @@ -16201,8 +15421,8 @@ MonoBehaviour: ShipPanel: {fileID: 7628189704109037582} TargetShipPanel: {fileID: 410701133} Dialog: {fileID: 620555924} - Context: {fileID: 0} - Dropdown: {fileID: 0} + Context: {fileID: 1157981993} + Dropdown: {fileID: 178733681} IntroDuration: 10 --- !u!4 &1009503730 Transform: @@ -20359,196 +19579,6 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1367229140} m_CullTransparentMesh: 0 ---- !u!1 &1376734758 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1376734759} - - component: {fileID: 1376734760} - m_Layer: 5 - m_Name: RPM Spacer - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1376734759 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1376734758} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 779460300} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 64.5, y: -64} - m_SizeDelta: {x: 129, y: 16} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1376734760 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1376734758} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} - m_Name: - m_EditorClassIdentifier: - m_IgnoreLayout: 0 - m_MinWidth: -1 - m_MinHeight: -1 - m_PreferredWidth: -1 - m_PreferredHeight: 16 - m_FlexibleWidth: -1 - m_FlexibleHeight: -1 - m_LayoutPriority: 1 ---- !u!1 &1378019500 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1378019501} - - component: {fileID: 1378019503} - - component: {fileID: 1378019502} - m_Layer: 5 - m_Name: Text (TMP) - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1378019501 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1378019500} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 2141248069} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1378019502 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1378019500} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: 6 - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: 3fb7d873bb5a7944bb9a7c73c430c44b, type: 2} - m_sharedMaterial: {fileID: 2100000, guid: b9d2f6c9804cec1489502dcc1c19ec54, type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, a: 1} - m_enableVertexGradient: 0 - m_colorMode: 3 - m_fontColorGradient: - topLeft: {r: 1, g: 1, b: 1, a: 1} - topRight: {r: 1, g: 1, b: 1, a: 1} - bottomLeft: {r: 1, g: 1, b: 1, a: 1} - bottomRight: {r: 1, g: 1, b: 1, a: 1} - m_fontColorGradientPreset: {fileID: 0} - m_spriteAsset: {fileID: 0} - m_tintAllSprites: 0 - m_StyleSheet: {fileID: 0} - m_TextStyleHashCode: -1183493901 - m_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_fontSize: 10 - m_fontSizeBase: 10 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_HorizontalAlignment: 2 - m_VerticalAlignment: 512 - m_textAlignment: 65535 - m_characterSpacing: 0 - m_wordSpacing: 0 - m_lineSpacing: 0 - m_lineSpacingMax: 0 - m_paragraphSpacing: 0 - m_charWidthMaxAdj: 0 - m_enableWordWrapping: 1 - m_wordWrappingRatios: 0.4 - m_overflowMode: 0 - m_linkedTextComponent: {fileID: 0} - parentLinkedComponent: {fileID: 0} - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_IsTextObjectScaleStatic: 0 - m_VertexBufferAutoSizeReduction: 1 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_hasFontAssetChanged: 0 - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!222 &1378019503 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1378019500} - m_CullTransparentMesh: 0 --- !u!1 &1390575962 GameObject: m_ObjectHideFlags: 0 @@ -21053,83 +20083,6 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1399108417} m_CullTransparentMesh: 0 ---- !u!1 &1399423349 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1399423350} - - component: {fileID: 1399423352} - - component: {fileID: 1399423353} - m_Layer: 5 - m_Name: Weapon Groups - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1399423350 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1399423349} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 133322212} - - {fileID: 1564656281} - m_Father: {fileID: 779460300} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 0, y: -72} - m_SizeDelta: {x: 129, y: 18} - m_Pivot: {x: 0, y: 1} ---- !u!114 &1399423352 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1399423349} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Padding: - m_Left: 0 - m_Right: 1 - m_Top: 0 - m_Bottom: 0 - m_ChildAlignment: 0 - m_Spacing: 2 - m_ChildForceExpandWidth: 1 - m_ChildForceExpandHeight: 0 - m_ChildControlWidth: 1 - m_ChildControlHeight: 1 - m_ChildScaleWidth: 0 - m_ChildScaleHeight: 0 - m_ReverseArrangement: 0 ---- !u!225 &1399423353 -CanvasGroup: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1399423349} - m_Enabled: 1 - m_Alpha: 1 - m_Interactable: 1 - m_BlocksRaycasts: 1 - m_IgnoreParentGroups: 0 --- !u!1 &1404901904 GameObject: m_ObjectHideFlags: 0 @@ -21541,81 +20494,6 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1440873101} m_CullTransparentMesh: 0 ---- !u!1 &1454158445 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1454158446} - - component: {fileID: 1454158448} - - component: {fileID: 1454158447} - m_Layer: 5 - m_Name: Image - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1454158446 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1454158445} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 111335747} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1454158447 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1454158445} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.7529412, g: 0.7529412, b: 1, a: 0.2} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 2 ---- !u!222 &1454158448 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1454158445} - m_CullTransparentMesh: 0 --- !u!1 &1459626059 GameObject: m_ObjectHideFlags: 0 @@ -22645,140 +21523,6 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 1281fe44325f9b548aa42dc331b17266, type: 3} m_Name: m_EditorClassIdentifier: ---- !u!1 &1523113324 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1523113325} - - component: {fileID: 1523113327} - - component: {fileID: 1523113326} - m_Layer: 5 - m_Name: Text (TMP) - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1523113325 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1523113324} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 2139956860} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1523113326 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1523113324} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: 3 - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: 3fb7d873bb5a7944bb9a7c73c430c44b, type: 2} - m_sharedMaterial: {fileID: 2100000, guid: b9d2f6c9804cec1489502dcc1c19ec54, type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, a: 1} - m_enableVertexGradient: 0 - m_colorMode: 3 - m_fontColorGradient: - topLeft: {r: 1, g: 1, b: 1, a: 1} - topRight: {r: 1, g: 1, b: 1, a: 1} - bottomLeft: {r: 1, g: 1, b: 1, a: 1} - bottomRight: {r: 1, g: 1, b: 1, a: 1} - m_fontColorGradientPreset: {fileID: 0} - m_spriteAsset: {fileID: 0} - m_tintAllSprites: 0 - m_StyleSheet: {fileID: 0} - m_TextStyleHashCode: -1183493901 - m_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_fontSize: 10 - m_fontSizeBase: 10 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_HorizontalAlignment: 2 - m_VerticalAlignment: 512 - m_textAlignment: 65535 - m_characterSpacing: 0 - m_wordSpacing: 0 - m_lineSpacing: 0 - m_lineSpacingMax: 0 - m_paragraphSpacing: 0 - m_charWidthMaxAdj: 0 - m_enableWordWrapping: 1 - m_wordWrappingRatios: 0.4 - m_overflowMode: 0 - m_linkedTextComponent: {fileID: 0} - parentLinkedComponent: {fileID: 0} - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_IsTextObjectScaleStatic: 0 - m_VertexBufferAutoSizeReduction: 1 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_hasFontAssetChanged: 0 - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!222 &1523113327 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1523113324} - m_CullTransparentMesh: 0 --- !u!1 &1529341206 GameObject: m_ObjectHideFlags: 0 @@ -22875,81 +21619,6 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1529341206} m_CullTransparentMesh: 0 ---- !u!1 &1536999404 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1536999405} - - component: {fileID: 1536999407} - - component: {fileID: 1536999406} - m_Layer: 5 - m_Name: Image - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1536999405 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1536999404} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 2141248069} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1536999406 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1536999404} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.7529412, g: 0.7529412, b: 1, a: 0.101960786} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 2 ---- !u!222 &1536999407 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1536999404} - m_CullTransparentMesh: 0 --- !u!1 &1537342001 GameObject: m_ObjectHideFlags: 0 @@ -23274,7 +21943,7 @@ PrefabInstance: - target: {fileID: 878382121558056004, guid: 2758dfa2744d7ad4d8877545189d116e, type: 3} propertyPath: m_AnchoredPosition.x - value: 0 + value: 55.675 objectReference: {fileID: 0} - target: {fileID: 878382121558056004, guid: 2758dfa2744d7ad4d8877545189d116e, type: 3} @@ -23851,7 +22520,6 @@ RectTransform: m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: - - {fileID: 779460300} - {fileID: 7628189704109037581} m_Father: {fileID: 346000247} m_RootOrder: 2 @@ -24026,108 +22694,6 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: m_ShowMaskGraphic: 0 ---- !u!1 &1564656280 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1564656281} - - component: {fileID: 1564656284} - - component: {fileID: 1564656282} - - component: {fileID: 1564656283} - m_Layer: 5 - m_Name: Groups - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1564656281 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1564656280} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 111335747} - - {fileID: 594274406} - - {fileID: 2139956860} - - {fileID: 840997852} - - {fileID: 690981292} - - {fileID: 2141248069} - m_Father: {fileID: 1399423350} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 64, y: -9} - m_SizeDelta: {x: 128, y: 18} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1564656282 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1564656280} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 1281fe44325f9b548aa42dc331b17266, type: 3} - m_Name: - m_EditorClassIdentifier: ---- !u!114 &1564656283 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1564656280} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 8f090c2738224f698bdfa545978f4d5a, type: 3} - m_Name: - m_EditorClassIdentifier: - GroupLabel: - - {fileID: 2011788090} - - {fileID: 206030076} - - {fileID: 1523113326} - - {fileID: 206010633} - - {fileID: 677710708} - - {fileID: 1378019502} - GroupBackgrounds: - - {fileID: 1454158447} - - {fileID: 1821203005} - - {fileID: 737569923} - - {fileID: 2030710205} - - {fileID: 2060887867} - - {fileID: 1536999406} ---- !u!114 &1564656284 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1564656280} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} - m_Name: - m_EditorClassIdentifier: - m_IgnoreLayout: 0 - m_MinWidth: -1 - m_MinHeight: -1 - m_PreferredWidth: -1 - m_PreferredHeight: 18 - m_FlexibleWidth: -1 - m_FlexibleHeight: -1 - m_LayoutPriority: 1 --- !u!1 &1566772336 GameObject: m_ObjectHideFlags: 0 @@ -24577,7 +23143,7 @@ PrefabInstance: - target: {fileID: 878382121558056004, guid: 2758dfa2744d7ad4d8877545189d116e, type: 3} propertyPath: m_AnchoredPosition.x - value: 0 + value: 60.98 objectReference: {fileID: 0} - target: {fileID: 878382121558056004, guid: 2758dfa2744d7ad4d8877545189d116e, type: 3} @@ -27243,81 +25809,6 @@ RectTransform: m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: -20, y: -20} m_Pivot: {x: 0.5, y: 0.5} ---- !u!1 &1821203003 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1821203004} - - component: {fileID: 1821203006} - - component: {fileID: 1821203005} - m_Layer: 5 - m_Name: Image - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1821203004 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1821203003} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 594274406} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1821203005 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1821203003} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.7529412, g: 0.7529412, b: 1, a: 0.101960786} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 2 ---- !u!222 &1821203006 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1821203003} - m_CullTransparentMesh: 0 --- !u!1 &1827661516 GameObject: m_ObjectHideFlags: 0 @@ -29100,215 +27591,6 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1998350928} m_CullTransparentMesh: 1 ---- !u!1 &2011788088 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2011788089} - - component: {fileID: 2011788091} - - component: {fileID: 2011788090} - m_Layer: 5 - m_Name: Text (TMP) - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &2011788089 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2011788088} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 111335747} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &2011788090 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2011788088} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 0 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: 1 - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: 3fb7d873bb5a7944bb9a7c73c430c44b, type: 2} - m_sharedMaterial: {fileID: 2100000, guid: b9d2f6c9804cec1489502dcc1c19ec54, type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, a: 1} - m_enableVertexGradient: 0 - m_colorMode: 3 - m_fontColorGradient: - topLeft: {r: 1, g: 1, b: 1, a: 1} - topRight: {r: 1, g: 1, b: 1, a: 1} - bottomLeft: {r: 1, g: 1, b: 1, a: 1} - bottomRight: {r: 1, g: 1, b: 1, a: 1} - m_fontColorGradientPreset: {fileID: 0} - m_spriteAsset: {fileID: 0} - m_tintAllSprites: 0 - m_StyleSheet: {fileID: 0} - m_TextStyleHashCode: -1183493901 - m_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_fontSize: 10 - m_fontSizeBase: 10 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_HorizontalAlignment: 2 - m_VerticalAlignment: 512 - m_textAlignment: 65535 - m_characterSpacing: 0 - m_wordSpacing: 0 - m_lineSpacing: 0 - m_lineSpacingMax: 0 - m_paragraphSpacing: 0 - m_charWidthMaxAdj: 0 - m_enableWordWrapping: 1 - m_wordWrappingRatios: 0.4 - m_overflowMode: 0 - m_linkedTextComponent: {fileID: 0} - parentLinkedComponent: {fileID: 0} - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_IsTextObjectScaleStatic: 0 - m_VertexBufferAutoSizeReduction: 1 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_hasFontAssetChanged: 0 - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!222 &2011788091 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2011788088} - m_CullTransparentMesh: 0 ---- !u!1 &2030710203 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2030710204} - - component: {fileID: 2030710206} - - component: {fileID: 2030710205} - m_Layer: 5 - m_Name: Image - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &2030710204 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2030710203} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 840997852} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &2030710205 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2030710203} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.7529412, g: 0.7529412, b: 1, a: 0.101960786} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 2 ---- !u!222 &2030710206 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2030710203} - m_CullTransparentMesh: 0 --- !u!1 &2038175534 GameObject: m_ObjectHideFlags: 0 @@ -29687,81 +27969,6 @@ MonoBehaviour: m_FlexibleWidth: -1 m_FlexibleHeight: -1 m_LayoutPriority: 1 ---- !u!1 &2060887865 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2060887866} - - component: {fileID: 2060887868} - - component: {fileID: 2060887867} - m_Layer: 5 - m_Name: Image - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &2060887866 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2060887865} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 690981292} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &2060887867 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2060887865} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.7529412, g: 0.7529412, b: 1, a: 0.101960786} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 2 ---- !u!222 &2060887868 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2060887865} - m_CullTransparentMesh: 0 --- !u!1 &2065828644 GameObject: m_ObjectHideFlags: 0 @@ -31012,80 +29219,6 @@ Transform: m_Father: {fileID: 0} m_RootOrder: 8 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &2139956859 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2139956860} - m_Layer: 5 - m_Name: Group 3 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &2139956860 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2139956859} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 737569922} - - {fileID: 1523113325} - m_Father: {fileID: 1564656281} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 32, y: 0} - m_SizeDelta: {x: 14, y: 0} - m_Pivot: {x: 0, y: 0.5} ---- !u!1 &2141248068 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2141248069} - m_Layer: 5 - m_Name: Group 6 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &2141248069 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2141248068} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 1536999405} - - {fileID: 1378019501} - m_Father: {fileID: 1564656281} - m_RootOrder: 5 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 80, y: 0} - m_SizeDelta: {x: 14, y: 0} - m_Pivot: {x: 0, y: 0.5} --- !u!114 &114477922027825946 MonoBehaviour: m_ObjectHideFlags: 0 @@ -36030,7 +34163,7 @@ RectTransform: - {fileID: 1187424824} - {fileID: 416399495} m_Father: {fileID: 1558520822} - m_RootOrder: 1 + m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0} @@ -36882,7 +35015,7 @@ MonoBehaviour: m_EditorClassIdentifier: Settings: {fileID: 11400000, guid: cd2344e2001a37544aab0960c164d4ff, type: 2} ListElementPrototype: {fileID: 232470599} - TriggerGroupPrototype: {fileID: 1564656282} + TriggerGroupPrototype: {fileID: 0} HeaderElementEnabledColor: {r: 1, g: 1, b: 1, a: 0.078431375} HeaderElementDisabledColor: {r: 1, g: 1, b: 1, a: 0.011764706} OverrideIcon: {fileID: 1576705656} @@ -36890,7 +35023,6 @@ MonoBehaviour: ShieldIcon: {fileID: 19222411} HeatsinkBackground: {fileID: 661332569} AetherDriveUi: {fileID: 1735948311} - AetherDriveUiSpacer: {fileID: 1376734758} EnergyLabel: {fileID: 804489113} CockpitTemperatureLabel: {fileID: 212527384} RadiatorTemperatureLabel: {fileID: 1752418078} @@ -36911,10 +35043,6 @@ MonoBehaviour: ForwardRPMFill: {fileID: 1946192591} StrafeRPMFill: {fileID: 1542388328} TurnRPMFill: {fileID: 1013676408} - TriggerGroups: {fileID: 1399423353} - TriggerGroupsFadeDuration: 0.5 - TriggerGroupsPersistDuration: 5 - TriggerGroupColor: {r: 0.75, g: 0.75, b: 1, a: 0.050980393} --- !u!224 &7628189704657849088 RectTransform: m_ObjectHideFlags: 0 diff --git a/Assets/Scenes/Main Menu.unity b/Assets/Scenes/Main Menu.unity index e535a0f59..d908871f0 100644 --- a/Assets/Scenes/Main Menu.unity +++ b/Assets/Scenes/Main Menu.unity @@ -802,8 +802,8 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 741153267} - m_LocalRotation: {x: 0.01550689, y: 0.9502416, z: -0.3074131, w: 0.047933202} - m_LocalPosition: {x: -117.51997, y: -77.08743, z: 149.09024} + m_LocalRotation: {x: 0.0155069195, y: 0.9502416, z: -0.30741316, w: 0.047933277} + m_LocalPosition: {x: -117.52002, y: -77.087425, z: 149.09026} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: - {fileID: 412917866} @@ -1234,8 +1234,8 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 965376321} - m_LocalRotation: {x: 0.01550689, y: 0.9502416, z: -0.3074131, w: 0.047933202} - m_LocalPosition: {x: -117.51997, y: -77.08743, z: 149.09024} + m_LocalRotation: {x: 0.0155069195, y: 0.9502416, z: -0.30741316, w: 0.047933277} + m_LocalPosition: {x: -117.52002, y: -77.087425, z: 149.09026} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 0} diff --git a/Assets/Scripts/AetheriaInput.cs b/Assets/Scripts/AetheriaInput.cs index 91261f1e4..adfe150c5 100644 --- a/Assets/Scripts/AetheriaInput.cs +++ b/Assets/Scripts/AetheriaInput.cs @@ -34,54 +34,6 @@ public class @AetheriaInput : IInputActionCollection, IDisposable ""processors"": """", ""interactions"": """" }, - { - ""name"": ""Fire Group 1"", - ""type"": ""Button"", - ""id"": ""575943b0-4866-4be0-a289-3253973523b1"", - ""expectedControlType"": ""Button"", - ""processors"": """", - ""interactions"": """" - }, - { - ""name"": ""Fire Group 2"", - ""type"": ""Button"", - ""id"": ""b9bdfa1f-db61-4ec3-883a-fc3f9e88c5f5"", - ""expectedControlType"": ""Button"", - ""processors"": """", - ""interactions"": """" - }, - { - ""name"": ""Fire Group 3"", - ""type"": ""Button"", - ""id"": ""d79871a2-8565-4cf3-809f-9c979adfcd81"", - ""expectedControlType"": ""Button"", - ""processors"": """", - ""interactions"": """" - }, - { - ""name"": ""Fire Group 4"", - ""type"": ""Button"", - ""id"": ""59902e9e-1dfb-4624-9599-72ff763ef327"", - ""expectedControlType"": ""Button"", - ""processors"": """", - ""interactions"": """" - }, - { - ""name"": ""Fire Group 5"", - ""type"": ""Button"", - ""id"": ""80b549c1-7378-48c5-8da2-ce95b9c92913"", - ""expectedControlType"": ""Button"", - ""processors"": """", - ""interactions"": """" - }, - { - ""name"": ""Fire Group 6"", - ""type"": ""Button"", - ""id"": ""4ba5091e-051a-41df-9985-6c0e082b20a5"", - ""expectedControlType"": ""Button"", - ""processors"": """", - ""interactions"": """" - }, { ""name"": ""Minimap Zoom"", ""type"": ""Button"", @@ -90,46 +42,6 @@ public class @AetheriaInput : IInputActionCollection, IDisposable ""processors"": """", ""interactions"": """" }, - { - ""name"": ""Next Weapon Group"", - ""type"": ""Button"", - ""id"": ""8ed69fe0-d934-44ea-94c0-d5d69cc33b32"", - ""expectedControlType"": ""Button"", - ""processors"": """", - ""interactions"": """" - }, - { - ""name"": ""Previous Weapon Group"", - ""type"": ""Button"", - ""id"": ""93f19768-6c19-4bab-8b53-4e3e5ba764fc"", - ""expectedControlType"": ""Button"", - ""processors"": """", - ""interactions"": """" - }, - { - ""name"": ""Next Weapon"", - ""type"": ""Button"", - ""id"": ""09a5e315-6290-4ab5-9e7c-55b7523562b7"", - ""expectedControlType"": ""Button"", - ""processors"": """", - ""interactions"": """" - }, - { - ""name"": ""Previous Weapon"", - ""type"": ""Button"", - ""id"": ""ed923265-545f-4475-ba7c-885371612325"", - ""expectedControlType"": ""Button"", - ""processors"": """", - ""interactions"": """" - }, - { - ""name"": ""Toggle Weapon Group"", - ""type"": ""Button"", - ""id"": ""c61da4ef-e0bc-4d17-aab0-8e2979c3de3c"", - ""expectedControlType"": ""Button"", - ""processors"": """", - ""interactions"": """" - }, { ""name"": ""Target Reticle"", ""type"": ""Button"", @@ -374,50 +286,6 @@ public class @AetheriaInput : IInputActionCollection, IDisposable ""isComposite"": false, ""isPartOfComposite"": false }, - { - ""name"": """", - ""id"": ""143bb1cd-cc10-4eca-a2f0-a3664166fe91"", - ""path"": ""/rightTrigger"", - ""interactions"": """", - ""processors"": """", - ""groups"": "";Gamepad"", - ""action"": ""Fire Group 1"", - ""isComposite"": false, - ""isPartOfComposite"": false - }, - { - ""name"": """", - ""id"": ""05f6913d-c316-48b2-a6bb-e225f14c7960"", - ""path"": ""/leftButton"", - ""interactions"": """", - ""processors"": """", - ""groups"": "";Keyboard&Mouse"", - ""action"": ""Fire Group 1"", - ""isComposite"": false, - ""isPartOfComposite"": false - }, - { - ""name"": """", - ""id"": ""ee3d0cd2-254e-47a7-a8cb-bc94d9658c54"", - ""path"": ""/trigger"", - ""interactions"": """", - ""processors"": """", - ""groups"": ""Joystick"", - ""action"": ""Fire Group 1"", - ""isComposite"": false, - ""isPartOfComposite"": false - }, - { - ""name"": """", - ""id"": ""8c676533-8c53-4b6a-9368-d194b8a997f8"", - ""path"": ""/1"", - ""interactions"": """", - ""processors"": """", - ""groups"": ""Keyboard&Mouse"", - ""action"": ""Fire Group 1"", - ""isComposite"": false, - ""isPartOfComposite"": false - }, { ""name"": """", ""id"": ""495c3ec6-3188-4309-9072-f958e89c87ec"", @@ -429,138 +297,6 @@ public class @AetheriaInput : IInputActionCollection, IDisposable ""isComposite"": false, ""isPartOfComposite"": false }, - { - ""name"": """", - ""id"": ""444b4049-a11e-4bef-8a57-345c3d1a7545"", - ""path"": ""/rightArrow"", - ""interactions"": """", - ""processors"": """", - ""groups"": ""Keyboard&Mouse"", - ""action"": ""Next Weapon Group"", - ""isComposite"": false, - ""isPartOfComposite"": false - }, - { - ""name"": """", - ""id"": ""fb6c0d4c-dae6-406b-b35a-c35b5d25022c"", - ""path"": ""/leftArrow"", - ""interactions"": """", - ""processors"": """", - ""groups"": ""Keyboard&Mouse"", - ""action"": ""Previous Weapon Group"", - ""isComposite"": false, - ""isPartOfComposite"": false - }, - { - ""name"": """", - ""id"": ""bac8c902-3cad-4a7f-8773-35800a2ee3b9"", - ""path"": ""/downArrow"", - ""interactions"": """", - ""processors"": """", - ""groups"": ""Keyboard&Mouse"", - ""action"": ""Next Weapon"", - ""isComposite"": false, - ""isPartOfComposite"": false - }, - { - ""name"": """", - ""id"": ""969aff21-097a-4c35-9c46-2239e5f321f5"", - ""path"": ""/upArrow"", - ""interactions"": """", - ""processors"": """", - ""groups"": ""Keyboard&Mouse"", - ""action"": ""Previous Weapon"", - ""isComposite"": false, - ""isPartOfComposite"": false - }, - { - ""name"": """", - ""id"": ""a2bcbfda-f091-433f-8ac9-112396507408"", - ""path"": ""/rightCtrl"", - ""interactions"": """", - ""processors"": """", - ""groups"": ""Keyboard&Mouse"", - ""action"": ""Toggle Weapon Group"", - ""isComposite"": false, - ""isPartOfComposite"": false - }, - { - ""name"": """", - ""id"": ""48b8b6ee-8435-439a-96a1-c968254ff605"", - ""path"": ""/rightButton"", - ""interactions"": """", - ""processors"": """", - ""groups"": "";Keyboard&Mouse"", - ""action"": ""Fire Group 2"", - ""isComposite"": false, - ""isPartOfComposite"": false - }, - { - ""name"": """", - ""id"": ""8ae75721-10ab-4d83-8322-82cbb3fdcc44"", - ""path"": ""/2"", - ""interactions"": """", - ""processors"": """", - ""groups"": ""Keyboard&Mouse"", - ""action"": ""Fire Group 2"", - ""isComposite"": false, - ""isPartOfComposite"": false - }, - { - ""name"": """", - ""id"": ""7f89c9af-795b-4b1e-ad43-dac3350cfbe3"", - ""path"": ""/middleButton"", - ""interactions"": """", - ""processors"": """", - ""groups"": "";Keyboard&Mouse"", - ""action"": ""Fire Group 3"", - ""isComposite"": false, - ""isPartOfComposite"": false - }, - { - ""name"": """", - ""id"": ""c249f018-c10a-4c2c-a4ba-9fba54ed33e9"", - ""path"": ""/3"", - ""interactions"": """", - ""processors"": """", - ""groups"": ""Keyboard&Mouse"", - ""action"": ""Fire Group 3"", - ""isComposite"": false, - ""isPartOfComposite"": false - }, - { - ""name"": """", - ""id"": ""421e49a0-897e-4ea3-af8d-af96989d2957"", - ""path"": ""/4"", - ""interactions"": """", - ""processors"": """", - ""groups"": "";Keyboard&Mouse"", - ""action"": ""Fire Group 4"", - ""isComposite"": false, - ""isPartOfComposite"": false - }, - { - ""name"": """", - ""id"": ""1c8a43b7-4200-43b9-925c-c1634554083c"", - ""path"": ""/5"", - ""interactions"": """", - ""processors"": """", - ""groups"": "";Keyboard&Mouse"", - ""action"": ""Fire Group 5"", - ""isComposite"": false, - ""isPartOfComposite"": false - }, - { - ""name"": """", - ""id"": ""0680216e-b462-45a3-8050-2b89dcb615aa"", - ""path"": ""/6"", - ""interactions"": """", - ""processors"": """", - ""groups"": "";Keyboard&Mouse"", - ""action"": ""Fire Group 6"", - ""isComposite"": false, - ""isPartOfComposite"": false - }, { ""name"": """", ""id"": ""5211a58c-428b-4ee6-820d-2f67789806d6"", @@ -1287,18 +1023,7 @@ public class @AetheriaInput : IInputActionCollection, IDisposable m_Player = asset.FindActionMap("Player", throwIfNotFound: true); m_Player_Move = m_Player.FindAction("Move", throwIfNotFound: true); m_Player_Look = m_Player.FindAction("Look", throwIfNotFound: true); - m_Player_FireGroup1 = m_Player.FindAction("Fire Group 1", throwIfNotFound: true); - m_Player_FireGroup2 = m_Player.FindAction("Fire Group 2", throwIfNotFound: true); - m_Player_FireGroup3 = m_Player.FindAction("Fire Group 3", throwIfNotFound: true); - m_Player_FireGroup4 = m_Player.FindAction("Fire Group 4", throwIfNotFound: true); - m_Player_FireGroup5 = m_Player.FindAction("Fire Group 5", throwIfNotFound: true); - m_Player_FireGroup6 = m_Player.FindAction("Fire Group 6", throwIfNotFound: true); m_Player_MinimapZoom = m_Player.FindAction("Minimap Zoom", throwIfNotFound: true); - m_Player_NextWeaponGroup = m_Player.FindAction("Next Weapon Group", throwIfNotFound: true); - m_Player_PreviousWeaponGroup = m_Player.FindAction("Previous Weapon Group", throwIfNotFound: true); - m_Player_NextWeapon = m_Player.FindAction("Next Weapon", throwIfNotFound: true); - m_Player_PreviousWeapon = m_Player.FindAction("Previous Weapon", throwIfNotFound: true); - m_Player_ToggleWeaponGroup = m_Player.FindAction("Toggle Weapon Group", throwIfNotFound: true); m_Player_TargetReticle = m_Player.FindAction("Target Reticle", throwIfNotFound: true); m_Player_TargetPrevious = m_Player.FindAction("Target Previous", throwIfNotFound: true); m_Player_TargetNext = m_Player.FindAction("Target Next", throwIfNotFound: true); @@ -1379,18 +1104,7 @@ public class @AetheriaInput : IInputActionCollection, IDisposable private IPlayerActions m_PlayerActionsCallbackInterface; private readonly InputAction m_Player_Move; private readonly InputAction m_Player_Look; - private readonly InputAction m_Player_FireGroup1; - private readonly InputAction m_Player_FireGroup2; - private readonly InputAction m_Player_FireGroup3; - private readonly InputAction m_Player_FireGroup4; - private readonly InputAction m_Player_FireGroup5; - private readonly InputAction m_Player_FireGroup6; private readonly InputAction m_Player_MinimapZoom; - private readonly InputAction m_Player_NextWeaponGroup; - private readonly InputAction m_Player_PreviousWeaponGroup; - private readonly InputAction m_Player_NextWeapon; - private readonly InputAction m_Player_PreviousWeapon; - private readonly InputAction m_Player_ToggleWeaponGroup; private readonly InputAction m_Player_TargetReticle; private readonly InputAction m_Player_TargetPrevious; private readonly InputAction m_Player_TargetNext; @@ -1408,18 +1122,7 @@ public class @AetheriaInput : IInputActionCollection, IDisposable public PlayerActions(@AetheriaInput wrapper) { m_Wrapper = wrapper; } public InputAction @Move => m_Wrapper.m_Player_Move; public InputAction @Look => m_Wrapper.m_Player_Look; - public InputAction @FireGroup1 => m_Wrapper.m_Player_FireGroup1; - public InputAction @FireGroup2 => m_Wrapper.m_Player_FireGroup2; - public InputAction @FireGroup3 => m_Wrapper.m_Player_FireGroup3; - public InputAction @FireGroup4 => m_Wrapper.m_Player_FireGroup4; - public InputAction @FireGroup5 => m_Wrapper.m_Player_FireGroup5; - public InputAction @FireGroup6 => m_Wrapper.m_Player_FireGroup6; public InputAction @MinimapZoom => m_Wrapper.m_Player_MinimapZoom; - public InputAction @NextWeaponGroup => m_Wrapper.m_Player_NextWeaponGroup; - public InputAction @PreviousWeaponGroup => m_Wrapper.m_Player_PreviousWeaponGroup; - public InputAction @NextWeapon => m_Wrapper.m_Player_NextWeapon; - public InputAction @PreviousWeapon => m_Wrapper.m_Player_PreviousWeapon; - public InputAction @ToggleWeaponGroup => m_Wrapper.m_Player_ToggleWeaponGroup; public InputAction @TargetReticle => m_Wrapper.m_Player_TargetReticle; public InputAction @TargetPrevious => m_Wrapper.m_Player_TargetPrevious; public InputAction @TargetNext => m_Wrapper.m_Player_TargetNext; @@ -1446,42 +1149,9 @@ public class @AetheriaInput : IInputActionCollection, IDisposable @Look.started -= m_Wrapper.m_PlayerActionsCallbackInterface.OnLook; @Look.performed -= m_Wrapper.m_PlayerActionsCallbackInterface.OnLook; @Look.canceled -= m_Wrapper.m_PlayerActionsCallbackInterface.OnLook; - @FireGroup1.started -= m_Wrapper.m_PlayerActionsCallbackInterface.OnFireGroup1; - @FireGroup1.performed -= m_Wrapper.m_PlayerActionsCallbackInterface.OnFireGroup1; - @FireGroup1.canceled -= m_Wrapper.m_PlayerActionsCallbackInterface.OnFireGroup1; - @FireGroup2.started -= m_Wrapper.m_PlayerActionsCallbackInterface.OnFireGroup2; - @FireGroup2.performed -= m_Wrapper.m_PlayerActionsCallbackInterface.OnFireGroup2; - @FireGroup2.canceled -= m_Wrapper.m_PlayerActionsCallbackInterface.OnFireGroup2; - @FireGroup3.started -= m_Wrapper.m_PlayerActionsCallbackInterface.OnFireGroup3; - @FireGroup3.performed -= m_Wrapper.m_PlayerActionsCallbackInterface.OnFireGroup3; - @FireGroup3.canceled -= m_Wrapper.m_PlayerActionsCallbackInterface.OnFireGroup3; - @FireGroup4.started -= m_Wrapper.m_PlayerActionsCallbackInterface.OnFireGroup4; - @FireGroup4.performed -= m_Wrapper.m_PlayerActionsCallbackInterface.OnFireGroup4; - @FireGroup4.canceled -= m_Wrapper.m_PlayerActionsCallbackInterface.OnFireGroup4; - @FireGroup5.started -= m_Wrapper.m_PlayerActionsCallbackInterface.OnFireGroup5; - @FireGroup5.performed -= m_Wrapper.m_PlayerActionsCallbackInterface.OnFireGroup5; - @FireGroup5.canceled -= m_Wrapper.m_PlayerActionsCallbackInterface.OnFireGroup5; - @FireGroup6.started -= m_Wrapper.m_PlayerActionsCallbackInterface.OnFireGroup6; - @FireGroup6.performed -= m_Wrapper.m_PlayerActionsCallbackInterface.OnFireGroup6; - @FireGroup6.canceled -= m_Wrapper.m_PlayerActionsCallbackInterface.OnFireGroup6; @MinimapZoom.started -= m_Wrapper.m_PlayerActionsCallbackInterface.OnMinimapZoom; @MinimapZoom.performed -= m_Wrapper.m_PlayerActionsCallbackInterface.OnMinimapZoom; @MinimapZoom.canceled -= m_Wrapper.m_PlayerActionsCallbackInterface.OnMinimapZoom; - @NextWeaponGroup.started -= m_Wrapper.m_PlayerActionsCallbackInterface.OnNextWeaponGroup; - @NextWeaponGroup.performed -= m_Wrapper.m_PlayerActionsCallbackInterface.OnNextWeaponGroup; - @NextWeaponGroup.canceled -= m_Wrapper.m_PlayerActionsCallbackInterface.OnNextWeaponGroup; - @PreviousWeaponGroup.started -= m_Wrapper.m_PlayerActionsCallbackInterface.OnPreviousWeaponGroup; - @PreviousWeaponGroup.performed -= m_Wrapper.m_PlayerActionsCallbackInterface.OnPreviousWeaponGroup; - @PreviousWeaponGroup.canceled -= m_Wrapper.m_PlayerActionsCallbackInterface.OnPreviousWeaponGroup; - @NextWeapon.started -= m_Wrapper.m_PlayerActionsCallbackInterface.OnNextWeapon; - @NextWeapon.performed -= m_Wrapper.m_PlayerActionsCallbackInterface.OnNextWeapon; - @NextWeapon.canceled -= m_Wrapper.m_PlayerActionsCallbackInterface.OnNextWeapon; - @PreviousWeapon.started -= m_Wrapper.m_PlayerActionsCallbackInterface.OnPreviousWeapon; - @PreviousWeapon.performed -= m_Wrapper.m_PlayerActionsCallbackInterface.OnPreviousWeapon; - @PreviousWeapon.canceled -= m_Wrapper.m_PlayerActionsCallbackInterface.OnPreviousWeapon; - @ToggleWeaponGroup.started -= m_Wrapper.m_PlayerActionsCallbackInterface.OnToggleWeaponGroup; - @ToggleWeaponGroup.performed -= m_Wrapper.m_PlayerActionsCallbackInterface.OnToggleWeaponGroup; - @ToggleWeaponGroup.canceled -= m_Wrapper.m_PlayerActionsCallbackInterface.OnToggleWeaponGroup; @TargetReticle.started -= m_Wrapper.m_PlayerActionsCallbackInterface.OnTargetReticle; @TargetReticle.performed -= m_Wrapper.m_PlayerActionsCallbackInterface.OnTargetReticle; @TargetReticle.canceled -= m_Wrapper.m_PlayerActionsCallbackInterface.OnTargetReticle; @@ -1525,42 +1195,9 @@ public class @AetheriaInput : IInputActionCollection, IDisposable @Look.started += instance.OnLook; @Look.performed += instance.OnLook; @Look.canceled += instance.OnLook; - @FireGroup1.started += instance.OnFireGroup1; - @FireGroup1.performed += instance.OnFireGroup1; - @FireGroup1.canceled += instance.OnFireGroup1; - @FireGroup2.started += instance.OnFireGroup2; - @FireGroup2.performed += instance.OnFireGroup2; - @FireGroup2.canceled += instance.OnFireGroup2; - @FireGroup3.started += instance.OnFireGroup3; - @FireGroup3.performed += instance.OnFireGroup3; - @FireGroup3.canceled += instance.OnFireGroup3; - @FireGroup4.started += instance.OnFireGroup4; - @FireGroup4.performed += instance.OnFireGroup4; - @FireGroup4.canceled += instance.OnFireGroup4; - @FireGroup5.started += instance.OnFireGroup5; - @FireGroup5.performed += instance.OnFireGroup5; - @FireGroup5.canceled += instance.OnFireGroup5; - @FireGroup6.started += instance.OnFireGroup6; - @FireGroup6.performed += instance.OnFireGroup6; - @FireGroup6.canceled += instance.OnFireGroup6; @MinimapZoom.started += instance.OnMinimapZoom; @MinimapZoom.performed += instance.OnMinimapZoom; @MinimapZoom.canceled += instance.OnMinimapZoom; - @NextWeaponGroup.started += instance.OnNextWeaponGroup; - @NextWeaponGroup.performed += instance.OnNextWeaponGroup; - @NextWeaponGroup.canceled += instance.OnNextWeaponGroup; - @PreviousWeaponGroup.started += instance.OnPreviousWeaponGroup; - @PreviousWeaponGroup.performed += instance.OnPreviousWeaponGroup; - @PreviousWeaponGroup.canceled += instance.OnPreviousWeaponGroup; - @NextWeapon.started += instance.OnNextWeapon; - @NextWeapon.performed += instance.OnNextWeapon; - @NextWeapon.canceled += instance.OnNextWeapon; - @PreviousWeapon.started += instance.OnPreviousWeapon; - @PreviousWeapon.performed += instance.OnPreviousWeapon; - @PreviousWeapon.canceled += instance.OnPreviousWeapon; - @ToggleWeaponGroup.started += instance.OnToggleWeaponGroup; - @ToggleWeaponGroup.performed += instance.OnToggleWeaponGroup; - @ToggleWeaponGroup.canceled += instance.OnToggleWeaponGroup; @TargetReticle.started += instance.OnTargetReticle; @TargetReticle.performed += instance.OnTargetReticle; @TargetReticle.canceled += instance.OnTargetReticle; @@ -1597,7 +1234,7 @@ public class @AetheriaInput : IInputActionCollection, IDisposable } } } - public PlayerActions @Player => new PlayerActions(this); + public PlayerActions Player => new PlayerActions(this); // UI private readonly InputActionMap m_UI; @@ -1791,18 +1428,7 @@ public class @AetheriaInput : IInputActionCollection, IDisposable { void OnMove(InputAction.CallbackContext context); void OnLook(InputAction.CallbackContext context); - void OnFireGroup1(InputAction.CallbackContext context); - void OnFireGroup2(InputAction.CallbackContext context); - void OnFireGroup3(InputAction.CallbackContext context); - void OnFireGroup4(InputAction.CallbackContext context); - void OnFireGroup5(InputAction.CallbackContext context); - void OnFireGroup6(InputAction.CallbackContext context); void OnMinimapZoom(InputAction.CallbackContext context); - void OnNextWeaponGroup(InputAction.CallbackContext context); - void OnPreviousWeaponGroup(InputAction.CallbackContext context); - void OnNextWeapon(InputAction.CallbackContext context); - void OnPreviousWeapon(InputAction.CallbackContext context); - void OnToggleWeaponGroup(InputAction.CallbackContext context); void OnTargetReticle(InputAction.CallbackContext context); void OnTargetPrevious(InputAction.CallbackContext context); void OnTargetNext(InputAction.CallbackContext context); diff --git a/Assets/Scripts/Gameplay/ActionBarSlot.cs b/Assets/Scripts/Gameplay/ActionBarSlot.cs new file mode 100644 index 000000000..a50405f77 --- /dev/null +++ b/Assets/Scripts/Gameplay/ActionBarSlot.cs @@ -0,0 +1,206 @@ +using System; +using System.Linq; +using JsonKnownTypes; +using MessagePack; +using Newtonsoft.Json; +using TMPro; +using UnityEngine; +using UnityEngine.UI; + +public class ActionBarSlot : MonoBehaviour +{ + public TextMeshProUGUI Label; + public RawImage Icon; + public TextMeshProUGUI InputLabel; + public Image InputIcon; + public TextMeshProUGUI QuantityRemaining; + public Image Fill; + private ActionBarBinding binding; + + public Entity Entity { get; set; } + + public ActionBarBinding Binding + { + get => binding; + set + { + binding = value; + if (binding == null) + { + QuantityRemaining.gameObject.SetActive(false); + Icon.gameObject.SetActive(false); + } + } + } + + private void Update() + { + Binding?.Update(); + } + + public SavedActionBarBinding Save() + { + return Binding switch + { + ActionBarConsumableBinding actionBarConsumableBinding => new SavedActionBarConsumableBinding + { + Target = new DatabaseLink{LinkID = actionBarConsumableBinding.Target.ID} + }, + ActionBarGearBinding actionBarGearBinding => new SavedActionBarGearBinding + { + EquipmentIndex = Entity.Equipment.IndexOf(actionBarGearBinding.Item), + BehaviorIndex = Array.IndexOf(actionBarGearBinding.Item.Behaviors, actionBarGearBinding.Behavior) + }, + ActionBarWeaponGroupBinding actionBarWeaponGroupBinding => new SavedActionBarWeaponGroupBinding + { + Group = actionBarWeaponGroupBinding.Group + }, + _ => null + }; + } + + public void Restore(SavedActionBarBinding binding) + { + Binding = binding switch + { + SavedActionBarConsumableBinding savedActionBarConsumableBinding => + new ActionBarConsumableBinding( + Entity, + this, + savedActionBarConsumableBinding.Target.Value), + SavedActionBarGearBinding savedActionBarGearBinding => + new ActionBarGearBinding( + Entity, + this, + Entity.Equipment[savedActionBarGearBinding.EquipmentIndex], + Entity.Equipment[savedActionBarGearBinding.EquipmentIndex] + .Behaviors[savedActionBarGearBinding.BehaviorIndex] as IActivatedBehavior), + SavedActionBarWeaponGroupBinding savedActionBarWeaponGroupBinding => + new ActionBarWeaponGroupBinding(Entity, this, savedActionBarWeaponGroupBinding.Group), + _ => null + }; + } +} + +public abstract class ActionBarBinding +{ + protected Entity Entity { get; } + protected ActionBarSlot Slot { get; } + public abstract void Activate(); + public abstract void Deactivate(); + public abstract void Update(); + public ActionBarBinding(Entity entity, ActionBarSlot slot) + { + Entity = entity; + Slot = slot; + } +} + +public class ActionBarConsumableBinding : ActionBarBinding +{ + public ConsumableItemData Target; + + public ActionBarConsumableBinding(Entity entity, ActionBarSlot slot, ConsumableItemData target) : base(entity, slot) + { + Target = target; + Slot.QuantityRemaining.gameObject.SetActive(true); + var data = Target; + if(!string.IsNullOrEmpty(data.Icon)) + { + Slot.Label.gameObject.SetActive(false); + Slot.Icon.gameObject.SetActive(true); + Slot.Icon.texture = Resources.Load(data.Icon.Substring("Assets/Resources/".Length).Split('.').First()); + } + else Slot.Icon.gameObject.SetActive(false); + } + + public override void Activate() + { + Entity.TryActivateConsumable(Target); + } + + public override void Deactivate() + { + } + + public override void Update() + { + Slot.QuantityRemaining.text = $"{Entity.CountItemsInCargo(Target.ID)}"; + var instance = Entity.FindActiveConsumable(Target); + if (instance == null) Slot.Fill.fillAmount = 0; + else Slot.Fill.fillAmount = instance.RemainingDuration / instance.Data.Duration; + } +} + +public class ActionBarGearBinding : ActionBarBinding +{ + public EquippedItem Item { get; } + public IActivatedBehavior Behavior { get; } + + public bool Active; + + public ActionBarGearBinding(Entity entity, ActionBarSlot slot, EquippedItem item, IActivatedBehavior behavior) : base(entity, slot) + { + Item = item; + Behavior = behavior; + Slot.QuantityRemaining.gameObject.SetActive(false); + if(!string.IsNullOrEmpty(Item.Data.ActionBarIcon)) + { + Slot.Label.gameObject.SetActive(false); + Slot.Icon.gameObject.SetActive(true); + Slot.Icon.texture = Resources.Load(Item.Data.ActionBarIcon.Substring("Assets/Resources/".Length).Split('.').First()); + } + else Slot.Icon.gameObject.SetActive(false); + } + + public override void Activate() + { + Active = true; + Behavior.Activate(); + } + + public override void Deactivate() + { + Active = false; + Behavior.Deactivate(); + } + + public override void Update() + { + Slot.Fill.fillAmount = Active ? 1 : 0; + } +} + +[MessagePackObject] +public class ActionBarWeaponGroupBinding : ActionBarBinding +{ + [Key(0)] public int Group; + + public ActionBarWeaponGroupBinding(Entity entity, ActionBarSlot slot, int group) : base(entity, slot) + { + Group = group; + slot.Label.text = $"G{Group}"; + Slot.Icon.gameObject.SetActive(false); + } + + public override void Activate() + { + foreach (var weapon in Entity.TriggerGroups[Group].weapons) + { + weapon.Activate(); + } + } + + public override void Deactivate() + { + foreach (var weapon in Entity.TriggerGroups[Group].weapons) + { + weapon.Deactivate(); + } + } + + public override void Update() + { + + } +} \ No newline at end of file diff --git a/Assets/Scripts/Gameplay/ActionBarSlot.cs.meta b/Assets/Scripts/Gameplay/ActionBarSlot.cs.meta new file mode 100644 index 000000000..2b8e0a6c9 --- /dev/null +++ b/Assets/Scripts/Gameplay/ActionBarSlot.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: f285e0b05ca24b83bd6cd48419cbad6e +timeCreated: 1618532311 \ No newline at end of file diff --git a/Assets/Scripts/Gameplay/ActionGameManager.cs b/Assets/Scripts/Gameplay/ActionGameManager.cs index aa2244b48..c73efca2a 100644 --- a/Assets/Scripts/Gameplay/ActionGameManager.cs +++ b/Assets/Scripts/Gameplay/ActionGameManager.cs @@ -62,9 +62,7 @@ public class ActionGameManager : MonoBehaviour } public static Sector CurrentSector; - - - + public GameSettings Settings; //public string StarterShipTemplate = "Longinus"; public float2 Sensitivity; @@ -80,7 +78,14 @@ public class ActionGameManager : MonoBehaviour public PostProcessVolume SevereHeatstrokePP; public PostProcessVolume SevereHypothermiaPP; + [Header("Input Icons")] + public Sprite ShiftIcon; + public Sprite MouseLeftIcon; + public Sprite MouseMiddleIcon; + [Header("Scene Links")] + public Transform ActionBar; + public ActionBarSlot ActionBarSlot; public Transform EffectManagerParent; public TradeMenu TradeMenu; public Prototype HostileTargetIndicator; @@ -132,6 +137,8 @@ public class ActionGameManager : MonoBehaviour private float _severeHeatstrokePhase; private bool _uiHidden; private bool _menuShown; + private List _actionBarSlots = new List(); + private List _actionBarActions = new List(); public AetheriaInput Input { get; private set; } public EquippedDockingBay DockingBay { get; private set; } @@ -197,7 +204,6 @@ public class ActionGameManager : MonoBehaviour Input = new AetheriaInput(); Input.Global.Enable(); - Input.UI.Enable(); _zoomLevelIndex = Settings.DefaultMinimapZoom; Input.Player.MinimapZoom.performed += context => @@ -232,44 +238,7 @@ public class ActionGameManager : MonoBehaviour else Undock(); }; - Input.Global.MainMenu.performed += context => - { - if (EventSystem.current.currentSelectedGameObject?.GetComponent() != null) return; - if (CurrentEntity == null) return; - if (MainMenu.gameObject.activeSelf) - { - _paused = false; - VolumeRenderer.EnableDepth = true; - MainMenu.gameObject.SetActive(false); - if (_menuShown) - { - Menu.gameObject.SetActive(true); - } - else - { - GameplayUI.gameObject.SetActive(true); - Cursor.lockState = CursorLockMode.Locked; - Input.Player.Enable(); - } - } - else - { - _paused = true; - VolumeRenderer.EnableDepth = false; - MainMenu.gameObject.SetActive(true); - _menuShown = Menu.gameObject.activeSelf; - if (_menuShown) - { - Menu.gameObject.SetActive(false); - } - else - { - GameplayUI.gameObject.SetActive(false); - Cursor.lockState = CursorLockMode.None; - Input.Player.Disable(); - } - } - }; + Input.Global.MainMenu.performed += context => ToggleMainMenu(); Input.Player.EnterWormhole.performed += context => { @@ -349,123 +318,42 @@ public class ActionGameManager : MonoBehaviour #endregion - #region Trigger Groups + #region Action Bar - Input.Player.PreviousWeaponGroup.performed += context => + ActionBarSlot createBinding(string controlPath) { - if (CurrentEntity.Parent != null) return; - SchematicDisplay.SelectedGroupIndex--; - }; + var action = new InputAction(binding: controlPath); + _actionBarActions.Add(action); + var slot = Instantiate(ActionBarSlot, ActionBar); + _actionBarSlots.Add(slot); + action.started += context => slot.Binding?.Activate(); + action.canceled += context => slot.Binding?.Deactivate(); + return slot; + } - Input.Player.NextWeaponGroup.performed += context => - { - if (CurrentEntity.Parent != null) return; - SchematicDisplay.SelectedGroupIndex++; - }; - - Input.Player.PreviousWeapon.performed += context => - { - if (CurrentEntity.Parent != null) return; - SchematicDisplay.SelectedItemIndex--; - }; - - Input.Player.NextWeapon.performed += context => - { - if (CurrentEntity.Parent != null) return; - SchematicDisplay.SelectedItemIndex++; - }; - - Input.Player.ToggleWeaponGroup.performed += context => - { - if (CurrentEntity.Parent != null) return; - var item = SchematicDisplay.SchematicItems[SchematicDisplay.SelectedItemIndex]; - if (CurrentEntity.TriggerGroups[SchematicDisplay.SelectedGroupIndex].items.Contains(item.Item)) - CurrentEntity.TriggerGroups[SchematicDisplay.SelectedGroupIndex].items.Remove(item.Item); - else CurrentEntity.TriggerGroups[SchematicDisplay.SelectedGroupIndex].items.Add(item.Item); - foreach (var group in item.Item.BehaviorGroups.Values) - { - var weapon = group.GetBehavior(); - if(weapon != null) - { - if (CurrentEntity.TriggerGroups[SchematicDisplay.SelectedGroupIndex].weapons.Contains(weapon)) - CurrentEntity.TriggerGroups[SchematicDisplay.SelectedGroupIndex].weapons.Remove(weapon); - else CurrentEntity.TriggerGroups[SchematicDisplay.SelectedGroupIndex].weapons.Add(weapon); - } - } - SchematicDisplay.UpdateTriggerGroups(); - }; + var shift = createBinding("/leftShift"); + shift.InputIcon.sprite = ShiftIcon; + shift.InputLabel.gameObject.SetActive(false); - Input.Player.FireGroup1.started += context => - { - if (CurrentEntity.Parent != null) return; - foreach (var s in CurrentEntity.TriggerGroups[0].weapons) s.Activate(); - }; + var left = createBinding("/leftButton"); + left.InputIcon.sprite = MouseLeftIcon; + left.InputLabel.gameObject.SetActive(false); + + var right = createBinding("/rightButton"); + right.InputIcon.sprite = MouseLeftIcon; + right.InputIcon.transform.localScale = new Vector3(-1, 1, 1); + right.InputLabel.gameObject.SetActive(false); + + var middle = createBinding("/middleButton"); + middle.InputIcon.sprite = MouseMiddleIcon; + middle.InputLabel.gameObject.SetActive(false); - Input.Player.FireGroup1.canceled += context => + for (int i = 1; i < 6; i++) { - if (CurrentEntity.Parent != null) return; - foreach (var s in CurrentEntity.TriggerGroups[0].weapons) s.Deactivate(); - }; - - Input.Player.FireGroup2.started += context => - { - if (CurrentEntity.Parent != null) return; - foreach (var s in CurrentEntity.TriggerGroups[1].weapons) s.Activate(); - }; - - Input.Player.FireGroup2.canceled += context => - { - if (CurrentEntity.Parent != null) return; - foreach (var s in CurrentEntity.TriggerGroups[1].weapons) s.Deactivate(); - }; - - Input.Player.FireGroup3.started += context => - { - if (CurrentEntity.Parent != null) return; - foreach (var s in CurrentEntity.TriggerGroups[2].weapons) s.Activate(); - }; - - Input.Player.FireGroup3.canceled += context => - { - if (CurrentEntity.Parent != null) return; - foreach (var s in CurrentEntity.TriggerGroups[2].weapons) s.Deactivate(); - }; - - Input.Player.FireGroup4.started += context => - { - if (CurrentEntity.Parent != null) return; - foreach (var s in CurrentEntity.TriggerGroups[3].weapons) s.Activate(); - }; - - Input.Player.FireGroup4.canceled += context => - { - if (CurrentEntity.Parent != null) return; - foreach (var s in CurrentEntity.TriggerGroups[3].weapons) s.Deactivate(); - }; - - Input.Player.FireGroup5.started += context => - { - if (CurrentEntity.Parent != null) return; - foreach (var s in CurrentEntity.TriggerGroups[4].weapons) s.Activate(); - }; - - Input.Player.FireGroup5.canceled += context => - { - if (CurrentEntity.Parent != null) return; - foreach (var s in CurrentEntity.TriggerGroups[4].weapons) s.Deactivate(); - }; - - Input.Player.FireGroup6.started += context => - { - if (CurrentEntity.Parent != null) return; - foreach (var s in CurrentEntity.TriggerGroups[5].weapons) s.Activate(); - }; - - Input.Player.FireGroup6.canceled += context => - { - if (CurrentEntity.Parent != null) return; - foreach (var s in CurrentEntity.TriggerGroups[5].weapons) s.Deactivate(); - }; + var num = createBinding($"/{i}"); + num.InputIcon.gameObject.SetActive(false); + num.InputLabel.text = i.ToString(); + } #endregion @@ -579,6 +467,18 @@ public class ActionGameManager : MonoBehaviour }); } + public void EnablePlayerInput() + { + Input.Player.Enable(); + foreach (var a in _actionBarActions) a.Enable(); + } + + public void DisablePlayerInput() + { + Input.Player.Disable(); + foreach (var a in _actionBarActions) a.Disable(); + } + private void EnterWormhole(Wormhole wormhole) { if (!(CurrentEntity is Ship ship)) return; @@ -639,6 +539,45 @@ public class ActionGameManager : MonoBehaviour } } + private void ToggleMainMenu() + { + if (EventSystem.current.currentSelectedGameObject?.GetComponent() != null) return; + if (CurrentEntity == null) return; + if (MainMenu.gameObject.activeSelf) + { + _paused = false; + VolumeRenderer.EnableDepth = true; + MainMenu.gameObject.SetActive(false); + if (_menuShown) + { + Menu.gameObject.SetActive(true); + } + else + { + GameplayUI.gameObject.SetActive(true); + EnablePlayerInput(); + Cursor.lockState = CursorLockMode.Locked; + } + } + else + { + _paused = true; + VolumeRenderer.EnableDepth = false; + MainMenu.gameObject.SetActive(true); + _menuShown = Menu.gameObject.activeSelf; + if (_menuShown) + { + Menu.gameObject.SetActive(false); + } + else + { + GameplayUI.gameObject.SetActive(false); + Cursor.lockState = CursorLockMode.None; + DisablePlayerInput(); + } + } + } + private void ToggleMenuTab(MenuTab tab) { if (EventSystem.current.currentSelectedGameObject?.GetComponent() != null) return; @@ -649,7 +588,7 @@ public class ActionGameManager : MonoBehaviour Menu.gameObject.SetActive(false); if (CurrentEntity != null && CurrentEntity.Parent == null) { - Input.Player.Enable(); + EnablePlayerInput(); GameplayUI.gameObject.SetActive(true); SchematicDisplay.ShowShip(CurrentEntity); @@ -659,7 +598,7 @@ public class ActionGameManager : MonoBehaviour } Cursor.lockState = CursorLockMode.None; - Input.Player.Disable(); + DisablePlayerInput(); Menu.ShowTab(tab); GameplayUI.gameObject.SetActive(false); } @@ -832,7 +771,7 @@ public class ActionGameManager : MonoBehaviour _visibleHostileIndicators.Clear(); if(_lockingIndicators!=null) foreach(var (_, indicator, _) in _lockingIndicators) indicator.GetComponent().ReturnToPool(); - Input.Player.Disable(); + DisablePlayerInput(); Cursor.lockState = CursorLockMode.None; GameplayUI.gameObject.SetActive(false); @@ -862,7 +801,7 @@ public class ActionGameManager : MonoBehaviour _viewDirection = float3(CurrentEntity.Direction.x,0,CurrentEntity.Direction.y); Cursor.lockState = CursorLockMode.Locked; - Input.Player.Enable(); + EnablePlayerInput(); GameplayUI.gameObject.SetActive(true); ShipPanel.Display(CurrentEntity, true); SchematicDisplay.ShowShip(CurrentEntity); diff --git a/Assets/Scripts/Gameplay/ItemPickup.cs b/Assets/Scripts/Gameplay/ItemPickup.cs index 4355cde7d..22448e337 100644 --- a/Assets/Scripts/Gameplay/ItemPickup.cs +++ b/Assets/Scripts/Gameplay/ItemPickup.cs @@ -1,6 +1,41 @@ +using System; +using TMPro; +using Unity.Mathematics; using UnityEngine; +using static Unity.Mathematics.math; public class ItemPickup : MonoBehaviour { + public float LabelFadeDuration = .5f; + public float LabelPersistDuration = 3; + public float LabelDisplayAngle = 15; + public float LabelDisplayMaxDistance = 500; + public Transform ScanLabelContainer; + public TextMeshPro ScanLabel; + public ItemInstance Item { get; set; } + public ZoneRenderer ZoneRenderer { get; set; } + public float3 ViewOrigin { get; set; } + public float3 ViewDirection { get; set; } + + private float _displayTime; + + private void Update() + { + var diff = (float3) transform.position - ViewOrigin; + var toThis = normalize(diff); + var viewAngle = acos(Vector3.Dot(toThis, ViewDirection)) * Mathf.Rad2Deg; + if (length(diff) < LabelDisplayMaxDistance && viewAngle < LabelDisplayAngle) + _displayTime = Time.time; + var targetAlpha = Time.time - _displayTime < LabelPersistDuration ? 1 : 0; + var c = ScanLabel.color; + c.a = c.a + sign(targetAlpha - c.a) * (Time.deltaTime / LabelFadeDuration); + ScanLabel.color = c; + ScanLabelContainer.rotation = Quaternion.LookRotation(-toThis); + } + + private void OnDestroy() + { + ZoneRenderer.DestroyLoot(this); + } } \ No newline at end of file diff --git a/Assets/Scripts/ServerShared/AetheriaMath.cs b/Assets/Scripts/ServerShared/AetheriaMath.cs index 0056ade65..11119e829 100644 --- a/Assets/Scripts/ServerShared/AetheriaMath.cs +++ b/Assets/Scripts/ServerShared/AetheriaMath.cs @@ -28,6 +28,16 @@ public static class AetheriaMath return lerp(a, b, 1 - exp(-lambda * dt)); } + public static float2 Damp(float2 a, float2 b, float lambda, float dt) + { + return lerp(a, b, 1 - exp(-lambda * dt)); + } + + public static float3 Damp(float3 a, float3 b, float lambda, float dt) + { + return lerp(a, b, 1 - exp(-lambda * dt)); + } + //first-order intercept using absolute target position public static float3 FirstOrderIntercept ( diff --git a/Assets/Scripts/ServerShared/Agents/Minion.cs b/Assets/Scripts/ServerShared/Agents/Minion.cs index 24f235dec..3237b3f0a 100644 --- a/Assets/Scripts/ServerShared/Agents/Minion.cs +++ b/Assets/Scripts/ServerShared/Agents/Minion.cs @@ -14,7 +14,7 @@ public class Minion : Agent Ship.VisibleHostiles.ObserveAdd().Where(_ => Ship.Target.Value == null).Subscribe(add => Ship.Target.Value = add.Value); var combatState = new CombatState(this); - _rootState.AddTransition(combatState, + _rootState.AddTransition(combatState, () => Ship.Target.Value != null, null, true, _rootState); combatState.AddTransition(_rootState, diff --git a/Assets/Scripts/ServerShared/Behaviors/AetherDrive.cs b/Assets/Scripts/ServerShared/Behaviors/AetherDrive.cs index 130f3868c..834d7e37b 100644 --- a/Assets/Scripts/ServerShared/Behaviors/AetherDrive.cs +++ b/Assets/Scripts/ServerShared/Behaviors/AetherDrive.cs @@ -37,23 +37,26 @@ public class AetherDriveData : BehaviorData [Inspectable, JsonProperty("passiveCoupling"), Key(9), RuntimeInspectable] public PerformanceStat PassiveCoupling; - public override IBehavior CreateInstance(EquippedItem item) + public override Behavior CreateInstance(EquippedItem item) + { + return new AetherDrive(this, item); + } + + public override Behavior CreateInstance(ConsumableItemEffect item) { return new AetherDrive(this, item); } } -public class AetherDrive : IBehavior +public class AetherDrive : Behavior { private AetherDriveData _data; private float3 _axis; - public EquippedItem Item { get; } public float3 Thrust { get; private set; } public float3 Rpm { get; private set; } public float MaximumRpm { get; private set; } - public BehaviorData Data => _data; public AetherDriveData DriveData => _data; public float3 Axis @@ -62,54 +65,58 @@ public class AetherDrive : IBehavior set => _axis = clamp(value, -1, 1); } - public AetherDrive(AetherDriveData data, EquippedItem item) + public AetherDrive(AetherDriveData data, EquippedItem item) : base(data, item) { _data = data; - Item = item; } - public bool Execute(float dt) + public AetherDrive(AetherDriveData data, ConsumableItemEffect item) : base(data, item) + { + _data = data; + } + + public override bool Execute(float dt) { var rotorSpeed = Rpm * _data.RotorDiameter / 100; - var forward = normalize(Item.Entity.Direction); + var forward = normalize(Entity.Direction); var right = forward.Rotate(ItemRotation.Clockwise); - var speed = float2(dot(Item.Entity.Velocity, forward), dot(Item.Entity.Velocity, right)); - var couplingEfficiency = Item.Evaluate(_data.CouplingEfficiency); + var speed = float2(dot(Entity.Velocity, forward), dot(Entity.Velocity, right)); + var couplingEfficiency = Evaluate(_data.CouplingEfficiency); var efficiency = float3(saturate(1 - speed / max(rotorSpeed.xy, 1) * sign(_axis.xy)) * couplingEfficiency, 1); Thrust = (Rpm - AetheriaMath.Decay(Rpm, _data.CouplingLambda, dt)) * _data.RotorMass * efficiency; - var couplingLambda = _data.CouplingLambda * max(abs(_axis), Item.Evaluate(_data.PassiveCoupling)); + var couplingLambda = _data.CouplingLambda * max(abs(_axis), Evaluate(_data.PassiveCoupling)); var previousRpm = Rpm; Rpm = AetheriaMath.Decay(Rpm, couplingLambda, dt); var rpmLoss = previousRpm - Rpm; var force = rpmLoss * _data.RotorMass * efficiency; var heat = rpmLoss * _data.RotorMass * (1 - couplingEfficiency); - Item.AddHeat((heat.x + heat.y + heat.z)*Item.ItemManager.GameplaySettings.AetherHeatMultiplier); + AddHeat((heat.x + heat.y + heat.z)*ItemManager.GameplaySettings.AetherHeatMultiplier); - Item.Entity.Velocity += forward * (_axis.x * force.x / Item.Entity.Mass); - Item.Entity.Velocity += right * (_axis.y * force.y / Item.Entity.Mass); - Item.Entity.Direction = mul(Item.Entity.Direction, - Unity.Mathematics.float2x2.Rotate(force.z * _axis.z * Item.ItemManager.GameplaySettings.AetherTorqueMultiplier / Item.Entity.Mass)); + Entity.Velocity += forward * (_axis.x * force.x / Entity.Mass); + Entity.Velocity += right * (_axis.y * force.y / Entity.Mass); + Entity.Direction = mul(Entity.Direction, + Unity.Mathematics.float2x2.Rotate(force.z * _axis.z * ItemManager.GameplaySettings.AetherTorqueMultiplier / Entity.Mass)); - if(float.IsNaN(Item.Entity.Velocity.x)) - Item.ItemManager.Log("FUCK FUCK FUCK FUCK"); + if(float.IsNaN(Entity.Velocity.x)) + ItemManager.Log("FUCK FUCK FUCK FUCK"); - MaximumRpm = Item.Evaluate(_data.MaximumRpm); + MaximumRpm = Evaluate(_data.MaximumRpm); var torqueProfile = float3( _data.TorqueProfile.Evaluate(Rpm.x / MaximumRpm), _data.TorqueProfile.Evaluate(Rpm.y / MaximumRpm), _data.TorqueProfile.Evaluate(Rpm.z / MaximumRpm)); - var potentialTorque = Item.Evaluate(_data.Torque) * torqueProfile; + var potentialTorque = Evaluate(_data.Torque) * torqueProfile; var potentialRpmDelta = potentialTorque / length(_data.RotorMass) * dt; var actualRpmDelta = min(MaximumRpm - Rpm, potentialRpmDelta); var torqueRatio = actualRpmDelta / potentialRpmDelta; - var draw = torqueRatio * Item.Evaluate(_data.EnergyDraw) / 3; + var draw = torqueRatio * Evaluate(_data.EnergyDraw) / 3; - if (Item.Entity.TryConsumeEnergy((draw.x + draw.y + draw.z)*dt)) + if (Entity.TryConsumeEnergy((draw.x + draw.y + draw.z)*dt)) { Rpm += actualRpmDelta; return true; diff --git a/Assets/Scripts/ServerShared/Behaviors/AutoWeapon.cs b/Assets/Scripts/ServerShared/Behaviors/AutoWeapon.cs index f1edb9c78..0d97804ef 100644 --- a/Assets/Scripts/ServerShared/Behaviors/AutoWeapon.cs +++ b/Assets/Scripts/ServerShared/Behaviors/AutoWeapon.cs @@ -9,7 +9,7 @@ using static Unity.Mathematics.math; [Inspectable, MessagePackObject, JsonObject(MemberSerialization.OptIn), RuntimeInspectable] public class AutoWeaponData : InstantWeaponData { - public override IBehavior CreateInstance(EquippedItem item) + public override Behavior CreateInstance(EquippedItem item) { return new AutoWeapon(this, item); } @@ -18,9 +18,8 @@ public class AutoWeaponData : InstantWeaponData public class AutoWeapon : InstantWeapon { - public AutoWeapon(InstantWeaponData data, EquippedItem item) : base(data, item) - { - } + public AutoWeapon(InstantWeaponData data, EquippedItem item) : base(data, item) { } + public AutoWeapon(InstantWeaponData data, ConsumableItemEffect item) : base(data, item) { } public override bool Execute(float dt) { diff --git a/Assets/Scripts/ServerShared/Behaviors/Behaviors.cs b/Assets/Scripts/ServerShared/Behaviors/Behaviors.cs index aef3e82ab..3a59401eb 100644 --- a/Assets/Scripts/ServerShared/Behaviors/Behaviors.cs +++ b/Assets/Scripts/ServerShared/Behaviors/Behaviors.cs @@ -13,28 +13,94 @@ using Unity.Mathematics; using static Unity.Mathematics.math; using static Unity.Mathematics.noise; -public interface IBehavior +public abstract class Behavior { - bool Execute(float dt); - BehaviorData Data { get; } + public BehaviorData Data { get; } + public EquippedItem Item { get; } + private ConsumableItemEffect Consumable { get; } + protected ItemManager ItemManager { get; } + + protected Entity Entity => Item?.Entity ?? Consumable.Entity; + public float Temperature => Item?.Temperature ?? Consumable.Entity.MaxTemp; + + public float3 Direction + { + get + { + if(Item != null) + { + var hardpoint = Entity.Hardpoints[Item.Position.x, Item.Position.y]; + if (hardpoint != null && Entity.HardpointTransforms.ContainsKey(hardpoint)) + { + return normalize(Entity.HardpointTransforms[hardpoint].direction); + } + else + { + var itemDirection = Entity.Direction.Rotate(Item.EquippableItem.Rotation); + return float3(itemDirection.x, 0, itemDirection.y); + } + } + + return float3(Entity.Direction.x, 0, Entity.Direction.y); + } + } + + protected Behavior(BehaviorData data, EquippedItem item) + { + Data = data; + Item = item; + ItemManager = Item.ItemManager; + } + + protected Behavior(BehaviorData data, ConsumableItemEffect consumable) + { + Data = data; + Consumable = consumable; + ItemManager = consumable.Entity.ItemManager; + } + + public float Evaluate(PerformanceStat stat) => Item?.Evaluate(stat) ?? Consumable.Evaluate(stat); + protected void AddHeat(float heat) => Item?.AddHeat(heat); // TODO: Heat for Consumables + + protected void CauseDamage(float damage) + { + if (Item != null) + { + Item.EquippableItem.Durability -= damage; + Entity.ItemDamage.OnNext((Item, damage)); + } + else + { + Consumable.Entity.Hull.Durability -= damage; + Consumable.Entity.HullDamage.OnNext(damage); + } + } + + protected void CauseWearDamage(float multiplier) + { + if (Item != null) + { + CauseDamage(Item.Wear * multiplier); + } + } + + public virtual bool Execute(float dt) + { + return true; + } } -public interface IActivatedBehavior : IBehavior +public interface IActivatedBehavior { void Activate(); void Deactivate(); } -public interface IAnalogBehavior : IBehavior +public interface IAnalogBehavior { float Axis { get; set; } } -public interface IDisposableBehavior -{ - void Dispose(); -} - public interface IEventBehavior { void ResetEvents(); @@ -128,12 +194,11 @@ public abstract class BehaviorData [Inspectable, JsonProperty("group"), Key(0)] public int Group; - public abstract IBehavior CreateInstance(EquippedItem item); + public abstract Behavior CreateInstance(EquippedItem item); + public abstract Behavior CreateInstance(ConsumableItemEffect consumable); public override string ToString() { - var className = base.ToString(); - var dataIndex = className.IndexOf("data", StringComparison.InvariantCultureIgnoreCase); - return dataIndex>0 ? className.Substring(0,dataIndex).SplitCamelCase() : className; + return base.ToString().FormatTypeName(); } } \ No newline at end of file diff --git a/Assets/Scripts/ServerShared/Behaviors/Capacitor.cs b/Assets/Scripts/ServerShared/Behaviors/Capacitor.cs index e6eade882..f25c489b6 100644 --- a/Assets/Scripts/ServerShared/Behaviors/Capacitor.cs +++ b/Assets/Scripts/ServerShared/Behaviors/Capacitor.cs @@ -17,20 +17,21 @@ public class CapacitorData : BehaviorData [Inspectable, JsonProperty("efficiency"), Key(2), RuntimeInspectable] public PerformanceStat Efficiency = new PerformanceStat(); - public override IBehavior CreateInstance(EquippedItem item) + public override Behavior CreateInstance(EquippedItem item) + { + return new Capacitor(this, item); + } + + public override Behavior CreateInstance(ConsumableItemEffect item) { return new Capacitor(this, item); } } -public class Capacitor : IBehavior +public class Capacitor : Behavior { private CapacitorData _data; - public EquippedItem Item { get; } - - public BehaviorData Data => _data; - public float Charge { get; private set; } public float Capacity { get; private set; } public float Efficiency { get; private set; } = 1; @@ -38,19 +39,23 @@ public class Capacitor : IBehavior public void AddCharge(float charge) { Charge = clamp(Charge + charge, 0, Capacity); - Item.AddHeat(abs(charge) * (1-Efficiency)); + AddHeat(abs(charge) * (1-Efficiency)); } - public Capacitor(CapacitorData data, EquippedItem item) + public Capacitor(CapacitorData data, EquippedItem item) : base(data, item) { _data = data; - Item = item; } - public bool Execute(float dt) + public Capacitor(CapacitorData data, ConsumableItemEffect item) : base(data, item) { - Capacity = Item.Evaluate(_data.Capacity); - Efficiency = Item.Evaluate(_data.Efficiency); + _data = data; + } + + public override bool Execute(float dt) + { + Capacity = Evaluate(_data.Capacity); + Efficiency = Evaluate(_data.Efficiency); return true; } } \ No newline at end of file diff --git a/Assets/Scripts/ServerShared/Behaviors/ChargedWeapon.cs b/Assets/Scripts/ServerShared/Behaviors/ChargedWeapon.cs index ca0c909f4..0071d9681 100644 --- a/Assets/Scripts/ServerShared/Behaviors/ChargedWeapon.cs +++ b/Assets/Scripts/ServerShared/Behaviors/ChargedWeapon.cs @@ -45,13 +45,18 @@ public class ChargedWeaponData : InstantWeaponData [Inspectable, JsonProperty("chargeHeatMul"), Key(32)] public float ChargeFiringHeatMultiplier = 1; - public override IBehavior CreateInstance(EquippedItem item) + public override Behavior CreateInstance(EquippedItem item) + { + return new ChargedWeapon(this, item); + } + + public override Behavior CreateInstance(ConsumableItemEffect item) { return new ChargedWeapon(this, item); } } -public class ChargedWeapon : InstantWeapon, IEventBehavior +public class ChargedWeapon : InstantWeapon { private ChargedWeaponData _data; private bool _charging; @@ -97,13 +102,18 @@ public class ChargedWeapon : InstantWeapon, IEventBehavior { _data = data; } + + public ChargedWeapon(ChargedWeaponData data, ConsumableItemEffect item) : base(data, item) + { + _data = data; + } protected override void UpdateStats() { base.UpdateStats(); - ChargeTime = Item.Evaluate(_data.ChargeTime); - ChargeEnergy = Item.Evaluate(_data.ChargeEnergy); - ChargeHeat = Item.Evaluate(_data.ChargeHeat); + ChargeTime = Evaluate(_data.ChargeTime); + ChargeEnergy = Evaluate(_data.ChargeEnergy); + ChargeHeat = Evaluate(_data.ChargeHeat); Damage *= lerp(1, _data.ChargeFiringDamageMultiplier, saturate(_charge)); Heat *= lerp(1, _data.ChargeFiringHeatMultiplier, saturate(_charge)); Spread *= lerp(1, _data.ChargeFiringSpreadMultiplier, saturate(_charge)); @@ -119,7 +129,7 @@ public class ChargedWeapon : InstantWeapon, IEventBehavior _charge += dt / ChargeTime; if (!_charged) { - Item.AddHeat(ChargeHeat * (dt / ChargeTime)); + AddHeat(ChargeHeat * (dt / ChargeTime)); if(_charge > 1) { _charged = true; @@ -133,7 +143,7 @@ public class ChargedWeapon : InstantWeapon, IEventBehavior _coolingDown = true; _charge = 0; OnFailed?.Invoke(); - Item.EquippableItem.Durability -= _data.FailureDamage; + CauseDamage(_data.FailureDamage); } } return base.Execute(dt); diff --git a/Assets/Scripts/ServerShared/Behaviors/Cockpit.cs b/Assets/Scripts/ServerShared/Behaviors/Cockpit.cs index 372d11d32..a09a65905 100644 --- a/Assets/Scripts/ServerShared/Behaviors/Cockpit.cs +++ b/Assets/Scripts/ServerShared/Behaviors/Cockpit.cs @@ -11,29 +11,27 @@ using static Unity.Mathematics.math; [Inspectable, MessagePackObject, JsonObject(MemberSerialization.OptIn), RuntimeInspectable] public class CockpitData : BehaviorData { - public override IBehavior CreateInstance(EquippedItem item) + public override Behavior CreateInstance(EquippedItem item) + { + return new Cockpit(this, item); + } + public override Behavior CreateInstance(ConsumableItemEffect item) { return new Cockpit(this, item); } } -public class Cockpit : IBehavior +public class Cockpit : Behavior { private CockpitData _data; - - public EquippedItem Item { get; } - - public BehaviorData Data => _data; - - public Cockpit(CockpitData data, EquippedItem item) + public Cockpit(CockpitData data, EquippedItem item) : base(data, item) { _data = data; - Item = item; } - - public bool Execute(float dt) + + public Cockpit(CockpitData data, ConsumableItemEffect item) : base(data, item) { - return true; + _data = data; } } \ No newline at end of file diff --git a/Assets/Scripts/ServerShared/Behaviors/ConstantWeapon.cs b/Assets/Scripts/ServerShared/Behaviors/ConstantWeapon.cs index 473ed5eba..e7f9a98b2 100644 --- a/Assets/Scripts/ServerShared/Behaviors/ConstantWeapon.cs +++ b/Assets/Scripts/ServerShared/Behaviors/ConstantWeapon.cs @@ -14,7 +14,12 @@ public class ConstantWeaponData : WeaponData [InspectablePrefab, JsonProperty("ammoInterval"), Key(17)] public float AmmoInterval = 1; - public override IBehavior CreateInstance(EquippedItem item) + public override Behavior CreateInstance(EquippedItem item) + { + return new ConstantWeapon(this, item); + } + + public override Behavior CreateInstance(ConsumableItemEffect item) { return new ConstantWeapon(this, item); } @@ -62,12 +67,17 @@ public class ConstantWeapon : Weapon, IProgressBehavior, IEventBehavior _data = data; } + public ConstantWeapon(ConstantWeaponData data, ConsumableItemEffect item) : base(data, item) + { + _data = data; + } + public override bool Execute(float dt) { base.Execute(dt); if (_firing) { - if (!Item.Entity.TryConsumeEnergy(Item.Evaluate(_data.Energy) * dt)) + if (!Entity.TryConsumeEnergy(Evaluate(_data.Energy) * dt)) { _firing = false; OnStopFiring?.Invoke(); @@ -93,7 +103,7 @@ public class ConstantWeapon : Weapon, IProgressBehavior, IEventBehavior if (_data.MagazineSize > 1 && _ammo > 0) _ammo--; else { - var cargo = Item.Entity.FindItemInCargo(_data.AmmoType); + var cargo = Entity.FindItemInCargo(_data.AmmoType); if (cargo != null) { var item = cargo.ItemsOfType[_data.AmmoType][0]; @@ -115,11 +125,9 @@ public class ConstantWeapon : Weapon, IProgressBehavior, IEventBehavior } } - var dmg = Item.Wear * dt; - Item.EquippableItem.Durability -= dmg; - Item.Entity.ItemDamage.OnNext((Item, dmg)); - Item.AddHeat(Item.Evaluate(_data.Heat) * dt); - Item.Entity.VisibilitySources[this] = Item.Evaluate(_data.Visibility); + CauseWearDamage(dt); + AddHeat(Evaluate(_data.Heat) * dt); + Entity.VisibilitySources[this] = Evaluate(_data.Visibility); } return true; } diff --git a/Assets/Scripts/ServerShared/Behaviors/Cooldown.cs b/Assets/Scripts/ServerShared/Behaviors/Cooldown.cs index 47f6da01f..b397dd50e 100644 --- a/Assets/Scripts/ServerShared/Behaviors/Cooldown.cs +++ b/Assets/Scripts/ServerShared/Behaviors/Cooldown.cs @@ -15,30 +15,36 @@ public class CooldownData : BehaviorData [Inspectable, JsonProperty("cooldown"), Key(1), RuntimeInspectable] public PerformanceStat Cooldown = new PerformanceStat(); - public override IBehavior CreateInstance(EquippedItem item) + public override Behavior CreateInstance(EquippedItem item) + { + return new Cooldown(this, item); + } + + public override Behavior CreateInstance(ConsumableItemEffect item) { return new Cooldown(this, item); } } -public class Cooldown : IBehavior, IAlwaysUpdatedBehavior, IProgressBehavior +public class Cooldown : Behavior, IAlwaysUpdatedBehavior, IProgressBehavior { private CooldownData _data; - public BehaviorData Data => _data; - - private EquippedItem Item { get; } private float _cooldown; // Normalized public float Progress => saturate(_cooldown); - public Cooldown(CooldownData data, EquippedItem item) + public Cooldown(CooldownData data, EquippedItem item) : base(data, item) { _data = data; - Item = item; } - public bool Execute(float dt) + public Cooldown(CooldownData data, ConsumableItemEffect item) : base(data, item) + { + _data = data; + } + + public override bool Execute(float dt) { if (_cooldown < 0) { @@ -47,11 +53,10 @@ public class Cooldown : IBehavior, IAlwaysUpdatedBehavior, IProgressBehavior } return false; - } public void Update(float delta) { - _cooldown -= delta / Item.Evaluate(_data.Cooldown); + _cooldown -= delta / Evaluate(_data.Cooldown); } } \ No newline at end of file diff --git a/Assets/Scripts/ServerShared/Behaviors/EnergyDraw.cs b/Assets/Scripts/ServerShared/Behaviors/EnergyDraw.cs index 382139155..faf8ae709 100644 --- a/Assets/Scripts/ServerShared/Behaviors/EnergyDraw.cs +++ b/Assets/Scripts/ServerShared/Behaviors/EnergyDraw.cs @@ -16,28 +16,33 @@ public class EnergyDrawData : BehaviorData [Inspectable, JsonProperty("perSecond"), Key(2)] public bool PerSecond; - public override IBehavior CreateInstance(EquippedItem item) + public override Behavior CreateInstance(EquippedItem item) + { + return new EnergyDraw(this, item); + } + + public override Behavior CreateInstance(ConsumableItemEffect item) { return new EnergyDraw(this, item); } } -public class EnergyDraw : IBehavior +public class EnergyDraw : Behavior { private EnergyDrawData _data; - private EquippedItem Item { get; } - - public BehaviorData Data => _data; - - public EnergyDraw(EnergyDrawData data, EquippedItem item) + public EnergyDraw(EnergyDrawData data, EquippedItem item) : base(data, item) { _data = data; - Item = item; } - public bool Execute(float dt) + public EnergyDraw(EnergyDrawData data, ConsumableItemEffect item) : base(data, item) { - return Item.Entity.TryConsumeEnergy(Item.Evaluate(_data.EnergyDraw) * (_data.PerSecond ? dt : 1)); + _data = data; + } + + public override bool Execute(float dt) + { + return Entity.TryConsumeEnergy(Evaluate(_data.EnergyDraw) * (_data.PerSecond ? dt : 1)); } } \ No newline at end of file diff --git a/Assets/Scripts/ServerShared/Behaviors/Heat.cs b/Assets/Scripts/ServerShared/Behaviors/Heat.cs index 49c0082fb..e507d2b28 100644 --- a/Assets/Scripts/ServerShared/Behaviors/Heat.cs +++ b/Assets/Scripts/ServerShared/Behaviors/Heat.cs @@ -16,29 +16,33 @@ public class HeatData : BehaviorData [Inspectable, JsonProperty("perSecond"), Key(2)] public bool PerSecond; - public override IBehavior CreateInstance(EquippedItem item) + public override Behavior CreateInstance(EquippedItem item) + { + return new Heat(this, item); + } + + public override Behavior CreateInstance(ConsumableItemEffect item) { return new Heat(this, item); } } -public class Heat : IBehavior +public class Heat : Behavior { private HeatData _data; - private EquippedItem Item { get; } - - public BehaviorData Data => _data; - - public Heat(HeatData data, EquippedItem item) + public Heat(HeatData data, EquippedItem item) : base(data, item) + { + _data = data; + } + public Heat(HeatData data, ConsumableItemEffect item) : base(data, item) { _data = data; - Item = item; } - public bool Execute(float dt) + public override bool Execute(float dt) { - Item.AddHeat(Item.Evaluate(_data.Heat) * (_data.PerSecond ? dt : 1)); + AddHeat(Evaluate(_data.Heat) * (_data.PerSecond ? dt : 1)); return true; } diff --git a/Assets/Scripts/ServerShared/Behaviors/HeatStorage.cs b/Assets/Scripts/ServerShared/Behaviors/HeatStorage.cs index 956a65adf..02edcb121 100644 --- a/Assets/Scripts/ServerShared/Behaviors/HeatStorage.cs +++ b/Assets/Scripts/ServerShared/Behaviors/HeatStorage.cs @@ -11,28 +11,27 @@ using static Unity.Mathematics.math; [Inspectable, MessagePackObject, JsonObject(MemberSerialization.OptIn), RuntimeInspectable] public class HeatStorageData : BehaviorData { - public override IBehavior CreateInstance(EquippedItem item) + public override Behavior CreateInstance(EquippedItem item) + { + return new HeatStorage(this, item); + } + public override Behavior CreateInstance(ConsumableItemEffect item) { return new HeatStorage(this, item); } } -public class HeatStorage : IBehavior +public class HeatStorage : Behavior { private HeatStorageData _data; - public EquippedItem Item { get; } - - public BehaviorData Data => _data; - - public HeatStorage(HeatStorageData data, EquippedItem item) + public HeatStorage(HeatStorageData data, EquippedItem item) : base(data, item) { _data = data; - Item = item; } - public bool Execute(float dt) + public HeatStorage(HeatStorageData data, ConsumableItemEffect item) : base(data, item) { - return true; + _data = data; } } \ No newline at end of file diff --git a/Assets/Scripts/ServerShared/Behaviors/InstantWeapon.cs b/Assets/Scripts/ServerShared/Behaviors/InstantWeapon.cs index e8a5637fa..50ea6ae53 100644 --- a/Assets/Scripts/ServerShared/Behaviors/InstantWeapon.cs +++ b/Assets/Scripts/ServerShared/Behaviors/InstantWeapon.cs @@ -21,7 +21,12 @@ public class InstantWeaponData : WeaponData [InspectablePrefab, JsonProperty("ammoInterval"), Key(20)] public bool SingleAmmoBurst; - public override IBehavior CreateInstance(EquippedItem item) + public override Behavior CreateInstance(EquippedItem item) + { + return new InstantWeapon(this, item); + } + + public override Behavior CreateInstance(ConsumableItemEffect item) { return new InstantWeapon(this, item); } @@ -77,11 +82,17 @@ public class InstantWeapon : Weapon, IProgressBehavior, IEventBehavior _ammo = data.MagazineSize; } + public InstantWeapon(InstantWeaponData data, ConsumableItemEffect item) : base(data, item) + { + _data = data; + _ammo = data.MagazineSize; + } + protected void Trigger() { // If 1 ammo is consumed per burst, perform ammo and energy consumption here // UseAmmo returns false when triggering reload; cancel firing if that is the case - if(_data.SingleAmmoBurst && (!Item.Entity.TryConsumeEnergy(Energy) || !UseAmmo())) return; + if(_data.SingleAmmoBurst && (!Entity.TryConsumeEnergy(Energy) || !UseAmmo())) return; _burstRemaining = (int) BurstCount; _burstInterval = BurstTime / _burstRemaining; @@ -93,9 +104,9 @@ public class InstantWeapon : Weapon, IProgressBehavior, IEventBehavior protected override void UpdateStats() { base.UpdateStats(); - BurstCount = Item.Evaluate(_data.Count); - BurstTime = Item.Evaluate(_data.BurstTime); - Cooldown = Item.Evaluate(_data.Cooldown); + BurstCount = Evaluate(_data.Count); + BurstTime = Evaluate(_data.BurstTime); + Cooldown = Evaluate(_data.Cooldown); Damage /= (int) BurstCount; Heat /= (int) BurstCount; @@ -115,7 +126,7 @@ public class InstantWeapon : Weapon, IProgressBehavior, IEventBehavior var hasAmmo = true; if (_data.AmmoType != Guid.Empty) { - var cargo = Item.Entity.FindItemInCargo(_data.AmmoType); + var cargo = Entity.FindItemInCargo(_data.AmmoType); if (cargo != null) { var item = cargo.ItemsOfType[_data.AmmoType][0]; @@ -160,7 +171,7 @@ public class InstantWeapon : Weapon, IProgressBehavior, IEventBehavior { // If multiple ammo is consumed per burst, perform ammo and energy consumption here // UseAmmo returns false when triggering reload; cancel firing if that is the case - if (!_data.SingleAmmoBurst && (!Item.Entity.TryConsumeEnergy(Energy) || !UseAmmo())) + if (!_data.SingleAmmoBurst && (!Entity.TryConsumeEnergy(Energy) || !UseAmmo())) { _burstRemaining = 0; return false; @@ -169,10 +180,9 @@ public class InstantWeapon : Weapon, IProgressBehavior, IEventBehavior _burstRemaining--; _burstTimer -= _burstInterval; OnFire?.Invoke(); - Item.EquippableItem.Durability -= Item.Wear; - Item.Entity.ItemDamage.OnNext((Item, Item.Wear)); - Item.AddHeat(Heat); - Item.Entity.VisibilitySources[this] = Visibility; + CauseWearDamage(1); + AddHeat(Heat); + Entity.VisibilitySources[this] = Visibility; } return true; } diff --git a/Assets/Scripts/ServerShared/Behaviors/ItemUsage.cs b/Assets/Scripts/ServerShared/Behaviors/ItemUsage.cs index 52b05af7e..f5dda8a5f 100644 --- a/Assets/Scripts/ServerShared/Behaviors/ItemUsage.cs +++ b/Assets/Scripts/ServerShared/Behaviors/ItemUsage.cs @@ -13,29 +13,34 @@ public class ItemUsageData : BehaviorData [InspectableDatabaseLink(typeof(SimpleCommodityData)), JsonProperty("item"), Key(1), RuntimeInspectable] public Guid Item; - public override IBehavior CreateInstance(EquippedItem item) + public override Behavior CreateInstance(EquippedItem item) + { + return new ItemUsage(this, item); + } + + public override Behavior CreateInstance(ConsumableItemEffect item) { return new ItemUsage(this, item); } } -public class ItemUsage : IBehavior +public class ItemUsage : Behavior { private ItemUsageData _data; - private EquippedItem Item { get; } - - public BehaviorData Data => _data; - - public ItemUsage(ItemUsageData data, EquippedItem item) + public ItemUsage(ItemUsageData data, EquippedItem item) : base(data, item) { _data = data; - Item = item; } - public bool Execute(float dt) + public ItemUsage(ItemUsageData data, ConsumableItemEffect item) : base(data, item) { - var cargo = Item.Entity.FindItemInCargo(_data.Item); + _data = data; + } + + public override bool Execute(float dt) + { + var cargo = Entity.FindItemInCargo(_data.Item); if (cargo == null) return false; var item = cargo.ItemsOfType[_data.Item][0]; diff --git a/Assets/Scripts/ServerShared/Behaviors/Launcher.cs b/Assets/Scripts/ServerShared/Behaviors/Launcher.cs index f5aca298e..5e6ea44c0 100644 --- a/Assets/Scripts/ServerShared/Behaviors/Launcher.cs +++ b/Assets/Scripts/ServerShared/Behaviors/Launcher.cs @@ -27,7 +27,7 @@ public class LauncherData : LockWeaponData [Inspectable, JsonProperty("missileSpeed"), Key(31), RuntimeInspectable] public PerformanceStat MissileVelocity = new PerformanceStat(); - public override IBehavior CreateInstance(EquippedItem item) + public override Behavior CreateInstance(EquippedItem item) { return new LockWeapon(this, item); } @@ -54,7 +54,7 @@ public class GuidedWeaponData : InstantWeaponData [Inspectable, JsonProperty("missileSpeed"), Key(26), RuntimeInspectable] public PerformanceStat MissileVelocity = new PerformanceStat(); - public override IBehavior CreateInstance(EquippedItem item) + public override Behavior CreateInstance(EquippedItem item) { return new InstantWeapon(this, item); } diff --git a/Assets/Scripts/ServerShared/Behaviors/LockWeapon.cs b/Assets/Scripts/ServerShared/Behaviors/LockWeapon.cs index fca86aebd..dc6fd230a 100644 --- a/Assets/Scripts/ServerShared/Behaviors/LockWeapon.cs +++ b/Assets/Scripts/ServerShared/Behaviors/LockWeapon.cs @@ -24,7 +24,11 @@ public class LockWeaponData : InstantWeaponData [Inspectable, JsonProperty("decay"), Key(25)] public PerformanceStat Decay = new PerformanceStat(); - public override IBehavior CreateInstance(EquippedItem item) + public override Behavior CreateInstance(EquippedItem item) + { + return new LockWeapon(this, item); + } + public override Behavior CreateInstance(ConsumableItemEffect item) { return new LockWeapon(this, item); } @@ -49,7 +53,7 @@ public class LockWeapon : InstantWeapon public override float Progress => saturate(_cooldown > 0 ? _cooldown : _lock); - public override bool CanFire => base.CanFire && _lock > .99f && Item.Entity.TargetRange > MinRange && Item.Entity.TargetRange < Range; + public override bool CanFire => base.CanFire && _lock > .99f && Entity.TargetRange > MinRange && Entity.TargetRange < Range; public float Lock { @@ -60,28 +64,32 @@ public class LockWeapon : InstantWeapon { _data = data; } + public LockWeapon(LockWeaponData data, ConsumableItemEffect item) : base(data, item) + { + _data = data; + } public override bool Execute(float dt) { - if (_target != Item.Entity.Target.Value) + if (_target != Entity.Target.Value) { _lock = 0; - _target = Item.Entity.Target.Value; + _target = Entity.Target.Value; } - if (Item.Entity.Target.Value != null && Item.Entity.Target.Value.IsHostileTo(Item.Entity)) + if (Entity.Target.Value != null && Entity.Target.Value.IsHostileTo(Entity)) { - LockSpeed = Item.Evaluate(_data.LockSpeed); - SensorImpact = Item.Evaluate(_data.SensorImpact); - LockAngle = Item.Evaluate(_data.LockAngle); - DirectionImpact = Item.Evaluate(_data.DirectionImpact); - Decay = Item.Evaluate(_data.Decay); + LockSpeed = Evaluate(_data.LockSpeed); + SensorImpact = Evaluate(_data.SensorImpact); + LockAngle = Evaluate(_data.LockAngle); + DirectionImpact = Evaluate(_data.DirectionImpact); + Decay = Evaluate(_data.Decay); - var degrees = acos(dot(normalize(Item.Entity.Target.Value.Position - Item.Entity.Position), normalize(Item.Entity.LookDirection))) * 57.2958f; + var degrees = acos(dot(normalize(Entity.Target.Value.Position - Entity.Position), normalize(Entity.LookDirection))) * 57.2958f; if (degrees < LockAngle) { var lerp = 1 - unlerp(0, 90, degrees); - _lock = saturate(_lock + pow(lerp, DirectionImpact) * dt * LockSpeed * pow(Item.Entity.EntityInfoGathered[Item.Entity.Target.Value], SensorImpact)); + _lock = saturate(_lock + pow(lerp, DirectionImpact) * dt * LockSpeed * pow(Entity.EntityInfoGathered[Entity.Target.Value], SensorImpact)); } else _lock = saturate(_lock - dt * Decay); } diff --git a/Assets/Scripts/ServerShared/Behaviors/MiningTool.cs b/Assets/Scripts/ServerShared/Behaviors/MiningTool.cs index 40426583a..0596060dd 100644 --- a/Assets/Scripts/ServerShared/Behaviors/MiningTool.cs +++ b/Assets/Scripts/ServerShared/Behaviors/MiningTool.cs @@ -24,45 +24,49 @@ public class MiningToolData : BehaviorData [Inspectable, JsonProperty("range"), Key(4)] public PerformanceStat Range = new PerformanceStat(); - public override IBehavior CreateInstance(EquippedItem item) + public override Behavior CreateInstance(EquippedItem item) + { + return new MiningTool(this, item); + } + public override Behavior CreateInstance(ConsumableItemEffect item) { return new MiningTool(this, item); } } -public class MiningTool : IBehavior +public class MiningTool : Behavior { public Guid AsteroidBelt; public int Asteroid; private MiningToolData _data; - - private EquippedItem Item { get; } - - public BehaviorData Data => _data; public float Range { get; private set; } - public MiningTool(MiningToolData data, EquippedItem item) + public MiningTool(MiningToolData data, EquippedItem item) : base(data, item) { _data = data; - Item = item; } - public bool Execute(float dt) + public MiningTool(MiningToolData data, ConsumableItemEffect item) : base(data, item) { - Range = Item.Evaluate(_data.Range); - var belt = Item.Entity.Zone.AsteroidBelts[AsteroidBelt]; + _data = data; + } + + public override bool Execute(float dt) + { + Range = Evaluate(_data.Range); + var belt = Entity.Zone.AsteroidBelts[AsteroidBelt]; if (AsteroidBelt != Guid.Empty && - Item.Entity.Zone.AsteroidExists(AsteroidBelt, Asteroid) && - length(Item.Entity.Position.xz - belt.Positions[Asteroid].xz) - belt.Scales[Asteroid] < Range) + Entity.Zone.AsteroidExists(AsteroidBelt, Asteroid) && + length(Entity.Position.xz - belt.Positions[Asteroid].xz) - belt.Scales[Asteroid] < Range) { - Item.Entity.Zone.MineAsteroid( - Item.Entity, + Entity.Zone.MineAsteroid( + Entity, AsteroidBelt, Asteroid, - Item.Evaluate(_data.DamagePerSecond) * dt, - Item.Evaluate(_data.Efficiency), - Item.Evaluate(_data.Penetration)); + Evaluate(_data.DamagePerSecond) * dt, + Evaluate(_data.Efficiency), + Evaluate(_data.Penetration)); return true; } diff --git a/Assets/Scripts/ServerShared/Behaviors/Radiator.cs b/Assets/Scripts/ServerShared/Behaviors/Radiator.cs index e5a9065e5..1549a8d40 100644 --- a/Assets/Scripts/ServerShared/Behaviors/Radiator.cs +++ b/Assets/Scripts/ServerShared/Behaviors/Radiator.cs @@ -25,19 +25,24 @@ public class RadiatorData : BehaviorData [Inspectable, JsonProperty("energyUsage"), Key(5), RuntimeInspectable] public PerformanceStat EnergyUsage = new PerformanceStat(); - public override IBehavior CreateInstance(EquippedItem item) + [Inspectable, JsonProperty("thermalMass"), Key(6), RuntimeInspectable] + public PerformanceStat ThermalMass = new PerformanceStat(); + + public override Behavior CreateInstance(EquippedItem item) + { + return new Radiator(this, item); + } + + public override Behavior CreateInstance(ConsumableItemEffect item) { return new Radiator(this, item); } } -public class Radiator : IBehavior, IAlwaysUpdatedBehavior, IInitializableBehavior +public class Radiator : Behavior, IAlwaysUpdatedBehavior, IInitializableBehavior { - public EquippedItem Item { get; } - public float Temperature { get; private set; } - - public BehaviorData Data => _data; - + public float RadiatorTemperature { get; private set; } + public float Emissivity { get; private set; } public float PumpedHeat { get; private set; } public float WasteHeat { get; private set; } @@ -45,25 +50,28 @@ public class Radiator : IBehavior, IAlwaysUpdatedBehavior, IInitializableBehavio private RadiatorData _data; - public Radiator(RadiatorData data, EquippedItem item) + public Radiator(RadiatorData data, EquippedItem item) : base(data, item) + { + _data = data; + } + public Radiator(RadiatorData data, ConsumableItemEffect item) : base(data, item) { _data = data; - Item = item; } - public bool Execute(float dt) + public override bool Execute(float dt) { - PumpedHeat = Item.Evaluate(_data.PumpedHeat); - WasteHeat = Item.Evaluate(_data.WasteHeat); - EnergyUsage = Item.Evaluate(_data.EnergyUsage); + PumpedHeat = Evaluate(_data.PumpedHeat); + WasteHeat = Evaluate(_data.WasteHeat); + EnergyUsage = Evaluate(_data.EnergyUsage); - var itemTemperature = Item.Temperature; - var tempRatio = max(Temperature / itemTemperature, 1); + var itemTemperature = Temperature; + var tempRatio = max(RadiatorTemperature / itemTemperature, 1); // Temperature ratio would cause more waste heat than pump capacity, stop executing if (tempRatio > PumpedHeat / WasteHeat) return true; - if (!Item.Entity.TryConsumeEnergy(EnergyUsage * tempRatio * dt)) return false; + if (!Entity.TryConsumeEnergy(EnergyUsage * tempRatio * dt)) return false; var pumpedHeat = PumpedHeat * max(itemTemperature - _data.TemperatureFloor, 0); @@ -72,22 +80,22 @@ public class Radiator : IBehavior, IAlwaysUpdatedBehavior, IInitializableBehavio var wasteHeat = WasteHeat * tempRatio; - Item.AddHeat((wasteHeat - pumpedHeat) * dt); - Temperature += pumpedHeat / Item.ItemManager.GetThermalMass(Item.EquippableItem) * dt; + AddHeat((wasteHeat - pumpedHeat) * dt); + RadiatorTemperature += pumpedHeat / Evaluate(_data.ThermalMass) * dt; return true; } public void Update(float delta) { - Emissivity = Item.Evaluate(_data.Emissivity); - var rad = pow(Temperature, Item.ItemManager.GameplaySettings.HeatRadiationExponent) * Item.ItemManager.GameplaySettings.HeatRadiationMultiplier * Emissivity; - Temperature -= rad * delta; - Item.Entity.VisibilitySources[this] = rad; + Emissivity = Evaluate(_data.Emissivity); + var rad = pow(RadiatorTemperature, ItemManager.GameplaySettings.HeatRadiationExponent) * ItemManager.GameplaySettings.HeatRadiationMultiplier * Emissivity; + RadiatorTemperature -= rad * delta; + Entity.VisibilitySources[this] = rad; } public void Initialize() { - Temperature = Item.Temperature; + RadiatorTemperature = Temperature; } } \ No newline at end of file diff --git a/Assets/Scripts/ServerShared/Behaviors/Reactor.cs b/Assets/Scripts/ServerShared/Behaviors/Reactor.cs index 20df3c4a7..642444acc 100644 --- a/Assets/Scripts/ServerShared/Behaviors/Reactor.cs +++ b/Assets/Scripts/ServerShared/Behaviors/Reactor.cs @@ -2,6 +2,7 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ +using System; using System.Collections.Generic; using System.Linq; using MessagePack; @@ -25,45 +26,55 @@ public class ReactorData : BehaviorData [Inspectable, JsonProperty("underload"), Key(4), RuntimeInspectable] public PerformanceStat ThrottlingFactor = new PerformanceStat(); - public override IBehavior CreateInstance(EquippedItem item) + public override Behavior CreateInstance(EquippedItem item) + { + return new Reactor(this, item); + } + + public override Behavior CreateInstance(ConsumableItemEffect item) { return new Reactor(this, item); } } -public class Reactor : IBehavior, IOrderedBehavior +public class Reactor : Behavior, IOrderedBehavior, IDisposable { private ReactorData _data; - public Entity Entity { get; } - public EquippedItem Item { get; } - public ItemManager Context { get; } - public float Draw { get; private set; } public float CurrentLoadRatio { get; private set; } public int Order => 100; - public BehaviorData Data => _data; - private List _capacitors; - public Reactor(ReactorData data, EquippedItem item) + private List _subscriptions = new List(); + + public Reactor(ReactorData data, EquippedItem item) : base(data, item) { _data = data; - Item = item; - _capacitors = Item.Entity.GetBehaviors().ToList(); - Item.Entity.Equipment.ObserveAdd().Subscribe(onAdd => + FindCapacitors(); + } + public Reactor(ReactorData data, ConsumableItemEffect item) : base(data, item) + { + _data = data; + FindCapacitors(); + } + + private void FindCapacitors() + { + _capacitors = Entity.GetBehaviors().ToList(); + _subscriptions.Add(Entity.Equipment.ObserveAdd().Subscribe(onAdd => { var capacitor = onAdd.Value.GetBehavior(); if (capacitor != null) _capacitors.Add(capacitor); - }); - Item.Entity.Equipment.ObserveRemove().Subscribe(onRemove => + })); + _subscriptions.Add(Entity.Equipment.ObserveRemove().Subscribe(onRemove => { var capacitor = onRemove.Value.GetBehavior(); if (capacitor != null) _capacitors.Remove(capacitor); - }); + })); } public void ConsumeEnergy(float energy) @@ -71,10 +82,10 @@ public class Reactor : IBehavior, IOrderedBehavior Draw += energy; } - public bool Execute(float dt) + public override bool Execute(float dt) { - var charge = Item.Evaluate(_data.Charge) * dt; - var efficiency = Item.Evaluate(_data.Efficiency); + var charge = Evaluate(_data.Charge) * dt; + var efficiency = Evaluate(_data.Efficiency); // This behavior executes last, so any components drawing power have already done so @@ -88,7 +99,7 @@ public class Reactor : IBehavior, IOrderedBehavior if (Draw > .01f) { CurrentLoadRatio = (Draw + charge) / max(charge, .01f); - var overloadEfficiency = Item.Evaluate(_data.OverloadEfficiency); + var overloadEfficiency = Evaluate(_data.OverloadEfficiency); // Generate heat using overload efficiency, usually much less efficient! heat += Draw / overloadEfficiency; @@ -121,7 +132,7 @@ public class Reactor : IBehavior, IOrderedBehavior if (Draw < -.01f) { CurrentLoadRatio = (Draw + charge) / max(charge, .01f); - heat -= Draw / efficiency * (1 - 1 / Item.Evaluate(_data.ThrottlingFactor)); + heat -= Draw / efficiency * (1 - 1 / Evaluate(_data.ThrottlingFactor)); Draw = 0; } else @@ -129,7 +140,13 @@ public class Reactor : IBehavior, IOrderedBehavior CurrentLoadRatio = 1; } - Item.AddHeat(heat); + AddHeat(heat); return true; } + + public void Dispose() + { + foreach(var sub in _subscriptions) + sub.Dispose(); + } } \ No newline at end of file diff --git a/Assets/Scripts/ServerShared/Behaviors/Reflector.cs b/Assets/Scripts/ServerShared/Behaviors/Reflector.cs index eea92e1be..cb23004b0 100644 --- a/Assets/Scripts/ServerShared/Behaviors/Reflector.cs +++ b/Assets/Scripts/ServerShared/Behaviors/Reflector.cs @@ -16,29 +16,34 @@ public class ReflectorData : BehaviorData // [InspectableAnimationCurve, JsonProperty("visibility"), Key(1)] // public float4[] VisibilityCurve; - public override IBehavior CreateInstance(EquippedItem item) + public override Behavior CreateInstance(EquippedItem item) + { + return new Reflector(this, item); + } + + public override Behavior CreateInstance(ConsumableItemEffect item) { return new Reflector(this, item); } } -public class Reflector : IBehavior +public class Reflector : Behavior { - public EquippedItem Item { get; } - - public BehaviorData Data => _data; - private ReflectorData _data; - public Reflector(ReflectorData data, EquippedItem item) + public Reflector(ReflectorData data, EquippedItem item) : base(data, item) { _data = data; - Item = item; } - public bool Execute(float dt) + public Reflector(ReflectorData data, ConsumableItemEffect item) : base(data, item) { - Item.Entity.VisibilitySources[this] = Item.Evaluate(_data.CrossSection) * Item.Entity.Zone.GetLight(Item.Entity.Position.xz); + _data = data; + } + + public override bool Execute(float dt) + { + Entity.VisibilitySources[this] = Evaluate(_data.CrossSection) * Entity.Zone.GetLight(Entity.Position.xz); return true; } diff --git a/Assets/Scripts/ServerShared/Behaviors/ResourceScanner.cs b/Assets/Scripts/ServerShared/Behaviors/ResourceScanner.cs index 452885047..b71f56fde 100644 --- a/Assets/Scripts/ServerShared/Behaviors/ResourceScanner.cs +++ b/Assets/Scripts/ServerShared/Behaviors/ResourceScanner.cs @@ -21,13 +21,18 @@ public class ResourceScannerData : BehaviorData [Inspectable, JsonProperty("scanDuration"), Key(3), RuntimeInspectable] public PerformanceStat ScanDuration = new PerformanceStat(); - public override IBehavior CreateInstance(EquippedItem item) + public override Behavior CreateInstance(EquippedItem item) + { + return new ResourceScanner(this, item); + } + + public override Behavior CreateInstance(ConsumableItemEffect item) { return new ResourceScanner(this, item); } } -public class ResourceScanner : IBehavior, IAlwaysUpdatedBehavior +public class ResourceScanner : Behavior, IAlwaysUpdatedBehavior { public int Asteroid = -1; @@ -35,9 +40,6 @@ public class ResourceScanner : IBehavior, IAlwaysUpdatedBehavior private float _scanTime; private Guid _scanTarget; - private EquippedItem Item { get; } - - public BehaviorData Data => _data; public float Range { get; private set; } public float MinimumDensity { get; private set; } public float ScanDuration { get; private set; } @@ -55,22 +57,26 @@ public class ResourceScanner : IBehavior, IAlwaysUpdatedBehavior } } - public ResourceScanner(ResourceScannerData data, EquippedItem item) + public ResourceScanner(ResourceScannerData data, EquippedItem item) : base(data, item) { _data = data; - Item = item; } - public bool Execute(float dt) + public ResourceScanner(ResourceScannerData data, ConsumableItemEffect item) : base(data, item) { - var planetData = Item.Entity.Zone.Planets[ScanTarget]; + _data = data; + } + + public override bool Execute(float dt) + { + var planetData = Entity.Zone.Planets[ScanTarget]; if (planetData != null) { if (planetData is AsteroidBeltData beltData) { if(Asteroid > -1 && Asteroid < beltData.Asteroids.Length && - length(Item.Entity.Position.xz - Item.Entity.Zone.AsteroidBelts[ScanTarget].Positions[Asteroid].xz) < Range) + length(Entity.Position.xz - Entity.Zone.AsteroidBelts[ScanTarget].Positions[Asteroid].xz) < Range) { _scanTime += dt; if (_scanTime > ScanDuration) @@ -84,7 +90,7 @@ public class ResourceScanner : IBehavior, IAlwaysUpdatedBehavior } else { - if(length(Item.Entity.Position.xz - Item.Entity.Zone.GetOrbitPosition(planetData.Orbit)) < Range) + if(length(Entity.Position.xz - Entity.Zone.GetOrbitPosition(planetData.Orbit)) < Range) { _scanTime += dt; if (_scanTime > ScanDuration) @@ -101,8 +107,8 @@ public class ResourceScanner : IBehavior, IAlwaysUpdatedBehavior public void Update(float delta) { - Range = Item.Evaluate(_data.Range); - MinimumDensity = Item.Evaluate(_data.MinimumDensity); - ScanDuration = Item.Evaluate(_data.ScanDuration); + Range = Evaluate(_data.Range); + MinimumDensity = Evaluate(_data.MinimumDensity); + ScanDuration = Evaluate(_data.ScanDuration); } } \ No newline at end of file diff --git a/Assets/Scripts/ServerShared/Behaviors/Sensor.cs b/Assets/Scripts/ServerShared/Behaviors/Sensor.cs index c1456302e..d967ea8a3 100644 --- a/Assets/Scripts/ServerShared/Behaviors/Sensor.cs +++ b/Assets/Scripts/ServerShared/Behaviors/Sensor.cs @@ -39,13 +39,18 @@ public class SensorData : BehaviorData [Inspectable, JsonProperty("pingRadiusExponent"), Key(11)] public float PingRadiusExponent = .5f; - public override IBehavior CreateInstance(EquippedItem item) + public override Behavior CreateInstance(EquippedItem item) + { + return new Sensor(this, item); + } + + public override Behavior CreateInstance(ConsumableItemEffect item) { return new Sensor(this, item); } } -public class Sensor : IBehavior, IEventBehavior +public class Sensor : Behavior, IEventBehavior { private SensorData _data; private float _pingCooldown; @@ -54,10 +59,6 @@ public class Sensor : IBehavior, IEventBehavior private float _pingRadius; private HashSet _pingedEntities = new HashSet(); - private EquippedItem Item { get; } - - public BehaviorData Data => _data; - public float Cooldown { get => saturate(_pingCooldown); @@ -81,9 +82,9 @@ public class Sensor : IBehavior, IEventBehavior public void Ping() { - if(_pingCooldown < 0 && Item.Entity.TryConsumeEnergy(Item.Evaluate(_data.PingEnergy))) + if(_pingCooldown < 0 && Entity.TryConsumeEnergy(Evaluate(_data.PingEnergy))) { - Item.Entity.VisibilitySources[this] = Item.Evaluate(_data.PingVisibility); + Entity.VisibilitySources[this] = Evaluate(_data.PingVisibility); _pinging = true; _pingCooldown = 1; _pingLerp = 0; @@ -93,18 +94,22 @@ public class Sensor : IBehavior, IEventBehavior } } - public Sensor(SensorData data, EquippedItem item) + public Sensor(SensorData data, EquippedItem item) : base(data, item) { _data = data; - Item = item; } - public bool Execute(float dt) + public Sensor(SensorData data, ConsumableItemEffect item) : base(data, item) + { + _data = data; + } + + public override bool Execute(float dt) { if (_pinging) { _pingLerp += dt / _data.PingDuration; - _pingRadius = lerp(0, Item.Evaluate(_data.PingRange), pow(_pingLerp, _data.PingRadiusExponent)); + _pingRadius = lerp(0, Evaluate(_data.PingRange), pow(_pingLerp, _data.PingRadiusExponent)); if (_pingLerp > 1) { _pinging = false; @@ -112,30 +117,27 @@ public class Sensor : IBehavior, IEventBehavior } } - _pingCooldown -= dt / Item.Evaluate(_data.PingCooldown); + _pingCooldown -= dt / Evaluate(_data.PingCooldown); // TODO: Handle Active Detection / Visibility From Reflected Radiance - var hardpoint = Item.Entity.Hardpoints[Item.Position.x, Item.Position.y]; - var forward = hardpoint != null && Item.Entity.HardpointTransforms.ContainsKey(hardpoint) ? - normalize(Item.Entity.HardpointTransforms[hardpoint].direction.xz) : - Item.Entity.Direction; - foreach (var entity in Item.Entity.Zone.Entities) + var forward = Direction.xz; + foreach (var entity in Entity.Zone.Entities) { - if (entity == Item.Entity) continue; + if (entity == Entity) continue; - var diff = entity.Position.xz - Item.Entity.Position.xz; + var diff = entity.Position.xz - Entity.Position.xz; var angle = acos(dot(forward, normalize(diff))); var dist = length(diff); float previous, next; - Item.Entity.EntityInfoGathered.TryGetValue(entity, out previous); + Entity.EntityInfoGathered.TryGetValue(entity, out previous); if (!_pingedEntities.Contains(entity) && dist < _pingRadius) { _pingedEntities.Add(entity); next = saturate( previous + entity.Visibility * - Item.Evaluate(_data.Sensitivity) * - Item.Evaluate(_data.PingBoost) * + Evaluate(_data.Sensitivity) * + Evaluate(_data.PingBoost) * dist); } else @@ -143,13 +145,13 @@ public class Sensor : IBehavior, IEventBehavior next = saturate( previous + entity.Visibility * - Item.Evaluate(_data.Sensitivity) * + Evaluate(_data.Sensitivity) * _data.SensitivityCurve.Evaluate(angle / PI) * dt / dist); } - next *= 1 - Item.ItemManager.GameplaySettings.TargetInfoDecay * dt; + next *= 1 - ItemManager.GameplaySettings.TargetInfoDecay * dt; //Context.Log($"{entity.Name} visibility {(int)(previous * 100)}% -> {(int)(next * 100)}%"); - Item.Entity.EntityInfoGathered[entity] = next; + Entity.EntityInfoGathered[entity] = next; } return true; } diff --git a/Assets/Scripts/ServerShared/Behaviors/Shield.cs b/Assets/Scripts/ServerShared/Behaviors/Shield.cs index a1dc6069e..b3e0b60ee 100644 --- a/Assets/Scripts/ServerShared/Behaviors/Shield.cs +++ b/Assets/Scripts/ServerShared/Behaviors/Shield.cs @@ -16,44 +16,48 @@ public class ShieldData : BehaviorData [Inspectable, JsonProperty("energy"), Key(2), RuntimeInspectable] public PerformanceStat EnergyUsage = new PerformanceStat(); - public override IBehavior CreateInstance(EquippedItem item) + public override Behavior CreateInstance(EquippedItem item) + { + return new Shield(this, item); + } + public override Behavior CreateInstance(ConsumableItemEffect item) { return new Shield(this, item); } } -public class Shield : IBehavior +public class Shield : Behavior { - public EquippedItem Item { get; } - public float Efficiency { get; private set; } public float EnergyUsage { get; private set; } - public BehaviorData Data => _data; private ShieldData _data; - public Shield(ShieldData data, EquippedItem item) + public Shield(ShieldData data, EquippedItem item) : base(data, item) + { + _data = data; + } + public Shield(ShieldData data, ConsumableItemEffect item) : base(data, item) { _data = data; - Item = item; } - public bool Execute(float dt) + public override bool Execute(float dt) { - Efficiency = Item.Evaluate(_data.Efficiency); - EnergyUsage = Item.Evaluate(_data.EnergyUsage); + Efficiency = Evaluate(_data.Efficiency); + EnergyUsage = Evaluate(_data.EnergyUsage); return true; } public bool CanTakeHit(DamageType type, float damage) { - return Item.Entity.CanConsumeEnergy(damage * EnergyUsage); + return Entity.CanConsumeEnergy(damage * EnergyUsage); } public void TakeHit(DamageType type, float damage) { - Item.Entity.TryConsumeEnergy(damage * EnergyUsage); - Item.AddHeat(damage / Efficiency); + Entity.TryConsumeEnergy(damage * EnergyUsage); + AddHeat(damage / Efficiency); } } \ No newline at end of file diff --git a/Assets/Scripts/ServerShared/Behaviors/StatModifier.cs b/Assets/Scripts/ServerShared/Behaviors/StatModifier.cs index f065f96ca..353de0850 100644 --- a/Assets/Scripts/ServerShared/Behaviors/StatModifier.cs +++ b/Assets/Scripts/ServerShared/Behaviors/StatModifier.cs @@ -22,19 +22,21 @@ public class StatModifierData : BehaviorData [InspectableType(typeof(BehaviorData)), JsonProperty("requireBehavior"), Key(4)] public Type RequireBehavior; - public override IBehavior CreateInstance(EquippedItem item) + public override Behavior CreateInstance(EquippedItem item) { return new StatModifier(this, item); } + + public override Behavior CreateInstance(ConsumableItemEffect consumable) + { + return new StatModifier(this, consumable); + } } [Order(-4)] -public class StatModifier : IBehavior, IInitializableBehavior, IDisposableBehavior +public class StatModifier : Behavior, IInitializableBehavior, IDisposable { private StatModifierData _data; - private EquippedItem Item { get; } - - public BehaviorData Data => _data; private PerformanceStat[] _stats; @@ -43,10 +45,14 @@ public class StatModifier : IBehavior, IInitializableBehavior, IDisposableBehavi private static Type[] StatObjects => _statObjects = _statObjects ?? typeof(BehaviorData).GetAllChildClasses() .Concat(typeof(EquippableItemData).GetAllChildClasses()).ToArray(); - public StatModifier(StatModifierData data, EquippedItem item) + public StatModifier(StatModifierData data, EquippedItem item) : base(data, item) + { + _data = data; + } + + public StatModifier(StatModifierData data, ConsumableItemEffect item) : base(data, item) { _data = data; - Item = item; } public void Initialize() @@ -59,17 +65,17 @@ public class StatModifier : IBehavior, IInitializableBehavior, IDisposableBehavi if (statField != null) { if (typeof(EquippableItemData).IsAssignableFrom(targetType)) - _stats = Item.Entity.Equipment + _stats = Entity.Equipment .Select(hp => hp.EquippableItem) - .Where(gear => _data.RequireBehavior == null || Item.ItemManager.GetData(gear).Behaviors.Any(behavior => behavior.GetType() == _data.RequireBehavior)) - .Where(gear => Item.ItemManager.GetData(gear).GetType() == targetType) - .Select(gear => statField.GetValue(Item.ItemManager.GetData(gear)) as PerformanceStat) + .Where(gear => _data.RequireBehavior == null || ItemManager.GetData(gear).Behaviors.Any(behavior => behavior.GetType() == _data.RequireBehavior)) + .Where(gear => ItemManager.GetData(gear).GetType() == targetType) + .Select(gear => statField.GetValue(ItemManager.GetData(gear)) as PerformanceStat) .ToArray(); else - _stats = Item.Entity.Equipment + _stats = Entity.Equipment .Select(hp => hp.EquippableItem) - .Where(gear => _data.RequireBehavior == null || Item.ItemManager.GetData(gear).Behaviors.Any(behavior => behavior.GetType() == _data.RequireBehavior)) - .SelectMany(gear => Item.ItemManager.GetData(gear).Behaviors) + .Where(gear => _data.RequireBehavior == null || ItemManager.GetData(gear).Behaviors.Any(behavior => behavior.GetType() == _data.RequireBehavior)) + .SelectMany(gear => ItemManager.GetData(gear).Behaviors) .Where(behaviorData => behaviorData.GetType() == targetType) .Select(behaviorData => statField.GetValue(behaviorData) as PerformanceStat) .ToArray(); @@ -77,19 +83,19 @@ public class StatModifier : IBehavior, IInitializableBehavior, IDisposableBehavi } } - public bool Execute(float dt) + public override bool Execute(float dt) { foreach (var stat in _stats) (_data.Type == StatModifierType.Constant - ? stat.GetConstantModifiers(Item.Entity) - : stat.GetScaleModifiers(Item.Entity))[this] = Item.Evaluate(_data.Modifier); + ? stat.GetConstantModifiers(Entity) + : stat.GetScaleModifiers(Entity))[this] = Evaluate(_data.Modifier); return true; } public void Dispose() { foreach (var stat in _stats) - (_data.Type == StatModifierType.Constant ? stat.GetConstantModifiers(Item.Entity) : stat.GetScaleModifiers(Item.Entity)).Remove(this); + (_data.Type == StatModifierType.Constant ? stat.GetConstantModifiers(Entity) : stat.GetScaleModifiers(Entity)).Remove(this); } } diff --git a/Assets/Scripts/ServerShared/Behaviors/Switch.cs b/Assets/Scripts/ServerShared/Behaviors/Switch.cs index 41d6d019a..d76ce8a9c 100644 --- a/Assets/Scripts/ServerShared/Behaviors/Switch.cs +++ b/Assets/Scripts/ServerShared/Behaviors/Switch.cs @@ -10,29 +10,32 @@ using Newtonsoft.Json; [Inspectable, MessagePackObject, JsonObject(MemberSerialization.OptIn), Order(-25)] public class SwitchData : BehaviorData { - public override IBehavior CreateInstance(EquippedItem item) + public override Behavior CreateInstance(EquippedItem item) + { + return new Switch(this, item); + } + public override Behavior CreateInstance(ConsumableItemEffect item) { return new Switch(this, item); } } -public class Switch : IBehavior +public class Switch : Behavior { private SwitchData _data; - private EquippedItem Item { get; } - - public BehaviorData Data => _data; - public bool Activated { get; set; } - public Switch(SwitchData data, EquippedItem item) + public Switch(SwitchData data, EquippedItem item) : base(data, item) + { + _data = data; + } + public Switch(SwitchData data, ConsumableItemEffect item) : base(data, item) { _data = data; - Item = item; } - public bool Execute(float dt) + public override bool Execute(float dt) { return Activated; } diff --git a/Assets/Scripts/ServerShared/Behaviors/Thermotoggle.cs b/Assets/Scripts/ServerShared/Behaviors/Thermotoggle.cs index cdb1d7e49..009a04c9e 100644 --- a/Assets/Scripts/ServerShared/Behaviors/Thermotoggle.cs +++ b/Assets/Scripts/ServerShared/Behaviors/Thermotoggle.cs @@ -19,31 +19,36 @@ public class ThermotoggleData : BehaviorData [Inspectable, JsonProperty("adjustable"), Key(3)] public bool Adjustable; - public override IBehavior CreateInstance(EquippedItem item) + public override Behavior CreateInstance(EquippedItem item) + { + return new Thermotoggle(this, item); + } + public override Behavior CreateInstance(ConsumableItemEffect item) { return new Thermotoggle(this, item); } } -public class Thermotoggle : IBehavior +public class Thermotoggle : Behavior { public float TargetTemperature; private ThermotoggleData _data; - private EquippedItem Item { get; } - - public BehaviorData Data => _data; public ThermotoggleData ThermotoggleData => _data; - public Thermotoggle(ThermotoggleData data, EquippedItem item) + public Thermotoggle(ThermotoggleData data, EquippedItem item) : base(data, item) + { + _data = data; + TargetTemperature = data.TargetTemperature; + } + public Thermotoggle(ThermotoggleData data, ConsumableItemEffect item) : base(data, item) { _data = data; - Item = item; TargetTemperature = data.TargetTemperature; } - public bool Execute(float dt) + public override bool Execute(float dt) { - return Item.Temperature < TargetTemperature ^ _data.HighPass; + return Temperature < TargetTemperature ^ _data.HighPass; } } \ No newline at end of file diff --git a/Assets/Scripts/ServerShared/Behaviors/Thruster.cs b/Assets/Scripts/ServerShared/Behaviors/Thruster.cs index 601d3be99..8be3aff58 100644 --- a/Assets/Scripts/ServerShared/Behaviors/Thruster.cs +++ b/Assets/Scripts/ServerShared/Behaviors/Thruster.cs @@ -25,16 +25,19 @@ public class ThrusterData : BehaviorData [InspectablePrefab, JsonProperty("Particles"), Key(5)] public string ParticlesPrefab; - public override IBehavior CreateInstance(EquippedItem item) + public override Behavior CreateInstance(EquippedItem item) + { + return new Thruster(this, item); + } + + public override Behavior CreateInstance(ConsumableItemEffect item) { return new Thruster(this, item); } } -public class Thruster : IAnalogBehavior +public class Thruster : Behavior, IAnalogBehavior { - public EquippedItem Item { get; } - public float Thrust { get; private set; } public float Torque { get; } @@ -44,37 +47,41 @@ public class Thruster : IAnalogBehavior set => _input = saturate(value); } - public BehaviorData Data => _data; - private ThrusterData _data; private float _input; - public Thruster(ThrusterData data, EquippedItem item) + public Thruster(ThrusterData data, EquippedItem item) : base(data, item) { _data = data; - Item = item; - var hullData = Item.ItemManager.GetData(Item.Entity.Hull) as HullData; + var hullData = ItemManager.GetData(Entity.Hull) as HullData; var hullCenter = hullData.Shape.CenterOfMass; - var itemData = Item.ItemManager.GetData(item.EquippableItem); + var itemData = ItemManager.GetData(item.EquippableItem); var itemCenter = hullData.Shape.Inset(itemData.Shape, item.Position, item.EquippableItem.Rotation).CenterOfMass; var toCenter = hullCenter - itemCenter; Torque = -dot(normalize(toCenter), float2(1, 0).Rotate(item.EquippableItem.Rotation)); - Thrust = Item.Evaluate(_data.Thrust); + Thrust = Evaluate(_data.Thrust); } - public bool Execute(float dt) + public Thruster(ThrusterData data, ConsumableItemEffect item) : base(data, item) { - if(_input > .01f && Item.Entity.TryConsumeEnergy(_input * Item.Evaluate(_data.EnergyUsage))) + _data = data; + Torque = 0; + Thrust = Evaluate(_data.Thrust); + } + + public override bool Execute(float dt) + { + if(_input > .01f && Entity.TryConsumeEnergy(_input * Evaluate(_data.EnergyUsage))) { - Thrust = Item.Evaluate(_data.Thrust); - Item.Entity.Velocity -= Item.Entity.Direction.Rotate(Item.EquippableItem.Rotation) * _input * Thrust / Item.Entity.Mass * dt; - Item.Entity.Direction = mul(Item.Entity.Direction, - Unity.Mathematics.float2x2.Rotate(_input * Torque * Thrust * Item.ItemManager.GameplaySettings.TorqueMultiplier / Item.Entity.Mass * dt)); - Item.AddHeat(_input * Item.Evaluate(_data.Heat) * dt); - var vis = _input * Item.Evaluate(_data.Visibility); - if (!Item.Entity.VisibilitySources.ContainsKey(this) || vis > Item.Entity.VisibilitySources[this]) - Item.Entity.VisibilitySources[this] = vis; + Thrust = Evaluate(_data.Thrust); + Entity.Velocity -= Direction.xz * _input * Thrust / Entity.Mass * dt; + Entity.Direction = mul(Entity.Direction, + Unity.Mathematics.float2x2.Rotate(_input * Torque * Thrust * ItemManager.GameplaySettings.TorqueMultiplier / Entity.Mass * dt)); + AddHeat(_input * Evaluate(_data.Heat) * dt); + var vis = _input * Evaluate(_data.Visibility); + if (!Entity.VisibilitySources.ContainsKey(this) || vis > Entity.VisibilitySources[this]) + Entity.VisibilitySources[this] = vis; return true; } return false; diff --git a/Assets/Scripts/ServerShared/Behaviors/Trigger.cs b/Assets/Scripts/ServerShared/Behaviors/Trigger.cs index d70111c97..26262d8a7 100644 --- a/Assets/Scripts/ServerShared/Behaviors/Trigger.cs +++ b/Assets/Scripts/ServerShared/Behaviors/Trigger.cs @@ -10,29 +10,24 @@ using Newtonsoft.Json; [Inspectable, MessagePackObject, JsonObject(MemberSerialization.OptIn), Order(-20)] public class TriggerData : BehaviorData { - public override IBehavior CreateInstance(EquippedItem item) + public override Behavior CreateInstance(EquippedItem item) + { + return new Trigger(this, item); + } + public override Behavior CreateInstance(ConsumableItemEffect item) { return new Trigger(this, item); } } -public class Trigger : IBehavior, IActivatedBehavior +public class Trigger : Behavior, IActivatedBehavior { - private TriggerData _data; - - public EquippedItem Item { get; } - - public BehaviorData Data => _data; - public bool _pulled; - public Trigger(TriggerData data, EquippedItem item) - { - _data = data; - Item = item; - } + public Trigger(TriggerData data, EquippedItem item) : base(data, item) { } + public Trigger(TriggerData data, ConsumableItemEffect item) : base(data, item) { } - public bool Execute(float dt) + public override bool Execute(float dt) { if (_pulled) { diff --git a/Assets/Scripts/ServerShared/Behaviors/TurretController.cs b/Assets/Scripts/ServerShared/Behaviors/TurretController.cs index a7d9b0801..a1d7f6ea6 100644 --- a/Assets/Scripts/ServerShared/Behaviors/TurretController.cs +++ b/Assets/Scripts/ServerShared/Behaviors/TurretController.cs @@ -14,84 +14,74 @@ using float3 = Unity.Mathematics.float3; [MessagePackObject, JsonObject(MemberSerialization.OptIn), RuntimeInspectable] public class TurretControllerData : BehaviorData { - public override IBehavior CreateInstance(EquippedItem item) + public override Behavior CreateInstance(EquippedItem item) + { + return new TurretController(this, item); + } + public override Behavior CreateInstance(ConsumableItemEffect item) { return new TurretController(this, item); } } -public class TurretController : IBehavior +public class TurretController : Behavior, IInitializableBehavior { private TurretControllerData _data; private List _weapons = new List(); private float _shotSpeed; private bool _predictShots; - public EquippedItem Item { get; } - - public BehaviorData Data => _data; - - public TurretController(TurretControllerData data, EquippedItem item) + public TurretController(TurretControllerData data, EquippedItem item) : base(data, item) { _data = data; - Item = item; - var weapons = Item.Entity.Equipment.Where(e => e.Behaviors.Any(b => b.Data is WeaponData)); - foreach (var weapon in weapons) - { - CheckWeapon(weapon); - } - - Item.Entity.Equipment.ObserveAdd().Subscribe(add => CheckWeapon(add.Value)); - Item.Entity.Equipment.ObserveRemove().Subscribe(remove => - { - foreach (var b in remove.Value.Behaviors) - if (b is Weapon weapon) - _weapons.Remove(weapon); - }); } - private void CheckWeapon(EquippedItem item) + public TurretController(TurretControllerData data, ConsumableItemEffect item) : base(data, item) { - foreach (var b in item.Behaviors) - if (b is Weapon weapon) + _data = data; + } + + public void Initialize() + { + foreach (var weapon in Entity.GetBehaviors()) + { + _weapons.Add(weapon); + var vel = weapon.Evaluate(weapon.WeaponData.Velocity); + if (vel > .1f) { - _weapons.Add(weapon); - var vel = weapon.Item.Evaluate(weapon.WeaponData.Velocity); - if (vel > .1f) - { - _predictShots = true; - _shotSpeed = vel; - } + _predictShots = true; + _shotSpeed = vel; } + } } - public bool Execute(float dt) + public override bool Execute(float dt) { - if (Item.Entity.Target.Value != null) + if (Entity.Target.Value != null) { - var diff = Item.Entity.Target.Value.Position - Item.Entity.Position; + var diff = Entity.Target.Value.Position - Entity.Position; if (_predictShots) { - var targetHullData = Item.Entity.ItemManager.GetData(Item.Entity.Target.Value.Hull) as HullData; - var targetVelocity = float3(Item.Entity.Target.Value.Velocity.x, 0, Item.Entity.Target.Value.Velocity.y); + var targetHullData = Entity.ItemManager.GetData(Entity.Target.Value.Hull) as HullData; + var targetVelocity = float3(Entity.Target.Value.Velocity.x, 0, Entity.Target.Value.Velocity.y); var predictedPosition = AetheriaMath.FirstOrderIntercept( - Item.Entity.Position, float3.zero, _shotSpeed, - Item.Entity.Target.Value.Position, targetVelocity + Entity.Position, float3.zero, _shotSpeed, + Entity.Target.Value.Position, targetVelocity ); - predictedPosition.y = Item.Entity.Zone.GetHeight(predictedPosition.xz) + targetHullData.GridOffset; - Item.Entity.LookDirection = normalize(predictedPosition - Item.Entity.Position); + predictedPosition.y = Entity.Zone.GetHeight(predictedPosition.xz) + targetHullData.GridOffset; + Entity.LookDirection = normalize(predictedPosition - Entity.Position); } else - Item.Entity.LookDirection = normalize(diff); + Entity.LookDirection = normalize(diff); var dist = length(diff); foreach (var x in _weapons) { var data = x.Data as WeaponData; var fire = dot( - Item.Entity.HardpointTransforms[Item.Entity.Hardpoints[x.Item.Position.x, x.Item.Position.y]].direction, - Item.Entity.LookDirection) > .99f; - if (x.Item.Evaluate(data.Range) > dist && fire) + x.Direction, + Entity.LookDirection) > .99f; + if (x.Evaluate(data.Range) > dist && fire) { x.Activate(); } @@ -106,7 +96,7 @@ public class TurretController : IBehavior if (x.Firing) x.Deactivate(); } - Item.Entity.Target.Value = Item.Entity.VisibleHostiles.FirstOrDefault(e => e is Ship); + Entity.Target.Value = Entity.VisibleHostiles.FirstOrDefault(e => e is Ship); } return true; } diff --git a/Assets/Scripts/ServerShared/Behaviors/VelocityConversion.cs b/Assets/Scripts/ServerShared/Behaviors/VelocityConversion.cs index 2e6d61c15..35a89bfed 100644 --- a/Assets/Scripts/ServerShared/Behaviors/VelocityConversion.cs +++ b/Assets/Scripts/ServerShared/Behaviors/VelocityConversion.cs @@ -10,31 +10,35 @@ using static Unity.Mathematics.math; [MessagePackObject, JsonObject(MemberSerialization.OptIn), RuntimeInspectable] public class VelocityConversionData : BehaviorData { - [Inspectable, JsonProperty("traction"), Key(1), RuntimeInspectable] - public PerformanceStat Traction = new PerformanceStat(); + [Inspectable, JsonProperty("lambda"), Key(1), RuntimeInspectable] + public PerformanceStat Lambda = new PerformanceStat(); - public override IBehavior CreateInstance(EquippedItem item) + public override Behavior CreateInstance(EquippedItem item) + { + return new VelocityConversion(this, item); + } + public override Behavior CreateInstance(ConsumableItemEffect item) { return new VelocityConversion(this, item); } } -public class VelocityConversion : IBehavior +public class VelocityConversion : Behavior { - public EquippedItem Item { get; } - - public BehaviorData Data => _data; - private VelocityConversionData _data; - public VelocityConversion(VelocityConversionData data, EquippedItem item) + public VelocityConversion(VelocityConversionData data, EquippedItem item) : base(data, item) + { + _data = data; + } + public VelocityConversion(VelocityConversionData data, ConsumableItemEffect item) : base(data, item) { _data = data; - Item = item; } - public bool Execute(float dt) + public override bool Execute(float dt) { + Entity.Velocity = AetheriaMath.Damp(Entity.Velocity, Entity.Direction * length(Entity.Velocity), Evaluate(_data.Lambda), dt); return true; } } \ No newline at end of file diff --git a/Assets/Scripts/ServerShared/Behaviors/VelocityLimit.cs b/Assets/Scripts/ServerShared/Behaviors/VelocityLimit.cs index 78cc75935..2b66d512b 100644 --- a/Assets/Scripts/ServerShared/Behaviors/VelocityLimit.cs +++ b/Assets/Scripts/ServerShared/Behaviors/VelocityLimit.cs @@ -13,35 +13,40 @@ public class VelocityLimitData : BehaviorData [Inspectable, JsonProperty("topSpeed"), Key(1), RuntimeInspectable] public PerformanceStat TopSpeed = new PerformanceStat(); - public override IBehavior CreateInstance(EquippedItem item) + public override Behavior CreateInstance(EquippedItem item) + { + return new VelocityLimit(this, item); + } + public override Behavior CreateInstance(ConsumableItemEffect item) { return new VelocityLimit(this, item); } } [Order(100)] -public class VelocityLimit : IBehavior +public class VelocityLimit : Behavior { - public EquippedItem Item { get; } - public float Limit { get; private set; } - public BehaviorData Data => _data; - private VelocityLimitData _data; - public VelocityLimit(VelocityLimitData data, EquippedItem item) + public VelocityLimit(VelocityLimitData data, EquippedItem item) : base(data, item) { _data = data; - Item = item; - Limit = Item.Evaluate(_data.TopSpeed); + Limit = Evaluate(_data.TopSpeed); } - public bool Execute(float dt) + public VelocityLimit(VelocityLimitData data, ConsumableItemEffect item) : base(data, item) { - Limit = Item.Evaluate(_data.TopSpeed); - if (length(Item.Entity.Velocity) > Limit) - Item.Entity.Velocity = normalize(Item.Entity.Velocity) * Limit; + _data = data; + Limit = Evaluate(_data.TopSpeed); + } + + public override bool Execute(float dt) + { + Limit = Evaluate(_data.TopSpeed); + if (length(Entity.Velocity) > Limit) + Entity.Velocity = normalize(Entity.Velocity) * Limit; return true; } } \ No newline at end of file diff --git a/Assets/Scripts/ServerShared/Behaviors/Visibility.cs b/Assets/Scripts/ServerShared/Behaviors/Visibility.cs index 57c31ab8d..1311f7cff 100644 --- a/Assets/Scripts/ServerShared/Behaviors/Visibility.cs +++ b/Assets/Scripts/ServerShared/Behaviors/Visibility.cs @@ -16,31 +16,32 @@ public class VisibilityData : BehaviorData [Inspectable, JsonProperty("visibilityDecay"), Key(2)] public PerformanceStat VisibilityDecay = new PerformanceStat(); - public override IBehavior CreateInstance(EquippedItem item) + public override Behavior CreateInstance(EquippedItem item) + { + return new Visibility(this, item); + } + public override Behavior CreateInstance(ConsumableItemEffect item) { return new Visibility(this, item); } } -public class Visibility : IBehavior +public class Visibility : Behavior { private VisibilityData _data; - private EquippedItem Item { get; } - - public BehaviorData Data => _data; - - private float _cooldown; // Normalized - - public Visibility(VisibilityData data, EquippedItem item) + public Visibility(VisibilityData data, EquippedItem item) : base(data, item) + { + _data = data; + } + public Visibility(VisibilityData data, ConsumableItemEffect item) : base(data, item) { _data = data; - Item = item; } - public bool Execute(float dt) + public override bool Execute(float dt) { - Item.Entity.VisibilitySources[this] = Item.Evaluate(_data.Visibility); + Entity.VisibilitySources[this] = Evaluate(_data.Visibility); return true; } } \ No newline at end of file diff --git a/Assets/Scripts/ServerShared/Behaviors/Weapon.cs b/Assets/Scripts/ServerShared/Behaviors/Weapon.cs index 3a7ebe28e..5af38dd5b 100644 --- a/Assets/Scripts/ServerShared/Behaviors/Weapon.cs +++ b/Assets/Scripts/ServerShared/Behaviors/Weapon.cs @@ -67,17 +67,14 @@ public abstract class WeaponData : BehaviorData public PerformanceStat Velocity = new PerformanceStat(); } -public abstract class Weapon : IActivatedBehavior +public abstract class Weapon : Behavior, IActivatedBehavior { private WeaponData _data; - - public EquippedItem Item { get; } public abstract float DamagePerSecond { get; } public abstract float RangeDamagePerSecond(float range); public abstract int Ammo { get; } public WeaponData WeaponData => _data; - public BehaviorData Data => _data; public float Damage { get; protected set; } public float Penetration { get; protected set; } @@ -96,29 +93,32 @@ public abstract class Weapon : IActivatedBehavior { get => _firing; } - - - public Weapon(WeaponData data, EquippedItem item) + + public Weapon(WeaponData data, EquippedItem item) : base(data, item) + { + _data = data; + } + + public Weapon(WeaponData data, ConsumableItemEffect item) : base(data, item) { - Item = item; _data = data; } protected virtual void UpdateStats() { - Damage = Item.Evaluate(_data.Damage); - Penetration = Item.Evaluate(_data.Penetration); - DamageSpread = Item.Evaluate(_data.DamageSpread); - MinRange = Item.Evaluate(_data.MinRange); - Range = Item.Evaluate(_data.Range); - Energy = Item.Evaluate(_data.Energy); - Heat = Item.Evaluate(_data.Heat); - Visibility = Item.Evaluate(_data.Visibility); - Spread = Item.Evaluate(_data.Spread); - Velocity = Item.Evaluate(_data.Velocity); + Damage = Evaluate(_data.Damage); + Penetration = Evaluate(_data.Penetration); + DamageSpread = Evaluate(_data.DamageSpread); + MinRange = Evaluate(_data.MinRange); + Range = Evaluate(_data.Range); + Energy = Evaluate(_data.Energy); + Heat = Evaluate(_data.Heat); + Visibility = Evaluate(_data.Visibility); + Spread = Evaluate(_data.Spread); + Velocity = Evaluate(_data.Velocity); } - public virtual bool Execute(float dt) + public override bool Execute(float dt) { UpdateStats(); return true; diff --git a/Assets/Scripts/ServerShared/Behaviors/Wear.cs b/Assets/Scripts/ServerShared/Behaviors/Wear.cs index 4e9ccee87..945206bad 100644 --- a/Assets/Scripts/ServerShared/Behaviors/Wear.cs +++ b/Assets/Scripts/ServerShared/Behaviors/Wear.cs @@ -14,39 +14,32 @@ public class WearData : BehaviorData [InspectableTemperature, JsonProperty("perSecond"), Key(1)] public bool PerSecond = true; - public override IBehavior CreateInstance(EquippedItem item) + public override Behavior CreateInstance(EquippedItem item) + { + return new Wear(this, item); + } + public override Behavior CreateInstance(ConsumableItemEffect item) { return new Wear(this, item); } } -public class Wear : IBehavior +public class Wear : Behavior { private WearData _data; - public EquippedItem Item { get; } - - public BehaviorData Data => _data; - - public Wear(WearData data, EquippedItem item) + public Wear(WearData data, EquippedItem item) : base(data, item) + { + _data = data; + } + public Wear(WearData data, ConsumableItemEffect item) : base(data, item) { _data = data; - Item = item; } - public bool Execute(float dt) + public override bool Execute(float dt) { - if (_data.PerSecond) - { - var dmg = Item.Wear * dt; - Item.EquippableItem.Durability -= dmg; - Item.Entity.ItemDamage.OnNext((Item, dmg)); - } - else - { - Item.EquippableItem.Durability -= Item.Wear; - Item.Entity.ItemDamage.OnNext((Item, Item.Wear)); - } + CauseWearDamage(_data.PerSecond ? dt : 1); return true; } } \ No newline at end of file diff --git a/Assets/Scripts/ServerShared/CultCache/ReflectionExtensions.cs b/Assets/Scripts/ServerShared/CultCache/ReflectionExtensions.cs index 58261db30..cdc04824b 100644 --- a/Assets/Scripts/ServerShared/CultCache/ReflectionExtensions.cs +++ b/Assets/Scripts/ServerShared/CultCache/ReflectionExtensions.cs @@ -103,7 +103,7 @@ public static class ReflectionExtensions public static string FormatTypeName(this string typeName) { - return (typeName.EndsWith("Data") + return (typeName.EndsWith("Data", StringComparison.InvariantCultureIgnoreCase) ? typeName.Substring(0, typeName.Length - 4) : typeName).SplitCamelCase(); } diff --git a/Assets/Scripts/ServerShared/Entity.cs b/Assets/Scripts/ServerShared/Entity.cs index 447e99f8c..0777aceea 100644 --- a/Assets/Scripts/ServerShared/Entity.cs +++ b/Assets/Scripts/ServerShared/Entity.cs @@ -15,6 +15,7 @@ public abstract class Entity public Zone Zone; public Faction Faction; public EquippableItem Hull; + public EquippedItem EquippedHull; public float3 Position; public float2 Direction = float2(0,1); @@ -62,6 +63,9 @@ public abstract class Entity private List _capacitors = new List(); private List _reactors = new List(); private List _heatsinks = new List(); + + private List _activeConsumables = new List(); + protected bool _active; private bool _heatsinksEnabled = true; @@ -208,6 +212,34 @@ public abstract class Entity EntityInfoGathered.ObserveRemove().Subscribe(remove => VisibleEntities.Remove(remove.Key)); } + public void ActivateConsumable(ConsumableItem item) + { + _activeConsumables.Add(new ConsumableItemEffect(item, this)); + } + + public ConsumableItemEffect FindActiveConsumable(ConsumableItemData data) + { + return _activeConsumables.FirstOrDefault(ac => ac.Data.ID == data.ID); + } + + public bool CanActivateConsumable(ConsumableItemData data) + { + return data.Stackable || FindActiveConsumable(data) == null; + } + + public bool TryActivateConsumable(ConsumableItemData data) + { + if (!CanActivateConsumable(data)) return false; + + var bay = FindItemInCargo(data.ID); + if (bay == null) return false; + + var item = (ConsumableItem) bay.ItemsOfType[data.ID].First(); + ActivateConsumable(item); + bay.Remove(item); + return true; + } + public bool IsHostileTo(Entity other) { if (Faction == null) @@ -221,7 +253,8 @@ public abstract class Entity private void MapEntity() { var hullData = ItemManager.GetData(Hull) as HullData; - Equipment.Add(new EquippedItem(ItemManager, Hull, int2.zero, this)); + EquippedHull = new EquippedItem(ItemManager, Hull, int2.zero, this); + Equipment.Add(EquippedHull); Mass = hullData.Mass; Temperature = new float[hullData.Shape.Width, hullData.Shape.Height]; NewTemperature = new float[hullData.Shape.Width, hullData.Shape.Height]; @@ -257,7 +290,8 @@ public abstract class Entity public void GenerateTriggerGroups() { foreach (var group in Weapons - .GroupBy(w => w.Item.EquippableItem.Data) + .GroupBy(w => w.Item.EquippableItem.Data.LinkID) + .OrderBy(wg=>wg.Average(w=>w.Range)) .Select((weapons, index) => (weapons, index))) { TriggerGroups[group.index].weapons = group.weapons.ToList(); @@ -695,7 +729,7 @@ public abstract class Entity Parent = null; } - public T GetBehavior() where T : class, IBehavior + public T GetBehavior() where T : Behavior { foreach (var equippedItem in Equipment) if(equippedItem.Behaviors != null) @@ -705,7 +739,7 @@ public abstract class Entity return null; } - public IEnumerable GetBehaviors() where T : class, IBehavior + public IEnumerable GetBehaviors() where T : Behavior { foreach (var equippedItem in Equipment) if(equippedItem.Behaviors != null) @@ -779,12 +813,13 @@ public abstract class Entity { if(Cockpit != null) { - if (Cockpit.Item.Temperature > ItemManager.GameplaySettings.HeatstrokeTemperature) + var cockpitTemp = Cockpit.Temperature; + if (cockpitTemp > ItemManager.GameplaySettings.HeatstrokeTemperature) { var previous = Heatstroke; Heatstroke = saturate( Heatstroke + - pow(Cockpit.Item.Temperature - ItemManager.GameplaySettings.HeatstrokeTemperature, ItemManager.GameplaySettings.HeatstrokeExponent) * + pow(cockpitTemp - ItemManager.GameplaySettings.HeatstrokeTemperature, ItemManager.GameplaySettings.HeatstrokeExponent) * ItemManager.GameplaySettings.HeatstrokeMultiplier * delta); if(previous < ItemManager.GameplaySettings.SevereHeatstrokeRiskThreshold && Heatstroke > ItemManager.GameplaySettings.SevereHeatstrokeRiskThreshold) HeatstrokeRisk.OnNext(Unit.Default); @@ -798,12 +833,13 @@ public abstract class Entity { Heatstroke = saturate(Heatstroke - ItemManager.GameplaySettings.HeatstrokeRecoverySpeed * delta); } - if (Cockpit.Item.Temperature < ItemManager.GameplaySettings.HypothermiaTemperature) + + if (cockpitTemp < ItemManager.GameplaySettings.HypothermiaTemperature) { var previous = Hypothermia; Hypothermia = saturate( Hypothermia + - pow(ItemManager.GameplaySettings.HypothermiaTemperature - Cockpit.Item.Temperature, ItemManager.GameplaySettings.HypothermiaExponent) * + pow(ItemManager.GameplaySettings.HypothermiaTemperature - cockpitTemp, ItemManager.GameplaySettings.HypothermiaExponent) * ItemManager.GameplaySettings.HypothermiaMultiplier * delta); if(previous < ItemManager.GameplaySettings.SevereHeatstrokeRiskThreshold && Heatstroke > ItemManager.GameplaySettings.SevereHeatstrokeRiskThreshold) HypothermiaRisk.OnNext(Unit.Default); @@ -818,7 +854,13 @@ public abstract class Entity Hypothermia = saturate(Hypothermia - ItemManager.GameplaySettings.HypothermiaRecoverySpeed * delta); } } - + + for (var i = 0; i < _activeConsumables.Count; i++) + { + _activeConsumables[i].Update(delta); + if(_activeConsumables[i].RemainingDuration < 0) _activeConsumables.RemoveAt(i--); + } + foreach (var equippedItem in _orderedEquipment) { equippedItem.Update(delta); @@ -935,17 +977,64 @@ public abstract class Entity } } +public class ConsumableItemEffect +{ + public float RemainingDuration { get; private set; } + public Entity Entity { get; } + public ConsumableItem Item { get; } + public ConsumableItemData Data { get; } + public Behavior[] Behaviors { get; } + + public ConsumableItemEffect(ConsumableItem item, Entity entity) + { + Item = item; + Entity = entity; + Data = (ConsumableItemData) item.Data.Value; + RemainingDuration = Data.Duration; + + Behaviors = Data.StatModifiers + .Select(bd => bd.CreateInstance(this)) + .ToArray(); + } + + public void Update(float delta) + { + foreach (var behavior in Behaviors) + if(behavior is IAlwaysUpdatedBehavior alwaysUpdatedBehavior) alwaysUpdatedBehavior.Update(delta); + + foreach (var behavior in Behaviors) + { + if (!behavior.Execute(delta)) + break; + } + + RemainingDuration -= delta; + } + + public float Evaluate(PerformanceStat stat) + { + var effectiveness = Data.Effectiveness.Evaluate((Data.Duration - RemainingDuration) / Data.Duration); + var quality = pow(Item.Quality, stat.QualityExponent); + + var result = lerp(stat.Min, stat.Max, effectiveness * quality); + + if (float.IsNaN(result)) + return stat.Min; + return result; + } +} + public class EquippedItem { public int SortPosition; public EquippableItem EquippableItem; public int2 Position; - public Dictionary BehaviorGroups; private bool _thermalOnline; private bool _durabilityOnline; - public IBehavior[] Behaviors { get; } + public Behavior[] Behaviors { get; } + public Dictionary BehaviorGroups { get; } public float Conductivity { get; } public float ThermalPerformance { get; private set; } public float ThermalExponent { get; } @@ -1077,7 +1166,7 @@ public class EquippedItem } } - public T GetBehavior() where T : class, IBehavior + public T GetBehavior() where T : Behavior { foreach (var behavior in Behaviors) if (behavior is T b) @@ -1125,7 +1214,7 @@ public class EquippedCargoBay : EquippedItem // Check whether the given item will fit when its origin is placed at the given coordinate public bool ItemFits(ItemInstance item, int2 cargoCoord) { - var itemData = ItemManager.GetData(item); + var itemData = item.Data.Value; // Check every cell of the item's shape foreach (var i in itemData.Shape.Coordinates) { @@ -1249,9 +1338,9 @@ public class EquippedCargoBay : EquippedItem } Cargo[item] = cargoCoord; - if(!ItemsOfType.ContainsKey(item.Data)) - ItemsOfType[item.Data] = new List(); - ItemsOfType[item.Data].Add(item); + if(!ItemsOfType.ContainsKey(item.Data.LinkID)) + ItemsOfType[item.Data.LinkID] = new List(); + ItemsOfType[item.Data.LinkID].Add(item); } else if (Occupancy[cargoCoord.x, cargoCoord.y] is SimpleCommodity cargoCommodity && cargoCommodity.Data == item.Data) { @@ -1293,9 +1382,9 @@ public class EquippedCargoBay : EquippedItem } Cargo[item] = cargoCoord; - if(!ItemsOfType.ContainsKey(item.Data)) - ItemsOfType[item.Data] = new List(); - ItemsOfType[item.Data].Add(item); + if(!ItemsOfType.ContainsKey(item.Data.LinkID)) + ItemsOfType[item.Data.LinkID] = new List(); + ItemsOfType[item.Data.LinkID].Add(item); Mass += ItemManager.GetMass(item); ThermalMass += ItemManager.GetThermalMass(item); @@ -1318,9 +1407,9 @@ public class EquippedCargoBay : EquippedItem Occupancy[v.x, v.y] = null; Cargo.Remove(item); - ItemsOfType[item.Data].Remove(item); - if (!ItemsOfType[item.Data].Any()) - ItemsOfType.Remove(item.Data); + ItemsOfType[item.Data.LinkID].Remove(item); + if (!ItemsOfType[item.Data.LinkID].Any()) + ItemsOfType.Remove(item.Data.LinkID); Mass -= ItemManager.GetMass(item); ThermalMass -= ItemManager.GetThermalMass(item); @@ -1347,9 +1436,9 @@ public class EquippedCargoBay : EquippedItem Occupancy[v.x, v.y] = null; Cargo.Remove(item); - ItemsOfType[item.Data].Remove(item); - if (!ItemsOfType[item.Data].Any()) - ItemsOfType.Remove(item.Data); + ItemsOfType[item.Data.LinkID].Remove(item); + if (!ItemsOfType[item.Data.LinkID].Any()) + ItemsOfType.Remove(item.Data.LinkID); Mass -= ItemManager.GetMass(item); ThermalMass -= ItemManager.GetThermalMass(item); @@ -1408,9 +1497,9 @@ public class EquippedDockingBay : EquippedCargoBay public class BehaviorGroup { - public IBehavior[] Behaviors; + public Behavior[] Behaviors; - public T GetBehavior() where T : class, IBehavior + public T GetBehavior() where T : Behavior { foreach (var b in Behaviors) { @@ -1421,7 +1510,7 @@ public class BehaviorGroup return null; } - public T GetExposed() where T : class, IBehavior, IInteractiveBehavior + public T GetExposed() where T : Behavior, IInteractiveBehavior { foreach (var b in Behaviors) { diff --git a/Assets/Scripts/ServerShared/EntitySerializer.cs b/Assets/Scripts/ServerShared/EntitySerializer.cs index 41e6d2454..ff7242016 100644 --- a/Assets/Scripts/ServerShared/EntitySerializer.cs +++ b/Assets/Scripts/ServerShared/EntitySerializer.cs @@ -230,7 +230,7 @@ public abstract class EntityPack { foreach (var (_, item) in t) { - var itemData = itemManager.GetData(item); + var itemData = item.Data.Value; if (item is SimpleCommodity s) _price += itemData.Price * s.Quantity; else @@ -242,7 +242,7 @@ public abstract class EntityPack { foreach (var (_, item) in t) { - var itemData = itemManager.GetData(item); + var itemData = item.Data.Value; if (item is SimpleCommodity s) _price += itemData.Price * s.Quantity; else diff --git a/Assets/Scripts/ServerShared/ItemData.cs b/Assets/Scripts/ServerShared/ItemData.cs index df8d9a81c..f2cffbd28 100644 --- a/Assets/Scripts/ServerShared/ItemData.cs +++ b/Assets/Scripts/ServerShared/ItemData.cs @@ -284,8 +284,8 @@ public class SimpleCommodityData : ItemData [MessagePackObject, JsonObject(MemberSerialization.OptIn), JsonConverter(typeof(JsonKnownTypesConverter))] public abstract class CraftedItemData : ItemData { - [Inspectable, JsonProperty("ingredientQualityWeight"), Key(9)] - public float IngredientQualityWeight = .5f; + // [Inspectable, JsonProperty("ingredientQualityWeight"), Key(9)] + // public float IngredientQualityWeight = .5f; } [RethinkTable("Items"), Inspectable, MessagePackObject] @@ -298,7 +298,26 @@ public class CompoundCommodityData : CraftedItemData public CompoundCommodityCategory Category; } -[JsonObject(MemberSerialization.OptIn), JsonConverter(typeof(JsonKnownTypesConverter))] +[RethinkTable("Items"), Inspectable, MessagePackObject] +public class ConsumableItemData : CraftedItemData +{ + [Inspectable, JsonProperty("behaviors"), Key(10)] + public List StatModifiers = new List(); + + [Inspectable, JsonProperty("stackable"), Key(11)] + public bool Stackable; + + [Inspectable, JsonProperty("duration"), Key(12)] + public float Duration; + + [InspectableTexture, JsonProperty("icon"), Key(13)] + public string Icon; + + [Inspectable, JsonProperty("effectiveness"), Key(14)] + public BezierCurve Effectiveness; +} + +[JsonObject(MemberSerialization.OptIn)] public abstract class EquippableItemData : CraftedItemData { [InspectableTexture, JsonProperty("schematic"), Key(10)] @@ -331,6 +350,9 @@ public abstract class EquippableItemData : CraftedItemData [Inspectable, JsonProperty("sfx"), Key(19)] public string SoundEffectTrigger; + [InspectableTexture, JsonProperty("actionIcon"), Key(20)] + public string ActionBarIcon; + [IgnoreMember] public abstract HardpointType HardpointType { get; } @@ -372,7 +394,7 @@ public abstract class EquippableItemData : CraftedItemData [RethinkTable("Items"), Inspectable, MessagePackObject, JsonObject(MemberSerialization.OptIn)] public class GearData : EquippableItemData { - [Inspectable, JsonProperty("hardpointType"), Key(20)] + [Inspectable, JsonProperty("hardpointType"), Key(21)] public HardpointType Hardpoint; [IgnoreMember] public override HardpointType HardpointType => Hardpoint; @@ -381,7 +403,7 @@ public class GearData : EquippableItemData [RethinkTable("Items"), Inspectable, MessagePackObject, JsonObject(MemberSerialization.OptIn)] public class CargoBayData : EquippableItemData { - [Inspectable, JsonProperty("interiorShape"), Key(20)] + [Inspectable, JsonProperty("interiorShape"), Key(21)] public Shape InteriorShape; [IgnoreMember] public override HardpointType HardpointType => HardpointType.Tool; } @@ -389,48 +411,48 @@ public class CargoBayData : EquippableItemData [RethinkTable("Items"), Inspectable, MessagePackObject, JsonObject(MemberSerialization.OptIn)] public class DockingBayData : CargoBayData { - [Inspectable, JsonProperty("maxSize"), Key(21)] + [Inspectable, JsonProperty("maxSize"), Key(22)] public int2 MaxSize; } [RethinkTable("Items"), MessagePackObject, JsonObject(MemberSerialization.OptIn)] public class WeaponItemData : GearData { - [Inspectable, JsonProperty("range"), Key(21)] + [Inspectable, JsonProperty("range"), Key(22)] public WeaponRange WeaponRange; - [Inspectable, JsonProperty("caliber"), Key(22)] + [Inspectable, JsonProperty("caliber"), Key(23)] public WeaponCaliber WeaponCaliber; - [Inspectable, JsonProperty("weaponType"), Key(23)] + [Inspectable, JsonProperty("weaponType"), Key(24)] public WeaponType WeaponType; - [Inspectable, JsonProperty("fireTypes"), Key(24)] + [Inspectable, JsonProperty("fireTypes"), Key(25)] public WeaponFireType WeaponFireTypes; - [Inspectable, JsonProperty("modifiers"), Key(25)] + [Inspectable, JsonProperty("modifiers"), Key(26)] public WeaponModifiers WeaponModifiers; } [RethinkTable("Items"), Inspectable, MessagePackObject, JsonObject(MemberSerialization.OptIn)] public class HullData : EquippableItemData { - [Inspectable, JsonProperty("hardpoints"), Key(20)] + [Inspectable, JsonProperty("hardpoints"), Key(21)] public List Hardpoints = new List(); - [InspectablePrefab, JsonProperty("prefab"), Key(21)] + [InspectablePrefab, JsonProperty("prefab"), Key(22)] public string Prefab; - [Inspectable, JsonProperty("hullType"), Key(22)] + [Inspectable, JsonProperty("hullType"), Key(23)] public HullType HullType; - [Inspectable, JsonProperty("gridOffset"), Key(23)] + [Inspectable, JsonProperty("gridOffset"), Key(24)] public float GridOffset; - [Inspectable, JsonProperty("armor"), Key(24)] + [Inspectable, JsonProperty("armor"), Key(25)] public float Armor; - [Inspectable, JsonProperty("drag"), Key(25)] + [Inspectable, JsonProperty("drag"), Key(26)] public float Drag; [IgnoreMember] @@ -511,29 +533,29 @@ public class PerformanceStat // [JsonProperty("ingredient"), Key(5)] public Guid? Ingredient; - [IgnoreMember] private Dictionary> _scaleModifiers; - [IgnoreMember] private Dictionary> _constantModifiers; + [IgnoreMember] private Dictionary> _scaleModifiers; + [IgnoreMember] private Dictionary> _constantModifiers; [IgnoreMember] - private Dictionary> ScaleModifiers => - _scaleModifiers = _scaleModifiers ?? new Dictionary>(); + private Dictionary> ScaleModifiers => + _scaleModifiers = _scaleModifiers ?? new Dictionary>(); [IgnoreMember] - private Dictionary> ConstantModifiers => - _constantModifiers = _constantModifiers ?? new Dictionary>(); + private Dictionary> ConstantModifiers => + _constantModifiers = _constantModifiers ?? new Dictionary>(); - public Dictionary GetScaleModifiers(Entity entity) + public Dictionary GetScaleModifiers(Entity entity) { if(!ScaleModifiers.ContainsKey(entity)) - ScaleModifiers[entity] = new Dictionary(); + ScaleModifiers[entity] = new Dictionary(); return ScaleModifiers[entity]; } - public Dictionary GetConstantModifiers(Entity entity) + public Dictionary GetConstantModifiers(Entity entity) { if(!ConstantModifiers.ContainsKey(entity)) - ConstantModifiers[entity] = new Dictionary(); + ConstantModifiers[entity] = new Dictionary(); return ConstantModifiers[entity]; } diff --git a/Assets/Scripts/ServerShared/ItemInstance.cs b/Assets/Scripts/ServerShared/ItemInstance.cs index 80d2e3021..d8c7e3427 100644 --- a/Assets/Scripts/ServerShared/ItemInstance.cs +++ b/Assets/Scripts/ServerShared/ItemInstance.cs @@ -18,16 +18,18 @@ using static Unity.Mathematics.math; [Union(0, typeof(SimpleCommodity)), Union(1, typeof(CompoundCommodity)), Union(2, typeof(EquippableItem)), + Union(3, typeof(ConsumableItem)), JsonObject(MemberSerialization.OptIn), JsonConverter(typeof(JsonKnownTypesConverter))] public abstract class ItemInstance { - [JsonProperty("data"), Key(0)] public Guid Data; + [JsonProperty("data"), Key(0)] public DatabaseLink Data; [JsonProperty("rotation"), Key(1)] public ItemRotation Rotation; } [Union(0, typeof(CompoundCommodity)), Union(1, typeof(EquippableItem)), + Union(2, typeof(ConsumableItem)), JsonObject(MemberSerialization.OptIn), JsonConverter(typeof(JsonKnownTypesConverter))] public abstract class CraftedItemInstance : ItemInstance @@ -57,4 +59,9 @@ public class EquippableItem : CraftedItemInstance { [JsonProperty("durability"), Key(7)] public float Durability; [JsonProperty("override"), Key(8)] public bool OverrideShutdown; +} + +[MessagePackObject, JsonObject(MemberSerialization.OptIn)] +public class ConsumableItem : CraftedItemInstance +{ } \ No newline at end of file diff --git a/Assets/Scripts/ServerShared/ItemManager.cs b/Assets/Scripts/ServerShared/ItemManager.cs index 84d0f4eb7..371a86f02 100644 --- a/Assets/Scripts/ServerShared/ItemManager.cs +++ b/Assets/Scripts/ServerShared/ItemManager.cs @@ -107,52 +107,40 @@ public class ItemManager // return Tier[itemData]; // } - public ItemData GetData(ItemInstance item) - { - return ItemData.Get(item.Data); - } - public SimpleCommodityData GetData(SimpleCommodity item) { - return ItemData.Get(item.Data); + return item.Data.Value as SimpleCommodityData; } public CraftedItemData GetData(CraftedItemInstance item) { - return ItemData.Get(item.Data); + return item.Data.Value as CraftedItemData; } - public EquippableItemData GetData(EquippableItem equippableItem) + public EquippableItemData GetData(EquippableItem item) { - return ItemData.Get(equippableItem.Data); + return item.Data.Value as EquippableItemData; } public float GetMass(ItemInstance item) { - var data = GetData(item); - switch (item) + return item switch { - case CraftedItemInstance _: - return data.Mass; - case SimpleCommodity commodity: - return data.Mass * commodity.Quantity; - } - - return 0; + CraftedItemInstance _ => item.Data.Value.Mass, + SimpleCommodity commodity => item.Data.Value.Mass * commodity.Quantity, + _ => 0 + }; } public float GetThermalMass(ItemInstance item) { - var data = GetData(item); - switch (item) + var data = item.Data.Value; + return item switch { - case CraftedItemInstance _: - return data.Mass * data.SpecificHeat; - case SimpleCommodity commodity: - return data.Mass * data.SpecificHeat * commodity.Quantity; - } - - return 0; + CraftedItemInstance _ => data.Mass * data.SpecificHeat, + SimpleCommodity commodity => data.Mass * data.SpecificHeat * commodity.Quantity, + _ => 0 + }; } // Returns stat when not equipped @@ -184,7 +172,7 @@ public class ItemManager { var newItem = new SimpleCommodity { - Data = item.ID, + Data = new DatabaseLink{LinkID = item.ID}, Quantity = count }; //ItemData.Add(newItem); @@ -197,7 +185,7 @@ public class ItemManager public ItemInstance Instantiate(ItemInstance item) { - var data = GetData(item); + var data = item.Data.Value; if(data is CraftedItemData c) { var i = CreateInstance(c); @@ -217,18 +205,15 @@ public class ItemManager { if (item is EquippableItemData equippableItemData) { - var newGear = new EquippableItem + return new EquippableItem { - Data = item.ID, - Quality = quality + Data = new DatabaseLink {LinkID = item.ID}, Quality = quality, Durability = equippableItemData.Durability }; - newGear.Durability = equippableItemData.Durability; - return newGear; } var newCommodity = new CompoundCommodity { - Data = item.ID, + Data = new DatabaseLink{LinkID = item.ID}, Quality = quality }; return newCommodity; diff --git a/Assets/Scripts/ServerShared/SavedGame.cs b/Assets/Scripts/ServerShared/SavedGame.cs index a311a0754..e0caea6b0 100644 --- a/Assets/Scripts/ServerShared/SavedGame.cs +++ b/Assets/Scripts/ServerShared/SavedGame.cs @@ -37,6 +37,9 @@ public class SavedGame [Key(9)] public int[] DiscoveredZones; + + [Key(10)] + public SavedActionBarBinding[] ActionBarBindings; public SavedGame() { } @@ -91,4 +94,32 @@ public class SavedZone [Key(5)] public ZonePack Contents; +} + +[MessagePackObject, + Union(0, typeof(SavedActionBarConsumableBinding)), + Union(1, typeof(SavedActionBarGearBinding)), + Union(2, typeof(SavedActionBarWeaponGroupBinding)) +] +public abstract class SavedActionBarBinding +{ +} + +[MessagePackObject] +public class SavedActionBarConsumableBinding : SavedActionBarBinding +{ + [Key(0)] public DatabaseLink Target; +} + +[MessagePackObject] +public class SavedActionBarGearBinding : SavedActionBarBinding +{ + [Key(0)] public int EquipmentIndex; + [Key(1)] public int BehaviorIndex; +} + +[MessagePackObject] +public class SavedActionBarWeaponGroupBinding : SavedActionBarBinding +{ + [Key(0)] public int Group; } \ No newline at end of file diff --git a/Assets/Scripts/UI/ConsoleView.cs b/Assets/Scripts/UI/ConsoleView.cs index dd5c438d8..967ea89a0 100644 --- a/Assets/Scripts/UI/ConsoleView.cs +++ b/Assets/Scripts/UI/ConsoleView.cs @@ -21,6 +21,7 @@ public class ConsoleView : MonoBehaviour { private string _inputString = ""; private CursorLockMode _previousCursorLockMode; + private bool _playerInputPreviouslyEnabled; public string InputString { @@ -113,17 +114,19 @@ public class ConsoleView : MonoBehaviour { Visible = visible; if(visible) { + _playerInputPreviouslyEnabled = GameManager.Input.Player.enabled; GameManager.Input.Global.Disable(); - GameManager.Input.Player.Disable(); + GameManager.DisablePlayerInput(); GameManager.Input.UI.Disable(); _previousCursorLockMode = Cursor.lockState; Cursor.lockState = CursorLockMode.None; } else { + if(_playerInputPreviouslyEnabled) + GameManager.EnablePlayerInput(); + else GameManager.Input.UI.Enable(); GameManager.Input.Global.Enable(); - GameManager.Input.Player.Enable(); - GameManager.Input.UI.Enable(); Cursor.lockState = _previousCursorLockMode; } } diff --git a/Assets/Scripts/UI/InventoryMenu.cs b/Assets/Scripts/UI/InventoryMenu.cs index 466285840..2a6c76cf5 100644 --- a/Assets/Scripts/UI/InventoryMenu.cs +++ b/Assets/Scripts/UI/InventoryMenu.cs @@ -87,7 +87,7 @@ public class InventoryMenu : MonoBehaviour var item = cargoEvent.CargoBay.Occupancy[cargoEvent.Position.x, cargoEvent.Position.y]; if (item != null) { - var itemData = GameManager.ItemManager.GetData(item); + var itemData = item.Data.Value; var itemPosition = cargoEvent.CargoBay.Cargo[item]; _originalOccupancy = cargoEvent.CargoBay.Data.InteriorShape.Inset(itemData.Shape, itemPosition, item.Rotation); @@ -244,7 +244,7 @@ public class InventoryMenu : MonoBehaviour if (cargoEvent.CargoBay.ItemFits(_dragItem, _dragTargetPosition)) { foreach (var cell in _dragCells) cell.gameObject.SetActive(false); - var itemData = GameManager.ItemManager.GetData(_dragItem); + var itemData = _dragItem.Data.Value; panel.FakeItem = _dragItem; panel.FakeOccupancy = cargoEvent.CargoBay.Data.InteriorShape.Inset(itemData.Shape, _dragTargetPosition, _dragItem.Rotation); _dragTargetValid = true; @@ -258,7 +258,7 @@ public class InventoryMenu : MonoBehaviour if (eqItem != null && entityEvent.Entity.ItemFits(eqItem, _dragTargetPosition)) { foreach (var cell in _dragCells) cell.gameObject.SetActive(false); - var itemData = GameManager.ItemManager.GetData(_dragItem); + var itemData = _dragItem.Data.Value; panel.FakeEquipment = _originalEquippedItem; panel.FakeOccupancy = hullData.Shape.Inset(itemData.Shape, _dragTargetPosition, _dragItem.Rotation); _dragTargetValid = true; @@ -325,7 +325,7 @@ public class InventoryMenu : MonoBehaviour _selectedPanel = panel; _selectedPosition = cargoEvent.CargoBay.Cargo[item]; _selectedItem = item; - _selectedItemData = GameManager.ItemManager.GetData(item); + _selectedItemData = item.Data.Value; foreach (var v in _selectedItemData.Shape.Coordinates) { var v2 = _selectedItemData.Shape.Rotate(v, _selectedItem.Rotation) + _selectedPosition; diff --git a/Assets/Scripts/UI/InventoryPanel.cs b/Assets/Scripts/UI/InventoryPanel.cs index a9a328a74..2ac8f62bc 100644 --- a/Assets/Scripts/UI/InventoryPanel.cs +++ b/Assets/Scripts/UI/InventoryPanel.cs @@ -661,7 +661,7 @@ public class InventoryPanel : MonoBehaviour, IPointerClickHandler return Color.white * .25f; var c = float3(1); - if (GameManager.ItemManager.GetData(item) is EquippableItemData equippable) + if (item.Data.Value is EquippableItemData equippable) c = HardpointData.GetColor(equippable.HardpointType); if(!highlight) diff --git a/Assets/Scripts/UI/PropertiesPanel.cs b/Assets/Scripts/UI/PropertiesPanel.cs index 9424f40a2..272edbdcc 100644 --- a/Assets/Scripts/UI/PropertiesPanel.cs +++ b/Assets/Scripts/UI/PropertiesPanel.cs @@ -387,7 +387,7 @@ public class PropertiesPanel : MonoBehaviour private void AddItemProperties(ItemInstance item) { - var data = ActionGameManager.CultCache.Get(item.Data); + var data = item.Data.Value; AddProperty(data.Description); @@ -447,7 +447,7 @@ public class PropertiesPanel : MonoBehaviour private string GetTitle(EquippableItem item) { - var data = ActionGameManager.CultCache.Get(item.Data); + var data = item.Data.Value; var (tier, upgrades) = GameManager.ItemManager.GetTier(item); return $"{data.Name} ({tier.Name}{new string('+', upgrades)})"; diff --git a/Assets/Scripts/UI/SchematicDisplay.cs b/Assets/Scripts/UI/SchematicDisplay.cs index b3d345e1d..f31c40058 100644 --- a/Assets/Scripts/UI/SchematicDisplay.cs +++ b/Assets/Scripts/UI/SchematicDisplay.cs @@ -13,7 +13,6 @@ public class SchematicDisplay : MonoBehaviour { public GameSettings Settings; public Prototype ListElementPrototype; - public Prototype TriggerGroupPrototype; public Color HeaderElementEnabledColor; public Color HeaderElementDisabledColor; @@ -24,7 +23,6 @@ public class SchematicDisplay : MonoBehaviour public Image HeatsinkBackground; public GameObject AetherDriveUi; - public GameObject AetherDriveUiSpacer; public TextMeshProUGUI EnergyLabel; public TextMeshProUGUI CockpitTemperatureLabel; @@ -48,12 +46,6 @@ public class SchematicDisplay : MonoBehaviour public RectTransform StrafeRPMFill; public RectTransform TurnRPMFill; - public CanvasGroup TriggerGroups; - public float TriggerGroupsFadeDuration = .5f; - public float TriggerGroupsPersistDuration = 5f; - - public Color TriggerGroupColor; - private Entity _entity; private EquippableItem _hull; private Radiator[] _radiators; @@ -63,14 +55,8 @@ public class SchematicDisplay : MonoBehaviour private HeatStorage[] _heatStorages; private EquippedCargoBay[] _cargoBays; private SchematicDisplayItem[] _schematicItems; - private Graphic[] _groupGraphics; private AetherDrive _aetherDrive; - private int _selectedGroupIndex; - private int _selectedItemIndex; - private bool _triggerGroupsVisible; - private float _triggerGroupsFadeOutTime; - private bool _enemy; private Entity _player; @@ -79,31 +65,10 @@ public class SchematicDisplay : MonoBehaviour get { return _schematicItems; } } - public int SelectedItemIndex - { - get => _selectedItemIndex; - set - { - _selectedItemIndex = (value + _schematicItems.Length) % _schematicItems.Length; - UpdateTriggerGroups(); - } - } - - public int SelectedGroupIndex - { - get => _selectedGroupIndex; - set - { - _selectedGroupIndex = (value + Settings.GameplaySettings.TriggerGroupCount) % Settings.GameplaySettings.TriggerGroupCount; - UpdateTriggerGroups(); - } - } - public class SchematicDisplayItem { public EquippedItem Item; public SchematicListElement ListElement; - public SchematicTriggerGroupElement TriggerGroupElement; public IProgressBehavior Cooldown; // public ItemUsage ItemUsage; public Weapon Weapon; @@ -117,7 +82,6 @@ public class SchematicDisplay : MonoBehaviour foreach (var item in _schematicItems) { item.ListElement.GetComponent().ReturnToPool(); - item.TriggerGroupElement?.GetComponent().ReturnToPool(); } _entity = entity; @@ -128,7 +92,6 @@ public class SchematicDisplay : MonoBehaviour _capacitors = entity.GetBehaviors().ToArray(); _aetherDrive = entity.GetBehavior(); AetherDriveUi.SetActive(_aetherDrive != null); - AetherDriveUiSpacer.SetActive(_aetherDrive != null); _radiators = entity.GetBehaviors().ToArray(); if (_radiators.Length == 0) @@ -149,7 +112,6 @@ public class SchematicDisplay : MonoBehaviour { Item = x, ListElement = ListElementPrototype.Instantiate(), - TriggerGroupElement = _enemy ? null : TriggerGroupPrototype.Instantiate(), Cooldown = _enemy ? null : (IProgressBehavior) x.Behaviors.FirstOrDefault(b=> b is IProgressBehavior), // ItemUsage = _enemy ? null : (ItemUsage) x.Behaviors.FirstOrDefault(b=> b is ItemUsage), Weapon = (Weapon) x.Behaviors.FirstOrDefault(b=>b is Weapon) @@ -164,72 +126,12 @@ public class SchematicDisplay : MonoBehaviour { x.ListElement.InfiniteAmmoIcon.gameObject.SetActive(x.Weapon.WeaponData.AmmoType == Guid.Empty); x.ListElement.AmmoLabel.gameObject.SetActive(x.Weapon.WeaponData.AmmoType != Guid.Empty); - foreach (var group in x.TriggerGroupElement.GroupBackgrounds) - group.color = TriggerGroupColor; - } - } - if (!_enemy) - UpdateTriggerGroups(); - } - - public void UpdateTriggerGroups() - { - if (!_triggerGroupsVisible) - { - StartCoroutine(FadeInTriggerGroups()); - _triggerGroupsVisible = true; - } - _triggerGroupsFadeOutTime = Time.time + TriggerGroupsPersistDuration; - for (var itemIndex = 0; itemIndex < _schematicItems.Length; itemIndex++) - { - var item = _schematicItems[itemIndex]; - for (var groupIndex = 0; groupIndex < item.TriggerGroupElement.GroupBackgrounds.Length; groupIndex++) - { - var backgroundColor = TriggerGroupColor; - if (_selectedGroupIndex == groupIndex) - backgroundColor.a *= 2; - if (_selectedItemIndex == itemIndex) - backgroundColor.a *= 2; - item.TriggerGroupElement.GroupBackgrounds[groupIndex].color = backgroundColor; - item.TriggerGroupElement.GroupLabel[groupIndex].color = - _entity.TriggerGroups[groupIndex].items.Contains(item.Item) ? Color.white : Color.gray; } } } - IEnumerator FadeInTriggerGroups() - { - var startTime = Time.time; - while (Time.time - startTime < TriggerGroupsFadeDuration) - { - var lerp = (Time.time - startTime) / TriggerGroupsFadeDuration; - TriggerGroups.alpha = lerp; - yield return null; - } - - TriggerGroups.alpha = 1; - } - - IEnumerator FadeOutTriggerGroups() - { - var startTime = Time.time; - while (Time.time - startTime < TriggerGroupsFadeDuration) - { - var lerp = (Time.time - startTime) / TriggerGroupsFadeDuration; - TriggerGroups.alpha = 1-lerp; - yield return null; - } - - TriggerGroups.alpha = 0; - } - void Update() { - if (_triggerGroupsVisible && _triggerGroupsFadeOutTime < Time.time) - { - _triggerGroupsVisible = false; - StartCoroutine(FadeOutTriggerGroups()); - } if (_entity != null) { if (!_enemy) @@ -237,11 +139,11 @@ public class SchematicDisplay : MonoBehaviour OverrideIcon.SetActive(_entity.OverrideShutdown && cos(Time.time * OverrideIconBlinkSpeed) > 0); ShieldIcon.SetActive(_entity.Shield!=null && _entity.Shield.Item.Active.Value); if (_radiators.Length == 1) - RadiatorTemperatureLabel.text = $"{((int)(_radiators[0].Temperature - 273.15f)).ToString()}°C"; + RadiatorTemperatureLabel.text = $"{((int)(_radiators[0].RadiatorTemperature - 273.15f)).ToString()}°C"; else if (_radiators.Length > 1) RadiatorTemperatureLabel.text = - $"{((int)(_radiators.Min(r => r.Temperature) - 273.15f)).ToString()}-" + - $"{((int)(_radiators.Max(r => r.Temperature) - 273.15f)).ToString()}°C"; + $"{((int)(_radiators.Min(r => r.RadiatorTemperature) - 273.15f)).ToString()}-" + + $"{((int)(_radiators.Max(r => r.RadiatorTemperature) - 273.15f)).ToString()}°C"; HeatsinkBackground.color = _entity.HeatsinksEnabled ? HeaderElementEnabledColor : HeaderElementDisabledColor; if (_heatStorages.Length == 1) diff --git a/Assets/Scripts/UI/TradeMenu.cs b/Assets/Scripts/UI/TradeMenu.cs index 6d83b0fc4..c38f1116f 100644 --- a/Assets/Scripts/UI/TradeMenu.cs +++ b/Assets/Scripts/UI/TradeMenu.cs @@ -220,7 +220,7 @@ public class TradeMenu : MonoBehaviour data => data.Shape.Width*data.Shape.Height)); var items = Inventory.Cargo.Keys - .Select(ii=>(ii, GameManager.ItemManager.GetData(ii))); + .Select(ii=>(ii, ii.Data.Value)); if (MinimumSizeFilter.gameObject.activeSelf) items = items.Where(i => @@ -287,7 +287,7 @@ public class TradeMenu : MonoBehaviour x => () => { if (x.data is HullData) - return GameManager.DockedEntity.Children.Count(s => s.Hull.Data == x.data.ID && s is Ship {IsPlayerShip: true}).ToString(); + return GameManager.DockedEntity.Children.Count(s => s.Hull.Data.LinkID == x.data.ID && s is Ship {IsPlayerShip: true}).ToString(); if(x.data is SimpleCommodityData) return (_targetCargo.ItemsOfType.ContainsKey(x.data.ID) ? _targetCargo.ItemsOfType[x.data.ID].Cast().Sum(s=>s.Quantity) : 0).ToString(); return (_targetCargo.ItemsOfType.ContainsKey(x.data.ID) ? _targetCargo.ItemsOfType[x.data.ID].Count : 0).ToString(); @@ -295,7 +295,7 @@ public class TradeMenu : MonoBehaviour data => { if (data is HullData) - return GameManager.DockedEntity.Children.Count(s => s.Hull.Data == data.ID && s is Ship {IsPlayerShip: true}); + return GameManager.DockedEntity.Children.Count(s => s.Hull.Data.LinkID == data.ID && s is Ship {IsPlayerShip: true}); if(data is SimpleCommodityData) return _targetCargo.ItemsOfType.ContainsKey(data.ID) ? _targetCargo.ItemsOfType[data.ID].Cast().Sum(s=>s.Quantity) : 0; return _targetCargo.ItemsOfType.ContainsKey(data.ID) ? _targetCargo.ItemsOfType[data.ID].Count : 0; diff --git a/Assets/Scripts/UI/TradeMenuDebug.cs b/Assets/Scripts/UI/TradeMenuDebug.cs index defed04f1..f6d60355d 100644 --- a/Assets/Scripts/UI/TradeMenuDebug.cs +++ b/Assets/Scripts/UI/TradeMenuDebug.cs @@ -272,7 +272,7 @@ public class TradeMenuDebug : MonoBehaviour data => () => { if (data is HullData) - return GameManager.DockedEntity.Children.Count(s => s.Hull.Data == data.ID && s is Ship {IsPlayerShip: true}).ToString(); + return GameManager.DockedEntity.Children.Count(s => s.Hull.Data.LinkID == data.ID && s is Ship {IsPlayerShip: true}).ToString(); if(data is SimpleCommodityData) return (_targetCargo.ItemsOfType.ContainsKey(data.ID) ? _targetCargo.ItemsOfType[data.ID].Cast().Sum(s=>s.Quantity) : 0).ToString(); return (_targetCargo.ItemsOfType.ContainsKey(data.ID) ? _targetCargo.ItemsOfType[data.ID].Count : 0).ToString(); @@ -280,7 +280,7 @@ public class TradeMenuDebug : MonoBehaviour data => { if (data is HullData) - return GameManager.DockedEntity.Children.Count(s => s.Hull.Data == data.ID && s is Ship {IsPlayerShip: true}); + return GameManager.DockedEntity.Children.Count(s => s.Hull.Data.LinkID == data.ID && s is Ship {IsPlayerShip: true}); if(data is SimpleCommodityData) return _targetCargo.ItemsOfType.ContainsKey(data.ID) ? _targetCargo.ItemsOfType[data.ID].Cast().Sum(s=>s.Quantity) : 0; return _targetCargo.ItemsOfType.ContainsKey(data.ID) ? _targetCargo.ItemsOfType[data.ID].Count : 0; diff --git a/Assets/Scripts/Zone Display/ZoneRenderer.cs b/Assets/Scripts/Zone Display/ZoneRenderer.cs index f3287722d..bcbb74a11 100644 --- a/Assets/Scripts/Zone Display/ZoneRenderer.cs +++ b/Assets/Scripts/Zone Display/ZoneRenderer.cs @@ -80,7 +80,7 @@ public class ZoneRenderer : MonoBehaviour private PlanetObject[] _suns; public Dictionary WormholeInstances = new Dictionary(); - private List _gridObjects = new List(); + private List _loot = new List(); public Zone Zone { get; private set; } public ItemManager ItemManager { get; set; } @@ -216,9 +216,9 @@ public class ZoneRenderer : MonoBehaviour subscription.Dispose(); _zoneSubscriptions.Clear(); - foreach(var gridObject in _gridObjects) + foreach(var gridObject in _loot) if(gridObject) Destroy(gridObject.gameObject); - _gridObjects.Clear(); + _loot.Clear(); foreach (var entity in Zone.Entities) { @@ -409,6 +409,12 @@ public class ZoneRenderer : MonoBehaviour void Update() { + foreach (var loot in _loot) + { + loot.ViewOrigin = PerspectiveEntity.Position; + loot.ViewDirection = PerspectiveEntity.LookDirection; + } + if (SlimeRenderer.SpawnPositions.Length != _suns.Length) SlimeRenderer.SpawnPositions = new Vector2[_suns.Length]; for (var i = 0; i < _suns.Length; i++) @@ -474,6 +480,11 @@ public class ZoneRenderer : MonoBehaviour // MinimapTintQuad.transform.position = gravPos - Vector3.up*10; } + public void DestroyLoot(ItemPickup loot) + { + _loot.Remove(loot); + } + public void DropItem(Vector3 position, Vector3 velocity, ItemInstance item) { var gridObject = item switch @@ -488,9 +499,19 @@ public class ZoneRenderer : MonoBehaviour gridObject.Zone = Zone; t.position = position; gridObject.Velocity = velocity; - gridObject.gameObject.AddComponent().Item = item; + var itemPickup = gridObject.gameObject.GetComponent(); + itemPickup.Item = item; + itemPickup.ZoneRenderer = this; + itemPickup.ScanLabel.text = item.Data.Value.Name; + if (item is CraftedItemInstance craftedItemInstance) + { + var c = ItemManager.GetTier(craftedItemInstance).tier.Color.ToColor(); + c.a = 0; + itemPickup.ScanLabel.color = c; + } + else itemPickup.ScanLabel.color = new Color(.75f, .75f, .75f, 0); gridObject.gameObject.AddComponent().Duration = Settings.PickupLifetime; - _gridObjects.Add(gridObject); + _loot.Add(itemPickup); } } diff --git a/Assets/Shaders/Raymarching/VolumeRender.shader b/Assets/Shaders/Raymarching/VolumeRender.shader index 0137be7f6..b2d2f7328 100644 --- a/Assets/Shaders/Raymarching/VolumeRender.shader +++ b/Assets/Shaders/Raymarching/VolumeRender.shader @@ -155,7 +155,8 @@ float4 RayMarch( in float3 origin, in float3 direction, in float zbuf, in float2 screenUV, out float scatterSum ) { - half rand = frac(tex2D(_DitheringTex, screenUV * _DitheringCoords.xy).r + _FrameNumber * 1.61803398875); + float rand = frac(tex2D(_DitheringTex, screenUV * _DitheringCoords.xy).r + _FrameNumber * 1.61803398875); + //half rand = frac(nrand(screenUV) + _FrameNumber * 1.61803398875); //half rand = nrand(screenUV + frac(_Time.x)) * 2; float4 sum = (float4)0.; scatterSum = 0.; diff --git a/Assets/Shaders/TMP_SDF.shader b/Assets/Shaders/TMP_SDF.shader new file mode 100644 index 000000000..88ce13235 --- /dev/null +++ b/Assets/Shaders/TMP_SDF.shader @@ -0,0 +1,323 @@ +Shader "TextMeshPro/Distance Field Stochastic" { + +Properties { + _FaceTex ("Face Texture", 2D) = "white" {} + _FaceUVSpeedX ("Face UV Speed X", Range(-5, 5)) = 0.0 + _FaceUVSpeedY ("Face UV Speed Y", Range(-5, 5)) = 0.0 + _FaceColor ("Face Color", Color) = (1,1,1,1) + _FaceDilate ("Face Dilate", Range(-1,1)) = 0 + + _OutlineColor ("Outline Color", Color) = (0,0,0,1) + _OutlineTex ("Outline Texture", 2D) = "white" {} + _OutlineUVSpeedX ("Outline UV Speed X", Range(-5, 5)) = 0.0 + _OutlineUVSpeedY ("Outline UV Speed Y", Range(-5, 5)) = 0.0 + _OutlineWidth ("Outline Thickness", Range(0, 1)) = 0 + _OutlineSoftness ("Outline Softness", Range(0,1)) = 0 + + _Bevel ("Bevel", Range(0,1)) = 0.5 + _BevelOffset ("Bevel Offset", Range(-0.5,0.5)) = 0 + _BevelWidth ("Bevel Width", Range(-.5,0.5)) = 0 + _BevelClamp ("Bevel Clamp", Range(0,1)) = 0 + _BevelRoundness ("Bevel Roundness", Range(0,1)) = 0 + + _LightAngle ("Light Angle", Range(0.0, 6.2831853)) = 3.1416 + _SpecularColor ("Specular", Color) = (1,1,1,1) + _SpecularPower ("Specular", Range(0,4)) = 2.0 + _Reflectivity ("Reflectivity", Range(5.0,15.0)) = 10 + _Diffuse ("Diffuse", Range(0,1)) = 0.5 + _Ambient ("Ambient", Range(1,0)) = 0.5 + + _BumpMap ("Normal map", 2D) = "bump" {} + _BumpOutline ("Bump Outline", Range(0,1)) = 0 + _BumpFace ("Bump Face", Range(0,1)) = 0 + + _ReflectFaceColor ("Reflection Color", Color) = (0,0,0,1) + _ReflectOutlineColor("Reflection Color", Color) = (0,0,0,1) + _Cube ("Reflection Cubemap", Cube) = "black" { /* TexGen CubeReflect */ } + _EnvMatrixRotation ("Texture Rotation", vector) = (0, 0, 0, 0) + + + _UnderlayColor ("Border Color", Color) = (0,0,0, 0.5) + _UnderlayOffsetX ("Border OffsetX", Range(-1,1)) = 0 + _UnderlayOffsetY ("Border OffsetY", Range(-1,1)) = 0 + _UnderlayDilate ("Border Dilate", Range(-1,1)) = 0 + _UnderlaySoftness ("Border Softness", Range(0,1)) = 0 + + _GlowColor ("Color", Color) = (0, 1, 0, 0.5) + _GlowOffset ("Offset", Range(-1,1)) = 0 + _GlowInner ("Inner", Range(0,1)) = 0.05 + _GlowOuter ("Outer", Range(0,1)) = 0.05 + _GlowPower ("Falloff", Range(1, 0)) = 0.75 + + _WeightNormal ("Weight Normal", float) = 0 + _WeightBold ("Weight Bold", float) = 0.5 + + _ShaderFlags ("Flags", float) = 0 + _ScaleRatioA ("Scale RatioA", float) = 1 + _ScaleRatioB ("Scale RatioB", float) = 1 + _ScaleRatioC ("Scale RatioC", float) = 1 + + _MainTex ("Font Atlas", 2D) = "white" {} + _TextureWidth ("Texture Width", float) = 512 + _TextureHeight ("Texture Height", float) = 512 + _GradientScale ("Gradient Scale", float) = 5.0 + _ScaleX ("Scale X", float) = 1.0 + _ScaleY ("Scale Y", float) = 1.0 + _PerspectiveFilter ("Perspective Correction", Range(0, 1)) = 0.875 + _Sharpness ("Sharpness", Range(-1,1)) = 0 + + _VertexOffsetX ("Vertex OffsetX", float) = 0 + _VertexOffsetY ("Vertex OffsetY", float) = 0 + + _MaskCoord ("Mask Coordinates", vector) = (0, 0, 32767, 32767) + _ClipRect ("Clip Rect", vector) = (-32767, -32767, 32767, 32767) + _MaskSoftnessX ("Mask SoftnessX", float) = 0 + _MaskSoftnessY ("Mask SoftnessY", float) = 0 + + _StencilComp ("Stencil Comparison", Float) = 8 + _Stencil ("Stencil ID", Float) = 0 + _StencilOp ("Stencil Operation", Float) = 0 + _StencilWriteMask ("Stencil Write Mask", Float) = 255 + _StencilReadMask ("Stencil Read Mask", Float) = 255 + + _ColorMask ("Color Mask", Float) = 15 +} + +SubShader { + + Tags + { + "Queue"="AlphaTest" + "IgnoreProjector"="True" + "RenderType"="TransparentCutout" + } + + Stencil + { + Ref [_Stencil] + Comp [_StencilComp] + Pass [_StencilOp] + ReadMask [_StencilReadMask] + WriteMask [_StencilWriteMask] + } + + Cull [_CullMode] + ZWrite On + Lighting Off + Fog { Mode Off } + ZTest [unity_GUIZTestMode] + //Blend One OneMinusSrcAlpha + ColorMask [_ColorMask] + + Pass { + CGPROGRAM + #pragma target 3.0 + #pragma vertex VertShader + #pragma fragment PixShader + #pragma shader_feature __ BEVEL_ON + #pragma shader_feature __ UNDERLAY_ON UNDERLAY_INNER + #pragma shader_feature __ GLOW_ON + + #pragma multi_compile __ UNITY_UI_CLIP_RECT + #pragma multi_compile __ UNITY_UI_ALPHACLIP + + #include "UnityCG.cginc" + #include "UnityUI.cginc" + #include "Assets/TextMesh Pro/Resources/Shaders/TMPro_Properties.cginc" + #include "Assets/TextMesh Pro/Resources/Shaders/TMPro.cginc" + #include "Dither Functions.cginc" + + struct vertex_t { + UNITY_VERTEX_INPUT_INSTANCE_ID + float4 position : POSITION; + float3 normal : NORMAL; + fixed4 color : COLOR; + float2 texcoord0 : TEXCOORD0; + float2 texcoord1 : TEXCOORD1; + }; + + + struct pixel_t { + UNITY_VERTEX_INPUT_INSTANCE_ID + UNITY_VERTEX_OUTPUT_STEREO + float4 position : SV_POSITION; + fixed4 color : COLOR; + float2 atlas : TEXCOORD0; // Atlas + float4 param : TEXCOORD1; // alphaClip, scale, bias, weight + float4 mask : TEXCOORD2; // Position in object space(xy), pixel Size(zw) + float3 viewDir : TEXCOORD3; + + #if (UNDERLAY_ON || UNDERLAY_INNER) + float4 texcoord2 : TEXCOORD4; // u,v, scale, bias + fixed4 underlayColor : COLOR1; + #endif + float4 textures : TEXCOORD5; + float4 screenPos : TEXCOORD6; + }; + + // Used by Unity internally to handle Texture Tiling and Offset. + float4 _FaceTex_ST; + float4 _OutlineTex_ST; + + pixel_t VertShader(vertex_t input) + { + pixel_t output; + + UNITY_INITIALIZE_OUTPUT(pixel_t, output); + UNITY_SETUP_INSTANCE_ID(input); + UNITY_TRANSFER_INSTANCE_ID(input,output); + UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(output); + + float bold = step(input.texcoord1.y, 0); + + float4 vert = input.position; + vert.x += _VertexOffsetX; + vert.y += _VertexOffsetY; + + float4 vPosition = UnityObjectToClipPos(vert); + + float2 pixelSize = vPosition.w; + pixelSize /= float2(_ScaleX, _ScaleY) * abs(mul((float2x2)UNITY_MATRIX_P, _ScreenParams.xy)); + float scale = rsqrt(dot(pixelSize, pixelSize)); + scale *= abs(input.texcoord1.y) * _GradientScale * (_Sharpness + 1); + if (UNITY_MATRIX_P[3][3] == 0) scale = lerp(abs(scale) * (1 - _PerspectiveFilter), scale, abs(dot(UnityObjectToWorldNormal(input.normal.xyz), normalize(WorldSpaceViewDir(vert))))); + + float weight = lerp(_WeightNormal, _WeightBold, bold) / 4.0; + weight = (weight + _FaceDilate) * _ScaleRatioA * 0.5; + + float bias =(.5 - weight) + (.5 / scale); + + float alphaClip = (1.0 - _OutlineWidth * _ScaleRatioA - _OutlineSoftness * _ScaleRatioA); + + #if GLOW_ON + alphaClip = min(alphaClip, 1.0 - _GlowOffset * _ScaleRatioB - _GlowOuter * _ScaleRatioB); + #endif + + alphaClip = alphaClip / 2.0 - ( .5 / scale) - weight; + + #if (UNDERLAY_ON || UNDERLAY_INNER) + float4 underlayColor = _UnderlayColor; + underlayColor.rgb *= underlayColor.a; + + float bScale = scale; + bScale /= 1 + ((_UnderlaySoftness*_ScaleRatioC) * bScale); + float bBias = (0.5 - weight) * bScale - 0.5 - ((_UnderlayDilate * _ScaleRatioC) * 0.5 * bScale); + + float x = -(_UnderlayOffsetX * _ScaleRatioC) * _GradientScale / _TextureWidth; + float y = -(_UnderlayOffsetY * _ScaleRatioC) * _GradientScale / _TextureHeight; + float2 bOffset = float2(x, y); + #endif + + // Generate UV for the Masking Texture + float4 clampedRect = clamp(_ClipRect, -2e10, 2e10); + float2 maskUV = (vert.xy - clampedRect.xy) / (clampedRect.zw - clampedRect.xy); + + // Support for texture tiling and offset + float2 textureUV = UnpackUV(input.texcoord1.x); + float2 faceUV = TRANSFORM_TEX(textureUV, _FaceTex); + float2 outlineUV = TRANSFORM_TEX(textureUV, _OutlineTex); + + + output.position = vPosition; + output.color = input.color; + output.atlas = input.texcoord0; + output.param = float4(alphaClip, scale, bias, weight); + output.mask = half4(vert.xy * 2 - clampedRect.xy - clampedRect.zw, 0.25 / (0.25 * half2(_MaskSoftnessX, _MaskSoftnessY) + pixelSize.xy)); + output.viewDir = mul((float3x3)_EnvMatrix, _WorldSpaceCameraPos.xyz - mul(unity_ObjectToWorld, vert).xyz); + #if (UNDERLAY_ON || UNDERLAY_INNER) + output.texcoord2 = float4(input.texcoord0 + bOffset, bScale, bBias); + output.underlayColor = underlayColor; + #endif + output.textures = float4(faceUV, outlineUV); + + output.screenPos = ComputeScreenPos(output.position); + + return output; + } + + + fixed4 PixShader(pixel_t input) : SV_Target + { + UNITY_SETUP_INSTANCE_ID(input); + + float c = tex2D(_MainTex, input.atlas).a; + + #ifndef UNDERLAY_ON + clip(c - input.param.x); + #endif + + float scale = input.param.y; + float bias = input.param.z; + float weight = input.param.w; + float sd = (bias - c) * scale; + + float outline = (_OutlineWidth * _ScaleRatioA) * scale; + float softness = (_OutlineSoftness * _ScaleRatioA) * scale; + + half4 faceColor = _FaceColor; + half4 outlineColor = _OutlineColor; + + faceColor.rgb *= input.color.rgb; + + faceColor *= tex2D(_FaceTex, input.textures.xy + float2(_FaceUVSpeedX, _FaceUVSpeedY) * _Time.y); + outlineColor *= tex2D(_OutlineTex, input.textures.zw + float2(_OutlineUVSpeedX, _OutlineUVSpeedY) * _Time.y); + + faceColor = GetColor(sd, faceColor, outlineColor, outline, softness); + + #if BEVEL_ON + float3 dxy = float3(0.5 / _TextureWidth, 0.5 / _TextureHeight, 0); + float3 n = GetSurfaceNormal(input.atlas, weight, dxy); + + float3 bump = UnpackNormal(tex2D(_BumpMap, input.textures.xy + float2(_FaceUVSpeedX, _FaceUVSpeedY) * _Time.y)).xyz; + bump *= lerp(_BumpFace, _BumpOutline, saturate(sd + outline * 0.5)); + n = normalize(n- bump); + + float3 light = normalize(float3(sin(_LightAngle), cos(_LightAngle), -1.0)); + + float3 col = GetSpecular(n, light); + faceColor.rgb += col*faceColor.a; + faceColor.rgb *= 1-(dot(n, light)*_Diffuse); + faceColor.rgb *= lerp(_Ambient, 1, n.z*n.z); + + fixed4 reflcol = texCUBE(_Cube, reflect(input.viewDir, -n)); + faceColor.rgb += reflcol.rgb * lerp(_ReflectFaceColor.rgb, _ReflectOutlineColor.rgb, saturate(sd + outline * 0.5)) * faceColor.a; + #endif + + #if UNDERLAY_ON + float d = tex2D(_MainTex, input.texcoord2.xy).a * input.texcoord2.z; + faceColor += input.underlayColor * saturate(d - input.texcoord2.w) * (1 - faceColor.a); + #endif + + #if UNDERLAY_INNER + float d = tex2D(_MainTex, input.texcoord2.xy).a * input.texcoord2.z; + faceColor += input.underlayColor * (1 - saturate(d - input.texcoord2.w)) * saturate(1 - sd) * (1 - faceColor.a); + #endif + + #if GLOW_ON + float4 glowColor = GetGlowColor(sd, scale); + faceColor.rgb += glowColor.rgb * glowColor.a; + #endif + + // Alternative implementation to UnityGet2DClipping with support for softness. + #if UNITY_UI_CLIP_RECT + half2 m = saturate((_ClipRect.zw - _ClipRect.xy - abs(input.mask.xy)) * input.mask.zw); + faceColor *= m.x * m.y; + #endif + + float2 screenUV = input.screenPos.xy / input.screenPos.w; + ditherClip(screenUV, faceColor.a * input.color.a); + + #if UNITY_UI_ALPHACLIP + clip(faceColor.a - 0.001); + #endif + + return faceColor * input.color.a; + } + + ENDCG + } +} + +Fallback "TextMeshPro/Mobile/Distance Field" +CustomEditor "TMPro.EditorUtilities.TMP_SDFShaderGUI" +} diff --git a/Assets/Shaders/TMP_SDF.shader.meta b/Assets/Shaders/TMP_SDF.shader.meta new file mode 100644 index 000000000..91afb6247 --- /dev/null +++ b/Assets/Shaders/TMP_SDF.shader.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 727e3be2403d4350a005a890aafdf4b4 +timeCreated: 1618519289 \ No newline at end of file diff --git a/GameData/AetherDB.msgpack b/GameData/AetherDB.msgpack index c2455d053..100658701 100644 --- a/GameData/AetherDB.msgpack +++ b/GameData/AetherDB.msgpack @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:21ce7bd21f283b5deb556e09791445df142f9ca3025499205ae4a4d9b0b1afd2 -size 76200 +oid sha256:a607d2435f93eae73a274ae8247c7aa47e1962fadef282db240705970b1d12bc +size 75659 diff --git a/GameData/Narrative/TheIntercept.ink b/GameData/Narrative/TheIntercept.ink deleted file mode 100644 index 7e710b348..000000000 --- a/GameData/Narrative/TheIntercept.ink +++ /dev/null @@ -1,1686 +0,0 @@ -// Character variables. We track just two, using a +/- scale -VAR forceful = 0 -VAR evasive = 0 - - -// Inventory Items -VAR teacup = false -VAR gotcomponent = false - - -// Story states: these can be done using read counts of knots; or functions that collect up more complex logic; or variables -VAR drugged = false -VAR hooper_mentioned = false - -VAR losttemper = false -VAR admitblackmail = false - -// what kind of clue did we pass to Hooper? -CONST NONE = 0 -CONST STRAIGHT = 1 -CONST CHESS = 2 -CONST CROSSWORD = 3 -VAR hooperClueType = NONE - -VAR hooperConfessed = false - -CONST SHOE = 1 -CONST BUCKET = 2 -VAR smashingWindowItem = NONE - -VAR notraitor = false -VAR revealedhooperasculprit = false -VAR smashedglass = false -VAR muddyshoes = false - -VAR framedhooper = false - -// What did you do with the component? -VAR putcomponentintent = false -VAR throwncomponentaway = false -VAR piecereturned = false -VAR longgrasshooperframe = false - - -// DEBUG mode adds a few shortcuts - remember to set to false in release! -VAR DEBUG = false -{DEBUG: - IN DEBUG MODE! - * [Beginning...] -> start - * [Framing Hooper...] -> claim_hooper_took_component - * [In with Hooper...] -> inside_hoopers_hut -- else: - // First diversion: where do we begin? - -> start -} - - /*-------------------------------------------------------------------------------- - Wrap up character movement using functions, in case we want to develop this logic in future ---------------------------------------------------------------------------------*/ - - - === function lower(ref x) - ~ x = x - 1 - - === function raise(ref x) - ~ x = x + 1 - -/*-------------------------------------------------------------------------------- - - Start the story! - ---------------------------------------------------------------------------------*/ - -=== start === - -// Intro - - They are keeping me waiting. - * Hut 14[]. The door was locked after I sat down. - I don't even have a pen to do any work. There's a copy of the morning's intercept in my pocket, but staring at the jumbled letters will only drive me mad. - I am not a machine, whatever they say about me. - - - (opts) - {|I rattle my fingers on the field table.|} - * (think) [Think] - They suspect me to be a traitor. They think I stole the component from the calculating machine. They will be searching my bunk and cases. - When they don't find it, {plan:then} they'll come back and demand I talk. - -> opts - * (plan) [Plan] - {not think:What I am is|I am} a problem—solver. Good with figures, quick with crosswords, excellent at chess. - But in this scenario — in this trap — what is the winning play? - * * (cooperate) [Co—operate] - I must co—operate. My credibility is my main asset. To contradict myself, or another source, would be fatal. - I must simply hope they do not ask the questions I do not want to answer. - ~ lower(forceful) - * * [Dissemble] - Misinformation, then. Just as the war in Europe is one of plans and interceptions, not planes and bombs. - My best hope is a story they prefer to the truth. - ~ raise(forceful) - * * (delay) [Divert] - Avoidance and delay. The military machine never fights on a single front. If I move slowly enough, things will resolve themselves some other way, my reputation intact. - ~ raise(evasive) - * [Wait] - - -> waited - -= waited - - Half an hour goes by before Commander Harris returns. He closes the door behind him quickly, as though afraid a loose word might slip inside. - "Well, then," he begins, awkwardly. This is an unseemly situation. - * "Commander." - He nods. <> - * (tellme) {not start.delay} "Tell me what this is about." - He shakes his head. - "Now, don't let's pretend." - * [Wait] - I say nothing. - - He has brought two cups of tea in metal mugs: he sets them down on the tabletop between us. - * {tellme} [Deny] "I'm not pretending anything." - {cooperate:I'm lying already, despite my good intentions.} - Harris looks disapproving. -> pushes_cup - * (took) [Take one] - ~ teacup = true - I take a mug and warm my hands. It's <> - * (what2) {not tellme} "What's going on?" - "You know already." - -> pushes_cup - * [Wait] - I wait for him to speak. - - - (pushes_cup) He pushes one mug halfway towards me: <> - - a small gesture of friendship. - Enough to give me hope? - * (lift_up_cup) {not teacup} [Take it] - I {took:lift the mug|take the mug,} and blow away the steam. It is too hot to drink. - Harris picks his own up and just holds it. - ~ teacup = true - ~ lower(forceful) - * {not teacup} [Don't take it] - Just a cup of insipid canteen tea. I leave it where it is. - ~ raise(forceful) - - * {teacup} [Drink] - I raise the cup to my mouth but it's too hot to drink. - - * {teacup} [Wait] - I say nothing as -> lift_up_cup - -- "Quite a difficult situation," {lift_up_cup:he|Harris} begins{forceful <= 0:, sternly}. I've seen him adopt this stiff tone of voice before, but only when talking to the brass. "I'm sure you agree." - * [Agree] - "Awkward," I reply - * (disagree) [Disagree] - "I don't see why," I reply - ~ raise(forceful) - ~ raise(evasive) - * [Lie] -> disagree - * [Evade] - "I'm sure you've handled worse," I reply casually - ~ raise(evasive) - - { teacup: - ~ drugged = true - <>, sipping at my tea as though we were old friends - } - <>. - - - - * [Watch him] - His face is telling me nothing. I've seen Harris broad and full of laughter. Today he is tight, as much part of the military machine as the device in Hut 5. - - * [Wait] - I wait to see how he'll respond. - - * {not disagree} [Smile] - I try a weak smile. It is not returned. - ~ lower(forceful) - -// Why you're here - - - "We need that component," he says. - - - //"There's no alternative, of course," he continues. - {not missing_reel: - -> missing_reel -> harris_demands_component - } - - - * [Yes] - "Of course I do," I answer. - * (no) [No] - "No I don't. And I've got work to do..." - "Work that will be rather difficult for you to do, don't you think?" Harris interrupts. - - * [Evade] - -> here_at_bletchley_diversion - * [Lie] - -> no - - -> missing_reel -> harris_demands_component - -=== missing_reel === - * [The stolen component...] - * [Shrug] - I shrug. - ->-> - - The reel went missing from the Bombe this afternoon. The four of us were in the Hut, working on the latest German intercept. The results were garbage. It was Russell who found the gap in the plugboard. - - Any of us could have taken it; and no one else would have known its worth. - - * {forceful <= 0 }[Panic] They will pin it on me. They need a scapegoat so that the work can continue. I'm a likely target. Weaker than the rest. - ~ lower(forceful) - * [Calculate] My odds, then, are one in four. Not bad; although the stakes themselves are higher than I would like. - ~ raise(evasive) - * {evasive >= 0} [Deny] But this is still a mere formality. The work will not stop. A replacement component will be made and we will all be put back to work. We are too valuable to shoot. - ~ raise(forceful) - - ->-> - - -=== here_at_bletchley_diversion - "Here at Bletchley? Of course." - ~ raise(evasive) - ~ lower(forceful) - "Here, now," Harris corrects. "We are not talking to everyone. I can imagine you might feel pretty sore about that. I can imagine you feeling picked on. { forceful < 0:You're a sensitive soul.}" - - * (fine) "I'm fine[."]," I reply. "This is all some misunderstanding and the quicker we have it cleared up the better." - ~ lower(forceful) - "I couldn't agree more." And then he comes right out with it, with an accusation. - - * {forceful < 0} "What do you mean by that?" - - * (sore) { forceful >= 0 } "Damn right[."] I'm sore. Was it one of the others who put you up to this? Was it Hooper? He's always been jealous of me. He's..." - ~ raise(forceful) - ~ hooper_mentioned = true - The Commander moustache bristles as he purses his lips. "Has he now? Of your achievements, do you think?" - It's difficult not to shake the sense that he's { evasive > 1 :mocking|simply humouring} me. - "Or of your brain? Or something else?" - * * "Of my genius.["] Hooper simply can't stand that I'm cleverer than he is. We work so closely together, cooped up in that Hut all day. It drives him to distraction. To worse." - "You're suggesting Hooper would sabotage this country's future simply to spite you?" Harris chooses his words like the military man he is, each lining up to create a ring around me. - * * * [Yes] - "{ forceful > 0:He's petty enough, certainly|I wouldn't put it past him}. He's a creep." { teacup : I set the teacup down.|I wipe a hand across my forehead.} - ~ raise(forceful) - ~ teacup = false - * * * [No] - "No, { forceful >0:of course not|I suppose not}." { teacup :I put the teacup back down on the table|I push the teacup around on its base}. - ~ lower(forceful) - ~ teacup = false - * * * [Evade] - "I don't know what I'm suggesting. I don't understand what's going on." - ~ raise(evasive) - "But of course you do." Harris narrows his eyes. - -> done - - - - - (suggest_its_a_lie) "All I can say is, ever since I arrived here, he's been looking to ways to bring me down a peg. I wouldn't be surprised if he set this whole affair up just to have me court—martialled." - "We don't court—martial civilians," Harris replies. "Traitors are simply hung at her Majesty's pleasure." - * * * "Quite right[."]," I answer smartly. - * * * (iamnotraitor) "I'm no traitor[."]," I answer{forceful > 0 :smartly|, voice quivering. "For God's sake!"} - * * * [Lie] -> iamnotraitor - - - - He stares back at me. - - * * "Of my standing.["] My reputation." { forceful > 0:I'm aware of how arrogant I must sound but I plough on all the same.|I don't like to talk of myself like this, but I carry on all the same.} "Hooper simply can't bear knowing that, once all this is over, I'll be the one receiving the knighthood and he..." - "No—one will be getting a knighthood if the Germans make landfall," Harris answers sharply. He casts a quick eye to the door of the Hut to check the latch is still down, then continues in more of a murmur: "Not you and not Hooper. Now answer me." - For the first time since the door closed, I wonder what the threat might be if I do not. - - * * [Evade] - ~ teacup = false - ~ raise(forceful) - "How should I know?" I reply, defensively. { teacup :I set the teacup back on the table.} -> suggest_its_a_lie - - - * [Be honest] -> sore - * [Lie] -> fine - -- (done) -> harris_demands_component - - -=== harris_demands_component === - "{here_at_bletchley_diversion:Please|So}. Do you have it?" Harris is {forceful > 3:sweating slightly|wasting no time}: Bletchley is his watch. "Do you know where it is?" - * [Yes] - "I do." - -> admitted_to_something - * (nope) [No] "I have no idea." - -> silence - * [Lie] -> nope - * [Evade] - "The component?" - ~ raise(evasive) - ~ lower(forceful) - "Don't play stupid," he replies. "{ not missing_reel:The component that went missing this afternoon. }Where is it?" - - - { not missing_reel: - -> missing_reel -> - } - * [Co-operate] "I know where it is." - -> admitted_to_something - * (nothing) [Delay] "I know nothing about it." My voice shakes{ forceful > 0: with anger|; I'm unaccustomed to facing off against men with holstered guns}. - - * [Lie] -> nothing - * [Evade] - - "I don't know what gives you the right to pick on me. { forceful > 0:I demand a lawyer.|I want a lawyer.}" - - "This is time of war," Harris answers. "And by God, if I have to shoot you to recover the component, I will. Understand?" He points at the mug,-> drinkit - - - (silence) There's an icy silence. { forceful > 2:I've cracked him a little.|{ evasive > 2:He's tiring of my evasiveness.}} - - // Drink tea and talk - - (drinkit) "Now drink your tea and talk." - * { teacup } [Drink] -> drinkfromcup - * { teacup } [Put the cup down] - I set the cup carefully down on the table once more. - ~ teacup = false - ~ raise(forceful) - -> whatsinit - - * { not teacup } [Take the cup] - - - (drinkfromcup) I lift the cup { teacup :to my lips }and sip. He waits for me to swallow before speaking again. - ~ drugged = true - ~ teacup = true - * { not teacup } [Don't take it] - I leave the cup where it is. - ~ raise(forceful) - - - (whatsinit) "Why?" I ask coldly. "What's in it?" - - - "Lapsang Souchong," he {drinkfromcup:remarks|replies}, placing his own cup back on the table untouched. "Such a curious flavour. It might almost not be tea at all. You might say it hides a multitude of sins. As do you. Isn't that right?" - - * (suppose_i_have) [Agree] - // Regrets - "I suppose so," I reply. "I've done things I shouldn't have done." - ~ lower(forceful) - -> harris_presses_for_details - - * (nothing_ashamed_of) { not drugged } [Disagree] - "I've done nothing that I'm ashamed of." - -> harris_asks_for_theory - - * (cant_talk_right) { drugged } [Disagree] - I open my mouth to disagree, but the words I want won't come. It is like Harris has taken a screwdriver to the sides of my jaw. - -> admitted_to_something.ive_done_things - - * {drugged} [Lie] -> cant_talk_right - * {not drugged} [Lie] -> nothing_ashamed_of - * { drugged } [Evade] -> cant_talk_right - - * { not drugged } [Evade] - "None of us are blameless, Harris. { forceful > 1:But you're not my priest and I'm not yours|But I've done nothing to deserve this treatment}. Now, please. Let me go. I'll help you find this damn component, of course I will." - // Who do you blame? - He appears to consider the offer. - -> harris_asks_for_theory - - - -=== harris_presses_for_details -// Open to Blackmail - "You mean you've left yourself open," Harris answers. "To pressure. Is that what you're saying?" - * [Yes] -> admit_open_to_pressure - * { not drugged } [No] - "I'm not saying anything of the sort," I snap back. "What is this, Harris? You're accusing me of treachery but I don't see a shred of evidence for it! Why don't you put your cards on the table?" - ~ raise(forceful) - - - * {drugged} [No] - I shake my head violently, to say no, that's not it, but whatever is wrong with tongue is wrong with neck too. I look across at the table at Harris' face and realise with a start how sympathetic he is. Such a kind, generous man. How can I hold anything back from him? - ~ lower(forceful) - I take another mouthful of the bitter, strange—tasting tea before answering. - -> admit_open_to_pressure - - - * { not drugged } [Evade] - "You're the one applying pressure here," I answer { forceful > 1:smartly|somewhat miserably}. "I'm just waiting until you tell me what is really going on." - ~ raise(evasive) - * { drugged } [Evade] - "We're all under pressure here." - He looks at me with pity. -> harris_has_seen_it_before - - - "It's simple enough," Harris says. -> harris_has_seen_it_before - -= admit_open_to_pressure - "That's it," I reply. "There are some things... which a man shouldn't do." - ~ admitblackmail = true - Harris doesn't stiffen. Doesn't lean away, as though my condition might be infectious. I had thought they trained them in the army to shoot my kind on sight. - He offers no sympathy either. He nods, once. His understanding of me is a mere turning cog in his calculations, with no meaning to it. - -> harris_has_seen_it_before - - -=== admitted_to_something - // Admitting Something - { not drugged : - Harris stares back at me. { evasive == 0:He cannot have expected it to be so easy to break me.} - - else: - Harris smiles with satisfaction, as if your willingness to talk was somehow his doing. - } - "I see." - There's a long pause, like the delay between feeding a line of cypher into the Bombe and waiting for its valves to warm up enough to begin processing. - "You want to explain that?" - * [Explain] - I pause a moment, trying to choose my words. To just come out and say it, after a lifetime of hiding... that is a circle I cannot square. - * * [Explain] -> ive_done_things - * * {drugged} [Say nothing] -> say_nothing - * * {not drugged} [Lie] -> claim_hooper_took_component - - * { not drugged } [Don't explain] - "There's nothing to explain," I reply stiffly. -> i_know_where - - * { not drugged } [Lie] -> claim_hooper_took_component - * { not drugged } [Evade] - "Explain what you should be doing, do you mean, rather than bullying me? Certainly." I fold my arms. -> i_know_where - - * (say_nothing) { drugged } [Say nothing] - I fold my arms, intended firmly to say nothing. But somehow, watching Harris' face, I cannot bring myself to do it. I want to confess. I want to tell him everything I can, to explain myself to him, to earn his forgiveness. The sensation is so strong my will is powerless in the face of it. - Something is wrong with me, I am sure of it. There is a strange, bitter flavour on my tongue. I taste it as words start to form. - -> ive_done_things - -= i_know_where - "I know where your component is because it's obvious where your component is. That doesn't mean I took it, just because I can figure out a simple problem, any more than it means I'm a German spy because I can crack their codes." - -> harris_asks_for_theory - - -= ive_done_things - "I've done things," I begin{harris_demands_component.cant_talk_right: helplessly}. "Things I didn't want to do. I tried not to. But in the end, it felt like cutting off my own arm to resist." - -> harris_presses_for_details - - - - -=== harris_asks_for_theory -"Tell me, then," he asks. "What's your theory? You're a smart fellow — as smart as they come around here, and that's saying something. What's your opinion on the missing component? Accident, perhaps? Or do you blame one of the other men? { hooper_mentioned :Hooper?}" - * [Blame no—one] - -> an_accident - * [Blame someone] -> claim_hooper_took_component - -= an_accident - "An accident, naturally." I risk a smile. "That damned machine is made from spare parts and string. Even these Huts leak when it rains. It wouldn't take more than one fellow to trip over a cable to shake out a component. Have you tried looking under the thing?" - "Do you believe we haven't?" - In a sudden moment I understand that his reply is a threat. - "Now," he continues. "Are you sure there isn't anything you want to tell me?" - - * [Co-operate] - "All right." With a sigh, your defiance collapses. "If you're searched my things then I suppose you've found { evasive > 1: what you need|my letters. Haven't you? In fact, if you haven't, don't tell me}. - ~ admitblackmail = true - Harris nods once. - <> -> harris_has_seen_it_before - - * {evasive > 0} [Evade] "Only that you're being unreasonable, and behaving like a swine." - // Loses temper - "You imbecile," Harris replies, with sudden force. He is half out of his chair. "You know the situation as well as I do. Why the fencing? The Hun are poised like rats, ready to run all over this country. They'll destroy everything. You understand that, don't you? You're not so locked up inside your crossword puzzles that you don't see that, are you? This machine we have here — you men — you are the best and only hope this country has. God help her." - ~ losttemper = true - I sit back, startled by the force of his outburst. His carefully sculpted expression has curled to angry disgust. He really does hate me, I think. He'll have my blood for the taste of it. - * * [Placate] - "Now steady on," I reply, gesturing for him to be calm. - - * * [Mock] - "I can imagine how being surrounded by clever men is pretty threatening for you, Commander," I reply with a sneer. "They don't train you to think in the Armed Forces." - ~ raise(forceful) - - * * [Dismiss] - "Then I'll be going, on and getting on with my job of saving her, shall I?" I even rise half to my feet, before he slams the tabletop. - - - - "Talk," Harris demands. "Talk now. Tell me where you've hidden it or who you passed it to. Or God help me, I'll take your wretched pansy body to pieces looking for it." - -> harris_demands_you_speak - - - - -=== harris_has_seen_it_before - "I've seen it before. A young man like you — clever, removed. The kind that doesn't go to parties. Who takes himself too seriously. Who takes things too far." - He slides his thumb between two fingers. - "Now they own you." - - * [Agree] - "What could I do?" I'm shaking now. The night is cold and the heat—lamp in the Hut has been removed. "{ forceful > 2:I won't|I don't want to} go to prison." - "Smart man," he replies. "You wouldn't last. - - * [Disagree] - "I can still fix this." - Harris shakes his head. "You'll do nothing. This is beyond you now. You may go to prison or may go to firing squad - or we can change your name and move you somewhere where your indiscretions can't hurt you. But right now, none of that matters. What happens to you doesn't matter. All that matters is where that component is. - - * { not drugged } [Lie] - "I wanted to tell you," I tell him. "I thought I could find out who they were. Lead you to them." - Harris looks at me with contempt. "You wretch. You'll pay for what you've done to this country today. If a single man loses his life because of your pride and your perversions then God help your soul. - - * {drugged} {forceful < 0} [Apologise] - "Harris, I..." - ~lower(forceful) - "Stop it," he interrupts. "There's no jury here to sway. And there's no time. - -- (tell_me_now) <> So why don't you tell me, right now. Where is it?" - -> harris_demands_you_speak - - - - -=== harris_demands_you_speak - His eyes bear down like carbonised drill—bits. - * [Confess] - { forceful > 1 : - "You want me to tell you what happened? You'll be disgusted." - -else: - "All right. I'll tell you what happened." And never mind my shame. - } - "I can imagine how it starts," he replies. - - * { not drugged } [Dissemble] -> claim_hooper_took_component - * { drugged } [Dissemble] - My plan now is to blame Hooper, but I cannot seem to tell the story. Whatever they put in my tea, it rules my tongue. { forceful >1:I fight it as hard as I can but it does no good.|I am desperate to tell him everything. I am weeping with shame.} - - ~ lower(forceful) -- -> i_met_a_young_man - - - - -=== i_met_a_young_man - // Explain Story - * [Talk] - "There was a young man. I met him in the town. A few months ago now. We got to talking. Not about work. And I used my cover story, but he seemed to know it wasn't true. That got me wondering if he might be one of us." - - Harris is not letting me off any more. - "You seriously entertained that possibility?" - * [Yes] - "Yes, I considered it. <> - * [No] - "No. Not for more than a moment, of course. Everyone here is marked out by how little we would be willing to say about it." - "Only you told this young man more than a little, didn't you?" - I nod. "<> - * [Lie] - "I was quite certain, after a while. After we'd been talking. <> -- He seemed to know all about me. He... he was quite enchanted by my achievements." - The way Harris is staring I expect him to strike me, but he does not. He replies, "I can see how that must have been attractive to you," with such plain—spokeness that I think I must have misheard. - - * [Yes] "It's a lonely life in this place," I reply. "Lonely - and still one never gets a moment to oneself." - "That's how it is in the Service," Harris answers. - * * [Argue] "I'm not in the Service." - Harris shakes his head. "Yes, you are." - * * [Agree] "Perhaps. But I didn't choose this life." - Harris shakes his head. "No. And there's plenty of others who didn't who are suffering far worse." - - - Then he waves the thought aside. - - * (nope) { not drugged } [No] "The boy was a pretty simpleton. Quite inferior. His good opinion meant nothing to be. Harris, do not misunderstand. I was simply after his body." - ~ raise(evasive) - Harris, to his credit, doesn't flinch; but I can see he will have nightmares of this moment later tonight. I'm tempted to reach out and take his hand to worsen it for him. - - * { drugged } [No] - "It wasn't," I reply. "But I doubt you'd understand." - He simply nods. - * { not drugged } [Lie] -> nope - -- "Go on with your confession." -- (paused) - { not nope: - That gives me pause. I hadn't thought of it as such. But I suppose he's right. I am about to admit what I did. - } - "There's not much else to say. I took the part from Bombe computing device. You seem to know that already. I had to. He was going to expose me if I didn't." - // So blackmail? - "This young man was blackmailing you over your affair?" - - ~ temp harris_thinks_youre_drugged = drugged - - { drugged: - ~ drugged = false - As Harris speaks I find myself suddenly sharply aware, as if waking from a long sleep. The table, the corrugated walls of the hut, everything seems suddenly more tangible than a moment before. - Whatever it was they put in my drink is wearing off. - } - - * (yes) [Yes] - "Yes. I suppose he was their agent. I should have realised but I didn't. Then he threatened to tell you. I thought you would have me locked up: I couldn't bear the thought of it. I love working here. I've never been so happy, so successful, anywhere before. I didn't want to lose it." - "So what did you do with the component?" Harris talks urgently. He grips his gloves tightly in one hand, perhaps prepared to lift them and strike if it is required. "Have you passed it to this man already? Have you left it somewhere for him to find?" - * * (still_have) [I have it] - "I still have it. Not on me, of course. -> reveal_location_of_component - - * * (dont_have) [I don't have it] -> i_dont_have_it - * * [Lie] -> dont_have - * * [Tell the truth] -> still_have - - * (notright) [No] - "No, Harris. The young man wasn't blackmailing me." I take a deep breath. "It was Hooper." - { not hooper_mentioned: - "Hooper!" Harris exclaims, in surprise. {harris_thinks_youre_drugged:He does not doubt me for a moment.} - - else: - "Now look here," Harris interrupts. "Don't start that again." - } - "It's the truth, Harris. If I'm going to jail, so be it, but I won't hang at Traitor's Gate. Hooper was the one who told the boy about our work. Hooper put the boy on to me. { forceful < 2:I should have realised, of course. These things don't happen by chance. I was a fool to think they might.} And then, once he had me compromised, he demanded I steal the part from the machine." - ~ revealedhooperasculprit = true - "Which you did." Harris leans forward. "And then what? You still have it? You've stashed it somewhere?" - * * (didnt_have_long) [Yes] - "Yes. I only had a moment. -> reveal_location_of_component - - * * (passed_on) [No] -> passed_onto_hooper - * * [Lie] -> passed_on - * * [Evade] - "I can't remember." - He draws his gun and lays it lightly on the field table. - "I'm sorry to threaten you, friend. But His Majesty needs that brain of yours, and that brain alone. There are plenty of other parts to you that our country could do better without. Now I'll ask you again. Did you hide the component?" - * * * [Yes] -> didnt_have_long - * * * (nope_didnt_hide) [No] - "Very well then." I swallow nervously, to make it look more genuine. -> passed_onto_hooper - * * * [Lie] -> nope_didnt_hide - - * * * [Evade] -> i_dont_have_it - - * [Tell the truth] -> yes - * [Lie] -> notright - -= i_dont_have_it - "I don't have it any more. I passed it through the fence to my contact straight after taking it, before it was discovered to be missing. It would have been idiocy to do differently. It's long gone, I'm afraid." - "You fool, Manning," Harris curses, getting quickly to his feet. "You utter fool. Do you suppose you will be any better off living under Hitler? It's men like you who will get us all killed. Men too feeble, too weak in their hearts to stand up and take a man's responsibility for the world. You're happier to stay a child all your life and play with your little childish toys." - * [Answer back] - "Really, Commander," I reply. "It rather sounds like you want to spank me." - "For God's sake," he declares with thick disgust, then swoops away out of the room. - - * [Say nothing] - I say nothing. It's true, isn't it? I can't deny that I know there is a world out there, a complicated world of pain and suffering. And I can't deny that I don't think about it a moment longer than I have to. What use is thinking on a problem that cannot be solved? It is precisely our ability to avoid such endless spirals that makes us human and not machine. - "God have mercy on your soul," Harris says finally, as he gets to his feet and heads for the door. "I fear no—one else will." - - - -> left_alone - -= passed_onto_hooper - ~ hooper_mentioned = true - "No. I passed it on to Hooper." - "I see. And what did he do with it?" - * [Evade] - "I don't know." - "You can do better than that. Remember, there's a hangman's noose waiting for traitors." - * * [Theorise] - "Well, then," I answer, nervously. "What would he do? Either get rid of it straight away — or if that wasn't possible, which it probably wouldn't be, since he'd have to arrange things with his contacts — so most likely, he'd hide it somewhere and wait, until you had the rope around my neck and he could be sure he was safe." - -> claim_hooper_took_component.harris_being_convinced - - * * [Shrug] -> claim_hooper_took_component.its_your_problem - - * [Tell the truth] - "I don't think Hooper could have planned this in advance. So he'd need to get word to whoever he's working with, and that would take time. So I think he would have hidden it somewhere, and be waiting to make sure I soundly take the fall. That way, if anything goes wrong, he can arrange for the part to be conveniently re—found." - -> claim_hooper_took_component.harris_being_convinced - - * [Lie] - "I'm sure I saw him this evening, talking to someone by the fence on the woodland side of the compound. He's probably passed it on already. You'll have to ask him." - - -> claim_hooper_took_component.harrumphs - - -/*-------------------------------------------------------------------------------- - Trying to frame Hooper ---------------------------------------------------------------------------------*/ - - -=== claim_hooper_took_component -// Blame Hooper - "I saw Hooper take it." - ~ hooper_mentioned = true - { losttemper : - "Did you?" - The worst of his rage is passing; he is now moving into a kind of contemptuous despair. I can imagine him wrapping up our interview soon, leaving the hut, locking the door, and dropping the key down the well in the yard. - And why wouldn't he? With my name tarnished they will not let me back to work on the Bombe — if there is the slightest smell of treachery about my name I would be lucky not be locked up for the remainder of the war. - - else: - "I see." He is starting to lose his patience. I have seen Harris angry a few times, with lackeys and secretaries. But never with us. With the 'brains' he has always been cautious, treating us like children. - And now I see that, like a father, he wants to smack us when we disobey him. - } - "Just get to the truth, man. Every minute matters." - * { admitblackmail } [Persist with this] - "I know what you're thinking. If I've transgressed once then I must be guilty of everything else... But I'm not. We were close to cracking the 13th's intercept. We were getting correlations in the data. Then Hooper disappeared for a moment, and next minute the machine was down." - - * [Tell the truth] - "Very well. I see there's no point in covering up. You know everything anyway." - Harris nods, and waits for me to continue. - -> i_met_a_young_man - - * { not admitblackmail } [Persist with this] - "This is the truth." - - - I have become, somehow, an accustomed liar — the words roll easily off my tongue. Perhaps I am a traitor, I think, now that I dissemble as easily as one. - "Go on," Harris says, giving me no indication of whether he believes my tale. - * [Assert] "I saw him take it," I continue. "Collins was outside having a cigarette. Peterson was at the table. But I was at the front of the machine. I saw Hooper go around the side. He leant down and pulled something free. I even challenged him. I said, 'What's that? Someone put a nail somewhere they shouldn't have?' He didn't reply." - Harris watches me for a long moment. - - * [Imply] "At the moment the machine halted, Peterson was at the bench and Collins was outside having a smoke. I was checking the dip—switches. Hooper was the only one at the back of the Bombe. No—one else could have done it." - "That's not quite the same as seeing him do it," Harris remarks. - * * [Logical] - "When you have eliminated the impossible..." I begin, but Harris cuts me off. - - * * [Persuasive] - "You have to believe me." - "We don't have to believe anyone," Harris returns. "I will only be happy with the truth, and your story doesn't tie up. We know you've been leaving yourself open to pressure. We've been watching your activities for some time. But we thought you were endangering the reputation of this site; not risking the country herself. Perhaps I put too much trust in your intellectual pride." - He pauses for a moment, considering something. Then he continues: - "It might have been Hooper. It might have been you. -> we_wont_guess - - * * [Confident] - "Ask the others," I reply, leaning back. "They'll tell you. If they haven't already, that's only because they're protecting Hooper. Hoping he'll come to his senses and stop being an idiot. I hope he does too. And if you lock him up in a freezing hut like you've done me, I'm sure he will." - "We have," Harris replies simply. - It's all I can do not to gape. - -> hoopers_hut_3 - - - "We are left with two possibilities. You, or Hooper." The Commander pauses to smooth down his moustache. <> - - (hoopers_hut_3) "Hooper's in Hut 3 with the Captain, having a similar conversation." - - * "And the other men?["] Do we have a hut each? Are there enough senior officers to go round?" - "Collins was outside when it happened, and Peterson can't get round the machine in that chair of his," Harris replies. "That leaves you and Hooper. - * "Then you know I'm right.["] You knew all along. Why did you threaten me?" - "All we know is that we have a traitor, holding the fate of the country in his hands. - - (we_wont_guess) <> We're not in the business of guessing here at Bletchley. We are military intelligence. We get answers." Harris points a finger. "And if that component has left these grounds, then every minute is critical." - * [Co-operate] - "I'd be happy to help," I answer, leaning forwards. "I'm sure there's something I could do." - "Like what, exactly?" - * * "Put me in with Hooper." - -> putmein - * * "Tell Hooper I've confessed.["] Better yet. Let him see you marching me off in handcuffs. Then let him go, and see what he does. Ten to one he'll go straight to wherever he's hidden that component and his game will be up." - Harris nods slowly, chewing over the idea. It isn't a bad plan even — except, of course, Hooper has not hidden the component, and won't lead them anywhere. But that's a problem I might be able to solve once I'm out of this place; and once they're too busy dogging Hooper's steps from hut to hut. - "Interesting," the Commander muses. "But I'm not so sure he'd be that stupid. And if he's already passed the part on, the whole thing will only be a waste of time." - * * * "Trust me. He hasn't.["] If I know that man, and I do, he'll be wanting to keep his options open as long as possible. If the component's gone then he's in it up to his neck. He'll take a week at least to make sure he's escaped suspicion. Then he'll pass it on." - "And if we keep applying pressure to him, you think the component will eventually just turn up?" - * * * * "Yes.["] Probably under my bunk." - Harris smiles wryly. "We'll know that for a fake, then. We've looked there already. - * * * * "Or be thrown into the river." - "Hmm." Harris chews his moustache thoughtfully. "Well, that would put us in a spot, seeing as how we'd never know for certain. We'd have to be ready to change our whole approach just in case the part had got through to the Germans. - - - - - <> I don't mind telling you, this is a disaster, this whole thing. What I want is to find that little bit of mechanical trickery. I don't care where. In your luncheon box or under Hooper's pillow. Just somewhere, and within the grounds of this place." - * * * * "Then let him he think he's off the hook.["] Make a show of me. And then you'll get your man." - Somehow, I think. But that's the part I need to work. - -> harris_takes_you_to_hooper - - * * * * "Then you'd better get searching[."]," I reply, tiring of his complaining. A war is a war, you have to expect an enemy. -> its_your_problem - - * * * "You're right. Let me talk to him[."], then. As a colleague. Maybe I can get something useful out of him." - -> putmein - - * * * "You're right." -> shake_head - - * [Block] -> its_your_problem - - -= harris_being_convinced - "Makes sense," Harris agrees, cautiously. { evasive > 1:I can see he's still not entirely convinced by my tale, as well he might not be — I've hardly been entirely straight with him.|I can see he's still not certain whether he can trust me.} "Which means the question is, what can we do to rat him out?" - * [Offer to help] - "Maybe I can help with that." - "Oh, yes? And how, exactly?" - * * "I'll talk to him." - "What?" - "Put me in with Hooper with him. Maybe I can get something useful out of him." - -> putmein - * * "We'll fool him.["] He's waiting to be sure that I've been strung up for this, so let's give him what he wants. If he sees me taken away, clapped in irons — he'll go straight to that component and set about getting rid of it." - -> harris_takes_you_to_hooper - - * [Don't offer to help] - I lean back. -> its_your_problem - -= putmein - Harris shakes his head. - "He despises you. I don't see why he'd give himself up to you." - * [Insist] "Try me. Just me and him." - -> go_in_alone - * [Give in] "You're right." - -> shake_head - - -= shake_head - // Can't help - <> I shake my head. "You're right. I don't see how I can help you. So there's only one conclusion." - "Oh, yes? And what's that?" - -> its_your_problem - - -= its_your_problem -// Won't Help - "It's your problem. Your security breach. So much for your careful vetting process." - I lean back in my chair and fold my arms so the way they shake will not be visible. - "You'd better get on with solving it, instead of wasting your time in here with me." - -> harrumphs - -= harrumphs - Harris harrumphs. He's thinking it all over. - * { putmein } [Wait] - "All right," he declares, gruffly. "We'll try it. But if this doesn't work, I might just put the both of you in front of a firing squad and be done with these games. Worse things happen in time of war, you know." - "Alone," I add. - -> go_in_alone - - * { putmein } [Wait] - "No," Harris declares, finally. "I think you're lying about Hooper. I think you're a clever, scheming young man — that's why we hired you — and you're looking for the only reasonable out this situation has to offer. But I'm not taking it. We know you were in the room with the machine, we know you're of a perverted persuasion, we know you have compromised yourself. There's nothing more to say here. Either you tell me what you've done with that component, or we will hang you and search just as hard. It's your choice." - -> harris_threatens_lynching - - -= go_in_alone - "Alone?" - "Alone." - Harris considers it. I watch his eyes, flicking backwards and forwards over mine, like a ribbon—reader loading its program. - * [Patient] "Well?" - * [Impatient] "For God's sake, man, what do you have to lose?" - ~ raise(forceful) - - "We'll be outside the door," Harris replies, seriously. "The first sign of any funny business and we'll have you both on the floor in minutes. You understand? The country needs your brain, but it's not too worried about your legs. Remember that." - Then he gets to his feet, and opens the door, and marches me out across the yard. The evening is drawing in and there's a chill in the air. My mind is racing. I have one opportunity here — a moment in which to put the fear of God into Hooper and make him do something foolish that places him in harm's way. But how to achieve it? - "You ready?" Harris demands. - * (yes) [Yes] - "Absolutely." - * [No] - "No." - "Too bad." - * [Lie] -> yes - - - -> inside_hoopers_hut - - -/*-------------------------------------------------------------------------------- - Quick visit to see Hooper ---------------------------------------------------------------------------------*/ - -=== harris_takes_you_to_hooper - // Past Hooper - Harris gets to his feet. "All right," he says. "I should no better than to trust a clever man, but we'll give it a go." - Then, he smiles, with all his teeth, like a wolf. - { claim_hooper_took_component.hoopers_hut_3: - "Especially since this is a plan that involves keeping you in handcuffs. I don't see what I have to lose." - - else: - "Hooper's in Hut 3 being debriefed by the Captain. Let's see if we can't get his attention somehow." - } - // Leading you past Hooper - He raps on the door for the guard and gives the man a quick instruction. He returns a moment later with a cool pair of iron cuffs. - "Put 'em up," Harris instructs, and I do so. The metal closes around my wrists like a trap. I stand and follow Harris willingly out through the door. - But whatever I'm doing with my body, my mind is scheming. Somehow, I'm thinking, I have to get away from these men long enough to get that component behind Hut 2 and put it somewhere Hooper will go. Or, otherwise, somehow get Hooper to go there himself... - Harris marches me over to Hut 3, and gestures for the guard to stand aside. Pushing me forward, he opens the door nice and wide. - // Hut 3 - "Captain. Manning talked. If you'd step out for a moment?" - * [Play the part, head down] - From where he's sitting, I know Hooper can see me, so I keep my head down and look guilty as sin. The bastard is probably smiling. - - - * [Look inside the hut] - I look in through the door and catch Hooper's expression. I had half expected him to be smiling be he isn't. He looks shocked, almost hurt. "Iain," he murmurs. "You couldn't..." - - * (shouted) [Call to Hooper] - I have a single moment to shout something to Hooper before the door closes. - "I'll get you Hooper, you'll see!" I cry. Then: - - * * "Queen to rook two, checkmate!"[] I call, then laugh viciously, as if I am damning him straight to hell. - ~ hooperClueType = CHESS - - - (only_catch) I only catch Hooper's reaction for a moment — his eyebrow lifts in surprise and alarm. Good. If he thinks it is a threat then he just might be careless enough to go looking for what it might mean. - - * * "Ask not for whom the bell tolls!" - He stares back at me, as if were a madman and perhaps for a split second I see him shudder. - - - * * "Two words: messy, without one missing!"[] I cry, laughing. It isn't the best clue, hardly worthy of The Times, but it will have to do. - ~ hooperClueType = CROSSWORD - -> only_catch - -- The Captain comes outside, pulling the door to. "What's this?" he asks. "A confession? Just like that?" - "No," the Commander admits, in a low voice. "I'm afraid not. Rather more a scheme. The idea is to let Hooper go and see what he does. If he believes we have Manning here in irons, he'll try to shift the component." - "If he has it." - "Indeed." - The Captain peers at me for a moment, like I was some kind of curious insect. - "Sometimes, I think you people are magicians," he remarks. "Other times you seem more like witches. Very well." - With that he opens the door to the Hut and goes back inside. The Commander uses the moment to hustle me roughly forward. - { shouted : - "And what was all that shouting about?" he hisses in my ear as we move towards the barracks. "Are you trying to pull something? Or just make me look incompetent?" - - else: - "This scheme of yours had better come off," he hisses in my ear. "Otherwise the Captain is going to start having men tailing me to see where I go on Saturdays." - } - * [Reassure] - { not shouted : - "It will. Hooper's running scared," I reply, hoping I sound more confident than I feel. - - else: - "Just adding to the drama," I tell him, confidently. "I'm sure you can understand that." - } - "I think we've had enough drama today already," Harris replies. "Let's hope for a clean kill." - - * [Dissuade] - { not shouted: - "The Captain thought it was a good scheme. You'll most likely get a promotion." - - else: - "I'm not trying to do anything except save my neck." - } - "Let's hope things work out," Harris agrees darkly. - - * [Evade] - "We're still in ear—shot if they let Hooper go. Best get us inside and then we can talk, if we must." - "I've had enough of your voice for one day," Harris replies grimly. <> - - * [Say nothing] - I let him have his rant. <> -- He hustles me up the steps of the barracks, keeping me firmly gripped as if I had any chance of giving him, a trained military man, the slip. It's all I can do not to fall into the room. - -> slam_door_shut_and_gone - - - - -=== inside_hoopers_hut - - Harris opens the door and pushes me inside. "Captain," he calls. "Could I have a moment?" - The Captain, looking puzzled, steps out. The door is closed. Hooper stares at me, open—mouthed, about to say something. I probably have less than a minute before the Captain storms back in and declares this plan to be bunkum. - * [Threaten] - "Listen to me, Hooper. We were the only men in that hut today, so we know what happened. But I want you to know this. I put the component inside a breeze—block in the foundations of Hut 2, wrapped in one of your shirts. They're going to find it eventually, and that's going to be what tips the balance. And there's nothing you can do to stop any of that from happening." - ~ hooperClueType = STRAIGHT - - His eyes bulge with terror. "What did I do, to you? What did I ever do?" - * * [Tell the truth] - "You treated me like vermin. Like something abhorrent." - "You are something abhorrent." - "I wasn't. Not when I came here. And I won't be, once you're gone." - - * * [Lie] - "Nothing," I reply. "You're just the other man in the room. One of us has to get the blame." - - * * [Evade] - "It doesn't matter. Just remember what I said. I've beaten you, Hooper. Remember that." - - - I get to my feet and open the door of the Hut. The Captain storms back inside and I'm quickly thrown out. -> hustled_out - - - * [Bargain] - "Hooper, I'll make a deal with you. We both know what happened in that hut this afternoon. I know because I did it, and you know because you know you didn't. But once this is done I'll be rich, and I'll split that with you. I'll let you have the results, too. Your name on the discovery of the Bombe. And it won't hurt the war effort — you know as well as me that the component on its own is worthless, it's the wiring of the Bombe, the usage, that's what's valuable. So how about it?" - Hooper looks back at me, appalled. "You're asking me to commit treason?" - * * [Yes] - "Yes, perhaps. But also to ensure your name goes down in the annals of mathematics. -> back_of_hut_2 - * * [No] - "No. It's not treason. It's a trade, plain and simple." - - * * (lie) [Lie] - "I'm suggesting you save your own skin. I've wrapped that component in one of your shirts, Hooper. They'll be searching this place top to bottom. They'll find it eventually, and when they do, that's the thing that will swing it against you. So take my advice now. Hut 2." - ~ hooperClueType = STRAIGHT - - * * [Evade] -> lie - - - -> no_chance - - * [Plead] - "Please, Hooper. You don't understand. They have information on me. I don't need to tell you what I've done, you know. Have a soul. And the component — it's nothing. It's not the secret of the Bombe. It's just a part. The German's think it's a weapon — a missile component. Let them have it. Please, man. Just help me." - "Help you?" Hooper stares. "Help you? You're a traitor. A snake in the grass. And you're queer." - * * [Deny] - "I'm no traitor. You know I'm not. How much work have I done here against the Germans? I've given my all. And you know as well as I do, if the Reich were to invade, I would be a dead man. Please, Hooper. I'm not doing any of this lightly." - - * * [Accept] - "I am what I am," I reply. "I'm the way I was made. But they'll hang me unless you help, Hooper. Don't let them hang me." - - * * [Evade] - "That's not important now. What matters is what you do, this evening." - - - - "Assuming I wanted to help you," he replies, carefully. "Which I don't. What would I do?" - "Nothing. Almost nothing. - -> back_of_hut_2 - -= back_of_hut_2 - <> All you have to do is go to the back of Hut 2. There's a breeze—block with a cavity. That's where I've put it. I'll be locked up overnight. But you can pick it up and pass it to my contact. He'll be at the south fence around two AM." - ~ hooperClueType = STRAIGHT - -> no_chance - -= no_chance - "If you think I'll do that then you're crazy," Hooper replies. - At that moment the door flies open and the Captain comes storming back inside. - -> hustled_out - -= hustled_out - // To Barracks - Harris hustles me over to the barracks. "I hope that's the end of it," he mutters. - "Just be sure to let him out," I reply. "And then see where he goes." - -> slam_door_shut_and_gone - - - -/*-------------------------------------------------------------------------------- - Left alone overnight ---------------------------------------------------------------------------------*/ - - -=== slam_door_shut_and_gone - Then they slam the door shut, and it locks. - { hooperClueType == NONE : - <> How am I supposed to manage anything from in here? - * [Try the door] -> try_the_door - * [Try the windows] -> try_the_windows - - - else: - I can only hope that Hooper bites. If he thinks I'm bitter enough to have framed him, and arrogant enough to have taunted him with {hooperClueType > STRAIGHT:a clue to} where the damning evidence is hidden... - If he hates me enough, and is paranoid enough, then he might {hooperClueType > STRAIGHT:unravel my little riddle and} go searching around Hut 2. - } - - * [Wait] -> night_falls - - -= try_the_door - I try the door. It's locked, of course. - -> from_outside_heard - -= from_outside_heard - From outside, I hear a voice. Hooper's. He's haranguing someone. - - (opts) - * (listened) [Listen at the keyhole] - I put my ear down to the keyhole, but there's nothing now. Probably still a guard outside, of course, but they're keeping mum. - -> opts - - * { not try_the_windows } [Try the window] -> try_the_windows - * { not try_the_door } {listened} [Try the door] -> try_the_door - * { try_the_windows } [Smash the window] -> try_to_smash_the_window - * { try_the_door && try_the_windows } [Wait] - It's useless. There's nothing I can do but hope. I sit down on one corner of the bunk to wait. - -> night_falls - -= try_the_windows - I go over to the window and try to jimmy it open. Not much luck, but in my struggling I notice this window only backs on the thin little brook that runs down the back of the compound. Which means, if I smashed it, I might get away with no—one seeing. - -> from_outside_heard - - -= try_to_smash_the_window - The window is my only way out of here. I just need a way to smash it. - * [Punch it] - I suppose my fist would do a good enough job. But I'd cut myself to ribbons, most likely. <> - - * (use_bucket) [Find something] - ~ smashingWindowItem = BUCKET - I cast around the small room. There's a bucket in one corner for emergencies — I suppose I could use that. I pick it up but it's not very easy to heft. <> - * [Use something you've got] - I pat down my pockets but all I'm carrying is the intercept, which is no good at all. - * * [Something you're wearing?] - Ah, but of course! I slip off one shoe and heft it by the toe. The heel will make a decent enough hammer, if I give it enough wallop. - ~ smashingWindowItem = SHOE - But I'll cut my hand to ribbons doing it. <> - * * [Look around] -> use_bucket - - And the noise would be terrible. There must be a way of making this easier. I'm supposed to be a thief now. What would a burglar do? - * [Work slowly] - Work carefully? It's difficult to work carefully when all one's has is { smashingWindowItem == BUCKET :a bucket. It's rather like the sledgehammer for the proverbial nut|{ smashingWindowItem == SHOE :a shoe|nothing but brute force}}. - * * [Just do it] -> time_to_move_now - * * [Look around for something] - * [Find something to help] - - -> find_something_to_smash_window - - -= time_to_move_now - Enough of this. There isn't any time to lose. Right now they'll be following Hooper as he goes to bed, and goes to sleep; and then that's it. The minute he closes his eyelids and drifts off that's the moment that this trap swings shut on me. - So I punch out the glass with my { smashingWindowItem == BUCKET :bucket|{ smashingWindowItem == SHOE :shoe|fist}} and it shatters with a terrific noise. Then I stop, and wait, to see if anyone will come in through the door. - Nothing. - * (pause) [Wait a little longer] - I pause for a moment longer. It doesn't do to be too careless... - * [Clear the frame of shards] - With my jacket wrapped round my arm, I sweep out the remaining shards of glass. It's not a big window, but I'm not a big man. If I was Harris, I'd be stuffed, but as it is... - - - Then the door locks turns. The door opens. Then Jeremy — one of the guards, rather — sticks his head through the door. "I thought I heard..." - He stops. Looks for a moment. { smashingWindowItem ==BUCKET :Sees the bucket in my hand.|Sees the broken window.} Then without a moment's further thought he blows his shrill whistles and hustles into the hut, grabbing me roughly by my arms. - { pause: - I'll never know if I hadn't have waited that extra moment — maybe I still could have got away. But, how far? - } - I'm hustled into one of the huts. Nowhere to sleep, but they're not interested in my comfort any longer. Harris comes in with the Captain. - "So," Harris remarks. "Looks like your little trap worked. Only it worked to show you out for what you are." - * [Tell the truth] - { i_met_a_young_man : - "Please, Harris. You can't understand the pressure they put me under. You can't understand what it's like, to be in love but be able to do nothing about it..." - - else: - "Harris. They were blackmailing me. They knew about... certain indiscretions. You can understand, can't you, Harris? I was in an impossible bind..." - } - * [Lie] - "I had to get out, Harris. I had to provoke Hooper into doing something that would incriminate himself fully. He's too clever, you see..." - - * [Evade] - "This proves nothing," I reply stubbornly. "You still don't have the component and without it, I don't see what you can hope to prove." - - - "Be quiet, man. We know all about your and your sordid affairs." The Captain curls his lip. "Don't you know there's a war on? Do you know the kind of place they would have sent you if it haven't had been for that brain of yours? Don't you think you owe it to your country to use it a little more?" - - Do I, I wonder? Do I owe this country anything, this country that has spurned who and what am I since the day I became a man? - * [Yes] - My anger deflates like a collapsing equation, all arguments cancelling each other out. The world, of course, owes me nothing; and I owe it everything. - - * (alone) [No] - Of course not. I am alone; that is what they wanted me to be, because of who and what I love. So I have no nation, no country. - - - * [Lie] -> alone - * [Evade] - But what is a country, after all? A country is not a concept, not an ideal. Every country falls, its borders shift and move, its language disappears to be replaced by another. Neither the Reich nor the British Empire will survive forever, so what use is my loyalty to either? - I may as well, therefore, look after myself. Something I have attempted, but failed miserably, to do. - - - // Tell us where - "I'm afraid we have only one option, Manning," Harris says. "Please, man. Tell us where the component is." - ~ notraitor = true - ~ losttemper = false - * [Tell them] - ~ revealedhooperasculprit = false - "All right." I am beaten, after all. "<>-> reveal_location_of_component - - * [Say nothing] -> my_lips_are_sealed - -= find_something_to_smash_window - Let me see. There's the bunk, { not smashingWindowItem == BUCKET :a bucket,} nothing else. I have my jacket but nothing in the pockets — no handkerchief, for instance. - - (opts) - * [The bunk] - The bunk has a solid metal frame, a blanket, a pillow, nothing more. - - - (bunk_opts) - * * [The frame] - The frame is heavy and solid. I couldn't lift it or shift it without help from another man. And it wouldn't do me any good here anyway. I can reach the window perfectly well. - -> bunk_opts - * * [The blanket] - The blanket. Perfect. I scoop it up off the bed and hold it in place over the window. -> smash_the_window - * * [The pillow] - The pillow is fat and fluffy. I could put it over the window and it would muffle the sound of breaking glass, certainly; but I wouldn't be able to break any glass through it either. - -> bunk_opts - - * * {bunk_opts > 1} [Something else] -> opts - - * [The jacket] - I slip off my jacket and hold it with one hand over the glass. -> smash_the_window - * { not smashingWindowItem == BUCKET } [The bucket] - The bucket? Hardly. The bucket might do some good if I wanted to sweep up the glass afterwards, but it won't help me smash the glass quietly. - -> opts - - -=== smash_the_window - // Smashing glass - Then I heft { smashingWindowItem == BUCKET :up the bucket — this really is quite a fiddly thing to be doing in cuffs — |{ smashingWindowItem == SHOE : my shoe by its toe, |back my arm, }} and take a strong swing, trying to imagine it's Harris' face on the other side. - ~ smashedglass = true - ~ smashingWindowItem = NONE - * [Smash!] - - The sound of the impact is muffled. With my arm still covered, I sweep out the remaining glass in the frame. - - I'm ready to escape. The only trouble is — when they look in on me in the morning, there will be no question what has happened. It won't help me one jot with shifting suspicion off my back. - * [Wait] - So perhaps I should wait it out, after all. Who knows? I might have a better opportunity later. - -> night_passes - * [Slip out] - Moving quickly and quietly, I hoist myself up onto the window—frame and worm my way outside into the freezing night air. Then I am away, slipping down the paths between the Huts, sticking to the shadows, on my way to Hut 2. - // Out at night - - - * [Go the shortest way] - There's no time to lose. Throwing caution to the wind I make my way quickly to Hut 2, and around the back. I don't think I've been seen but if I have it is too late. My actions are suspicious enough for the noose. I have no choice but to follow through. - * [Take a longer route] - In case I'm being followed, I divert around the perimeter of the compound. It's a much longer path, and it takes me across some terrain that's difficult to negotiate in the dark — muddy, and thick with thistles and nestles. - ~ muddyshoes = true - Still, I can be confident no—one is behind me. I crouch down behind the rear wall of Hut 2. <> - - The component is still there, wrapped in a tea—towel and shoved into a cavity in a breeze—block at the base of the Hut wall. - * [Take it] - Quickly, I pull it free, and slip it into the pocket of my jacket. - ~ gotcomponent = true - - * [Leave it] - Still there means no—one has found it, which means it is probably well—hidden. And short of skipping the compound now, I can afford to leave it hidden there a while longer. So I leave it in place. - - Where now? - * [Back to the barracks] -> return_to_room_after_excursion - * { gotcomponent } [Go to Hooper's dorm] -> go_to_hoopers_dorm - * [Escape the compound] - Enough of this place. Time for me to get moving. I can get to the train station on foot, catch the postal train to Scotland and be somewhere else before anyone realises that I'm gone. - - Of course, then they'll be looking for me in earnest. { not framedhooper :As a confirmed traitor.|Perhaps not as a traitor — they might take the idea that Hooper was involved with the theft — but certainly as a valuable mind, one containing valuable secrets and all too easily threatened. They will think I am running away because of my indiscretions. I suppose, in fairness, that I am.} - * * [Go] -> live_on_the_run - * * [Don't go] - It's no good. That's only half a solution. I couldn't be happy with that. - * * * [Back to the barracks] -> return_to_room_after_excursion - * * * { gotcomponent && not go_to_hoopers_dorm } [To Hooper's dorm] -> go_to_hoopers_dorm - - -/*-------------------------------------------------------------------------------- - Visit Hooper's dorm overnight ---------------------------------------------------------------------------------*/ - - -=== go_to_hoopers_dorm - // Hooper's Dorm - I creep around the outside of the huts towards Hooper's dorm. Time to wrap up this little game once and for all. A few guards patrol the area at night but not many — after all, very few know this place even exists. - Our quarters are arranged away from the main house; where we sleep is of less importance than where we work. We each have our own hut, through some are less permanent than others. Hooper's is a military issue tent: quite a large canopy, with two rooms inside and a short porch area where he insists people leave their shoes. It's all zipped up for the night and no light shines from inside. - I hang back for a moment. If Harris is keeping to the terms of our deal then someone will be watching this place. But I can see no—one. - * (outer_zip) [Open the outer zip] - I creep forward to the tent, intent on lifting the zip to the front porch area just a little — enough to slip the component inside, and without the risk of the noise waking Hooper from his snoring. - The work is careful, and more than little fiddly — Hooper has tied the zips down on the inside, the fastidious little bastard! — but after a little work I manage to make a hole large enough for my hand. - * * [Slip in the component] - I slide the component into the tent, work the zip closed, and move quickly away into the shadows. It takes a few minutes for my breath to slow, and my heart to stop hammering, but I see no other movement. If anyone is watching Hooper's tent, they are asleep at their posts. - ~ putcomponentintent = true - ~ gotcomponent = false - -> return_to_room_after_excursion - * * [No, some other way] - Then pause. This is too transparent. Too blatant. If I leave it here, like this, Hooper will never be seen to go looking for it: he will stumble over it in plain sight, and the men watching will wonder why it was not there when he went to bed. - No, I must try something else — or nothing at all. - * * * [On top of the tent] -> put_component_on_tent - * * * [Throw the component into the long grass] - From inspiration — or desperation, I am not certain — a simple approach occurs to me. -> toss_component_into_bushes - * * * [Give up] - There is nothing to be gained here. I have the component now; maybe it will be of some value tomorrow. - * * * * [Return to my barrack] -> return_to_room_after_excursion - * * * * [Escape the compound] -> live_on_the_run - - * (wide_circuit) [Look for another opening] - Making a wide circuit I creep around the tent. It has plenty of other flaps and openings, tied down with Gordian complexity. But nothing afford itself to slipping the component inside. - * * [Try the porch zip] -> outer_zip - * * [Try on top of the tent] -> put_component_on_tent - * * [Give up] - It's no good. Nothing I can do will be any less than obvious — something appearing where something was not there before. The men watching Hooper will know it is a deception and Hooper's protestations will be taken at face value. - If I can't find a way for Hooper to pick the component up, as if from a hiding place of his own devising, and be caught doing it, then I have no plan at all. - * * * [Return to my barrack] -> return_to_room_after_excursion - * * * [Escape the compound] -> live_on_the_run - * * * [Toss the component into the bushes] -> toss_component_into_bushes - - * [Hide the component somewhere] - If I leave the component here somewhere it should be somewhere I can rely on Hooper finding it, but no—one before Hooper. In particular. - * * [Behind the tent] -> wide_circuit - * * [Inside the porch section] -> outer_zip - * * [On top of the canvas] -> put_component_on_tent - - -= put_component_on_tent - A neat idea strikes me. If I could place it on top of the canvas, somewhere in the middle where it would bow the cloth inwards, then it would be invisible to anyone passing by. But to Hooper, it would be above him: a shadow staring him in the face as he awoke. What could be more natural than getting up, coming out, and looking to see what had fallen on him during the night? - - It's the work of a moment. I was once an excellent bowler for the second XI back at school. This time I throw underarm, of course, but I still land the vital missing component exactly where I want it to go. - ~ framedhooper = true - ~ gotcomponent = false - For a second I hold my breath, but nothing and no—one stirs. -> return_to_room_after_excursion - - -= toss_component_into_bushes - I toss the component away into the bushes behind Hooper's tent and return to my barrack, wishing myself a long sleep followed by a morning, free of this business. - ~ gotcomponent = false - ~ throwncomponentaway = true - -> return_to_room_after_excursion - -/*-------------------------------------------------------------------------------- - Ending: Run away from the camp ---------------------------------------------------------------------------------*/ - - -=== live_on_the_run - Better to live on the run than die on the spit. Creeping around the edge of the compound{ gotcomponent :, the Bombe component heavy in my pocket}, I make my way to the front gate. As always, it's manned by two guards, but I slip past their box by crawling on my belly. - And then I'm on the road. Walking, not running. Silent. Free. - // End - Run Away - For the moment, at least. - -> END - -/*-------------------------------------------------------------------------------- - Return to room after slipping out ---------------------------------------------------------------------------------*/ - - -=== return_to_room_after_excursion - { gotcomponent :The weight of the Bombe component safely in my jacket|Satisfied}, I return the short way up the paths between the huts to the barrack block and the broken window. - It's a little harder getting back through — the window is higher off the ground than the floor inside — but after a decent bit of jumping and hauling I manage to get my elbows up, and then one leg, and finally I collapse inside, quite winded and out breath. - * [Wait] -> night_passes - -/*-------------------------------------------------------------------------------- - Night passes ---------------------------------------------------------------------------------*/ - - -=== night_passes -// In room smashed glass - The rest of the night passes slowly. I sleep a little, dozing mostly. Then I'm woken by the rooster in the yard. The door opens, and Harris comes in. He takes one look at the broken window and frowns with puzzlement. - { putcomponentintent: -> put_component_inside_tent } - - "What happened there?" - * [Confess] - "I broke it," I reply. There doesn't seem any use in trying to lie. "I thought I could escape. But I couldn't get myself through." - The Commander laughs. -> glad_youre_here - - * (deny) [Deny] - "I'm not sure. I was asleep: I woke up when someone broke the window. I looked out to see who it was, but they were already gone." - Harris looks at me with puzzlement. "Someone came by to break the window, and then ran off? That's absurd. That's utterly absurd. Admit it, Manning. You tried to escape and you couldn't get through." - * * [Admit it] - "All right. {forceful>1:Damn you.} That's exactly it." - -> glad_youre_here - - * * { not framedhooper } [Deny it] - "If I wanted to escape, I would have made damn sure that I could," I tell him sternly. - -> harris_certain_is_you - - * * { framedhooper } [Deny it] - "I tell you, someone broke it. Someone wanted to threaten me, I think." - Harris shakes his head. "Well, we can look into that matter later. For now, you probably want to hear the more pressing news. -> found_missing_component - - * { gotcomponent } [Show him the component] -> someone_threw_component - -= put_component_inside_tent - He takes one look around, and sighs, a deep, wistful sigh. - "Things just get worse and worse for you, Manning," he remarks. "You are your own worst enemy." - * [Agree] - "I've thought so before." { admitblackmail :Certainly in the matter of getting blackmailed.} - "Let me tell you what happened this morning. <> - - * [Disagree] - "Right now, I think you take that role, Harris," I reply coolly. - - - (droll) "Very droll," he replies. "Let me tell you what happened this morning. It will take the smile off your face. <> - - * [Evade] - "I'm looking forward to having a wash and a change of clothes; which should make me a little less evil to be around." - -> droll - - - Our men watching Hooper's tent saw Hooper wake up, get dressed, clamber out of his tent and then step on something in at the entrance of his tent." - ~ piecereturned = true - * [Be interested] - "You mean he didn't even hide it? He put it in his shoe?" - - - (not_that) "No," Harris replies. "That isn't really what I mean. <> - - * [Be dismissive] - "So he's an idiot, and he hid it in his shoe." - -> not_that - - * [Say nothing] - I say quiet, listening, not sure how this will go. - "In case I'm not making myself clear," Harris continues, "<> - - - I mean, he managed to find it, by accident, somewhere where it wasn't the night before. And at the same time, you're sitting here with your window broken. So, I rather think you've played your last hand and lost. It's utterly implausible that Hooper stole that component and then left it lying around in the doorway of his tent. So I came to tell you that the game is up, for you." - He nods and gets to his feet. -> left_alone - - - -= someone_threw_component - "Someone threw this in through the window over night," I reply, and open my jacket to reveal the component from the Bombe. "I couldn't see who, it was too dark. But I know what it is." - He reaches out and takes it. "Well, I'll be damned," he murmurs. "That's it all right. And you didn't have it on you when we put you in here. But it can't have been Hooper — I had men watching him all night. And there's no—one else it could have been." - He turns the component over in his hands, bemused. - ~ piecereturned = true - * [Suggest something] - "Perhaps Hooper had an accomplice. Someone else who works on site." - Harris shakes his head, distractedly. "That doesn't make sense," he says. "Why go to all the trouble of stealing it only to give it back? And why like this?" - * * [Suggest something] - "Perhaps the accomplice thought it was Hooper being kept in here. Maybe they saw the guard..." - -> all_too_farfetched - * * [Suggest nothing] - * [Suggest nothing] - - I shrug, eloquently. - - -> all_too_farfetched - - -= glad_youre_here - "Shame," he remarks. "I should have left that window open and put a guard on you. Might have been interesting to see where you went. Anyway, I'm glad you're still here, even if you do smell like a dog." - - * { not framedhooper } [Be optimistic] - -> night_falls.morning_not_saved.optimism - * { not framedhooper } [Be pessimistic] - -> night_falls.morning_not_saved.pessimism - - * { framedhooper } [Be optimistic] - "I'm looking forward to having a bath." - // Framed Hooper - "Well, you should enjoy it. <> - - * { framedhooper } [Be pessimistic] - "I imagine I'll smell worse after another couple of days of this." - "That won't be necessary. <> - - -> found_missing_component - - -= found_missing_component - // Framed Hooper - We found the missing component. Or rather, Hooper found it for us. He snuck out and retrieved it from on top. Of all the damnest places — you would never have known it was there. He claimed ignorance when we jumped him, of course. But it's good enough for me." - * (devil) [Approve] - "I can't tell you enough, I'm glad to hear it. I've had a devil of a night." - His gaze flicks to the broken window, but only for a moment. I think he genuinely cannot believe I could have done it. - * [Disapprove] - "You should never have hired him. A below-average intelligence can't be expected to cope with the pressure of our work." - - Harris rolls his eyes, but he might almost be smiling. "You'd better get along, { devil :and work through your devils|Mr Intelligent}. There's a 24—hour—late message to be tackled and we're a genius short. So you'd better be ready to work twice as hard." - * [Thank him] - "I'll enjoy it. Thank you for helping me clear this up." - "Don't thank me yet. There's still a war to fight. Now get a move on." - I nod, and hurry out of the door. The air outside has never tasted fresher and more invigorating. <> - - * [Argue with him] - "I'll work as hard as I work." - "Get out," Harris growls. "Before I decide to arrest you as an accessory." - I do as he says. Outside the barrack, the air has never smelt sweeter. - - -> head_for_my_dorm_free - - -=== night_falls === -// Night falls - Night falls. The clockwork of the heavens keeps turning, whatever state I might be in. No—one can steal the components that make the sun go down and the stars come out. I watch it performing its operations. I can't sleep. - { hooperClueType > NONE : - Has Hooper taken my bait? - } - * [Look of out the window] - I peer out of the window, but it looks out onto the little brook at the back of the compound, with no view of the other huts or the House. Who knows if there are men up, searching the base of Hut 2, following one another with flashlights... - {inside_hoopers_hut.back_of_hut_2: - Perhaps Hooper is there, in the dark, trying to help me after all? - } - * [Listen at the door] - I put my ear to the keyhole but can make out nothing. Are there still guards posted? { hooperClueType > NONE :Perhaps, if Hooper has managed to incriminate himself, the guards have been removed?|Perhaps the component has been found and the crisis is over.} - Perhaps the door is unlocked and they left me to sleep? - * * [Try it] I try the handle. No such luck. - * * [Leave it] I don't touch it. I don't want anyone outside thinking I'm trying to escape. - - * [Wait] - There is nothing I can do to speed up time. - - - The night moves at its own pace. I suppose by morning I will know my fate. - * { hooperClueType > NONE } [Wait] - // Hooper now arrested - Morning comes. I'm woken by a rooster calling from the yard behind the House. I must have slept after all. I pull myself up from the bunk, shivering slightly. There is condensation on the inside of the window. I have probably given myself a chill. - Without knocking, Harris comes inside. "You're up," he remarks, and then, "You smell like an animal." - * * [Be friendly] - "I suppose I do rather." I laugh, but Harris does not. - "This damn business gets worse and worse," he says, talking as he goes over to unlock and throw open the window. <> - * * [Be cold] - "So would you," I reply tartly. Harris shrugs. - "I've been through worse than this," he replies matter—of—factly. "It's hardly my fault if you sleep in your clothes." - I glare back. He goes over to the window, unlocks it and throws it open, relishing the fresh air from outside. - - - "Hooper's confessed, you know." - * * [Be eager] - "He has? I knew he would. The worm." - "Steady now. Matters aren't over yet. <> - * * [Be cautious] - "Oh, yes?" - "Yes. For what that's worth. <> - - - (hooper_didnt_give_himself_up) There's still the issue of the component. It hasn't turned up. He didn't lead us to it. I guess he figured you must have had something on him. I don't know." - - He looks quite put out by the whole affair. He is not the kind of man to deal well with probabilities. - * * [Be interested] - "You mean he confessed of his own accord? You didn't catch him?" - - * * [Be disinterested] - "Well, I'm glad his conscience finally caught up with him," I reply dismissively. - - - "The Captain went back into that hut and he confessed immediately. We were so surprised we didn't let you go." He wrinkles his nose. "I'm rather sorry about that now. I suggest you have a wash." - And with that he gestures to the doorway. - * * [Go] - * * [Wait] - I hang back a moment. Something does not seem quite right. After all, Hooper did not steal the component. He has no reason to confess to anything. Perhaps this is another trap? - "Well?" Harris asks. "What are you waiting for? Please don't tell me you want to confess now as well, I don't think my head could stand it." - * * * [Confess] - After a chance like this? A chance — however real — to save my neck? To hand it over — what, to save Hooper's worthless skin? - * * * * [Confess] - I see. Perhaps you think I bullied the man into giving himself up. Perhaps he understood my little clue far enough to know it was a threat against him, but not well enough to understand where he should look to find it. So he took the easy route out and folded. Gave me the hand. - ~ hooperConfessed = true - Hardly sporting, of course. - * * * * * [Confess] - Well, then. I suppose this must be what it feels like to have a conscience. I suppose I had always wondered. - "Harris, sir. I don't know what Hooper's playing at, sir. But I can't let him do this." - "Do what?" - "Take the rope for this. I took it, sir. - ~ revealedhooperasculprit = false - ~ losttemper = false - -> reveal_location_of_component - * * * * * [Don't confess] - * * * * [Don't confess] - * * * [Don't confess] - - - - "I certainly don't. But still, I'm surprised. I had Hooper down for a full—blown double agent, a traitor. He knows he'll face the rope, doesn't he?" - "Don't ask me to explain why he did what he did," Harris sighs. "Just be grateful that he did, and you're now off the hook." - - - Curiouser and curiouser. I nod once to Harris and slip outside into the cold morning air. - { hooperClueType == NONE : - Hooper's confession only makes sense in one fashion{ hooperConfessed :, and that is his being dim—witted and slow| — if I successfully implied to him that I had him framed, but he did not unpack my little clue well enough to go looking for the component. Well, I had figured him for a more intelligent opponent, but a resignation from the game will suffice}. Or perhaps he knew he would be followed if he went to check, and decided he would be doomed either way. - - else: - Hooper's confession only makes sense in one way — and that's that he believed me. He reasoned that he would be followed. To try and uncover the component would have got him arrested, and to confess was the same. - He simply caved, and threw in his hand. - } - // Outside, possibly free - Of course, however, there is only one way to be certain that Harris is telling the truth, and that is to check the breeze—block at the back of Hut 2. - * * [Check] -> go_to_where_component_is_hidden - * * [Don't check] - But there will time for that later. If there is nothing there, then Hooper discovered the component after all and Harris' men will have swooped on him, and the story about his confession is just a ruse to test me out. - And if the component is still there — well. It will be just as valuable to my contact in a week's time, and his deadline of the 31st is not yet upon us. - -> head_for_my_dorm_free - - * { hooperClueType == NONE } [Wait] -> morning_not_saved - -= morning_not_saved - // Not saved - Morning comes with the call of a rooster from the yard of the House. I must have slept after all. I pull myself up off the bunk, shivering slightly. There is condensation on the inside of the window. I have probably given myself a chill. - It's not long after that Harris enters the hut. He closes the door behind him, careful as ever, then takes a chair across from me. - "You smell like a dog," he remarks. - * (optimism) [Be optimistic] - "I'm looking forward to a long bath," I reply. "And getting back to work." - * (pessimism) [Be pessimistic] - "So would you after the night I've had." - - - -> harris_certain_is_you - - -=== harris_certain_is_you - "Well, I'm afraid it is going to get worse for you," Harris replies soberly. "We followed Hooper, and he took himself neatly to bed and slept like a boy scout. Which puts us back to square one, and you firmly in the frame. And I'm afraid I don't have time for any more games. I want you to tell me where that component is, or we will hang you as a traitor." - ~ revealedhooperasculprit = false - ~ losttemper = false - -> harris_threatens_lynching - - - - -/*--------------------------------------------------------------- - Ending: they don't think it was you ----------------------------------------------------------------*/ - - -=== head_for_my_dorm_free -I head for my dorm, intent on a bath, breakfast, a glance at the crossword before the other men get to it, and then on with work. They should have replaced the component in the Bombe by now. We will only be a day behind. - { not framedhooper : - And then everything will proceed as before. The component will mean nothing to the Germans — this is the one fact I could never have explained to a man like Harris, even though the principle behind the Bombe is the same as the principle behind the army. The individual pieces — the men, the components — do not matter. They are identical. It is how they are arranged that counts. -} -I bump into Russell in the dorm hut. -"Did you hear?" he whispers. "Terrible news about Hooper. Absolutely terrible." - * [Yes] - "Quite terrible. I would never have guessed." - "Well." Russell harrumphs. - - - (quince) "Quince was saying this morning, apparently his grandfather was German. So perhaps it's to be expected. See you there?" - - * [No] - - "Heard what?" - - - (hooper_taken) "Hooper's been taken away. They caught him, uncovering that missing Bombe component from a hiding place somewhere, apparently about to take it to his contact." Russell harrumphs. -> quince - * [Lie] - "I don't know what you're talking about." - -> hooper_taken - * [Evade] - "If you'll excuse me, Russell. I was about to take a bath." - "Oh, of course. Worked all night, did you? Well, you'll hear soon enough. Can hardly hide the fact there'll only be three of us from now on." - -- I wave to him and move away, my thoughts turning to the young man in the village. My lover. My contact. My blackmailer. Hooper may have taken the fall for the missing component, but { not framedhooper :if he did recover it from Hut 2 then | its recovery does mean }I have nothing to sell to save my reputation{ i_met_a_young_man :, if I have any left}. - { not framedhooper : -If he didn't, of course, and Harris was telling the truth about his sudden confession, then I will be able to buy my freedom once and for all. -} - * { not framedhooper } [Get the component] -> go_to_where_component_is_hidden - * { not framedhooper } [Leave it] - I will have to leave that question for another day. To return there now, when they're probably watching my every step, would be suicide. After all, if Hooper { hooperClueType == STRAIGHT :followed|understood} my clue, he will have explained it to them to save his neck. They won't believe him — but they won't quite disbelieve him either. We're locked in a cycle now, him and me, of half—truth and probability. There's nothing either of us can do to put the other entirely into blame. - -> ending_return_to_normal - * [Act normal] - But there is nothing to be done about it. -> ending_return_to_normal - - - - -=== ending_return_to_normal -Nothing, that is, except to act as if there is no game being played. I'll have a bath, then start work as normal. I've got a week to find something to give my blackmailer{ i_met_a_young_man : — or give him nothing: it seems my superiors know about my indiscretions now already}. - * [Co-operate] - Something will turn up. It always does. An opportunity will present itself, and more easily now that Hooper is out of the way. - But for now, there's yesterday's intercept to be resolved. - - * [Dissemble] - Or perhaps I might hand my young blackmailer over my superiors instead for being the spy he is. - Perhaps that would be the moral thing to do, even, and not just the most smart. - But not today. Today, there's an intercept to resolve. - - * [Lie] - In a week's time, this whole affair will be in the past and quite forgotten. I'm quite sure of that. -> moreimportant - * (moreimportant) [Evade] I've more important problems to think about now. There's still yesterday's intercept to be resolved. -- The Bombe needs to be set up once more and set running. -It's time I tackled a problem I can solve. -// End - Scot Free --> END - - -=== go_to_where_component_is_hidden - It won't take a moment to settle the matter. I can justify a walk past Hut 2 as part of my morning stroll. It will be obvious in a moment if the component is still there. - On my way across the paddocks, between the huts and the House, I catch sight of young Miss Lyon, arriving for work on her bicycle. She giggles as she sees me and waves. - * [Wave back] - I wave cheerily back and she giggles, almost drops her bicycle, then dashes away inside the House. Judging by the clock on the front gable, she's running a little late this morning. - * [Ignore her] - I give no reaction. She sighs to herself, as if this kind of behaviour is normal, and trots away inside the House to begin her duties. - - I turn the corner of Hut 3 and walk down the short gravel path to Hut 2. It was a good spot to choose — Hut 2 is where the electricians work, and they're generally focussed on what they're doing. They don't often come outside to smoke a cigarette so it's easy to slip past the doorway unnoticed. - * [Check inside] - I hop up the steps and put my head inside all the same. Nobody about. Still too early in the AM for sparks, I suppose. <> - * [Go around the back] - - - I head on around the back of the hut. The breeze—block with the cavity is on the left side. - * (check) [Check] - No time to waste. I drop to my knees and check the breeze—block. Sure enough, there's nothing there. Hooper took the bait. - Suddenly, there's a movement behind me. I look up to see, first a snub pistol, and then, Harris. - - * [Look around] - I pause to glance around, and catch a glimpse of movement. Someone ducking around the corner of the hut. Or a canvas sheet flapping in the light breeze. Impossible to be sure. - * * [Check the breeze—block] -> check - * * [Check around the side of the hut] - But too important to guess. I move back around the side of the hut. - Harris is there, leaning in against the wall. He holds a stub pistol in his hand. - - - { hooperClueType > STRAIGHT : - "{ hooperClueType == CHESS:Queen to rook two|Messy without one missing whatever it was}," he declares. "I wouldn't have fathomed it but Hooper did. Explained it right after we sprung him doing what you're doing now. We weren't sure what to believe but now, you seem to have resolved that for us." - - else: - "Hooper said you'd told him where to look. I didn't believe him. Or, well. I wasn't sure what to believe. Now I rather think you've settled it." - } - * [Agree] - "I have, rather." I put my hands into my pockets. "I seem to have done exactly that." - "I'm afraid my little story about Hooper confessing wasn't true. I wanted to see if you'd go to retrieve the part." Harris gestures me to start walking. "You were close, Manning, I'll give you that. I wanted to believe you. But I'm glad I didn't." - -> done - * [Lie] - "I spoke to Russell. He said he saw Hooper doing something round here. I wanted to see what it was." - - * [Evade] - "Harris, you'd better watch out. He's planted a time—bomb here." - Harris stares at me for a moment, then laughs. "Oh, goodness. That's rich." - I almost wish I had a way to make the hut explode, but of course I don't. - - - "Enough." Harris gestures for me to start walking. "This story couldn't be simpler. You took it to cover your back. You hid it. You lied to get Hooper into trouble, and when you thought you'd won, you came to scoop your prize. A good hand but ultimately, { hooperClueType <= STRAIGHT :if it hadn't have been you who hid the component, then you wouldn't be here now|you told Hooper where to look with your little riddle}." - - - (done) - // End - Caught in AM - He leads me across the yard. Back towards Hut 5 to be decoded, and taken to pieces, once again. - -> END - - -/*--------------------------------------------------------------- - Ending: they think it was you ----------------------------------------------------------------*/ - -=== harris_threatens_lynching - { harris_certain_is_you:He passes a hand across his eyes with a long look of despair.|He gets to his feet, and gathers his gloves from the table top.} - "I'm going to go outside and organise a rope. That'll take about twelve minutes. That's how long you have to decide." - * [Protest] - "You can't do this!" I cry. "It's murder! I demand a trial, a lawyer; for God's sake, man, you can't just throw me overboard, we're not barbarians...!" - - - (too_clever) "You leave me no choice," Harris snaps back, eyes cold as gun—metal. "You and your damn cyphers. Your damn clever problems. If men like you didn't exist, if we could just all be straight with one another." He gets to his feet and heads for the door. "I fear for the future of this world, with men like you in. Reich or no Reich, Mr Manning, people like you simply complicate matters." - -> left_alone - * { not gotcomponent && not throwncomponentaway } [Confess] - I nod. "I don't need twelve minutes. -> reveal_location_of_component - * [Stay silent] -> my_lips_are_sealed - * { gotcomponent } [Show him the component] - "I don't need twelve minutes. Here it is." - I open my jacket and pull the Bombe component out of my pocket. Harris takes it from me, whistling, curious. - "Well, I'll be. That's it all right." - "That's it." - "But you didn't have it on you yesterday." - * * [Explain] - "I climbed out of the window overnight," I explain. "I went and got this from where it was hidden, and brought it back here." - * * [Don't explain] - "No. I didn't." - - -> all_too_farfetched - - * { throwncomponentaway } [Confess] - "I don't need twelve minutes. The component is in the long grass behind Hooper's tent. I threw it there hoping to somehow frame him, but now I see that won't be possible. I was naive, I suppose." - ~ piecereturned = true - -> reveal_location_of_component.harris_believes - - * { throwncomponentaway } [Frame Hooper] - "Look, I know where it is. The missing piece of the Bombe is in the long grasses behind Hooper's tent. I saw him throw it there right after we finished work. He knew you'd scour the camp but I suppose he thought you'd more obvious places first. I suppose he was right about that. Look there. That proves his guilt." - ~ longgrasshooperframe = true - ~ piecereturned = true - "That doesn't prove anything," Harris returns sharply. "But we'll check what you say, all the same." He gets to his feet and heads out of the door. - -> left_alone - - - -=== reveal_location_of_component - <> The missing component of the Bombe computer is hidden in a small cavity in a breeze—block supporting the left rear post of Hut 2. I put in there anticipating a search. I intended to { revealedhooperasculprit:pass it to Hooper|dispose of it} once the fuss had died down. I suppose I was foolish to think that it might." - ~ piecereturned = true - -> harris_believes -= harris_believes - { not night_falls.hooper_didnt_give_himself_up : - "Indeed. And Mr Manning: God help you if you're lying to me." - - else: - "I thought as much. I hadn't expected you to give it out so easily, however. You understand, Hooper has said nothing, of course. In fact, he went to Hut 2 directly after we released him and uncovered the component. But he told us you had instructed him where to go. Hence my little double bluff. Frankly, I'll be glad when I'm shot of the lot of you mathematicians." - } - Harris stands, and slips away smartly. -> left_alone - - - -=== my_lips_are_sealed - I say nothing, my lips tightly, firmly sealed. It's true I am a traitor, to the very laws of nature. The world has taught me that since a very early age. But not to my country — should the Reich win this war, I would hardly be treated as an honoured hero. I was doomed from the very start. - ~ notraitor = true - I explain none of this. How could a man like Harris understand? - The Commander takes one look back from the doorway as he pulls it to. - "It's been a pleasure working with you, Mr Manning," he declares. "You've done a great service to this country. If we come through, I'm sure they'll remember you name. I'm sorry it had to end this way and I'll do my best to keep it quiet. No—one need know what you did." - -> left_alone - - - - -=== all_too_farfetched - // Returned Component - "This is all too far—fetched," Harris says. "I'm glad to have this back, but I need to think." - Getting to his feet, he nods once. "You'll have to wait a little longer, I'm afraid, Manning." - Then he steps out of the door, muttering to himself. - -> make_your_peace - - - -=== left_alone - // Alone, about to die - { slam_door_shut_and_gone.time_to_move_now :The Commander holds the door for his superior, and follows him out.} Then the door closes. I am alone again, as I have been for most of my short life. - -> make_your_peace - - -=== make_your_peace - * [Make your peace] - - I am waiting again. I have no God to make my peace with. I find it difficult to believe in goodness of any kind, in a world such as this. - { not notraitor: - ~ notraitor = true - But I am no traitor. Not to my country. To my sex, perhaps. But how could I support the Reich? If the Nazis were to come to power, I would be worse off than ever. - } - { harris_threatens_lynching.too_clever: - In truth, it is men like Harris who are complex, not men like me. I live to make things ordered, systematic. I like my pencils sharpened and lined up in a row. I do not deal in difficult borders, or uncertainties, or alliances. If I could, I would reduce the world to something easier to understand, something finite. - But I cannot, not even here, in our little haven from the horrors of the war. - } - I have no place here. No way to fit. I am caught, in the middle, cryptic and understood only thinly, through my machines. - * I must seem very calm. - * Perhaps I should try to escape.[] But escape to where? I am already a prisoner. Jail would be a blessing. -> monastic - - <> I suppose I do not believe they will hang me. They will lock me up and continue to use my brain, if they can. I wonder what they will tell the world — perhaps that I have taken my own life. That would be simplest. The few who know me would believe it. - Well, then. Not a bad existence, in prison. Removed from temptation. - - (monastic) A monastic life, with plenty of problems to keep me going. - I wonder what else I might yet unravel before I'm done? - * The door is opening.[] Harris is returning. Our little calculation here is complete. { not piecereturned: I can only hope one of the others will be able to explain to him that the part I stole will mean nothing to the Germans.|We are just pieces in this machine; interchangeable and prone to wear.} - - That is the true secret of the calculating engine, and the source of its power. It is not the components that matter, they are quite repetitive. What matters is how they are wired; the diversity of the patterns and structures they can form. Much like people — it is how they connect that determines our victories and tragedies, and not their genius. - Which makes me wonder. Should I give { i_met_a_young_man :up my beautiful young man|the young man who put me in this spot} to them as well as myself? - * [Yes] - But of course I will. { forceful > 2:Perhaps I can persuade them to put him in my cell.|A little vengeance, disguised as doing something good.} - * [No] - No. What would be the use? He will be long gone, and the name he told me is no doubt hokum. No: I was alone before in guilt, and I am thus alone again. - * [Lie] - No. Why would I? He is no doubt an innocent himself, trapped by some dire circumstance. Forced to act the way he did. I have every sympathy for him. - Of course I do. - * [Evade] - It depends, perhaps, on what his name his worth. If it were to prove valuable, well; perhaps I can concoct a few more such lovers with which to ease my later days. - { hooper_mentioned: Hooper, perhaps. He wouldn't like that. } - - { not longgrasshooperframe : - Harris put the cuffs around my wrists. "I still have the intercept in my pocket," I remark. "Wherever we're going, could I have a pencil?" - - else: - "We recovered the part, just where you said it was," Harris reports, as he puts the cuffs around my wrists. "Of course, a couple of the men swear blind they searched there yesterday, so I'm afraid, what with the broken window... we've formed a perfectly good theory which doesn't bode well for you." - } - ~ piecereturned = true - { longgrasshooperframe : - "I see." It doesn't seem worth arguing any further. "I still have the intercept in my pocket," I remark. "Wherever we're going, could I have a pencil?" - } - He looks me in the eye. - { not losttemper : - "Of course. And one of your computing things, if I get my way. And when we're old, and smoking pipes together in The Rag like heroes, I'll explain to you the way that decent men have affairs. - - else: - "I'll give you a stone to chisel notches in the wall. And that's all the calculations you'll be doing. And as you sit there, pissing into a bucket and growing a beard down to your toes, you have a think about how a smart man would conduct his illicit affairs. With a bit of due decorum you could have learnt off any squaddie. - } - <> You scientists." - He drags me up to my feet. - "You think you have to re—invent everything." - With that, he hustles me out of the door and I can't help thinking that, with a little more strategy, I could still have won the day. But too late now, of course. - -> END diff --git a/GameData/PlayerSettings.msgpack b/GameData/PlayerSettings.msgpack index c9869da05..b03ecd7d5 100644 --- a/GameData/PlayerSettings.msgpack +++ b/GameData/PlayerSettings.msgpack @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:f36eee9a6cc4c91c1b09999e17fc4dff0a69a9d41ffd89c55eab6df4a45313ab -size 18311 +oid sha256:855065c2989064850795d1d60f37111d97f19aaaad1750c630ec940a58a7dc7c +size 17318 From 9779afb1bbefc893c21c6b08a1ca352fbc8714f7 Mon Sep 17 00:00:00 2001 From: Reinier Vens Date: Mon, 19 Apr 2021 03:46:35 +0100 Subject: [PATCH 42/51] Action Bar Weapon Group Binding Selecting a weapon now displays weapon group toggles Added global drag and drop handling in game manager Weapon group toggles can be dragged to action bar to bind them --- Aetheria.Shared.Unity.csproj | 2 +- Assets/Prefabs/UI/Action Slot.prefab | 34 +- .../Fancy/Weapon Group.prefab | 397 ++++++++++++++++++ .../Fancy/Weapon Group.prefab.meta | 7 + .../Fancy/Weapon Groups.prefab | 330 +++++++++++++++ .../Fancy/Weapon Groups.prefab.meta | 7 + .../UI/Properties Panel/Properties.prefab | 3 + .../Sprites/Icons/{mouse.png => mouseL.png} | 0 .../Icons/{mouse.png.meta => mouseL.png.meta} | 26 +- .../Sprites/Icons/mouseMiddle.png.meta | 26 +- Assets/Resources/Sprites/Icons/mouseR.png | 3 + .../Resources/Sprites/Icons/mouseR.png.meta | 108 +++++ Assets/Scenes/ARPG.unity | 12 +- Assets/Scripts/Editor/PlayScenePlusPlus.cs | 40 ++ .../Scripts/Editor/PlayScenePlusPlus.cs.meta | 11 + Assets/Scripts/Gameplay/ActionBarSlot.cs | 8 +- Assets/Scripts/Gameplay/ActionGameManager.cs | 87 +++- Assets/Scripts/UI/PropertiesPanel.cs | 33 ++ Assets/Scripts/UI/WeaponGroupAssignment.cs | 65 +++ .../Scripts/UI/WeaponGroupAssignment.cs.meta | 11 + Assets/Scripts/UI/WeaponGroupElement.cs | 15 + Assets/Scripts/UI/WeaponGroupElement.cs.meta | 11 + GameData/PlayerSettings.msgpack | 2 +- UserSettings/EditorUserSettings.asset | 2 +- 24 files changed, 1213 insertions(+), 27 deletions(-) create mode 100644 Assets/Prefabs/UI/Properties Panel/Fancy/Weapon Group.prefab create mode 100644 Assets/Prefabs/UI/Properties Panel/Fancy/Weapon Group.prefab.meta create mode 100644 Assets/Prefabs/UI/Properties Panel/Fancy/Weapon Groups.prefab create mode 100644 Assets/Prefabs/UI/Properties Panel/Fancy/Weapon Groups.prefab.meta rename Assets/Resources/Sprites/Icons/{mouse.png => mouseL.png} (100%) rename Assets/Resources/Sprites/Icons/{mouse.png.meta => mouseL.png.meta} (83%) create mode 100644 Assets/Resources/Sprites/Icons/mouseR.png create mode 100644 Assets/Resources/Sprites/Icons/mouseR.png.meta create mode 100644 Assets/Scripts/Editor/PlayScenePlusPlus.cs create mode 100644 Assets/Scripts/Editor/PlayScenePlusPlus.cs.meta create mode 100644 Assets/Scripts/UI/WeaponGroupAssignment.cs create mode 100644 Assets/Scripts/UI/WeaponGroupAssignment.cs.meta create mode 100644 Assets/Scripts/UI/WeaponGroupElement.cs create mode 100644 Assets/Scripts/UI/WeaponGroupElement.cs.meta diff --git a/Aetheria.Shared.Unity.csproj b/Aetheria.Shared.Unity.csproj index ab7380a3e..74e3a3fee 100644 --- a/Aetheria.Shared.Unity.csproj +++ b/Aetheria.Shared.Unity.csproj @@ -147,6 +147,7 @@ + @@ -252,7 +253,6 @@ - diff --git a/Assets/Prefabs/UI/Action Slot.prefab b/Assets/Prefabs/UI/Action Slot.prefab index 1bf80adc3..75f322d0a 100644 --- a/Assets/Prefabs/UI/Action Slot.prefab +++ b/Assets/Prefabs/UI/Action Slot.prefab @@ -150,6 +150,8 @@ GameObject: - component: {fileID: 8334150340270499367} - component: {fileID: 8334150340270499366} - component: {fileID: 8334150340270499361} + - component: {fileID: 116092007209826482} + - component: {fileID: 2829353637824256212} m_Layer: 5 m_Name: Action Slot m_TagString: Untagged @@ -237,8 +239,8 @@ MonoBehaviour: m_IgnoreLayout: 0 m_MinWidth: -1 m_MinHeight: -1 - m_PreferredWidth: 64 - m_PreferredHeight: 64 + m_PreferredWidth: 1080 + m_PreferredHeight: 1080 m_FlexibleWidth: -1 m_FlexibleHeight: -1 m_LayoutPriority: 1 @@ -275,6 +277,8 @@ MonoBehaviour: InputIcon: {fileID: 8334150340841115256} QuantityRemaining: {fileID: 8334150341178146431} Fill: {fileID: 8334150340821902602} + PointerEnterTrigger: {fileID: 116092007209826482} + PointerExitTrigger: {fileID: 2829353637824256212} --- !u!114 &8334150340270499361 MonoBehaviour: m_ObjectHideFlags: 0 @@ -288,6 +292,30 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: m_ShowMaskGraphic: 0 +--- !u!114 &116092007209826482 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8334150340270499363} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3468b3db8d419c745b12124f6432696b, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &2829353637824256212 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8334150340270499363} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9643e74593988274bbed9adf40384e48, type: 3} + m_Name: + m_EditorClassIdentifier: --- !u!1 &8334150340821902612 GameObject: m_ObjectHideFlags: 0 @@ -465,7 +493,7 @@ RectTransform: m_GameObject: {fileID: 8334150340841115258} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: -1, y: 1, z: 1} + m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 8334150340270499360} m_RootOrder: 4 diff --git a/Assets/Prefabs/UI/Properties Panel/Fancy/Weapon Group.prefab b/Assets/Prefabs/UI/Properties Panel/Fancy/Weapon Group.prefab new file mode 100644 index 000000000..95677030e --- /dev/null +++ b/Assets/Prefabs/UI/Properties Panel/Fancy/Weapon Group.prefab @@ -0,0 +1,397 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &8854537499097178561 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8854537499097178562} + - component: {fileID: 8854537499097178565} + - component: {fileID: 8854537499097178564} + - component: {fileID: 8854537499097178563} + m_Layer: 5 + m_Name: Label + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8854537499097178562 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8854537499097178561} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 7093141058661617964} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &8854537499097178565 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8854537499097178561} + m_CullTransparentMesh: 1 +--- !u!114 &8854537499097178564 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8854537499097178561} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: G1 + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 53555f7a2d5e745428813f1b1118734f, type: 2} + m_sharedMaterial: {fileID: -2804126062856497447, guid: 53555f7a2d5e745428813f1b1118734f, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294964185 + m_fontColor: {r: 0.85, g: 0.95199996, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 12 + m_fontSizeBase: 12 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 10 + m_fontSizeMax: 14 + m_fontStyle: 33 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &8854537499097178563 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8854537499097178561} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 8854537499097178564} + m_OnClick: + m_PersistentCalls: + m_Calls: [] +--- !u!1 &8854537499952373069 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8854537499952373070} + - component: {fileID: 8854537499952373056} + - component: {fileID: 8854537499952373071} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8854537499952373070 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8854537499952373069} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 7093141058661617964} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &8854537499952373056 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8854537499952373069} + m_CullTransparentMesh: 1 +--- !u!114 &8854537499952373071 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8854537499952373069} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.8, g: 0.9333333, b: 1, a: 0.03137255} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 7ed12bf887e951949bd02894a21fb3ff, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &9223028044370770576 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7093141058661617964} + - component: {fileID: 5236190267576759953} + - component: {fileID: 9223028044370770578} + - component: {fileID: 9223028044370770577} + - component: {fileID: 3575432560508143777} + - component: {fileID: 2103399013588393016} + - component: {fileID: 8960961965027693801} + - component: {fileID: 2070497072283402020} + m_Layer: 5 + m_Name: Weapon Group + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7093141058661617964 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9223028044370770576} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 8854537499952373070} + - {fileID: 8854537499097178562} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 12, y: -12} + m_SizeDelta: {x: 24, y: 24} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &5236190267576759953 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9223028044370770576} + m_CullTransparentMesh: 1 +--- !u!114 &9223028044370770578 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9223028044370770576} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: 1080 + m_PreferredHeight: 1080 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 +--- !u!114 &9223028044370770577 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9223028044370770576} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a588f4b3f3e229540a82e5f976b08e2d, type: 3} + m_Name: + m_EditorClassIdentifier: + aspectRatio: 1 + updateMin: 0 + updatePreferred: 1 +--- !u!114 &3575432560508143777 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9223028044370770576} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 27f5673ad060b834489cad765159cb84, type: 3} + m_Name: + m_EditorClassIdentifier: + Label: {fileID: 8854537499097178564} + Button: {fileID: 8854537499097178563} + BeginDragTrigger: {fileID: 2103399013588393016} + DragTrigger: {fileID: 8960961965027693801} + EndDragTrigger: {fileID: 2070497072283402020} +--- !u!114 &2103399013588393016 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9223028044370770576} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3a81a9b6bec6b4f4fba7e0047cd989f6, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &8960961965027693801 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9223028044370770576} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 79db090dc9e4db245821e8b89b0e208e, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &2070497072283402020 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9223028044370770576} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b8ce8424f238d6842bd8b09c0cca1ac4, type: 3} + m_Name: + m_EditorClassIdentifier: diff --git a/Assets/Prefabs/UI/Properties Panel/Fancy/Weapon Group.prefab.meta b/Assets/Prefabs/UI/Properties Panel/Fancy/Weapon Group.prefab.meta new file mode 100644 index 000000000..da7d6e862 --- /dev/null +++ b/Assets/Prefabs/UI/Properties Panel/Fancy/Weapon Group.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: b987fd2e2a9af93459f01eed2609a58b +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Prefabs/UI/Properties Panel/Fancy/Weapon Groups.prefab b/Assets/Prefabs/UI/Properties Panel/Fancy/Weapon Groups.prefab new file mode 100644 index 000000000..4c7acce17 --- /dev/null +++ b/Assets/Prefabs/UI/Properties Panel/Fancy/Weapon Groups.prefab @@ -0,0 +1,330 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &913394255187743890 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7044292112900681436} + - component: {fileID: 835890040255913825} + - component: {fileID: 4589204584295863281} + m_Layer: 5 + m_Name: Title + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7044292112900681436 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 913394255187743890} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 7017012055636029233} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -2} + m_SizeDelta: {x: -16, y: -4} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &835890040255913825 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 913394255187743890} + m_CullTransparentMesh: 1 +--- !u!114 &4589204584295863281 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 913394255187743890} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Stat Name + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 53555f7a2d5e745428813f1b1118734f, type: 2} + m_sharedMaterial: {fileID: -2804126062856497447, guid: 53555f7a2d5e745428813f1b1118734f, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4279071487 + m_fontColor: {r: 1, g: 0.44583336, b: 0.050000012, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 14 + m_fontSizeBase: 14 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 16 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &4617351576505393965 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4617351576505394386} + - component: {fileID: 4617351576505394387} + m_Layer: 5 + m_Name: Group Container + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &4617351576505394386 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4617351576505393965} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 7017012055636029233} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 0} + m_AnchoredPosition: {x: 0, y: 8} + m_SizeDelta: {x: -16, y: 24} + m_Pivot: {x: 0.5, y: 0} +--- !u!114 &4617351576505394387 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4617351576505393965} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 8 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 1 + m_ChildControlHeight: 1 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 +--- !u!1 &6173357060473159663 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7017012055636029233} + - component: {fileID: 1187566180789453781} + - component: {fileID: 9198057411594340877} + - component: {fileID: 2147666021289938829} + - component: {fileID: 6173357060473159660} + - component: {fileID: 8654742830357802168} + m_Layer: 5 + m_Name: Weapon Groups + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7017012055636029233 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6173357060473159663} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 7044292112900681436} + - {fileID: 4617351576505394386} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &1187566180789453781 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6173357060473159663} + m_CullTransparentMesh: 1 +--- !u!114 &9198057411594340877 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6173357060473159663} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.45402354, g: 0.45402354, b: 0.603, a: 0.039215688} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 84d126f984de5fd42ac66361c00f830c, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &2147666021289938829 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6173357060473159663} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b403db1d8980f544099fedf5735cf364, type: 3} + m_Name: + m_EditorClassIdentifier: + Label: {fileID: 4589204584295863281} + Value: {fileID: 0} +--- !u!114 &6173357060473159660 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6173357060473159663} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: 64 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 +--- !u!114 &8654742830357802168 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6173357060473159663} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b9b213fc96d20d848819b8159412680c, type: 3} + m_Name: + m_EditorClassIdentifier: + Container: {fileID: 4617351576505394386} + GroupPrefab: {fileID: 3575432560508143777, guid: b987fd2e2a9af93459f01eed2609a58b, + type: 3} + ActiveColor: {r: 1, g: 0.44583336, b: 0.050000012, a: 1} + InactiveColor: {r: 0.6037736, g: 0.6037736, b: 0.6037736, a: 1} diff --git a/Assets/Prefabs/UI/Properties Panel/Fancy/Weapon Groups.prefab.meta b/Assets/Prefabs/UI/Properties Panel/Fancy/Weapon Groups.prefab.meta new file mode 100644 index 000000000..58ffebfef --- /dev/null +++ b/Assets/Prefabs/UI/Properties Panel/Fancy/Weapon Groups.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: fbe6efeb205a68946af7a6f1cb8b9904 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Prefabs/UI/Properties Panel/Properties.prefab b/Assets/Prefabs/UI/Properties Panel/Properties.prefab index 9f6c03949..29d281e03 100644 --- a/Assets/Prefabs/UI/Properties Panel/Properties.prefab +++ b/Assets/Prefabs/UI/Properties Panel/Properties.prefab @@ -787,7 +787,10 @@ MonoBehaviour: CurveField: {fileID: 3018914896466881005, guid: 168887bbd3de8c74eb3f06d3d46dda4e, type: 3} Content: {fileID: 257019179596293679} + WeaponGroupAssignment: {fileID: 8654742830357802168, guid: fbe6efeb205a68946af7a6f1cb8b9904, + type: 3} SelectedChild: {fileID: 0} + GameManager: {fileID: 0} --- !u!222 &7131821417165215473 CanvasRenderer: m_ObjectHideFlags: 0 diff --git a/Assets/Resources/Sprites/Icons/mouse.png b/Assets/Resources/Sprites/Icons/mouseL.png similarity index 100% rename from Assets/Resources/Sprites/Icons/mouse.png rename to Assets/Resources/Sprites/Icons/mouseL.png diff --git a/Assets/Resources/Sprites/Icons/mouse.png.meta b/Assets/Resources/Sprites/Icons/mouseL.png.meta similarity index 83% rename from Assets/Resources/Sprites/Icons/mouse.png.meta rename to Assets/Resources/Sprites/Icons/mouseL.png.meta index 0c96413c4..cf1d20e40 100644 --- a/Assets/Resources/Sprites/Icons/mouse.png.meta +++ b/Assets/Resources/Sprites/Icons/mouseL.png.meta @@ -1,12 +1,12 @@ fileFormatVersion: 2 guid: a308a6cbccf9c9b4fa444a974e7968df TextureImporter: - fileIDToRecycleName: {} + internalIDToNameTable: [] externalObjects: {} - serializedVersion: 9 + serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 1 + enableMipMap: 0 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -23,6 +23,7 @@ TextureImporter: isReadable: 0 streamingMipmaps: 0 streamingMipmapsPriority: 0 + vTOnly: 0 grayScaleToAlpha: 0 generateCubemap: 6 cubemapConvolution: 0 @@ -54,13 +55,17 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 1 platformSettings: - - serializedVersion: 2 + - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 256 + maxTextureSize: 32 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -69,9 +74,10 @@ TextureImporter: allowsAlphaSplitting: 0 overridden: 0 androidETC2FallbackOverride: 0 - - serializedVersion: 2 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 256 + maxTextureSize: 32 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -80,7 +86,8 @@ TextureImporter: allowsAlphaSplitting: 0 overridden: 0 androidETC2FallbackOverride: 0 - - serializedVersion: 2 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 buildTarget: WebGL maxTextureSize: 256 resizeAlgorithm: 0 @@ -91,6 +98,7 @@ TextureImporter: allowsAlphaSplitting: 0 overridden: 0 androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 spriteSheet: serializedVersion: 2 sprites: [] @@ -98,10 +106,12 @@ TextureImporter: physicsShape: [] bones: [] spriteID: 29d0cbe550734d745a4c311b08cd9033 + internalID: 0 vertices: [] indices: edges: [] weights: [] + secondaryTextures: [] spritePackingTag: pSDRemoveMatte: 0 pSDShowRemoveMatteOption: 0 diff --git a/Assets/Resources/Sprites/Icons/mouseMiddle.png.meta b/Assets/Resources/Sprites/Icons/mouseMiddle.png.meta index cf88fc3c6..0c4917dc6 100644 --- a/Assets/Resources/Sprites/Icons/mouseMiddle.png.meta +++ b/Assets/Resources/Sprites/Icons/mouseMiddle.png.meta @@ -1,12 +1,12 @@ fileFormatVersion: 2 guid: 188698480e3264043842e31a1d7b26ab TextureImporter: - fileIDToRecycleName: {} + internalIDToNameTable: [] externalObjects: {} - serializedVersion: 9 + serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 1 + enableMipMap: 0 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -23,6 +23,7 @@ TextureImporter: isReadable: 0 streamingMipmaps: 0 streamingMipmapsPriority: 0 + vTOnly: 0 grayScaleToAlpha: 0 generateCubemap: 6 cubemapConvolution: 0 @@ -54,13 +55,17 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 1 platformSettings: - - serializedVersion: 2 + - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 256 + maxTextureSize: 32 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -69,9 +74,10 @@ TextureImporter: allowsAlphaSplitting: 0 overridden: 0 androidETC2FallbackOverride: 0 - - serializedVersion: 2 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 256 + maxTextureSize: 32 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -80,7 +86,8 @@ TextureImporter: allowsAlphaSplitting: 0 overridden: 0 androidETC2FallbackOverride: 0 - - serializedVersion: 2 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 buildTarget: WebGL maxTextureSize: 256 resizeAlgorithm: 0 @@ -91,6 +98,7 @@ TextureImporter: allowsAlphaSplitting: 0 overridden: 0 androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 spriteSheet: serializedVersion: 2 sprites: [] @@ -98,10 +106,12 @@ TextureImporter: physicsShape: [] bones: [] spriteID: 3ca6de31166650547bc6aa1652e3e95a + internalID: 0 vertices: [] indices: edges: [] weights: [] + secondaryTextures: [] spritePackingTag: pSDRemoveMatte: 0 pSDShowRemoveMatteOption: 0 diff --git a/Assets/Resources/Sprites/Icons/mouseR.png b/Assets/Resources/Sprites/Icons/mouseR.png new file mode 100644 index 000000000..4384b3624 --- /dev/null +++ b/Assets/Resources/Sprites/Icons/mouseR.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b2c065fe616b66f3c89ab2c3b2bcaa74492688d9054d7038af74577371437071 +size 6723 diff --git a/Assets/Resources/Sprites/Icons/mouseR.png.meta b/Assets/Resources/Sprites/Icons/mouseR.png.meta new file mode 100644 index 000000000..46d9740b1 --- /dev/null +++ b/Assets/Resources/Sprites/Icons/mouseR.png.meta @@ -0,0 +1,108 @@ +fileFormatVersion: 2 +guid: 3449ac806e8043f40b6612c729d8e555 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: -1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 32 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 32 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scenes/ARPG.unity b/Assets/Scenes/ARPG.unity index c79ceede9..78ee932a0 100644 --- a/Assets/Scenes/ARPG.unity +++ b/Assets/Scenes/ARPG.unity @@ -5350,7 +5350,6 @@ MonoBehaviour: m_EditorClassIdentifier: Settings: {fileID: 11400000, guid: cd2344e2001a37544aab0960c164d4ff, type: 2} ListElementPrototype: {fileID: 1462704895} - TriggerGroupPrototype: {fileID: 0} HeaderElementEnabledColor: {r: 0, g: 0, b: 0, a: 0} HeaderElementDisabledColor: {r: 0, g: 0, b: 0, a: 0} OverrideIcon: {fileID: 0} @@ -9410,7 +9409,9 @@ MonoBehaviour: type: 3} StatSheet: {fileID: 0} CurveField: {fileID: 0} + WeaponGroupAssignment: {fileID: 0} Content: {fileID: 620555923} + DragParent: {fileID: 0} SelectedChild: {fileID: 0} GameManager: {fileID: 0} CancelClickCatcher: {fileID: 1420548305} @@ -15388,6 +15389,7 @@ MonoBehaviour: SevereHypothermiaPP: {fileID: 694183021} ShiftIcon: {fileID: 21300000, guid: 6a42d073009184c4f9bd47c2d4e8d1f7, type: 3} MouseLeftIcon: {fileID: 21300000, guid: a308a6cbccf9c9b4fa444a974e7968df, type: 3} + MouseRightIcon: {fileID: 21300000, guid: 3449ac806e8043f40b6612c729d8e555, type: 3} MouseMiddleIcon: {fileID: 21300000, guid: 188698480e3264043842e31a1d7b26ab, type: 3} ActionBar: {fileID: 393961848} ActionBarSlot: {fileID: 8334150340270499366, guid: bfce34a0acbaa454e97a700e1875357e, @@ -29310,6 +29312,11 @@ PrefabInstance: propertyPath: Dropdown value: objectReference: {fileID: 178733681} + - target: {fileID: 7131821417165215475, guid: 426f9dcb510530d4dbfa678c9f727ec1, + type: 3} + propertyPath: DragParent + value: + objectReference: {fileID: 245842385} - target: {fileID: 7131821417165215484, guid: 426f9dcb510530d4dbfa678c9f727ec1, type: 3} propertyPath: m_Pivot.x @@ -33338,7 +33345,9 @@ MonoBehaviour: type: 3} StatSheet: {fileID: 0} CurveField: {fileID: 0} + WeaponGroupAssignment: {fileID: 0} Content: {fileID: 3255828831356619720} + DragParent: {fileID: 0} SelectedChild: {fileID: 0} GameManager: {fileID: 0} --- !u!114 &5496444666756201237 @@ -35015,7 +35024,6 @@ MonoBehaviour: m_EditorClassIdentifier: Settings: {fileID: 11400000, guid: cd2344e2001a37544aab0960c164d4ff, type: 2} ListElementPrototype: {fileID: 232470599} - TriggerGroupPrototype: {fileID: 0} HeaderElementEnabledColor: {r: 1, g: 1, b: 1, a: 0.078431375} HeaderElementDisabledColor: {r: 1, g: 1, b: 1, a: 0.011764706} OverrideIcon: {fileID: 1576705656} diff --git a/Assets/Scripts/Editor/PlayScenePlusPlus.cs b/Assets/Scripts/Editor/PlayScenePlusPlus.cs new file mode 100644 index 000000000..3beb59e4a --- /dev/null +++ b/Assets/Scripts/Editor/PlayScenePlusPlus.cs @@ -0,0 +1,40 @@ +using UnityEditor; +using UnityEditor.SceneManagement; + +[InitializeOnLoad] +public class PlayScenePlusPlus +{ + static PlayScenePlusPlus() + { + if(EditorPrefs.HasKey("PlayScene")) + { + EditorSceneManager.playModeStartScene = AssetDatabase.LoadAssetAtPath(EditorPrefs.GetString("PlayScene")); + } + } + + [MenuItem("Edit/Play Scene/Set Static", false)] + private static void SelectPlayScene() + { + EditorSceneManager.playModeStartScene = Selection.activeObject as SceneAsset; + EditorPrefs.SetString("PlayScene", AssetDatabase.GetAssetPath(EditorSceneManager.playModeStartScene)); + } + + [MenuItem("Edit/Play Scene/Set Static", true)] + private static bool SelectPlaySceneValidate() + { + return Selection.objects.Length == 1 && Selection.activeObject is SceneAsset; + } + + [MenuItem("Edit/Play Scene/Clear", false)] + private static void ClearPlayScene() + { + EditorSceneManager.playModeStartScene = null; + EditorPrefs.DeleteKey("PlayScene"); + } + + [MenuItem("Edit/Play Scene/Clear", true)] + private static bool ClearPlaySceneValidate() + { + return EditorSceneManager.playModeStartScene; + } +} \ No newline at end of file diff --git a/Assets/Scripts/Editor/PlayScenePlusPlus.cs.meta b/Assets/Scripts/Editor/PlayScenePlusPlus.cs.meta new file mode 100644 index 000000000..e454fff89 --- /dev/null +++ b/Assets/Scripts/Editor/PlayScenePlusPlus.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e7f42430a0ad52b46a18c43afbb72406 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Gameplay/ActionBarSlot.cs b/Assets/Scripts/Gameplay/ActionBarSlot.cs index a50405f77..b871a0554 100644 --- a/Assets/Scripts/Gameplay/ActionBarSlot.cs +++ b/Assets/Scripts/Gameplay/ActionBarSlot.cs @@ -4,6 +4,7 @@ using JsonKnownTypes; using MessagePack; using Newtonsoft.Json; using TMPro; +using UniRx.Triggers; using UnityEngine; using UnityEngine.UI; @@ -15,6 +16,8 @@ public class ActionBarSlot : MonoBehaviour public Image InputIcon; public TextMeshProUGUI QuantityRemaining; public Image Fill; + public ObservablePointerEnterTrigger PointerEnterTrigger; + public ObservablePointerExitTrigger PointerExitTrigger; private ActionBarBinding binding; public Entity Entity { get; set; } @@ -27,6 +30,8 @@ public class ActionBarSlot : MonoBehaviour binding = value; if (binding == null) { + Fill.fillAmount = 0; + Label.gameObject.SetActive(false); QuantityRemaining.gameObject.SetActive(false); Icon.gameObject.SetActive(false); } @@ -179,7 +184,8 @@ public class ActionBarWeaponGroupBinding : ActionBarBinding public ActionBarWeaponGroupBinding(Entity entity, ActionBarSlot slot, int group) : base(entity, slot) { Group = group; - slot.Label.text = $"G{Group}"; + slot.Label.gameObject.SetActive(true); + slot.Label.text = $"G{Group+1}"; Slot.Icon.gameObject.SetActive(false); } diff --git a/Assets/Scripts/Gameplay/ActionGameManager.cs b/Assets/Scripts/Gameplay/ActionGameManager.cs index c73efca2a..6c4d8316a 100644 --- a/Assets/Scripts/Gameplay/ActionGameManager.cs +++ b/Assets/Scripts/Gameplay/ActionGameManager.cs @@ -81,6 +81,7 @@ public class ActionGameManager : MonoBehaviour [Header("Input Icons")] public Sprite ShiftIcon; public Sprite MouseLeftIcon; + public Sprite MouseRightIcon; public Sprite MouseMiddleIcon; [Header("Scene Links")] @@ -161,6 +162,9 @@ public class ActionGameManager : MonoBehaviour (float2(0, -1), "Rear") }; + private DragAction _dragAction; + private Action _endDragCallback; + public EntitySettings NewEntitySettings { get => MessagePackSerializer.Deserialize(MessagePackSerializer.Serialize(Settings.GameplaySettings.DefaultEntitySettings)); @@ -325,9 +329,36 @@ public class ActionGameManager : MonoBehaviour var action = new InputAction(binding: controlPath); _actionBarActions.Add(action); var slot = Instantiate(ActionBarSlot, ActionBar); + slot.Binding = null; _actionBarSlots.Add(slot); action.started += context => slot.Binding?.Activate(); action.canceled += context => slot.Binding?.Deactivate(); + + slot.PointerEnterTrigger.OnPointerEnterAsObservable().Subscribe(_ => + { + //Debug.Log($"Pointer entered action bar slot {controlPath}"); + RegisterDragTarget(dragAction => + { + //Debug.Log("Registering binding!"); + switch (dragAction) + { + case EquippedItemDragAction equippedItemDragAction: + break; + case ItemInstanceDragAction itemInstanceDragAction: + break; + case WeaponGroupDragAction weaponGroupDragAction: + slot.Binding = new ActionBarWeaponGroupBinding(CurrentEntity, slot, weaponGroupDragAction.Group); + break; + default: + throw new ArgumentOutOfRangeException(nameof(dragAction)); + } + }); + }); + slot.PointerExitTrigger.OnPointerExitAsObservable().Subscribe(_ => + { + //Debug.Log($"Pointer exited action bar slot {controlPath}"); + UnregisterDragTarget(); + }); return slot; } @@ -340,8 +371,7 @@ public class ActionGameManager : MonoBehaviour left.InputLabel.gameObject.SetActive(false); var right = createBinding("/rightButton"); - right.InputIcon.sprite = MouseLeftIcon; - right.InputIcon.transform.localScale = new Vector3(-1, 1, 1); + right.InputIcon.sprite = MouseRightIcon; right.InputLabel.gameObject.SetActive(false); var middle = createBinding("/middleButton"); @@ -467,6 +497,27 @@ public class ActionGameManager : MonoBehaviour }); } + public void BeginDrag(DragAction dragAction) + { + _dragAction = dragAction; + } + + public void RegisterDragTarget(Action onEndDrag) + { + _endDragCallback = onEndDrag; + } + + public void UnregisterDragTarget() + { + _endDragCallback = null; + } + + public void EndDrag() + { + _endDragCallback?.Invoke(_dragAction); + _dragAction = null; + } + public void EnablePlayerInput() { Input.Player.Enable(); @@ -1015,4 +1066,36 @@ public class ActionGameManager : MonoBehaviour } } } +} + +public abstract class DragAction{} + +public class WeaponGroupDragAction : DragAction +{ + public WeaponGroupDragAction(int group) + { + Group = group; + } + + public int Group { get; } +} + +public class ItemInstanceDragAction : DragAction +{ + public ItemInstanceDragAction(ItemInstance item) + { + Item = item; + } + + public ItemInstance Item { get; } +} + +public class EquippedItemDragAction : DragAction +{ + public EquippedItemDragAction(EquippedItem item) + { + Item = item; + } + + public EquippedItem Item { get; } } \ No newline at end of file diff --git a/Assets/Scripts/UI/PropertiesPanel.cs b/Assets/Scripts/UI/PropertiesPanel.cs index 272edbdcc..8ae518863 100644 --- a/Assets/Scripts/UI/PropertiesPanel.cs +++ b/Assets/Scripts/UI/PropertiesPanel.cs @@ -36,7 +36,10 @@ public class PropertiesPanel : MonoBehaviour public IncrementField IncrementField; public StatSheet StatSheet; public CurveField CurveField; + public WeaponGroupAssignment WeaponGroupAssignment; public RectTransform Content; + public RectTransform DragParent; + [HideInInspector] public FlatFlatButton SelectedChild; [HideInInspector] public ActionGameManager GameManager; @@ -45,6 +48,9 @@ public class PropertiesPanel : MonoBehaviour protected event Action RefreshPropertyValues; protected bool RadioSelection = false; + private RectTransform _dragObject; + + protected event Action OnPropertyAdded; protected Action OnPropertiesChanged; @@ -462,6 +468,33 @@ public class PropertiesPanel : MonoBehaviour AddItemProperties(item.EquippableItem); AddSpacer(); + + if (item.GetBehavior() != null) + { + var weaponGroups = Instantiate(WeaponGroupAssignment, Content ?? transform); + weaponGroups.Inspect(item); + var dragOffset = Vector2.zero; + Transform dragObject = null; + weaponGroups.OnBeginDragAsObservable().Subscribe(x => + { + //Debug.Log($"Began dragging weapon group {x.group}"); + GameManager.BeginDrag(new WeaponGroupDragAction(x.group)); + dragObject = Instantiate(weaponGroups.Groups[x.group], DragParent, true).transform; + dragOffset = (Vector2)dragObject.position - x.pointerEventData.position; + }); + weaponGroups.OnDragAsObservable().Subscribe(x => + { + dragObject.position = x.pointerEventData.position + dragOffset; + }); + weaponGroups.OnEndDragAsObservable().Subscribe(x => + { + //Debug.Log($"Ended dragging weapon group {x.group}"); + GameManager.EndDrag(); + Destroy(dragObject.gameObject); + }); + Properties.Add(weaponGroups.gameObject); + OnPropertyAdded?.Invoke(weaponGroups.gameObject); + } var gearData = GameManager.ItemManager.GetData(item.EquippableItem); var statusSheet = AddStatSheet(); diff --git a/Assets/Scripts/UI/WeaponGroupAssignment.cs b/Assets/Scripts/UI/WeaponGroupAssignment.cs new file mode 100644 index 000000000..536ac19af --- /dev/null +++ b/Assets/Scripts/UI/WeaponGroupAssignment.cs @@ -0,0 +1,65 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using UniRx; +using UnityEngine; +using UnityEngine.EventSystems; + +public class WeaponGroupAssignment : MonoBehaviour +{ + public RectTransform Container; + public WeaponGroupElement GroupPrefab; + public Color ActiveColor; + public Color InactiveColor; + + Subject<(PointerEventData pointerEventData, int group)> _onBeginDrag; + Subject<(PointerEventData pointerEventData, int group)> _onDrag; + Subject<(PointerEventData pointerEventData, int group)> _onEndDrag; + + public List Groups { get; } = new List(); + + public void Inspect(EquippedItem item) + { + var weapon = item.GetBehavior(); + if (weapon == null) throw new ArgumentException($"Attempted to inspect weapon groups on item \"{item.Data.Name}\" but no weapon is present!"); + var groupCount = ActionGameManager.Instance.Settings.GameplaySettings.TriggerGroupCount; + for (int i = 0; i < groupCount; i++) + { + var i1 = i; + bool groupContainsItem() => item.Entity.TriggerGroups[i1].items.Contains(item); + var group = Instantiate(GroupPrefab, Container); + Groups.Add(group); + group.Label.text = $"G{i+1}"; + group.Label.color = groupContainsItem() ? ActiveColor : InactiveColor; + group.Button.onClick.AddListener(() => + { + if (groupContainsItem()) + { + item.Entity.TriggerGroups[i1].items.Remove(item); + item.Entity.TriggerGroups[i1].weapons.Remove(weapon); + group.Label.color = InactiveColor; + } + else + { + item.Entity.TriggerGroups[i1].items.Add(item); + item.Entity.TriggerGroups[i1].weapons.Add(weapon); + group.Label.color = ActiveColor; + } + }); + + group.BeginDragTrigger.OnBeginDragAsObservable() + .Subscribe(data => _onBeginDrag?.OnNext((data, i1))); + group.DragTrigger.OnDragAsObservable() + .Subscribe(data => _onDrag?.OnNext((data, i1))); + group.EndDragTrigger.OnEndDragAsObservable() + .Subscribe(data => _onEndDrag?.OnNext((data, i1))); + } + } + + public UniRx.IObservable<(PointerEventData pointerEventData, int group)> OnBeginDragAsObservable() => + _onBeginDrag ?? (_onBeginDrag = new Subject<(PointerEventData pointerEventData, int group)>()); + public UniRx.IObservable<(PointerEventData pointerEventData, int group)> OnDragAsObservable() => + _onDrag ?? (_onDrag = new Subject<(PointerEventData pointerEventData, int group)>()); + public UniRx.IObservable<(PointerEventData pointerEventData, int group)> OnEndDragAsObservable() => + _onEndDrag ?? (_onEndDrag = new Subject<(PointerEventData pointerEventData, int group)>()); +} diff --git a/Assets/Scripts/UI/WeaponGroupAssignment.cs.meta b/Assets/Scripts/UI/WeaponGroupAssignment.cs.meta new file mode 100644 index 000000000..4ba983332 --- /dev/null +++ b/Assets/Scripts/UI/WeaponGroupAssignment.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b9b213fc96d20d848819b8159412680c +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/UI/WeaponGroupElement.cs b/Assets/Scripts/UI/WeaponGroupElement.cs new file mode 100644 index 000000000..495267974 --- /dev/null +++ b/Assets/Scripts/UI/WeaponGroupElement.cs @@ -0,0 +1,15 @@ +using System.Collections; +using System.Collections.Generic; +using TMPro; +using UniRx.Triggers; +using UnityEngine; +using UnityEngine.UI; + +public class WeaponGroupElement : MonoBehaviour +{ + public TextMeshProUGUI Label; + public Button Button; + public ObservableBeginDragTrigger BeginDragTrigger; + public ObservableDragTrigger DragTrigger; + public ObservableEndDragTrigger EndDragTrigger; +} diff --git a/Assets/Scripts/UI/WeaponGroupElement.cs.meta b/Assets/Scripts/UI/WeaponGroupElement.cs.meta new file mode 100644 index 000000000..99c6e5e1b --- /dev/null +++ b/Assets/Scripts/UI/WeaponGroupElement.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 27f5673ad060b834489cad765159cb84 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/GameData/PlayerSettings.msgpack b/GameData/PlayerSettings.msgpack index b03ecd7d5..c76a1ccc0 100644 --- a/GameData/PlayerSettings.msgpack +++ b/GameData/PlayerSettings.msgpack @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:855065c2989064850795d1d60f37111d97f19aaaad1750c630ec940a58a7dc7c +oid sha256:0ac5d262fca3d766a88a6f5849db285f7b8d42cda04f747c9f36f562c85490b9 size 17318 diff --git a/UserSettings/EditorUserSettings.asset b/UserSettings/EditorUserSettings.asset index bc307be86..29995cccf 100644 --- a/UserSettings/EditorUserSettings.asset +++ b/UserSettings/EditorUserSettings.asset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:caf20eb516bc53f1774f3a147124ab3b7e9869c889cf6083eba3f4507444845a +oid sha256:ddf9f0c22847dc8893a39a7d9afc9b90b2fa13176fb5c4da0a1d8f16a85ee649 size 1699 From 82c804176595fe41239c58353a066951667172a7 Mon Sep 17 00:00:00 2001 From: Reinier Vens Date: Mon, 19 Apr 2021 04:35:46 +0100 Subject: [PATCH 43/51] Ink Integration Initial integration of Ink scripting - simply runs the first story it finds. --- Assets/Ink.meta | 8 + Assets/Ink/compiler.meta | 8 + Assets/Ink/compiler/CharacterRange.cs | 54 + Assets/Ink/compiler/CharacterRange.cs.meta | 11 + Assets/Ink/compiler/CharacterSet.cs | 53 + Assets/Ink/compiler/CharacterSet.cs.meta | 11 + Assets/Ink/compiler/CommandLineInput.cs | 12 + Assets/Ink/compiler/CommandLineInput.cs.meta | 11 + Assets/Ink/compiler/Compiler.cs | 209 ++ Assets/Ink/compiler/Compiler.cs.meta | 11 + Assets/Ink/compiler/FileHandler.cs | 24 + Assets/Ink/compiler/FileHandler.cs.meta | 11 + Assets/Ink/compiler/InkParser.meta | 8 + .../compiler/InkParser/CommentEliminator.cs | 93 + .../InkParser/CommentEliminator.cs.meta | 11 + Assets/Ink/compiler/InkParser/InkParser.cs | 171 + .../Ink/compiler/InkParser/InkParser.cs.meta | 11 + .../InkParser/InkParser_AuthorWarning.cs | 28 + .../InkParser/InkParser_AuthorWarning.cs.meta | 11 + .../InkParser/InkParser_CharacterRanges.cs | 64 + .../InkParser_CharacterRanges.cs.meta | 11 + .../compiler/InkParser/InkParser_Choices.cs | 225 ++ .../InkParser/InkParser_Choices.cs.meta | 11 + .../InkParser/InkParser_CommandLineInput.cs | 129 + .../InkParser_CommandLineInput.cs.meta | 11 + .../InkParser/InkParser_Conditional.cs | 288 ++ .../InkParser/InkParser_Conditional.cs.meta | 11 + .../compiler/InkParser/InkParser_Content.cs | 217 ++ .../InkParser/InkParser_Content.cs.meta | 11 + .../compiler/InkParser/InkParser_Divert.cs | 206 ++ .../InkParser/InkParser_Divert.cs.meta | 11 + .../InkParser/InkParser_Expressions.cs | 512 +++ .../InkParser/InkParser_Expressions.cs.meta | 11 + .../compiler/InkParser/InkParser_Include.cs | 76 + .../InkParser/InkParser_Include.cs.meta | 11 + .../Ink/compiler/InkParser/InkParser_Knot.cs | 239 ++ .../compiler/InkParser/InkParser_Knot.cs.meta | 11 + .../Ink/compiler/InkParser/InkParser_Logic.cs | 421 +++ .../InkParser/InkParser_Logic.cs.meta | 11 + .../compiler/InkParser/InkParser_Sequences.cs | 231 ++ .../InkParser/InkParser_Sequences.cs.meta | 11 + .../InkParser/InkParser_Statements.cs | 163 + .../InkParser/InkParser_Statements.cs.meta | 11 + .../Ink/compiler/InkParser/InkParser_Tags.cs | 50 + .../compiler/InkParser/InkParser_Tags.cs.meta | 11 + .../InkParser/InkParser_Whitespace.cs | 112 + .../InkParser/InkParser_Whitespace.cs.meta | 11 + .../compiler/InkStringConversionExtensions.cs | 18 + .../InkStringConversionExtensions.cs.meta | 11 + Assets/Ink/compiler/ParsedHierarchy.meta | 8 + .../compiler/ParsedHierarchy/AuthorWarning.cs | 20 + .../ParsedHierarchy/AuthorWarning.cs.meta | 11 + Assets/Ink/compiler/ParsedHierarchy/Choice.cs | 290 ++ .../compiler/ParsedHierarchy/Choice.cs.meta | 11 + .../compiler/ParsedHierarchy/Conditional.cs | 71 + .../ParsedHierarchy/Conditional.cs.meta | 11 + .../ConditionalSingleBranch.cs | 158 + .../ConditionalSingleBranch.cs.meta | 11 + .../ParsedHierarchy/ConstantDeclaration.cs | 46 + .../ConstantDeclaration.cs.meta | 11 + .../compiler/ParsedHierarchy/ContentList.cs | 78 + .../ParsedHierarchy/ContentList.cs.meta | 11 + Assets/Ink/compiler/ParsedHierarchy/Divert.cs | 403 +++ .../compiler/ParsedHierarchy/Divert.cs.meta | 11 + .../compiler/ParsedHierarchy/DivertTarget.cs | 172 + .../ParsedHierarchy/DivertTarget.cs.meta | 11 + .../compiler/ParsedHierarchy/Expression.cs | 307 ++ .../ParsedHierarchy/Expression.cs.meta | 11 + .../ParsedHierarchy/ExternalDeclaration.cs | 30 + .../ExternalDeclaration.cs.meta | 11 + .../Ink/compiler/ParsedHierarchy/FlowBase.cs | 439 +++ .../compiler/ParsedHierarchy/FlowBase.cs.meta | 11 + .../Ink/compiler/ParsedHierarchy/FlowLevel.cs | 11 + .../ParsedHierarchy/FlowLevel.cs.meta | 11 + .../compiler/ParsedHierarchy/FunctionCall.cs | 242 ++ .../ParsedHierarchy/FunctionCall.cs.meta | 11 + Assets/Ink/compiler/ParsedHierarchy/Gather.cs | 51 + .../compiler/ParsedHierarchy/Gather.cs.meta | 11 + .../compiler/ParsedHierarchy/INamedContent.cs | 9 + .../ParsedHierarchy/INamedContent.cs.meta | 11 + .../compiler/ParsedHierarchy/IWeavePoint.cs | 15 + .../ParsedHierarchy/IWeavePoint.cs.meta | 11 + .../compiler/ParsedHierarchy/Identifier.cs | 13 + .../ParsedHierarchy/Identifier.cs.meta | 11 + .../compiler/ParsedHierarchy/IncludedFile.cs | 20 + .../ParsedHierarchy/IncludedFile.cs.meta | 11 + Assets/Ink/compiler/ParsedHierarchy/Knot.cs | 35 + .../Ink/compiler/ParsedHierarchy/Knot.cs.meta | 11 + Assets/Ink/compiler/ParsedHierarchy/List.cs | 53 + .../Ink/compiler/ParsedHierarchy/List.cs.meta | 11 + .../ParsedHierarchy/ListDefinition.cs | 139 + .../ParsedHierarchy/ListDefinition.cs.meta | 11 + Assets/Ink/compiler/ParsedHierarchy/Number.cs | 53 + .../compiler/ParsedHierarchy/Number.cs.meta | 11 + Assets/Ink/compiler/ParsedHierarchy/Object.cs | 363 +++ .../compiler/ParsedHierarchy/Object.cs.meta | 11 + Assets/Ink/compiler/ParsedHierarchy/Path.cs | 192 ++ .../Ink/compiler/ParsedHierarchy/Path.cs.meta | 11 + Assets/Ink/compiler/ParsedHierarchy/Return.cs | 39 + .../compiler/ParsedHierarchy/Return.cs.meta | 11 + .../Ink/compiler/ParsedHierarchy/Sequence.cs | 206 ++ .../compiler/ParsedHierarchy/Sequence.cs.meta | 11 + Assets/Ink/compiler/ParsedHierarchy/Stitch.cs | 14 + .../compiler/ParsedHierarchy/Stitch.cs.meta | 11 + Assets/Ink/compiler/ParsedHierarchy/Story.cs | 508 +++ .../compiler/ParsedHierarchy/Story.cs.meta | 11 + .../ParsedHierarchy/StringExpression.cs | 70 + .../ParsedHierarchy/StringExpression.cs.meta | 11 + Assets/Ink/compiler/ParsedHierarchy/Text.cs | 24 + .../Ink/compiler/ParsedHierarchy/Text.cs.meta | 11 + .../compiler/ParsedHierarchy/TunnelOnwards.cs | 85 + .../ParsedHierarchy/TunnelOnwards.cs.meta | 11 + .../ParsedHierarchy/VariableAssignment.cs | 123 + .../VariableAssignment.cs.meta | 11 + .../ParsedHierarchy/VariableReference.cs | 152 + .../ParsedHierarchy/VariableReference.cs.meta | 11 + Assets/Ink/compiler/ParsedHierarchy/Weave.cs | 730 +++++ .../compiler/ParsedHierarchy/Weave.cs.meta | 11 + Assets/Ink/compiler/ParsedHierarchy/Wrap.cs | 27 + .../Ink/compiler/ParsedHierarchy/Wrap.cs.meta | 11 + Assets/Ink/compiler/Plugins.meta | 8 + Assets/Ink/compiler/Plugins/Plugin.cs | 19 + Assets/Ink/compiler/Plugins/Plugin.cs.meta | 11 + Assets/Ink/compiler/Plugins/PluginManager.cs | 40 + .../compiler/Plugins/PluginManager.cs.meta | 11 + Assets/Ink/compiler/Stats.cs | 68 + Assets/Ink/compiler/Stats.cs.meta | 11 + Assets/Ink/compiler/StringParser.meta | 8 + .../Ink/compiler/StringParser/StringParser.cs | 685 ++++ .../StringParser/StringParser.cs.meta | 11 + .../StringParser/StringParserState.cs | 170 + .../StringParser/StringParserState.cs.meta | 11 + Assets/Ink/compiler/ink_compiler.csproj | 41 + Assets/Ink/compiler/ink_compiler.csproj.meta | 7 + Assets/Ink/ink-engine-runtime.meta | 8 + Assets/Ink/ink-engine-runtime/CallStack.cs | 443 +++ .../Ink/ink-engine-runtime/CallStack.cs.meta | 11 + Assets/Ink/ink-engine-runtime/Choice.cs | 54 + Assets/Ink/ink-engine-runtime/Choice.cs.meta | 11 + Assets/Ink/ink-engine-runtime/ChoicePoint.cs | 89 + .../ink-engine-runtime/ChoicePoint.cs.meta | 11 + Assets/Ink/ink-engine-runtime/Container.cs | 366 +++ .../Ink/ink-engine-runtime/Container.cs.meta | 11 + .../Ink/ink-engine-runtime/ControlCommand.cs | 170 + .../ink-engine-runtime/ControlCommand.cs.meta | 11 + .../Ink/ink-engine-runtime/DebugMetadata.cs | 76 + .../ink-engine-runtime/DebugMetadata.cs.meta | 11 + Assets/Ink/ink-engine-runtime/Divert.cs | 149 + Assets/Ink/ink-engine-runtime/Divert.cs.meta | 11 + Assets/Ink/ink-engine-runtime/Error.cs | 24 + Assets/Ink/ink-engine-runtime/Error.cs.meta | 11 + Assets/Ink/ink-engine-runtime/Flow.cs | 93 + Assets/Ink/ink-engine-runtime/Flow.cs.meta | 11 + Assets/Ink/ink-engine-runtime/Glue.cs | 13 + Assets/Ink/ink-engine-runtime/Glue.cs.meta | 11 + .../Ink/ink-engine-runtime/INamedContent.cs | 10 + .../ink-engine-runtime/INamedContent.cs.meta | 11 + Assets/Ink/ink-engine-runtime/InkList.cs | 584 ++++ Assets/Ink/ink-engine-runtime/InkList.cs.meta | 11 + .../ink-engine-runtime/JsonSerialisation.cs | 720 +++++ .../JsonSerialisation.cs.meta | 11 + .../Ink/ink-engine-runtime/ListDefinition.cs | 75 + .../ink-engine-runtime/ListDefinition.cs.meta | 11 + .../ListDefinitionsOrigin.cs | 53 + .../ListDefinitionsOrigin.cs.meta | 11 + .../ink-engine-runtime/NativeFunctionCall.cs | 508 +++ .../NativeFunctionCall.cs.meta | 11 + Assets/Ink/ink-engine-runtime/Object.cs | 250 ++ Assets/Ink/ink-engine-runtime/Object.cs.meta | 11 + Assets/Ink/ink-engine-runtime/Path.cs | 277 ++ Assets/Ink/ink-engine-runtime/Path.cs.meta | 11 + Assets/Ink/ink-engine-runtime/Pointer.cs | 70 + Assets/Ink/ink-engine-runtime/Pointer.cs.meta | 11 + Assets/Ink/ink-engine-runtime/Profiler.cs | 394 +++ .../Ink/ink-engine-runtime/Profiler.cs.meta | 11 + Assets/Ink/ink-engine-runtime/PushPop.cs | 13 + Assets/Ink/ink-engine-runtime/PushPop.cs.meta | 11 + Assets/Ink/ink-engine-runtime/SearchResult.cs | 18 + .../ink-engine-runtime/SearchResult.cs.meta | 11 + Assets/Ink/ink-engine-runtime/SimpleJson.cs | 647 ++++ .../Ink/ink-engine-runtime/SimpleJson.cs.meta | 11 + Assets/Ink/ink-engine-runtime/StatePatch.cs | 66 + .../Ink/ink-engine-runtime/StatePatch.cs.meta | 11 + Assets/Ink/ink-engine-runtime/Story.cs | 2774 +++++++++++++++++ Assets/Ink/ink-engine-runtime/Story.cs.meta | 11 + .../Ink/ink-engine-runtime/StoryException.cs | 24 + .../ink-engine-runtime/StoryException.cs.meta | 11 + Assets/Ink/ink-engine-runtime/StoryState.cs | 1286 ++++++++ .../Ink/ink-engine-runtime/StoryState.cs.meta | 11 + .../ink-engine-runtime/StringJoinExtension.cs | 28 + .../StringJoinExtension.cs.meta | 11 + Assets/Ink/ink-engine-runtime/Tag.cs | 20 + Assets/Ink/ink-engine-runtime/Tag.cs.meta | 11 + Assets/Ink/ink-engine-runtime/Value.cs | 405 +++ Assets/Ink/ink-engine-runtime/Value.cs.meta | 11 + .../ink-engine-runtime/VariableAssignment.cs | 27 + .../VariableAssignment.cs.meta | 11 + .../ink-engine-runtime/VariableReference.cs | 51 + .../VariableReference.cs.meta | 11 + .../Ink/ink-engine-runtime/VariablesState.cs | 417 +++ .../ink-engine-runtime/VariablesState.cs.meta | 11 + Assets/Ink/ink-engine-runtime/Void.cs | 10 + Assets/Ink/ink-engine-runtime/Void.cs.meta | 11 + .../ink-engine-runtime.csproj | 55 + .../ink-engine-runtime.csproj.meta | 7 + Assets/Prefabs/UI/Choice.prefab | 277 ++ Assets/Prefabs/UI/Choice.prefab.meta | 7 + Assets/Scenes/ARPG.unity | 2080 +++++++++++- Assets/Scripts/Gameplay/ActionGameManager.cs | 14 + Assets/Scripts/UI/ChoicePrefab.cs | 9 + Assets/Scripts/UI/ChoicePrefab.cs.meta | 11 + Assets/Scripts/UI/LocalMenu.cs | 63 + Assets/Scripts/UI/LocalMenu.cs.meta | 11 + Assets/Scripts/UI/MenuPanel.cs | 3 +- GameData/PlayerSettings.msgpack | 2 +- 215 files changed, 23662 insertions(+), 17 deletions(-) create mode 100644 Assets/Ink.meta create mode 100644 Assets/Ink/compiler.meta create mode 100644 Assets/Ink/compiler/CharacterRange.cs create mode 100644 Assets/Ink/compiler/CharacterRange.cs.meta create mode 100644 Assets/Ink/compiler/CharacterSet.cs create mode 100644 Assets/Ink/compiler/CharacterSet.cs.meta create mode 100644 Assets/Ink/compiler/CommandLineInput.cs create mode 100644 Assets/Ink/compiler/CommandLineInput.cs.meta create mode 100644 Assets/Ink/compiler/Compiler.cs create mode 100644 Assets/Ink/compiler/Compiler.cs.meta create mode 100644 Assets/Ink/compiler/FileHandler.cs create mode 100644 Assets/Ink/compiler/FileHandler.cs.meta create mode 100644 Assets/Ink/compiler/InkParser.meta create mode 100644 Assets/Ink/compiler/InkParser/CommentEliminator.cs create mode 100644 Assets/Ink/compiler/InkParser/CommentEliminator.cs.meta create mode 100644 Assets/Ink/compiler/InkParser/InkParser.cs create mode 100644 Assets/Ink/compiler/InkParser/InkParser.cs.meta create mode 100644 Assets/Ink/compiler/InkParser/InkParser_AuthorWarning.cs create mode 100644 Assets/Ink/compiler/InkParser/InkParser_AuthorWarning.cs.meta create mode 100644 Assets/Ink/compiler/InkParser/InkParser_CharacterRanges.cs create mode 100644 Assets/Ink/compiler/InkParser/InkParser_CharacterRanges.cs.meta create mode 100644 Assets/Ink/compiler/InkParser/InkParser_Choices.cs create mode 100644 Assets/Ink/compiler/InkParser/InkParser_Choices.cs.meta create mode 100644 Assets/Ink/compiler/InkParser/InkParser_CommandLineInput.cs create mode 100644 Assets/Ink/compiler/InkParser/InkParser_CommandLineInput.cs.meta create mode 100644 Assets/Ink/compiler/InkParser/InkParser_Conditional.cs create mode 100644 Assets/Ink/compiler/InkParser/InkParser_Conditional.cs.meta create mode 100644 Assets/Ink/compiler/InkParser/InkParser_Content.cs create mode 100644 Assets/Ink/compiler/InkParser/InkParser_Content.cs.meta create mode 100644 Assets/Ink/compiler/InkParser/InkParser_Divert.cs create mode 100644 Assets/Ink/compiler/InkParser/InkParser_Divert.cs.meta create mode 100644 Assets/Ink/compiler/InkParser/InkParser_Expressions.cs create mode 100644 Assets/Ink/compiler/InkParser/InkParser_Expressions.cs.meta create mode 100644 Assets/Ink/compiler/InkParser/InkParser_Include.cs create mode 100644 Assets/Ink/compiler/InkParser/InkParser_Include.cs.meta create mode 100644 Assets/Ink/compiler/InkParser/InkParser_Knot.cs create mode 100644 Assets/Ink/compiler/InkParser/InkParser_Knot.cs.meta create mode 100644 Assets/Ink/compiler/InkParser/InkParser_Logic.cs create mode 100644 Assets/Ink/compiler/InkParser/InkParser_Logic.cs.meta create mode 100644 Assets/Ink/compiler/InkParser/InkParser_Sequences.cs create mode 100644 Assets/Ink/compiler/InkParser/InkParser_Sequences.cs.meta create mode 100644 Assets/Ink/compiler/InkParser/InkParser_Statements.cs create mode 100644 Assets/Ink/compiler/InkParser/InkParser_Statements.cs.meta create mode 100644 Assets/Ink/compiler/InkParser/InkParser_Tags.cs create mode 100644 Assets/Ink/compiler/InkParser/InkParser_Tags.cs.meta create mode 100644 Assets/Ink/compiler/InkParser/InkParser_Whitespace.cs create mode 100644 Assets/Ink/compiler/InkParser/InkParser_Whitespace.cs.meta create mode 100644 Assets/Ink/compiler/InkStringConversionExtensions.cs create mode 100644 Assets/Ink/compiler/InkStringConversionExtensions.cs.meta create mode 100644 Assets/Ink/compiler/ParsedHierarchy.meta create mode 100644 Assets/Ink/compiler/ParsedHierarchy/AuthorWarning.cs create mode 100644 Assets/Ink/compiler/ParsedHierarchy/AuthorWarning.cs.meta create mode 100644 Assets/Ink/compiler/ParsedHierarchy/Choice.cs create mode 100644 Assets/Ink/compiler/ParsedHierarchy/Choice.cs.meta create mode 100644 Assets/Ink/compiler/ParsedHierarchy/Conditional.cs create mode 100644 Assets/Ink/compiler/ParsedHierarchy/Conditional.cs.meta create mode 100644 Assets/Ink/compiler/ParsedHierarchy/ConditionalSingleBranch.cs create mode 100644 Assets/Ink/compiler/ParsedHierarchy/ConditionalSingleBranch.cs.meta create mode 100644 Assets/Ink/compiler/ParsedHierarchy/ConstantDeclaration.cs create mode 100644 Assets/Ink/compiler/ParsedHierarchy/ConstantDeclaration.cs.meta create mode 100644 Assets/Ink/compiler/ParsedHierarchy/ContentList.cs create mode 100644 Assets/Ink/compiler/ParsedHierarchy/ContentList.cs.meta create mode 100644 Assets/Ink/compiler/ParsedHierarchy/Divert.cs create mode 100644 Assets/Ink/compiler/ParsedHierarchy/Divert.cs.meta create mode 100644 Assets/Ink/compiler/ParsedHierarchy/DivertTarget.cs create mode 100644 Assets/Ink/compiler/ParsedHierarchy/DivertTarget.cs.meta create mode 100644 Assets/Ink/compiler/ParsedHierarchy/Expression.cs create mode 100644 Assets/Ink/compiler/ParsedHierarchy/Expression.cs.meta create mode 100644 Assets/Ink/compiler/ParsedHierarchy/ExternalDeclaration.cs create mode 100644 Assets/Ink/compiler/ParsedHierarchy/ExternalDeclaration.cs.meta create mode 100644 Assets/Ink/compiler/ParsedHierarchy/FlowBase.cs create mode 100644 Assets/Ink/compiler/ParsedHierarchy/FlowBase.cs.meta create mode 100644 Assets/Ink/compiler/ParsedHierarchy/FlowLevel.cs create mode 100644 Assets/Ink/compiler/ParsedHierarchy/FlowLevel.cs.meta create mode 100644 Assets/Ink/compiler/ParsedHierarchy/FunctionCall.cs create mode 100644 Assets/Ink/compiler/ParsedHierarchy/FunctionCall.cs.meta create mode 100644 Assets/Ink/compiler/ParsedHierarchy/Gather.cs create mode 100644 Assets/Ink/compiler/ParsedHierarchy/Gather.cs.meta create mode 100644 Assets/Ink/compiler/ParsedHierarchy/INamedContent.cs create mode 100644 Assets/Ink/compiler/ParsedHierarchy/INamedContent.cs.meta create mode 100644 Assets/Ink/compiler/ParsedHierarchy/IWeavePoint.cs create mode 100644 Assets/Ink/compiler/ParsedHierarchy/IWeavePoint.cs.meta create mode 100644 Assets/Ink/compiler/ParsedHierarchy/Identifier.cs create mode 100644 Assets/Ink/compiler/ParsedHierarchy/Identifier.cs.meta create mode 100644 Assets/Ink/compiler/ParsedHierarchy/IncludedFile.cs create mode 100644 Assets/Ink/compiler/ParsedHierarchy/IncludedFile.cs.meta create mode 100644 Assets/Ink/compiler/ParsedHierarchy/Knot.cs create mode 100644 Assets/Ink/compiler/ParsedHierarchy/Knot.cs.meta create mode 100644 Assets/Ink/compiler/ParsedHierarchy/List.cs create mode 100644 Assets/Ink/compiler/ParsedHierarchy/List.cs.meta create mode 100644 Assets/Ink/compiler/ParsedHierarchy/ListDefinition.cs create mode 100644 Assets/Ink/compiler/ParsedHierarchy/ListDefinition.cs.meta create mode 100644 Assets/Ink/compiler/ParsedHierarchy/Number.cs create mode 100644 Assets/Ink/compiler/ParsedHierarchy/Number.cs.meta create mode 100644 Assets/Ink/compiler/ParsedHierarchy/Object.cs create mode 100644 Assets/Ink/compiler/ParsedHierarchy/Object.cs.meta create mode 100644 Assets/Ink/compiler/ParsedHierarchy/Path.cs create mode 100644 Assets/Ink/compiler/ParsedHierarchy/Path.cs.meta create mode 100644 Assets/Ink/compiler/ParsedHierarchy/Return.cs create mode 100644 Assets/Ink/compiler/ParsedHierarchy/Return.cs.meta create mode 100644 Assets/Ink/compiler/ParsedHierarchy/Sequence.cs create mode 100644 Assets/Ink/compiler/ParsedHierarchy/Sequence.cs.meta create mode 100644 Assets/Ink/compiler/ParsedHierarchy/Stitch.cs create mode 100644 Assets/Ink/compiler/ParsedHierarchy/Stitch.cs.meta create mode 100644 Assets/Ink/compiler/ParsedHierarchy/Story.cs create mode 100644 Assets/Ink/compiler/ParsedHierarchy/Story.cs.meta create mode 100644 Assets/Ink/compiler/ParsedHierarchy/StringExpression.cs create mode 100644 Assets/Ink/compiler/ParsedHierarchy/StringExpression.cs.meta create mode 100644 Assets/Ink/compiler/ParsedHierarchy/Text.cs create mode 100644 Assets/Ink/compiler/ParsedHierarchy/Text.cs.meta create mode 100644 Assets/Ink/compiler/ParsedHierarchy/TunnelOnwards.cs create mode 100644 Assets/Ink/compiler/ParsedHierarchy/TunnelOnwards.cs.meta create mode 100644 Assets/Ink/compiler/ParsedHierarchy/VariableAssignment.cs create mode 100644 Assets/Ink/compiler/ParsedHierarchy/VariableAssignment.cs.meta create mode 100644 Assets/Ink/compiler/ParsedHierarchy/VariableReference.cs create mode 100644 Assets/Ink/compiler/ParsedHierarchy/VariableReference.cs.meta create mode 100644 Assets/Ink/compiler/ParsedHierarchy/Weave.cs create mode 100644 Assets/Ink/compiler/ParsedHierarchy/Weave.cs.meta create mode 100644 Assets/Ink/compiler/ParsedHierarchy/Wrap.cs create mode 100644 Assets/Ink/compiler/ParsedHierarchy/Wrap.cs.meta create mode 100644 Assets/Ink/compiler/Plugins.meta create mode 100644 Assets/Ink/compiler/Plugins/Plugin.cs create mode 100644 Assets/Ink/compiler/Plugins/Plugin.cs.meta create mode 100644 Assets/Ink/compiler/Plugins/PluginManager.cs create mode 100644 Assets/Ink/compiler/Plugins/PluginManager.cs.meta create mode 100644 Assets/Ink/compiler/Stats.cs create mode 100644 Assets/Ink/compiler/Stats.cs.meta create mode 100644 Assets/Ink/compiler/StringParser.meta create mode 100644 Assets/Ink/compiler/StringParser/StringParser.cs create mode 100644 Assets/Ink/compiler/StringParser/StringParser.cs.meta create mode 100644 Assets/Ink/compiler/StringParser/StringParserState.cs create mode 100644 Assets/Ink/compiler/StringParser/StringParserState.cs.meta create mode 100644 Assets/Ink/compiler/ink_compiler.csproj create mode 100644 Assets/Ink/compiler/ink_compiler.csproj.meta create mode 100644 Assets/Ink/ink-engine-runtime.meta create mode 100644 Assets/Ink/ink-engine-runtime/CallStack.cs create mode 100644 Assets/Ink/ink-engine-runtime/CallStack.cs.meta create mode 100644 Assets/Ink/ink-engine-runtime/Choice.cs create mode 100644 Assets/Ink/ink-engine-runtime/Choice.cs.meta create mode 100644 Assets/Ink/ink-engine-runtime/ChoicePoint.cs create mode 100644 Assets/Ink/ink-engine-runtime/ChoicePoint.cs.meta create mode 100644 Assets/Ink/ink-engine-runtime/Container.cs create mode 100644 Assets/Ink/ink-engine-runtime/Container.cs.meta create mode 100644 Assets/Ink/ink-engine-runtime/ControlCommand.cs create mode 100644 Assets/Ink/ink-engine-runtime/ControlCommand.cs.meta create mode 100644 Assets/Ink/ink-engine-runtime/DebugMetadata.cs create mode 100644 Assets/Ink/ink-engine-runtime/DebugMetadata.cs.meta create mode 100644 Assets/Ink/ink-engine-runtime/Divert.cs create mode 100644 Assets/Ink/ink-engine-runtime/Divert.cs.meta create mode 100644 Assets/Ink/ink-engine-runtime/Error.cs create mode 100644 Assets/Ink/ink-engine-runtime/Error.cs.meta create mode 100644 Assets/Ink/ink-engine-runtime/Flow.cs create mode 100644 Assets/Ink/ink-engine-runtime/Flow.cs.meta create mode 100644 Assets/Ink/ink-engine-runtime/Glue.cs create mode 100644 Assets/Ink/ink-engine-runtime/Glue.cs.meta create mode 100644 Assets/Ink/ink-engine-runtime/INamedContent.cs create mode 100644 Assets/Ink/ink-engine-runtime/INamedContent.cs.meta create mode 100644 Assets/Ink/ink-engine-runtime/InkList.cs create mode 100644 Assets/Ink/ink-engine-runtime/InkList.cs.meta create mode 100644 Assets/Ink/ink-engine-runtime/JsonSerialisation.cs create mode 100644 Assets/Ink/ink-engine-runtime/JsonSerialisation.cs.meta create mode 100644 Assets/Ink/ink-engine-runtime/ListDefinition.cs create mode 100644 Assets/Ink/ink-engine-runtime/ListDefinition.cs.meta create mode 100644 Assets/Ink/ink-engine-runtime/ListDefinitionsOrigin.cs create mode 100644 Assets/Ink/ink-engine-runtime/ListDefinitionsOrigin.cs.meta create mode 100644 Assets/Ink/ink-engine-runtime/NativeFunctionCall.cs create mode 100644 Assets/Ink/ink-engine-runtime/NativeFunctionCall.cs.meta create mode 100644 Assets/Ink/ink-engine-runtime/Object.cs create mode 100644 Assets/Ink/ink-engine-runtime/Object.cs.meta create mode 100644 Assets/Ink/ink-engine-runtime/Path.cs create mode 100644 Assets/Ink/ink-engine-runtime/Path.cs.meta create mode 100644 Assets/Ink/ink-engine-runtime/Pointer.cs create mode 100644 Assets/Ink/ink-engine-runtime/Pointer.cs.meta create mode 100644 Assets/Ink/ink-engine-runtime/Profiler.cs create mode 100644 Assets/Ink/ink-engine-runtime/Profiler.cs.meta create mode 100644 Assets/Ink/ink-engine-runtime/PushPop.cs create mode 100644 Assets/Ink/ink-engine-runtime/PushPop.cs.meta create mode 100644 Assets/Ink/ink-engine-runtime/SearchResult.cs create mode 100644 Assets/Ink/ink-engine-runtime/SearchResult.cs.meta create mode 100644 Assets/Ink/ink-engine-runtime/SimpleJson.cs create mode 100644 Assets/Ink/ink-engine-runtime/SimpleJson.cs.meta create mode 100644 Assets/Ink/ink-engine-runtime/StatePatch.cs create mode 100644 Assets/Ink/ink-engine-runtime/StatePatch.cs.meta create mode 100644 Assets/Ink/ink-engine-runtime/Story.cs create mode 100644 Assets/Ink/ink-engine-runtime/Story.cs.meta create mode 100644 Assets/Ink/ink-engine-runtime/StoryException.cs create mode 100644 Assets/Ink/ink-engine-runtime/StoryException.cs.meta create mode 100644 Assets/Ink/ink-engine-runtime/StoryState.cs create mode 100644 Assets/Ink/ink-engine-runtime/StoryState.cs.meta create mode 100644 Assets/Ink/ink-engine-runtime/StringJoinExtension.cs create mode 100644 Assets/Ink/ink-engine-runtime/StringJoinExtension.cs.meta create mode 100644 Assets/Ink/ink-engine-runtime/Tag.cs create mode 100644 Assets/Ink/ink-engine-runtime/Tag.cs.meta create mode 100644 Assets/Ink/ink-engine-runtime/Value.cs create mode 100644 Assets/Ink/ink-engine-runtime/Value.cs.meta create mode 100644 Assets/Ink/ink-engine-runtime/VariableAssignment.cs create mode 100644 Assets/Ink/ink-engine-runtime/VariableAssignment.cs.meta create mode 100644 Assets/Ink/ink-engine-runtime/VariableReference.cs create mode 100644 Assets/Ink/ink-engine-runtime/VariableReference.cs.meta create mode 100644 Assets/Ink/ink-engine-runtime/VariablesState.cs create mode 100644 Assets/Ink/ink-engine-runtime/VariablesState.cs.meta create mode 100644 Assets/Ink/ink-engine-runtime/Void.cs create mode 100644 Assets/Ink/ink-engine-runtime/Void.cs.meta create mode 100644 Assets/Ink/ink-engine-runtime/ink-engine-runtime.csproj create mode 100644 Assets/Ink/ink-engine-runtime/ink-engine-runtime.csproj.meta create mode 100644 Assets/Prefabs/UI/Choice.prefab create mode 100644 Assets/Prefabs/UI/Choice.prefab.meta create mode 100644 Assets/Scripts/UI/ChoicePrefab.cs create mode 100644 Assets/Scripts/UI/ChoicePrefab.cs.meta create mode 100644 Assets/Scripts/UI/LocalMenu.cs create mode 100644 Assets/Scripts/UI/LocalMenu.cs.meta diff --git a/Assets/Ink.meta b/Assets/Ink.meta new file mode 100644 index 000000000..7d8a1b767 --- /dev/null +++ b/Assets/Ink.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 4db0e7e1caca41440b5b14f966d1b38c +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Ink/compiler.meta b/Assets/Ink/compiler.meta new file mode 100644 index 000000000..b008b0564 --- /dev/null +++ b/Assets/Ink/compiler.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a220efa8dba4e9d4c957cbc085eabed2 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Ink/compiler/CharacterRange.cs b/Assets/Ink/compiler/CharacterRange.cs new file mode 100644 index 000000000..40ae68930 --- /dev/null +++ b/Assets/Ink/compiler/CharacterRange.cs @@ -0,0 +1,54 @@ +using System.Collections.Generic; +using System.Linq; + +namespace Ink +{ + /// + /// A class representing a character range. Allows for lazy-loading a corresponding character set. + /// + public sealed class CharacterRange + { + public static CharacterRange Define(char start, char end, IEnumerable excludes = null) + { + return new CharacterRange (start, end, excludes); + } + + /// + /// Returns a character set instance corresponding to the character range + /// represented by the current instance. + /// + /// + /// The internal character set is created once and cached in memory. + /// + /// The char set. + public CharacterSet ToCharacterSet () + { + if (_correspondingCharSet.Count == 0) + { + for (char c = _start; c <= _end; c++) + { + if (!_excludes.Contains (c)) + { + _correspondingCharSet.Add (c); + } + } + } + return _correspondingCharSet; + } + + public char start { get { return _start; } } + public char end { get { return _end; } } + + CharacterRange (char start, char end, IEnumerable excludes) + { + _start = start; + _end = end; + _excludes = excludes == null ? new HashSet() : new HashSet (excludes); + } + + char _start; + char _end; + ICollection _excludes; + CharacterSet _correspondingCharSet = new CharacterSet(); + } +} diff --git a/Assets/Ink/compiler/CharacterRange.cs.meta b/Assets/Ink/compiler/CharacterRange.cs.meta new file mode 100644 index 000000000..ef8b75e13 --- /dev/null +++ b/Assets/Ink/compiler/CharacterRange.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 72ae8a113e216e342af5643382c14802 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Ink/compiler/CharacterSet.cs b/Assets/Ink/compiler/CharacterSet.cs new file mode 100644 index 000000000..7e0eef2f6 --- /dev/null +++ b/Assets/Ink/compiler/CharacterSet.cs @@ -0,0 +1,53 @@ +using System.Collections.Generic; + +namespace Ink +{ + + public class CharacterSet : HashSet + { + public static CharacterSet FromRange(char start, char end) + { + return new CharacterSet ().AddRange (start, end); + } + + public CharacterSet () + { + } + + public CharacterSet(string str) + { + AddCharacters (str); + } + + public CharacterSet(CharacterSet charSetToCopy) + { + AddCharacters (charSetToCopy); + } + + public CharacterSet AddRange(char start, char end) + { + for(char c=start; c<=end; ++c) { + Add (c); + } + return this; + } + + public CharacterSet AddCharacters(IEnumerable chars) + { + foreach (char c in chars) { + Add (c); + } + return this; + } + + public CharacterSet AddCharacters (string chars) + { + foreach (char c in chars) { + Add (c); + } + return this; + } + + } +} + diff --git a/Assets/Ink/compiler/CharacterSet.cs.meta b/Assets/Ink/compiler/CharacterSet.cs.meta new file mode 100644 index 000000000..921012437 --- /dev/null +++ b/Assets/Ink/compiler/CharacterSet.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 61e245e371a3dd848a15f35d6e9f43ed +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Ink/compiler/CommandLineInput.cs b/Assets/Ink/compiler/CommandLineInput.cs new file mode 100644 index 000000000..88f1dfe57 --- /dev/null +++ b/Assets/Ink/compiler/CommandLineInput.cs @@ -0,0 +1,12 @@ +namespace Ink +{ + public class CommandLineInput + { + public bool isHelp; + public bool isExit; + public int? choiceInput; + public int? debugSource; + public string debugPathLookup; + public object userImmediateModeStatement; + } +} \ No newline at end of file diff --git a/Assets/Ink/compiler/CommandLineInput.cs.meta b/Assets/Ink/compiler/CommandLineInput.cs.meta new file mode 100644 index 000000000..9a9412567 --- /dev/null +++ b/Assets/Ink/compiler/CommandLineInput.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 9ea826b6e6cf3c04cacb8f0967c91658 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Ink/compiler/Compiler.cs b/Assets/Ink/compiler/Compiler.cs new file mode 100644 index 000000000..f3e00321d --- /dev/null +++ b/Assets/Ink/compiler/Compiler.cs @@ -0,0 +1,209 @@ +using System; +using System.Collections.Generic; +using Ink; + +namespace Ink +{ + public class Compiler + { + public class Options + { + public string sourceFilename; + public List pluginNames; + public bool countAllVisits; + public Ink.ErrorHandler errorHandler; + public Ink.IFileHandler fileHandler; + } + + public Parsed.Story parsedStory { + get { + return _parsedStory; + } + } + + public Compiler (string inkSource, Options options = null) + { + _inputString = inkSource; + _options = options ?? new Options(); + if( _options.pluginNames != null ) + _pluginManager = new PluginManager (_options.pluginNames); + } + + public Parsed.Story Parse() + { + _parser = new InkParser(_inputString, _options.sourceFilename, OnParseError, _options.fileHandler); + _parsedStory = _parser.Parse(); + return _parsedStory; + } + + public Runtime.Story Compile () + { + Parse(); + + if( _pluginManager != null ) + _pluginManager.PostParse(_parsedStory); + + if (_parsedStory != null && !_hadParseError) { + + _parsedStory.countAllVisits = _options.countAllVisits; + + _runtimeStory = _parsedStory.ExportRuntime (_options.errorHandler); + + if( _pluginManager != null ) + _pluginManager.PostExport (_parsedStory, _runtimeStory); + } else { + _runtimeStory = null; + } + + return _runtimeStory; + } + + public class CommandLineInputResult { + public bool requestsExit; + public int choiceIdx = -1; + public string divertedPath; + public string output; + } + public CommandLineInputResult HandleInput (CommandLineInput inputResult) + { + var result = new CommandLineInputResult (); + + // Request for debug source line number + if (inputResult.debugSource != null) { + var offset = (int)inputResult.debugSource; + var dm = DebugMetadataForContentAtOffset (offset); + if (dm != null) + result.output = "DebugSource: " + dm.ToString (); + else + result.output = "DebugSource: Unknown source"; + } + + // Request for runtime path lookup (to line number) + else if (inputResult.debugPathLookup != null) { + var pathStr = inputResult.debugPathLookup; + var contentResult = _runtimeStory.ContentAtPath (new Runtime.Path (pathStr)); + var dm = contentResult.obj.debugMetadata; + if( dm != null ) + result.output = "DebugSource: " + dm.ToString (); + else + result.output = "DebugSource: Unknown source"; + } + + // User entered some ink + else if (inputResult.userImmediateModeStatement != null) { + var parsedObj = inputResult.userImmediateModeStatement as Parsed.Object; + return ExecuteImmediateStatement(parsedObj); + + } else { + return null; + } + + return result; + } + + CommandLineInputResult ExecuteImmediateStatement(Parsed.Object parsedObj) { + var result = new CommandLineInputResult (); + + // Variable assignment: create in Parsed.Story as well as the Runtime.Story + // so that we don't get an error message during reference resolution + if (parsedObj is Parsed.VariableAssignment) { + var varAssign = (Parsed.VariableAssignment)parsedObj; + if (varAssign.isNewTemporaryDeclaration) { + _parsedStory.TryAddNewVariableDeclaration (varAssign); + } + } + + parsedObj.parent = _parsedStory; + var runtimeObj = parsedObj.runtimeObject; + + parsedObj.ResolveReferences (_parsedStory); + + if (!_parsedStory.hadError) { + + // Divert + if (parsedObj is Parsed.Divert) { + var parsedDivert = parsedObj as Parsed.Divert; + result.divertedPath = parsedDivert.runtimeDivert.targetPath.ToString(); + } + + // Expression or variable assignment + else if (parsedObj is Parsed.Expression || parsedObj is Parsed.VariableAssignment) { + var evalResult = _runtimeStory.EvaluateExpression ((Runtime.Container)runtimeObj); + if (evalResult != null) { + result.output = evalResult.ToString (); + } + } + } else { + _parsedStory.ResetError (); + } + + return result; + } + + public void RetrieveDebugSourceForLatestContent () + { + foreach (var outputObj in _runtimeStory.state.outputStream) { + var textContent = outputObj as Runtime.StringValue; + if (textContent != null) { + var range = new DebugSourceRange (); + range.length = textContent.value.Length; + range.debugMetadata = textContent.debugMetadata; + range.text = textContent.value; + _debugSourceRanges.Add (range); + } + } + } + + Runtime.DebugMetadata DebugMetadataForContentAtOffset (int offset) + { + int currOffset = 0; + + Runtime.DebugMetadata lastValidMetadata = null; + foreach (var range in _debugSourceRanges) { + if (range.debugMetadata != null) + lastValidMetadata = range.debugMetadata; + + if (offset >= currOffset && offset < currOffset + range.length) + return lastValidMetadata; + + currOffset += range.length; + } + + return null; + } + + public struct DebugSourceRange + { + public int length; + public Runtime.DebugMetadata debugMetadata; + public string text; + } + + // Need to wrap the error handler so that we know + // when there was a critical error between parse and codegen stages + void OnParseError (string message, ErrorType errorType) + { + if( errorType == ErrorType.Error ) + _hadParseError = true; + + if (_options.errorHandler != null) + _options.errorHandler (message, errorType); + else + throw new System.Exception(message); + } + + string _inputString; + Options _options; + + + InkParser _parser; + Parsed.Story _parsedStory; + Runtime.Story _runtimeStory; + + PluginManager _pluginManager; + + bool _hadParseError; + + List _debugSourceRanges = new List (); + } +} diff --git a/Assets/Ink/compiler/Compiler.cs.meta b/Assets/Ink/compiler/Compiler.cs.meta new file mode 100644 index 000000000..8406769a6 --- /dev/null +++ b/Assets/Ink/compiler/Compiler.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 02566d14814a1194ea64f24ac13aabbb +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Ink/compiler/FileHandler.cs b/Assets/Ink/compiler/FileHandler.cs new file mode 100644 index 000000000..51a60bb47 --- /dev/null +++ b/Assets/Ink/compiler/FileHandler.cs @@ -0,0 +1,24 @@ +using System.IO; + +namespace Ink +{ + public interface IFileHandler + { + string ResolveInkFilename (string includeName); + string LoadInkFileContents (string fullFilename); + } + + public class DefaultFileHandler : Ink.IFileHandler { + public string ResolveInkFilename (string includeName) + { + var workingDir = Directory.GetCurrentDirectory (); + var fullRootInkPath = Path.Combine (workingDir, includeName); + return fullRootInkPath; + } + + public string LoadInkFileContents (string fullFilename) + { + return File.ReadAllText (fullFilename); + } + } +} diff --git a/Assets/Ink/compiler/FileHandler.cs.meta b/Assets/Ink/compiler/FileHandler.cs.meta new file mode 100644 index 000000000..98d42bf29 --- /dev/null +++ b/Assets/Ink/compiler/FileHandler.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a4bc77a489a8348498429161a93a337a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Ink/compiler/InkParser.meta b/Assets/Ink/compiler/InkParser.meta new file mode 100644 index 000000000..5e4a0549d --- /dev/null +++ b/Assets/Ink/compiler/InkParser.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 2ac8c073d5990034aa0cc05037439d4f +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Ink/compiler/InkParser/CommentEliminator.cs b/Assets/Ink/compiler/InkParser/CommentEliminator.cs new file mode 100644 index 000000000..9d0cfee59 --- /dev/null +++ b/Assets/Ink/compiler/InkParser/CommentEliminator.cs @@ -0,0 +1,93 @@ + +namespace Ink +{ + /// + /// Pre-pass before main ink parser runs. It actually performs two main tasks: + /// - comment elimination to simplify the parse rules in the main parser + /// - Conversion of Windows line endings (\r\n) to the simpler Unix style (\n), so + /// we don't have to worry about them later. + /// + public class CommentEliminator : StringParser + { + public CommentEliminator (string input) : base(input) + { + } + + public string Process() + { + // Make both comments and non-comments optional to handle trivial empty file case (or *only* comments) + var stringList = Interleave(Optional (CommentsAndNewlines), Optional(MainInk)); + + if (stringList != null) { + return string.Join("", stringList.ToArray()); + } else { + return null; + } + } + + string MainInk() + { + return ParseUntil (CommentsAndNewlines, _commentOrNewlineStartCharacter, null); + } + + string CommentsAndNewlines() + { + var newlines = Interleave (Optional (ParseNewline), Optional (ParseSingleComment)); + + if (newlines != null) { + return string.Join ("", newlines.ToArray()); + } else { + return null; + } + } + + // Valid comments always return either an empty string or pure newlines, + // which we want to keep so that line numbers stay the same + string ParseSingleComment() + { + return (string) OneOf (EndOfLineComment, BlockComment); + } + + string EndOfLineComment() + { + if (ParseString ("//") == null) { + return null; + } + + ParseUntilCharactersFromCharSet (_newlineCharacters); + + return ""; + } + + string BlockComment() + { + if (ParseString ("/*") == null) { + return null; + } + + int startLineIndex = lineIndex; + + var commentResult = ParseUntil (String("*/"), _commentBlockEndCharacter, null); + + if (!endOfInput) { + ParseString ("*/"); + } + + // Count the number of lines that were inside the block, and replicate them as newlines + // so that the line indexing still works from the original source + if (commentResult != null) { + return new string ('\n', lineIndex - startLineIndex); + } + + // No comment at all + else { + return null; + } + } + + CharacterSet _commentOrNewlineStartCharacter = new CharacterSet ("/\r\n"); + CharacterSet _commentBlockEndCharacter = new CharacterSet("*"); + CharacterSet _newlineCharacters = new CharacterSet ("\n\r"); + } +} + diff --git a/Assets/Ink/compiler/InkParser/CommentEliminator.cs.meta b/Assets/Ink/compiler/InkParser/CommentEliminator.cs.meta new file mode 100644 index 000000000..3e3f04a54 --- /dev/null +++ b/Assets/Ink/compiler/InkParser/CommentEliminator.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e650e9d0adfa13d40a23175367324716 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Ink/compiler/InkParser/InkParser.cs b/Assets/Ink/compiler/InkParser/InkParser.cs new file mode 100644 index 000000000..4068edbcf --- /dev/null +++ b/Assets/Ink/compiler/InkParser/InkParser.cs @@ -0,0 +1,171 @@ +using System; +using System.Collections.Generic; +using System.IO; + +namespace Ink +{ + public partial class InkParser : StringParser + { + public InkParser(string str, string filenameForMetadata = null, Ink.ErrorHandler externalErrorHandler = null, IFileHandler fileHandler = null) + : this(str, filenameForMetadata, externalErrorHandler, null, fileHandler) + { } + + InkParser(string str, string inkFilename = null, Ink.ErrorHandler externalErrorHandler = null, InkParser rootParser = null, IFileHandler fileHandler = null) : base(str) { + _filename = inkFilename; + RegisterExpressionOperators (); + GenerateStatementLevelRules (); + + // Built in handler for all standard parse errors and warnings + this.errorHandler = OnStringParserError; + + // The above parse errors are then formatted as strings and passed + // to the Ink.ErrorHandler, or it throws an exception + _externalErrorHandler = externalErrorHandler; + + _fileHandler = fileHandler ?? new DefaultFileHandler(); + + if (rootParser == null) { + _rootParser = this; + + _openFilenames = new HashSet (); + + if (inkFilename != null) { + var fullRootInkPath = _fileHandler.ResolveInkFilename (inkFilename); + _openFilenames.Add (fullRootInkPath); + } + + } else { + _rootParser = rootParser; + } + + } + + // Main entry point + public Parsed.Story Parse() + { + List topLevelContent = StatementsAtLevel (StatementLevel.Top); + + // Note we used to return null if there were any errors, but this would mean + // that include files would return completely empty rather than attempting to + // continue with errors. Returning an empty include files meant that anything + // that *did* compile successfully would otherwise be ignored, generating way + // more errors than necessary. + return new Parsed.Story (topLevelContent, isInclude:_rootParser != this); + } + + protected List SeparatedList (SpecificParseRule mainRule, ParseRule separatorRule) where T : class + { + T firstElement = Parse (mainRule); + if (firstElement == null) return null; + + var allElements = new List (); + allElements.Add (firstElement); + + do { + + int nextElementRuleId = BeginRule (); + + var sep = separatorRule (); + if (sep == null) { + FailRule (nextElementRuleId); + break; + } + + var nextElement = Parse (mainRule); + if (nextElement == null) { + FailRule (nextElementRuleId); + break; + } + + SucceedRule (nextElementRuleId); + + allElements.Add (nextElement); + + } while (true); + + return allElements; + } + + protected override string PreProcessInputString(string str) + { + var inputWithCommentsRemoved = (new CommentEliminator (str)).Process(); + return inputWithCommentsRemoved; + } + + protected Runtime.DebugMetadata CreateDebugMetadata(StringParserState.Element stateAtStart, StringParserState.Element stateAtEnd) + { + var md = new Runtime.DebugMetadata (); + md.startLineNumber = stateAtStart.lineIndex + 1; + md.endLineNumber = stateAtEnd.lineIndex + 1; + md.startCharacterNumber = stateAtStart.characterInLineIndex + 1; + md.endCharacterNumber = stateAtEnd.characterInLineIndex + 1; + md.fileName = _filename; + return md; + } + + protected override void RuleDidSucceed(object result, StringParserState.Element stateAtStart, StringParserState.Element stateAtEnd) + { + // Apply DebugMetadata based on the state at the start of the rule + // (i.e. use line number as it was at the start of the rule) + var parsedObj = result as Parsed.Object; + if ( parsedObj) { + parsedObj.debugMetadata = CreateDebugMetadata(stateAtStart, stateAtEnd); + return; + } + + // A list of objects that doesn't already have metadata? + var parsedListObjs = result as List; + if (parsedListObjs != null) { + foreach (var parsedListObj in parsedListObjs) { + if (!parsedListObj.hasOwnDebugMetadata) { + parsedListObj.debugMetadata = CreateDebugMetadata(stateAtStart, stateAtEnd); + } + } + } + + var id = result as Parsed.Identifier; + if (id != null) { + id.debugMetadata = CreateDebugMetadata(stateAtStart, stateAtEnd); + } + } + + protected bool parsingStringExpression + { + get { + return GetFlag ((uint)CustomFlags.ParsingString); + } + set { + SetFlag ((uint)CustomFlags.ParsingString, value); + } + } + + protected enum CustomFlags { + ParsingString = 0x1 + } + + void OnStringParserError(string message, int index, int lineIndex, bool isWarning) + { + var warningType = isWarning ? "WARNING:" : "ERROR:"; + string fullMessage; + + if (_filename != null) { + fullMessage = string.Format(warningType+" '{0}' line {1}: {2}", _filename, (lineIndex+1), message); + } else { + fullMessage = string.Format(warningType+" line {0}: {1}", (lineIndex+1), message); + } + + if (_externalErrorHandler != null) { + _externalErrorHandler (fullMessage, isWarning ? ErrorType.Warning : ErrorType.Error); + } else { + throw new System.Exception (fullMessage); + } + } + + IFileHandler _fileHandler; + + Ink.ErrorHandler _externalErrorHandler; + + string _filename; + } +} + diff --git a/Assets/Ink/compiler/InkParser/InkParser.cs.meta b/Assets/Ink/compiler/InkParser/InkParser.cs.meta new file mode 100644 index 000000000..a02351aea --- /dev/null +++ b/Assets/Ink/compiler/InkParser/InkParser.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 57456b83f66dcfb4dbdc06ae75d41958 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Ink/compiler/InkParser/InkParser_AuthorWarning.cs b/Assets/Ink/compiler/InkParser/InkParser_AuthorWarning.cs new file mode 100644 index 000000000..6e73e5972 --- /dev/null +++ b/Assets/Ink/compiler/InkParser/InkParser_AuthorWarning.cs @@ -0,0 +1,28 @@ +using Ink.Parsed; + +namespace Ink +{ + public partial class InkParser + { + protected AuthorWarning AuthorWarning() + { + Whitespace (); + + var identifier = Parse (IdentifierWithMetadata); + if (identifier == null || identifier.name != "TODO") + return null; + + Whitespace (); + + ParseString (":"); + + Whitespace (); + + var message = ParseUntilCharactersFromString ("\n\r"); + + return new AuthorWarning (message); + } + + } +} + diff --git a/Assets/Ink/compiler/InkParser/InkParser_AuthorWarning.cs.meta b/Assets/Ink/compiler/InkParser/InkParser_AuthorWarning.cs.meta new file mode 100644 index 000000000..6a6c386ca --- /dev/null +++ b/Assets/Ink/compiler/InkParser/InkParser_AuthorWarning.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 0c9f8990d12640c40b17fdb3552c08f6 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Ink/compiler/InkParser/InkParser_CharacterRanges.cs b/Assets/Ink/compiler/InkParser/InkParser_CharacterRanges.cs new file mode 100644 index 000000000..3ac3962b6 --- /dev/null +++ b/Assets/Ink/compiler/InkParser/InkParser_CharacterRanges.cs @@ -0,0 +1,64 @@ +using Ink.Parsed; +using System; +using System.Text; +using System.Collections.Generic; +using System.Linq; + +namespace Ink +{ + public partial class InkParser + { + public static readonly CharacterRange LatinBasic = + CharacterRange.Define ('\u0041', '\u007A', excludes: new CharacterSet().AddRange('\u005B', '\u0060')); + public static readonly CharacterRange LatinExtendedA = CharacterRange.Define('\u0100', '\u017F'); // no excludes here + public static readonly CharacterRange LatinExtendedB = CharacterRange.Define('\u0180', '\u024F'); // no excludes here + public static readonly CharacterRange Greek = + CharacterRange.Define('\u0370', '\u03FF', excludes: new CharacterSet().AddRange('\u0378','\u0385').AddCharacters("\u0374\u0375\u0378\u0387\u038B\u038D\u03A2")); + public static readonly CharacterRange Cyrillic = + CharacterRange.Define('\u0400', '\u04FF', excludes: new CharacterSet().AddRange('\u0482', '\u0489')); + public static readonly CharacterRange Armenian = + CharacterRange.Define('\u0530', '\u058F', excludes: new CharacterSet().AddCharacters("\u0530").AddRange('\u0557', '\u0560').AddRange('\u0588', '\u058E')); + public static readonly CharacterRange Hebrew = + CharacterRange.Define('\u0590', '\u05FF', excludes: new CharacterSet()); + public static readonly CharacterRange Arabic = + CharacterRange.Define('\u0600', '\u06FF', excludes: new CharacterSet()); + public static readonly CharacterRange Korean = + CharacterRange.Define('\uAC00', '\uD7AF', excludes: new CharacterSet()); + public static readonly CharacterRange Latin1Supplement = + CharacterRange.Define('\u0080', '\u00FF', excludes: new CharacterSet()); + + private void ExtendIdentifierCharacterRanges(CharacterSet identifierCharSet) + { + var characterRanges = ListAllCharacterRanges(); + + foreach (var charRange in characterRanges) + { + identifierCharSet.AddCharacters(charRange.ToCharacterSet()); + } + } + + /// + /// Gets an array of representing all of the currently supported + /// non-ASCII character ranges that can be used in identifier names. + /// + /// + /// An array of representing all of the currently supported + /// non-ASCII character ranges that can be used in identifier names. + /// + public static CharacterRange[] ListAllCharacterRanges() { + return new CharacterRange[] { + LatinBasic, + LatinExtendedA, + LatinExtendedB, + Arabic, + Armenian, + Cyrillic, + Greek, + Hebrew, + Korean, + Latin1Supplement, + }; + } + } +} + diff --git a/Assets/Ink/compiler/InkParser/InkParser_CharacterRanges.cs.meta b/Assets/Ink/compiler/InkParser/InkParser_CharacterRanges.cs.meta new file mode 100644 index 000000000..9925778f2 --- /dev/null +++ b/Assets/Ink/compiler/InkParser/InkParser_CharacterRanges.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e1cc3ab7c74670a40936f5c282a505e7 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Ink/compiler/InkParser/InkParser_Choices.cs b/Assets/Ink/compiler/InkParser/InkParser_Choices.cs new file mode 100644 index 000000000..39c148af7 --- /dev/null +++ b/Assets/Ink/compiler/InkParser/InkParser_Choices.cs @@ -0,0 +1,225 @@ +using Ink.Parsed; +using System.Diagnostics; + +namespace Ink +{ + public partial class InkParser + { + protected Choice Choice() + { + bool onceOnlyChoice = true; + var bullets = Interleave (OptionalExclude(Whitespace), String("*") ); + if (bullets == null) { + + bullets = Interleave (OptionalExclude(Whitespace), String("+") ); + if (bullets == null) { + return null; + } + + onceOnlyChoice = false; + } + + // Optional name for the choice + Identifier optionalName = Parse(BracketedName); + + Whitespace (); + + // Optional condition for whether the choice should be shown to the player + Expression conditionExpr = Parse(ChoiceCondition); + + Whitespace (); + + // Ordinarily we avoid parser state variables like these, since + // nesting would require us to store them in a stack. But since you should + // never be able to nest choices within choice content, it's fine here. + Debug.Assert(_parsingChoice == false, "Already parsing a choice - shouldn't have nested choices"); + _parsingChoice = true; + + ContentList startContent = null; + var startTextAndLogic = Parse (MixedTextAndLogic); + if (startTextAndLogic != null) + startContent = new ContentList (startTextAndLogic); + + + ContentList optionOnlyContent = null; + ContentList innerContent = null; + + // Check for a the weave style format: + // * "Hello[."]," he said. + bool hasWeaveStyleInlineBrackets = ParseString("[") != null; + if (hasWeaveStyleInlineBrackets) { + + var optionOnlyTextAndLogic = Parse (MixedTextAndLogic); + if (optionOnlyTextAndLogic != null) + optionOnlyContent = new ContentList (optionOnlyTextAndLogic); + + + Expect (String("]"), "closing ']' for weave-style option"); + + var innerTextAndLogic = Parse (MixedTextAndLogic); + if( innerTextAndLogic != null ) + innerContent = new ContentList (innerTextAndLogic); + } + + Whitespace (); + + // Finally, now we know we're at the end of the main choice body, parse + // any diverts separately. + var diverts = Parse(MultiDivert); + + _parsingChoice = false; + + Whitespace (); + + // Completely empty choice without even an empty divert? + bool emptyContent = !startContent && !innerContent && !optionOnlyContent; + if (emptyContent && diverts == null) + Warning ("Choice is completely empty. Interpretting as a default fallback choice. Add a divert arrow to remove this warning: * ->"); + + // * [] some text + else if (!startContent && hasWeaveStyleInlineBrackets && !optionOnlyContent) + Warning ("Blank choice - if you intended a default fallback choice, use the `* ->` syntax"); + + if (!innerContent) innerContent = new ContentList (); + + var tags = Parse (Tags); + if (tags != null) { + innerContent.AddContent(tags); + } + + // Normal diverts on the end of a choice - simply add to the normal content + if (diverts != null) { + foreach (var divObj in diverts) { + // may be TunnelOnwards + var div = divObj as Divert; + + // Empty divert serves no purpose other than to say + // "this choice is intentionally left blank" + // (as an invisible default choice) + if (div && div.isEmpty) continue; + + innerContent.AddContent (divObj); + } + } + + // Terminate main content with a newline since this is the end of the line + // Note that this will be redundant if the diverts above definitely take + // the flow away permanently. + innerContent.AddContent (new Text ("\n")); + + var choice = new Choice (startContent, optionOnlyContent, innerContent); + choice.identifier = optionalName; + choice.indentationDepth = bullets.Count; + choice.hasWeaveStyleInlineBrackets = hasWeaveStyleInlineBrackets; + choice.condition = conditionExpr; + choice.onceOnly = onceOnlyChoice; + choice.isInvisibleDefault = emptyContent; + + return choice; + + } + + protected Expression ChoiceCondition() + { + var conditions = Interleave (ChoiceSingleCondition, ChoiceConditionsSpace); + if (conditions == null) + return null; + else if (conditions.Count == 1) + return conditions [0]; + else { + return new MultipleConditionExpression (conditions); + } + } + + protected object ChoiceConditionsSpace() + { + // Both optional + // Newline includes initial end of line whitespace + Newline (); + Whitespace (); + return ParseSuccess; + } + + protected Expression ChoiceSingleCondition() + { + if (ParseString ("{") == null) + return null; + + var condExpr = Expect(Expression, "choice condition inside { }") as Expression; + DisallowIncrement (condExpr); + + Expect (String ("}"), "closing '}' for choice condition"); + + return condExpr; + } + + protected Gather Gather() + { + object gatherDashCountObj = Parse(GatherDashes); + if (gatherDashCountObj == null) { + return null; + } + + int gatherDashCount = (int)gatherDashCountObj; + + // Optional name for the gather + Identifier optionalName = Parse(BracketedName); + + var gather = new Gather (optionalName, gatherDashCount); + + // Optional newline before gather's content begins + Newline (); + + return gather; + } + + protected object GatherDashes() + { + Whitespace (); + + int gatherDashCount = 0; + + while (ParseDashNotArrow () != null) { + gatherDashCount++; + Whitespace (); + } + + if (gatherDashCount == 0) + return null; + + return gatherDashCount; + } + + protected object ParseDashNotArrow() + { + var ruleId = BeginRule (); + + if (ParseString ("->") == null && ParseSingleCharacter () == '-') { + return SucceedRule (ruleId); + } else { + return FailRule (ruleId); + } + } + + protected Identifier BracketedName() + { + if (ParseString ("(") == null) + return null; + + Whitespace (); + + Identifier name = Parse(IdentifierWithMetadata); + if (name == null) + return null; + + Whitespace (); + + Expect (String (")"), "closing ')' for bracketed name"); + + return name; + } + + bool _parsingChoice; + } +} + diff --git a/Assets/Ink/compiler/InkParser/InkParser_Choices.cs.meta b/Assets/Ink/compiler/InkParser/InkParser_Choices.cs.meta new file mode 100644 index 000000000..698cee60f --- /dev/null +++ b/Assets/Ink/compiler/InkParser/InkParser_Choices.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a2d978613bf868c48b75265740aad51e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Ink/compiler/InkParser/InkParser_CommandLineInput.cs b/Assets/Ink/compiler/InkParser/InkParser_CommandLineInput.cs new file mode 100644 index 000000000..a04ef1766 --- /dev/null +++ b/Assets/Ink/compiler/InkParser/InkParser_CommandLineInput.cs @@ -0,0 +1,129 @@ + +namespace Ink +{ + public partial class InkParser + { + // Valid returned objects: + // - "help" + // - int: for choice number + // - Parsed.Divert + // - Variable declaration/assignment + // - Epression + // - Lookup debug source for character offset + // - Lookup debug source for runtime path + public CommandLineInput CommandLineUserInput() + { + CommandLineInput result = new CommandLineInput (); + + Whitespace (); + + if (ParseString ("help") != null) { + result.isHelp = true; + return result; + } + + if (ParseString ("exit") != null || ParseString ("quit") != null) { + result.isExit = true; + return result; + } + + return (CommandLineInput) OneOf ( + DebugSource, + DebugPathLookup, + UserChoiceNumber, + UserImmediateModeStatement + ); + } + + CommandLineInput DebugSource () + { + Whitespace (); + + if (ParseString ("DebugSource") == null) + return null; + + Whitespace (); + + var expectMsg = "character offset in parentheses, e.g. DebugSource(5)"; + if (Expect (String ("("), expectMsg) == null) + return null; + + Whitespace (); + + int? characterOffset = ParseInt (); + if (characterOffset == null) { + Error (expectMsg); + return null; + } + + Whitespace (); + + Expect (String (")"), "closing parenthesis"); + + var inputStruct = new CommandLineInput (); + inputStruct.debugSource = characterOffset; + return inputStruct; + } + + CommandLineInput DebugPathLookup () + { + Whitespace (); + + if (ParseString ("DebugPath") == null) + return null; + + if (Whitespace () == null) + return null; + + var pathStr = Expect (RuntimePath, "path") as string; + + var inputStruct = new CommandLineInput (); + inputStruct.debugPathLookup = pathStr; + return inputStruct; + } + + string RuntimePath () + { + if (_runtimePathCharacterSet == null) { + _runtimePathCharacterSet = new CharacterSet (identifierCharSet); + _runtimePathCharacterSet.Add ('-'); // for c-0, g-0 etc + _runtimePathCharacterSet.Add ('.'); + + } + + return ParseCharactersFromCharSet (_runtimePathCharacterSet); + } + + CommandLineInput UserChoiceNumber() + { + Whitespace (); + + int? number = ParseInt (); + if (number == null) { + return null; + } + + Whitespace (); + + if (Parse(EndOfLine) == null) { + return null; + } + + var inputStruct = new CommandLineInput (); + inputStruct.choiceInput = number; + return inputStruct; + } + + CommandLineInput UserImmediateModeStatement() + { + var statement = OneOf (SingleDivert, TempDeclarationOrAssignment, Expression); + + var inputStruct = new CommandLineInput (); + inputStruct.userImmediateModeStatement = statement; + return inputStruct; + } + + CharacterSet _runtimePathCharacterSet; + } +} + diff --git a/Assets/Ink/compiler/InkParser/InkParser_CommandLineInput.cs.meta b/Assets/Ink/compiler/InkParser/InkParser_CommandLineInput.cs.meta new file mode 100644 index 000000000..0bf765fcb --- /dev/null +++ b/Assets/Ink/compiler/InkParser/InkParser_CommandLineInput.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 69954d17756084b4bb0c82e2238d36bd +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Ink/compiler/InkParser/InkParser_Conditional.cs b/Assets/Ink/compiler/InkParser/InkParser_Conditional.cs new file mode 100644 index 000000000..c1f60ec50 --- /dev/null +++ b/Assets/Ink/compiler/InkParser/InkParser_Conditional.cs @@ -0,0 +1,288 @@ +using System.Collections.Generic; +using System.Linq; +using Ink.Parsed; + +namespace Ink +{ + public partial class InkParser + { + protected Conditional InnerConditionalContent() + { + var initialQueryExpression = Parse(ConditionExpression); + var conditional = Parse(() => InnerConditionalContent (initialQueryExpression)); + if (conditional == null) + return null; + + return conditional; + } + + protected Conditional InnerConditionalContent(Expression initialQueryExpression) + { + List alternatives; + + bool canBeInline = initialQueryExpression != null; + bool isInline = Parse(Newline) == null; + + if (isInline && !canBeInline) { + return null; + } + + // Inline innards + if (isInline) { + alternatives = InlineConditionalBranches (); + } + + // Multiline innards + else { + alternatives = MultilineConditionalBranches (); + if (alternatives == null) { + + // Allow single piece of content within multi-line expression, e.g.: + // { true: + // Some content that isn't preceded by '-' + // } + if (initialQueryExpression) { + List soleContent = StatementsAtLevel (StatementLevel.InnerBlock); + if (soleContent != null) { + var soleBranch = new ConditionalSingleBranch (soleContent); + alternatives = new List (); + alternatives.Add (soleBranch); + + // Also allow a final "- else:" clause + var elseBranch = Parse (SingleMultilineCondition); + if (elseBranch) { + if (!elseBranch.isElse) { + ErrorWithParsedObject ("Expected an '- else:' clause here rather than an extra condition", elseBranch); + elseBranch.isElse = true; + } + alternatives.Add (elseBranch); + } + } + } + + // Still null? + if (alternatives == null) { + return null; + } + } + + // Empty true branch - didn't get parsed, but should insert one for semantic correctness, + // and to make sure that any evaluation stack values get tidied up correctly. + else if (alternatives.Count == 1 && alternatives [0].isElse && initialQueryExpression) { + var emptyTrueBranch = new ConditionalSingleBranch (null); + emptyTrueBranch.isTrueBranch = true; + alternatives.Insert (0, emptyTrueBranch); + } + + // Like a switch statement + // { initialQueryExpression: + // ... match the expression + // } + if (initialQueryExpression) { + + bool earlierBranchesHaveOwnExpression = false; + for (int i = 0; i < alternatives.Count; ++i) { + var branch = alternatives [i]; + bool isLast = (i == alternatives.Count - 1); + + // Matching equality with initial query expression + // We set this flag even for the "else" clause so that + // it knows to tidy up the evaluation stack at the end + + // Match query + if (branch.ownExpression) { + branch.matchingEquality = true; + earlierBranchesHaveOwnExpression = true; + } + + // Else (final branch) + else if (earlierBranchesHaveOwnExpression && isLast) { + branch.matchingEquality = true; + branch.isElse = true; + } + + // Binary condition: + // { trueOrFalse: + // - when true + // - when false + // } + else { + + if (!isLast && alternatives.Count > 2) { + ErrorWithParsedObject ("Only final branch can be an 'else'. Did you miss a ':'?", branch); + } else { + if (i == 0) + branch.isTrueBranch = true; + else + branch.isElse = true; + } + } + } + } + + // No initial query, so just a multi-line conditional. e.g.: + // { + // - x > 3: greater than three + // - x == 3: equal to three + // - x < 3: less than three + // } + else { + + for (int i = 0; i < alternatives.Count; ++i) { + var alt = alternatives [i]; + bool isLast = (i == alternatives.Count - 1); + if (alt.ownExpression == null) { + if (isLast) { + alt.isElse = true; + } else { + if (alt.isElse) { + // Do we ALSO have a valid "else" at the end? Let's report the error there. + var finalClause = alternatives [alternatives.Count - 1]; + if (finalClause.isElse) { + ErrorWithParsedObject ("Multiple 'else' cases. Can have a maximum of one, at the end.", finalClause); + } else { + ErrorWithParsedObject ("'else' case in conditional should always be the final one", alt); + } + } else { + ErrorWithParsedObject ("Branch doesn't have condition. Are you missing a ':'? ", alt); + } + + } + } + } + + if (alternatives.Count == 1 && alternatives [0].ownExpression == null) { + ErrorWithParsedObject ("Condition block with no conditions", alternatives [0]); + } + } + } + + // TODO: Come up with water-tight error conditions... it's quite a flexible system! + // e.g. + // - inline conditionals must have exactly 1 or 2 alternatives + // - multiline expression shouldn't have mixed existence of branch-conditions? + if (alternatives == null) + return null; + + foreach (var branch in alternatives) { + branch.isInline = isInline; + } + + var cond = new Conditional (initialQueryExpression, alternatives); + return cond; + } + + protected List InlineConditionalBranches() + { + var listOfLists = Interleave> (MixedTextAndLogic, Exclude (String ("|")), flatten: false); + if (listOfLists == null || listOfLists.Count == 0) { + return null; + } + + var result = new List (); + + if (listOfLists.Count > 2) { + Error ("Expected one or two alternatives separated by '|' in inline conditional"); + } else { + + var trueBranch = new ConditionalSingleBranch (listOfLists[0]); + trueBranch.isTrueBranch = true; + result.Add (trueBranch); + + if (listOfLists.Count > 1) { + var elseBranch = new ConditionalSingleBranch (listOfLists[1]); + elseBranch.isElse = true; + result.Add (elseBranch); + } + } + + return result; + } + + protected List MultilineConditionalBranches() + { + MultilineWhitespace (); + + List multipleConditions = OneOrMore (SingleMultilineCondition); + if (multipleConditions == null) + return null; + + MultilineWhitespace (); + + return multipleConditions.Cast().ToList(); + } + + protected ConditionalSingleBranch SingleMultilineCondition() + { + Whitespace (); + + // Make sure we're not accidentally parsing a divert + if (ParseString ("->") != null) + return null; + + if (ParseString ("-") == null) + return null; + + Whitespace (); + + Expression expr = null; + bool isElse = Parse(ElseExpression) != null; + + if( !isElse ) + expr = Parse(ConditionExpression); + + List content = StatementsAtLevel (StatementLevel.InnerBlock); + if (expr == null && content == null) { + Error ("expected content for the conditional branch following '-'"); + + // Recover + content = new List (); + content.Add (new Text ("")); + } + + // Allow additional multiline whitespace, if the statements were empty (valid) + // then their surrounding multiline whitespacce needs to be handled manually. + // e.g. + // { x: + // - 1: // intentionally left blank, but newline needs to be parsed + // - 2: etc + // } + MultilineWhitespace (); + + var branch = new ConditionalSingleBranch (content); + branch.ownExpression = expr; + branch.isElse = isElse; + return branch; + } + + protected Expression ConditionExpression() + { + var expr = Parse(Expression); + if (expr == null) + return null; + + DisallowIncrement (expr); + + Whitespace (); + + if (ParseString (":") == null) + return null; + + return expr; + } + + protected object ElseExpression() + { + if (ParseString ("else") == null) + return null; + + Whitespace (); + + if (ParseString (":") == null) + return null; + + return ParseSuccess; + } + } +} + diff --git a/Assets/Ink/compiler/InkParser/InkParser_Conditional.cs.meta b/Assets/Ink/compiler/InkParser/InkParser_Conditional.cs.meta new file mode 100644 index 000000000..5d71e5ca3 --- /dev/null +++ b/Assets/Ink/compiler/InkParser/InkParser_Conditional.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6a295014ccaa92c41bd194e4eecc1bd7 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Ink/compiler/InkParser/InkParser_Content.cs b/Assets/Ink/compiler/InkParser/InkParser_Content.cs new file mode 100644 index 000000000..e1bc7abd0 --- /dev/null +++ b/Assets/Ink/compiler/InkParser/InkParser_Content.cs @@ -0,0 +1,217 @@ +using Ink.Parsed; +using System.Text; +using System.Collections.Generic; +using System.Linq; + +namespace Ink +{ + public partial class InkParser + { + void TrimEndWhitespace(List mixedTextAndLogicResults, bool terminateWithSpace) + { + // Trim whitespace from end + if (mixedTextAndLogicResults.Count > 0) { + var lastObjIdx = mixedTextAndLogicResults.Count - 1; + var lastObj = mixedTextAndLogicResults[lastObjIdx]; + if (lastObj is Text) { + var text = (Text)lastObj; + text.text = text.text.TrimEnd (' ', '\t'); + + if (terminateWithSpace) + text.text += " "; + + // No content left at all? trim the whole object + else if( text.text.Length == 0 ) { + mixedTextAndLogicResults.RemoveAt(lastObjIdx); + + // Recurse in case there's more whitespace + TrimEndWhitespace(mixedTextAndLogicResults, terminateWithSpace:false); + } + } + } + } + + protected List LineOfMixedTextAndLogic() + { + // Consume any whitespace at the start of the line + // (Except for escaped whitespace) + Parse (Whitespace); + + var result = Parse(MixedTextAndLogic); + + // Terminating tag + bool onlyTags = false; + var tags = Parse (Tags); + if (tags != null) { + if (result == null) { + result = tags.Cast ().ToList (); + onlyTags = true; + } else { + foreach (var tag in tags) { + result.Add(tag); + } + } + } + + if (result == null || result.Count == 0) + return null; + + // Warn about accidentally writing "return" without "~" + var firstText = result[0] as Text; + if (firstText) { + if (firstText.text.StartsWith ("return")) { + Warning ("Do you need a '~' before 'return'? If not, perhaps use a glue: <> (since it's lowercase) or rewrite somehow?"); + } + } + if (result.Count == 0) + return null; + + var lastObj = result [result.Count - 1]; + if (!(lastObj is Divert)) { + TrimEndWhitespace (result, terminateWithSpace:false); + } + + // Add newline since it's the end of the line + // (so long as it's a line with only tags) + if( !onlyTags ) + result.Add (new Text ("\n")); + + Expect(EndOfLine, "end of line", recoveryRule: SkipToNextLine); + + return result; + } + + protected List MixedTextAndLogic() + { + // Check for disallowed "~" within this context + var disallowedTilda = ParseObject(Spaced(String("~"))); + if (disallowedTilda != null) + Error ("You shouldn't use a '~' here - tildas are for logic that's on its own line. To do inline logic, use { curly braces } instead"); + + // Either, or both interleaved + var results = Interleave(Optional (ContentText), Optional (InlineLogicOrGlue)); + + // Terminating divert? + // (When parsing content for the text of a choice, diverts aren't allowed. + // The divert on the end of the body of a choice is handled specially.) + if (!_parsingChoice) { + + var diverts = Parse (MultiDivert); + if (diverts != null) { + + // May not have had any results at all if there's *only* a divert! + if (results == null) + results = new List (); + + TrimEndWhitespace (results, terminateWithSpace:true); + + results.AddRange (diverts); + } + + } + + if (results == null) + return null; + + return results; + } + + protected Parsed.Text ContentText() + { + return ContentTextAllowingEcapeChar (); + } + + protected Parsed.Text ContentTextAllowingEcapeChar() + { + StringBuilder sb = null; + + do { + var str = Parse(ContentTextNoEscape); + bool gotEscapeChar = ParseString(@"\") != null; + + if( gotEscapeChar || str != null ) { + if( sb == null ) { + sb = new StringBuilder(); + } + + if( str != null ) { + sb.Append(str); + } + + if( gotEscapeChar ) { + char c = ParseSingleCharacter(); + sb.Append(c); + } + + } else { + break; + } + + } while(true); + + if (sb != null ) { + return new Parsed.Text (sb.ToString ()); + + } else { + return null; + } + } + + // Content text is an unusual parse rule compared with most since it's + // less about saying "this is is the small selection of stuff that we parse" + // and more "we parse ANYTHING except this small selection of stuff". + protected string ContentTextNoEscape() + { + // Eat through text, pausing at the following characters, and + // attempt to parse the nonTextRule. + // "-": possible start of divert or start of gather + // "<": possible start of glue + if (_nonTextPauseCharacters == null) { + _nonTextPauseCharacters = new CharacterSet ("-<"); + } + + // If we hit any of these characters, we stop *immediately* without bothering to even check the nonTextRule + // "{" for start of logic + // "|" for mid logic branch + if (_nonTextEndCharacters == null) { + _nonTextEndCharacters = new CharacterSet ("{}|\n\r\\#"); + _notTextEndCharactersChoice = new CharacterSet (_nonTextEndCharacters); + _notTextEndCharactersChoice.AddCharacters ("[]"); + _notTextEndCharactersString = new CharacterSet (_nonTextEndCharacters); + _notTextEndCharactersString.AddCharacters ("\""); + } + + // When the ParseUntil pauses, check these rules in case they evaluate successfully + ParseRule nonTextRule = () => OneOf (ParseDivertArrow, ParseThreadArrow, EndOfLine, Glue); + + CharacterSet endChars = null; + if (parsingStringExpression) { + endChars = _notTextEndCharactersString; + } + else if (_parsingChoice) { + endChars = _notTextEndCharactersChoice; + } + else { + endChars = _nonTextEndCharacters; + } + + string pureTextContent = ParseUntil (nonTextRule, _nonTextPauseCharacters, endChars); + if (pureTextContent != null ) { + return pureTextContent; + + } else { + return null; + } + + } + + CharacterSet _nonTextPauseCharacters; + CharacterSet _nonTextEndCharacters; + CharacterSet _notTextEndCharactersChoice; + CharacterSet _notTextEndCharactersString; + + + + } +} + diff --git a/Assets/Ink/compiler/InkParser/InkParser_Content.cs.meta b/Assets/Ink/compiler/InkParser/InkParser_Content.cs.meta new file mode 100644 index 000000000..2c401a8e4 --- /dev/null +++ b/Assets/Ink/compiler/InkParser/InkParser_Content.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 8c355c8ca4318ff4fa96da22c908f550 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Ink/compiler/InkParser/InkParser_Divert.cs b/Assets/Ink/compiler/InkParser/InkParser_Divert.cs new file mode 100644 index 000000000..079d85a78 --- /dev/null +++ b/Assets/Ink/compiler/InkParser/InkParser_Divert.cs @@ -0,0 +1,206 @@ +using System.Collections.Generic; +using Ink.Parsed; + + +namespace Ink +{ + public partial class InkParser + { + protected List MultiDivert() + { + Whitespace (); + + List diverts = null; + + // Try single thread first + var threadDivert = Parse(StartThread); + if (threadDivert) { + diverts = new List (); + diverts.Add (threadDivert); + return diverts; + } + + // Normal diverts and tunnels + var arrowsAndDiverts = Interleave ( + ParseDivertArrowOrTunnelOnwards, + DivertIdentifierWithArguments); + + if (arrowsAndDiverts == null) + return null; + + diverts = new List (); + + // Possible patterns: + // -> -- explicit gather + // ->-> -- tunnel onwards + // -> div -- normal divert + // ->-> div -- tunnel onwards, followed by override divert + // -> div -> -- normal tunnel + // -> div ->-> -- tunnel then tunnel continue + // -> div -> div -- tunnel then divert + // -> div -> div -> -- tunnel then tunnel + // -> div -> div ->-> + // -> div -> div ->-> div (etc) + + // Look at the arrows and diverts + for (int i = 0; i < arrowsAndDiverts.Count; ++i) { + bool isArrow = (i % 2) == 0; + + // Arrow string + if (isArrow) { + + // Tunnel onwards + if ((string)arrowsAndDiverts [i] == "->->") { + + bool tunnelOnwardsPlacementValid = (i == 0 || i == arrowsAndDiverts.Count - 1 || i == arrowsAndDiverts.Count - 2); + if (!tunnelOnwardsPlacementValid) + Error ("Tunnel onwards '->->' must only come at the begining or the start of a divert"); + + var tunnelOnwards = new TunnelOnwards (); + if (i < arrowsAndDiverts.Count - 1) { + var tunnelOnwardDivert = arrowsAndDiverts [i+1] as Parsed.Divert; + tunnelOnwards.divertAfter = tunnelOnwardDivert; + } + + diverts.Add (tunnelOnwards); + + // Not allowed to do anything after a tunnel onwards. + // If we had anything left it would be caused in the above Error for + // the positioning of a ->-> + break; + } + } + + // Divert + else { + + var divert = arrowsAndDiverts [i] as Divert; + + // More to come? (further arrows) Must be tunnelling. + if (i < arrowsAndDiverts.Count - 1) { + divert.isTunnel = true; + } + + diverts.Add (divert); + } + } + + // Single -> (used for default choices) + if (diverts.Count == 0 && arrowsAndDiverts.Count == 1) { + var gatherDivert = new Divert ((Parsed.Object)null); + gatherDivert.isEmpty = true; + diverts.Add (gatherDivert); + + if (!_parsingChoice) + Error ("Empty diverts (->) are only valid on choices"); + } + + return diverts; + } + + protected Divert StartThread() + { + Whitespace (); + + if (ParseThreadArrow() == null) + return null; + + Whitespace (); + + var divert = Expect(DivertIdentifierWithArguments, "target for new thread", () => new Divert(null)) as Divert; + divert.isThread = true; + + return divert; + } + + protected Divert DivertIdentifierWithArguments() + { + Whitespace (); + + List targetComponents = Parse (DotSeparatedDivertPathComponents); + if (targetComponents == null) + return null; + + Whitespace (); + + var optionalArguments = Parse(ExpressionFunctionCallArguments); + + Whitespace (); + + var targetPath = new Path (targetComponents); + return new Divert (targetPath, optionalArguments); + } + + protected Divert SingleDivert() + { + var diverts = Parse (MultiDivert); + if (diverts == null) + return null; + + // Ideally we'd report errors if we get the + // wrong kind of divert, but unfortunately we + // have to hack around the fact that sequences use + // a very similar syntax. + // i.e. if you have a multi-divert at the start + // of a sequence, it initially tries to parse it + // as a divert target (part of an expression of + // a conditional) and gives errors. So instead + // we just have to blindly reject it as a single + // divert, and give a slightly less nice error + // when you DO use a multi divert as a divert taret. + + if (diverts.Count != 1) { + return null; + } + + var singleDivert = diverts [0]; + if (singleDivert is TunnelOnwards) { + return null; + } + + var divert = diverts [0] as Divert; + if (divert.isTunnel) { + return null; + } + + return divert; + } + + List DotSeparatedDivertPathComponents() + { + return Interleave (Spaced (IdentifierWithMetadata), Exclude (String ("."))); + } + + protected string ParseDivertArrowOrTunnelOnwards() + { + int numArrows = 0; + while (ParseString ("->") != null) + numArrows++; + + if (numArrows == 0) + return null; + + else if (numArrows == 1) + return "->"; + + else if (numArrows == 2) + return "->->"; + + else { + Error ("Unexpected number of arrows in divert. Should only have '->' or '->->'"); + return "->->"; + } + } + + protected string ParseDivertArrow() + { + return ParseString ("->"); + } + + protected string ParseThreadArrow() + { + return ParseString ("<-"); + } + } +} + diff --git a/Assets/Ink/compiler/InkParser/InkParser_Divert.cs.meta b/Assets/Ink/compiler/InkParser/InkParser_Divert.cs.meta new file mode 100644 index 000000000..6b9b733a7 --- /dev/null +++ b/Assets/Ink/compiler/InkParser/InkParser_Divert.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f10858a666e02754ca88946ef07d2cff +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Ink/compiler/InkParser/InkParser_Expressions.cs b/Assets/Ink/compiler/InkParser/InkParser_Expressions.cs new file mode 100644 index 000000000..106f8953e --- /dev/null +++ b/Assets/Ink/compiler/InkParser/InkParser_Expressions.cs @@ -0,0 +1,512 @@ +using System; +using Ink.Parsed; +using System.Collections.Generic; + +namespace Ink +{ + public partial class InkParser + { + protected class InfixOperator + { + public string type; + public int precedence; + public bool requireWhitespace; + + public InfixOperator(string type, int precedence, bool requireWhitespace) { + this.type = type; + this.precedence = precedence; + this.requireWhitespace = requireWhitespace; + } + + public override string ToString () + { + return type; + } + } + + protected Parsed.Object TempDeclarationOrAssignment() + { + Whitespace (); + + bool isNewDeclaration = ParseTempKeyword(); + + Whitespace (); + + Identifier varIdentifier = null; + if (isNewDeclaration) { + varIdentifier = (Identifier)Expect (IdentifierWithMetadata, "variable name"); + } else { + varIdentifier = Parse(IdentifierWithMetadata); + } + + if (varIdentifier == null) { + return null; + } + + Whitespace(); + + // += -= + bool isIncrement = ParseString ("+") != null; + bool isDecrement = ParseString ("-") != null; + if (isIncrement && isDecrement) Error ("Unexpected sequence '+-'"); + + if (ParseString ("=") == null) { + // Definitely in an assignment expression? + if (isNewDeclaration) Error ("Expected '='"); + return null; + } + + Expression assignedExpression = (Expression)Expect (Expression, "value expression to be assigned"); + + if (isIncrement || isDecrement) { + var result = new IncDecExpression (varIdentifier, assignedExpression, isIncrement); + return result; + } else { + var result = new VariableAssignment (varIdentifier, assignedExpression); + result.isNewTemporaryDeclaration = isNewDeclaration; + return result; + } + } + + protected void DisallowIncrement (Parsed.Object expr) + { + if (expr is Parsed.IncDecExpression) + Error ("Can't use increment/decrement here. It can only be used on a ~ line"); + } + + protected bool ParseTempKeyword() + { + var ruleId = BeginRule (); + + if (Parse (Identifier) == "temp") { + SucceedRule (ruleId); + return true; + } else { + FailRule (ruleId); + return false; + } + } + + protected Parsed.Return ReturnStatement() + { + Whitespace (); + + var returnOrDone = Parse(Identifier); + if (returnOrDone != "return") { + return null; + } + + Whitespace (); + + var expr = Parse(Expression); + + var returnObj = new Return (expr); + return returnObj; + } + + protected Expression Expression() { + return Expression(minimumPrecedence:0); + } + + // Pratt Parser + // aka "Top down operator precedence parser" + // http://journal.stuffwithstuff.com/2011/03/19/pratt-parsers-expression-parsing-made-easy/ + // Algorithm overview: + // The two types of precedence are handled in two different ways: + // ((((a . b) . c) . d) . e) #1 + // (a . (b . (c . (d . e)))) #2 + // Where #1 is automatically handled by successive loops within the main 'while' in this function, + // so long as continuing operators have lower (or equal) precedence (e.g. imagine some series of "*"s then "+" above. + // ...and #2 is handled by recursion of the right hand term in the binary expression parser. + // (see link for advice on how to extend for postfix and mixfix operators) + protected Expression Expression(int minimumPrecedence) + { + Whitespace (); + + // First parse a unary expression e.g. "-a" or parethensised "(1 + 2)" + var expr = ExpressionUnary (); + if (expr == null) { + return null; + } + + Whitespace (); + + // Attempt to parse (possibly multiple) continuing infix expressions (e.g. 1 + 2 + 3) + while(true) { + var ruleId = BeginRule (); + + // Operator + var infixOp = ParseInfixOperator (); + if (infixOp != null && infixOp.precedence > minimumPrecedence) { + + // Expect right hand side of operator + var expectationMessage = string.Format("right side of '{0}' expression", infixOp.type); + var multiaryExpr = Expect (() => ExpressionInfixRight (left: expr, op: infixOp), expectationMessage); + if (multiaryExpr == null) { + + // Fail for operator and right-hand side of multiary expression + FailRule (ruleId); + + return null; + } + + expr = SucceedRule(ruleId, multiaryExpr) as Parsed.Expression; + + continue; + } + + FailRule (ruleId); + break; + } + + Whitespace (); + + return expr; + } + + protected Expression ExpressionUnary() + { + // Divert target is a special case - it can't have any other operators + // applied to it, and we also want to check for it first so that we don't + // confuse "->" for subtraction. + var divertTarget = Parse (ExpressionDivertTarget); + if (divertTarget != null) { + return divertTarget; + } + + var prefixOp = (string) OneOf (String ("-"), String ("!")); + + // Don't parse like the string rules above, in case its actually + // a variable that simply starts with "not", e.g. "notable". + // This rule uses the Identifier rule, which will scan as much text + // as possible before returning. + if (prefixOp == null) { + prefixOp = Parse(ExpressionNot); + } + + Whitespace (); + + // - Since we allow numbers at the start of variable names, variable names are checked before literals + // - Function calls before variable names in case we see parentheses + var expr = OneOf (ExpressionList, ExpressionParen, ExpressionFunctionCall, ExpressionVariableName, ExpressionLiteral) as Expression; + + // Only recurse immediately if we have one of the (usually optional) unary ops + if (expr == null && prefixOp != null) { + expr = ExpressionUnary (); + } + + if (expr == null) + return null; + + if (prefixOp != null) { + expr = UnaryExpression.WithInner(expr, prefixOp); + } + + Whitespace (); + + var postfixOp = (string) OneOf (String ("++"), String ("--")); + if (postfixOp != null) { + bool isInc = postfixOp == "++"; + + if (!(expr is VariableReference)) { + Error ("can only increment and decrement variables, but saw '" + expr + "'"); + + // Drop down and succeed without the increment after reporting error + } else { + // TODO: Language Server - (Identifier combined into one vs. list of Identifiers) + var varRef = (VariableReference)expr; + expr = new IncDecExpression(varRef.identifier, isInc); + } + + } + + return expr; + } + + protected string ExpressionNot() + { + var id = Identifier (); + if (id == "not") { + return id; + } + + return null; + } + + protected Expression ExpressionLiteral() + { + return (Expression) OneOf (ExpressionFloat, ExpressionInt, ExpressionBool, ExpressionString); + } + + protected Expression ExpressionDivertTarget() + { + Whitespace (); + + var divert = Parse(SingleDivert); + if (divert == null) + return null; + + if (divert.isThread) + return null; + + Whitespace (); + + return new DivertTarget (divert); + } + + protected Number ExpressionInt() + { + int? intOrNull = ParseInt (); + if (intOrNull == null) { + return null; + } else { + return new Number (intOrNull.Value); + } + } + + protected Number ExpressionFloat() + { + float? floatOrNull = ParseFloat (); + if (floatOrNull == null) { + return null; + } else { + return new Number (floatOrNull.Value); + } + } + + protected StringExpression ExpressionString() + { + var openQuote = ParseString ("\""); + if (openQuote == null) + return null; + + // Set custom parser state flag so that within the text parser, + // it knows to treat the quote character (") as an end character + parsingStringExpression = true; + + List textAndLogic = Parse (MixedTextAndLogic); + + Expect (String ("\""), "close quote for string expression"); + + parsingStringExpression = false; + + if (textAndLogic == null) { + textAndLogic = new List (); + textAndLogic.Add (new Parsed.Text ("")); + } + + else if (textAndLogic.Exists (c => c is Divert)) + Error ("String expressions cannot contain diverts (->)"); + + return new StringExpression (textAndLogic); + } + + protected Number ExpressionBool() + { + var id = Parse(Identifier); + if (id == "true") { + return new Number (true); + } else if (id == "false") { + return new Number (false); + } + + return null; + } + + protected Expression ExpressionFunctionCall() + { + var iden = Parse(IdentifierWithMetadata); + if (iden == null) + return null; + + Whitespace (); + + var arguments = Parse(ExpressionFunctionCallArguments); + if (arguments == null) { + return null; + } + + return new FunctionCall(iden, arguments); + } + + protected List ExpressionFunctionCallArguments() + { + if (ParseString ("(") == null) + return null; + + // "Exclude" requires the rule to succeed, but causes actual comma string to be excluded from the list of results + ParseRule commas = Exclude (String (",")); + var arguments = Interleave(Expression, commas); + if (arguments == null) { + arguments = new List (); + } + + Whitespace (); + + Expect (String (")"), "closing ')' for function call"); + + return arguments; + } + + protected Expression ExpressionVariableName() + { + List path = Interleave (IdentifierWithMetadata, Exclude (Spaced (String (".")))); + + if (path == null || Story.IsReservedKeyword (path[0].name) ) + return null; + + return new VariableReference (path); + } + + protected Expression ExpressionParen() + { + if (ParseString ("(") == null) + return null; + + var innerExpr = Parse(Expression); + if (innerExpr == null) + return null; + + Whitespace (); + + Expect (String(")"), "closing parenthesis ')' for expression"); + + return innerExpr; + } + + protected Expression ExpressionInfixRight(Parsed.Expression left, InfixOperator op) + { + Whitespace (); + + var right = Parse(() => Expression (op.precedence)); + if (right) { + + // We assume that the character we use for the operator's type is the same + // as that used internally by e.g. Runtime.Expression.Add, Runtime.Expression.Multiply etc + var expr = new BinaryExpression (left, right, op.type); + return expr; + } + + return null; + + } + + private InfixOperator ParseInfixOperator() + { + foreach (var op in _binaryOperators) { + + int ruleId = BeginRule (); + + if (ParseString (op.type) != null) { + + if (op.requireWhitespace) { + if (Whitespace () == null) { + FailRule (ruleId); + continue; + } + } + + return (InfixOperator) SucceedRule(ruleId, op); + } + + FailRule (ruleId); + } + + return null; + } + + protected Parsed.List ExpressionList () + { + Whitespace (); + + if (ParseString ("(") == null) + return null; + + Whitespace (); + + // When list has: + // - 0 elements (null list) - this is okay, it's an empty list: "()" + // - 1 element - it could be confused for a single non-list related + // identifier expression in brackets, but this is a useless thing + // to do, so we reserve that syntax for a list with one item. + // - 2 or more elements - normal! + List memberNames = SeparatedList (ListMember, Spaced (String (","))); + + Whitespace (); + + // May have failed to parse the inner list - the parentheses may + // be for a normal expression + if (ParseString (")") == null) + return null; + + return new List (memberNames); + } + + protected Identifier ListMember () + { + Whitespace (); + + Identifier identifier = Parse (IdentifierWithMetadata); + if (identifier == null) + return null; + + var dot = ParseString ("."); + if (dot != null) { + Identifier identifier2 = Expect (IdentifierWithMetadata, "element name within the set " + identifier) as Identifier; + identifier.name = identifier.name + "." + identifier2?.name; + } + + Whitespace (); + + return identifier; + } + + void RegisterExpressionOperators() + { + _maxBinaryOpLength = 0; + _binaryOperators = new List (); + + // These will be tried in order, so we need "<=" before "<" + // for correctness + + RegisterBinaryOperator ("&&", precedence:1); + RegisterBinaryOperator ("||", precedence:1); + RegisterBinaryOperator ("and", precedence:1, requireWhitespace: true); + RegisterBinaryOperator ("or", precedence:1, requireWhitespace: true); + + RegisterBinaryOperator ("==", precedence:2); + RegisterBinaryOperator (">=", precedence:2); + RegisterBinaryOperator ("<=", precedence:2); + RegisterBinaryOperator ("<", precedence:2); + RegisterBinaryOperator (">", precedence:2); + RegisterBinaryOperator ("!=", precedence:2); + + // (apples, oranges) + cabbages has (oranges, cabbages) == true + RegisterBinaryOperator ("?", precedence: 3); + RegisterBinaryOperator ("has", precedence: 3, requireWhitespace:true); + RegisterBinaryOperator ("!?", precedence: 3); + RegisterBinaryOperator ("hasnt", precedence: 3, requireWhitespace: true); + RegisterBinaryOperator ("^", precedence: 3); + + RegisterBinaryOperator ("+", precedence:4); + RegisterBinaryOperator ("-", precedence:5); + RegisterBinaryOperator ("*", precedence:6); + RegisterBinaryOperator ("/", precedence:7); + + RegisterBinaryOperator ("%", precedence:8); + RegisterBinaryOperator ("mod", precedence:8, requireWhitespace:true); + + + } + + void RegisterBinaryOperator(string op, int precedence, bool requireWhitespace = false) + { + _binaryOperators.Add(new InfixOperator (op, precedence, requireWhitespace)); + _maxBinaryOpLength = Math.Max (_maxBinaryOpLength, op.Length); + } + + List _binaryOperators; + int _maxBinaryOpLength; + } +} + diff --git a/Assets/Ink/compiler/InkParser/InkParser_Expressions.cs.meta b/Assets/Ink/compiler/InkParser/InkParser_Expressions.cs.meta new file mode 100644 index 000000000..9c89b659b --- /dev/null +++ b/Assets/Ink/compiler/InkParser/InkParser_Expressions.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 57a5e7edd2434bf45ae5f950d471bf1f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Ink/compiler/InkParser/InkParser_Include.cs b/Assets/Ink/compiler/InkParser/InkParser_Include.cs new file mode 100644 index 000000000..9490c2fca --- /dev/null +++ b/Assets/Ink/compiler/InkParser/InkParser_Include.cs @@ -0,0 +1,76 @@ +using Ink.Parsed; +using System.Collections.Generic; +using System.IO; + + +namespace Ink +{ + public partial class InkParser + { + protected object IncludeStatement() + { + Whitespace (); + + if (ParseString ("INCLUDE") == null) + return null; + + Whitespace (); + + var filename = (string) Expect(() => ParseUntilCharactersFromString ("\n\r"), "filename for include statement"); + filename = filename.TrimEnd (' ', '\t'); + + // Working directory should already have been set up relative to the root ink file. + var fullFilename = _rootParser._fileHandler.ResolveInkFilename (filename); + + if (FilenameIsAlreadyOpen (fullFilename)) { + Error ("Recursive INCLUDE detected: '" + fullFilename + "' is already open."); + ParseUntilCharactersFromString("\r\n"); + return new IncludedFile(null); + } else { + AddOpenFilename (fullFilename); + } + + Parsed.Story includedStory = null; + string includedString = null; + try { + includedString = _rootParser._fileHandler.LoadInkFileContents(fullFilename); + } + catch { + Error ("Failed to load: '"+filename+"'"); + } + + + if (includedString != null ) { + InkParser parser = new InkParser(includedString, filename, _externalErrorHandler, _rootParser); + includedStory = parser.Parse(); + } + + RemoveOpenFilename (fullFilename); + + // Return valid IncludedFile object even if there were errors when parsing. + // We don't want to attempt to re-parse the include line as something else, + // and we want to include the bits that *are* valid, so we don't generate + // more errors than necessary. + return new IncludedFile (includedStory); + } + + bool FilenameIsAlreadyOpen(string fullFilename) + { + return _rootParser._openFilenames.Contains (fullFilename); + } + + void AddOpenFilename(string fullFilename) + { + _rootParser._openFilenames.Add (fullFilename); + } + + void RemoveOpenFilename(string fullFilename) + { + _rootParser._openFilenames.Remove (fullFilename); + } + + InkParser _rootParser; + HashSet _openFilenames; + } +} + diff --git a/Assets/Ink/compiler/InkParser/InkParser_Include.cs.meta b/Assets/Ink/compiler/InkParser/InkParser_Include.cs.meta new file mode 100644 index 000000000..8a922cec7 --- /dev/null +++ b/Assets/Ink/compiler/InkParser/InkParser_Include.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 0dfaba88b95d3704da16224671e24fdf +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Ink/compiler/InkParser/InkParser_Knot.cs b/Assets/Ink/compiler/InkParser/InkParser_Knot.cs new file mode 100644 index 000000000..d1242437a --- /dev/null +++ b/Assets/Ink/compiler/InkParser/InkParser_Knot.cs @@ -0,0 +1,239 @@ +using System.Collections.Generic; +using Ink.Parsed; +using System.Linq; + +namespace Ink +{ + public partial class InkParser + { + protected class NameWithMetadata { + public string name; + public Runtime.DebugMetadata metadata; + } + + protected class FlowDecl + { + public Identifier name; + public List arguments; + public bool isFunction; + } + + protected Knot KnotDefinition() + { + var knotDecl = Parse(KnotDeclaration); + if (knotDecl == null) + return null; + + Expect(EndOfLine, "end of line after knot name definition", recoveryRule: SkipToNextLine); + + ParseRule innerKnotStatements = () => StatementsAtLevel (StatementLevel.Knot); + + var content = Expect (innerKnotStatements, "at least one line within the knot", recoveryRule: KnotStitchNoContentRecoveryRule) as List; + + return new Knot (knotDecl.name, content, knotDecl.arguments, knotDecl.isFunction); + } + + protected FlowDecl KnotDeclaration() + { + Whitespace (); + + if (KnotTitleEquals () == null) + return null; + + Whitespace (); + + + Identifier identifier = Parse(IdentifierWithMetadata); + Identifier knotName; + + bool isFunc = identifier?.name == "function"; + if (isFunc) { + Expect (Whitespace, "whitespace after the 'function' keyword"); + knotName = Parse(IdentifierWithMetadata); + } else { + knotName = identifier; + } + + if (knotName == null) { + Error ("Expected the name of the " + (isFunc ? "function" : "knot")); + knotName = new Identifier { name = "" }; // prevent later null ref + } + + Whitespace (); + + List parameterNames = Parse (BracketedKnotDeclArguments); + + Whitespace (); + + // Optional equals after name + Parse(KnotTitleEquals); + + return new FlowDecl () { name = knotName, arguments = parameterNames, isFunction = isFunc }; + } + + protected string KnotTitleEquals() + { + // 2+ "=" starts a knot + var multiEquals = ParseCharactersFromString ("="); + if (multiEquals == null || multiEquals.Length <= 1) { + return null; + } else { + return multiEquals; + } + } + + protected object StitchDefinition() + { + var decl = Parse(StitchDeclaration); + if (decl == null) + return null; + + Expect(EndOfLine, "end of line after stitch name", recoveryRule: SkipToNextLine); + + ParseRule innerStitchStatements = () => StatementsAtLevel (StatementLevel.Stitch); + + var content = Expect(innerStitchStatements, "at least one line within the stitch", recoveryRule: KnotStitchNoContentRecoveryRule) as List; + + return new Stitch (decl.name, content, decl.arguments, decl.isFunction ); + } + + protected FlowDecl StitchDeclaration() + { + Whitespace (); + + // Single "=" to define a stitch + if (ParseString ("=") == null) + return null; + + // If there's more than one "=", that's actually a knot definition (or divert), so this rule should fail + if (ParseString ("=") != null) + return null; + + Whitespace (); + + // Stitches aren't allowed to be functions, but we parse it anyway and report the error later + bool isFunc = ParseString ("function") != null; + if ( isFunc ) { + Whitespace (); + } + + Identifier stitchName = Parse(IdentifierWithMetadata); + if (stitchName == null) + return null; + + Whitespace (); + + List flowArgs = Parse(BracketedKnotDeclArguments); + + Whitespace (); + + return new FlowDecl () { name = stitchName, arguments = flowArgs, isFunction = isFunc }; + } + + + protected object KnotStitchNoContentRecoveryRule() + { + // Jump ahead to the next knot or the end of the file + ParseUntil (KnotDeclaration, new CharacterSet ("="), null); + + var recoveredFlowContent = new List(); + recoveredFlowContent.Add( new Parsed.Text("" ) ); + return recoveredFlowContent; + } + + protected List BracketedKnotDeclArguments() + { + if (ParseString ("(") == null) + return null; + + var flowArguments = Interleave(Spaced(FlowDeclArgument), Exclude (String(","))); + + Expect (String (")"), "closing ')' for parameter list"); + + // If no parameters, create an empty list so that this method is type safe and + // doesn't attempt to return the ParseSuccess object + if (flowArguments == null) { + flowArguments = new List (); + } + + return flowArguments; + } + + protected FlowBase.Argument FlowDeclArgument() + { + // Possible forms: + // name + // -> name (variable divert target argument + // ref name + // ref -> name (variable divert target by reference) + var firstIden = Parse(IdentifierWithMetadata); + Whitespace (); + var divertArrow = ParseDivertArrow (); + Whitespace (); + var secondIden = Parse(IdentifierWithMetadata); + + if (firstIden == null && secondIden == null) + return null; + + + var flowArg = new FlowBase.Argument (); + if (divertArrow != null) { + flowArg.isDivertTarget = true; + } + + // Passing by reference + if (firstIden != null && firstIden.name == "ref") { + + if (secondIden == null) { + Error ("Expected an parameter name after 'ref'"); + } + + flowArg.identifier = secondIden; + flowArg.isByReference = true; + } + + // Simple argument name + else { + + if (flowArg.isDivertTarget) { + flowArg.identifier = secondIden; + } else { + flowArg.identifier = firstIden; + } + + if (flowArg.identifier == null) { + Error ("Expected an parameter name"); + } + + flowArg.isByReference = false; + } + + return flowArg; + } + + protected ExternalDeclaration ExternalDeclaration() + { + Whitespace (); + + Identifier external = Parse(IdentifierWithMetadata); + if (external == null || external.name != "EXTERNAL") + return null; + + Whitespace (); + + var funcIdentifier = Expect(IdentifierWithMetadata, "name of external function") as Identifier ?? new Identifier(); + + Whitespace (); + + var parameterNames = Expect (BracketedKnotDeclArguments, "declaration of arguments for EXTERNAL, even if empty, i.e. 'EXTERNAL "+funcIdentifier+"()'") as List; + if (parameterNames == null) + parameterNames = new List (); + + var argNames = parameterNames.Select (arg => arg.identifier?.name).ToList(); + + return new ExternalDeclaration (funcIdentifier, argNames); + } + + } +} + diff --git a/Assets/Ink/compiler/InkParser/InkParser_Knot.cs.meta b/Assets/Ink/compiler/InkParser/InkParser_Knot.cs.meta new file mode 100644 index 000000000..00d0856bf --- /dev/null +++ b/Assets/Ink/compiler/InkParser/InkParser_Knot.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f1cd2f87ba9fb344abd4140557a6b551 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Ink/compiler/InkParser/InkParser_Logic.cs b/Assets/Ink/compiler/InkParser/InkParser_Logic.cs new file mode 100644 index 000000000..44e8e0334 --- /dev/null +++ b/Assets/Ink/compiler/InkParser/InkParser_Logic.cs @@ -0,0 +1,421 @@ +using System.Collections.Generic; +using System.Linq; +using Ink.Parsed; + +namespace Ink +{ + public partial class InkParser + { + + protected Parsed.Object LogicLine() + { + Whitespace (); + + if (ParseString ("~") == null) { + return null; + } + + Whitespace (); + + // Some example lines we need to be able to distinguish between: + // ~ temp x = 5 -- var decl + assign + // ~ temp x -- var decl + // ~ x = 5 -- var assign + // ~ x -- expr (not var decl or assign) + // ~ f() -- expr + // We don't treat variable decl/assign as an expression since we don't want an assignment + // to have a return value, or to be used in compound expressions. + ParseRule afterTilda = () => OneOf (ReturnStatement, TempDeclarationOrAssignment, Expression); + + var result = Expect(afterTilda, "expression after '~'", recoveryRule: SkipToNextLine) as Parsed.Object; + + // Prevent further errors, already reported expected expression and have skipped to next line. + if (result == null) return new ContentList(); + + // Parse all expressions, but tell the writer off if they did something useless like: + // ~ 5 + 4 + // And even: + // ~ false && myFunction() + // ...since it's bad practice, and won't do what they expect if + // they're expecting C's lazy evaluation. + if (result is Expression && !(result is FunctionCall || result is IncDecExpression) ) { + + // TODO: Remove this specific error message when it has expired in usefulness + var varRef = result as VariableReference; + if (varRef && varRef.name == "include") { + Error ("'~ include' is no longer the correct syntax - please use 'INCLUDE your_filename.ink', without the tilda, and in block capitals."); + } + + else { + Error ("Logic following a '~' can't be that type of expression. It can only be something like:\n\t~ return\n\t~ var x = blah\n\t~ x++\n\t~ myFunction()"); + } + } + + // Line is pure function call? e.g. + // ~ f() + // Add extra pop to make sure we tidy up after ourselves. + // We no longer need anything on the evaluation stack. + var funCall = result as FunctionCall; + if (funCall) funCall.shouldPopReturnedValue = true; + + // If the expression contains a function call, then it could produce a text side effect, + // in which case it needs a newline on the end. e.g. + // ~ printMyName() + // ~ x = 1 + returnAValueAndAlsoPrintStuff() + // If no text gets printed, then the extra newline will have to be culled later. + // Multiple newlines on the output will be removed, so there will be no "leak" for + // long running calculations. It's disappointingly messy though :-/ + if (result.Find() != null ) { + result = new ContentList (result, new Parsed.Text ("\n")); + } + + Expect(EndOfLine, "end of line", recoveryRule: SkipToNextLine); + + return result as Parsed.Object; + } + + protected Parsed.Object VariableDeclaration() + { + Whitespace (); + + var id = Parse (Identifier); + if (id != "VAR") + return null; + + Whitespace (); + + var varName = Expect (IdentifierWithMetadata, "variable name") as Identifier; + + Whitespace (); + + Expect (String ("="), "the '=' for an assignment of a value, e.g. '= 5' (initial values are mandatory)"); + + Whitespace (); + + var definition = Expect (Expression, "initial value for "); + + var expr = definition as Parsed.Expression; + + if (expr) { + if (!(expr is Number || expr is StringExpression || expr is DivertTarget || expr is VariableReference || expr is List)) { + Error ("initial value for a variable must be a number, constant, list or divert target"); + } + + if (Parse (ListElementDefinitionSeparator) != null) + Error ("Unexpected ','. If you're trying to declare a new list, use the LIST keyword, not VAR"); + + // Ensure string expressions are simple + else if (expr is StringExpression) { + var strExpr = expr as StringExpression; + if (!strExpr.isSingleString) + Error ("Constant strings cannot contain any logic."); + } + + var result = new VariableAssignment (varName, expr); + result.isGlobalDeclaration = true; + return result; + } + + return null; + } + + protected Parsed.VariableAssignment ListDeclaration () + { + Whitespace (); + + var id = Parse (Identifier); + if (id != "LIST") + return null; + + Whitespace (); + + var varName = Expect (IdentifierWithMetadata, "list name") as Identifier; + + Whitespace (); + + Expect (String ("="), "the '=' for an assignment of the list definition"); + + Whitespace (); + + var definition = Expect (ListDefinition, "list item names") as ListDefinition; + + if (definition) { + + definition.identifier = varName; + + return new VariableAssignment (varName, definition); + } + + return null; + } + + protected Parsed.ListDefinition ListDefinition () + { + AnyWhitespace (); + + var allElements = SeparatedList (ListElementDefinition, ListElementDefinitionSeparator); + if (allElements == null) + return null; + + return new ListDefinition (allElements); + } + + protected string ListElementDefinitionSeparator () + { + AnyWhitespace (); + + if (ParseString (",") == null) return null; + + AnyWhitespace (); + + return ","; + } + + protected Parsed.ListElementDefinition ListElementDefinition () + { + var inInitialList = ParseString ("(") != null; + var needsToCloseParen = inInitialList; + + Whitespace (); + + var name = Parse (IdentifierWithMetadata); + if (name == null) + return null; + + Whitespace (); + + if (inInitialList) { + if (ParseString (")") != null) { + needsToCloseParen = false; + Whitespace (); + } + } + + int? elementValue = null; + if (ParseString ("=") != null) { + + Whitespace (); + + var elementValueNum = Expect (ExpressionInt, "value to be assigned to list item") as Number; + if (elementValueNum != null) { + elementValue = (int) elementValueNum.value; + } + + if (needsToCloseParen) { + Whitespace (); + + if (ParseString (")") != null) + needsToCloseParen = false; + } + } + + if (needsToCloseParen) + Error("Expected closing ')'"); + + return new ListElementDefinition (name, inInitialList, elementValue); + } + + protected Parsed.Object ConstDeclaration() + { + Whitespace (); + + var id = Parse (Identifier); + if (id != "CONST") + return null; + + Whitespace (); + + var varName = Expect (IdentifierWithMetadata, "constant name") as Identifier; + + Whitespace (); + + Expect (String ("="), "the '=' for an assignment of a value, e.g. '= 5' (initial values are mandatory)"); + + Whitespace (); + + var expr = Expect (Expression, "initial value for ") as Parsed.Expression; + if (!(expr is Number || expr is DivertTarget || expr is StringExpression)) { + Error ("initial value for a constant must be a number or divert target"); + } + + // Ensure string expressions are simple + else if (expr is StringExpression) { + var strExpr = expr as StringExpression; + if (!strExpr.isSingleString) + Error ("Constant strings cannot contain any logic."); + } + + + var result = new ConstantDeclaration (varName, expr); + return result; + } + + protected Parsed.Object InlineLogicOrGlue() + { + return (Parsed.Object) OneOf (InlineLogic, Glue); + } + + protected Parsed.Glue Glue() + { + // Don't want to parse whitespace, since it might be important + // surrounding the glue. + var glueStr = ParseString("<>"); + if (glueStr != null) { + return new Parsed.Glue (new Runtime.Glue ()); + } else { + return null; + } + } + + protected Parsed.Object InlineLogic() + { + if ( ParseString ("{") == null) { + return null; + } + + Whitespace (); + + var logic = (Parsed.Object) Expect(InnerLogic, "some kind of logic, conditional or sequence within braces: { ... }"); + if (logic == null) + return null; + + DisallowIncrement (logic); + + ContentList contentList = logic as ContentList; + if (!contentList) { + contentList = new ContentList (logic); + } + + Whitespace (); + + Expect (String("}"), "closing brace '}' for inline logic"); + + return contentList; + } + + protected Parsed.Object InnerLogic() + { + Whitespace (); + + // Explicitly try the combinations of inner logic + // that could potentially have conflicts first. + + // Explicit sequence annotation? + SequenceType? explicitSeqType = (SequenceType?) ParseObject(SequenceTypeAnnotation); + if (explicitSeqType != null) { + var contentLists = (List) Expect(InnerSequenceObjects, "sequence elements (for cycle/stoping etc)"); + if (contentLists == null) + return null; + return new Sequence (contentLists, (SequenceType) explicitSeqType); + } + + // Conditional with expression? + var initialQueryExpression = Parse(ConditionExpression); + if (initialQueryExpression) { + var conditional = (Conditional) Expect(() => InnerConditionalContent (initialQueryExpression), "conditional content following query"); + return conditional; + } + + // Now try to evaluate each of the "full" rules in turn + ParseRule[] rules = { + + // Conditional still necessary, since you can have a multi-line conditional + // without an initial query expression: + // { + // - true: this is true + // - false: this is false + // } + InnerConditionalContent, + InnerSequence, + InnerExpression, + }; + + // Adapted from "OneOf" structuring rule except that in + // order for the rule to succeed, it has to maximally + // cover the entire string within the { }. Used to + // differentiate between: + // {myVar} -- Expression (try first) + // {my content is jolly} -- sequence with single element + foreach (ParseRule rule in rules) { + int ruleId = BeginRule (); + + Parsed.Object result = ParseObject(rule) as Parsed.Object; + if (result) { + + // Not yet at end? + if (Peek (Spaced (String ("}"))) == null) + FailRule (ruleId); + + // Full parse of content within braces + else + return (Parsed.Object) SucceedRule (ruleId, result); + + } else { + FailRule (ruleId); + } + } + + return null; + } + + protected Parsed.Object InnerExpression() + { + var expr = Parse(Expression); + if (expr) { + expr.outputWhenComplete = true; + } + return expr; + } + + protected Identifier IdentifierWithMetadata() + { + var id = Identifier(); + if( id == null ) return null; + + // InkParser.RuleDidSucceed will add DebugMetadata + return new Identifier { name = id, debugMetadata = null }; + } + + // Note: we allow identifiers that start with a number, + // but not if they *only* comprise numbers + protected string Identifier() + { + // Parse remaining characters (if any) + var name = ParseCharactersFromCharSet (identifierCharSet); + if (name == null) + return null; + + // Reject if it's just a number + bool isNumberCharsOnly = true; + foreach (var c in name) { + if ( !(c >= '0' && c <= '9') ) { + isNumberCharsOnly = false; + break; + } + } + if (isNumberCharsOnly) { + return null; + } + + return name; + } + + CharacterSet identifierCharSet { + get { + if (_identifierCharSet == null) { + (_identifierCharSet = new CharacterSet ()) + .AddRange ('A', 'Z') + .AddRange ('a', 'z') + .AddRange ('0', '9') + .Add ('_'); + // Enable non-ASCII characters for story identifiers. + ExtendIdentifierCharacterRanges (_identifierCharSet); + } + return _identifierCharSet; + } + } + + private CharacterSet _identifierCharSet; + } +} + diff --git a/Assets/Ink/compiler/InkParser/InkParser_Logic.cs.meta b/Assets/Ink/compiler/InkParser/InkParser_Logic.cs.meta new file mode 100644 index 000000000..75be609f4 --- /dev/null +++ b/Assets/Ink/compiler/InkParser/InkParser_Logic.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 9ae50990c607b634e96436c994039bc0 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Ink/compiler/InkParser/InkParser_Sequences.cs b/Assets/Ink/compiler/InkParser/InkParser_Sequences.cs new file mode 100644 index 000000000..b9156e861 --- /dev/null +++ b/Assets/Ink/compiler/InkParser/InkParser_Sequences.cs @@ -0,0 +1,231 @@ +using System.Collections.Generic; +using System.Linq; +using Ink.Parsed; + +namespace Ink +{ + public partial class InkParser + { + protected Sequence InnerSequence() + { + Whitespace (); + + // Default sequence type + SequenceType seqType = SequenceType.Stopping; + + // Optional explicit sequence type + SequenceType? parsedSeqType = (SequenceType?) Parse(SequenceTypeAnnotation); + if (parsedSeqType != null) + seqType = parsedSeqType.Value; + + var contentLists = Parse(InnerSequenceObjects); + if (contentLists == null || contentLists.Count <= 1) { + return null; + } + + return new Sequence (contentLists, seqType); + } + + protected object SequenceTypeAnnotation() + { + var annotation = (SequenceType?) Parse(SequenceTypeSymbolAnnotation); + + if(annotation == null) + annotation = (SequenceType?) Parse(SequenceTypeWordAnnotation); + + if (annotation == null) + return null; + + switch (annotation.Value) + { + case SequenceType.Once: + case SequenceType.Cycle: + case SequenceType.Stopping: + case SequenceType.Shuffle: + case (SequenceType.Shuffle | SequenceType.Stopping): + case (SequenceType.Shuffle | SequenceType.Once): + break; + + default: + Error("Sequence type combination not supported: " + annotation.Value); + return SequenceType.Stopping; + } + + return annotation; + } + + protected object SequenceTypeSymbolAnnotation() + { + if(_sequenceTypeSymbols == null ) + _sequenceTypeSymbols = new CharacterSet("!&~$ "); + + var sequenceType = (SequenceType)0; + var sequenceAnnotations = ParseCharactersFromCharSet(_sequenceTypeSymbols); + if (sequenceAnnotations == null) + return null; + + foreach(char symbolChar in sequenceAnnotations) { + switch(symbolChar) { + case '!': sequenceType |= SequenceType.Once; break; + case '&': sequenceType |= SequenceType.Cycle; break; + case '~': sequenceType |= SequenceType.Shuffle; break; + case '$': sequenceType |= SequenceType.Stopping; break; + } + } + + if (sequenceType == (SequenceType)0) + return null; + + return sequenceType; + } + + CharacterSet _sequenceTypeSymbols = new CharacterSet("!&~$"); + + protected object SequenceTypeWordAnnotation() + { + var sequenceTypes = Interleave(SequenceTypeSingleWord, Exclude(Whitespace)); + if (sequenceTypes == null || sequenceTypes.Count == 0) + return null; + + if (ParseString (":") == null) + return null; + + var combinedSequenceType = (SequenceType)0; + foreach(var seqType in sequenceTypes) { + combinedSequenceType |= seqType.Value; + } + + return combinedSequenceType; + } + + protected object SequenceTypeSingleWord() + { + SequenceType? seqType = null; + + var word = Parse(IdentifierWithMetadata); + if (word != null) + { + switch (word.name) + { + case "once": + seqType = SequenceType.Once; + break; + case "cycle": + seqType = SequenceType.Cycle; + break; + case "shuffle": + seqType = SequenceType.Shuffle; + break; + case "stopping": + seqType = SequenceType.Stopping; + break; + } + } + + if (seqType == null) + return null; + + return seqType; + } + + protected List InnerSequenceObjects() + { + var multiline = Parse(Newline) != null; + + List result = null; + if (multiline) { + result = Parse(InnerMultilineSequenceObjects); + } else { + result = Parse(InnerInlineSequenceObjects); + } + + return result; + } + + protected List InnerInlineSequenceObjects() + { + var interleavedContentAndPipes = Interleave (Optional (MixedTextAndLogic), String ("|"), flatten:false); + if (interleavedContentAndPipes == null) + return null; + + var result = new List (); + + // The content and pipes won't necessarily be perfectly interleaved in the sense that + // the content can be missing, but in that case it's intended that there's blank content. + bool justHadContent = false; + foreach (object contentOrPipe in interleavedContentAndPipes) { + + // Pipe/separator + if (contentOrPipe as string == "|") { + + // Expected content, saw pipe - need blank content now + if (!justHadContent) { + + // Add blank content + result.Add (new ContentList ()); + } + + justHadContent = false; + } + + // Real content + else { + + var content = contentOrPipe as List; + if (content == null) { + Error ("Expected content, but got " + contentOrPipe + " (this is an ink compiler bug!)"); + } else { + result.Add (new ContentList (content)); + } + + justHadContent = true; + } + } + + // Ended in a pipe? Need to insert final blank content + if (!justHadContent) + result.Add (new ContentList ()); + + return result; + } + + protected List InnerMultilineSequenceObjects() + { + MultilineWhitespace (); + + var contentLists = OneOrMore (SingleMultilineSequenceElement); + if (contentLists == null) + return null; + + return contentLists.Cast ().ToList(); + } + + protected ContentList SingleMultilineSequenceElement() + { + Whitespace (); + + // Make sure we're not accidentally parsing a divert + if (ParseString ("->") != null) + return null; + + if (ParseString ("-") == null) + return null; + + Whitespace (); + + + List content = StatementsAtLevel (StatementLevel.InnerBlock); + + if (content == null) + MultilineWhitespace (); + + // Add newline at the start of each branch + else { + content.Insert (0, new Parsed.Text ("\n")); + } + + return new ContentList (content); + } + } +} + diff --git a/Assets/Ink/compiler/InkParser/InkParser_Sequences.cs.meta b/Assets/Ink/compiler/InkParser/InkParser_Sequences.cs.meta new file mode 100644 index 000000000..6d95be193 --- /dev/null +++ b/Assets/Ink/compiler/InkParser/InkParser_Sequences.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 26cfb99fad990de4883b6437e5d2d6a2 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Ink/compiler/InkParser/InkParser_Statements.cs b/Assets/Ink/compiler/InkParser/InkParser_Statements.cs new file mode 100644 index 000000000..0b622f20c --- /dev/null +++ b/Assets/Ink/compiler/InkParser/InkParser_Statements.cs @@ -0,0 +1,163 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using Ink.Parsed; + +namespace Ink +{ + public partial class InkParser + { + protected enum StatementLevel + { + InnerBlock, + Stitch, + Knot, + Top + } + + protected List StatementsAtLevel(StatementLevel level) + { + // Check for error: Should not be allowed gather dashes within an inner block + if (level == StatementLevel.InnerBlock) { + object badGatherDashCount = Parse(GatherDashes); + if (badGatherDashCount != null) { + Error ("You can't use a gather (the dashes) within the { curly braces } context. For multi-line sequences and conditions, you should only use one dash."); + } + } + + return Interleave( + Optional (MultilineWhitespace), + () => StatementAtLevel (level), + untilTerminator: () => StatementsBreakForLevel(level)); + } + + protected object StatementAtLevel(StatementLevel level) + { + ParseRule[] rulesAtLevel = _statementRulesAtLevel[(int)level]; + + var statement = OneOf (rulesAtLevel); + + // For some statements, allow them to parse, but create errors, since + // writers may think they can use the statement, so it's useful to have + // the error message. + if (level == StatementLevel.Top) { + if( statement is Return ) + Error ("should not have return statement outside of a knot"); + } + + return statement; + } + + protected object StatementsBreakForLevel(StatementLevel level) + { + Whitespace (); + + ParseRule[] breakRules = _statementBreakRulesAtLevel[(int)level]; + + var breakRuleResult = OneOf (breakRules); + if (breakRuleResult == null) + return null; + + return breakRuleResult; + } + + void GenerateStatementLevelRules() + { + var levels = Enum.GetValues (typeof(StatementLevel)).Cast ().ToList(); + + _statementRulesAtLevel = new ParseRule[levels.Count][]; + _statementBreakRulesAtLevel = new ParseRule[levels.Count][]; + + foreach (var level in levels) { + List rulesAtLevel = new List (); + List breakingRules = new List (); + + // Diverts can go anywhere + rulesAtLevel.Add(Line(MultiDivert)); + + // Knots can only be parsed at Top/Global scope + if (level >= StatementLevel.Top) + rulesAtLevel.Add (KnotDefinition); + + rulesAtLevel.Add(Line(Choice)); + + rulesAtLevel.Add(Line(AuthorWarning)); + + // Gather lines would be confused with multi-line block separators, like + // within a multi-line if statement + if (level > StatementLevel.InnerBlock) { + rulesAtLevel.Add (Gather); + } + + // Stitches (and gathers) can (currently) only go in Knots and top level + if (level >= StatementLevel.Knot) { + rulesAtLevel.Add (StitchDefinition); + } + + // Global variable declarations can go anywhere + rulesAtLevel.Add(Line(ListDeclaration)); + rulesAtLevel.Add(Line(VariableDeclaration)); + rulesAtLevel.Add(Line(ConstDeclaration)); + rulesAtLevel.Add(Line(ExternalDeclaration)); + + // Global include can go anywhere + rulesAtLevel.Add(Line(IncludeStatement)); + + // Normal logic / text can go anywhere + rulesAtLevel.Add(LogicLine); + rulesAtLevel.Add(LineOfMixedTextAndLogic); + + // -------- + // Breaking rules + + // Break current knot with a new knot + if (level <= StatementLevel.Knot) { + breakingRules.Add (KnotDeclaration); + } + + // Break current stitch with a new stitch + if (level <= StatementLevel.Stitch) { + breakingRules.Add (StitchDeclaration); + } + + // Breaking an inner block (like a multi-line condition statement) + if (level <= StatementLevel.InnerBlock) { + breakingRules.Add (ParseDashNotArrow); + breakingRules.Add (String ("}")); + } + + _statementRulesAtLevel [(int)level] = rulesAtLevel.ToArray (); + _statementBreakRulesAtLevel [(int)level] = breakingRules.ToArray (); + } + } + + protected object SkipToNextLine() + { + ParseUntilCharactersFromString ("\n\r"); + ParseNewline (); + return ParseSuccess; + } + + // Modifier to turn a rule into one that expects a newline on the end. + // e.g. anywhere you can use "MixedTextAndLogic" as a rule, you can use + // "Line(MixedTextAndLogic)" to specify that it expects a newline afterwards. + protected ParseRule Line(ParseRule inlineRule) + { + return () => { + object result = ParseObject(inlineRule); + if (result == null) { + return null; + } + + Expect(EndOfLine, "end of line", recoveryRule: SkipToNextLine); + + return result; + }; + } + + + ParseRule[][] _statementRulesAtLevel; + ParseRule[][] _statementBreakRulesAtLevel; + } +} + diff --git a/Assets/Ink/compiler/InkParser/InkParser_Statements.cs.meta b/Assets/Ink/compiler/InkParser/InkParser_Statements.cs.meta new file mode 100644 index 000000000..e9bc576a5 --- /dev/null +++ b/Assets/Ink/compiler/InkParser/InkParser_Statements.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: fc56a52fd65ef9746ad8c635b665054a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Ink/compiler/InkParser/InkParser_Tags.cs b/Assets/Ink/compiler/InkParser/InkParser_Tags.cs new file mode 100644 index 000000000..7f8d12a61 --- /dev/null +++ b/Assets/Ink/compiler/InkParser/InkParser_Tags.cs @@ -0,0 +1,50 @@ +using System.Text; +using System.Collections.Generic; +using System.Linq; + +namespace Ink +{ + public partial class InkParser + { + protected Parsed.Tag Tag () + { + Whitespace (); + + if (ParseString ("#") == null) + return null; + + Whitespace (); + + var sb = new StringBuilder (); + do { + // Read up to another #, end of input or newline + string tagText = ParseUntilCharactersFromCharSet (_endOfTagCharSet); + sb.Append (tagText); + + // Escape character + if (ParseString ("\\") != null) { + char c = ParseSingleCharacter (); + if( c != (char)0 ) sb.Append(c); + continue; + } + + break; + } while ( true ); + + var fullTagText = sb.ToString ().Trim(); + + return new Parsed.Tag (new Runtime.Tag (fullTagText)); + } + + protected List Tags () + { + var tags = OneOrMore (Tag); + if (tags == null) return null; + + return tags.Cast().ToList(); + } + + CharacterSet _endOfTagCharSet = new CharacterSet ("#\n\r\\"); + } +} + diff --git a/Assets/Ink/compiler/InkParser/InkParser_Tags.cs.meta b/Assets/Ink/compiler/InkParser/InkParser_Tags.cs.meta new file mode 100644 index 000000000..9769b4be6 --- /dev/null +++ b/Assets/Ink/compiler/InkParser/InkParser_Tags.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6c24086827a204b418bba51e98525480 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Ink/compiler/InkParser/InkParser_Whitespace.cs b/Assets/Ink/compiler/InkParser/InkParser_Whitespace.cs new file mode 100644 index 000000000..96031e7a0 --- /dev/null +++ b/Assets/Ink/compiler/InkParser/InkParser_Whitespace.cs @@ -0,0 +1,112 @@ +using System.Collections.Generic; + +namespace Ink +{ + public partial class InkParser + { + // Handles both newline and endOfFile + protected object EndOfLine() + { + return OneOf(Newline, EndOfFile); + } + + // Allow whitespace before the actual newline + protected object Newline() + { + Whitespace(); + + bool gotNewline = ParseNewline () != null; + + // Optional \r, definite \n to support Windows (\r\n) and Mac/Unix (\n) + + if( !gotNewline ) { + return null; + } else { + return ParseSuccess; + } + } + + protected object EndOfFile() + { + Whitespace(); + + if (!endOfInput) + return null; + + return ParseSuccess; + } + + + // General purpose space, returns N-count newlines (fails if no newlines) + protected object MultilineWhitespace() + { + List newlines = OneOrMore(Newline); + if (newlines == null) + return null; + + // Use content field of Token to say how many newlines there were + // (in most circumstances it's unimportant) + int numNewlines = newlines.Count; + if (numNewlines >= 1) { + return ParseSuccess; + } else { + return null; + } + } + + protected object Whitespace() + { + if( ParseCharactersFromCharSet(_inlineWhitespaceChars) != null ) { + return ParseSuccess; + } + + return null; + } + + protected ParseRule Spaced(ParseRule rule) + { + return () => { + + Whitespace (); + + var result = ParseObject(rule); + if (result == null) { + return null; + } + + Whitespace (); + + return result; + }; + } + + protected object AnyWhitespace () + { + bool anyWhitespace = false; + while (OneOf (Whitespace, MultilineWhitespace) != null) { + anyWhitespace = true; + } + return anyWhitespace ? ParseSuccess : null; + } + + protected ParseRule MultiSpaced (ParseRule rule) + { + return () => { + + AnyWhitespace (); + + var result = ParseObject (rule); + if (result == null) { + return null; + } + + AnyWhitespace (); + + return result; + }; + } + + private CharacterSet _inlineWhitespaceChars = new CharacterSet(" \t"); + } +} + diff --git a/Assets/Ink/compiler/InkParser/InkParser_Whitespace.cs.meta b/Assets/Ink/compiler/InkParser/InkParser_Whitespace.cs.meta new file mode 100644 index 000000000..a6b91740f --- /dev/null +++ b/Assets/Ink/compiler/InkParser/InkParser_Whitespace.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 970c5ebcd2579d647a72e5949b3a266b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Ink/compiler/InkStringConversionExtensions.cs b/Assets/Ink/compiler/InkStringConversionExtensions.cs new file mode 100644 index 000000000..47f07b815 --- /dev/null +++ b/Assets/Ink/compiler/InkStringConversionExtensions.cs @@ -0,0 +1,18 @@ +using System.Collections.Generic; + +namespace Ink +{ + public static class InkStringConversionExtensions + { + public static string[] ToStringsArray(this List list) { + int count = list.Count; + var strings = new string[count]; + + for(int i = 0; i < count; i++) { + strings[i] = list[i].ToString(); + } + + return strings; + } + } +} diff --git a/Assets/Ink/compiler/InkStringConversionExtensions.cs.meta b/Assets/Ink/compiler/InkStringConversionExtensions.cs.meta new file mode 100644 index 000000000..f5ac12697 --- /dev/null +++ b/Assets/Ink/compiler/InkStringConversionExtensions.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6a20342fd5a7af246b0d8486a9a242c5 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Ink/compiler/ParsedHierarchy.meta b/Assets/Ink/compiler/ParsedHierarchy.meta new file mode 100644 index 000000000..9a1a08eb2 --- /dev/null +++ b/Assets/Ink/compiler/ParsedHierarchy.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3bbf30acdd181d1418263a86b8d4de36 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Ink/compiler/ParsedHierarchy/AuthorWarning.cs b/Assets/Ink/compiler/ParsedHierarchy/AuthorWarning.cs new file mode 100644 index 000000000..e61805b0d --- /dev/null +++ b/Assets/Ink/compiler/ParsedHierarchy/AuthorWarning.cs @@ -0,0 +1,20 @@ + +namespace Ink.Parsed +{ + public class AuthorWarning : Parsed.Object + { + public string warningMessage; + + public AuthorWarning(string message) + { + warningMessage = message; + } + + public override Runtime.Object GenerateRuntimeObject () + { + Warning (warningMessage); + return null; + } + } +} + diff --git a/Assets/Ink/compiler/ParsedHierarchy/AuthorWarning.cs.meta b/Assets/Ink/compiler/ParsedHierarchy/AuthorWarning.cs.meta new file mode 100644 index 000000000..aa3eb2f21 --- /dev/null +++ b/Assets/Ink/compiler/ParsedHierarchy/AuthorWarning.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 41069d3b98c64f44180e0569b3bab64c +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Ink/compiler/ParsedHierarchy/Choice.cs b/Assets/Ink/compiler/ParsedHierarchy/Choice.cs new file mode 100644 index 000000000..4b2934fbc --- /dev/null +++ b/Assets/Ink/compiler/ParsedHierarchy/Choice.cs @@ -0,0 +1,290 @@ +using System.Text; + +namespace Ink.Parsed +{ + public class Choice : Parsed.Object, IWeavePoint, INamedContent + { + public ContentList startContent { get; protected set; } + public ContentList choiceOnlyContent { get; protected set; } + public ContentList innerContent { get; protected set; } + + public string name + { + get { return identifier?.name; } + } + public Identifier identifier { get; set; } + + public Expression condition { + get { + return _condition; + } + set { + _condition = value; + if( _condition ) + AddContent (_condition); + } + } + + public bool onceOnly { get; set; } + public bool isInvisibleDefault { get; set; } + + public int indentationDepth { get; set; }// = 1; + public bool hasWeaveStyleInlineBrackets { get; set; } + + // Required for IWeavePoint interface + // Choice's target container. Used by weave to append any extra + // nested weave content into. + public Runtime.Container runtimeContainer { get { return _innerContentContainer; } } + + + public Runtime.Container innerContentContainer { + get { + return _innerContentContainer; + } + } + + public override Runtime.Container containerForCounting { + get { + return _innerContentContainer; + } + } + + // Override runtimePath to point to the Choice's target content (after it's chosen), + // as opposed to the default implementation which would point to the choice itself + // (or it's outer container), which is what runtimeObject is. + public override Runtime.Path runtimePath + { + get { + return _innerContentContainer.path; + } + } + + public Choice (ContentList startContent, ContentList choiceOnlyContent, ContentList innerContent) + { + this.startContent = startContent; + this.choiceOnlyContent = choiceOnlyContent; + this.innerContent = innerContent; + this.indentationDepth = 1; + + if (startContent) + AddContent (this.startContent); + + if (choiceOnlyContent) + AddContent (this.choiceOnlyContent); + + if( innerContent ) + AddContent (this.innerContent); + + this.onceOnly = true; // default + } + + + public override Runtime.Object GenerateRuntimeObject () + { + _outerContainer = new Runtime.Container (); + + // Content names for different types of choice: + // * start content [choice only content] inner content + // * start content -> divert + // * start content + // * [choice only content] + + // Hmm, this structure has become slightly insane! + // + // [ + // EvalStart + // assign $r = $r1 -- return target = return label 1 + // BeginString + // -> s + // [(r1)] -- return label 1 (after start content) + // EndString + // BeginString + // ... choice only content + // EndEval + // Condition expression + // choice: -> "c-0" + // (s) = [ + // start content + // -> r -- goto return label 1 or 2 + // ] + // ] + // + // in parent's container: (the inner content for the choice) + // + // (c-0) = [ + // EvalStart + // assign $r = $r2 -- return target = return label 2 + // EndEval + // -> s + // [(r2)] -- return label 1 (after start content) + // inner content + // ] + // + + _runtimeChoice = new Runtime.ChoicePoint (onceOnly); + _runtimeChoice.isInvisibleDefault = this.isInvisibleDefault; + + if (startContent || choiceOnlyContent || condition) { + _outerContainer.AddContent (Runtime.ControlCommand.EvalStart ()); + } + + // Start content is put into a named container that's referenced both + // when displaying the choice initially, and when generating the text + // when the choice is chosen. + if (startContent) { + + // Generate start content and return + // - We can't use a function since it uses a call stack element, which would + // put temporary values out of scope. Instead we manually divert around. + // - $r is a variable divert target contains the return point + _returnToR1 = new Runtime.DivertTargetValue (); + _outerContainer.AddContent (_returnToR1); + var varAssign = new Runtime.VariableAssignment ("$r", true); + _outerContainer.AddContent (varAssign); + + // Mark the start of the choice text generation, so that the runtime + // knows where to rewind to to extract the content from the output stream. + _outerContainer.AddContent (Runtime.ControlCommand.BeginString ()); + + _divertToStartContentOuter = new Runtime.Divert (); + _outerContainer.AddContent (_divertToStartContentOuter); + + // Start content itself in a named container + _startContentRuntimeContainer = startContent.GenerateRuntimeObject () as Runtime.Container; + _startContentRuntimeContainer.name = "s"; + + // Effectively, the "return" statement - return to the point specified by $r + var varDivert = new Runtime.Divert (); + varDivert.variableDivertName = "$r"; + _startContentRuntimeContainer.AddContent (varDivert); + + // Add the container + _outerContainer.AddToNamedContentOnly (_startContentRuntimeContainer); + + // This is the label to return to + _r1Label = new Runtime.Container (); + _r1Label.name = "$r1"; + _outerContainer.AddContent (_r1Label); + + _outerContainer.AddContent (Runtime.ControlCommand.EndString ()); + + _runtimeChoice.hasStartContent = true; + } + + // Choice only content - mark the start, then generate it directly into the outer container + if (choiceOnlyContent) { + _outerContainer.AddContent (Runtime.ControlCommand.BeginString ()); + + var choiceOnlyRuntimeContent = choiceOnlyContent.GenerateRuntimeObject () as Runtime.Container; + _outerContainer.AddContentsOfContainer (choiceOnlyRuntimeContent); + + _outerContainer.AddContent (Runtime.ControlCommand.EndString ()); + + _runtimeChoice.hasChoiceOnlyContent = true; + } + + // Generate any condition for this choice + if (condition) { + condition.GenerateIntoContainer (_outerContainer); + _runtimeChoice.hasCondition = true; + } + + if (startContent || choiceOnlyContent || condition) { + _outerContainer.AddContent (Runtime.ControlCommand.EvalEnd ()); + } + + // Add choice itself + _outerContainer.AddContent (_runtimeChoice); + + // Container that choice points to for when it's chosen + _innerContentContainer = new Runtime.Container (); + + // Repeat start content by diverting to its container + if (startContent) { + + // Set the return point when jumping back into the start content + // - In this case, it's the $r2 point, within the choice content "c". + _returnToR2 = new Runtime.DivertTargetValue (); + _innerContentContainer.AddContent (Runtime.ControlCommand.EvalStart ()); + _innerContentContainer.AddContent (_returnToR2); + _innerContentContainer.AddContent (Runtime.ControlCommand.EvalEnd ()); + var varAssign = new Runtime.VariableAssignment ("$r", true); + _innerContentContainer.AddContent (varAssign); + + // Main divert into start content + _divertToStartContentInner = new Runtime.Divert (); + _innerContentContainer.AddContent (_divertToStartContentInner); + + // Define label to return to + _r2Label = new Runtime.Container (); + _r2Label.name = "$r2"; + _innerContentContainer.AddContent (_r2Label); + } + + // Choice's own inner content + if (innerContent) { + var innerChoiceOnlyContent = innerContent.GenerateRuntimeObject () as Runtime.Container; + _innerContentContainer.AddContentsOfContainer (innerChoiceOnlyContent); + } + + if (this.story.countAllVisits) { + _innerContentContainer.visitsShouldBeCounted = true; + } + + _innerContentContainer.countingAtStartOnly = true; + + return _outerContainer; + } + + public override void ResolveReferences(Story context) + { + // Weave style choice - target own content container + if (_innerContentContainer) { + _runtimeChoice.pathOnChoice = _innerContentContainer.path; + + if (onceOnly) + _innerContentContainer.visitsShouldBeCounted = true; + } + + if (_returnToR1) + _returnToR1.targetPath = _r1Label.path; + + if (_returnToR2) + _returnToR2.targetPath = _r2Label.path; + + if( _divertToStartContentOuter ) + _divertToStartContentOuter.targetPath = _startContentRuntimeContainer.path; + + if( _divertToStartContentInner ) + _divertToStartContentInner.targetPath = _startContentRuntimeContainer.path; + + base.ResolveReferences (context); + + if( identifier != null && identifier.name.Length > 0 ) + context.CheckForNamingCollisions (this, identifier, Story.SymbolType.SubFlowAndWeave); + } + + public override string ToString () + { + if (choiceOnlyContent != null) { + return string.Format ("* {0}[{1}]...", startContent, choiceOnlyContent); + } else { + return string.Format ("* {0}...", startContent); + } + } + + Runtime.ChoicePoint _runtimeChoice; + Runtime.Container _innerContentContainer; + Runtime.Container _outerContainer; + Runtime.Container _startContentRuntimeContainer; + Runtime.Divert _divertToStartContentOuter; + Runtime.Divert _divertToStartContentInner; + Runtime.Container _r1Label; + Runtime.Container _r2Label; + Runtime.DivertTargetValue _returnToR1; + Runtime.DivertTargetValue _returnToR2; + Expression _condition; + } + +} + diff --git a/Assets/Ink/compiler/ParsedHierarchy/Choice.cs.meta b/Assets/Ink/compiler/ParsedHierarchy/Choice.cs.meta new file mode 100644 index 000000000..f9b23d00e --- /dev/null +++ b/Assets/Ink/compiler/ParsedHierarchy/Choice.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 9c1c1a3eaa8256641a14fc27fca420d8 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Ink/compiler/ParsedHierarchy/Conditional.cs b/Assets/Ink/compiler/ParsedHierarchy/Conditional.cs new file mode 100644 index 000000000..2343df2ea --- /dev/null +++ b/Assets/Ink/compiler/ParsedHierarchy/Conditional.cs @@ -0,0 +1,71 @@ +using System.Collections.Generic; +using System.Linq; +using Ink.Runtime; + +namespace Ink.Parsed +{ + public class Conditional : Parsed.Object + { + public Expression initialCondition { get; private set; } + public List branches { get; private set; } + + public Conditional (Expression condition, List branches) + { + this.initialCondition = condition; + if (this.initialCondition) { + AddContent (condition); + } + + this.branches = branches; + if (this.branches != null) { + AddContent (this.branches.Cast ().ToList ()); + } + + } + + public override Runtime.Object GenerateRuntimeObject () + { + var container = new Runtime.Container (); + + // Initial condition + if (this.initialCondition) { + container.AddContent (initialCondition.runtimeObject); + } + + // Individual branches + foreach (var branch in branches) { + var branchContainer = (Container) branch.runtimeObject; + container.AddContent (branchContainer); + } + + // If it's a switch-like conditional, each branch + // will have a "duplicate" operation for the original + // switched value. If there's no final else clause + // and we fall all the way through, we need to clean up. + // (An else clause doesn't dup but it *does* pop) + if (this.initialCondition != null && branches [0].ownExpression != null && !branches [branches.Count - 1].isElse) { + container.AddContent (Runtime.ControlCommand.PopEvaluatedValue ()); + } + + // Target for branches to rejoin to + _reJoinTarget = Runtime.ControlCommand.NoOp (); + container.AddContent (_reJoinTarget); + + return container; + } + + public override void ResolveReferences (Story context) + { + var pathToReJoin = _reJoinTarget.path; + + foreach (var branch in branches) { + branch.returnDivert.targetPath = pathToReJoin; + } + + base.ResolveReferences (context); + } + + Runtime.ControlCommand _reJoinTarget; + } +} + diff --git a/Assets/Ink/compiler/ParsedHierarchy/Conditional.cs.meta b/Assets/Ink/compiler/ParsedHierarchy/Conditional.cs.meta new file mode 100644 index 000000000..2575d9444 --- /dev/null +++ b/Assets/Ink/compiler/ParsedHierarchy/Conditional.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 0563dff86f800ea4b9ee7f4474aadca4 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Ink/compiler/ParsedHierarchy/ConditionalSingleBranch.cs b/Assets/Ink/compiler/ParsedHierarchy/ConditionalSingleBranch.cs new file mode 100644 index 000000000..3f6663687 --- /dev/null +++ b/Assets/Ink/compiler/ParsedHierarchy/ConditionalSingleBranch.cs @@ -0,0 +1,158 @@ + +using System.Collections.Generic; + +namespace Ink.Parsed +{ + public class ConditionalSingleBranch : Parsed.Object + { + // bool condition, e.g.: + // { 5 == 4: + // - the true branch + // - the false branch + // } + public bool isTrueBranch { get; set; } + + // When each branch has its own expression like a switch statement, + // this is non-null. e.g. + // { x: + // - 4: the value of x is four (ownExpression is the value 4) + // - 3: the value of x is three + // } + public Expression ownExpression { + get { + return _ownExpression; + } + set { + _ownExpression = value; + if (_ownExpression) { + AddContent (_ownExpression); + } + } + } + + // In the above example, match equality of x with 4 for the first branch. + // This is as opposed to simply evaluating boolean equality for each branch, + // example when shouldMatchEqualtity is FALSE: + // { + // 3 > 2: This will happen + // 2 > 3: This won't happen + // } + public bool matchingEquality { get; set; } + + public bool isElse { get; set; } + + public bool isInline { get; set; } + + public Runtime.Divert returnDivert { get; protected set; } + + public ConditionalSingleBranch (List content) + { + // Branches are allowed to be empty + if (content != null) { + _innerWeave = new Weave (content); + AddContent (_innerWeave); + } + } + + // Runtime content can be summarised as follows: + // - Evaluate an expression if necessary to branch on + // - Branch to a named container if true + // - Divert back to main flow + // (owner Conditional is in control of this target point) + public override Runtime.Object GenerateRuntimeObject () + { + // Check for common mistake, of putting "else:" instead of "- else:" + if (_innerWeave) { + foreach (var c in _innerWeave.content) { + var text = c as Parsed.Text; + if (text) { + // Don't need to trim at the start since the parser handles that already + if (text.text.StartsWith ("else:")) { + Warning ("Saw the text 'else:' which is being treated as content. Did you mean '- else:'?", text); + } + } + } + } + + var container = new Runtime.Container (); + + // Are we testing against a condition that's used for more than just this + // branch? If so, the first thing we need to do is replicate the value that's + // on the evaluation stack so that we don't fully consume it, in case other + // branches need to use it. + bool duplicatesStackValue = matchingEquality && !isElse; + if ( duplicatesStackValue ) + container.AddContent (Runtime.ControlCommand.Duplicate ()); + + _conditionalDivert = new Runtime.Divert (); + + // else clause is unconditional catch-all, otherwise the divert is conditional + _conditionalDivert.isConditional = !isElse; + + // Need extra evaluation? + if( !isTrueBranch && !isElse ) { + + bool needsEval = ownExpression != null; + if( needsEval ) + container.AddContent (Runtime.ControlCommand.EvalStart ()); + + if (ownExpression) + ownExpression.GenerateIntoContainer (container); + + // Uses existing duplicated value + if (matchingEquality) + container.AddContent (Runtime.NativeFunctionCall.CallWithName ("==")); + + if( needsEval ) + container.AddContent (Runtime.ControlCommand.EvalEnd ()); + } + + // Will pop from stack if conditional + container.AddContent (_conditionalDivert); + + _contentContainer = GenerateRuntimeForContent (); + _contentContainer.name = "b"; + + // Multi-line conditionals get a newline at the start of each branch + // (as opposed to the start of the multi-line conditional since the condition + // may evaluate to false.) + if (!isInline) { + _contentContainer.InsertContent (new Runtime.StringValue ("\n"), 0); + } + + if( duplicatesStackValue || (isElse && matchingEquality) ) + _contentContainer.InsertContent (Runtime.ControlCommand.PopEvaluatedValue (), 0); + + container.AddToNamedContentOnly (_contentContainer); + + returnDivert = new Runtime.Divert (); + _contentContainer.AddContent (returnDivert); + + return container; + } + + Runtime.Container GenerateRuntimeForContent() + { + // Empty branch - create empty container + if (_innerWeave == null) { + return new Runtime.Container (); + } + + return _innerWeave.rootContainer; + } + + public override void ResolveReferences (Story context) + { + _conditionalDivert.targetPath = _contentContainer.path; + + base.ResolveReferences (context); + } + + Runtime.Container _contentContainer; + Runtime.Divert _conditionalDivert; + Expression _ownExpression; + + Weave _innerWeave; + } +} + diff --git a/Assets/Ink/compiler/ParsedHierarchy/ConditionalSingleBranch.cs.meta b/Assets/Ink/compiler/ParsedHierarchy/ConditionalSingleBranch.cs.meta new file mode 100644 index 000000000..b2ebb5588 --- /dev/null +++ b/Assets/Ink/compiler/ParsedHierarchy/ConditionalSingleBranch.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 80b8abff03bc7fa43b6cba87d29c2b40 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Ink/compiler/ParsedHierarchy/ConstantDeclaration.cs b/Assets/Ink/compiler/ParsedHierarchy/ConstantDeclaration.cs new file mode 100644 index 000000000..3852bcdb7 --- /dev/null +++ b/Assets/Ink/compiler/ParsedHierarchy/ConstantDeclaration.cs @@ -0,0 +1,46 @@ +//using System.Collections.Generic; + +namespace Ink.Parsed +{ + public class ConstantDeclaration : Parsed.Object + { + public string constantName + { + get { return constantIdentifier?.name; } + } + public Identifier constantIdentifier { get; protected set; } + public Expression expression { get; protected set; } + + public ConstantDeclaration (Identifier name, Expression assignedExpression) + { + this.constantIdentifier = name; + + // Defensive programming in case parsing of assignedExpression failed + if( assignedExpression ) + this.expression = AddContent(assignedExpression); + } + + public override Runtime.Object GenerateRuntimeObject () + { + // Global declarations don't generate actual procedural + // runtime objects, but instead add a global variable to the story itself. + // The story then initialises them all in one go at the start of the game. + return null; + } + + public override void ResolveReferences (Story context) + { + base.ResolveReferences (context); + + context.CheckForNamingCollisions (this, constantIdentifier, Story.SymbolType.Var); + } + + public override string typeName { + get { + return "Constant"; + } + } + + } +} + diff --git a/Assets/Ink/compiler/ParsedHierarchy/ConstantDeclaration.cs.meta b/Assets/Ink/compiler/ParsedHierarchy/ConstantDeclaration.cs.meta new file mode 100644 index 000000000..d5e384ad1 --- /dev/null +++ b/Assets/Ink/compiler/ParsedHierarchy/ConstantDeclaration.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 4055e73c795d4754f8482b4764a15249 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Ink/compiler/ParsedHierarchy/ContentList.cs b/Assets/Ink/compiler/ParsedHierarchy/ContentList.cs new file mode 100644 index 000000000..737875ebb --- /dev/null +++ b/Assets/Ink/compiler/ParsedHierarchy/ContentList.cs @@ -0,0 +1,78 @@ +using System.Collections.Generic; +using System.Text; + +namespace Ink.Parsed +{ + public class ContentList : Parsed.Object + { + public bool dontFlatten { get; set; } + + public Runtime.Container runtimeContainer { + get { + return (Runtime.Container) this.runtimeObject; + } + } + + public ContentList (List objects) + { + if( objects != null ) + AddContent (objects); + } + + public ContentList (params Parsed.Object[] objects) + { + if (objects != null) { + var objList = new List (objects); + AddContent (objList); + } + } + + public ContentList() + { + } + + public void TrimTrailingWhitespace() + { + for (int i = this.content.Count - 1; i >= 0; --i) { + var text = this.content [i] as Text; + if (text == null) + break; + + text.text = text.text.TrimEnd (' ', '\t'); + if (text.text.Length == 0) + this.content.RemoveAt (i); + else + break; + } + } + + public override Runtime.Object GenerateRuntimeObject () + { + var container = new Runtime.Container (); + if (content != null) { + foreach (var obj in content) { + var contentObjRuntime = obj.runtimeObject; + + // Some objects (e.g. author warnings) don't generate runtime objects + if( contentObjRuntime ) + container.AddContent (contentObjRuntime); + } + } + + if( dontFlatten ) + story.DontFlattenContainer (container); + + return container; + } + + public override string ToString () + { + var sb = new StringBuilder (); + sb.Append ("ContentList("); + sb.Append(string.Join (", ", content.ToStringsArray())); + sb.Append (")"); + return sb.ToString (); + } + } +} + diff --git a/Assets/Ink/compiler/ParsedHierarchy/ContentList.cs.meta b/Assets/Ink/compiler/ParsedHierarchy/ContentList.cs.meta new file mode 100644 index 000000000..17fbcf1c1 --- /dev/null +++ b/Assets/Ink/compiler/ParsedHierarchy/ContentList.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 20b4723f51ab8dc4fa31e9d29d92f1d1 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Ink/compiler/ParsedHierarchy/Divert.cs b/Assets/Ink/compiler/ParsedHierarchy/Divert.cs new file mode 100644 index 000000000..f87ce8dff --- /dev/null +++ b/Assets/Ink/compiler/ParsedHierarchy/Divert.cs @@ -0,0 +1,403 @@ +using System.Collections.Generic; +using System.Linq; + +namespace Ink.Parsed +{ + public class Divert : Parsed.Object + { + public Parsed.Path target { get; protected set; } + public Parsed.Object targetContent { get; protected set; } + public List arguments { get; protected set; } + public Runtime.Divert runtimeDivert { get; protected set; } + public bool isFunctionCall { get; set; } + public bool isEmpty { get; set; } + public bool isTunnel { get; set; } + public bool isThread { get; set; } + public bool isEnd { + get { + return target != null && target.dotSeparatedComponents == "END"; + } + } + public bool isDone { + get { + return target != null && target.dotSeparatedComponents == "DONE"; + } + } + + public Divert (Parsed.Path target, List arguments = null) + { + this.target = target; + this.arguments = arguments; + + if (arguments != null) { + AddContent (arguments.Cast ().ToList ()); + } + } + + public Divert (Parsed.Object targetContent) + { + this.targetContent = targetContent; + } + + public override Runtime.Object GenerateRuntimeObject () + { + // End = end flow immediately + // Done = return from thread or instruct the flow that it's safe to exit + if (isEnd) { + return Runtime.ControlCommand.End (); + } + if (isDone) { + return Runtime.ControlCommand.Done (); + } + + runtimeDivert = new Runtime.Divert (); + + // Normally we resolve the target content during the + // Resolve phase, since we expect all runtime objects to + // be available in order to find the final runtime path for + // the destination. However, we need to resolve the target + // (albeit without the runtime target) early so that + // we can get information about the arguments - whether + // they're by reference - since it affects the code we + // generate here. + ResolveTargetContent (); + + + CheckArgumentValidity (); + + // Passing arguments to the knot + bool requiresArgCodeGen = arguments != null && arguments.Count > 0; + if ( requiresArgCodeGen || isFunctionCall || isTunnel || isThread ) { + + var container = new Runtime.Container (); + + // Generate code for argument evaluation + // This argument generation is coded defensively - it should + // attempt to generate the code for all the parameters, even if + // they don't match the expected arguments. This is so that the + // parameter objects themselves are generated correctly and don't + // get into a state of attempting to resolve references etc + // without being generated. + if (requiresArgCodeGen) { + + // Function calls already in an evaluation context + if (!isFunctionCall) { + container.AddContent (Runtime.ControlCommand.EvalStart()); + } + + List targetArguments = null; + if( targetContent ) + targetArguments = (targetContent as FlowBase).arguments; + + for (var i = 0; i < arguments.Count; ++i) { + Expression argToPass = arguments [i]; + FlowBase.Argument argExpected = null; + if( targetArguments != null && i < targetArguments.Count ) + argExpected = targetArguments [i]; + + // Pass by reference: argument needs to be a variable reference + if (argExpected != null && argExpected.isByReference) { + + var varRef = argToPass as VariableReference; + if (varRef == null) { + Error ("Expected variable name to pass by reference to 'ref " + argExpected.identifier + "' but saw " + argToPass.ToString ()); + break; + } + + // Check that we're not attempting to pass a read count by reference + var targetPath = new Path(varRef.pathIdentifiers); + Parsed.Object targetForCount = targetPath.ResolveFromContext (this); + if (targetForCount != null) { + Error ("can't pass a read count by reference. '" + targetPath.dotSeparatedComponents+"' is a knot/stitch/label, but '"+target.dotSeparatedComponents+"' requires the name of a VAR to be passed."); + break; + } + + var varPointer = new Runtime.VariablePointerValue (varRef.name); + container.AddContent (varPointer); + } + + // Normal value being passed: evaluate it as normal + else { + argToPass.GenerateIntoContainer (container); + } + } + + // Function calls were already in an evaluation context + if (!isFunctionCall) { + container.AddContent (Runtime.ControlCommand.EvalEnd()); + } + } + + + // Starting a thread? A bit like a push to the call stack below... but not. + // It sort of puts the call stack on a thread stack (argh!) - forks the full flow. + if (isThread) { + container.AddContent(Runtime.ControlCommand.StartThread()); + } + + // If this divert is a function call, tunnel, we push to the call stack + // so we can return again + else if (isFunctionCall || isTunnel) { + runtimeDivert.pushesToStack = true; + runtimeDivert.stackPushType = isFunctionCall ? Runtime.PushPopType.Function : Runtime.PushPopType.Tunnel; + } + + // Jump into the "function" (knot/stitch) + container.AddContent (runtimeDivert); + + return container; + } + + // Simple divert + else { + return runtimeDivert; + } + } + + + // When the divert is to a target that's actually a variable name + // rather than an explicit knot/stitch name, try interpretting it + // as such by getting the variable name. + public string PathAsVariableName() + { + return target.firstComponent; + } + + + void ResolveTargetContent() + { + if (isEmpty || isEnd) { + return; + } + + if (targetContent == null) { + + // Is target of this divert a variable name that will be de-referenced + // at runtime? If so, there won't be any further reference resolution + // we can do at this point. + var variableTargetName = PathAsVariableName (); + if (variableTargetName != null) { + var flowBaseScope = ClosestFlowBase (); + var resolveResult = flowBaseScope.ResolveVariableWithName (variableTargetName, fromNode: this); + if (resolveResult.found) { + + // Make sure that the flow was typed correctly, given that we know that this + // is meant to be a divert target + if (resolveResult.isArgument) { + var argument = resolveResult.ownerFlow.arguments.Where (a => a.identifier.name == variableTargetName).First(); + if ( !argument.isDivertTarget ) { + Error ("Since '" + argument.identifier + "' is used as a variable divert target (on "+this.debugMetadata+"), it should be marked as: -> " + argument.identifier, resolveResult.ownerFlow); + } + } + + runtimeDivert.variableDivertName = variableTargetName; + return; + + } + } + + targetContent = target.ResolveFromContext (this); + } + } + + public override void ResolveReferences(Story context) + { + if (isEmpty || isEnd || isDone) { + return; + } + + if (targetContent) { + runtimeDivert.targetPath = targetContent.runtimePath; + } + + // Resolve children (the arguments) + base.ResolveReferences (context); + + // May be null if it's a built in function (e.g. TURNS_SINCE) + // or if it's a variable target. + var targetFlow = targetContent as FlowBase; + if (targetFlow) { + if (!targetFlow.isFunction && this.isFunctionCall) { + base.Error (targetFlow.identifier + " hasn't been marked as a function, but it's being called as one. Do you need to delcare the knot as '== function " + targetFlow.identifier + " =='?"); + } else if (targetFlow.isFunction && !this.isFunctionCall && !(this.parent is DivertTarget)) { + base.Error (targetFlow.identifier + " can't be diverted to. It can only be called as a function since it's been marked as such: '" + targetFlow.identifier + "(...)'"); + } + } + + // Check validity of target content + bool targetWasFound = targetContent != null; + bool isBuiltIn = false; + bool isExternal = false; + + if (target.numberOfComponents == 1 ) { + + // BuiltIn means TURNS_SINCE, CHOICE_COUNT, RANDOM or SEED_RANDOM + isBuiltIn = FunctionCall.IsBuiltIn (target.firstComponent); + + // Client-bound function? + isExternal = context.IsExternal (target.firstComponent); + + if (isBuiltIn || isExternal) { + if (!isFunctionCall) { + base.Error (target.firstComponent + " must be called as a function: ~ " + target.firstComponent + "()"); + } + if (isExternal) { + runtimeDivert.isExternal = true; + if( arguments != null ) + runtimeDivert.externalArgs = arguments.Count; + runtimeDivert.pushesToStack = false; + runtimeDivert.targetPath = new Runtime.Path (this.target.firstComponent); + CheckExternalArgumentValidity (context); + } + return; + } + } + + // Variable target? + if (runtimeDivert.variableDivertName != null) { + return; + } + + if( !targetWasFound && !isBuiltIn && !isExternal ) + Error ("target not found: '" + target + "'"); + } + + // Returns false if there's an error + void CheckArgumentValidity() + { + if (isEmpty) + return; + + // Argument passing: Check for errors in number of arguments + var numArgs = 0; + if (arguments != null && arguments.Count > 0) + numArgs = arguments.Count; + + // Missing content? + // Can't check arguments properly. It'll be due to some + // other error though, so although there's a problem and + // we report false, we don't need to report a specific error. + // It may also be because it's a valid call to an external + // function, that we check at the resolve stage. + if (targetContent == null) { + return; + } + + FlowBase targetFlow = targetContent as FlowBase; + + // No error, crikey! + if (numArgs == 0 && (targetFlow == null || !targetFlow.hasParameters)) { + return; + } + + if (targetFlow == null && numArgs > 0) { + Error ("target needs to be a knot or stitch in order to pass arguments"); + return; + } + + if (targetFlow.arguments == null && numArgs > 0) { + Error ("target (" + targetFlow.name + ") doesn't take parameters"); + return; + } + + if( this.parent is DivertTarget ) { + if (numArgs > 0) + Error ("can't store arguments in a divert target variable"); + return; + } + + var paramCount = targetFlow.arguments.Count; + if (paramCount != numArgs) { + + string butClause; + if (numArgs == 0) { + butClause = "but there weren't any passed to it"; + } else if (numArgs < paramCount) { + butClause = "but only got " + numArgs; + } else { + butClause = "but got " + numArgs; + } + Error ("to '" + targetFlow.identifier + "' requires " + paramCount + " arguments, "+butClause); + return; + } + + // Light type-checking for divert target arguments + for (int i = 0; i < paramCount; ++i) { + FlowBase.Argument flowArg = targetFlow.arguments [i]; + Parsed.Expression divArgExpr = arguments [i]; + + // Expecting a divert target as an argument, let's do some basic type checking + if (flowArg.isDivertTarget) { + + // Not passing a divert target or any kind of variable reference? + var varRef = divArgExpr as VariableReference; + if (!(divArgExpr is DivertTarget) && varRef == null ) { + Error ("Target '" + targetFlow.identifier + "' expects a divert target for the parameter named -> " + flowArg.identifier + " but saw " + divArgExpr, divArgExpr); + } + + // Passing 'a' instead of '-> a'? + // i.e. read count instead of divert target + else if (varRef != null) { + + // Unfortunately have to manually resolve here since we're still in code gen + var knotCountPath = new Path(varRef.pathIdentifiers); + Parsed.Object targetForCount = knotCountPath.ResolveFromContext (varRef); + if (targetForCount != null) { + Error ("Passing read count of '" + knotCountPath.dotSeparatedComponents + "' instead of a divert target. You probably meant '" + knotCountPath + "'"); + } + } + } + } + + if (targetFlow == null) { + Error ("Can't call as a function or with arguments unless it's a knot or stitch"); + return; + } + + return; + } + + void CheckExternalArgumentValidity(Story context) + { + string externalName = target.firstComponent; + ExternalDeclaration external = null; + var found = context.externals.TryGetValue(externalName, out external); + System.Diagnostics.Debug.Assert (found, "external not found"); + + int externalArgCount = external.argumentNames.Count; + int ownArgCount = 0; + if (arguments != null) { + ownArgCount = arguments.Count; + } + + if (ownArgCount != externalArgCount) { + Error ("incorrect number of arguments sent to external function '" + externalName + "'. Expected " + externalArgCount + " but got " + ownArgCount); + } + } + + public override void Error (string message, Object source = null, bool isWarning = false) + { + // Could be getting an error from a nested Divert + if (source != this && source) { + base.Error (message, source); + return; + } + + if (isFunctionCall) { + base.Error ("Function call " + message, source, isWarning); + } else { + base.Error ("Divert " + message, source, isWarning); + } + } + + public override string ToString () + { + if (target != null) + return target.ToString (); + else + return "-> "; + } + + } +} + diff --git a/Assets/Ink/compiler/ParsedHierarchy/Divert.cs.meta b/Assets/Ink/compiler/ParsedHierarchy/Divert.cs.meta new file mode 100644 index 000000000..d2f245e2d --- /dev/null +++ b/Assets/Ink/compiler/ParsedHierarchy/Divert.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: bbf7175e88d0a3445a925a32e0edcb84 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Ink/compiler/ParsedHierarchy/DivertTarget.cs b/Assets/Ink/compiler/ParsedHierarchy/DivertTarget.cs new file mode 100644 index 000000000..c1223a496 --- /dev/null +++ b/Assets/Ink/compiler/ParsedHierarchy/DivertTarget.cs @@ -0,0 +1,172 @@ + +namespace Ink.Parsed +{ + public class DivertTarget : Expression + { + public Divert divert; + + public DivertTarget (Divert divert) + { + this.divert = AddContent(divert); + } + + public override void GenerateIntoContainer (Runtime.Container container) + { + divert.GenerateRuntimeObject(); + + _runtimeDivert = (Runtime.Divert) divert.runtimeDivert; + _runtimeDivertTargetValue = new Runtime.DivertTargetValue (); + + container.AddContent (_runtimeDivertTargetValue); + } + + public override void ResolveReferences (Story context) + { + base.ResolveReferences (context); + + if( divert.isDone || divert.isEnd ) + { + Error("Can't Can't use -> DONE or -> END as variable divert targets", this); + return; + } + + Parsed.Object usageContext = this; + while (usageContext && usageContext is Expression) { + + bool badUsage = false; + bool foundUsage = false; + + var usageParent = usageContext.parent; + if (usageParent is BinaryExpression) { + + // Only allowed to compare for equality + + var binaryExprParent = usageParent as BinaryExpression; + if (binaryExprParent.opName != "==" && binaryExprParent.opName != "!=") { + badUsage = true; + } else { + if (!(binaryExprParent.leftExpression is DivertTarget || binaryExprParent.leftExpression is VariableReference)) { + badUsage = true; + } + if (!(binaryExprParent.rightExpression is DivertTarget || binaryExprParent.rightExpression is VariableReference)) { + badUsage = true; + } + } + foundUsage = true; + } + else if( usageParent is FunctionCall ) { + var funcCall = usageParent as FunctionCall; + if( !funcCall.isTurnsSince && !funcCall.isReadCount ) { + badUsage = true; + } + foundUsage = true; + } + else if (usageParent is Expression) { + badUsage = true; + foundUsage = true; + } + else if (usageParent is MultipleConditionExpression) { + badUsage = true; + foundUsage = true; + } else if (usageParent is Choice && ((Choice)usageParent).condition == usageContext) { + badUsage = true; + foundUsage = true; + } else if (usageParent is Conditional || usageParent is ConditionalSingleBranch) { + badUsage = true; + foundUsage = true; + } + + if (badUsage) { + Error ("Can't use a divert target like that. Did you intend to call '" + divert.target + "' as a function: likeThis(), or check the read count: likeThis, with no arrows?", this); + } + + if (foundUsage) + break; + + usageContext = usageParent; + } + + // Example ink for this case: + // + // VAR x = -> blah + // + // ...which means that "blah" is expected to be a literal stitch target rather + // than a variable name. We can't really intelligently recover from this (e.g. if blah happens to + // contain a divert target itself) since really we should be generating a variable reference + // rather than a concrete DivertTarget, so we list it as an error. + if (_runtimeDivert.hasVariableTarget) + Error ("Since '"+divert.target.dotSeparatedComponents+"' is a variable, it shouldn't be preceded by '->' here."); + + // Main resolve + _runtimeDivertTargetValue.targetPath = _runtimeDivert.targetPath; + + // Tell hard coded (yet variable) divert targets that they also need to be counted + // TODO: Only detect DivertTargets that are values rather than being used directly for + // read or turn counts. Should be able to detect this by looking for other uses of containerForCounting + var targetContent = this.divert.targetContent; + if (targetContent != null ) { + var target = targetContent.containerForCounting; + if (target != null) + { + // Purpose is known: used directly in TURNS_SINCE(-> divTarg) + var parentFunc = this.parent as FunctionCall; + if( parentFunc && parentFunc.isTurnsSince ) { + target.turnIndexShouldBeCounted = true; + } + + // Unknown purpose, count everything + else { + target.visitsShouldBeCounted = true; + target.turnIndexShouldBeCounted = true; + } + + } + + // Unfortunately not possible: + // https://github.com/inkle/ink/issues/538 + // + // VAR func = -> double + // + // === function double(ref x) + // ~ x = x * 2 + // + // Because when generating the parameters for a function + // to be called, it needs to know ahead of time when + // compiling whether to pass a variable reference or value. + // + var targetFlow = (targetContent as FlowBase); + if (targetFlow != null && targetFlow.arguments != null) + { + foreach(var arg in targetFlow.arguments) { + if(arg.isByReference) + { + Error("Can't store a divert target to a knot or function that has by-reference arguments ('"+targetFlow.identifier+"' has 'ref "+arg.identifier+"')."); + } + } + } + } + } + + // Equals override necessary in order to check for CONST multiple definition equality + public override bool Equals (object obj) + { + var otherDivTarget = obj as DivertTarget; + if (otherDivTarget == null) return false; + + var targetStr = this.divert.target.dotSeparatedComponents; + var otherTargetStr = otherDivTarget.divert.target.dotSeparatedComponents; + + return targetStr.Equals (otherTargetStr); + } + + public override int GetHashCode () + { + var targetStr = this.divert.target.dotSeparatedComponents; + return targetStr.GetHashCode (); + } + + Runtime.DivertTargetValue _runtimeDivertTargetValue; + Runtime.Divert _runtimeDivert; + } +} + diff --git a/Assets/Ink/compiler/ParsedHierarchy/DivertTarget.cs.meta b/Assets/Ink/compiler/ParsedHierarchy/DivertTarget.cs.meta new file mode 100644 index 000000000..e674cdfe9 --- /dev/null +++ b/Assets/Ink/compiler/ParsedHierarchy/DivertTarget.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a98ed61e93bc3bf4f9134b63d9e4461a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Ink/compiler/ParsedHierarchy/Expression.cs b/Assets/Ink/compiler/ParsedHierarchy/Expression.cs new file mode 100644 index 000000000..ad752021d --- /dev/null +++ b/Assets/Ink/compiler/ParsedHierarchy/Expression.cs @@ -0,0 +1,307 @@ +using System.Collections.Generic; +using System.Linq; + +namespace Ink.Parsed +{ + public abstract class Expression : Parsed.Object + { + public bool outputWhenComplete { get; set; } + + public override Runtime.Object GenerateRuntimeObject () + { + var container = new Runtime.Container (); + + // Tell Runtime to start evaluating the following content as an expression + container.AddContent (Runtime.ControlCommand.EvalStart()); + + GenerateIntoContainer (container); + + // Tell Runtime to output the result of the expression evaluation to the output stream + if (outputWhenComplete) { + container.AddContent (Runtime.ControlCommand.EvalOutput()); + } + + // Tell Runtime to stop evaluating the content as an expression + container.AddContent (Runtime.ControlCommand.EvalEnd()); + + return container; + } + + // When generating the value of a constant expression, + // we can't just keep generating the same constant expression into + // different places where the constant value is referenced, since then + // the same runtime objects would be used in multiple places, which + // is impossible since each runtime object should have one parent. + // Instead, we generate a prototype of the runtime object(s), then + // copy them each time they're used. + public void GenerateConstantIntoContainer(Runtime.Container container) + { + if( _prototypeRuntimeConstantExpression == null ) { + _prototypeRuntimeConstantExpression = new Runtime.Container (); + GenerateIntoContainer (_prototypeRuntimeConstantExpression); + } + + foreach (var runtimeObj in _prototypeRuntimeConstantExpression.content) { + container.AddContent (runtimeObj.Copy()); + } + } + + public abstract void GenerateIntoContainer (Runtime.Container container); + + Runtime.Container _prototypeRuntimeConstantExpression; + } + + public class BinaryExpression : Expression + { + public Expression leftExpression; + public Expression rightExpression; + public string opName; + + public BinaryExpression(Expression left, Expression right, string opName) + { + leftExpression = AddContent(left); + rightExpression = AddContent(right); + this.opName = opName; + } + + public override void GenerateIntoContainer(Runtime.Container container) + { + leftExpression.GenerateIntoContainer (container); + rightExpression.GenerateIntoContainer (container); + + opName = NativeNameForOp (opName); + + container.AddContent(Runtime.NativeFunctionCall.CallWithName(opName)); + } + + public override void ResolveReferences (Story context) + { + base.ResolveReferences (context); + + // Check for the following case: + // + // (not A) ? B + // + // Since this easy to accidentally do: + // + // not A ? B + // + // when you intend: + // + // not (A ? B) + if (NativeNameForOp (opName) == "?") { + var leftUnary = leftExpression as UnaryExpression; + if( leftUnary != null && (leftUnary.op == "not" || leftUnary.op == "!") ) { + Error ("Using 'not' or '!' here negates '"+leftUnary.innerExpression+"' rather than the result of the '?' or 'has' operator. You need to add parentheses around the (A ? B) expression."); + } + } + } + + string NativeNameForOp(string opName) + { + if (opName == "and") + return "&&"; + + if (opName == "or") + return "||"; + + if (opName == "mod") + return "%"; + + if (opName == "has") + return "?"; + + if (opName == "hasnt") + return "!?"; + + return opName; + } + + public override string ToString () + { + return string.Format ("({0} {1} {2})", leftExpression, opName, rightExpression); + } + } + + public class UnaryExpression : Expression + { + public Expression innerExpression; + public string op; + + // Attempt to flatten inner expression immediately + // e.g. convert (-(5)) into (-5) + public static Expression WithInner(Expression inner, string op) { + + var innerNumber = inner as Number; + if( innerNumber ) { + + if( op == "-" ) { + if( innerNumber.value is int ) { + return new Number( -((int)innerNumber.value) ); + } else if( innerNumber.value is float ) { + return new Number( -((float)innerNumber.value) ); + } + } + + else if( op == "!" || op == "not" ) { + if( innerNumber.value is int ) { + return new Number( (int)innerNumber.value == 0 ); + } else if( innerNumber.value is float ) { + return new Number( (float)innerNumber.value == 0.0f ); + } else if( innerNumber.value is bool ) { + return new Number( !(bool)innerNumber.value ); + } + } + + throw new System.Exception ("Unexpected operation or number type"); + } + + // Normal fallback + var unary = new UnaryExpression (inner, op); + return unary; + } + + public UnaryExpression(Expression inner, string op) + { + this.innerExpression = AddContent(inner); + this.op = op; + } + + public override void GenerateIntoContainer(Runtime.Container container) + { + innerExpression.GenerateIntoContainer (container); + + container.AddContent(Runtime.NativeFunctionCall.CallWithName(nativeNameForOp)); + } + + public override string ToString () + { + return nativeNameForOp + innerExpression; + } + + string nativeNameForOp + { + get { + // Replace "-" with "_" to make it unique (compared to subtraction) + if (op == "-") + return "_"; + if (op == "not") + return "!"; + return op; + } + } + } + + public class IncDecExpression : Expression + { + public Identifier varIdentifier; + public bool isInc; + public Expression expression; + + public IncDecExpression(Identifier varIdentifier, bool isInc) + { + this.varIdentifier = varIdentifier; + this.isInc = isInc; + } + + public IncDecExpression (Identifier varIdentifier, Expression expression, bool isInc) : this(varIdentifier, isInc) + { + this.expression = expression; + AddContent (expression); + } + + public override void GenerateIntoContainer(Runtime.Container container) + { + // x = x + y + // ^^^ ^ ^ ^ + // 4 1 3 2 + // Reverse polish notation: (x 1 +) (assign to x) + + // 1. + container.AddContent (new Runtime.VariableReference (varIdentifier?.name)); + + // 2. + // - Expression used in the form ~ x += y + // - Simple version: ~ x++ + if (expression) + expression.GenerateIntoContainer (container); + else + container.AddContent (new Runtime.IntValue (1)); + + // 3. + container.AddContent (Runtime.NativeFunctionCall.CallWithName (isInc ? "+" : "-")); + + // 4. + _runtimeAssignment = new Runtime.VariableAssignment(varIdentifier?.name, false); + container.AddContent (_runtimeAssignment); + } + + public override void ResolveReferences (Story context) + { + base.ResolveReferences (context); + + var varResolveResult = context.ResolveVariableWithName(varIdentifier?.name, fromNode: this); + if (!varResolveResult.found) { + Error ("variable for "+incrementDecrementWord+" could not be found: '"+varIdentifier+"' after searching: "+this.descriptionOfScope); + } + + _runtimeAssignment.isGlobal = varResolveResult.isGlobal; + + if (!(parent is Weave) && !(parent is FlowBase) && !(parent is ContentList)) { + Error ("Can't use " + incrementDecrementWord + " as sub-expression"); + } + } + + string incrementDecrementWord { + get { + if (isInc) + return "increment"; + else + return "decrement"; + } + } + + public override string ToString () + { + if (expression) + return varIdentifier + (isInc ? " += " : " -= ") + expression.ToString (); + else + return varIdentifier + (isInc ? "++" : "--"); + } + + Runtime.VariableAssignment _runtimeAssignment; + } + + public class MultipleConditionExpression : Expression + { + public List subExpressions { + get { + return this.content.Cast ().ToList (); + } + } + + public MultipleConditionExpression(List conditionExpressions) + { + AddContent (conditionExpressions); + } + + public override void GenerateIntoContainer(Runtime.Container container) + { + // A && B && C && D + // => (((A B &&) C &&) D &&) etc + bool isFirst = true; + foreach (var conditionExpr in subExpressions) { + + conditionExpr.GenerateIntoContainer (container); + + if (!isFirst) { + container.AddContent (Runtime.NativeFunctionCall.CallWithName ("&&")); + } + + isFirst = false; + } + } + } + +} + diff --git a/Assets/Ink/compiler/ParsedHierarchy/Expression.cs.meta b/Assets/Ink/compiler/ParsedHierarchy/Expression.cs.meta new file mode 100644 index 000000000..e804868a9 --- /dev/null +++ b/Assets/Ink/compiler/ParsedHierarchy/Expression.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 1edc533f07321ae4d9c34b10af8b03c7 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Ink/compiler/ParsedHierarchy/ExternalDeclaration.cs b/Assets/Ink/compiler/ParsedHierarchy/ExternalDeclaration.cs new file mode 100644 index 000000000..909450055 --- /dev/null +++ b/Assets/Ink/compiler/ParsedHierarchy/ExternalDeclaration.cs @@ -0,0 +1,30 @@ +using System; +using System.Collections.Generic; + +namespace Ink.Parsed +{ + public class ExternalDeclaration : Parsed.Object, INamedContent + { + public string name + { + get { return identifier?.name; } + } + public Identifier identifier { get; set; } + public List argumentNames { get; set; } + + public ExternalDeclaration (Identifier identifier, List argumentNames) + { + this.identifier = identifier; + this.argumentNames = argumentNames; + } + + public override Ink.Runtime.Object GenerateRuntimeObject () + { + story.AddExternal (this); + + // No runtime code exists for an external, only metadata + return null; + } + } +} + diff --git a/Assets/Ink/compiler/ParsedHierarchy/ExternalDeclaration.cs.meta b/Assets/Ink/compiler/ParsedHierarchy/ExternalDeclaration.cs.meta new file mode 100644 index 000000000..d8a395b44 --- /dev/null +++ b/Assets/Ink/compiler/ParsedHierarchy/ExternalDeclaration.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e9f2dc2870db5b84b961d5899b4b18ae +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Ink/compiler/ParsedHierarchy/FlowBase.cs b/Assets/Ink/compiler/ParsedHierarchy/FlowBase.cs new file mode 100644 index 000000000..17aca4209 --- /dev/null +++ b/Assets/Ink/compiler/ParsedHierarchy/FlowBase.cs @@ -0,0 +1,439 @@ +using System.Collections.Generic; + +namespace Ink.Parsed +{ + // Base class for Knots and Stitches + public abstract class FlowBase : Parsed.Object, INamedContent + { + public class Argument + { + public Identifier identifier; + public bool isByReference; + public bool isDivertTarget; + } + + public string name + { + get { return identifier?.name; } + } + public Identifier identifier { get; set; } + public List arguments { get; protected set; } + public bool hasParameters { get { return arguments != null && arguments.Count > 0; } } + public Dictionary variableDeclarations; + + public abstract FlowLevel flowLevel { get; } + public bool isFunction { get; protected set; } + + public FlowBase (Identifier name = null, List topLevelObjects = null, List arguments = null, bool isFunction = false, bool isIncludedStory = false) + { + this.identifier = name; + + if (topLevelObjects == null) { + topLevelObjects = new List (); + } + + // Used by story to add includes + PreProcessTopLevelObjects (topLevelObjects); + + topLevelObjects = SplitWeaveAndSubFlowContent (topLevelObjects, isRootStory:this is Story && !isIncludedStory); + + AddContent(topLevelObjects); + + this.arguments = arguments; + this.isFunction = isFunction; + this.variableDeclarations = new Dictionary (); + } + + List SplitWeaveAndSubFlowContent(List contentObjs, bool isRootStory) + { + var weaveObjs = new List (); + var subFlowObjs = new List (); + + _subFlowsByName = new Dictionary (); + + foreach (var obj in contentObjs) { + + var subFlow = obj as FlowBase; + if (subFlow) { + if (_firstChildFlow == null) + _firstChildFlow = subFlow; + + subFlowObjs.Add (obj); + _subFlowsByName [subFlow.identifier?.name] = subFlow; + } else { + weaveObjs.Add (obj); + } + } + + // Implicit final gather in top level story for ending without warning that you run out of content + if (isRootStory) { + weaveObjs.Add (new Gather (null, 1)); + weaveObjs.Add (new Divert (new Path (Identifier.Done))); + } + + var finalContent = new List (); + + if (weaveObjs.Count > 0) { + _rootWeave = new Weave (weaveObjs, 0); + finalContent.Add (_rootWeave); + } + + if (subFlowObjs.Count > 0) { + finalContent.AddRange (subFlowObjs); + } + + return finalContent; + } + + protected virtual void PreProcessTopLevelObjects(List topLevelObjects) + { + // empty by default, used by Story to process included file references + } + + public struct VariableResolveResult + { + public bool found; + public bool isGlobal; + public bool isArgument; + public bool isTemporary; + public FlowBase ownerFlow; + } + + public VariableResolveResult ResolveVariableWithName(string varName, Parsed.Object fromNode) + { + var result = new VariableResolveResult (); + + // Search in the stitch / knot that owns the node first + var ownerFlow = fromNode == null ? this : fromNode.ClosestFlowBase (); + + // Argument + if (ownerFlow.arguments != null ) { + foreach (var arg in ownerFlow.arguments) { + if (arg.identifier.name.Equals (varName)) { + result.found = true; + result.isArgument = true; + result.ownerFlow = ownerFlow; + return result; + } + } + } + + // Temp + var story = this.story; // optimisation + if (ownerFlow != story && ownerFlow.variableDeclarations.ContainsKey (varName)) { + result.found = true; + result.ownerFlow = ownerFlow; + result.isTemporary = true; + return result; + } + + // Global + if (story.variableDeclarations.ContainsKey (varName)) { + result.found = true; + result.ownerFlow = story; + result.isGlobal = true; + return result; + } + + result.found = false; + return result; + } + + public void TryAddNewVariableDeclaration(VariableAssignment varDecl) + { + var varName = varDecl.variableName; + if (variableDeclarations.ContainsKey (varName)) { + + var prevDeclError = ""; + var debugMetadata = variableDeclarations [varName].debugMetadata; + if (debugMetadata != null) { + prevDeclError = " ("+variableDeclarations [varName].debugMetadata+")"; + } + Error("found declaration variable '"+varName+"' that was already declared"+prevDeclError, varDecl, false); + + return; + } + + variableDeclarations [varDecl.variableName] = varDecl; + } + + public void ResolveWeavePointNaming () + { + // Find all weave points and organise them by name ready for + // diverting. Also detect naming collisions. + if( _rootWeave ) + _rootWeave.ResolveWeavePointNaming (); + + if (_subFlowsByName != null) { + foreach (var namedSubFlow in _subFlowsByName) { + namedSubFlow.Value.ResolveWeavePointNaming (); + } + } + } + + public override Runtime.Object GenerateRuntimeObject () + { + Return foundReturn = null; + if (isFunction) { + CheckForDisallowedFunctionFlowControl (); + } + + // Non-functon: Make sure knots and stitches don't attempt to use Return statement + else if( flowLevel == FlowLevel.Knot || flowLevel == FlowLevel.Stitch ) { + foundReturn = Find (); + if (foundReturn != null) { + Error ("Return statements can only be used in knots that are declared as functions: == function " + this.identifier + " ==", foundReturn); + } + } + + var container = new Runtime.Container (); + container.name = identifier?.name; + + if( this.story.countAllVisits ) { + container.visitsShouldBeCounted = true; + } + + GenerateArgumentVariableAssignments (container); + + // Run through content defined for this knot/stitch: + // - First of all, any initial content before a sub-stitch + // or any weave content is added to the main content container + // - The first inner knot/stitch is automatically entered, while + // the others are only accessible by an explicit divert + // - The exception to this rule is if the knot/stitch takes + // parameters, in which case it can't be auto-entered. + // - Any Choices and Gathers (i.e. IWeavePoint) found are + // processsed by GenerateFlowContent. + int contentIdx = 0; + while (content != null && contentIdx < content.Count) { + + Parsed.Object obj = content [contentIdx]; + + // Inner knots and stitches + if (obj is FlowBase) { + + var childFlow = (FlowBase)obj; + + var childFlowRuntime = childFlow.runtimeObject; + + // First inner stitch - automatically step into it + // 20/09/2016 - let's not auto step into knots + if (contentIdx == 0 && !childFlow.hasParameters + && this.flowLevel == FlowLevel.Knot) { + _startingSubFlowDivert = new Runtime.Divert (); + container.AddContent(_startingSubFlowDivert); + _startingSubFlowRuntime = childFlowRuntime; + } + + // Check for duplicate knots/stitches with same name + var namedChild = (Runtime.INamedContent)childFlowRuntime; + Runtime.INamedContent existingChild = null; + if (container.namedContent.TryGetValue(namedChild.name, out existingChild) ) { + var errorMsg = string.Format ("{0} already contains flow named '{1}' (at {2})", + this.GetType().Name, + namedChild.name, + (existingChild as Runtime.Object).debugMetadata); + + Error (errorMsg, childFlow); + } + + container.AddToNamedContentOnly (namedChild); + } + + // Other content (including entire Weaves that were grouped in the constructor) + // At the time of writing, all FlowBases have a maximum of one piece of "other content" + // and it's always the root Weave + else { + container.AddContent (obj.runtimeObject); + } + + contentIdx++; + } + + // CHECK FOR FINAL LOOSE ENDS! + // Notes: + // - Functions don't need to terminate - they just implicitly return + // - If return statement was found, don't continue finding warnings for missing control flow, + // since it's likely that a return statement has been used instead of a ->-> or something, + // or the writer failed to mark the knot as a function. + // - _rootWeave may be null if it's a knot that only has stitches + if (flowLevel != FlowLevel.Story && !this.isFunction && _rootWeave != null && foundReturn == null) { + _rootWeave.ValidateTermination (WarningInTermination); + } + + return container; + } + + void GenerateArgumentVariableAssignments(Runtime.Container container) + { + if (this.arguments == null || this.arguments.Count == 0) { + return; + } + + // Assign parameters in reverse since they'll be popped off the evaluation stack + // No need to generate EvalStart and EvalEnd since there's nothing being pushed + // back onto the evaluation stack. + for (int i = arguments.Count - 1; i >= 0; --i) { + var paramName = arguments [i].identifier?.name; + + var assign = new Runtime.VariableAssignment (paramName, isNewDeclaration:true); + container.AddContent (assign); + } + } + + public Parsed.Object ContentWithNameAtLevel(string name, FlowLevel? level = null, bool deepSearch = false) + { + // Referencing self? + if (level == this.flowLevel || level == null) { + if (name == this.identifier?.name) { + return this; + } + } + + if ( level == FlowLevel.WeavePoint || level == null ) { + + Parsed.Object weavePointResult = null; + + if (_rootWeave) { + weavePointResult = (Parsed.Object)_rootWeave.WeavePointNamed (name); + if (weavePointResult) + return weavePointResult; + } + + // Stop now if we only wanted a result if it's a weave point? + if (level == FlowLevel.WeavePoint) + return deepSearch ? DeepSearchForAnyLevelContent(name) : null; + } + + // If this flow would be incapable of containing the requested level, early out + // (e.g. asking for a Knot from a Stitch) + if (level != null && level < this.flowLevel) + return null; + + FlowBase subFlow = null; + + if (_subFlowsByName.TryGetValue (name, out subFlow)) { + if (level == null || level == subFlow.flowLevel) + return subFlow; + } + + return deepSearch ? DeepSearchForAnyLevelContent(name) : null; + } + + Parsed.Object DeepSearchForAnyLevelContent(string name) + { + var weaveResultSelf = ContentWithNameAtLevel (name, level:FlowLevel.WeavePoint, deepSearch: false); + if (weaveResultSelf) { + return weaveResultSelf; + } + + foreach (var subFlowNamePair in _subFlowsByName) { + var subFlow = subFlowNamePair.Value; + var deepResult = subFlow.ContentWithNameAtLevel (name, level:null, deepSearch: true); + if (deepResult) + return deepResult; + } + + return null; + } + + public override void ResolveReferences (Story context) + { + if (_startingSubFlowDivert) { + _startingSubFlowDivert.targetPath = _startingSubFlowRuntime.path; + } + + base.ResolveReferences(context); + + // Check validity of parameter names + if (arguments != null) { + + foreach (var arg in arguments) + context.CheckForNamingCollisions (this, arg.identifier, Story.SymbolType.Arg, "argument"); + + // Separately, check for duplicate arugment names, since they aren't Parsed.Objects, + // so have to be checked independently. + for (int i = 0; i < arguments.Count; i++) { + for (int j = i + 1; j < arguments.Count; j++) { + if (arguments [i].identifier?.name == arguments [j].identifier?.name) { + Error ("Multiple arguments with the same name: '" + arguments [i].identifier + "'"); + } + } + } + } + + // Check naming collisions for knots and stitches + if (flowLevel != FlowLevel.Story) { + // Weave points aren't FlowBases, so this will only be knot or stitch + var symbolType = flowLevel == FlowLevel.Knot ? Story.SymbolType.Knot : Story.SymbolType.SubFlowAndWeave; + context.CheckForNamingCollisions (this, identifier, symbolType); + } + } + + void CheckForDisallowedFunctionFlowControl() + { + if (!(this is Knot)) { + Error ("Functions cannot be stitches - i.e. they should be defined as '== function myFunc ==' rather than public to another knot."); + } + + // Not allowed sub-flows + foreach (var subFlowAndName in _subFlowsByName) { + var name = subFlowAndName.Key; + var subFlow = subFlowAndName.Value; + Error ("Functions may not contain stitches, but saw '"+name+"' within the function '"+this.identifier+"'", subFlow); + } + + var allDiverts = _rootWeave.FindAll (); + foreach (var divert in allDiverts) { + if( !divert.isFunctionCall && !(divert.parent is DivertTarget) ) + Error ("Functions may not contain diverts, but saw '"+divert.ToString()+"'", divert); + } + + var allChoices = _rootWeave.FindAll (); + foreach (var choice in allChoices) { + Error ("Functions may not contain choices, but saw '"+choice.ToString()+"'", choice); + } + } + + void WarningInTermination(Parsed.Object terminatingObject) + { + string message = "Apparent loose end exists where the flow runs out. Do you need a '-> DONE' statement, choice or divert?"; + if (terminatingObject.parent == _rootWeave && _firstChildFlow) { + message = message + " Note that if you intend to enter '"+_firstChildFlow.identifier+"' next, you need to divert to it explicitly."; + } + + var terminatingDivert = terminatingObject as Divert; + if (terminatingDivert && terminatingDivert.isTunnel) { + message = message + " When final tunnel to '"+terminatingDivert.target+" ->' returns it won't have anywhere to go."; + } + + Warning (message, terminatingObject); + } + + protected Dictionary subFlowsByName { + get { + return _subFlowsByName; + } + } + + public override string typeName { + get { + if (isFunction) return "Function"; + else return flowLevel.ToString (); + } + } + + public override string ToString () + { + return typeName+" '" + identifier + "'"; + } + + Weave _rootWeave; + Dictionary _subFlowsByName; + Runtime.Divert _startingSubFlowDivert; + Runtime.Object _startingSubFlowRuntime; + FlowBase _firstChildFlow; + + } +} + diff --git a/Assets/Ink/compiler/ParsedHierarchy/FlowBase.cs.meta b/Assets/Ink/compiler/ParsedHierarchy/FlowBase.cs.meta new file mode 100644 index 000000000..debb480b9 --- /dev/null +++ b/Assets/Ink/compiler/ParsedHierarchy/FlowBase.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c936ee81c2333434e9fa16f064b00713 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Ink/compiler/ParsedHierarchy/FlowLevel.cs b/Assets/Ink/compiler/ParsedHierarchy/FlowLevel.cs new file mode 100644 index 000000000..5bbdce00b --- /dev/null +++ b/Assets/Ink/compiler/ParsedHierarchy/FlowLevel.cs @@ -0,0 +1,11 @@ +namespace Ink.Parsed +{ + public enum FlowLevel + { + Story, + Knot, + Stitch, + WeavePoint // not actually a FlowBase, but used for diverts + } +} + diff --git a/Assets/Ink/compiler/ParsedHierarchy/FlowLevel.cs.meta b/Assets/Ink/compiler/ParsedHierarchy/FlowLevel.cs.meta new file mode 100644 index 000000000..d9dca7f9c --- /dev/null +++ b/Assets/Ink/compiler/ParsedHierarchy/FlowLevel.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d23be1022b71f37498259aec83d4f1ea +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Ink/compiler/ParsedHierarchy/FunctionCall.cs b/Assets/Ink/compiler/ParsedHierarchy/FunctionCall.cs new file mode 100644 index 000000000..d3d40f5ca --- /dev/null +++ b/Assets/Ink/compiler/ParsedHierarchy/FunctionCall.cs @@ -0,0 +1,242 @@ +using System.Collections.Generic; + +namespace Ink.Parsed +{ + public class FunctionCall : Expression + { + public string name { get { return _proxyDivert.target.firstComponent; } } + public Divert proxyDivert { get { return _proxyDivert; } } + public List arguments { get { return _proxyDivert.arguments; } } + public Runtime.Divert runtimeDivert { get { return _proxyDivert.runtimeDivert; } } + public bool isChoiceCount { get { return name == "CHOICE_COUNT"; } } + public bool isTurns { get { return name == "TURNS"; } } + public bool isTurnsSince { get { return name == "TURNS_SINCE"; } } + public bool isRandom { get { return name == "RANDOM"; } } + public bool isSeedRandom { get { return name == "SEED_RANDOM"; } } + public bool isListRange { get { return name == "LIST_RANGE"; } } + public bool isListRandom { get { return name == "LIST_RANDOM"; } } + public bool isReadCount { get { return name == "READ_COUNT"; } } + + public bool shouldPopReturnedValue; + + public FunctionCall (Identifier functionName, List arguments) + { + _proxyDivert = new Parsed.Divert(new Path(functionName), arguments); + _proxyDivert.isFunctionCall = true; + AddContent (_proxyDivert); + } + + public override void GenerateIntoContainer (Runtime.Container container) + { + var foundList = story.ResolveList (name); + + bool usingProxyDivert = false; + + if (isChoiceCount) { + + if (arguments.Count > 0) + Error ("The CHOICE_COUNT() function shouldn't take any arguments"); + + container.AddContent (Runtime.ControlCommand.ChoiceCount ()); + + } else if (isTurns) { + + if (arguments.Count > 0) + Error ("The TURNS() function shouldn't take any arguments"); + + container.AddContent (Runtime.ControlCommand.Turns ()); + + } else if (isTurnsSince || isReadCount) { + + var divertTarget = arguments [0] as DivertTarget; + var variableDivertTarget = arguments [0] as VariableReference; + + if (arguments.Count != 1 || (divertTarget == null && variableDivertTarget == null)) { + Error ("The " + name + "() function should take one argument: a divert target to the target knot, stitch, gather or choice you want to check. e.g. TURNS_SINCE(-> myKnot)"); + return; + } + + if (divertTarget) { + _divertTargetToCount = divertTarget; + AddContent (_divertTargetToCount); + + _divertTargetToCount.GenerateIntoContainer (container); + } else { + _variableReferenceToCount = variableDivertTarget; + AddContent (_variableReferenceToCount); + + _variableReferenceToCount.GenerateIntoContainer (container); + } + + if (isTurnsSince) + container.AddContent (Runtime.ControlCommand.TurnsSince ()); + else + container.AddContent (Runtime.ControlCommand.ReadCount ()); + + } else if (isRandom) { + if (arguments.Count != 2) + Error ("RANDOM should take 2 parameters: a minimum and a maximum integer"); + + // We can type check single values, but not complex expressions + for (int arg = 0; arg < arguments.Count; arg++) { + if (arguments [arg] is Number) { + var num = arguments [arg] as Number; + if (!(num.value is int)) { + string paramName = arg == 0 ? "minimum" : "maximum"; + Error ("RANDOM's " + paramName + " parameter should be an integer"); + } + } + + arguments [arg].GenerateIntoContainer (container); + } + + container.AddContent (Runtime.ControlCommand.Random ()); + + } else if (isSeedRandom) { + if (arguments.Count != 1) + Error ("SEED_RANDOM should take 1 parameter - an integer seed"); + + var num = arguments [0] as Number; + if (num && !(num.value is int)) { + Error ("SEED_RANDOM's parameter should be an integer seed"); + } + + arguments [0].GenerateIntoContainer (container); + + container.AddContent (Runtime.ControlCommand.SeedRandom ()); + + } else if (isListRange) { + if (arguments.Count != 3) + Error ("LIST_RANGE should take 3 parameters - a list, a min and a max"); + + for (int arg = 0; arg < arguments.Count; arg++) + arguments [arg].GenerateIntoContainer (container); + + container.AddContent (Runtime.ControlCommand.ListRange ()); + + } else if( isListRandom ) { + if (arguments.Count != 1) + Error ("LIST_RANDOM should take 1 parameter - a list"); + + arguments [0].GenerateIntoContainer (container); + + container.AddContent (Runtime.ControlCommand.ListRandom ()); + + } else if (Runtime.NativeFunctionCall.CallExistsWithName (name)) { + + var nativeCall = Runtime.NativeFunctionCall.CallWithName (name); + + if (nativeCall.numberOfParameters != arguments.Count) { + var msg = name + " should take " + nativeCall.numberOfParameters + " parameter"; + if (nativeCall.numberOfParameters > 1) + msg += "s"; + Error (msg); + } + + for (int arg = 0; arg < arguments.Count; arg++) + arguments [arg].GenerateIntoContainer (container); + + container.AddContent (Runtime.NativeFunctionCall.CallWithName (name)); + } else if (foundList != null) { + if (arguments.Count > 1) + Error ("Can currently only construct a list from one integer (or an empty list from a given list definition)"); + + // List item from given int + if (arguments.Count == 1) { + container.AddContent (new Runtime.StringValue (name)); + arguments [0].GenerateIntoContainer (container); + container.AddContent (Runtime.ControlCommand.ListFromInt ()); + } + + // Empty list with given origin. + else { + var list = new Runtime.InkList (); + list.SetInitialOriginName (name); + container.AddContent (new Runtime.ListValue (list)); + } + } + + // Normal function call + else { + container.AddContent (_proxyDivert.runtimeObject); + usingProxyDivert = true; + } + + // Don't attempt to resolve as a divert if we're not doing a normal function call + if( !usingProxyDivert ) content.Remove (_proxyDivert); + + // Function calls that are used alone on a tilda-based line: + // ~ func() + // Should tidy up any returned value from the evaluation stack, + // since it's unused. + if (shouldPopReturnedValue) + container.AddContent (Runtime.ControlCommand.PopEvaluatedValue ()); + } + + public override void ResolveReferences (Story context) + { + base.ResolveReferences (context); + + // If we aren't using the proxy divert after all (e.g. if + // it's a native function call), but we still have arguments, + // we need to make sure they get resolved since the proxy divert + // is no longer in the content array. + if (!content.Contains(_proxyDivert) && arguments != null) { + foreach (var arg in arguments) + arg.ResolveReferences (context); + } + + if( _divertTargetToCount ) { + var divert = _divertTargetToCount.divert; + var attemptingTurnCountOfVariableTarget = divert.runtimeDivert.variableDivertName != null; + + if( attemptingTurnCountOfVariableTarget ) { + Error("When getting the TURNS_SINCE() of a variable target, remove the '->' - i.e. it should just be TURNS_SINCE("+divert.runtimeDivert.variableDivertName+")"); + return; + } + + var targetObject = divert.targetContent; + if( targetObject == null ) { + if( !attemptingTurnCountOfVariableTarget ) { + Error("Failed to find target for TURNS_SINCE: '"+divert.target+"'"); + } + } else { + targetObject.containerForCounting.turnIndexShouldBeCounted = true; + } + } + + else if( _variableReferenceToCount ) { + var runtimeVarRef = _variableReferenceToCount.runtimeVarRef; + if( runtimeVarRef.pathForCount != null ) { + Error("Should be "+name+"(-> "+_variableReferenceToCount.name+"). Usage without the '->' only makes sense for variable targets."); + } + } + } + + public static bool IsBuiltIn(string name) + { + if (Runtime.NativeFunctionCall.CallExistsWithName (name)) + return true; + + return name == "CHOICE_COUNT" + || name == "TURNS_SINCE" + || name == "TURNS" + || name == "RANDOM" + || name == "SEED_RANDOM" + || name == "LIST_VALUE" + || name == "LIST_RANDOM" + || name == "READ_COUNT"; + } + + public override string ToString () + { + var strArgs = string.Join (", ", arguments.ToStringsArray()); + return string.Format ("{0}({1})", name, strArgs); + } + + Parsed.Divert _proxyDivert; + Parsed.DivertTarget _divertTargetToCount; + Parsed.VariableReference _variableReferenceToCount; + } +} + diff --git a/Assets/Ink/compiler/ParsedHierarchy/FunctionCall.cs.meta b/Assets/Ink/compiler/ParsedHierarchy/FunctionCall.cs.meta new file mode 100644 index 000000000..ba7946b02 --- /dev/null +++ b/Assets/Ink/compiler/ParsedHierarchy/FunctionCall.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d0c4ce3f9917d9640992812b5a79ab0f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Ink/compiler/ParsedHierarchy/Gather.cs b/Assets/Ink/compiler/ParsedHierarchy/Gather.cs new file mode 100644 index 000000000..ca86acf52 --- /dev/null +++ b/Assets/Ink/compiler/ParsedHierarchy/Gather.cs @@ -0,0 +1,51 @@ + +namespace Ink.Parsed +{ + public class Gather : Parsed.Object, IWeavePoint, INamedContent + { + public string name + { + get { return identifier?.name; } + } + public Identifier identifier { get; set; } + public int indentationDepth { get; protected set; } + + public Runtime.Container runtimeContainer { get { return (Runtime.Container) runtimeObject; } } + + public Gather (Identifier identifier, int indentationDepth) + { + this.identifier = identifier; + this.indentationDepth = indentationDepth; + } + + public override Runtime.Object GenerateRuntimeObject () + { + var container = new Runtime.Container (); + container.name = name; + + if (this.story.countAllVisits) { + container.visitsShouldBeCounted = true; + } + + container.countingAtStartOnly = true; + + // A gather can have null content, e.g. it's just purely a line with "-" + if (content != null) { + foreach (var c in content) { + container.AddContent (c.runtimeObject); + } + } + + return container; + } + + public override void ResolveReferences (Story context) + { + base.ResolveReferences (context); + + if( identifier != null && identifier.name.Length > 0 ) + context.CheckForNamingCollisions (this, identifier, Story.SymbolType.SubFlowAndWeave); + } + } +} + diff --git a/Assets/Ink/compiler/ParsedHierarchy/Gather.cs.meta b/Assets/Ink/compiler/ParsedHierarchy/Gather.cs.meta new file mode 100644 index 000000000..0b9c2f05d --- /dev/null +++ b/Assets/Ink/compiler/ParsedHierarchy/Gather.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: fc66aa755c03c4446a671dc409d2a3d4 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Ink/compiler/ParsedHierarchy/INamedContent.cs b/Assets/Ink/compiler/ParsedHierarchy/INamedContent.cs new file mode 100644 index 000000000..fa1444905 --- /dev/null +++ b/Assets/Ink/compiler/ParsedHierarchy/INamedContent.cs @@ -0,0 +1,9 @@ + +namespace Ink.Parsed +{ + public interface INamedContent + { + string name { get; } + } +} + diff --git a/Assets/Ink/compiler/ParsedHierarchy/INamedContent.cs.meta b/Assets/Ink/compiler/ParsedHierarchy/INamedContent.cs.meta new file mode 100644 index 000000000..d2a9aff34 --- /dev/null +++ b/Assets/Ink/compiler/ParsedHierarchy/INamedContent.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: fe4e97c6e629c9549b6dd70ad506b3c5 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Ink/compiler/ParsedHierarchy/IWeavePoint.cs b/Assets/Ink/compiler/ParsedHierarchy/IWeavePoint.cs new file mode 100644 index 000000000..4155823f3 --- /dev/null +++ b/Assets/Ink/compiler/ParsedHierarchy/IWeavePoint.cs @@ -0,0 +1,15 @@ +using System.Collections.Generic; + +namespace Ink.Parsed +{ + public interface IWeavePoint + { + int indentationDepth { get; } + Runtime.Container runtimeContainer { get; } + List content { get; } + string name { get; } + Identifier identifier { get; } + + } +} + diff --git a/Assets/Ink/compiler/ParsedHierarchy/IWeavePoint.cs.meta b/Assets/Ink/compiler/ParsedHierarchy/IWeavePoint.cs.meta new file mode 100644 index 000000000..99f84663e --- /dev/null +++ b/Assets/Ink/compiler/ParsedHierarchy/IWeavePoint.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c5a8ee94bb73bc146a9dd64fa514588d +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Ink/compiler/ParsedHierarchy/Identifier.cs b/Assets/Ink/compiler/ParsedHierarchy/Identifier.cs new file mode 100644 index 000000000..5f76529a6 --- /dev/null +++ b/Assets/Ink/compiler/ParsedHierarchy/Identifier.cs @@ -0,0 +1,13 @@ +namespace Ink.Parsed { + public class Identifier { + public string name; + public Runtime.DebugMetadata debugMetadata; + + public override string ToString() + { + return name; + } + + public static Identifier Done = new Identifier { name = "DONE", debugMetadata = null }; + } +} diff --git a/Assets/Ink/compiler/ParsedHierarchy/Identifier.cs.meta b/Assets/Ink/compiler/ParsedHierarchy/Identifier.cs.meta new file mode 100644 index 000000000..493c9ec70 --- /dev/null +++ b/Assets/Ink/compiler/ParsedHierarchy/Identifier.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b328538ea93d8484da7f7740ed92e222 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Ink/compiler/ParsedHierarchy/IncludedFile.cs b/Assets/Ink/compiler/ParsedHierarchy/IncludedFile.cs new file mode 100644 index 000000000..5eee99b38 --- /dev/null +++ b/Assets/Ink/compiler/ParsedHierarchy/IncludedFile.cs @@ -0,0 +1,20 @@ + +namespace Ink.Parsed +{ + public class IncludedFile : Parsed.Object + { + public Parsed.Story includedStory { get; private set; } + + public IncludedFile (Parsed.Story includedStory) + { + this.includedStory = includedStory; + } + + public override Runtime.Object GenerateRuntimeObject () + { + // Left to the main story to process + return null; + } + } +} + diff --git a/Assets/Ink/compiler/ParsedHierarchy/IncludedFile.cs.meta b/Assets/Ink/compiler/ParsedHierarchy/IncludedFile.cs.meta new file mode 100644 index 000000000..1bfa6eebb --- /dev/null +++ b/Assets/Ink/compiler/ParsedHierarchy/IncludedFile.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 43fcbe37e6ea64e41a9ae8930f60482c +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Ink/compiler/ParsedHierarchy/Knot.cs b/Assets/Ink/compiler/ParsedHierarchy/Knot.cs new file mode 100644 index 000000000..a39a44cb3 --- /dev/null +++ b/Assets/Ink/compiler/ParsedHierarchy/Knot.cs @@ -0,0 +1,35 @@ +using System.Collections.Generic; + +namespace Ink.Parsed +{ + public class Knot : FlowBase + { + public override FlowLevel flowLevel { get { return FlowLevel.Knot; } } + + public Knot (Identifier name, List topLevelObjects, List arguments, bool isFunction) : base(name, topLevelObjects, arguments, isFunction) + { + } + + public override void ResolveReferences (Story context) + { + base.ResolveReferences (context); + + var parentStory = this.story; + + // Enforce rule that stitches must not have the same + // name as any knots that exist in the story + foreach (var stitchNamePair in subFlowsByName) { + var stitchName = stitchNamePair.Key; + + var knotWithStitchName = parentStory.ContentWithNameAtLevel (stitchName, FlowLevel.Knot, false); + if (knotWithStitchName) { + var stitch = stitchNamePair.Value; + var errorMsg = string.Format ("Stitch '{0}' has the same name as a knot (on {1})", stitch.identifier, knotWithStitchName.debugMetadata); + Error(errorMsg, stitch); + } + } + } + + } +} + diff --git a/Assets/Ink/compiler/ParsedHierarchy/Knot.cs.meta b/Assets/Ink/compiler/ParsedHierarchy/Knot.cs.meta new file mode 100644 index 000000000..366db9839 --- /dev/null +++ b/Assets/Ink/compiler/ParsedHierarchy/Knot.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 62729918840194249af54e112c8f2af2 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Ink/compiler/ParsedHierarchy/List.cs b/Assets/Ink/compiler/ParsedHierarchy/List.cs new file mode 100644 index 000000000..db48d8505 --- /dev/null +++ b/Assets/Ink/compiler/ParsedHierarchy/List.cs @@ -0,0 +1,53 @@ +using System.Collections.Generic; + +namespace Ink.Parsed +{ + public class List : Parsed.Expression + { + public List itemIdentifierList; + + public List (List itemIdentifierList) + { + this.itemIdentifierList = itemIdentifierList; + } + + public override void GenerateIntoContainer (Runtime.Container container) + { + var runtimeRawList = new Runtime.InkList (); + + if (itemIdentifierList != null) { + foreach (var itemIdentifier in itemIdentifierList) { + var nameParts = itemIdentifier?.name.Split ('.'); + + string listName = null; + string listItemName = null; + if (nameParts.Length > 1) { + listName = nameParts [0]; + listItemName = nameParts [1]; + } else { + listItemName = nameParts [0]; + } + + var listItem = story.ResolveListItem (listName, listItemName, this); + if (listItem == null) { + if (listName == null) + Error ("Could not find list definition that contains item '" + itemIdentifier + "'"); + else + Error ("Could not find list item " + itemIdentifier); + } else { + if (listName == null) + listName = ((ListDefinition)listItem.parent).identifier?.name; + var item = new Runtime.InkListItem (listName, listItem.name); + + if (runtimeRawList.ContainsKey (item)) + Warning ("Duplicate of item '"+itemIdentifier+"' in list."); + else + runtimeRawList [item] = listItem.seriesValue; + } + } + } + + container.AddContent(new Runtime.ListValue (runtimeRawList)); + } + } +} diff --git a/Assets/Ink/compiler/ParsedHierarchy/List.cs.meta b/Assets/Ink/compiler/ParsedHierarchy/List.cs.meta new file mode 100644 index 000000000..c2e088fa2 --- /dev/null +++ b/Assets/Ink/compiler/ParsedHierarchy/List.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b4457a33a5ed85a45b70349f369742f3 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Ink/compiler/ParsedHierarchy/ListDefinition.cs b/Assets/Ink/compiler/ParsedHierarchy/ListDefinition.cs new file mode 100644 index 000000000..2010d1a0b --- /dev/null +++ b/Assets/Ink/compiler/ParsedHierarchy/ListDefinition.cs @@ -0,0 +1,139 @@ +using System; +using System.Collections.Generic; +using System.Linq; + +namespace Ink.Parsed +{ + public class ListDefinition : Parsed.Object + { + public Identifier identifier; + public List itemDefinitions; + + public VariableAssignment variableAssignment; + + public Runtime.ListDefinition runtimeListDefinition { + get { + var allItems = new Dictionary (); + foreach (var e in itemDefinitions) { + if( !allItems.ContainsKey(e.name) ) + allItems.Add (e.name, e.seriesValue); + else + Error("List '"+identifier+"' contains dupicate items called '"+e.name+"'"); + } + + return new Runtime.ListDefinition (identifier?.name, allItems); + } + } + + public ListElementDefinition ItemNamed (string itemName) + { + if (_elementsByName == null) { + _elementsByName = new Dictionary (); + foreach (var el in itemDefinitions) { + _elementsByName [el.name] = el; + } + } + + ListElementDefinition foundElement; + if (_elementsByName.TryGetValue (itemName, out foundElement)) + return foundElement; + + return null; + } + + public ListDefinition (List elements) + { + this.itemDefinitions = elements; + + int currentValue = 1; + foreach (var e in this.itemDefinitions) { + if (e.explicitValue != null) + currentValue = e.explicitValue.Value; + + e.seriesValue = currentValue; + + currentValue++; + } + + AddContent (elements); + } + + public override Runtime.Object GenerateRuntimeObject () + { + var initialValues = new Runtime.InkList (); + foreach (var itemDef in itemDefinitions) { + if (itemDef.inInitialList) { + var item = new Runtime.InkListItem (this.identifier?.name, itemDef.name); + initialValues [item] = itemDef.seriesValue; + } + } + + // Set origin name, so + initialValues.SetInitialOriginName (identifier?.name); + + return new Runtime.ListValue (initialValues); + } + + public override void ResolveReferences (Story context) + { + base.ResolveReferences (context); + + context.CheckForNamingCollisions (this, identifier, Story.SymbolType.List); + } + + public override string typeName { + get { + return "List definition"; + } + } + + Dictionary _elementsByName; + } + + public class ListElementDefinition : Parsed.Object + { + public string name + { + get { return identifier?.name; } + } + public Identifier identifier; + public int? explicitValue; + public int seriesValue; + public bool inInitialList; + + public string fullName { + get { + var parentList = parent as ListDefinition; + if (parentList == null) + throw new System.Exception ("Can't get full name without a parent list"); + + return parentList.identifier + "." + name; + } + } + + public ListElementDefinition (Identifier identifier, bool inInitialList, int? explicitValue = null) + { + this.identifier = identifier; + this.inInitialList = inInitialList; + this.explicitValue = explicitValue; + } + + public override Runtime.Object GenerateRuntimeObject () + { + throw new System.NotImplementedException (); + } + + public override void ResolveReferences (Story context) + { + base.ResolveReferences (context); + + context.CheckForNamingCollisions (this, identifier, Story.SymbolType.ListItem); + } + + public override string typeName { + get { + return "List element"; + } + } + } +} diff --git a/Assets/Ink/compiler/ParsedHierarchy/ListDefinition.cs.meta b/Assets/Ink/compiler/ParsedHierarchy/ListDefinition.cs.meta new file mode 100644 index 000000000..1307aa7ec --- /dev/null +++ b/Assets/Ink/compiler/ParsedHierarchy/ListDefinition.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 0ea0412208ae5364db5254fd7f4031a0 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Ink/compiler/ParsedHierarchy/Number.cs b/Assets/Ink/compiler/ParsedHierarchy/Number.cs new file mode 100644 index 000000000..be67bfd94 --- /dev/null +++ b/Assets/Ink/compiler/ParsedHierarchy/Number.cs @@ -0,0 +1,53 @@ + +namespace Ink.Parsed +{ + public class Number : Parsed.Expression + { + public object value; + + public Number(object value) + { + if (value is int || value is float || value is bool) { + this.value = value; + } else { + throw new System.Exception ("Unexpected object type in Number"); + } + } + + public override void GenerateIntoContainer (Runtime.Container container) + { + if (value is int) { + container.AddContent (new Runtime.IntValue ((int)value)); + } else if (value is float) { + container.AddContent (new Runtime.FloatValue ((float)value)); + } else if(value is bool) { + container.AddContent (new Runtime.BoolValue ((bool)value)); + } + } + + public override string ToString () + { + if (value is float) { + return ((float)value).ToString(System.Globalization.CultureInfo.InvariantCulture); + } else { + return value.ToString(); + } + } + + // Equals override necessary in order to check for CONST multiple definition equality + public override bool Equals (object obj) + { + var otherNum = obj as Number; + if (otherNum == null) return false; + + return this.value.Equals (otherNum.value); + } + + public override int GetHashCode () + { + return this.value.GetHashCode (); + } + + } +} + diff --git a/Assets/Ink/compiler/ParsedHierarchy/Number.cs.meta b/Assets/Ink/compiler/ParsedHierarchy/Number.cs.meta new file mode 100644 index 000000000..76c28f223 --- /dev/null +++ b/Assets/Ink/compiler/ParsedHierarchy/Number.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 147bc942db743f1448c887d60ac20fbf +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Ink/compiler/ParsedHierarchy/Object.cs b/Assets/Ink/compiler/ParsedHierarchy/Object.cs new file mode 100644 index 000000000..381a11e04 --- /dev/null +++ b/Assets/Ink/compiler/ParsedHierarchy/Object.cs @@ -0,0 +1,363 @@ +using System.Collections.Generic; +using System.Text; + +namespace Ink.Parsed +{ + public abstract class Object + { + public Runtime.DebugMetadata debugMetadata { + get { + if (_debugMetadata == null) { + if (parent) { + return parent.debugMetadata; + } + } + + return _debugMetadata; + } + + set { + _debugMetadata = value; + } + } + private Runtime.DebugMetadata _debugMetadata; + + public bool hasOwnDebugMetadata { + get { + return _debugMetadata != null; + } + } + + public virtual string typeName { + get { + return GetType().Name; + } + } + + public Parsed.Object parent { get; set; } + public List content { get; protected set; } + + public Parsed.Story story { + get { + Parsed.Object ancestor = this; + while (ancestor.parent) { + ancestor = ancestor.parent; + } + return ancestor as Parsed.Story; + } + } + + private Runtime.Object _runtimeObject; + public Runtime.Object runtimeObject + { + get { + if (_runtimeObject == null) { + _runtimeObject = GenerateRuntimeObject (); + if( _runtimeObject ) + _runtimeObject.debugMetadata = debugMetadata; + } + return _runtimeObject; + } + + set { + _runtimeObject = value; + } + } + + // virtual so that certian object types can return a different + // path than just the path to the main runtimeObject. + // e.g. a Choice returns a path to its content rather than + // its outer container. + public virtual Runtime.Path runtimePath + { + get { + return runtimeObject.path; + } + } + + // When counting visits and turns since, different object + // types may have different containers that needs to be counted. + // For most it'll just be the object's main runtime object, + // but for e.g. choices, it'll be the target container. + public virtual Runtime.Container containerForCounting + { + get { + return this.runtimeObject as Runtime.Container; + } + } + + public Parsed.Path PathRelativeTo(Parsed.Object otherObj) + { + var ownAncestry = ancestry; + var otherAncestry = otherObj.ancestry; + + Parsed.Object highestCommonAncestor = null; + int minLength = System.Math.Min (ownAncestry.Count, otherAncestry.Count); + for (int i = 0; i < minLength; ++i) { + var a1 = ancestry [i]; + var a2 = otherAncestry [i]; + if (a1 == a2) + highestCommonAncestor = a1; + else + break; + } + + FlowBase commonFlowAncestor = highestCommonAncestor as FlowBase; + if (commonFlowAncestor == null) + commonFlowAncestor = highestCommonAncestor.ClosestFlowBase (); + + + var pathComponents = new List (); + bool hasWeavePoint = false; + FlowLevel baseFlow = FlowLevel.WeavePoint; + + var ancestor = this; + while(ancestor && (ancestor != commonFlowAncestor) && !(ancestor is Story)) { + + if (ancestor == commonFlowAncestor) + break; + + if (!hasWeavePoint) { + var weavePointAncestor = ancestor as IWeavePoint; + if (weavePointAncestor != null && weavePointAncestor.identifier != null) { + pathComponents.Add (weavePointAncestor.identifier); + hasWeavePoint = true; + continue; + } + } + + var flowAncestor = ancestor as FlowBase; + if (flowAncestor) { + pathComponents.Add (flowAncestor.identifier); + baseFlow = flowAncestor.flowLevel; + } + + ancestor = ancestor.parent; + } + + pathComponents.Reverse (); + + if (pathComponents.Count > 0) { + return new Path (baseFlow, pathComponents); + } + + return null; + } + + public List ancestry + { + get { + var result = new List (); + + var ancestor = this.parent; + while(ancestor) { + result.Add (ancestor); + ancestor = ancestor.parent; + } + + result.Reverse (); + + return result; + } + } + + public string descriptionOfScope + { + get { + var locationNames = new List (); + + Parsed.Object ancestor = this; + while (ancestor) { + var ancestorFlow = ancestor as FlowBase; + if (ancestorFlow && ancestorFlow.identifier != null) { + locationNames.Add ("'" + ancestorFlow.identifier + "'"); + } + ancestor = ancestor.parent; + } + + var scopeSB = new StringBuilder (); + if (locationNames.Count > 0) { + var locationsListStr = string.Join (", ", locationNames.ToArray()); + scopeSB.Append (locationsListStr); + scopeSB.Append (" and "); + } + + scopeSB.Append ("at top scope"); + + return scopeSB.ToString (); + } + } + + // Return the object so that method can be chained easily + public T AddContent(T subContent) where T : Parsed.Object + { + if (content == null) { + content = new List (); + } + + // Make resilient to content not existing, which can happen + // in the case of parse errors where we've already reported + // an error but still want a valid structure so we can + // carry on parsing. + if( subContent ) { + subContent.parent = this; + content.Add(subContent); + } + + return subContent; + } + + public void AddContent(List listContent) where T : Parsed.Object + { + foreach (var obj in listContent) { + AddContent (obj); + } + } + + public T InsertContent(int index, T subContent) where T : Parsed.Object + { + if (content == null) { + content = new List (); + } + + subContent.parent = this; + content.Insert (index, subContent); + + return subContent; + } + + public delegate bool FindQueryFunc(T obj); + public T Find(FindQueryFunc queryFunc = null) where T : class + { + var tObj = this as T; + if (tObj != null && (queryFunc == null || queryFunc (tObj) == true)) { + return tObj; + } + + if (content == null) + return null; + + foreach (var obj in content) { + var nestedResult = obj.Find (queryFunc); + if (nestedResult != null) + return nestedResult; + } + + return null; + } + + + public List FindAll(FindQueryFunc queryFunc = null) where T : class + { + var found = new List (); + + FindAll (queryFunc, found); + + return found; + } + + void FindAll(FindQueryFunc queryFunc, List foundSoFar) where T : class + { + var tObj = this as T; + if (tObj != null && (queryFunc == null || queryFunc (tObj) == true)) { + foundSoFar.Add (tObj); + } + + if (content == null) + return; + + foreach (var obj in content) { + obj.FindAll (queryFunc, foundSoFar); + } + } + + public abstract Runtime.Object GenerateRuntimeObject (); + + public virtual void ResolveReferences(Story context) + { + if (content != null) { + foreach(var obj in content) { + obj.ResolveReferences (context); + } + } + } + + public FlowBase ClosestFlowBase() + { + var ancestor = this.parent; + while (ancestor) { + if (ancestor is FlowBase) { + return (FlowBase)ancestor; + } + ancestor = ancestor.parent; + } + + return null; + } + + public virtual void Error(string message, Parsed.Object source = null, bool isWarning = false) + { + if (source == null) { + source = this; + } + + // Only allow a single parsed object to have a single error *directly* associated with it + if (source._alreadyHadError && !isWarning) { + return; + } + if (source._alreadyHadWarning && isWarning) { + return; + } + + if (this.parent) { + this.parent.Error (message, source, isWarning); + } else { + throw new System.Exception ("No parent object to send error to: "+message); + } + + if (isWarning) { + source._alreadyHadWarning = true; + } else { + source._alreadyHadError = true; + } + + } + + public void Warning(string message, Parsed.Object source = null) + { + Error (message, source, isWarning: true); + } + + // Allow implicit conversion to bool so you don't have to do: + // if( myObj != null ) ... + public static implicit operator bool (Object obj) + { + var isNull = object.ReferenceEquals (obj, null); + return !isNull; + } + + public static bool operator ==(Object a, Object b) + { + return object.ReferenceEquals (a, b); + } + + public static bool operator !=(Object a, Object b) + { + return !(a == b); + } + + public override bool Equals (object obj) + { + return object.ReferenceEquals (obj, this); + } + + public override int GetHashCode () + { + return base.GetHashCode (); + } + + bool _alreadyHadError; + bool _alreadyHadWarning; + } +} + diff --git a/Assets/Ink/compiler/ParsedHierarchy/Object.cs.meta b/Assets/Ink/compiler/ParsedHierarchy/Object.cs.meta new file mode 100644 index 000000000..3636b1965 --- /dev/null +++ b/Assets/Ink/compiler/ParsedHierarchy/Object.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: ea5c7fed1677ba846b5df29dda86ee3d +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Ink/compiler/ParsedHierarchy/Path.cs b/Assets/Ink/compiler/ParsedHierarchy/Path.cs new file mode 100644 index 000000000..7a17bd358 --- /dev/null +++ b/Assets/Ink/compiler/ParsedHierarchy/Path.cs @@ -0,0 +1,192 @@ +using System; +using System.Collections.Generic; +using System.Linq; + +namespace Ink.Parsed +{ + public class Path + { + public FlowLevel baseTargetLevel { + get { + if (baseLevelIsAmbiguous) + return FlowLevel.Story; + else + return (FlowLevel) _baseTargetLevel; + } + } + + public bool baseLevelIsAmbiguous { + get { + return _baseTargetLevel == null; + } + } + + public string firstComponent { + get { + if (components == null || components.Count == 0) + return null; + + return components [0].name; + } + } + + public int numberOfComponents { + get { + return components.Count; + } + } + + public string dotSeparatedComponents { + get { + if( _dotSeparatedComponents == null ) { + _dotSeparatedComponents = string.Join(".", components.Select(c => c?.name)); + } + + return _dotSeparatedComponents; + } + } + string _dotSeparatedComponents; + + public List components { get; } + + public Path(FlowLevel baseFlowLevel, List components) + { + _baseTargetLevel = baseFlowLevel; + this.components = components; + } + + public Path(List components) + { + _baseTargetLevel = null; + this.components = components; + } + + public Path(Identifier ambiguousName) + { + _baseTargetLevel = null; + components = new List (); + components.Add (ambiguousName); + } + + public override string ToString () + { + if (components == null || components.Count == 0) { + if (baseTargetLevel == FlowLevel.WeavePoint) + return "-> "; + else + return ""; + } + + return "-> " + dotSeparatedComponents; + } + + public Parsed.Object ResolveFromContext(Parsed.Object context) + { + if (components == null || components.Count == 0) { + return null; + } + + // Find base target of path from current context. e.g. + // ==> BASE.sub.sub + var baseTargetObject = ResolveBaseTarget (context); + if (baseTargetObject == null) { + return null; + + } + + // Given base of path, resolve final target by working deeper into hierarchy + // e.g. ==> base.mid.FINAL + if (components.Count > 1) { + return ResolveTailComponents (baseTargetObject); + } + + return baseTargetObject; + } + + // Find the root object from the base, i.e. root from: + // root.sub1.sub2 + Parsed.Object ResolveBaseTarget(Parsed.Object originalContext) + { + var firstComp = firstComponent; + + // Work up the ancestry to find the node that has the named object + Parsed.Object ancestorContext = originalContext; + while (ancestorContext != null) { + + // Only allow deep search when searching deeper from original context. + // Don't allow search upward *then* downward, since that's searching *everywhere*! + // Allowed examples: + // - From an inner gather of a stitch, you should search up to find a knot called 'x' + // at the root of a story, but not a stitch called 'x' in that knot. + // - However, from within a knot, you should be able to find a gather/choice + // anywhere called 'x' + // (that latter example is quite loose, but we allow it) + bool deepSearch = ancestorContext == originalContext; + + var foundBase = TryGetChildFromContext (ancestorContext, firstComp, null, deepSearch); + if (foundBase != null) + return foundBase; + + ancestorContext = ancestorContext.parent; + } + + return null; + } + + // Find the final child from path given root, i.e.: + // root.sub.finalChild + Parsed.Object ResolveTailComponents(Parsed.Object rootTarget) + { + Parsed.Object foundComponent = rootTarget; + for (int i = 1; i < components.Count; ++i) { + var compName = components [i].name; + + FlowLevel minimumExpectedLevel; + var foundFlow = foundComponent as FlowBase; + if (foundFlow != null) + minimumExpectedLevel = (FlowLevel)(foundFlow.flowLevel + 1); + else + minimumExpectedLevel = FlowLevel.WeavePoint; + + + foundComponent = TryGetChildFromContext (foundComponent, compName, minimumExpectedLevel); + if (foundComponent == null) + break; + } + + return foundComponent; + } + + // See whether "context" contains a child with a given name at a given flow level + // Can either be a named knot/stitch (a FlowBase) or a weave point within a Weave (Choice or Gather) + // This function also ignores any other object types that are neither FlowBase nor Weave. + // Called from both ResolveBase (force deep) and ResolveTail for the individual components. + Parsed.Object TryGetChildFromContext(Parsed.Object context, string childName, FlowLevel? minimumLevel, bool forceDeepSearch = false) + { + // null childLevel means that we don't know where to find it + bool ambiguousChildLevel = minimumLevel == null; + + // Search for WeavePoint within Weave + var weaveContext = context as Weave; + if ( weaveContext != null && (ambiguousChildLevel || minimumLevel == FlowLevel.WeavePoint)) { + return (Parsed.Object) weaveContext.WeavePointNamed (childName); + } + + // Search for content within Flow (either a sub-Flow or a WeavePoint) + var flowContext = context as FlowBase; + if (flowContext != null) { + + // When searching within a Knot, allow a deep searches so that + // named weave points (choices and gathers) can be found within any stitch + // Otherwise, we just search within the immediate object. + var shouldDeepSearch = forceDeepSearch || flowContext.flowLevel == FlowLevel.Knot; + return flowContext.ContentWithNameAtLevel (childName, minimumLevel, shouldDeepSearch); + } + + return null; + } + + FlowLevel? _baseTargetLevel; + } +} + diff --git a/Assets/Ink/compiler/ParsedHierarchy/Path.cs.meta b/Assets/Ink/compiler/ParsedHierarchy/Path.cs.meta new file mode 100644 index 000000000..a94a2c0cf --- /dev/null +++ b/Assets/Ink/compiler/ParsedHierarchy/Path.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 4f327415a36971e42b0f462a1f37f2a2 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Ink/compiler/ParsedHierarchy/Return.cs b/Assets/Ink/compiler/ParsedHierarchy/Return.cs new file mode 100644 index 000000000..2acb78d65 --- /dev/null +++ b/Assets/Ink/compiler/ParsedHierarchy/Return.cs @@ -0,0 +1,39 @@ +namespace Ink.Parsed +{ + public class Return : Parsed.Object + { + public Expression returnedExpression { get; protected set; } + + public Return (Expression returnedExpression = null) + { + if (returnedExpression) { + this.returnedExpression = AddContent(returnedExpression); + } + } + + public override Runtime.Object GenerateRuntimeObject () + { + var container = new Runtime.Container (); + + // Evaluate expression + if (returnedExpression) { + container.AddContent (returnedExpression.runtimeObject); + } + + // Return Runtime.Void when there's no expression to evaluate + // (This evaluation will just add the Void object to the evaluation stack) + else { + container.AddContent (Runtime.ControlCommand.EvalStart ()); + container.AddContent (new Runtime.Void()); + container.AddContent (Runtime.ControlCommand.EvalEnd ()); + } + + // Then pop the call stack + // (the evaluated expression will leave the return value on the evaluation stack) + container.AddContent (Runtime.ControlCommand.PopFunction()); + + return container; + } + } +} + diff --git a/Assets/Ink/compiler/ParsedHierarchy/Return.cs.meta b/Assets/Ink/compiler/ParsedHierarchy/Return.cs.meta new file mode 100644 index 000000000..d2a57a636 --- /dev/null +++ b/Assets/Ink/compiler/ParsedHierarchy/Return.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 562b9111ffbd032428621f136af53db3 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Ink/compiler/ParsedHierarchy/Sequence.cs b/Assets/Ink/compiler/ParsedHierarchy/Sequence.cs new file mode 100644 index 000000000..b6282808c --- /dev/null +++ b/Assets/Ink/compiler/ParsedHierarchy/Sequence.cs @@ -0,0 +1,206 @@ +using System.Collections.Generic; + +namespace Ink.Parsed +{ + [System.Flags] + public enum SequenceType + { + Stopping = 1, // default + Cycle = 2, + Shuffle = 4, + Once = 8 + } + + public class Sequence : Parsed.Object + { + + public List sequenceElements; + public SequenceType sequenceType; + + public Sequence (List elementContentLists, SequenceType sequenceType) + { + this.sequenceType = sequenceType; + this.sequenceElements = new List (); + + foreach (var elementContentList in elementContentLists) { + + var contentObjs = elementContentList.content; + + Parsed.Object seqElObject = null; + + // Don't attempt to create a weave for the sequence element + // if the content list is empty. Weaves don't like it! + if (contentObjs == null || contentObjs.Count == 0) + seqElObject = elementContentList; + else + seqElObject = new Weave (contentObjs); + + this.sequenceElements.Add (seqElObject); + AddContent (seqElObject); + } + } + + // Generate runtime code that looks like: + // + // chosenIndex = MIN(sequence counter, num elements) e.g. for "Stopping" + // if chosenIndex == 0, divert to s0 + // if chosenIndex == 1, divert to s1 [etc] + // + // - s0: + // + // divert to no-op + // - s1: + // + // divert to no-op + // - s2: + // empty branch if using "once" + // divert to no-op + // + // no-op + // + public override Runtime.Object GenerateRuntimeObject () + { + var container = new Runtime.Container (); + container.visitsShouldBeCounted = true; + container.countingAtStartOnly = true; + + _sequenceDivertsToResove = new List (); + + // Get sequence read count + container.AddContent (Runtime.ControlCommand.EvalStart ()); + container.AddContent (Runtime.ControlCommand.VisitIndex ()); + + bool once = (sequenceType & SequenceType.Once) > 0; + bool cycle = (sequenceType & SequenceType.Cycle) > 0; + bool stopping = (sequenceType & SequenceType.Stopping) > 0; + bool shuffle = (sequenceType & SequenceType.Shuffle) > 0; + + var seqBranchCount = sequenceElements.Count; + if (once) seqBranchCount++; + + // Chosen sequence index: + // - Stopping: take the MIN(read count, num elements - 1) + // - Once: take the MIN(read count, num elements) + // (the last one being empty) + if (stopping || once) { + //var limit = stopping ? seqBranchCount-1 : seqBranchCount; + container.AddContent (new Runtime.IntValue (seqBranchCount-1)); + container.AddContent (Runtime.NativeFunctionCall.CallWithName ("MIN")); + } + + // - Cycle: take (read count % num elements) + else if (cycle) { + container.AddContent (new Runtime.IntValue (sequenceElements.Count)); + container.AddContent (Runtime.NativeFunctionCall.CallWithName ("%")); + } + + // Shuffle + if (shuffle) { + + // Create point to return to when sequence is complete + var postShuffleNoOp = Runtime.ControlCommand.NoOp(); + + // When visitIndex == lastIdx, we skip the shuffle + if ( once || stopping ) + { + // if( visitIndex == lastIdx ) -> skipShuffle + int lastIdx = stopping ? sequenceElements.Count - 1 : sequenceElements.Count; + container.AddContent(Runtime.ControlCommand.Duplicate()); + container.AddContent(new Runtime.IntValue(lastIdx)); + container.AddContent(Runtime.NativeFunctionCall.CallWithName("==")); + + var skipShuffleDivert = new Runtime.Divert(); + skipShuffleDivert.isConditional = true; + container.AddContent(skipShuffleDivert); + + AddDivertToResolve(skipShuffleDivert, postShuffleNoOp); + } + + // This one's a bit more complex! Choose the index at runtime. + var elementCountToShuffle = sequenceElements.Count; + if (stopping) elementCountToShuffle--; + container.AddContent (new Runtime.IntValue (elementCountToShuffle)); + container.AddContent (Runtime.ControlCommand.SequenceShuffleIndex ()); + if (once || stopping) container.AddContent(postShuffleNoOp); + } + + container.AddContent (Runtime.ControlCommand.EvalEnd ()); + + // Create point to return to when sequence is complete + var postSequenceNoOp = Runtime.ControlCommand.NoOp(); + + // Each of the main sequence branches, and one extra empty branch if + // we have a "once" sequence. + for (var elIndex=0; elIndex _sequenceDivertsToResove; + } +} + diff --git a/Assets/Ink/compiler/ParsedHierarchy/Sequence.cs.meta b/Assets/Ink/compiler/ParsedHierarchy/Sequence.cs.meta new file mode 100644 index 000000000..872f4513c --- /dev/null +++ b/Assets/Ink/compiler/ParsedHierarchy/Sequence.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a23c932006a01fb48a6ec5a0196d7477 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Ink/compiler/ParsedHierarchy/Stitch.cs b/Assets/Ink/compiler/ParsedHierarchy/Stitch.cs new file mode 100644 index 000000000..a4ac723c1 --- /dev/null +++ b/Assets/Ink/compiler/ParsedHierarchy/Stitch.cs @@ -0,0 +1,14 @@ +using System.Collections.Generic; + +namespace Ink.Parsed +{ + public class Stitch : FlowBase + { + public override FlowLevel flowLevel { get { return FlowLevel.Stitch; } } + + public Stitch (Identifier name, List topLevelObjects, List arguments, bool isFunction) : base(name, topLevelObjects, arguments, isFunction) + { + } + } +} + diff --git a/Assets/Ink/compiler/ParsedHierarchy/Stitch.cs.meta b/Assets/Ink/compiler/ParsedHierarchy/Stitch.cs.meta new file mode 100644 index 000000000..c214f9bf3 --- /dev/null +++ b/Assets/Ink/compiler/ParsedHierarchy/Stitch.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 2ac15710f45838e41bd446b204ca494c +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Ink/compiler/ParsedHierarchy/Story.cs b/Assets/Ink/compiler/ParsedHierarchy/Story.cs new file mode 100644 index 000000000..cca1b5e97 --- /dev/null +++ b/Assets/Ink/compiler/ParsedHierarchy/Story.cs @@ -0,0 +1,508 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Runtime.CompilerServices; +using System.Diagnostics; + +[assembly: InternalsVisibleTo("tests")] + +namespace Ink.Parsed +{ + public class Story : FlowBase + { + public override FlowLevel flowLevel { get { return FlowLevel.Story; } } + + /// + /// Had error during code gen, resolve references? + /// Most of the time it shouldn't be necessary to use this + /// since errors should be caught by the error handler. + /// + internal bool hadError { get { return _hadError; } } + internal bool hadWarning { get { return _hadWarning; } } + + public Dictionary constants; + public Dictionary externals; + + // Build setting for exporting: + // When true, the visit count for *all* knots, stitches, choices, + // and gathers is counted. When false, only those that are direclty + // referenced by the ink are recorded. Use this flag to allow game-side + // querying of arbitrary knots/stitches etc. + // Storing all counts is more robust and future proof (updates to the story file + // that reference previously uncounted visits are possible, but generates a much + // larger safe file, with a lot of potentially redundant counts. + public bool countAllVisits = false; + + public Story (List toplevelObjects, bool isInclude = false) : base(null, toplevelObjects, isIncludedStory:isInclude) + { + // Don't do anything much on construction, leave it lightweight until + // the ExportRuntime method is called. + } + + // Before this function is called, we have IncludedFile objects interspersed + // in our content wherever an include statement was. + // So that the include statement can be added in a sensible place (e.g. the + // top of the file) without side-effects of jumping into a knot that was + // defined in that include, we separate knots and stitches from anything + // else defined at the top scope of the included file. + // + // Algorithm: For each IncludedFile we find, split its contents into + // knots/stiches and any other content. Insert the normal content wherever + // the include statement was, and append the knots/stitches to the very + // end of the main story. + protected override void PreProcessTopLevelObjects(List topLevelContent) + { + var flowsFromOtherFiles = new List (); + + // Inject included files + int i = 0; + while (i < topLevelContent.Count) { + var obj = topLevelContent [i]; + if (obj is IncludedFile) { + + var file = (IncludedFile)obj; + + // Remove the IncludedFile itself + topLevelContent.RemoveAt (i); + + // When an included story fails to load, the include + // line itself is still valid, so we have to handle it here + if (file.includedStory) { + + var nonFlowContent = new List (); + + var subStory = file.includedStory; + + // Allow empty file + if (subStory.content != null) { + + foreach (var subStoryObj in subStory.content) { + if (subStoryObj is FlowBase) { + flowsFromOtherFiles.Add ((FlowBase)subStoryObj); + } else { + nonFlowContent.Add (subStoryObj); + } + } + + // Add newline on the end of the include + nonFlowContent.Add (new Parsed.Text ("\n")); + + // Add contents of the file in its place + topLevelContent.InsertRange (i, nonFlowContent); + + // Skip past the content of this sub story + // (since it will already have recursively included + // any lines from other files) + i += nonFlowContent.Count; + } + + } + + // Include object has been removed, with possible content inserted, + // and position of 'i' will have been determined already. + continue; + } + + // Non-include: skip over it + else { + i++; + } + } + + // Add the flows we collected from the included files to the + // end of our list of our content + topLevelContent.AddRange (flowsFromOtherFiles.ToArray()); + + } + + public Runtime.Story ExportRuntime(ErrorHandler errorHandler = null) + { + _errorHandler = errorHandler; + + // Find all constants before main export begins, so that VariableReferences know + // whether to generate a runtime variable reference or the literal value + constants = new Dictionary (); + foreach (var constDecl in FindAll ()) { + + // Check for duplicate definitions + Parsed.Expression existingDefinition = null; + if (constants.TryGetValue (constDecl.constantName, out existingDefinition)) { + if (!existingDefinition.Equals (constDecl.expression)) { + var errorMsg = string.Format ("CONST '{0}' has been redefined with a different value. Multiple definitions of the same CONST are valid so long as they contain the same value. Initial definition was on {1}.", constDecl.constantName, existingDefinition.debugMetadata); + Error (errorMsg, constDecl, isWarning:false); + } + } + + constants [constDecl.constantName] = constDecl.expression; + } + + // List definitions are treated like constants too - they should be usable + // from other variable declarations. + _listDefs = new Dictionary (); + foreach (var listDef in FindAll ()) { + _listDefs [listDef.identifier?.name] = listDef; + } + + externals = new Dictionary (); + + // Resolution of weave point names has to come first, before any runtime code generation + // since names have to be ready before diverts start getting created. + // (It used to be done in the constructor for a weave, but didn't allow us to generate + // errors when name resolution failed.) + ResolveWeavePointNaming (); + + // Get default implementation of runtimeObject, which calls ContainerBase's generation method + var rootContainer = runtimeObject as Runtime.Container; + + // Export initialisation of global variables + // TODO: We *could* add this as a declarative block to the story itself... + var variableInitialisation = new Runtime.Container (); + variableInitialisation.AddContent (Runtime.ControlCommand.EvalStart ()); + + // Global variables are those that are local to the story and marked as global + var runtimeLists = new List (); + foreach (var nameDeclPair in variableDeclarations) { + var varName = nameDeclPair.Key; + var varDecl = nameDeclPair.Value; + if (varDecl.isGlobalDeclaration) { + + if (varDecl.listDefinition != null) { + _listDefs[varName] = varDecl.listDefinition; + variableInitialisation.AddContent (varDecl.listDefinition.runtimeObject); + runtimeLists.Add (varDecl.listDefinition.runtimeListDefinition); + } else { + varDecl.expression.GenerateIntoContainer (variableInitialisation); + } + + var runtimeVarAss = new Runtime.VariableAssignment (varName, isNewDeclaration:true); + runtimeVarAss.isGlobal = true; + variableInitialisation.AddContent (runtimeVarAss); + } + } + + variableInitialisation.AddContent (Runtime.ControlCommand.EvalEnd ()); + variableInitialisation.AddContent (Runtime.ControlCommand.End ()); + + if (variableDeclarations.Count > 0) { + variableInitialisation.name = "global decl"; + rootContainer.AddToNamedContentOnly (variableInitialisation); + } + + // Signal that it's safe to exit without error, even if there are no choices generated + // (this only happens at the end of top level content that isn't in any particular knot) + rootContainer.AddContent (Runtime.ControlCommand.Done ()); + + // Replace runtimeObject with Story object instead of the Runtime.Container generated by Parsed.ContainerBase + var runtimeStory = new Runtime.Story (rootContainer, runtimeLists); + + runtimeObject = runtimeStory; + + if (_hadError) + return null; + + // Optimisation step - inline containers that can be + FlattenContainersIn (rootContainer); + + // Now that the story has been fulled parsed into a hierarchy, + // and the derived runtime hierarchy has been built, we can + // resolve referenced symbols such as variables and paths. + // e.g. for paths " -> knotName --> stitchName" into an INKPath (knotName.stitchName) + // We don't make any assumptions that the INKPath follows the same + // conventions as the script format, so we resolve to actual objects before + // translating into an INKPath. (This also allows us to choose whether + // we want the paths to be absolute) + ResolveReferences (this); + + if (_hadError) + return null; + + runtimeStory.ResetState (); + + return runtimeStory; + } + + public ListDefinition ResolveList (string listName) + { + ListDefinition list; + if (!_listDefs.TryGetValue (listName, out list)) + return null; + return list; + } + + public ListElementDefinition ResolveListItem (string listName, string itemName, Parsed.Object source = null) + { + ListDefinition listDef = null; + + // Search a specific list if we know its name (i.e. the form listName.itemName) + if (listName != null) { + if (!_listDefs.TryGetValue (listName, out listDef)) + return null; + + return listDef.ItemNamed (itemName); + } + + // Otherwise, try to search all lists + else { + + ListElementDefinition foundItem = null; + ListDefinition originalFoundList = null; + + foreach (var namedList in _listDefs) { + var listToSearch = namedList.Value; + var itemInThisList = listToSearch.ItemNamed (itemName); + if (itemInThisList) { + if (foundItem != null) { + Error ("Ambiguous item name '" + itemName + "' found in multiple sets, including "+originalFoundList.identifier+" and "+listToSearch.identifier, source, isWarning:false); + } else { + foundItem = itemInThisList; + originalFoundList = listToSearch; + } + } + } + + return foundItem; + } + } + + void FlattenContainersIn (Runtime.Container container) + { + // Need to create a collection to hold the inner containers + // because otherwise we'd end up modifying during iteration + var innerContainers = new HashSet (); + + foreach (var c in container.content) { + var innerContainer = c as Runtime.Container; + if (innerContainer) + innerContainers.Add (innerContainer); + } + + // Can't flatten the named inner containers, but we can at least + // iterate through their children + if (container.namedContent != null) { + foreach (var keyValue in container.namedContent) { + var namedInnerContainer = keyValue.Value as Runtime.Container; + if (namedInnerContainer) + innerContainers.Add (namedInnerContainer); + } + } + + foreach (var innerContainer in innerContainers) { + TryFlattenContainer (innerContainer); + FlattenContainersIn (innerContainer); + } + } + + void TryFlattenContainer (Runtime.Container container) + { + if (container.namedContent.Count > 0 || container.hasValidName || _dontFlattenContainers.Contains(container)) + return; + + // Inline all the content in container into the parent + var parentContainer = container.parent as Runtime.Container; + if (parentContainer) { + + var contentIdx = parentContainer.content.IndexOf (container); + parentContainer.content.RemoveAt (contentIdx); + + var dm = container.ownDebugMetadata; + + foreach (var innerContent in container.content) { + innerContent.parent = null; + if (dm != null && innerContent.ownDebugMetadata == null) + innerContent.debugMetadata = dm; + parentContainer.InsertContent (innerContent, contentIdx); + contentIdx++; + } + } + } + + public override void Error(string message, Parsed.Object source, bool isWarning) + { + ErrorType errorType = isWarning ? ErrorType.Warning : ErrorType.Error; + + var sb = new StringBuilder (); + if (source is AuthorWarning) { + sb.Append ("TODO: "); + errorType = ErrorType.Author; + } else if (isWarning) { + sb.Append ("WARNING: "); + } else { + sb.Append ("ERROR: "); + } + + if (source && source.debugMetadata != null && source.debugMetadata.startLineNumber >= 1 ) { + + if (source.debugMetadata.fileName != null) { + sb.AppendFormat ("'{0}' ", source.debugMetadata.fileName); + } + + sb.AppendFormat ("line {0}: ", source.debugMetadata.startLineNumber); + } + + sb.Append (message); + + message = sb.ToString (); + + if (_errorHandler != null) { + _hadError = errorType == ErrorType.Error; + _hadWarning = errorType == ErrorType.Warning; + _errorHandler (message, errorType); + } else { + throw new System.Exception (message); + } + } + + public void ResetError() + { + _hadError = false; + _hadWarning = false; + } + + public bool IsExternal(string namedFuncTarget) + { + return externals.ContainsKey (namedFuncTarget); + } + + public void AddExternal(ExternalDeclaration decl) + { + if (externals.ContainsKey (decl.name)) { + Error ("Duplicate EXTERNAL definition of '"+decl.name+"'", decl, false); + } else { + externals [decl.name] = decl; + } + } + + public void DontFlattenContainer (Runtime.Container container) + { + _dontFlattenContainers.Add (container); + } + + + + void NameConflictError (Parsed.Object obj, string name, Parsed.Object existingObj, string typeNameToPrint) + { + obj.Error (typeNameToPrint+" '" + name + "': name has already been used for a " + existingObj.typeName.ToLower() + " on " +existingObj.debugMetadata); + } + + public static bool IsReservedKeyword (string name) + { + switch (name) { + case "true": + case "false": + case "not": + case "return": + case "else": + case "VAR": + case "CONST": + case "temp": + case "LIST": + case "function": + return true; + } + + return false; + } + + public enum SymbolType : uint + { + Knot, + List, + ListItem, + Var, + SubFlowAndWeave, + Arg, + Temp + } + + // Check given symbol type against everything that's of a higher priority in the ordered SymbolType enum (above). + // When the given symbol type level is reached, we early-out / return. + public void CheckForNamingCollisions (Parsed.Object obj, Identifier identifier, SymbolType symbolType, string typeNameOverride = null) + { + string typeNameToPrint = typeNameOverride ?? obj.typeName; + if (IsReservedKeyword (identifier?.name)) { + obj.Error ("'"+name + "' cannot be used for the name of a " + typeNameToPrint.ToLower() + " because it's a reserved keyword"); + return; + } + + if (FunctionCall.IsBuiltIn (identifier?.name)) { + obj.Error ("'"+name + "' cannot be used for the name of a " + typeNameToPrint.ToLower() + " because it's a built in function"); + return; + } + + // Top level knots + FlowBase knotOrFunction = ContentWithNameAtLevel (identifier?.name, FlowLevel.Knot) as FlowBase; + if (knotOrFunction && (knotOrFunction != obj || symbolType == SymbolType.Arg)) { + NameConflictError (obj, identifier?.name, knotOrFunction, typeNameToPrint); + return; + } + + if (symbolType < SymbolType.List) return; + + // Lists + foreach (var namedListDef in _listDefs) { + var listDefName = namedListDef.Key; + var listDef = namedListDef.Value; + if (identifier?.name == listDefName && obj != listDef && listDef.variableAssignment != obj) { + NameConflictError (obj, identifier?.name, listDef, typeNameToPrint); + } + + // We don't check for conflicts between individual elements in + // different lists because they are namespaced. + if (!(obj is ListElementDefinition)) { + foreach (var item in listDef.itemDefinitions) { + if (identifier?.name == item.name) { + NameConflictError (obj, identifier?.name, item, typeNameToPrint); + } + } + } + } + + // Don't check for VAR->VAR conflicts because that's handled separately + // (necessary since checking looks up in a dictionary) + if (symbolType <= SymbolType.Var) return; + + // Global variable collision + VariableAssignment varDecl = null; + if (variableDeclarations.TryGetValue(identifier?.name, out varDecl) ) { + if (varDecl != obj && varDecl.isGlobalDeclaration && varDecl.listDefinition == null) { + NameConflictError (obj, identifier?.name, varDecl, typeNameToPrint); + } + } + + if (symbolType < SymbolType.SubFlowAndWeave) return; + + // Stitches, Choices and Gathers + var path = new Path (identifier); + var targetContent = path.ResolveFromContext (obj); + if (targetContent && targetContent != obj) { + NameConflictError (obj, identifier?.name, targetContent, typeNameToPrint); + return; + } + + if (symbolType < SymbolType.Arg) return; + + // Arguments to the current flow + if (symbolType != SymbolType.Arg) { + FlowBase flow = obj as FlowBase; + if( flow == null ) flow = obj.ClosestFlowBase (); + if (flow && flow.hasParameters) { + foreach (var arg in flow.arguments) { + if (arg.identifier?.name == identifier?.name) { + obj.Error (typeNameToPrint+" '" + name + "': Name has already been used for a argument to "+flow.identifier+" on " +flow.debugMetadata); + return; + } + } + } + } + } + + ErrorHandler _errorHandler; + bool _hadError; + bool _hadWarning; + + HashSet _dontFlattenContainers = new HashSet(); + + Dictionary _listDefs; + } +} + diff --git a/Assets/Ink/compiler/ParsedHierarchy/Story.cs.meta b/Assets/Ink/compiler/ParsedHierarchy/Story.cs.meta new file mode 100644 index 000000000..cb90376cd --- /dev/null +++ b/Assets/Ink/compiler/ParsedHierarchy/Story.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 0d3e48d37073f8f49965133b8157d4e1 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Ink/compiler/ParsedHierarchy/StringExpression.cs b/Assets/Ink/compiler/ParsedHierarchy/StringExpression.cs new file mode 100644 index 000000000..189222d2d --- /dev/null +++ b/Assets/Ink/compiler/ParsedHierarchy/StringExpression.cs @@ -0,0 +1,70 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace Ink.Parsed +{ + public class StringExpression : Parsed.Expression + { + public bool isSingleString { + get { + if (content.Count != 1) + return false; + + var c = content [0]; + if (!(c is Text)) + return false; + + return true; + } + } + + public StringExpression (List content) + { + AddContent (content); + } + + public override void GenerateIntoContainer (Runtime.Container container) + { + container.AddContent (Runtime.ControlCommand.BeginString()); + + foreach (var c in content) { + container.AddContent (c.runtimeObject); + } + + container.AddContent (Runtime.ControlCommand.EndString()); + } + + public override string ToString () + { + var sb = new StringBuilder (); + foreach (var c in content) { + sb.Append (c.ToString ()); + } + return sb.ToString (); + } + + // Equals override necessary in order to check for CONST multiple definition equality + public override bool Equals (object obj) + { + var otherStr = obj as StringExpression; + if (otherStr == null) return false; + + // Can only compare direct equality on single strings rather than + // complex string expressions that contain dynamic logic + if (!this.isSingleString || !otherStr.isSingleString) { + return false; + } + + var thisTxt = this.ToString (); + var otherTxt = otherStr.ToString (); + return thisTxt.Equals (otherTxt); + } + + public override int GetHashCode () + { + return this.ToString ().GetHashCode (); + } + } +} + diff --git a/Assets/Ink/compiler/ParsedHierarchy/StringExpression.cs.meta b/Assets/Ink/compiler/ParsedHierarchy/StringExpression.cs.meta new file mode 100644 index 000000000..49afa4cee --- /dev/null +++ b/Assets/Ink/compiler/ParsedHierarchy/StringExpression.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 4db52858749e1ea438e06835cea4c7ee +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Ink/compiler/ParsedHierarchy/Text.cs b/Assets/Ink/compiler/ParsedHierarchy/Text.cs new file mode 100644 index 000000000..f1b59bcae --- /dev/null +++ b/Assets/Ink/compiler/ParsedHierarchy/Text.cs @@ -0,0 +1,24 @@ + +namespace Ink.Parsed +{ + public class Text : Parsed.Object + { + public string text { get; set; } + + public Text (string str) + { + text = str; + } + + public override Runtime.Object GenerateRuntimeObject () + { + return new Runtime.StringValue(this.text); + } + + public override string ToString () + { + return this.text; + } + } +} + diff --git a/Assets/Ink/compiler/ParsedHierarchy/Text.cs.meta b/Assets/Ink/compiler/ParsedHierarchy/Text.cs.meta new file mode 100644 index 000000000..952d00fd4 --- /dev/null +++ b/Assets/Ink/compiler/ParsedHierarchy/Text.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 3c8cb04fa3e49db4795bcfa6fc57c99b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Ink/compiler/ParsedHierarchy/TunnelOnwards.cs b/Assets/Ink/compiler/ParsedHierarchy/TunnelOnwards.cs new file mode 100644 index 000000000..a47dd38f9 --- /dev/null +++ b/Assets/Ink/compiler/ParsedHierarchy/TunnelOnwards.cs @@ -0,0 +1,85 @@ +using System.Collections.Generic; + +namespace Ink.Parsed +{ + public class TunnelOnwards : Parsed.Object + { + public Divert divertAfter { + get { + return _divertAfter; + } + set { + _divertAfter = value; + if (_divertAfter) AddContent (_divertAfter); + } + } + Divert _divertAfter; + + public override Runtime.Object GenerateRuntimeObject () + { + var container = new Runtime.Container (); + + // Set override path for tunnel onwards (or nothing) + container.AddContent (Runtime.ControlCommand.EvalStart ()); + + if (divertAfter) { + + // Generate runtime object's generated code and steal the arguments runtime code + var returnRuntimeObj = divertAfter.GenerateRuntimeObject (); + var returnRuntimeContainer = returnRuntimeObj as Runtime.Container; + if (returnRuntimeContainer) { + + // Steal all code for generating arguments from the divert + var args = divertAfter.arguments; + if (args != null && args.Count > 0) { + + // Steal everything betwen eval start and eval end + int evalStart = -1; + int evalEnd = -1; + for (int i = 0; i < returnRuntimeContainer.content.Count; i++) { + var cmd = returnRuntimeContainer.content [i] as Runtime.ControlCommand; + if (cmd) { + if (evalStart == -1 && cmd.commandType == Runtime.ControlCommand.CommandType.EvalStart) + evalStart = i; + else if (cmd.commandType == Runtime.ControlCommand.CommandType.EvalEnd) + evalEnd = i; + } + } + + for (int i = evalStart + 1; i < evalEnd; i++) { + var obj = returnRuntimeContainer.content [i]; + obj.parent = null; // prevent error of being moved between owners + container.AddContent (returnRuntimeContainer.content [i]); + } + } + } + + // Finally, divert to the requested target + _overrideDivertTarget = new Runtime.DivertTargetValue (); + container.AddContent (_overrideDivertTarget); + } + + // No divert after tunnel onwards + else { + container.AddContent (new Runtime.Void ()); + } + + container.AddContent (Runtime.ControlCommand.EvalEnd ()); + + container.AddContent (Runtime.ControlCommand.PopTunnel ()); + + return container; + } + + public override void ResolveReferences (Story context) + { + base.ResolveReferences (context); + + if (divertAfter && divertAfter.targetContent) + _overrideDivertTarget.targetPath = divertAfter.targetContent.runtimePath; + } + + Runtime.DivertTargetValue _overrideDivertTarget; + } +} + diff --git a/Assets/Ink/compiler/ParsedHierarchy/TunnelOnwards.cs.meta b/Assets/Ink/compiler/ParsedHierarchy/TunnelOnwards.cs.meta new file mode 100644 index 000000000..94fd2e936 --- /dev/null +++ b/Assets/Ink/compiler/ParsedHierarchy/TunnelOnwards.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b150e104ab4c6234a95113c7bdddebd8 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Ink/compiler/ParsedHierarchy/VariableAssignment.cs b/Assets/Ink/compiler/ParsedHierarchy/VariableAssignment.cs new file mode 100644 index 000000000..34e281e2e --- /dev/null +++ b/Assets/Ink/compiler/ParsedHierarchy/VariableAssignment.cs @@ -0,0 +1,123 @@ +using System.Collections.Generic; + +namespace Ink.Parsed +{ + public class VariableAssignment : Parsed.Object + { + public string variableName + { + get { return variableIdentifier.name; } + } + public Identifier variableIdentifier { get; protected set; } + public Expression expression { get; protected set; } + public ListDefinition listDefinition { get; protected set; } + + public bool isGlobalDeclaration { get; set; } + public bool isNewTemporaryDeclaration { get; set; } + + public bool isDeclaration { + get { + return isGlobalDeclaration || isNewTemporaryDeclaration; + } + } + + public VariableAssignment (Identifier identifier, Expression assignedExpression) + { + this.variableIdentifier = identifier; + + // Defensive programming in case parsing of assignedExpression failed + if( assignedExpression ) + this.expression = AddContent(assignedExpression); + } + + public VariableAssignment (Identifier identifier, ListDefinition listDef) + { + this.variableIdentifier = identifier; + + if (listDef) { + this.listDefinition = AddContent (listDef); + this.listDefinition.variableAssignment = this; + } + + // List definitions are always global + isGlobalDeclaration = true; + } + + public override Runtime.Object GenerateRuntimeObject () + { + FlowBase newDeclScope = null; + if (isGlobalDeclaration) { + newDeclScope = story; + } else if(isNewTemporaryDeclaration) { + newDeclScope = ClosestFlowBase (); + } + + if( newDeclScope ) + newDeclScope.TryAddNewVariableDeclaration (this); + + // Global declarations don't generate actual procedural + // runtime objects, but instead add a global variable to the story itself. + // The story then initialises them all in one go at the start of the game. + if( isGlobalDeclaration ) + return null; + + var container = new Runtime.Container (); + + // The expression's runtimeObject is actually another nested container + if( expression != null ) + container.AddContent (expression.runtimeObject); + else if( listDefinition != null ) + container.AddContent (listDefinition.runtimeObject); + + _runtimeAssignment = new Runtime.VariableAssignment(variableName, isNewTemporaryDeclaration); + container.AddContent (_runtimeAssignment); + + return container; + } + + public override void ResolveReferences (Story context) + { + base.ResolveReferences (context); + + // List definitions are checked for conflicts separately + if( this.isDeclaration && listDefinition == null ) + context.CheckForNamingCollisions (this, variableIdentifier, this.isGlobalDeclaration ? Story.SymbolType.Var : Story.SymbolType.Temp); + + // Initial VAR x = [intialValue] declaration, not re-assignment + if (this.isGlobalDeclaration) { + var variableReference = expression as VariableReference; + if (variableReference && !variableReference.isConstantReference && !variableReference.isListItemReference) { + Error ("global variable assignments cannot refer to other variables, only literal values, constants and list items"); + } + } + + if (!this.isNewTemporaryDeclaration) { + var resolvedVarAssignment = context.ResolveVariableWithName(this.variableName, fromNode: this); + if (!resolvedVarAssignment.found) { + if (story.constants.ContainsKey (variableName)) { + Error ("Can't re-assign to a constant (do you need to use VAR when declaring '" + this.variableName + "'?)", this); + } else { + Error ("Variable could not be found to assign to: '" + this.variableName + "'", this); + } + } + + // A runtime assignment may not have been generated if it's the initial global declaration, + // since these are hoisted out and handled specially in Story.ExportRuntime. + if( _runtimeAssignment != null ) + _runtimeAssignment.isGlobal = resolvedVarAssignment.isGlobal; + } + } + + + public override string typeName { + get { + if (isNewTemporaryDeclaration) return "temp"; + else if (isGlobalDeclaration) return "VAR"; + else return "variable assignment"; + } + } + + Runtime.VariableAssignment _runtimeAssignment; + } +} + diff --git a/Assets/Ink/compiler/ParsedHierarchy/VariableAssignment.cs.meta b/Assets/Ink/compiler/ParsedHierarchy/VariableAssignment.cs.meta new file mode 100644 index 000000000..a883d1198 --- /dev/null +++ b/Assets/Ink/compiler/ParsedHierarchy/VariableAssignment.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 9b11fd7e975da714893a6ecf9950f60f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Ink/compiler/ParsedHierarchy/VariableReference.cs b/Assets/Ink/compiler/ParsedHierarchy/VariableReference.cs new file mode 100644 index 000000000..f0359aa54 --- /dev/null +++ b/Assets/Ink/compiler/ParsedHierarchy/VariableReference.cs @@ -0,0 +1,152 @@ +using System.Collections.Generic; +using System.Linq; + +namespace Ink.Parsed +{ + public class VariableReference : Expression + { + // - Normal variables have a single item in their "path" + // - Knot/stitch names for read counts are actual dot-separated paths + // (though this isn't actually used at time of writing) + // - List names are dot separated: listName.itemName (or just itemName) + public string name { get; private set; } + + public Identifier identifier { + get { + // Merging the list of identifiers into a single identifier. + // Debug metadata is also merged. + if (pathIdentifiers == null || pathIdentifiers.Count == 0) { + return null; + } + + if( _singleIdentifier == null ) { + var name = string.Join (".", path.ToArray()); + var firstDebugMetadata = pathIdentifiers.First().debugMetadata; + var debugMetadata = pathIdentifiers.Aggregate(firstDebugMetadata, (acc, id) => acc.Merge(id.debugMetadata)); + _singleIdentifier = new Identifier { name = name, debugMetadata = debugMetadata }; + } + + return _singleIdentifier; + } + } + Identifier _singleIdentifier; + + public List pathIdentifiers; + public List path { get; private set; } + + // Only known after GenerateIntoContainer has run + public bool isConstantReference; + public bool isListItemReference; + + public Runtime.VariableReference runtimeVarRef { get { return _runtimeVarRef; } } + + public VariableReference (List pathIdentifiers) + { + this.pathIdentifiers = pathIdentifiers; + this.path = pathIdentifiers.Select(id => id?.name).ToList(); + this.name = string.Join (".", pathIdentifiers); + } + + public override void GenerateIntoContainer (Runtime.Container container) + { + Expression constantValue = null; + + // If it's a constant reference, just generate the literal expression value + // It's okay to access the constants at code generation time, since the + // first thing the ExportRuntime function does it search for all the constants + // in the story hierarchy, so they're all available. + if ( story.constants.TryGetValue (name, out constantValue) ) { + constantValue.GenerateConstantIntoContainer (container); + isConstantReference = true; + return; + } + + _runtimeVarRef = new Runtime.VariableReference (name); + + // List item reference? + // Path might be to a list (listName.listItemName or just listItemName) + if (path.Count == 1 || path.Count == 2) { + string listItemName = null; + string listName = null; + + if (path.Count == 1) listItemName = path [0]; + else { + listName = path [0]; + listItemName = path [1]; + } + + var listItem = story.ResolveListItem (listName, listItemName, this); + if (listItem) { + isListItemReference = true; + } + } + + container.AddContent (_runtimeVarRef); + } + + public override void ResolveReferences (Story context) + { + base.ResolveReferences (context); + + // Work is already done if it's a constant or list item reference + if (isConstantReference || isListItemReference) { + return; + } + + // Is it a read count? + var parsedPath = new Path (pathIdentifiers); + Parsed.Object targetForCount = parsedPath.ResolveFromContext (this); + if (targetForCount) { + + targetForCount.containerForCounting.visitsShouldBeCounted = true; + + // If this is an argument to a function that wants a variable to be + // passed by reference, then the Parsed.Divert will have generated a + // Runtime.VariablePointerValue instead of allowing this object + // to generate its RuntimeVariableReference. This only happens under + // error condition since we shouldn't be passing a read count by + // reference, but we don't want it to crash! + if (_runtimeVarRef == null) return; + + _runtimeVarRef.pathForCount = targetForCount.runtimePath; + _runtimeVarRef.name = null; + + // Check for very specific writer error: getting read count and + // printing it as content rather than as a piece of logic + // e.g. Writing {myFunc} instead of {myFunc()} + var targetFlow = targetForCount as FlowBase; + if (targetFlow && targetFlow.isFunction) { + + // Is parent context content rather than logic? + if ( parent is Weave || parent is ContentList || parent is FlowBase) { + Warning ("'" + targetFlow.identifier + "' being used as read count rather than being called as function. Perhaps you intended to write " + targetFlow.name + "()"); + } + } + + return; + } + + // Couldn't find this multi-part path at all, whether as a divert + // target or as a list item reference. + if (path.Count > 1) { + var errorMsg = "Could not find target for read count: " + parsedPath; + if (path.Count <= 2) + errorMsg += ", or couldn't find list item with the name " + string.Join (",", path.ToArray()); + Error (errorMsg); + return; + } + + if (!context.ResolveVariableWithName (this.name, fromNode: this).found) { + Error("Unresolved variable: "+this.ToString(), this); + } + } + + public override string ToString () + { + return string.Join(".", path.ToArray()); + } + + Runtime.VariableReference _runtimeVarRef; + } +} + diff --git a/Assets/Ink/compiler/ParsedHierarchy/VariableReference.cs.meta b/Assets/Ink/compiler/ParsedHierarchy/VariableReference.cs.meta new file mode 100644 index 000000000..8ee510e2b --- /dev/null +++ b/Assets/Ink/compiler/ParsedHierarchy/VariableReference.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f07f270c59e74254698cc0829275a8ae +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Ink/compiler/ParsedHierarchy/Weave.cs b/Assets/Ink/compiler/ParsedHierarchy/Weave.cs new file mode 100644 index 000000000..42048e1fc --- /dev/null +++ b/Assets/Ink/compiler/ParsedHierarchy/Weave.cs @@ -0,0 +1,730 @@ +using System.Collections.Generic; + +namespace Ink.Parsed +{ + // Used by the FlowBase when constructing the weave flow from + // a flat list of content objects. + public class Weave : Parsed.Object + { + // Containers can be chained as multiple gather points + // get created as the same indentation level. + // rootContainer is always the first in the chain, while + // currentContainer is the latest. + public Runtime.Container rootContainer { + get { + if (_rootContainer == null) { + GenerateRuntimeObject (); + } + + return _rootContainer; + } + } + Runtime.Container currentContainer { get; set; } + + public int baseIndentIndex { get; private set; } + + // Loose ends are: + // - Choices or Gathers that need to be joined up + // - Explicit Divert to gather points (i.e. "->" without a target) + public List looseEnds; + + public List gatherPointsToResolve; + public class GatherPointToResolve + { + public Runtime.Divert divert; + public Runtime.Object targetRuntimeObj; + } + + public Parsed.Object lastParsedSignificantObject + { + get { + if (content.Count == 0) return null; + + // Don't count extraneous newlines or VAR/CONST declarations, + // since they're "empty" statements outside of the main flow. + Parsed.Object lastObject = null; + for (int i = content.Count - 1; i >= 0; --i) { + lastObject = content [i]; + + var lastText = lastObject as Parsed.Text; + if (lastText && lastText.text == "\n") { + continue; + } + + if (IsGlobalDeclaration (lastObject)) + continue; + + break; + } + + var lastWeave = lastObject as Weave; + if (lastWeave) + lastObject = lastWeave.lastParsedSignificantObject; + + return lastObject; + } + } + + public Weave(List cont, int indentIndex=-1) + { + if (indentIndex == -1) { + baseIndentIndex = DetermineBaseIndentationFromContent (cont); + } else { + baseIndentIndex = indentIndex; + } + + AddContent (cont); + + ConstructWeaveHierarchyFromIndentation (); + } + + public void ResolveWeavePointNaming () + { + var namedWeavePoints = FindAll (w => !string.IsNullOrEmpty (w.name)); + + _namedWeavePoints = new Dictionary (); + + foreach (var weavePoint in namedWeavePoints) { + + // Check for weave point naming collisions + IWeavePoint existingWeavePoint; + if (_namedWeavePoints.TryGetValue (weavePoint.name, out existingWeavePoint)) { + var typeName = existingWeavePoint is Gather ? "gather" : "choice"; + var existingObj = (Parsed.Object)existingWeavePoint; + + Error ("A " + typeName + " with the same label name '" + weavePoint.name + "' already exists in this context on line " + existingObj.debugMetadata.startLineNumber, (Parsed.Object)weavePoint); + } + + _namedWeavePoints [weavePoint.name] = weavePoint; + } + } + + void ConstructWeaveHierarchyFromIndentation() + { + // Find nested indentation and convert to a proper object hierarchy + // (i.e. indented content is replaced with a Weave object that contains + // that nested content) + int contentIdx = 0; + while (contentIdx < content.Count) { + + Parsed.Object obj = content [contentIdx]; + + // Choice or Gather + if (obj is IWeavePoint) { + var weavePoint = (IWeavePoint)obj; + var weaveIndentIdx = weavePoint.indentationDepth - 1; + + // Inner level indentation - recurse + if (weaveIndentIdx > baseIndentIndex) { + + // Step through content until indent jumps out again + int innerWeaveStartIdx = contentIdx; + while (contentIdx < content.Count) { + var innerWeaveObj = content [contentIdx] as IWeavePoint; + if (innerWeaveObj != null) { + var innerIndentIdx = innerWeaveObj.indentationDepth - 1; + if (innerIndentIdx <= baseIndentIndex) { + break; + } + } + + contentIdx++; + } + + int weaveContentCount = contentIdx - innerWeaveStartIdx; + + var weaveContent = content.GetRange (innerWeaveStartIdx, weaveContentCount); + content.RemoveRange (innerWeaveStartIdx, weaveContentCount); + + var weave = new Weave (weaveContent, weaveIndentIdx); + InsertContent (innerWeaveStartIdx, weave); + + // Continue iteration from this point + contentIdx = innerWeaveStartIdx; + } + + } + + contentIdx++; + } + } + + // When the indentation wasn't told to us at construction time using + // a choice point with a known indentation level, we may be told to + // determine the indentation level by incrementing from our closest ancestor. + public int DetermineBaseIndentationFromContent(List contentList) + { + foreach (var obj in contentList) { + if (obj is IWeavePoint) { + return ((IWeavePoint)obj).indentationDepth - 1; + } + } + + // No weave points, so it doesn't matter + return 0; + } + + public override Runtime.Object GenerateRuntimeObject () + { + _rootContainer = currentContainer = new Runtime.Container(); + looseEnds = new List (); + + gatherPointsToResolve = new List (); + + // Iterate through content for the block at this level of indentation + // - Normal content is nested under Choices and Gathers + // - Blocks that are further indented cause recursion + // - Keep track of loose ends so that they can be diverted to Gathers + foreach(var obj in content) { + + // Choice or Gather + if (obj is IWeavePoint) { + AddRuntimeForWeavePoint ((IWeavePoint)obj); + } + + // Non-weave point + else { + + // Nested weave + if (obj is Weave) { + var weave = (Weave)obj; + AddRuntimeForNestedWeave (weave); + gatherPointsToResolve.AddRange (weave.gatherPointsToResolve); + } + + // Other object + // May be complex object that contains statements - e.g. a multi-line conditional + else { + AddGeneralRuntimeContent (obj.runtimeObject); + } + } + } + + // Pass any loose ends up the hierarhcy + PassLooseEndsToAncestors(); + + return _rootContainer; + } + + // Found gather point: + // - gather any loose ends + // - set the gather as the main container to dump new content in + void AddRuntimeForGather(Gather gather) + { + // Determine whether this Gather should be auto-entered: + // - It is auto-entered if there were no choices in the last section + // - A section is "since the previous gather" - so reset now + bool autoEnter = !hasSeenChoiceInSection; + hasSeenChoiceInSection = false; + + var gatherContainer = gather.runtimeContainer; + + if (gather.name == null) { + // Use disallowed character so it's impossible to have a name collision + gatherContainer.name = "g-" + _unnamedGatherCount; + _unnamedGatherCount++; + } + + // Auto-enter: include in main content + if (autoEnter) { + currentContainer.AddContent (gatherContainer); + } + + // Don't auto-enter: + // Add this gather to the main content, but only accessible + // by name so that it isn't stepped into automatically, but only via + // a divert from a loose end. + else { + _rootContainer.AddToNamedContentOnly (gatherContainer); + } + + // Consume loose ends: divert them to this gather + foreach (IWeavePoint looseEndWeavePoint in looseEnds) { + + var looseEnd = (Parsed.Object)looseEndWeavePoint; + + // Skip gather loose ends that are at the same level + // since they'll be handled by the auto-enter code below + // that only jumps into the gather if (current runtime choices == 0) + if (looseEnd is Gather) { + var prevGather = (Gather)looseEnd; + if (prevGather.indentationDepth == gather.indentationDepth) { + continue; + } + } + + Runtime.Divert divert = null; + + if (looseEnd is Parsed.Divert) { + divert = (Runtime.Divert) looseEnd.runtimeObject; + } else { + divert = new Runtime.Divert (); + var looseWeavePoint = looseEnd as IWeavePoint; + looseWeavePoint.runtimeContainer.AddContent (divert); + } + + // Pass back knowledge of this loose end being diverted + // to the FlowBase so that it can maintain a list of them, + // and resolve the divert references later + gatherPointsToResolve.Add (new GatherPointToResolve{ divert = divert, targetRuntimeObj = gatherContainer }); + } + looseEnds.Clear (); + + // Replace the current container itself + currentContainer = gatherContainer; + } + + void AddRuntimeForWeavePoint(IWeavePoint weavePoint) + { + // Current level Gather + if (weavePoint is Gather) { + AddRuntimeForGather ((Gather)weavePoint); + } + + // Current level choice + else if (weavePoint is Choice) { + + // Gathers that contain choices are no longer loose ends + // (same as when weave points get nested content) + if (previousWeavePoint is Gather) { + looseEnds.Remove (previousWeavePoint); + } + + // Add choice point content + var choice = (Choice)weavePoint; + currentContainer.AddContent (choice.runtimeObject); + + // Add choice's inner content to self + choice.innerContentContainer.name = "c-" + _choiceCount; + currentContainer.AddToNamedContentOnly (choice.innerContentContainer); + _choiceCount++; + + hasSeenChoiceInSection = true; + } + + // Keep track of loose ends + addContentToPreviousWeavePoint = false; // default + if (WeavePointHasLooseEnd (weavePoint)) { + looseEnds.Add (weavePoint); + + + var looseChoice = weavePoint as Choice; + if (looseChoice) { + addContentToPreviousWeavePoint = true; + } + } + previousWeavePoint = weavePoint; + } + + // Add nested block at a greater indentation level + public void AddRuntimeForNestedWeave(Weave nestedResult) + { + // Add this inner block to current container + // (i.e. within the main container, or within the last defined Choice/Gather) + AddGeneralRuntimeContent (nestedResult.rootContainer); + + // Now there's a deeper indentation level, the previous weave point doesn't + // count as a loose end (since it will have content to go to) + if (previousWeavePoint != null) { + looseEnds.Remove (previousWeavePoint); + addContentToPreviousWeavePoint = false; + } + } + + // Normal content gets added into the latest Choice or Gather by default, + // unless there hasn't been one yet. + void AddGeneralRuntimeContent(Runtime.Object content) + { + // Content is allowed to evaluate runtimeObject to null + // (e.g. AuthorWarning, which doesn't make it into the runtime) + if (content == null) + return; + + if (addContentToPreviousWeavePoint) { + previousWeavePoint.runtimeContainer.AddContent (content); + } else { + currentContainer.AddContent (content); + } + } + + void PassLooseEndsToAncestors() + { + if (looseEnds.Count == 0) return; + + // Search for Weave ancestor to pass loose ends to for gathering. + // There are two types depending on whether the current weave + // is separated by a conditional or sequence. + // - An "inner" weave is one that is directly connected to the current + // weave - i.e. you don't have to pass through a conditional or + // sequence to get to it. We're allowed to pass all loose ends to + // one of these. + // - An "outer" weave is one that is outside of a conditional/sequence + // that the current weave is nested within. We're only allowed to + // pass gathers (i.e. 'normal flow') loose ends up there, not normal + // choices. The rule is that choices have to be diverted explicitly + // by the author since it's ambiguous where flow should go otherwise. + // + // e.g.: + // + // - top <- e.g. outer weave + // {true: + // * choice <- e.g. inner weave + // * * choice 2 + // more content <- e.g. current weave + // * choice 2 + // } + // - more of outer weave + // + Weave closestInnerWeaveAncestor = null; + Weave closestOuterWeaveAncestor = null; + + // Find inner and outer ancestor weaves as defined above. + bool nested = false; + for (var ancestor = this.parent; ancestor != null; ancestor = ancestor.parent) + { + + // Found ancestor? + var weaveAncestor = ancestor as Weave; + if (weaveAncestor != null) + { + if (!nested && closestInnerWeaveAncestor == null) + closestInnerWeaveAncestor = weaveAncestor; + + if (nested && closestOuterWeaveAncestor == null) + closestOuterWeaveAncestor = weaveAncestor; + } + + + // Weaves nested within Sequences or Conditionals are + // "sealed" - any loose ends require explicit diverts. + if (ancestor is Sequence || ancestor is Conditional) + nested = true; + } + + // No weave to pass loose ends to at all? + if (closestInnerWeaveAncestor == null && closestOuterWeaveAncestor == null) + return; + + // Follow loose end passing logic as defined above + for (int i = looseEnds.Count - 1; i >= 0; i--) { + var looseEnd = looseEnds[i]; + + bool received = false; + + // This weave is nested within a conditional or sequence: + // - choices can only be passed up to direct ancestor ("inner") weaves + // - gathers can be passed up to either, but favour the closer (inner) weave + // if there is one + if(nested) { + if( looseEnd is Choice && closestInnerWeaveAncestor != null) { + closestInnerWeaveAncestor.ReceiveLooseEnd(looseEnd); + received = true; + } + + else if( !(looseEnd is Choice) ) { + var receivingWeave = closestInnerWeaveAncestor ?? closestOuterWeaveAncestor; + if(receivingWeave != null) { + receivingWeave.ReceiveLooseEnd(looseEnd); + received = true; + } + } + } + + // No nesting, all loose ends can be safely passed up + else { + closestInnerWeaveAncestor.ReceiveLooseEnd(looseEnd); + received = true; + } + + if(received) looseEnds.RemoveAt(i); + } + } + + void ReceiveLooseEnd(IWeavePoint childWeaveLooseEnd) + { + looseEnds.Add(childWeaveLooseEnd); + } + + public override void ResolveReferences(Story context) + { + base.ResolveReferences (context); + + // Check that choices nested within conditionals and sequences are terminated + if( looseEnds != null && looseEnds.Count > 0 ) { + var isNestedWeave = false; + for (var ancestor = this.parent; ancestor != null; ancestor = ancestor.parent) + { + if (ancestor is Sequence || ancestor is Conditional) + { + isNestedWeave = true; + break; + } + } + if (isNestedWeave) + { + ValidateTermination(BadNestedTerminationHandler); + } + } + + foreach(var gatherPoint in gatherPointsToResolve) { + gatherPoint.divert.targetPath = gatherPoint.targetRuntimeObj.path; + } + + CheckForWeavePointNamingCollisions (); + } + + public IWeavePoint WeavePointNamed(string name) + { + if (_namedWeavePoints == null) + return null; + + IWeavePoint weavePointResult = null; + if (_namedWeavePoints.TryGetValue (name, out weavePointResult)) + return weavePointResult; + + return null; + } + + // Global VARs and CONSTs are treated as "outside of the flow" + // when iterating over content that follows loose ends + bool IsGlobalDeclaration (Parsed.Object obj) + { + + var varAss = obj as VariableAssignment; + if (varAss && varAss.isGlobalDeclaration && varAss.isDeclaration) + return true; + + var constDecl = obj as ConstantDeclaration; + if (constDecl) + return true; + + return false; + } + + // While analysing final loose ends, we look to see whether there + // are any diverts etc which choices etc divert from + IEnumerable ContentThatFollowsWeavePoint (IWeavePoint weavePoint) + { + var obj = (Parsed.Object)weavePoint; + + // Inner content first (e.g. for a choice) + if (obj.content != null) { + foreach (var contentObj in obj.content) { + + // Global VARs and CONSTs are treated as "outside of the flow" + if (IsGlobalDeclaration (contentObj)) continue; + + yield return contentObj; + } + } + + + var parentWeave = obj.parent as Weave; + if (parentWeave == null) { + throw new System.Exception ("Expected weave point parent to be weave?"); + } + + var weavePointIdx = parentWeave.content.IndexOf (obj); + + for (int i = weavePointIdx+1; i < parentWeave.content.Count; i++) { + var laterObj = parentWeave.content [i]; + + // Global VARs and CONSTs are treated as "outside of the flow" + if (IsGlobalDeclaration (laterObj)) continue; + + // End of the current flow + if (laterObj is IWeavePoint) + break; + + // Other weaves will be have their own loose ends + if (laterObj is Weave) + break; + + yield return laterObj; + } + } + + public delegate void BadTerminationHandler (Parsed.Object terminatingObj); + public void ValidateTermination (BadTerminationHandler badTerminationHandler) + { + // Don't worry if the last object in the flow is a "TODO", + // even if there are other loose ends in other places + if (lastParsedSignificantObject is AuthorWarning) { + return; + } + + // By now, any sub-weaves will have passed loose ends up to the root weave (this). + // So there are 2 possible situations: + // - There are loose ends from somewhere in the flow. + // These aren't necessarily "real" loose ends - they're weave points + // that don't connect to any lower weave points, so we just + // have to check that they terminate properly. + // - This weave is just a list of content with no actual weave points, + // so we just need to check that the list of content terminates. + + bool hasLooseEnds = looseEnds != null && looseEnds.Count > 0; + + if (hasLooseEnds) { + foreach (var looseEnd in looseEnds) { + var looseEndFlow = ContentThatFollowsWeavePoint (looseEnd); + ValidateFlowOfObjectsTerminates (looseEndFlow, (Parsed.Object)looseEnd, badTerminationHandler); + } + } + + // No loose ends... is there any inner weaving at all? + // If not, make sure the single content stream is terminated correctly + else { + + // If there's any actual weaving, assume that content is + // terminated correctly since we would've had a loose end otherwise + foreach (var obj in content) { + if (obj is IWeavePoint) return; + } + + // Straight linear flow? Check it terminates + ValidateFlowOfObjectsTerminates (content, this, badTerminationHandler); + } + } + + void BadNestedTerminationHandler(Parsed.Object terminatingObj) + { + Conditional conditional = null; + for (var ancestor = terminatingObj.parent; ancestor != null; ancestor = ancestor.parent) { + if( ancestor is Sequence || ancestor is Conditional ) { + conditional = ancestor as Conditional; + break; + } + } + + var errorMsg = "Choices nested in conditionals or sequences need to explicitly divert afterwards."; + + // Tutorialise proper choice syntax if this looks like a single choice within a condition, e.g. + // { condition: + // * choice + // } + if (conditional != null) { + var numChoices = conditional.FindAll().Count; + if( numChoices == 1 ) { + errorMsg = "Choices with conditions should be written: '* {condition} choice'. Otherwise, "+ errorMsg.ToLower(); + } + } + + Error(errorMsg, terminatingObj); + } + + void ValidateFlowOfObjectsTerminates (IEnumerable objFlow, Parsed.Object defaultObj, BadTerminationHandler badTerminationHandler) + { + bool terminated = false; + Parsed.Object terminatingObj = defaultObj; + foreach (var flowObj in objFlow) { + + var divert = flowObj.Find (d => !d.isThread && !d.isTunnel && !d.isFunctionCall && !(d.parent is DivertTarget)); + if (divert != null) { + terminated = true; + } + + if (flowObj.Find () != null) { + terminated = true; + break; + } + + terminatingObj = flowObj; + } + + + if (!terminated) { + + // Author has left a note to self here - clearly we don't need + // to leave them with another warning since they know what they're doing. + if (terminatingObj is AuthorWarning) { + return; + } + + badTerminationHandler (terminatingObj); + } + } + + bool WeavePointHasLooseEnd(IWeavePoint weavePoint) + { + // No content, must be a loose end. + if (weavePoint.content == null) return true; + + // If a weave point is diverted from, it doesn't have a loose end. + // Detect a divert object within a weavePoint's main content + // Work backwards since we're really interested in the end, + // although it doesn't actually make a difference! + // (content after a divert will simply be inaccessible) + for (int i = weavePoint.content.Count - 1; i >= 0; --i) { + var innerDivert = weavePoint.content [i] as Divert; + if (innerDivert) { + bool willReturn = innerDivert.isThread || innerDivert.isTunnel || innerDivert.isFunctionCall; + if (!willReturn) return false; + } + } + + return true; + } + + // Enforce rule that weave points must not have the same + // name as any stitches or knots upwards in the hierarchy + void CheckForWeavePointNamingCollisions() + { + if (_namedWeavePoints == null) + return; + + var ancestorFlows = new List (); + foreach (var obj in this.ancestry) { + var flow = obj as FlowBase; + if (flow) + ancestorFlows.Add (flow); + else + break; + } + + + foreach (var namedWeavePointPair in _namedWeavePoints) { + var weavePointName = namedWeavePointPair.Key; + var weavePoint = (Parsed.Object) namedWeavePointPair.Value; + + foreach(var flow in ancestorFlows) { + + // Shallow search + var otherContentWithName = flow.ContentWithNameAtLevel (weavePointName); + + if (otherContentWithName && otherContentWithName != weavePoint) { + var errorMsg = string.Format ("{0} '{1}' has the same label name as a {2} (on {3})", + weavePoint.GetType().Name, + weavePointName, + otherContentWithName.GetType().Name, + otherContentWithName.debugMetadata); + + Error(errorMsg, (Parsed.Object) weavePoint); + } + + } + } + } + + // Keep track of previous weave point (Choice or Gather) + // at the current indentation level: + // - to add ordinary content to be nested under it + // - to add nested content under it when it's indented + // - to remove it from the list of loose ends when + // - it has indented content since it's no longer a loose end + // - it's a gather and it has a choice added to it + IWeavePoint previousWeavePoint = null; + bool addContentToPreviousWeavePoint = false; + + // Used for determining whether the next Gather should auto-enter + bool hasSeenChoiceInSection = false; + + int _unnamedGatherCount; + + int _choiceCount; + + + Runtime.Container _rootContainer; + Dictionary _namedWeavePoints; + } +} + diff --git a/Assets/Ink/compiler/ParsedHierarchy/Weave.cs.meta b/Assets/Ink/compiler/ParsedHierarchy/Weave.cs.meta new file mode 100644 index 000000000..277c4e5b7 --- /dev/null +++ b/Assets/Ink/compiler/ParsedHierarchy/Weave.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b4246f12808c0104dbba368744d9e43b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Ink/compiler/ParsedHierarchy/Wrap.cs b/Assets/Ink/compiler/ParsedHierarchy/Wrap.cs new file mode 100644 index 000000000..d6b435a9b --- /dev/null +++ b/Assets/Ink/compiler/ParsedHierarchy/Wrap.cs @@ -0,0 +1,27 @@ + +namespace Ink.Parsed +{ + public class Wrap : Parsed.Object where T : Runtime.Object + { + public Wrap (T objToWrap) + { + _objToWrap = objToWrap; + } + + public override Runtime.Object GenerateRuntimeObject () + { + return _objToWrap; + } + + T _objToWrap; + } + + // Shorthand for writing Parsed.Wrap and Parsed.Wrap + public class Glue : Wrap { + public Glue (Runtime.Glue glue) : base(glue) {} + } + public class Tag : Wrap { + public Tag (Runtime.Tag tag) : base (tag) { } + } +} + diff --git a/Assets/Ink/compiler/ParsedHierarchy/Wrap.cs.meta b/Assets/Ink/compiler/ParsedHierarchy/Wrap.cs.meta new file mode 100644 index 000000000..c07a8781d --- /dev/null +++ b/Assets/Ink/compiler/ParsedHierarchy/Wrap.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 29a76a6c4b4014c45ae0c350251009f2 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Ink/compiler/Plugins.meta b/Assets/Ink/compiler/Plugins.meta new file mode 100644 index 000000000..c94b3527c --- /dev/null +++ b/Assets/Ink/compiler/Plugins.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 252b1de67c607c941818fcbd7d630331 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Ink/compiler/Plugins/Plugin.cs b/Assets/Ink/compiler/Plugins/Plugin.cs new file mode 100644 index 000000000..c56e98cd3 --- /dev/null +++ b/Assets/Ink/compiler/Plugins/Plugin.cs @@ -0,0 +1,19 @@ +using System; + +namespace Ink +{ + public interface IPlugin + { + // Hooks: if in doubt use PostExport, since the parsedStory is in a more finalised state. + + // Hook for immediately after the story has been parsed into its basic Parsed hierarchy. + // Could be useful for modifying the story before it's exported. + void PostParse(Parsed.Story parsedStory); + + // Hook for after parsed story has been converted into its runtime equivalent. Note that + // during this process the parsed story will have changed structure too, to take into + // account analysis of the structure of Weave, for example. + void PostExport(Parsed.Story parsedStory, Runtime.Story runtimeStory); + } +} + diff --git a/Assets/Ink/compiler/Plugins/Plugin.cs.meta b/Assets/Ink/compiler/Plugins/Plugin.cs.meta new file mode 100644 index 000000000..02289140d --- /dev/null +++ b/Assets/Ink/compiler/Plugins/Plugin.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 86d9cdbddbacc9a42863d36046df24df +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Ink/compiler/Plugins/PluginManager.cs b/Assets/Ink/compiler/Plugins/PluginManager.cs new file mode 100644 index 000000000..60421c130 --- /dev/null +++ b/Assets/Ink/compiler/Plugins/PluginManager.cs @@ -0,0 +1,40 @@ +using System; +using System.Collections.Generic; + +namespace Ink +{ + public class PluginManager + { + public PluginManager (List pluginNames) + { + _plugins = new List (); + + // TODO: Make these plugin names DLL filenames, and load up their assemblies + foreach (string pluginName in pluginNames) { + //if (pluginName == "ChoiceListPlugin") { + // _plugins.Add (new InkPlugin.ChoiceListPlugin ()); + //}else + { + throw new System.Exception ("Plugin not found"); + } + } + } + + public void PostParse(Parsed.Story parsedStory) + { + foreach (var plugin in _plugins) { + plugin.PostParse (parsedStory); + } + } + + public void PostExport(Parsed.Story parsedStory, Runtime.Story runtimeStory) + { + foreach (var plugin in _plugins) { + plugin.PostExport (parsedStory, runtimeStory); + } + } + + List _plugins; + } +} + diff --git a/Assets/Ink/compiler/Plugins/PluginManager.cs.meta b/Assets/Ink/compiler/Plugins/PluginManager.cs.meta new file mode 100644 index 000000000..3cdaff293 --- /dev/null +++ b/Assets/Ink/compiler/Plugins/PluginManager.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 84a0e05f4ea45964cb00f7df3f80b52e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Ink/compiler/Stats.cs b/Assets/Ink/compiler/Stats.cs new file mode 100644 index 000000000..2f5d56689 --- /dev/null +++ b/Assets/Ink/compiler/Stats.cs @@ -0,0 +1,68 @@ + +namespace Ink { + public struct Stats { + + public int words; + public int knots; + public int stitches; + public int functions; + public int choices; + public int gathers; + public int diverts; + + public static Stats Generate(Ink.Parsed.Story story) { + var stats = new Stats(); + + var allText = story.FindAll(); + + // Count all the words across all strings + stats.words = 0; + foreach(var text in allText) { + + var wordsInThisStr = 0; + var wasWhiteSpace = true; + foreach(var c in text.text) { + if( c == ' ' || c == '\t' || c == '\n' || c == '\r' ) { + wasWhiteSpace = true; + } else if( wasWhiteSpace ) { + wordsInThisStr++; + wasWhiteSpace = false; + } + } + + stats.words += wordsInThisStr; + } + + var knots = story.FindAll(); + stats.knots = knots.Count; + + stats.functions = 0; + foreach(var knot in knots) + if (knot.isFunction) stats.functions++; + + var stitches = story.FindAll(); + stats.stitches = stitches.Count; + + var choices = story.FindAll(); + stats.choices = choices.Count; + + // Skip implicit gather that's generated at top of story + // (we know which it is because it isn't assigned debug metadata) + var gathers = story.FindAll(g => g.debugMetadata != null); + stats.gathers = gathers.Count; + + // May not be entirely what you expect. + // Does it nevertheless have value? + // Includes: + // - DONE, END + // - Function calls + // - Some implicitly generated weave diverts + // But we subtract one for the implicit DONE + // at the end of the main flow outside of knots. + var diverts = story.FindAll(); + stats.diverts = diverts.Count - 1; + + return stats; + } + } +} \ No newline at end of file diff --git a/Assets/Ink/compiler/Stats.cs.meta b/Assets/Ink/compiler/Stats.cs.meta new file mode 100644 index 000000000..c27c6bc89 --- /dev/null +++ b/Assets/Ink/compiler/Stats.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 07aecb738f7788b4e94dc7f34fecb4ea +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Ink/compiler/StringParser.meta b/Assets/Ink/compiler/StringParser.meta new file mode 100644 index 000000000..2a536ea1e --- /dev/null +++ b/Assets/Ink/compiler/StringParser.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f8a64abff1ec50e469e2dd81749c6610 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Ink/compiler/StringParser/StringParser.cs b/Assets/Ink/compiler/StringParser/StringParser.cs new file mode 100644 index 000000000..6feed54cc --- /dev/null +++ b/Assets/Ink/compiler/StringParser/StringParser.cs @@ -0,0 +1,685 @@ +using System; +using System.Collections.Generic; +using System.Reflection; +using System.Diagnostics; +using System.Text; + +namespace Ink +{ + public class StringParser + { + public delegate object ParseRule(); + + public delegate T SpecificParseRule() where T : class; + + public delegate void ErrorHandler(string message, int index, int lineIndex, bool isWarning); + + public StringParser (string str) + { + str = PreProcessInputString (str); + + state = new StringParserState(); + + if (str != null) { + _chars = str.ToCharArray (); + } else { + _chars = new char[0]; + } + + inputString = str; + } + + public class ParseSuccessStruct {}; + public static ParseSuccessStruct ParseSuccess = new ParseSuccessStruct(); + + public static CharacterSet numbersCharacterSet = new CharacterSet("0123456789"); + + protected ErrorHandler errorHandler { get; set; } + + public char currentCharacter + { + get + { + if (index >= 0 && remainingLength > 0) { + return _chars [index]; + } else { + return (char)0; + } + } + } + + public StringParserState state { get; private set; } + + public bool hadError { get; protected set; } + + // Don't do anything by default, but provide ability for subclasses + // to manipulate the string before it's used as input (converted to a char array) + protected virtual string PreProcessInputString(string str) + { + return str; + } + + //-------------------------------- + // Parse state + //-------------------------------- + + protected int BeginRule() + { + return state.Push (); + } + + protected object FailRule(int expectedRuleId) + { + state.Pop (expectedRuleId); + return null; + } + + protected void CancelRule(int expectedRuleId) + { + state.Pop (expectedRuleId); + } + + protected object SucceedRule(int expectedRuleId, object result = null) + { + // Get state at point where this rule stared evaluating + var stateAtSucceedRule = state.Peek(expectedRuleId); + var stateAtBeginRule = state.PeekPenultimate (); + + + // Allow subclass to receive callback + RuleDidSucceed (result, stateAtBeginRule, stateAtSucceedRule); + + // Flatten state stack so that we maintain the same values, + // but remove one level in the stack. + state.Squash(); + + if (result == null) { + result = ParseSuccess; + } + + return result; + } + + protected virtual void RuleDidSucceed(object result, StringParserState.Element startState, StringParserState.Element endState) + { + + } + + protected object Expect(ParseRule rule, string message = null, ParseRule recoveryRule = null) + { + object result = ParseObject(rule); + if (result == null) { + if (message == null) { + message = rule.Method.Name; + } + + string butSaw; + string lineRemainder = LineRemainder (); + if (lineRemainder == null || lineRemainder.Length == 0) { + butSaw = "end of line"; + } else { + butSaw = "'" + lineRemainder + "'"; + } + + Error ("Expected "+message+" but saw "+butSaw); + + if (recoveryRule != null) { + result = recoveryRule (); + } + } + return result; + } + + protected void Error(string message, bool isWarning = false) + { + ErrorOnLine (message, lineIndex + 1, isWarning); + } + + protected void ErrorWithParsedObject(string message, Parsed.Object result, bool isWarning = false) + { + ErrorOnLine (message, result.debugMetadata.startLineNumber, isWarning); + } + + protected void ErrorOnLine(string message, int lineNumber, bool isWarning) + { + if ( !state.errorReportedAlreadyInScope ) { + + var errorType = isWarning ? "Warning" : "Error"; + + if (errorHandler == null) { + throw new System.Exception (errorType+" on line " + lineNumber + ": " + message); + } else { + errorHandler (message, index, lineNumber-1, isWarning); + } + + state.NoteErrorReported (); + } + + if( !isWarning ) + hadError = true; + } + + protected void Warning(string message) + { + Error(message, isWarning:true); + } + + public bool endOfInput + { + get { return index >= _chars.Length; } + } + + public string remainingString + { + get { + return new string(_chars, index, remainingLength); + } + } + + public string LineRemainder() + { + return (string) Peek (() => ParseUntilCharactersFromString ("\n\r")); + } + + public int remainingLength + { + get { + return _chars.Length - index; + } + } + + public string inputString { get; private set; } + + + public int lineIndex + { + set { + state.lineIndex = value; + } + get { + return state.lineIndex; + } + } + + public int characterInLineIndex + { + set { + state.characterInLineIndex = value; + } + get { + return state.characterInLineIndex; + } + } + + public int index + { + // If we want subclass parsers to be able to set the index directly, + // then we would need to know what the lineIndex of the new + // index would be - would we have to step through manually + // counting the newlines to do so? + private set { + state.characterIndex = value; + } + get { + return state.characterIndex; + } + } + + public void SetFlag(uint flag, bool trueOrFalse) { + if (trueOrFalse) { + state.customFlags |= flag; + } else { + state.customFlags &= ~flag; + } + } + + public bool GetFlag(uint flag) { + return (state.customFlags & flag) != 0; + } + + //-------------------------------- + // Structuring + //-------------------------------- + + public object ParseObject(ParseRule rule) + { + int ruleId = BeginRule (); + + var stackHeightBefore = state.stackHeight; + + var result = rule (); + + if (stackHeightBefore != state.stackHeight) { + throw new System.Exception ("Mismatched Begin/Fail/Succeed rules"); + } + + if (result == null) + return FailRule (ruleId); + + SucceedRule (ruleId, result); + return result; + } + + public T Parse(SpecificParseRule rule) where T : class + { + int ruleId = BeginRule (); + + var result = rule () as T; + if (result == null) { + FailRule (ruleId); + return null; + } + + SucceedRule (ruleId, result); + return result; + } + + public object OneOf(params ParseRule[] array) + { + foreach (ParseRule rule in array) { + object result = ParseObject(rule); + if (result != null) + return result; + } + + return null; + } + + public List OneOrMore(ParseRule rule) + { + var results = new List (); + + object result = null; + do { + result = ParseObject(rule); + if( result != null ) { + results.Add(result); + } + } while(result != null); + + if (results.Count > 0) { + return results; + } else { + return null; + } + } + + public ParseRule Optional(ParseRule rule) + { + return () => { + object result = ParseObject(rule); + if( result == null ) { + result = ParseSuccess; + } + return result; + }; + } + + // Return ParseSuccess instead the real result so that it gets excluded + // from result arrays (e.g. Interleave) + public ParseRule Exclude(ParseRule rule) + { + return () => { + object result = ParseObject(rule); + if( result == null ) { + return null; + } + return ParseSuccess; + }; + } + + // Combination of both of the above + public ParseRule OptionalExclude(ParseRule rule) + { + return () => { + ParseObject(rule); + return ParseSuccess; + }; + } + + // Convenience method for creating more readable ParseString rules that can be combined + // in other structuring rules (like OneOf etc) + // e.g. OneOf(String("one"), String("two")) + protected ParseRule String(string str) + { + return () => ParseString (str); + } + + private void TryAddResultToList(object result, List list, bool flatten = true) + { + if (result == ParseSuccess) { + return; + } + + if (flatten) { + var resultCollection = result as System.Collections.ICollection; + if (resultCollection != null) { + foreach (object obj in resultCollection) { + Debug.Assert (obj is T); + list.Add ((T)obj); + } + return; + } + } + + Debug.Assert (result is T); + list.Add ((T)result); + } + + + public List Interleave(ParseRule ruleA, ParseRule ruleB, ParseRule untilTerminator = null, bool flatten = true) + { + int ruleId = BeginRule (); + + var results = new List (); + + // First outer padding + var firstA = ParseObject(ruleA); + if (firstA == null) { + return (List) FailRule(ruleId); + } else { + TryAddResultToList(firstA, results, flatten); + } + + object lastMainResult = null, outerResult = null; + do { + + // "until" condition hit? + if( untilTerminator != null && Peek(untilTerminator) != null ) { + break; + } + + // Main inner + lastMainResult = ParseObject(ruleB); + if( lastMainResult == null ) { + break; + } else { + TryAddResultToList(lastMainResult, results, flatten); + } + + // Outer result (i.e. last A in ABA) + outerResult = null; + if( lastMainResult != null ) { + outerResult = ParseObject(ruleA); + if (outerResult == null) { + break; + } else { + TryAddResultToList(outerResult, results, flatten); + } + } + + // Stop if there are no results, or if both are the placeholder "ParseSuccess" (i.e. Optional success rather than a true value) + } while((lastMainResult != null || outerResult != null) + && !(lastMainResult == ParseSuccess && outerResult == ParseSuccess) && remainingLength > 0); + + if (results.Count == 0) { + return (List) FailRule(ruleId); + } + + return (List) SucceedRule(ruleId, results); + } + + //-------------------------------- + // Basic string parsing + //-------------------------------- + + public string ParseString(string str) + { + if (str.Length > remainingLength) { + return null; + } + + int ruleId = BeginRule (); + + // Optimisation from profiling: + // Store in temporary local variables + // since they're properties that would have to access + // the rule stack every time otherwise. + int i = index; + int cli = characterInLineIndex; + int li = lineIndex; + + bool success = true; + foreach (char c in str) { + if ( _chars[i] != c) { + success = false; + break; + } + if (c == '\n') { + li++; + cli = -1; + } + i++; + cli++; + } + + index = i; + characterInLineIndex = cli; + lineIndex = li; + + if (success) { + return (string) SucceedRule(ruleId, str); + } + else { + return (string) FailRule (ruleId); + } + } + + public char ParseSingleCharacter() + { + if (remainingLength > 0) { + char c = _chars [index]; + if (c == '\n') { + lineIndex++; + characterInLineIndex = -1; + } + index++; + characterInLineIndex++; + return c; + } else { + return (char)0; + } + } + + public string ParseUntilCharactersFromString(string str, int maxCount = -1) + { + return ParseCharactersFromString(str, false, maxCount); + } + + public string ParseUntilCharactersFromCharSet(CharacterSet charSet, int maxCount = -1) + { + return ParseCharactersFromCharSet(charSet, false, maxCount); + } + + public string ParseCharactersFromString(string str, int maxCount = -1) + { + return ParseCharactersFromString(str, true, maxCount); + } + + public string ParseCharactersFromString(string str, bool shouldIncludeStrChars, int maxCount = -1) + { + return ParseCharactersFromCharSet (new CharacterSet(str), shouldIncludeStrChars); + } + + public string ParseCharactersFromCharSet(CharacterSet charSet, bool shouldIncludeChars = true, int maxCount = -1) + { + if (maxCount == -1) { + maxCount = int.MaxValue; + } + + int startIndex = index; + + // Optimisation from profiling: + // Store in temporary local variables + // since they're properties that would have to access + // the rule stack every time otherwise. + int i = index; + int cli = characterInLineIndex; + int li = lineIndex; + + int count = 0; + while ( i < _chars.Length && charSet.Contains (_chars [i]) == shouldIncludeChars && count < maxCount ) { + if (_chars [i] == '\n') { + li++; + cli = -1; + } + i++; + cli++; + count++; + } + + index = i; + characterInLineIndex = cli; + lineIndex = li; + + int lastCharIndex = index; + if (lastCharIndex > startIndex) { + return new string (_chars, startIndex, index - startIndex); + } else { + return null; + } + } + + public object Peek(ParseRule rule) + { + int ruleId = BeginRule (); + object result = rule (); + CancelRule (ruleId); + return result; + } + + public string ParseUntil(ParseRule stopRule, CharacterSet pauseCharacters = null, CharacterSet endCharacters = null) + { + int ruleId = BeginRule (); + + + CharacterSet pauseAndEnd = new CharacterSet (); + if (pauseCharacters != null) { + pauseAndEnd.UnionWith (pauseCharacters); + } + if (endCharacters != null) { + pauseAndEnd.UnionWith (endCharacters); + } + + StringBuilder parsedString = new StringBuilder (); + object ruleResultAtPause = null; + + // Keep attempting to parse strings up to the pause (and end) points. + // - At each of the pause points, attempt to parse according to the rule + // - When the end point is reached (or EOF), we're done + do { + + // TODO: Perhaps if no pause or end characters are passed, we should check *every* character for stopRule? + string partialParsedString = ParseUntilCharactersFromCharSet(pauseAndEnd); + if( partialParsedString != null ) { + parsedString.Append(partialParsedString); + } + + // Attempt to run the parse rule at this pause point + ruleResultAtPause = Peek(stopRule); + + // Rule completed - we're done + if( ruleResultAtPause != null ) { + break; + } else { + + if( endOfInput ) { + break; + } + + // Reached a pause point, but rule failed. Step past and continue parsing string + char pauseCharacter = currentCharacter; + if( pauseCharacters != null && pauseCharacters.Contains(pauseCharacter) ) { + parsedString.Append(pauseCharacter); + if( pauseCharacter == '\n' ) { + lineIndex++; + characterInLineIndex = -1; + } + index++; + characterInLineIndex++; + continue; + } else { + break; + } + } + + } while(true); + + if (parsedString.Length > 0) { + return (string) SucceedRule (ruleId, parsedString.ToString ()); + } else { + return (string) FailRule (ruleId); + } + + } + + // No need to Begin/End rule since we never parse a newline, so keeping oldIndex is good enough + public int? ParseInt() + { + int oldIndex = index; + int oldCharacterInLineIndex = characterInLineIndex; + + bool negative = ParseString ("-") != null; + + // Optional whitespace + ParseCharactersFromString (" \t"); + + var parsedString = ParseCharactersFromCharSet (numbersCharacterSet); + if(parsedString == null) { + // Roll back and fail + index = oldIndex; + characterInLineIndex = oldCharacterInLineIndex; + return null; + } + + int parsedInt; + if (int.TryParse (parsedString, out parsedInt)) { + return negative ? -parsedInt : parsedInt; + } + + Error("Failed to read integer value: " + parsedString + ". Perhaps it's out of the range of acceptable numbers ink supports? (" + int.MinValue + " to " + int.MaxValue + ")"); + return null; + } + + // No need to Begin/End rule since we never parse a newline, so keeping oldIndex is good enough + public float? ParseFloat() + { + int oldIndex = index; + int oldCharacterInLineIndex = characterInLineIndex; + + int? leadingInt = ParseInt (); + if (leadingInt != null) { + + if (ParseString (".") != null) { + + var afterDecimalPointStr = ParseCharactersFromCharSet (numbersCharacterSet); + return float.Parse (leadingInt+"." + afterDecimalPointStr, System.Globalization.CultureInfo.InvariantCulture); + } + } + + // Roll back and fail + index = oldIndex; + characterInLineIndex = oldCharacterInLineIndex; + return null; + } + + // You probably want "endOfLine", since it handles endOfFile too. + protected string ParseNewline() + { + int ruleId = BeginRule(); + + // Optional \r, definite \n to support Windows (\r\n) and Mac/Unix (\n) + // 2nd May 2016: Always collapse \r\n to just \n + ParseString ("\r"); + + if( ParseString ("\n") == null ) { + return (string) FailRule(ruleId); + } else { + return (string) SucceedRule(ruleId, "\n"); + } + } + + private char[] _chars; + } +} + diff --git a/Assets/Ink/compiler/StringParser/StringParser.cs.meta b/Assets/Ink/compiler/StringParser/StringParser.cs.meta new file mode 100644 index 000000000..8d6676495 --- /dev/null +++ b/Assets/Ink/compiler/StringParser/StringParser.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: fe5c87132db4e264d9f3283e6c4f65a0 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Ink/compiler/StringParser/StringParserState.cs b/Assets/Ink/compiler/StringParser/StringParserState.cs new file mode 100644 index 000000000..625d905bc --- /dev/null +++ b/Assets/Ink/compiler/StringParser/StringParserState.cs @@ -0,0 +1,170 @@ + +namespace Ink +{ + public class StringParserState + { + public int lineIndex { + get { return currentElement.lineIndex; } + set { currentElement.lineIndex = value; } + } + + public int characterIndex { + get { return currentElement.characterIndex; } + set { currentElement.characterIndex = value; } + } + + public int characterInLineIndex { + get { return currentElement.characterInLineIndex; } + set { currentElement.characterInLineIndex = value; } + } + + public uint customFlags { + get { return currentElement.customFlags; } + set { currentElement.customFlags = value; } + } + + public bool errorReportedAlreadyInScope { + get { + return currentElement.reportedErrorInScope; + } + } + + public int stackHeight { + get { + return _numElements; + } + } + + public class Element { + public int characterIndex; + public int characterInLineIndex; + public int lineIndex; + public bool reportedErrorInScope; + public int uniqueId; + public uint customFlags; + + public Element() { + + } + + public void CopyFrom(Element fromElement) + { + _uniqueIdCounter++; + this.uniqueId = _uniqueIdCounter; + this.characterIndex = fromElement.characterIndex; + this.characterInLineIndex = fromElement.characterInLineIndex; + this.lineIndex = fromElement.lineIndex; + this.customFlags = fromElement.customFlags; + this.reportedErrorInScope = false; + } + + // Squash is used when succeeding from a rule, + // so only the state information we wanted to carry forward is + // retained. e.g. characterIndex and lineIndex are global, + // however uniqueId is specific to the individual rule, + // and likewise, custom flags are designed for the temporary + // state of the individual rule too. + public void SquashFrom(Element fromElement) + { + this.characterIndex = fromElement.characterIndex; + this.characterInLineIndex = fromElement.characterInLineIndex; + this.lineIndex = fromElement.lineIndex; + this.reportedErrorInScope = fromElement.reportedErrorInScope; + } + + static int _uniqueIdCounter; + } + + public StringParserState () + { + const int kExpectedMaxStackDepth = 200; + _stack = new Element[kExpectedMaxStackDepth]; + + for (int i = 0; i < kExpectedMaxStackDepth; ++i) { + _stack [i] = new Element (); + } + + _numElements = 1; + } + + public int Push() + { + if (_numElements >= _stack.Length) + throw new System.Exception ("Stack overflow in parser state"); + + var prevElement = _stack [_numElements - 1]; + var newElement = _stack[_numElements]; + _numElements++; + + newElement.CopyFrom (prevElement); + + return newElement.uniqueId; + } + + public void Pop(int expectedRuleId) + { + if (_numElements == 1) { + throw new System.Exception ("Attempting to remove final stack element is illegal! Mismatched Begin/Succceed/Fail?"); + } + + if ( currentElement.uniqueId != expectedRuleId) + throw new System.Exception ("Mismatched rule IDs - do you have mismatched Begin/Succeed/Fail?"); + + // Restore state + _numElements--; + } + + public Element Peek(int expectedRuleId) + { + if (currentElement.uniqueId != expectedRuleId) + throw new System.Exception ("Mismatched rule IDs - do you have mismatched Begin/Succeed/Fail?"); + + return _stack[_numElements-1]; + } + + public Element PeekPenultimate() + { + if (_numElements >= 2) { + return _stack [_numElements - 2]; + } else { + return null; + } + } + + // Reduce stack height while maintaining currentElement + // Remove second last element: i.e. "squash last two elements together" + // Used when succeeding from a rule (and ONLY when succeeding, since + // the state of the top element is retained). + public void Squash() + { + if (_numElements < 2) { + throw new System.Exception ("Attempting to remove final stack element is illegal! Mismatched Begin/Succceed/Fail?"); + } + + var penultimateEl = _stack [_numElements - 2]; + var lastEl = _stack [_numElements - 1]; + + penultimateEl.SquashFrom (lastEl); + + _numElements--; + } + + public void NoteErrorReported() + { + foreach (var el in _stack) { + el.reportedErrorInScope = true; + } + } + + protected Element currentElement + { + get { + return _stack [_numElements - 1]; + } + } + + private Element[] _stack; + private int _numElements; + } +} + diff --git a/Assets/Ink/compiler/StringParser/StringParserState.cs.meta b/Assets/Ink/compiler/StringParser/StringParserState.cs.meta new file mode 100644 index 000000000..143fa99b8 --- /dev/null +++ b/Assets/Ink/compiler/StringParser/StringParserState.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a086715dff4d56d42b1105ca285cd994 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Ink/compiler/ink_compiler.csproj b/Assets/Ink/compiler/ink_compiler.csproj new file mode 100644 index 000000000..7df8a97b7 --- /dev/null +++ b/Assets/Ink/compiler/ink_compiler.csproj @@ -0,0 +1,41 @@ + + + + netstandard2.0 + Ink + ink_compiler + + + + inkle Ltd + InkleStudios + phish + https://github.com/inkle/ink + https://github.com/inkle/ink + https://github.com/inkle/ink/blob/master/LICENSE.txt + git + + + + + + + + + + + + <_Parameter1>inklecate + + + <_Parameter1>ink-tests + + + + diff --git a/Assets/Ink/compiler/ink_compiler.csproj.meta b/Assets/Ink/compiler/ink_compiler.csproj.meta new file mode 100644 index 000000000..b00fb19ce --- /dev/null +++ b/Assets/Ink/compiler/ink_compiler.csproj.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 2c15838d8ff6de0469062599a553d1e7 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Ink/ink-engine-runtime.meta b/Assets/Ink/ink-engine-runtime.meta new file mode 100644 index 000000000..65dc511c8 --- /dev/null +++ b/Assets/Ink/ink-engine-runtime.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 767b3e57f5e52f847b5f3303ad8b1517 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Ink/ink-engine-runtime/CallStack.cs b/Assets/Ink/ink-engine-runtime/CallStack.cs new file mode 100644 index 000000000..06b5e66d1 --- /dev/null +++ b/Assets/Ink/ink-engine-runtime/CallStack.cs @@ -0,0 +1,443 @@ +using System.Collections.Generic; +using System.Linq; +using System.Diagnostics; + +namespace Ink.Runtime +{ + public class CallStack + { + public class Element + { + public Pointer currentPointer; + + public bool inExpressionEvaluation; + public Dictionary temporaryVariables; + public PushPopType type; + + // When this callstack element is actually a function evaluation called from the game, + // we need to keep track of the size of the evaluation stack when it was called + // so that we know whether there was any return value. + public int evaluationStackHeightWhenPushed; + + // When functions are called, we trim whitespace from the start and end of what + // they generate, so we make sure know where the function's start and end are. + public int functionStartInOuputStream; + + public Element(PushPopType type, Pointer pointer, bool inExpressionEvaluation = false) { + this.currentPointer = pointer; + this.inExpressionEvaluation = inExpressionEvaluation; + this.temporaryVariables = new Dictionary(); + this.type = type; + } + + public Element Copy() + { + var copy = new Element (this.type, currentPointer, this.inExpressionEvaluation); + copy.temporaryVariables = new Dictionary(this.temporaryVariables); + copy.evaluationStackHeightWhenPushed = evaluationStackHeightWhenPushed; + copy.functionStartInOuputStream = functionStartInOuputStream; + return copy; + } + } + + public class Thread + { + public List callstack; + public int threadIndex; + public Pointer previousPointer; + + public Thread() { + callstack = new List(); + } + + public Thread(Dictionary jThreadObj, Story storyContext) : this() { + threadIndex = (int) jThreadObj ["threadIndex"]; + + List jThreadCallstack = (List) jThreadObj ["callstack"]; + foreach (object jElTok in jThreadCallstack) { + + var jElementObj = (Dictionary)jElTok; + + PushPopType pushPopType = (PushPopType)(int)jElementObj ["type"]; + + Pointer pointer = Pointer.Null; + + string currentContainerPathStr = null; + object currentContainerPathStrToken; + if (jElementObj.TryGetValue ("cPath", out currentContainerPathStrToken)) { + currentContainerPathStr = currentContainerPathStrToken.ToString (); + + var threadPointerResult = storyContext.ContentAtPath (new Path (currentContainerPathStr)); + pointer.container = threadPointerResult.container; + pointer.index = (int)jElementObj ["idx"]; + + if (threadPointerResult.obj == null) + throw new System.Exception ("When loading state, internal story location couldn't be found: " + currentContainerPathStr + ". Has the story changed since this save data was created?"); + else if (threadPointerResult.approximate) + storyContext.Warning ("When loading state, exact internal story location couldn't be found: '" + currentContainerPathStr + "', so it was approximated to '"+pointer.container.path.ToString()+"' to recover. Has the story changed since this save data was created?"); + } + + bool inExpressionEvaluation = (bool)jElementObj ["exp"]; + + var el = new Element (pushPopType, pointer, inExpressionEvaluation); + + object temps; + if ( jElementObj.TryGetValue("temp", out temps) ) { + el.temporaryVariables = Json.JObjectToDictionaryRuntimeObjs((Dictionary)temps); + } else { + el.temporaryVariables.Clear(); + } + + callstack.Add (el); + } + + object prevContentObjPath; + if( jThreadObj.TryGetValue("previousContentObject", out prevContentObjPath) ) { + var prevPath = new Path((string)prevContentObjPath); + previousPointer = storyContext.PointerAtPath(prevPath); + } + } + + public Thread Copy() { + var copy = new Thread (); + copy.threadIndex = threadIndex; + foreach(var e in callstack) { + copy.callstack.Add(e.Copy()); + } + copy.previousPointer = previousPointer; + return copy; + } + + public void WriteJson(SimpleJson.Writer writer) + { + writer.WriteObjectStart(); + + // callstack + writer.WritePropertyStart("callstack"); + writer.WriteArrayStart(); + foreach (CallStack.Element el in callstack) + { + writer.WriteObjectStart(); + if(!el.currentPointer.isNull) { + writer.WriteProperty("cPath", el.currentPointer.container.path.componentsString); + writer.WriteProperty("idx", el.currentPointer.index); + } + + writer.WriteProperty("exp", el.inExpressionEvaluation); + writer.WriteProperty("type", (int)el.type); + + if(el.temporaryVariables.Count > 0) { + writer.WritePropertyStart("temp"); + Json.WriteDictionaryRuntimeObjs(writer, el.temporaryVariables); + writer.WritePropertyEnd(); + } + + writer.WriteObjectEnd(); + } + writer.WriteArrayEnd(); + writer.WritePropertyEnd(); + + // threadIndex + writer.WriteProperty("threadIndex", threadIndex); + + if (!previousPointer.isNull) + { + writer.WriteProperty("previousContentObject", previousPointer.Resolve().path.ToString()); + } + + writer.WriteObjectEnd(); + } + } + + public List elements { + get { + return callStack; + } + } + + public int depth { + get { + return elements.Count; + } + } + + public Element currentElement { + get { + var thread = _threads [_threads.Count - 1]; + var cs = thread.callstack; + return cs [cs.Count - 1]; + } + } + + public int currentElementIndex { + get { + return callStack.Count - 1; + } + } + + public Thread currentThread + { + get { + return _threads [_threads.Count - 1]; + } + set { + Debug.Assert (_threads.Count == 1, "Shouldn't be directly setting the current thread when we have a stack of them"); + _threads.Clear (); + _threads.Add (value); + } + } + + public bool canPop { + get { + return callStack.Count > 1; + } + } + + public CallStack (Story storyContext) + { + _startOfRoot = Pointer.StartOf(storyContext.rootContentContainer); + Reset(); + } + + + public CallStack(CallStack toCopy) + { + _threads = new List (); + foreach (var otherThread in toCopy._threads) { + _threads.Add (otherThread.Copy ()); + } + _threadCounter = toCopy._threadCounter; + _startOfRoot = toCopy._startOfRoot; + } + + public void Reset() + { + _threads = new List(); + _threads.Add(new Thread()); + + _threads[0].callstack.Add(new Element(PushPopType.Tunnel, _startOfRoot)); + } + + + // Unfortunately it's not possible to implement jsonToken since + // the setter needs to take a Story as a context in order to + // look up objects from paths for currentContainer within elements. + public void SetJsonToken(Dictionary jObject, Story storyContext) + { + _threads.Clear (); + + var jThreads = (List) jObject ["threads"]; + + foreach (object jThreadTok in jThreads) { + var jThreadObj = (Dictionary)jThreadTok; + var thread = new Thread (jThreadObj, storyContext); + _threads.Add (thread); + } + + _threadCounter = (int)jObject ["threadCounter"]; + _startOfRoot = Pointer.StartOf(storyContext.rootContentContainer); + } + + public void WriteJson(SimpleJson.Writer w) + { + w.WriteObject(writer => + { + writer.WritePropertyStart("threads"); + { + writer.WriteArrayStart(); + + foreach (CallStack.Thread thread in _threads) + { + thread.WriteJson(writer); + } + + writer.WriteArrayEnd(); + } + writer.WritePropertyEnd(); + + writer.WritePropertyStart("threadCounter"); + { + writer.Write(_threadCounter); + } + writer.WritePropertyEnd(); + }); + + } + + public void PushThread() + { + var newThread = currentThread.Copy (); + _threadCounter++; + newThread.threadIndex = _threadCounter; + _threads.Add (newThread); + } + + public Thread ForkThread() + { + var forkedThread = currentThread.Copy(); + _threadCounter++; + forkedThread.threadIndex = _threadCounter; + return forkedThread; + } + + public void PopThread() + { + if (canPopThread) { + _threads.Remove (currentThread); + } else { + throw new System.Exception("Can't pop thread"); + } + } + + public bool canPopThread + { + get { + return _threads.Count > 1 && !elementIsEvaluateFromGame; + } + } + + public bool elementIsEvaluateFromGame + { + get { + return currentElement.type == PushPopType.FunctionEvaluationFromGame; + } + } + + public void Push(PushPopType type, int externalEvaluationStackHeight = 0, int outputStreamLengthWithPushed = 0) + { + // When pushing to callstack, maintain the current content path, but jump out of expressions by default + var element = new Element ( + type, + currentElement.currentPointer, + inExpressionEvaluation: false + ); + + element.evaluationStackHeightWhenPushed = externalEvaluationStackHeight; + element.functionStartInOuputStream = outputStreamLengthWithPushed; + + callStack.Add (element); + } + + public bool CanPop(PushPopType? type = null) { + + if (!canPop) + return false; + + if (type == null) + return true; + + return currentElement.type == type; + } + + public void Pop(PushPopType? type = null) + { + if (CanPop (type)) { + callStack.RemoveAt (callStack.Count - 1); + return; + } else { + throw new System.Exception("Mismatched push/pop in Callstack"); + } + } + + // Get variable value, dereferencing a variable pointer if necessary + public Runtime.Object GetTemporaryVariableWithName(string name, int contextIndex = -1) + { + if (contextIndex == -1) + contextIndex = currentElementIndex+1; + + Runtime.Object varValue = null; + + var contextElement = callStack [contextIndex-1]; + + if (contextElement.temporaryVariables.TryGetValue (name, out varValue)) { + return varValue; + } else { + return null; + } + } + + public void SetTemporaryVariable(string name, Runtime.Object value, bool declareNew, int contextIndex = -1) + { + if (contextIndex == -1) + contextIndex = currentElementIndex+1; + + var contextElement = callStack [contextIndex-1]; + + if (!declareNew && !contextElement.temporaryVariables.ContainsKey(name)) { + throw new System.Exception ("Could not find temporary variable to set: " + name); + } + + Runtime.Object oldValue; + if( contextElement.temporaryVariables.TryGetValue(name, out oldValue) ) + ListValue.RetainListOriginsForAssignment (oldValue, value); + + contextElement.temporaryVariables [name] = value; + } + + // Find the most appropriate context for this variable. + // Are we referencing a temporary or global variable? + // Note that the compiler will have warned us about possible conflicts, + // so anything that happens here should be safe! + public int ContextForVariableNamed(string name) + { + // Current temporary context? + // (Shouldn't attempt to access contexts higher in the callstack.) + if (currentElement.temporaryVariables.ContainsKey (name)) { + return currentElementIndex+1; + } + + // Global + else { + return 0; + } + } + + public Thread ThreadWithIndex(int index) + { + return _threads.Find (t => t.threadIndex == index); + } + + private List callStack + { + get { + return currentThread.callstack; + } + } + + public string callStackTrace { + get { + var sb = new System.Text.StringBuilder(); + + for(int t=0; t<_threads.Count; t++) { + + var thread = _threads[t]; + var isCurrent = (t == _threads.Count-1); + sb.AppendFormat("=== THREAD {0}/{1} {2}===\n", (t+1), _threads.Count, (isCurrent ? "(current) ":"")); + + for(int i=0; i"); + } + } + } + + + return sb.ToString(); + } + } + + List _threads; + int _threadCounter; + Pointer _startOfRoot; + } +} + diff --git a/Assets/Ink/ink-engine-runtime/CallStack.cs.meta b/Assets/Ink/ink-engine-runtime/CallStack.cs.meta new file mode 100644 index 000000000..746813f01 --- /dev/null +++ b/Assets/Ink/ink-engine-runtime/CallStack.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 3185b8692bdecce479392cd8f1f03ff4 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Ink/ink-engine-runtime/Choice.cs b/Assets/Ink/ink-engine-runtime/Choice.cs new file mode 100644 index 000000000..766a758eb --- /dev/null +++ b/Assets/Ink/ink-engine-runtime/Choice.cs @@ -0,0 +1,54 @@ + +namespace Ink.Runtime +{ + /// + /// A generated Choice from the story. + /// A single ChoicePoint in the Story could potentially generate + /// different Choices dynamically dependent on state, so they're + /// separated. + /// + public class Choice : Runtime.Object + { + /// + /// The main text to presented to the player for this Choice. + /// + public string text { get; set; } + + /// + /// The target path that the Story should be diverted to if + /// this Choice is chosen. + /// + public string pathStringOnChoice { + get { + return targetPath.ToString (); + } + set { + targetPath = new Path (value); + } + } + + /// + /// Get the path to the original choice point - where was this choice defined in the story? + /// + /// A dot separated path into the story data. + public string sourcePath; + + /// + /// The original index into currentChoices list on the Story when + /// this Choice was generated, for convenience. + /// + public int index { get; set; } + + public Path targetPath; + + public CallStack.Thread threadAtGeneration { get; set; } + public int originalThreadIndex; + + public bool isInvisibleDefault; + + public Choice() + { + } + } +} + diff --git a/Assets/Ink/ink-engine-runtime/Choice.cs.meta b/Assets/Ink/ink-engine-runtime/Choice.cs.meta new file mode 100644 index 000000000..6ce59a766 --- /dev/null +++ b/Assets/Ink/ink-engine-runtime/Choice.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: fc74b038b5618ab4db14ac564b2f7376 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Ink/ink-engine-runtime/ChoicePoint.cs b/Assets/Ink/ink-engine-runtime/ChoicePoint.cs new file mode 100644 index 000000000..d212dea5e --- /dev/null +++ b/Assets/Ink/ink-engine-runtime/ChoicePoint.cs @@ -0,0 +1,89 @@ +using System.ComponentModel; + +namespace Ink.Runtime +{ + /// + /// The ChoicePoint represents the point within the Story where + /// a Choice instance gets generated. The distinction is made + /// because the text of the Choice can be dynamically generated. + /// + public class ChoicePoint : Runtime.Object + { + public Path pathOnChoice { + get { + // Resolve any relative paths to global ones as we come across them + if (_pathOnChoice != null && _pathOnChoice.isRelative) { + var choiceTargetObj = choiceTarget; + if (choiceTargetObj) { + _pathOnChoice = choiceTargetObj.path; + } + } + return _pathOnChoice; + } + set { + _pathOnChoice = value; + } + } + Path _pathOnChoice; + + public Container choiceTarget { + get { + return this.ResolvePath (_pathOnChoice).container; + } + } + + public string pathStringOnChoice { + get { + return CompactPathString (pathOnChoice); + } + set { + pathOnChoice = new Path (value); + } + } + + public bool hasCondition { get; set; } + public bool hasStartContent { get; set; } + public bool hasChoiceOnlyContent { get; set; } + public bool onceOnly { get; set; } + public bool isInvisibleDefault { get; set; } + + public int flags { + get { + int flags = 0; + if (hasCondition) flags |= 1; + if (hasStartContent) flags |= 2; + if (hasChoiceOnlyContent) flags |= 4; + if (isInvisibleDefault) flags |= 8; + if (onceOnly) flags |= 16; + return flags; + } + set { + hasCondition = (value & 1) > 0; + hasStartContent = (value & 2) > 0; + hasChoiceOnlyContent = (value & 4) > 0; + isInvisibleDefault = (value & 8) > 0; + onceOnly = (value & 16) > 0; + } + } + + public ChoicePoint (bool onceOnly) + { + this.onceOnly = onceOnly; + } + + public ChoicePoint() : this(true) {} + + public override string ToString () + { + int? targetLineNum = DebugLineNumberOfPath (pathOnChoice); + string targetString = pathOnChoice.ToString (); + + if (targetLineNum != null) { + targetString = " line " + targetLineNum + "("+targetString+")"; + } + + return "Choice: -> " + targetString; + } + } +} + diff --git a/Assets/Ink/ink-engine-runtime/ChoicePoint.cs.meta b/Assets/Ink/ink-engine-runtime/ChoicePoint.cs.meta new file mode 100644 index 000000000..b24051dae --- /dev/null +++ b/Assets/Ink/ink-engine-runtime/ChoicePoint.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b2ca1b5fdf86c0447a521da44bcd3046 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Ink/ink-engine-runtime/Container.cs b/Assets/Ink/ink-engine-runtime/Container.cs new file mode 100644 index 000000000..a8a122b92 --- /dev/null +++ b/Assets/Ink/ink-engine-runtime/Container.cs @@ -0,0 +1,366 @@ +using System; +using System.Diagnostics; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.ComponentModel; + +namespace Ink.Runtime +{ + public class Container : Runtime.Object, INamedContent + { + public string name { get; set; } + + public List content { + get { + return _content; + } + set { + AddContent (value); + } + } + List _content; + + public Dictionary namedContent { get; set; } + + public Dictionary namedOnlyContent { + get { + var namedOnlyContentDict = new Dictionary(); + foreach (var kvPair in namedContent) { + namedOnlyContentDict [kvPair.Key] = (Runtime.Object)kvPair.Value; + } + + foreach (var c in content) { + var named = c as INamedContent; + if (named != null && named.hasValidName) { + namedOnlyContentDict.Remove (named.name); + } + } + + if (namedOnlyContentDict.Count == 0) + namedOnlyContentDict = null; + + return namedOnlyContentDict; + } + set { + var existingNamedOnly = namedOnlyContent; + if (existingNamedOnly != null) { + foreach (var kvPair in existingNamedOnly) { + namedContent.Remove (kvPair.Key); + } + } + + if (value == null) + return; + + foreach (var kvPair in value) { + var named = kvPair.Value as INamedContent; + if( named != null ) + AddToNamedContentOnly (named); + } + } + } + + public bool visitsShouldBeCounted { get; set; } + public bool turnIndexShouldBeCounted { get; set; } + public bool countingAtStartOnly { get; set; } + + [Flags] + public enum CountFlags + { + Visits = 1, + Turns = 2, + CountStartOnly = 4 + } + + public int countFlags + { + get { + CountFlags flags = 0; + if (visitsShouldBeCounted) flags |= CountFlags.Visits; + if (turnIndexShouldBeCounted) flags |= CountFlags.Turns; + if (countingAtStartOnly) flags |= CountFlags.CountStartOnly; + + // If we're only storing CountStartOnly, it serves no purpose, + // since it's dependent on the other two to be used at all. + // (e.g. for setting the fact that *if* a gather or choice's + // content is counted, then is should only be counter at the start) + // So this is just an optimisation for storage. + if (flags == CountFlags.CountStartOnly) { + flags = 0; + } + + return (int)flags; + } + set { + var flag = (CountFlags)value; + if ((flag & CountFlags.Visits) > 0) visitsShouldBeCounted = true; + if ((flag & CountFlags.Turns) > 0) turnIndexShouldBeCounted = true; + if ((flag & CountFlags.CountStartOnly) > 0) countingAtStartOnly = true; + } + } + + public bool hasValidName + { + get { return name != null && name.Length > 0; } + } + + public Path pathToFirstLeafContent + { + get { + if( _pathToFirstLeafContent == null ) + _pathToFirstLeafContent = path.PathByAppendingPath (internalPathToFirstLeafContent); + + return _pathToFirstLeafContent; + } + } + Path _pathToFirstLeafContent; + + Path internalPathToFirstLeafContent + { + get { + var components = new List(); + var container = this; + while (container != null) { + if (container.content.Count > 0) { + components.Add (new Path.Component (0)); + container = container.content [0] as Container; + } + } + return new Path(components); + } + } + + public Container () + { + _content = new List (); + namedContent = new Dictionary (); + } + + public void AddContent(Runtime.Object contentObj) + { + content.Add (contentObj); + + if (contentObj.parent) { + throw new System.Exception ("content is already in " + contentObj.parent); + } + + contentObj.parent = this; + + TryAddNamedContent (contentObj); + } + + public void AddContent(IList contentList) + { + foreach (var c in contentList) { + AddContent (c); + } + } + + public void InsertContent(Runtime.Object contentObj, int index) + { + content.Insert (index, contentObj); + + if (contentObj.parent) { + throw new System.Exception ("content is already in " + contentObj.parent); + } + + contentObj.parent = this; + + TryAddNamedContent (contentObj); + } + + public void TryAddNamedContent(Runtime.Object contentObj) + { + var namedContentObj = contentObj as INamedContent; + if (namedContentObj != null && namedContentObj.hasValidName) { + AddToNamedContentOnly (namedContentObj); + } + } + + public void AddToNamedContentOnly(INamedContent namedContentObj) + { + Debug.Assert (namedContentObj is Runtime.Object, "Can only add Runtime.Objects to a Runtime.Container"); + var runtimeObj = (Runtime.Object)namedContentObj; + runtimeObj.parent = this; + + namedContent [namedContentObj.name] = namedContentObj; + } + + public void AddContentsOfContainer(Container otherContainer) + { + content.AddRange (otherContainer.content); + foreach (var obj in otherContainer.content) { + obj.parent = this; + TryAddNamedContent (obj); + } + } + + protected Runtime.Object ContentWithPathComponent(Path.Component component) + { + if (component.isIndex) { + + if (component.index >= 0 && component.index < content.Count) { + return content [component.index]; + } + + // When path is out of range, quietly return nil + // (useful as we step/increment forwards through content) + else { + return null; + } + + } + + else if (component.isParent) { + return this.parent; + } + + else { + INamedContent foundContent = null; + if (namedContent.TryGetValue (component.name, out foundContent)) { + return (Runtime.Object)foundContent; + } else { + return null; + } + } + } + + public SearchResult ContentAtPath(Path path, int partialPathStart = 0, int partialPathLength = -1) + { + if (partialPathLength == -1) + partialPathLength = path.length; + + var result = new SearchResult (); + result.approximate = false; + + Container currentContainer = this; + Runtime.Object currentObj = this; + + for (int i = partialPathStart; i < partialPathLength; ++i) { + var comp = path.GetComponent(i); + + // Path component was wrong type + if (currentContainer == null) { + result.approximate = true; + break; + } + + var foundObj = currentContainer.ContentWithPathComponent(comp); + + // Couldn't resolve entire path? + if (foundObj == null) { + result.approximate = true; + break; + } + + currentObj = foundObj; + currentContainer = foundObj as Container; + } + + result.obj = currentObj; + + return result; + } + + public void BuildStringOfHierarchy(StringBuilder sb, int indentation, Runtime.Object pointedObj) + { + Action appendIndentation = () => { + const int spacesPerIndent = 4; + for(int i=0; i (); + + foreach (var objKV in namedContent) { + if (content.Contains ((Runtime.Object)objKV.Value)) { + continue; + } else { + onlyNamed.Add (objKV.Key, objKV.Value); + } + } + + if (onlyNamed.Count > 0) { + appendIndentation (); + sb.AppendLine ("-- named: --"); + + foreach (var objKV in onlyNamed) { + + Debug.Assert (objKV.Value is Container, "Can only print out named Containers"); + var container = (Container)objKV.Value; + container.BuildStringOfHierarchy (sb, indentation, pointedObj); + + sb.AppendLine (); + + } + } + + + indentation--; + + appendIndentation (); + sb.Append ("]"); + } + + public virtual string BuildStringOfHierarchy() + { + var sb = new StringBuilder (); + + BuildStringOfHierarchy (sb, 0, null); + + return sb.ToString (); + } + + } +} + diff --git a/Assets/Ink/ink-engine-runtime/Container.cs.meta b/Assets/Ink/ink-engine-runtime/Container.cs.meta new file mode 100644 index 000000000..0b11be30a --- /dev/null +++ b/Assets/Ink/ink-engine-runtime/Container.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e4c19ec208aa47d42af8759288c76642 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Ink/ink-engine-runtime/ControlCommand.cs b/Assets/Ink/ink-engine-runtime/ControlCommand.cs new file mode 100644 index 000000000..8d3ad092b --- /dev/null +++ b/Assets/Ink/ink-engine-runtime/ControlCommand.cs @@ -0,0 +1,170 @@ +using System; + +namespace Ink.Runtime +{ + public class ControlCommand : Runtime.Object + { + public enum CommandType + { + NotSet = -1, + EvalStart, + EvalOutput, + EvalEnd, + Duplicate, + PopEvaluatedValue, + PopFunction, + PopTunnel, + BeginString, + EndString, + NoOp, + ChoiceCount, + Turns, + TurnsSince, + ReadCount, + Random, + SeedRandom, + VisitIndex, + SequenceShuffleIndex, + StartThread, + Done, + End, + ListFromInt, + ListRange, + ListRandom, + //---- + TOTAL_VALUES + } + + public CommandType commandType { get; protected set; } + + public ControlCommand (CommandType commandType) + { + this.commandType = commandType; + } + + // Require default constructor for serialisation + public ControlCommand() : this(CommandType.NotSet) {} + + public override Object Copy() + { + return new ControlCommand (commandType); + } + + // The following static factory methods are to make generating these objects + // slightly more succinct. Without these, the code gets pretty massive! e.g. + // + // var c = new Runtime.ControlCommand(Runtime.ControlCommand.CommandType.EvalStart) + // + // as opposed to + // + // var c = Runtime.ControlCommand.EvalStart() + + public static ControlCommand EvalStart() { + return new ControlCommand(CommandType.EvalStart); + } + + public static ControlCommand EvalOutput() { + return new ControlCommand(CommandType.EvalOutput); + } + + public static ControlCommand EvalEnd() { + return new ControlCommand(CommandType.EvalEnd); + } + + public static ControlCommand Duplicate() { + return new ControlCommand(CommandType.Duplicate); + } + + public static ControlCommand PopEvaluatedValue() { + return new ControlCommand (CommandType.PopEvaluatedValue); + } + + public static ControlCommand PopFunction() { + return new ControlCommand (CommandType.PopFunction); + } + + public static ControlCommand PopTunnel() { + return new ControlCommand (CommandType.PopTunnel); + } + + public static ControlCommand BeginString() { + return new ControlCommand (CommandType.BeginString); + } + + public static ControlCommand EndString() { + return new ControlCommand (CommandType.EndString); + } + + public static ControlCommand NoOp() { + return new ControlCommand(CommandType.NoOp); + } + + public static ControlCommand ChoiceCount() { + return new ControlCommand(CommandType.ChoiceCount); + } + + public static ControlCommand Turns () + { + return new ControlCommand (CommandType.Turns); + } + + public static ControlCommand TurnsSince() { + return new ControlCommand(CommandType.TurnsSince); + } + + public static ControlCommand ReadCount () + { + return new ControlCommand (CommandType.ReadCount); + } + + public static ControlCommand Random () + { + return new ControlCommand (CommandType.Random); + } + + public static ControlCommand SeedRandom () + { + return new ControlCommand (CommandType.SeedRandom); + } + + public static ControlCommand VisitIndex() { + return new ControlCommand(CommandType.VisitIndex); + } + + public static ControlCommand SequenceShuffleIndex() { + return new ControlCommand(CommandType.SequenceShuffleIndex); + } + + public static ControlCommand StartThread() { + return new ControlCommand (CommandType.StartThread); + } + + public static ControlCommand Done() { + return new ControlCommand (CommandType.Done); + } + + public static ControlCommand End() { + return new ControlCommand (CommandType.End); + } + + public static ControlCommand ListFromInt () { + return new ControlCommand (CommandType.ListFromInt); + } + + public static ControlCommand ListRange () + { + return new ControlCommand (CommandType.ListRange); + } + + public static ControlCommand ListRandom () + { + return new ControlCommand (CommandType.ListRandom); + } + + public override string ToString () + { + return commandType.ToString(); + } + } +} + diff --git a/Assets/Ink/ink-engine-runtime/ControlCommand.cs.meta b/Assets/Ink/ink-engine-runtime/ControlCommand.cs.meta new file mode 100644 index 000000000..2a41559a4 --- /dev/null +++ b/Assets/Ink/ink-engine-runtime/ControlCommand.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 7be2a2d6c9cf19d4ca5e52f32952b7cc +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Ink/ink-engine-runtime/DebugMetadata.cs b/Assets/Ink/ink-engine-runtime/DebugMetadata.cs new file mode 100644 index 000000000..1d06f3096 --- /dev/null +++ b/Assets/Ink/ink-engine-runtime/DebugMetadata.cs @@ -0,0 +1,76 @@ +using System; + +namespace Ink.Runtime +{ + public class DebugMetadata + { + public int startLineNumber = 0; + public int endLineNumber = 0; + public int startCharacterNumber = 0; + public int endCharacterNumber = 0; + public string fileName = null; + public string sourceName = null; + + public DebugMetadata () + { + } + + // Currently only used in VariableReference in order to + // merge the debug metadata of a Path.Of.Indentifiers into + // one single range. + public DebugMetadata Merge(DebugMetadata dm) + { + var newDebugMetadata = new DebugMetadata(); + + // These are not supposed to be differ between 'this' and 'dm'. + newDebugMetadata.fileName = fileName; + newDebugMetadata.sourceName = sourceName; + + if (startLineNumber < dm.startLineNumber) + { + newDebugMetadata.startLineNumber = startLineNumber; + newDebugMetadata.startCharacterNumber = startCharacterNumber; + } + else if (startLineNumber > dm.startLineNumber) + { + newDebugMetadata.startLineNumber = dm.startLineNumber; + newDebugMetadata.startCharacterNumber = dm.startCharacterNumber; + } + else + { + newDebugMetadata.startLineNumber = startLineNumber; + newDebugMetadata.startCharacterNumber = Math.Min(startCharacterNumber, dm.startCharacterNumber); + } + + if (endLineNumber > dm.endLineNumber) + { + newDebugMetadata.endLineNumber = endLineNumber; + newDebugMetadata.endCharacterNumber = endCharacterNumber; + } + else if (endLineNumber < dm.endLineNumber) + { + newDebugMetadata.endLineNumber = dm.endLineNumber; + newDebugMetadata.endCharacterNumber = dm.endCharacterNumber; + } + else + { + newDebugMetadata.endLineNumber = endLineNumber; + newDebugMetadata.endCharacterNumber = Math.Max(endCharacterNumber, dm.endCharacterNumber); + } + + return newDebugMetadata; + } + + public override string ToString () + { + if (fileName != null) { + return string.Format ("line {0} of {1}", startLineNumber, fileName); + } else { + return "line " + startLineNumber; + } + + } + + } +} + diff --git a/Assets/Ink/ink-engine-runtime/DebugMetadata.cs.meta b/Assets/Ink/ink-engine-runtime/DebugMetadata.cs.meta new file mode 100644 index 000000000..ca4e7a775 --- /dev/null +++ b/Assets/Ink/ink-engine-runtime/DebugMetadata.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e6902c7f2d85ecc4d829ff5463be478b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Ink/ink-engine-runtime/Divert.cs b/Assets/Ink/ink-engine-runtime/Divert.cs new file mode 100644 index 000000000..5c15a6822 --- /dev/null +++ b/Assets/Ink/ink-engine-runtime/Divert.cs @@ -0,0 +1,149 @@ +using System.Text; + +namespace Ink.Runtime +{ + public class Divert : Runtime.Object + { + public Path targetPath { + get { + // Resolve any relative paths to global ones as we come across them + if (_targetPath != null && _targetPath.isRelative) { + var targetObj = targetPointer.Resolve(); + if (targetObj) { + _targetPath = targetObj.path; + } + } + return _targetPath; + } + set { + _targetPath = value; + _targetPointer = Pointer.Null; + } + } + Path _targetPath; + + public Pointer targetPointer { + get { + if (_targetPointer.isNull) { + var targetObj = ResolvePath (_targetPath).obj; + + if (_targetPath.lastComponent.isIndex) { + _targetPointer.container = targetObj.parent as Container; + _targetPointer.index = _targetPath.lastComponent.index; + } else { + _targetPointer = Pointer.StartOf (targetObj as Container); + } + } + return _targetPointer; + } + } + Pointer _targetPointer; + + + public string targetPathString { + get { + if (targetPath == null) + return null; + + return CompactPathString (targetPath); + } + set { + if (value == null) { + targetPath = null; + } else { + targetPath = new Path (value); + } + } + } + + public string variableDivertName { get; set; } + public bool hasVariableTarget { get { return variableDivertName != null; } } + + public bool pushesToStack { get; set; } + public PushPopType stackPushType; + + public bool isExternal { get; set; } + public int externalArgs { get; set; } + + public bool isConditional { get; set; } + + public Divert () + { + pushesToStack = false; + } + + public Divert(PushPopType stackPushType) + { + pushesToStack = true; + this.stackPushType = stackPushType; + } + + public override bool Equals (object obj) + { + var otherDivert = obj as Divert; + if (otherDivert) { + if (this.hasVariableTarget == otherDivert.hasVariableTarget) { + if (this.hasVariableTarget) { + return this.variableDivertName == otherDivert.variableDivertName; + } else { + return this.targetPath.Equals(otherDivert.targetPath); + } + } + } + return false; + } + + public override int GetHashCode () + { + if (hasVariableTarget) { + const int variableTargetSalt = 12345; + return variableDivertName.GetHashCode() + variableTargetSalt; + } else { + const int pathTargetSalt = 54321; + return targetPath.GetHashCode() + pathTargetSalt; + } + } + + public override string ToString () + { + if (hasVariableTarget) { + return "Divert(variable: " + variableDivertName + ")"; + } + else if (targetPath == null) { + return "Divert(null)"; + } else { + + var sb = new StringBuilder (); + + string targetStr = targetPath.ToString (); + int? targetLineNum = DebugLineNumberOfPath (targetPath); + if (targetLineNum != null) { + targetStr = "line " + targetLineNum; + } + + sb.Append ("Divert"); + + if (isConditional) + sb.Append ("?"); + + if (pushesToStack) { + if (stackPushType == PushPopType.Function) { + sb.Append (" function"); + } else { + sb.Append (" tunnel"); + } + } + + sb.Append (" -> "); + sb.Append (targetPathString); + + sb.Append (" ("); + sb.Append (targetStr); + sb.Append (")"); + + return sb.ToString (); + } + } + } +} + diff --git a/Assets/Ink/ink-engine-runtime/Divert.cs.meta b/Assets/Ink/ink-engine-runtime/Divert.cs.meta new file mode 100644 index 000000000..ebde025e0 --- /dev/null +++ b/Assets/Ink/ink-engine-runtime/Divert.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 0436459191048f841acfdf0d4879d597 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Ink/ink-engine-runtime/Error.cs b/Assets/Ink/ink-engine-runtime/Error.cs new file mode 100644 index 000000000..38a5dc54e --- /dev/null +++ b/Assets/Ink/ink-engine-runtime/Error.cs @@ -0,0 +1,24 @@ +namespace Ink +{ + /// + /// Callback for errors throughout both the ink runtime and compiler. + /// + public delegate void ErrorHandler(string message, ErrorType type); + + /// + /// Author errors will only ever come from the compiler so don't need to be handled + /// by your Story error handler. The "Error" ErrorType is by far the most common + /// for a runtime story error (rather than compiler error), though the Warning type + /// is also possible. + /// + public enum ErrorType + { + /// Generated by a "TODO" note in the ink source + Author, + /// You should probably fix this, but it's not critical + Warning, + /// Critical error that can't be recovered from + Error + } +} + diff --git a/Assets/Ink/ink-engine-runtime/Error.cs.meta b/Assets/Ink/ink-engine-runtime/Error.cs.meta new file mode 100644 index 000000000..65761023b --- /dev/null +++ b/Assets/Ink/ink-engine-runtime/Error.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 5857ea02573a38b49aee290457791597 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Ink/ink-engine-runtime/Flow.cs b/Assets/Ink/ink-engine-runtime/Flow.cs new file mode 100644 index 000000000..37da8ec26 --- /dev/null +++ b/Assets/Ink/ink-engine-runtime/Flow.cs @@ -0,0 +1,93 @@ +using System.Collections.Generic; + +namespace Ink.Runtime +{ + public class Flow { + public string name; + public CallStack callStack; + public List outputStream; + public List currentChoices; + + public Flow(string name, Story story) { + this.name = name; + this.callStack = new CallStack(story); + this.outputStream = new List(); + this.currentChoices = new List(); + } + + public Flow(string name, Story story, Dictionary jObject) { + this.name = name; + this.callStack = new CallStack(story); + this.callStack.SetJsonToken ((Dictionary < string, object > )jObject ["callstack"], story); + this.outputStream = Json.JArrayToRuntimeObjList ((List)jObject ["outputStream"]); + this.currentChoices = Json.JArrayToRuntimeObjList((List)jObject ["currentChoices"]); + + // choiceThreads is optional + object jChoiceThreadsObj; + jObject.TryGetValue("choiceThreads", out jChoiceThreadsObj); + LoadFlowChoiceThreads((Dictionary)jChoiceThreadsObj, story); + } + + public void WriteJson(SimpleJson.Writer writer) + { + writer.WriteObjectStart(); + + writer.WriteProperty("callstack", callStack.WriteJson); + writer.WriteProperty("outputStream", w => Json.WriteListRuntimeObjs(w, outputStream)); + + // choiceThreads: optional + // Has to come BEFORE the choices themselves are written out + // since the originalThreadIndex of each choice needs to be set + bool hasChoiceThreads = false; + foreach (Choice c in currentChoices) + { + c.originalThreadIndex = c.threadAtGeneration.threadIndex; + + if (callStack.ThreadWithIndex(c.originalThreadIndex) == null) + { + if (!hasChoiceThreads) + { + hasChoiceThreads = true; + writer.WritePropertyStart("choiceThreads"); + writer.WriteObjectStart(); + } + + writer.WritePropertyStart(c.originalThreadIndex); + c.threadAtGeneration.WriteJson(writer); + writer.WritePropertyEnd(); + } + } + + if (hasChoiceThreads) + { + writer.WriteObjectEnd(); + writer.WritePropertyEnd(); + } + + + writer.WriteProperty("currentChoices", w => { + w.WriteArrayStart(); + foreach (var c in currentChoices) + Json.WriteChoice(w, c); + w.WriteArrayEnd(); + }); + + + writer.WriteObjectEnd(); + } + + // Used both to load old format and current + public void LoadFlowChoiceThreads(Dictionary jChoiceThreads, Story story) + { + foreach (var choice in currentChoices) { + var foundActiveThread = callStack.ThreadWithIndex(choice.originalThreadIndex); + if( foundActiveThread != null ) { + choice.threadAtGeneration = foundActiveThread.Copy (); + } else { + var jSavedChoiceThread = (Dictionary ) jChoiceThreads[choice.originalThreadIndex.ToString()]; + choice.threadAtGeneration = new CallStack.Thread(jSavedChoiceThread, story); + } + } + } + } +} \ No newline at end of file diff --git a/Assets/Ink/ink-engine-runtime/Flow.cs.meta b/Assets/Ink/ink-engine-runtime/Flow.cs.meta new file mode 100644 index 000000000..6d567c7ad --- /dev/null +++ b/Assets/Ink/ink-engine-runtime/Flow.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a358e49bf66f18048a4bbbc19f276eb1 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Ink/ink-engine-runtime/Glue.cs b/Assets/Ink/ink-engine-runtime/Glue.cs new file mode 100644 index 000000000..cfdfb2553 --- /dev/null +++ b/Assets/Ink/ink-engine-runtime/Glue.cs @@ -0,0 +1,13 @@ +namespace Ink.Runtime +{ + public class Glue : Runtime.Object + { + public Glue() { } + + public override string ToString () + { + return "Glue"; + } + } +} + diff --git a/Assets/Ink/ink-engine-runtime/Glue.cs.meta b/Assets/Ink/ink-engine-runtime/Glue.cs.meta new file mode 100644 index 000000000..cc811c76c --- /dev/null +++ b/Assets/Ink/ink-engine-runtime/Glue.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 5b2f2082eb6b77949aaabd471ee7bfec +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Ink/ink-engine-runtime/INamedContent.cs b/Assets/Ink/ink-engine-runtime/INamedContent.cs new file mode 100644 index 000000000..3e4519958 --- /dev/null +++ b/Assets/Ink/ink-engine-runtime/INamedContent.cs @@ -0,0 +1,10 @@ + +namespace Ink.Runtime +{ + public interface INamedContent + { + string name { get; } + bool hasValidName { get; } + } +} + diff --git a/Assets/Ink/ink-engine-runtime/INamedContent.cs.meta b/Assets/Ink/ink-engine-runtime/INamedContent.cs.meta new file mode 100644 index 000000000..d0b622b6f --- /dev/null +++ b/Assets/Ink/ink-engine-runtime/INamedContent.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 43e32e964e59dac4fb5acbed9cf2a170 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Ink/ink-engine-runtime/InkList.cs b/Assets/Ink/ink-engine-runtime/InkList.cs new file mode 100644 index 000000000..7bc6d66d8 --- /dev/null +++ b/Assets/Ink/ink-engine-runtime/InkList.cs @@ -0,0 +1,584 @@ +using System.Collections.Generic; +using System.Text; + +namespace Ink.Runtime +{ + /// + /// The underlying type for a list item in ink. It stores the original list definition + /// name as well as the item name, but without the value of the item. When the value is + /// stored, it's stored in a KeyValuePair of InkListItem and int. + /// + public struct InkListItem + { + /// + /// The name of the list where the item was originally defined. + /// + public readonly string originName; + + /// + /// The main name of the item as defined in ink. + /// + public readonly string itemName; + + /// + /// Create an item with the given original list definition name, and the name of this + /// item. + /// + public InkListItem (string originName, string itemName) + { + this.originName = originName; + this.itemName = itemName; + } + + /// + /// Create an item from a dot-separted string of the form "listDefinitionName.listItemName". + /// + public InkListItem (string fullName) + { + var nameParts = fullName.Split ('.'); + this.originName = nameParts [0]; + this.itemName = nameParts [1]; + } + + public static InkListItem Null { + get { + return new InkListItem (null, null); + } + } + + public bool isNull { + get { + return originName == null && itemName == null; + } + } + + /// + /// Get the full dot-separated name of the item, in the form "listDefinitionName.itemName". + /// + public string fullName { + get { + return (originName ?? "?") + "." + itemName; + } + } + + /// + /// Get the full dot-separated name of the item, in the form "listDefinitionName.itemName". + /// Calls fullName internally. + /// + public override string ToString () + { + return fullName; + } + + /// + /// Is this item the same as another item? + /// + public override bool Equals (object obj) + { + if (obj is InkListItem) { + var otherItem = (InkListItem)obj; + return otherItem.itemName == itemName + && otherItem.originName == originName; + } + + return false; + } + + /// + /// Get the hashcode for an item. + /// + public override int GetHashCode () + { + int originCode = 0; + int itemCode = itemName.GetHashCode (); + if (originName != null) + originCode = originName.GetHashCode (); + + return originCode + itemCode; + } + } + + /// + /// The InkList is the underlying type that's used to store an instance of a + /// list in ink. It's not used for the *definition* of the list, but for a list + /// value that's stored in a variable. + /// Somewhat confusingly, it's backed by a C# Dictionary, and has nothing to + /// do with a C# List! + /// + public class InkList : Dictionary + { + /// + /// Create a new empty ink list. + /// + public InkList () { } + + /// + /// Create a new ink list that contains the same contents as another list. + /// + public InkList(InkList otherList) : base(otherList) + { + _originNames = otherList.originNames; + if (otherList.origins != null) + { + origins = new List(otherList.origins); + } + } + + /// + /// Create a new empty ink list that's intended to hold items from a particular origin + /// list definition. The origin Story is needed in order to be able to look up that definition. + /// + public InkList (string singleOriginListName, Story originStory) + { + SetInitialOriginName (singleOriginListName); + + ListDefinition def; + if (originStory.listDefinitions.TryListGetDefinition (singleOriginListName, out def)) + origins = new List { def }; + else + throw new System.Exception ("InkList origin could not be found in story when constructing new list: " + singleOriginListName); + } + + public InkList (KeyValuePair singleElement) + { + Add (singleElement.Key, singleElement.Value); + } + + /// + /// Converts a string to an ink list and returns for use in the story. + /// + /// InkList created from string list item + /// Item key. + /// Origin story. + public static InkList FromString(string myListItem, Story originStory) { + var listValue = originStory.listDefinitions.FindSingleItemListWithName (myListItem); + if (listValue) + return new InkList (listValue.value); + else + throw new System.Exception ("Could not find the InkListItem from the string '" + myListItem + "' to create an InkList because it doesn't exist in the original list definition in ink."); + } + + + /// + /// Adds the given item to the ink list. Note that the item must come from a list definition that + /// is already "known" to this list, so that the item's value can be looked up. By "known", we mean + /// that it already has items in it from that source, or it did at one point - it can't be a + /// completely fresh empty list, or a list that only contains items from a different list definition. + /// + public void AddItem (InkListItem item) + { + if (item.originName == null) { + AddItem (item.itemName); + return; + } + + foreach (var origin in origins) { + if (origin.name == item.originName) { + int intVal; + if (origin.TryGetValueForItem (item, out intVal)) { + this [item] = intVal; + return; + } else { + throw new System.Exception ("Could not add the item " + item + " to this list because it doesn't exist in the original list definition in ink."); + } + } + } + + throw new System.Exception ("Failed to add item to list because the item was from a new list definition that wasn't previously known to this list. Only items from previously known lists can be used, so that the int value can be found."); + } + + /// + /// Adds the given item to the ink list, attempting to find the origin list definition that it belongs to. + /// The item must therefore come from a list definition that is already "known" to this list, so that the + /// item's value can be looked up. By "known", we mean that it already has items in it from that source, or + /// it did at one point - it can't be a completely fresh empty list, or a list that only contains items from + /// a different list definition. + /// + public void AddItem (string itemName) + { + ListDefinition foundListDef = null; + + foreach (var origin in origins) { + if (origin.ContainsItemWithName (itemName)) { + if (foundListDef != null) { + throw new System.Exception ("Could not add the item " + itemName + " to this list because it could come from either " + origin.name + " or " + foundListDef.name); + } else { + foundListDef = origin; + } + } + } + + if (foundListDef == null) + throw new System.Exception ("Could not add the item " + itemName + " to this list because it isn't known to any list definitions previously associated with this list."); + + var item = new InkListItem (foundListDef.name, itemName); + var itemVal = foundListDef.ValueForItem(item); + this [item] = itemVal; + } + + /// + /// Returns true if this ink list contains an item with the given short name + /// (ignoring the original list where it was defined). + /// + public bool ContainsItemNamed (string itemName) + { + foreach (var itemWithValue in this) { + if (itemWithValue.Key.itemName == itemName) return true; + } + return false; + } + + // Story has to set this so that the value knows its origin, + // necessary for certain operations (e.g. interacting with ints). + // Only the story has access to the full set of lists, so that + // the origin can be resolved from the originListName. + public List origins; + public ListDefinition originOfMaxItem { + get { + if (origins == null) return null; + + var maxOriginName = maxItem.Key.originName; + foreach (var origin in origins) { + if (origin.name == maxOriginName) + return origin; + } + + return null; + } + } + + // Origin name needs to be serialised when content is empty, + // assuming a name is availble, for list definitions with variable + // that is currently empty. + public List originNames { + get { + if (this.Count > 0) { + if (_originNames == null && this.Count > 0) + _originNames = new List (); + else + _originNames.Clear (); + + foreach (var itemAndValue in this) + _originNames.Add (itemAndValue.Key.originName); + } + + return _originNames; + } + } + List _originNames; + + public void SetInitialOriginName (string initialOriginName) + { + _originNames = new List { initialOriginName }; + } + + public void SetInitialOriginNames (List initialOriginNames) + { + if (initialOriginNames == null) + _originNames = null; + else + _originNames = new List(initialOriginNames); + } + + /// + /// Get the maximum item in the list, equivalent to calling LIST_MAX(list) in ink. + /// + public KeyValuePair maxItem { + get { + KeyValuePair max = new KeyValuePair(); + foreach (var kv in this) { + if (max.Key.isNull || kv.Value > max.Value) + max = kv; + } + return max; + } + } + + /// + /// Get the minimum item in the list, equivalent to calling LIST_MIN(list) in ink. + /// + public KeyValuePair minItem { + get { + var min = new KeyValuePair (); + foreach (var kv in this) { + if (min.Key.isNull || kv.Value < min.Value) + min = kv; + } + return min; + } + } + + /// + /// The inverse of the list, equivalent to calling LIST_INVERSE(list) in ink + /// + public InkList inverse { + get { + var list = new InkList (); + if (origins != null) { + foreach (var origin in origins) { + foreach (var itemAndValue in origin.items) { + if (!this.ContainsKey (itemAndValue.Key)) + list.Add (itemAndValue.Key, itemAndValue.Value); + } + } + + } + return list; + } + } + + /// + /// The list of all items from the original list definition, equivalent to calling + /// LIST_ALL(list) in ink. + /// + public InkList all { + get { + var list = new InkList (); + if (origins != null) { + foreach (var origin in origins) { + foreach (var itemAndValue in origin.items) + list[itemAndValue.Key] = itemAndValue.Value; + } + } + return list; + } + } + + /// + /// Returns a new list that is the combination of the current list and one that's + /// passed in. Equivalent to calling (list1 + list2) in ink. + /// + public InkList Union (InkList otherList) + { + var union = new InkList (this); + foreach (var kv in otherList) { + union [kv.Key] = kv.Value; + } + return union; + } + + /// + /// Returns a new list that is the intersection of the current list with another + /// list that's passed in - i.e. a list of the items that are shared between the + /// two other lists. Equivalent to calling (list1 ^ list2) in ink. + /// + public InkList Intersect (InkList otherList) + { + var intersection = new InkList (); + foreach (var kv in this) { + if (otherList.ContainsKey (kv.Key)) + intersection.Add (kv.Key, kv.Value); + } + return intersection; + } + + /// + /// Returns a new list that's the same as the current one, except with the given items + /// removed that are in the passed in list. Equivalent to calling (list1 - list2) in ink. + /// + /// List to remove. + public InkList Without (InkList listToRemove) + { + var result = new InkList (this); + foreach (var kv in listToRemove) + result.Remove (kv.Key); + return result; + } + + /// + /// Returns true if the current list contains all the items that are in the list that + /// is passed in. Equivalent to calling (list1 ? list2) in ink. + /// + /// Other list. + public bool Contains (InkList otherList) + { + foreach (var kv in otherList) { + if (!this.ContainsKey (kv.Key)) return false; + } + return true; + } + + /// + /// Returns true if all the item values in the current list are greater than all the + /// item values in the passed in list. Equivalent to calling (list1 > list2) in ink. + /// + public bool GreaterThan (InkList otherList) + { + if (Count == 0) return false; + if (otherList.Count == 0) return true; + + // All greater + return minItem.Value > otherList.maxItem.Value; + } + + /// + /// Returns true if the item values in the current list overlap or are all greater than + /// the item values in the passed in list. None of the item values in the current list must + /// fall below the item values in the passed in list. Equivalent to (list1 >= list2) in ink, + /// or LIST_MIN(list1) >= LIST_MIN(list2) && LIST_MAX(list1) >= LIST_MAX(list2). + /// + public bool GreaterThanOrEquals (InkList otherList) + { + if (Count == 0) return false; + if (otherList.Count == 0) return true; + + return minItem.Value >= otherList.minItem.Value + && maxItem.Value >= otherList.maxItem.Value; + } + + /// + /// Returns true if all the item values in the current list are less than all the + /// item values in the passed in list. Equivalent to calling (list1 < list2) in ink. + /// + public bool LessThan (InkList otherList) + { + if (otherList.Count == 0) return false; + if (Count == 0) return true; + + return maxItem.Value < otherList.minItem.Value; + } + + /// + /// Returns true if the item values in the current list overlap or are all less than + /// the item values in the passed in list. None of the item values in the current list must + /// go above the item values in the passed in list. Equivalent to (list1 <= list2) in ink, + /// or LIST_MAX(list1) <= LIST_MAX(list2) && LIST_MIN(list1) <= LIST_MIN(list2). + /// + public bool LessThanOrEquals (InkList otherList) + { + if (otherList.Count == 0) return false; + if (Count == 0) return true; + + return maxItem.Value <= otherList.maxItem.Value + && minItem.Value <= otherList.minItem.Value; + } + + public InkList MaxAsList () + { + if (Count > 0) + return new InkList (maxItem); + else + return new InkList (); + } + + public InkList MinAsList () + { + if (Count > 0) + return new InkList (minItem); + else + return new InkList (); + } + + /// + /// Returns a sublist with the elements given the minimum and maxmimum bounds. + /// The bounds can either be ints which are indices into the entire (sorted) list, + /// or they can be InkLists themselves. These are intended to be single-item lists so + /// you can specify the upper and lower bounds. If you pass in multi-item lists, it'll + /// use the minimum and maximum items in those lists respectively. + /// WARNING: Calling this method requires a full sort of all the elements in the list. + /// + public InkList ListWithSubRange(object minBound, object maxBound) + { + if (this.Count == 0) return new InkList(); + + var ordered = orderedItems; + + int minValue = 0; + int maxValue = int.MaxValue; + + if (minBound is int) + { + minValue = (int)minBound; + } + + else + { + if( minBound is InkList && ((InkList)minBound).Count > 0 ) + minValue = ((InkList)minBound).minItem.Value; + } + + if (maxBound is int) + maxValue = (int)maxBound; + else + { + if (minBound is InkList && ((InkList)minBound).Count > 0) + maxValue = ((InkList)maxBound).maxItem.Value; + } + + var subList = new InkList(); + subList.SetInitialOriginNames(originNames); + foreach(var item in ordered) { + if( item.Value >= minValue && item.Value <= maxValue ) { + subList.Add(item.Key, item.Value); + } + } + + return subList; + } + + /// + /// Returns true if the passed object is also an ink list that contains + /// the same items as the current list, false otherwise. + /// + public override bool Equals (object other) + { + var otherRawList = other as InkList; + if (otherRawList == null) return false; + if (otherRawList.Count != Count) return false; + + foreach (var kv in this) { + if (!otherRawList.ContainsKey (kv.Key)) + return false; + } + + return true; + } + + /// + /// Return the hashcode for this object, used for comparisons and inserting into dictionaries. + /// + public override int GetHashCode () + { + int ownHash = 0; + foreach (var kv in this) + ownHash += kv.Key.GetHashCode (); + return ownHash; + } + + List> orderedItems { + get { + var ordered = new List>(); + ordered.AddRange(this); + ordered.Sort((x, y) => { + // Ensure consistent ordering of mixed lists. + if( x.Value == y.Value ) { + return x.Key.originName.CompareTo(y.Key.originName); + } else { + return x.Value.CompareTo(y.Value); + } + }); + return ordered; + } + } + + /// + /// Returns a string in the form "a, b, c" with the names of the items in the list, without + /// the origin list definition names. Equivalent to writing {list} in ink. + /// + public override string ToString () + { + var ordered = orderedItems; + + var sb = new StringBuilder (); + for (int i = 0; i < ordered.Count; i++) { + if (i > 0) + sb.Append (", "); + + var item = ordered [i].Key; + sb.Append (item.itemName); + } + + return sb.ToString (); + } + } +} diff --git a/Assets/Ink/ink-engine-runtime/InkList.cs.meta b/Assets/Ink/ink-engine-runtime/InkList.cs.meta new file mode 100644 index 000000000..fca74e392 --- /dev/null +++ b/Assets/Ink/ink-engine-runtime/InkList.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: eae430118a663d2468fd2dd014f15032 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Ink/ink-engine-runtime/JsonSerialisation.cs b/Assets/Ink/ink-engine-runtime/JsonSerialisation.cs new file mode 100644 index 000000000..dcde266b4 --- /dev/null +++ b/Assets/Ink/ink-engine-runtime/JsonSerialisation.cs @@ -0,0 +1,720 @@ +using System; +using System.Collections.Generic; +using System.Linq; + +namespace Ink.Runtime +{ + public static class Json + { + public static List JArrayToRuntimeObjList(List jArray, bool skipLast=false) where T : Runtime.Object + { + int count = jArray.Count; + if (skipLast) + count--; + + var list = new List (jArray.Count); + + for (int i = 0; i < count; i++) { + var jTok = jArray [i]; + var runtimeObj = JTokenToRuntimeObject (jTok) as T; + list.Add (runtimeObj); + } + + return list; + } + + public static List JArrayToRuntimeObjList(List jArray, bool skipLast=false) + { + return JArrayToRuntimeObjList (jArray, skipLast); + } + + public static void WriteDictionaryRuntimeObjs(SimpleJson.Writer writer, Dictionary dictionary) + { + writer.WriteObjectStart(); + foreach(var keyVal in dictionary) { + writer.WritePropertyStart(keyVal.Key); + WriteRuntimeObject(writer, keyVal.Value); + writer.WritePropertyEnd(); + } + writer.WriteObjectEnd(); + } + + + public static void WriteListRuntimeObjs(SimpleJson.Writer writer, List list) + { + writer.WriteArrayStart(); + foreach (var val in list) + { + WriteRuntimeObject(writer, val); + } + writer.WriteArrayEnd(); + } + + public static void WriteIntDictionary(SimpleJson.Writer writer, Dictionary dict) + { + writer.WriteObjectStart(); + foreach (var keyVal in dict) + writer.WriteProperty(keyVal.Key, keyVal.Value); + writer.WriteObjectEnd(); + } + + public static void WriteRuntimeObject(SimpleJson.Writer writer, Runtime.Object obj) + { + var container = obj as Container; + if (container) { + WriteRuntimeContainer(writer, container); + return; + } + + var divert = obj as Divert; + if (divert) + { + string divTypeKey = "->"; + if (divert.isExternal) + divTypeKey = "x()"; + else if (divert.pushesToStack) + { + if (divert.stackPushType == PushPopType.Function) + divTypeKey = "f()"; + else if (divert.stackPushType == PushPopType.Tunnel) + divTypeKey = "->t->"; + } + + string targetStr; + if (divert.hasVariableTarget) + targetStr = divert.variableDivertName; + else + targetStr = divert.targetPathString; + + writer.WriteObjectStart(); + + writer.WriteProperty(divTypeKey, targetStr); + + if (divert.hasVariableTarget) + writer.WriteProperty("var", true); + + if (divert.isConditional) + writer.WriteProperty("c", true); + + if (divert.externalArgs > 0) + writer.WriteProperty("exArgs", divert.externalArgs); + + writer.WriteObjectEnd(); + return; + } + + var choicePoint = obj as ChoicePoint; + if (choicePoint) + { + writer.WriteObjectStart(); + writer.WriteProperty("*", choicePoint.pathStringOnChoice); + writer.WriteProperty("flg", choicePoint.flags); + writer.WriteObjectEnd(); + return; + } + + var boolVal = obj as BoolValue; + if (boolVal) { + writer.Write(boolVal.value); + return; + } + + var intVal = obj as IntValue; + if (intVal) { + writer.Write(intVal.value); + return; + } + + var floatVal = obj as FloatValue; + if (floatVal) { + writer.Write(floatVal.value); + return; + } + + var strVal = obj as StringValue; + if (strVal) + { + if (strVal.isNewline) + writer.Write("\\n", escape:false); + else { + writer.WriteStringStart(); + writer.WriteStringInner("^"); + writer.WriteStringInner(strVal.value); + writer.WriteStringEnd(); + } + return; + } + + var listVal = obj as ListValue; + if (listVal) + { + WriteInkList(writer, listVal); + return; + } + + var divTargetVal = obj as DivertTargetValue; + if (divTargetVal) + { + writer.WriteObjectStart(); + writer.WriteProperty("^->", divTargetVal.value.componentsString); + writer.WriteObjectEnd(); + return; + } + + var varPtrVal = obj as VariablePointerValue; + if (varPtrVal) + { + writer.WriteObjectStart(); + writer.WriteProperty("^var", varPtrVal.value); + writer.WriteProperty("ci", varPtrVal.contextIndex); + writer.WriteObjectEnd(); + return; + } + + var glue = obj as Runtime.Glue; + if (glue) { + writer.Write("<>"); + return; + } + + var controlCmd = obj as ControlCommand; + if (controlCmd) + { + writer.Write(_controlCommandNames[(int)controlCmd.commandType]); + return; + } + + var nativeFunc = obj as Runtime.NativeFunctionCall; + if (nativeFunc) + { + var name = nativeFunc.name; + + // Avoid collision with ^ used to indicate a string + if (name == "^") name = "L^"; + + writer.Write(name); + return; + } + + + // Variable reference + var varRef = obj as VariableReference; + if (varRef) + { + writer.WriteObjectStart(); + + string readCountPath = varRef.pathStringForCount; + if (readCountPath != null) + { + writer.WriteProperty("CNT?", readCountPath); + } + else + { + writer.WriteProperty("VAR?", varRef.name); + } + + writer.WriteObjectEnd(); + return; + } + + // Variable assignment + var varAss = obj as VariableAssignment; + if (varAss) + { + writer.WriteObjectStart(); + + string key = varAss.isGlobal ? "VAR=" : "temp="; + writer.WriteProperty(key, varAss.variableName); + + // Reassignment? + if (!varAss.isNewDeclaration) + writer.WriteProperty("re", true); + + writer.WriteObjectEnd(); + + return; + } + + // Void + var voidObj = obj as Void; + if (voidObj) { + writer.Write("void"); + return; + } + + // Tag + var tag = obj as Tag; + if (tag) + { + writer.WriteObjectStart(); + writer.WriteProperty("#", tag.text); + writer.WriteObjectEnd(); + return; + } + + // Used when serialising save state only + var choice = obj as Choice; + if (choice) { + WriteChoice(writer, choice); + return; + } + + throw new System.Exception("Failed to write runtime object to JSON: " + obj); + } + + public static Dictionary JObjectToDictionaryRuntimeObjs(Dictionary jObject) + { + var dict = new Dictionary (jObject.Count); + + foreach (var keyVal in jObject) { + dict [keyVal.Key] = JTokenToRuntimeObject(keyVal.Value); + } + + return dict; + } + + public static Dictionary JObjectToIntDictionary(Dictionary jObject) + { + var dict = new Dictionary (jObject.Count); + foreach (var keyVal in jObject) { + dict [keyVal.Key] = (int)keyVal.Value; + } + return dict; + } + + // ---------------------- + // JSON ENCODING SCHEME + // ---------------------- + // + // Glue: "<>", "G<", "G>" + // + // ControlCommand: "ev", "out", "/ev", "du" "pop", "->->", "~ret", "str", "/str", "nop", + // "choiceCnt", "turns", "visit", "seq", "thread", "done", "end" + // + // NativeFunction: "+", "-", "/", "*", "%" "~", "==", ">", "<", ">=", "<=", "!=", "!"... etc + // + // Void: "void" + // + // Value: "^string value", "^^string value beginning with ^" + // 5, 5.2 + // {"^->": "path.target"} + // {"^var": "varname", "ci": 0} + // + // Container: [...] + // [..., + // { + // "subContainerName": ..., + // "#f": 5, // flags + // "#n": "containerOwnName" // only if not redundant + // } + // ] + // + // Divert: {"->": "path.target", "c": true } + // {"->": "path.target", "var": true} + // {"f()": "path.func"} + // {"->t->": "path.tunnel"} + // {"x()": "externalFuncName", "exArgs": 5} + // + // Var Assign: {"VAR=": "varName", "re": true} // reassignment + // {"temp=": "varName"} + // + // Var ref: {"VAR?": "varName"} + // {"CNT?": "stitch name"} + // + // ChoicePoint: {"*": pathString, + // "flg": 18 } + // + // Choice: Nothing too clever, it's only used in the save state, + // there's not likely to be many of them. + // + // Tag: {"#": "the tag text"} + public static Runtime.Object JTokenToRuntimeObject(object token) + { + if (token is int || token is float || token is bool) { + return Value.Create (token); + } + + if (token is string) { + string str = (string)token; + + // String value + char firstChar = str[0]; + if (firstChar == '^') + return new StringValue (str.Substring (1)); + else if( firstChar == '\n' && str.Length == 1) + return new StringValue ("\n"); + + // Glue + if (str == "<>") return new Runtime.Glue (); + + // Control commands (would looking up in a hash set be faster?) + for (int i = 0; i < _controlCommandNames.Length; ++i) { + string cmdName = _controlCommandNames [i]; + if (str == cmdName) { + return new Runtime.ControlCommand ((ControlCommand.CommandType)i); + } + } + + // Native functions + // "^" conflicts with the way to identify strings, so now + // we know it's not a string, we can convert back to the proper + // symbol for the operator. + if (str == "L^") str = "^"; + if( NativeFunctionCall.CallExistsWithName(str) ) + return NativeFunctionCall.CallWithName (str); + + // Pop + if (str == "->->") + return Runtime.ControlCommand.PopTunnel (); + else if (str == "~ret") + return Runtime.ControlCommand.PopFunction (); + + // Void + if (str == "void") + return new Runtime.Void (); + } + + if (token is Dictionary) { + + var obj = (Dictionary < string, object> )token; + object propValue; + + // Divert target value to path + if (obj.TryGetValue ("^->", out propValue)) + return new DivertTargetValue (new Path ((string)propValue)); + + // VariablePointerValue + if (obj.TryGetValue ("^var", out propValue)) { + var varPtr = new VariablePointerValue ((string)propValue); + if (obj.TryGetValue ("ci", out propValue)) + varPtr.contextIndex = (int)propValue; + return varPtr; + } + + // Divert + bool isDivert = false; + bool pushesToStack = false; + PushPopType divPushType = PushPopType.Function; + bool external = false; + if (obj.TryGetValue ("->", out propValue)) { + isDivert = true; + } + else if (obj.TryGetValue ("f()", out propValue)) { + isDivert = true; + pushesToStack = true; + divPushType = PushPopType.Function; + } + else if (obj.TryGetValue ("->t->", out propValue)) { + isDivert = true; + pushesToStack = true; + divPushType = PushPopType.Tunnel; + } + else if (obj.TryGetValue ("x()", out propValue)) { + isDivert = true; + external = true; + pushesToStack = false; + divPushType = PushPopType.Function; + } + if (isDivert) { + var divert = new Divert (); + divert.pushesToStack = pushesToStack; + divert.stackPushType = divPushType; + divert.isExternal = external; + + string target = propValue.ToString (); + + if (obj.TryGetValue ("var", out propValue)) + divert.variableDivertName = target; + else + divert.targetPathString = target; + + divert.isConditional = obj.TryGetValue("c", out propValue); + + if (external) { + if (obj.TryGetValue ("exArgs", out propValue)) + divert.externalArgs = (int)propValue; + } + + return divert; + } + + // Choice + if (obj.TryGetValue ("*", out propValue)) { + var choice = new ChoicePoint (); + choice.pathStringOnChoice = propValue.ToString(); + + if (obj.TryGetValue ("flg", out propValue)) + choice.flags = (int)propValue; + + return choice; + } + + // Variable reference + if (obj.TryGetValue ("VAR?", out propValue)) { + return new VariableReference (propValue.ToString ()); + } else if (obj.TryGetValue ("CNT?", out propValue)) { + var readCountVarRef = new VariableReference (); + readCountVarRef.pathStringForCount = propValue.ToString (); + return readCountVarRef; + } + + // Variable assignment + bool isVarAss = false; + bool isGlobalVar = false; + if (obj.TryGetValue ("VAR=", out propValue)) { + isVarAss = true; + isGlobalVar = true; + } else if (obj.TryGetValue ("temp=", out propValue)) { + isVarAss = true; + isGlobalVar = false; + } + if (isVarAss) { + var varName = propValue.ToString (); + var isNewDecl = !obj.TryGetValue("re", out propValue); + var varAss = new VariableAssignment (varName, isNewDecl); + varAss.isGlobal = isGlobalVar; + return varAss; + } + + // Tag + if (obj.TryGetValue ("#", out propValue)) { + return new Runtime.Tag ((string)propValue); + } + + // List value + if (obj.TryGetValue ("list", out propValue)) { + var listContent = (Dictionary)propValue; + var rawList = new InkList (); + if (obj.TryGetValue ("origins", out propValue)) { + var namesAsObjs = (List)propValue; + rawList.SetInitialOriginNames (namesAsObjs.Cast().ToList()); + } + foreach (var nameToVal in listContent) { + var item = new InkListItem (nameToVal.Key); + var val = (int)nameToVal.Value; + rawList.Add (item, val); + } + return new ListValue (rawList); + } + + // Used when serialising save state only + if (obj ["originalChoicePath"] != null) + return JObjectToChoice (obj); + } + + // Array is always a Runtime.Container + if (token is List) { + return JArrayToContainer((List)token); + } + + if (token == null) + return null; + + throw new System.Exception ("Failed to convert token to runtime object: " + token); + } + + public static void WriteRuntimeContainer(SimpleJson.Writer writer, Container container, bool withoutName = false) + { + writer.WriteArrayStart(); + + foreach (var c in container.content) + WriteRuntimeObject(writer, c); + + // Container is always an array [...] + // But the final element is always either: + // - a dictionary containing the named content, as well as possibly + // the key "#" with the count flags + // - null, if neither of the above + var namedOnlyContent = container.namedOnlyContent; + var countFlags = container.countFlags; + var hasNameProperty = container.name != null && !withoutName; + + bool hasTerminator = namedOnlyContent != null || countFlags > 0 || hasNameProperty; + + if( hasTerminator ) + writer.WriteObjectStart(); + + if ( namedOnlyContent != null ) { + foreach(var namedContent in namedOnlyContent) { + var name = namedContent.Key; + var namedContainer = namedContent.Value as Container; + writer.WritePropertyStart(name); + WriteRuntimeContainer(writer, namedContainer, withoutName:true); + writer.WritePropertyEnd(); + } + } + + if (countFlags > 0) + writer.WriteProperty("#f", countFlags); + + if (hasNameProperty) + writer.WriteProperty("#n", container.name); + + if (hasTerminator) + writer.WriteObjectEnd(); + else + writer.WriteNull(); + + writer.WriteArrayEnd(); + } + + static Container JArrayToContainer(List jArray) + { + var container = new Container (); + container.content = JArrayToRuntimeObjList (jArray, skipLast:true); + + // Final object in the array is always a combination of + // - named content + // - a "#f" key with the countFlags + // (if either exists at all, otherwise null) + var terminatingObj = jArray [jArray.Count - 1] as Dictionary; + if (terminatingObj != null) { + + var namedOnlyContent = new Dictionary (terminatingObj.Count); + + foreach (var keyVal in terminatingObj) { + if (keyVal.Key == "#f") { + container.countFlags = (int)keyVal.Value; + } else if (keyVal.Key == "#n") { + container.name = keyVal.Value.ToString (); + } else { + var namedContentItem = JTokenToRuntimeObject(keyVal.Value); + var namedSubContainer = namedContentItem as Container; + if (namedSubContainer) + namedSubContainer.name = keyVal.Key; + namedOnlyContent [keyVal.Key] = namedContentItem; + } + } + + container.namedOnlyContent = namedOnlyContent; + } + + return container; + } + + static Choice JObjectToChoice(Dictionary jObj) + { + var choice = new Choice(); + choice.text = jObj ["text"].ToString(); + choice.index = (int)jObj ["index"]; + choice.sourcePath = jObj ["originalChoicePath"].ToString(); + choice.originalThreadIndex = (int)jObj ["originalThreadIndex"]; + choice.pathStringOnChoice = jObj ["targetPath"].ToString(); + return choice; + } + public static void WriteChoice(SimpleJson.Writer writer, Choice choice) + { + writer.WriteObjectStart(); + writer.WriteProperty("text", choice.text); + writer.WriteProperty("index", choice.index); + writer.WriteProperty("originalChoicePath", choice.sourcePath); + writer.WriteProperty("originalThreadIndex", choice.originalThreadIndex); + writer.WriteProperty("targetPath", choice.pathStringOnChoice); + writer.WriteObjectEnd(); + } + + static void WriteInkList(SimpleJson.Writer writer, ListValue listVal) + { + var rawList = listVal.value; + + writer.WriteObjectStart(); + + writer.WritePropertyStart("list"); + + writer.WriteObjectStart(); + + foreach (var itemAndValue in rawList) + { + var item = itemAndValue.Key; + int itemVal = itemAndValue.Value; + + writer.WritePropertyNameStart(); + writer.WritePropertyNameInner(item.originName ?? "?"); + writer.WritePropertyNameInner("."); + writer.WritePropertyNameInner(item.itemName); + writer.WritePropertyNameEnd(); + + writer.Write(itemVal); + + writer.WritePropertyEnd(); + } + + writer.WriteObjectEnd(); + + writer.WritePropertyEnd(); + + if (rawList.Count == 0 && rawList.originNames != null && rawList.originNames.Count > 0) + { + writer.WritePropertyStart("origins"); + writer.WriteArrayStart(); + foreach (var name in rawList.originNames) + writer.Write(name); + writer.WriteArrayEnd(); + writer.WritePropertyEnd(); + } + + writer.WriteObjectEnd(); + } + + public static ListDefinitionsOrigin JTokenToListDefinitions (object obj) + { + var defsObj = (Dictionary)obj; + + var allDefs = new List (); + + foreach (var kv in defsObj) { + var name = (string) kv.Key; + var listDefJson = (Dictionary)kv.Value; + + // Cast (string, object) to (string, int) for items + var items = new Dictionary (); + foreach (var nameValue in listDefJson) + items.Add(nameValue.Key, (int)nameValue.Value); + + var def = new ListDefinition (name, items); + allDefs.Add (def); + } + + return new ListDefinitionsOrigin (allDefs); + } + + static Json() + { + _controlCommandNames = new string[(int)ControlCommand.CommandType.TOTAL_VALUES]; + + _controlCommandNames [(int)ControlCommand.CommandType.EvalStart] = "ev"; + _controlCommandNames [(int)ControlCommand.CommandType.EvalOutput] = "out"; + _controlCommandNames [(int)ControlCommand.CommandType.EvalEnd] = "/ev"; + _controlCommandNames [(int)ControlCommand.CommandType.Duplicate] = "du"; + _controlCommandNames [(int)ControlCommand.CommandType.PopEvaluatedValue] = "pop"; + _controlCommandNames [(int)ControlCommand.CommandType.PopFunction] = "~ret"; + _controlCommandNames [(int)ControlCommand.CommandType.PopTunnel] = "->->"; + _controlCommandNames [(int)ControlCommand.CommandType.BeginString] = "str"; + _controlCommandNames [(int)ControlCommand.CommandType.EndString] = "/str"; + _controlCommandNames [(int)ControlCommand.CommandType.NoOp] = "nop"; + _controlCommandNames [(int)ControlCommand.CommandType.ChoiceCount] = "choiceCnt"; + _controlCommandNames [(int)ControlCommand.CommandType.Turns] = "turn"; + _controlCommandNames [(int)ControlCommand.CommandType.TurnsSince] = "turns"; + _controlCommandNames [(int)ControlCommand.CommandType.ReadCount] = "readc"; + _controlCommandNames [(int)ControlCommand.CommandType.Random] = "rnd"; + _controlCommandNames [(int)ControlCommand.CommandType.SeedRandom] = "srnd"; + _controlCommandNames [(int)ControlCommand.CommandType.VisitIndex] = "visit"; + _controlCommandNames [(int)ControlCommand.CommandType.SequenceShuffleIndex] = "seq"; + _controlCommandNames [(int)ControlCommand.CommandType.StartThread] = "thread"; + _controlCommandNames [(int)ControlCommand.CommandType.Done] = "done"; + _controlCommandNames [(int)ControlCommand.CommandType.End] = "end"; + _controlCommandNames [(int)ControlCommand.CommandType.ListFromInt] = "listInt"; + _controlCommandNames [(int)ControlCommand.CommandType.ListRange] = "range"; + _controlCommandNames [(int)ControlCommand.CommandType.ListRandom] = "lrnd"; + + for (int i = 0; i < (int)ControlCommand.CommandType.TOTAL_VALUES; ++i) { + if (_controlCommandNames [i] == null) + throw new System.Exception ("Control command not accounted for in serialisation"); + } + } + + static string[] _controlCommandNames; + } +} + + diff --git a/Assets/Ink/ink-engine-runtime/JsonSerialisation.cs.meta b/Assets/Ink/ink-engine-runtime/JsonSerialisation.cs.meta new file mode 100644 index 000000000..c96d2baca --- /dev/null +++ b/Assets/Ink/ink-engine-runtime/JsonSerialisation.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 57b94594766db8247bf7c8cf3be26d0b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Ink/ink-engine-runtime/ListDefinition.cs b/Assets/Ink/ink-engine-runtime/ListDefinition.cs new file mode 100644 index 000000000..94370bd25 --- /dev/null +++ b/Assets/Ink/ink-engine-runtime/ListDefinition.cs @@ -0,0 +1,75 @@ +using System.Collections.Generic; + +namespace Ink.Runtime +{ + public class ListDefinition + { + public string name { get { return _name; } } + + public Dictionary items { + get { + if (_items == null) { + _items = new Dictionary (); + foreach (var itemNameAndValue in _itemNameToValues) { + var item = new InkListItem (name, itemNameAndValue.Key); + _items [item] = itemNameAndValue.Value; + } + } + return _items; + } + } + Dictionary _items; + + public int ValueForItem (InkListItem item) + { + int intVal; + if (_itemNameToValues.TryGetValue (item.itemName, out intVal)) + return intVal; + else + return 0; + } + + public bool ContainsItem (InkListItem item) + { + if (item.originName != name) return false; + + return _itemNameToValues.ContainsKey (item.itemName); + } + + public bool ContainsItemWithName (string itemName) + { + return _itemNameToValues.ContainsKey (itemName); + } + + public bool TryGetItemWithValue (int val, out InkListItem item) + { + foreach (var namedItem in _itemNameToValues) { + if (namedItem.Value == val) { + item = new InkListItem (name, namedItem.Key); + return true; + } + } + + item = InkListItem.Null; + return false; + } + + public bool TryGetValueForItem (InkListItem item, out int intVal) + { + return _itemNameToValues.TryGetValue (item.itemName, out intVal); + } + + public ListDefinition (string name, Dictionary items) + { + _name = name; + _itemNameToValues = items; + } + + string _name; + + // The main representation should be simple item names rather than a RawListItem, + // since we mainly want to access items based on their simple name, since that's + // how they'll be most commonly requested from ink. + Dictionary _itemNameToValues; + } +} diff --git a/Assets/Ink/ink-engine-runtime/ListDefinition.cs.meta b/Assets/Ink/ink-engine-runtime/ListDefinition.cs.meta new file mode 100644 index 000000000..fdb2dea37 --- /dev/null +++ b/Assets/Ink/ink-engine-runtime/ListDefinition.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e05c4a8ea45103145a70c0222b1cfc41 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Ink/ink-engine-runtime/ListDefinitionsOrigin.cs b/Assets/Ink/ink-engine-runtime/ListDefinitionsOrigin.cs new file mode 100644 index 000000000..9fc33894f --- /dev/null +++ b/Assets/Ink/ink-engine-runtime/ListDefinitionsOrigin.cs @@ -0,0 +1,53 @@ +using System.Collections.Generic; + +namespace Ink.Runtime +{ + public class ListDefinitionsOrigin + { + public List lists { + get { + var listOfLists = new List (); + foreach (var namedList in _lists) { + listOfLists.Add (namedList.Value); + } + return listOfLists; + } + } + + public ListDefinitionsOrigin (List lists) + { + _lists = new Dictionary (); + _allUnambiguousListValueCache = new Dictionary(); + + foreach (var list in lists) { + _lists [list.name] = list; + + foreach(var itemWithValue in list.items) { + var item = itemWithValue.Key; + var val = itemWithValue.Value; + var listValue = new ListValue(item, val); + + // May be ambiguous, but compiler should've caught that, + // so we may be doing some replacement here, but that's okay. + _allUnambiguousListValueCache[item.itemName] = listValue; + _allUnambiguousListValueCache[item.fullName] = listValue; + } + } + } + + public bool TryListGetDefinition (string name, out ListDefinition def) + { + return _lists.TryGetValue (name, out def); + } + + public ListValue FindSingleItemListWithName (string name) + { + ListValue val = null; + _allUnambiguousListValueCache.TryGetValue(name, out val); + return val; + } + + Dictionary _lists; + Dictionary _allUnambiguousListValueCache; + } +} diff --git a/Assets/Ink/ink-engine-runtime/ListDefinitionsOrigin.cs.meta b/Assets/Ink/ink-engine-runtime/ListDefinitionsOrigin.cs.meta new file mode 100644 index 000000000..6b45dcdbb --- /dev/null +++ b/Assets/Ink/ink-engine-runtime/ListDefinitionsOrigin.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 9364c2f86b5422d4c90cedb25e30a855 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Ink/ink-engine-runtime/NativeFunctionCall.cs b/Assets/Ink/ink-engine-runtime/NativeFunctionCall.cs new file mode 100644 index 000000000..b610651a3 --- /dev/null +++ b/Assets/Ink/ink-engine-runtime/NativeFunctionCall.cs @@ -0,0 +1,508 @@ +using System; +using System.Collections.Generic; + +namespace Ink.Runtime +{ + public class NativeFunctionCall : Runtime.Object + { + public const string Add = "+"; + public const string Subtract = "-"; + public const string Divide = "/"; + public const string Multiply = "*"; + public const string Mod = "%"; + public const string Negate = "_"; // distinguish from "-" for subtraction + + public const string Equal = "=="; + public const string Greater = ">"; + public const string Less = "<"; + public const string GreaterThanOrEquals = ">="; + public const string LessThanOrEquals = "<="; + public const string NotEquals = "!="; + public const string Not = "!"; + + + + public const string And = "&&"; + public const string Or = "||"; + + public const string Min = "MIN"; + public const string Max = "MAX"; + + public const string Pow = "POW"; + public const string Floor = "FLOOR"; + public const string Ceiling = "CEILING"; + public const string Int = "INT"; + public const string Float = "FLOAT"; + + public const string Has = "?"; + public const string Hasnt = "!?"; + public const string Intersect = "^"; + + public const string ListMin = "LIST_MIN"; + public const string ListMax = "LIST_MAX"; + public const string All = "LIST_ALL"; + public const string Count = "LIST_COUNT"; + public const string ValueOfList = "LIST_VALUE"; + public const string Invert = "LIST_INVERT"; + + public static NativeFunctionCall CallWithName(string functionName) + { + return new NativeFunctionCall (functionName); + } + + public static bool CallExistsWithName(string functionName) + { + GenerateNativeFunctionsIfNecessary (); + return _nativeFunctions.ContainsKey (functionName); + } + + public string name { + get { + return _name; + } + protected set { + _name = value; + if( !_isPrototype ) + _prototype = _nativeFunctions [_name]; + } + } + string _name; + + public int numberOfParameters { + get { + if (_prototype) { + return _prototype.numberOfParameters; + } else { + return _numberOfParameters; + } + } + protected set { + _numberOfParameters = value; + } + } + + int _numberOfParameters; + + public Runtime.Object Call(List parameters) + { + if (_prototype) { + return _prototype.Call(parameters); + } + + if (numberOfParameters != parameters.Count) { + throw new System.Exception ("Unexpected number of parameters"); + } + + bool hasList = false; + foreach (var p in parameters) { + if (p is Void) + throw new StoryException ("Attempting to perform operation on a void value. Did you forget to 'return' a value from a function you called here?"); + if (p is ListValue) + hasList = true; + } + + // Binary operations on lists are treated outside of the standard coerscion rules + if( parameters.Count == 2 && hasList ) + return CallBinaryListOperation (parameters); + + var coercedParams = CoerceValuesToSingleType (parameters); + ValueType coercedType = coercedParams[0].valueType; + + if (coercedType == ValueType.Int) { + return Call (coercedParams); + } else if (coercedType == ValueType.Float) { + return Call (coercedParams); + } else if (coercedType == ValueType.String) { + return Call (coercedParams); + } else if (coercedType == ValueType.DivertTarget) { + return Call (coercedParams); + } else if (coercedType == ValueType.List) { + return Call (coercedParams); + } + + return null; + } + + Value Call(List parametersOfSingleType) + { + Value param1 = (Value) parametersOfSingleType [0]; + ValueType valType = param1.valueType; + + var val1 = (Value)param1; + + int paramCount = parametersOfSingleType.Count; + + if (paramCount == 2 || paramCount == 1) { + + object opForTypeObj = null; + if (!_operationFuncs.TryGetValue (valType, out opForTypeObj)) { + throw new StoryException ("Cannot perform operation '"+this.name+"' on "+valType); + } + + // Binary + if (paramCount == 2) { + Value param2 = (Value) parametersOfSingleType [1]; + + var val2 = (Value)param2; + + var opForType = (BinaryOp)opForTypeObj; + + // Return value unknown until it's evaluated + object resultVal = opForType (val1.value, val2.value); + + return Value.Create (resultVal); + } + + // Unary + else { + + var opForType = (UnaryOp)opForTypeObj; + + var resultVal = opForType (val1.value); + + return Value.Create (resultVal); + } + } + + else { + throw new System.Exception ("Unexpected number of parameters to NativeFunctionCall: " + parametersOfSingleType.Count); + } + } + + Value CallBinaryListOperation (List parameters) + { + // List-Int addition/subtraction returns a List (e.g. "alpha" + 1 = "beta") + if ((name == "+" || name == "-") && parameters [0] is ListValue && parameters [1] is IntValue) + return CallListIncrementOperation (parameters); + + var v1 = parameters [0] as Value; + var v2 = parameters [1] as Value; + + // And/or with any other type requires coerscion to bool (int) + if ((name == "&&" || name == "||") && (v1.valueType != ValueType.List || v2.valueType != ValueType.List)) { + var op = _operationFuncs [ValueType.Int] as BinaryOp; + var result = (bool)op (v1.isTruthy ? 1 : 0, v2.isTruthy ? 1 : 0); + return new BoolValue (result); + } + + // Normal (list • list) operation + if (v1.valueType == ValueType.List && v2.valueType == ValueType.List) + return Call (new List { v1, v2 }); + + throw new StoryException ("Can not call use '" + name + "' operation on " + v1.valueType + " and " + v2.valueType); + } + + Value CallListIncrementOperation (List listIntParams) + { + var listVal = (ListValue)listIntParams [0]; + var intVal = (IntValue)listIntParams [1]; + + + var resultRawList = new InkList (); + + foreach (var listItemWithValue in listVal.value) { + var listItem = listItemWithValue.Key; + var listItemValue = listItemWithValue.Value; + + // Find + or - operation + var intOp = (BinaryOp)_operationFuncs [ValueType.Int]; + + // Return value unknown until it's evaluated + int targetInt = (int) intOp (listItemValue, intVal.value); + + // Find this item's origin (linear search should be ok, should be short haha) + ListDefinition itemOrigin = null; + foreach (var origin in listVal.value.origins) { + if (origin.name == listItem.originName) { + itemOrigin = origin; + break; + } + } + if (itemOrigin != null) { + InkListItem incrementedItem; + if (itemOrigin.TryGetItemWithValue (targetInt, out incrementedItem)) + resultRawList.Add (incrementedItem, targetInt); + } + } + + return new ListValue (resultRawList); + } + + List CoerceValuesToSingleType(List parametersIn) + { + ValueType valType = ValueType.Int; + + ListValue specialCaseList = null; + + // Find out what the output type is + // "higher level" types infect both so that binary operations + // use the same type on both sides. e.g. binary operation of + // int and float causes the int to be casted to a float. + foreach (var obj in parametersIn) { + var val = (Value)obj; + if (val.valueType > valType) { + valType = val.valueType; + } + + if (val.valueType == ValueType.List) { + specialCaseList = val as ListValue; + } + } + + // Coerce to this chosen type + var parametersOut = new List (); + + // Special case: Coercing to Ints to Lists + // We have to do it early when we have both parameters + // to hand - so that we can make use of the List's origin + if (valType == ValueType.List) { + + foreach (Value val in parametersIn) { + if (val.valueType == ValueType.List) { + parametersOut.Add (val); + } else if (val.valueType == ValueType.Int) { + int intVal = (int)val.valueObject; + var list = specialCaseList.value.originOfMaxItem; + + InkListItem item; + if (list.TryGetItemWithValue (intVal, out item)) { + var castedValue = new ListValue (item, intVal); + parametersOut.Add (castedValue); + } else + throw new StoryException ("Could not find List item with the value " + intVal + " in " + list.name); + } else + throw new StoryException ("Cannot mix Lists and " + val.valueType + " values in this operation"); + } + + } + + // Normal Coercing (with standard casting) + else { + foreach (Value val in parametersIn) { + var castedValue = val.Cast (valType); + parametersOut.Add (castedValue); + } + } + + return parametersOut; + } + + public NativeFunctionCall(string name) + { + GenerateNativeFunctionsIfNecessary (); + + this.name = name; + } + + // Require default constructor for serialisation + public NativeFunctionCall() { + GenerateNativeFunctionsIfNecessary (); + } + + // Only called internally to generate prototypes + NativeFunctionCall (string name, int numberOfParameters) + { + _isPrototype = true; + this.name = name; + this.numberOfParameters = numberOfParameters; + } + + // For defining operations that do nothing to the specific type + // (but are still supported), such as floor/ceil on int and float + // cast on float. + static object Identity(T t) { + return t; + } + + static void GenerateNativeFunctionsIfNecessary() + { + if (_nativeFunctions == null) { + _nativeFunctions = new Dictionary (); + + // Why no bool operations? + // Before evaluation, all bools are coerced to ints in + // CoerceValuesToSingleType (see default value for valType at top). + // So, no operations are ever directly done in bools themselves. + // This also means that 1 == true works, since true is always converted + // to 1 first. + // However, many operations return a "native" bool (equals, etc). + + // Int operations + AddIntBinaryOp(Add, (x, y) => x + y); + AddIntBinaryOp(Subtract, (x, y) => x - y); + AddIntBinaryOp(Multiply, (x, y) => x * y); + AddIntBinaryOp(Divide, (x, y) => x / y); + AddIntBinaryOp(Mod, (x, y) => x % y); + AddIntUnaryOp (Negate, x => -x); + + AddIntBinaryOp(Equal, (x, y) => x == y); + AddIntBinaryOp(Greater, (x, y) => x > y); + AddIntBinaryOp(Less, (x, y) => x < y); + AddIntBinaryOp(GreaterThanOrEquals, (x, y) => x >= y); + AddIntBinaryOp(LessThanOrEquals, (x, y) => x <= y); + AddIntBinaryOp(NotEquals, (x, y) => x != y); + AddIntUnaryOp (Not, x => x == 0); + + AddIntBinaryOp(And, (x, y) => x != 0 && y != 0); + AddIntBinaryOp(Or, (x, y) => x != 0 || y != 0); + + AddIntBinaryOp(Max, (x, y) => Math.Max(x, y)); + AddIntBinaryOp(Min, (x, y) => Math.Min(x, y)); + + // Have to cast to float since you could do POW(2, -1) + AddIntBinaryOp (Pow, (x, y) => (float) Math.Pow(x, y)); + AddIntUnaryOp(Floor, Identity); + AddIntUnaryOp(Ceiling, Identity); + AddIntUnaryOp(Int, Identity); + AddIntUnaryOp (Float, x => (float)x); + + // Float operations + AddFloatBinaryOp(Add, (x, y) => x + y); + AddFloatBinaryOp(Subtract, (x, y) => x - y); + AddFloatBinaryOp(Multiply, (x, y) => x * y); + AddFloatBinaryOp(Divide, (x, y) => x / y); + AddFloatBinaryOp(Mod, (x, y) => x % y); // TODO: Is this the operation we want for floats? + AddFloatUnaryOp (Negate, x => -x); + + AddFloatBinaryOp(Equal, (x, y) => x == y); + AddFloatBinaryOp(Greater, (x, y) => x > y); + AddFloatBinaryOp(Less, (x, y) => x < y); + AddFloatBinaryOp(GreaterThanOrEquals, (x, y) => x >= y); + AddFloatBinaryOp(LessThanOrEquals, (x, y) => x <= y); + AddFloatBinaryOp(NotEquals, (x, y) => x != y); + AddFloatUnaryOp (Not, x => (x == 0.0f)); + + AddFloatBinaryOp(And, (x, y) => x != 0.0f && y != 0.0f); + AddFloatBinaryOp(Or, (x, y) => x != 0.0f || y != 0.0f); + + AddFloatBinaryOp(Max, (x, y) => Math.Max(x, y)); + AddFloatBinaryOp(Min, (x, y) => Math.Min(x, y)); + + AddFloatBinaryOp (Pow, (x, y) => (float)Math.Pow(x, y)); + AddFloatUnaryOp(Floor, x => (float)Math.Floor(x)); + AddFloatUnaryOp(Ceiling, x => (float)Math.Ceiling(x)); + AddFloatUnaryOp(Int, x => (int)x); + AddFloatUnaryOp(Float, Identity); + + // String operations + AddStringBinaryOp(Add, (x, y) => x + y); // concat + AddStringBinaryOp(Equal, (x, y) => x.Equals(y)); + AddStringBinaryOp (NotEquals, (x, y) => !x.Equals (y)); + AddStringBinaryOp (Has, (x, y) => x.Contains(y)); + AddStringBinaryOp (Hasnt, (x, y) => !x.Contains(y)); + + // List operations + AddListBinaryOp (Add, (x, y) => x.Union (y)); + AddListBinaryOp (Subtract, (x, y) => x.Without(y)); + AddListBinaryOp (Has, (x, y) => x.Contains (y)); + AddListBinaryOp (Hasnt, (x, y) => !x.Contains (y)); + AddListBinaryOp (Intersect, (x, y) => x.Intersect (y)); + + AddListBinaryOp (Equal, (x, y) => x.Equals(y)); + AddListBinaryOp (Greater, (x, y) => x.GreaterThan(y)); + AddListBinaryOp (Less, (x, y) => x.LessThan(y)); + AddListBinaryOp (GreaterThanOrEquals, (x, y) => x.GreaterThanOrEquals(y)); + AddListBinaryOp (LessThanOrEquals, (x, y) => x.LessThanOrEquals(y)); + AddListBinaryOp (NotEquals, (x, y) => !x.Equals(y)); + + AddListBinaryOp (And, (x, y) => x.Count > 0 && y.Count > 0); + AddListBinaryOp (Or, (x, y) => x.Count > 0 || y.Count > 0); + + AddListUnaryOp (Not, x => x.Count == 0 ? (int)1 : (int)0); + + // Placeholders to ensure that these special case functions can exist, + // since these function is never actually run, and is special cased in Call + AddListUnaryOp (Invert, x => x.inverse); + AddListUnaryOp (All, x => x.all); + AddListUnaryOp (ListMin, (x) => x.MinAsList()); + AddListUnaryOp (ListMax, (x) => x.MaxAsList()); + AddListUnaryOp (Count, (x) => x.Count); + AddListUnaryOp (ValueOfList, (x) => x.maxItem.Value); + + // Special case: The only operations you can do on divert target values + BinaryOp divertTargetsEqual = (Path d1, Path d2) => { + return d1.Equals (d2); + }; + BinaryOp divertTargetsNotEqual = (Path d1, Path d2) => { + return !d1.Equals (d2); + }; + AddOpToNativeFunc (Equal, 2, ValueType.DivertTarget, divertTargetsEqual); + AddOpToNativeFunc (NotEquals, 2, ValueType.DivertTarget, divertTargetsNotEqual); + + } + } + + void AddOpFuncForType(ValueType valType, object op) + { + if (_operationFuncs == null) { + _operationFuncs = new Dictionary (); + } + + _operationFuncs [valType] = op; + } + + static void AddOpToNativeFunc(string name, int args, ValueType valType, object op) + { + NativeFunctionCall nativeFunc = null; + if (!_nativeFunctions.TryGetValue (name, out nativeFunc)) { + nativeFunc = new NativeFunctionCall (name, args); + _nativeFunctions [name] = nativeFunc; + } + + nativeFunc.AddOpFuncForType (valType, op); + } + + static void AddIntBinaryOp(string name, BinaryOp op) + { + AddOpToNativeFunc (name, 2, ValueType.Int, op); + } + + static void AddIntUnaryOp(string name, UnaryOp op) + { + AddOpToNativeFunc (name, 1, ValueType.Int, op); + } + + static void AddFloatBinaryOp(string name, BinaryOp op) + { + AddOpToNativeFunc (name, 2, ValueType.Float, op); + } + + static void AddStringBinaryOp(string name, BinaryOp op) + { + AddOpToNativeFunc (name, 2, ValueType.String, op); + } + + static void AddListBinaryOp (string name, BinaryOp op) + { + AddOpToNativeFunc (name, 2, ValueType.List, op); + } + + static void AddListUnaryOp (string name, UnaryOp op) + { + AddOpToNativeFunc (name, 1, ValueType.List, op); + } + + static void AddFloatUnaryOp(string name, UnaryOp op) + { + AddOpToNativeFunc (name, 1, ValueType.Float, op); + } + + public override string ToString () + { + return "Native '" + name + "'"; + } + + delegate object BinaryOp(T left, T right); + delegate object UnaryOp(T val); + + NativeFunctionCall _prototype; + bool _isPrototype; + + // Operations for each data type, for a single operation (e.g. "+") + Dictionary _operationFuncs; + + static Dictionary _nativeFunctions; + + } +} + diff --git a/Assets/Ink/ink-engine-runtime/NativeFunctionCall.cs.meta b/Assets/Ink/ink-engine-runtime/NativeFunctionCall.cs.meta new file mode 100644 index 000000000..377d6c893 --- /dev/null +++ b/Assets/Ink/ink-engine-runtime/NativeFunctionCall.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 1a912f0d8190780419888b68957cf67a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Ink/ink-engine-runtime/Object.cs b/Assets/Ink/ink-engine-runtime/Object.cs new file mode 100644 index 000000000..8a5c41bd8 --- /dev/null +++ b/Assets/Ink/ink-engine-runtime/Object.cs @@ -0,0 +1,250 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics; + +namespace Ink.Runtime +{ + /// + /// Base class for all ink runtime content. + /// + public /* TODO: abstract */ class Object + { + /// + /// Runtime.Objects can be included in the main Story as a hierarchy. + /// Usually parents are Container objects. (TODO: Always?) + /// + /// The parent. + public Runtime.Object parent { get; set; } + + public Runtime.DebugMetadata debugMetadata { + get { + if (_debugMetadata == null) { + if (parent) { + return parent.debugMetadata; + } + } + + return _debugMetadata; + } + + set { + _debugMetadata = value; + } + } + + public Runtime.DebugMetadata ownDebugMetadata { + get { + return _debugMetadata; + } + } + + // TODO: Come up with some clever solution for not having + // to have debug metadata on the object itself, perhaps + // for serialisation purposes at least. + DebugMetadata _debugMetadata; + + public int? DebugLineNumberOfPath(Path path) + { + if (path == null) + return null; + + // Try to get a line number from debug metadata + var root = this.rootContentContainer; + if (root) { + Runtime.Object targetContent = root.ContentAtPath (path).obj; + if (targetContent) { + var dm = targetContent.debugMetadata; + if (dm != null) { + return dm.startLineNumber; + } + } + } + + return null; + } + + public Path path + { + get + { + if (_path == null) { + + if (parent == null) { + _path = new Path (); + } else { + // Maintain a Stack so that the order of the components + // is reversed when they're added to the Path. + // We're iterating up the hierarchy from the leaves/children to the root. + var comps = new Stack (); + + var child = this; + Container container = child.parent as Container; + + while (container) { + + var namedChild = child as INamedContent; + if (namedChild != null && namedChild.hasValidName) { + comps.Push (new Path.Component (namedChild.name)); + } else { + comps.Push (new Path.Component (container.content.IndexOf(child))); + } + + child = container; + container = container.parent as Container; + } + + _path = new Path (comps); + } + + } + + return _path; + } + } + Path _path; + + public SearchResult ResolvePath(Path path) + { + if (path.isRelative) { + + Container nearestContainer = this as Container; + if (!nearestContainer) { + Debug.Assert (this.parent != null, "Can't resolve relative path because we don't have a parent"); + nearestContainer = this.parent as Container; + Debug.Assert (nearestContainer != null, "Expected parent to be a container"); + Debug.Assert (path.GetComponent(0).isParent); + path = path.tail; + } + + return nearestContainer.ContentAtPath (path); + } else { + return this.rootContentContainer.ContentAtPath (path); + } + } + + public Path ConvertPathToRelative(Path globalPath) + { + // 1. Find last shared ancestor + // 2. Drill up using ".." style (actually represented as "^") + // 3. Re-build downward chain from common ancestor + + var ownPath = this.path; + + int minPathLength = Math.Min (globalPath.length, ownPath.length); + int lastSharedPathCompIndex = -1; + + for (int i = 0; i < minPathLength; ++i) { + var ownComp = ownPath.GetComponent(i); + var otherComp = globalPath.GetComponent(i); + + if (ownComp.Equals (otherComp)) { + lastSharedPathCompIndex = i; + } else { + break; + } + } + + // No shared path components, so just use global path + if (lastSharedPathCompIndex == -1) + return globalPath; + + int numUpwardsMoves = (ownPath.length-1) - lastSharedPathCompIndex; + + var newPathComps = new List (); + + for(int up=0; up(ref T obj, T value) where T : Runtime.Object + { + if (obj) + obj.parent = null; + + obj = value; + + if( obj ) + obj.parent = this; + } + + /// Allow implicit conversion to bool so you don't have to do: + /// if( myObj != null ) ... + public static implicit operator bool (Object obj) + { + var isNull = object.ReferenceEquals (obj, null); + return !isNull; + } + + /// Required for implicit bool comparison + public static bool operator ==(Object a, Object b) + { + return object.ReferenceEquals (a, b); + } + + /// Required for implicit bool comparison + public static bool operator !=(Object a, Object b) + { + return !(a == b); + } + + /// Required for implicit bool comparison + public override bool Equals (object obj) + { + return object.ReferenceEquals (obj, this); + } + + /// Required for implicit bool comparison + public override int GetHashCode () + { + return base.GetHashCode (); + } + } +} + diff --git a/Assets/Ink/ink-engine-runtime/Object.cs.meta b/Assets/Ink/ink-engine-runtime/Object.cs.meta new file mode 100644 index 000000000..0e5200411 --- /dev/null +++ b/Assets/Ink/ink-engine-runtime/Object.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 94950ad348dccda4ab58771328161324 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Ink/ink-engine-runtime/Path.cs b/Assets/Ink/ink-engine-runtime/Path.cs new file mode 100644 index 000000000..428b2fc76 --- /dev/null +++ b/Assets/Ink/ink-engine-runtime/Path.cs @@ -0,0 +1,277 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Diagnostics; +using Ink.Runtime; + +namespace Ink.Runtime +{ + public class Path : IEquatable + { + static string parentId = "^"; + + // Immutable Component + public class Component : IEquatable + { + public int index { get; private set; } + public string name { get; private set; } + public bool isIndex { get { return index >= 0; } } + public bool isParent { + get { + return name == Path.parentId; + } + } + + public Component(int index) + { + Debug.Assert(index >= 0); + this.index = index; + this.name = null; + } + + public Component(string name) + { + Debug.Assert(name != null && name.Length > 0); + this.name = name; + this.index = -1; + } + + public static Component ToParent() + { + return new Component (parentId); + } + + public override string ToString () + { + if (isIndex) { + return index.ToString (); + } else { + return name; + } + } + + public override bool Equals (object obj) + { + return Equals (obj as Component); + } + + public bool Equals(Component otherComp) + { + if (otherComp != null && otherComp.isIndex == this.isIndex) { + if (isIndex) { + return index == otherComp.index; + } else { + return name == otherComp.name; + } + } + + return false; + } + + public override int GetHashCode () + { + if (isIndex) + return this.index; + else + return this.name.GetHashCode (); + } + } + + public Component GetComponent(int index) + { + return _components[index]; + } + + public bool isRelative { get; private set; } + + public Component head + { + get + { + if (_components.Count > 0) { + return _components.First (); + } else { + return null; + } + } + } + + public Path tail + { + get + { + if (_components.Count >= 2) { + List tailComps = _components.GetRange (1, _components.Count - 1); + return new Path(tailComps); + } + + else { + return Path.self; + } + + } + } + + public int length { get { return _components.Count; } } + + public Component lastComponent + { + get + { + var lastComponentIdx = _components.Count-1; + if( lastComponentIdx >= 0 ) + return _components[lastComponentIdx]; + else + return null; + } + } + + public bool containsNamedComponent { + get { + foreach(var comp in _components) { + if( !comp.isIndex ) { + return true; + } + } + return false; + } + } + + public Path() + { + _components = new List (); + } + + public Path(Component head, Path tail) : this() + { + _components.Add (head); + _components.AddRange (tail._components); + } + + public Path(IEnumerable components, bool relative = false) : this() + { + this._components.AddRange (components); + this.isRelative = relative; + } + + public Path(string componentsString) : this() + { + this.componentsString = componentsString; + } + + public static Path self { + get { + var path = new Path (); + path.isRelative = true; + return path; + } + } + + public Path PathByAppendingPath(Path pathToAppend) + { + Path p = new Path (); + + int upwardMoves = 0; + for (int i = 0; i < pathToAppend._components.Count; ++i) { + if (pathToAppend._components [i].isParent) { + upwardMoves++; + } else { + break; + } + } + + for (int i = 0; i < this._components.Count - upwardMoves; ++i) { + p._components.Add (this._components [i]); + } + + for(int i=upwardMoves; i _components; + } +} + diff --git a/Assets/Ink/ink-engine-runtime/Path.cs.meta b/Assets/Ink/ink-engine-runtime/Path.cs.meta new file mode 100644 index 000000000..8ab3ad0b8 --- /dev/null +++ b/Assets/Ink/ink-engine-runtime/Path.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 3a78230b594be554b92b2aa00d9ae9bd +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Ink/ink-engine-runtime/Pointer.cs b/Assets/Ink/ink-engine-runtime/Pointer.cs new file mode 100644 index 000000000..66fec9a73 --- /dev/null +++ b/Assets/Ink/ink-engine-runtime/Pointer.cs @@ -0,0 +1,70 @@ +using Ink.Runtime; + +namespace Ink.Runtime +{ + /// + /// Internal structure used to point to a particular / current point in the story. + /// Where Path is a set of components that make content fully addressable, this is + /// a reference to the current container, and the index of the current piece of + /// content within that container. This scheme makes it as fast and efficient as + /// possible to increment the pointer (move the story forwards) in a way that's as + /// native to the internal engine as possible. + /// + public struct Pointer + { + public Container container; + public int index; + + public Pointer (Container container, int index) + { + this.container = container; + this.index = index; + } + + public Runtime.Object Resolve () + { + if (index < 0) return container; + if (container == null) return null; + if (container.content.Count == 0) return container; + if (index >= container.content.Count) return null; + return container.content [index]; + + } + + public bool isNull { + get { + return container == null; + } + } + + public Path path { + get { + if( isNull ) return null; + + if (index >= 0) + return container.path.PathByAppendingComponent (new Path.Component(index)); + else + return container.path; + } + } + + public override string ToString () + { + if (container == null) + return "Ink Pointer (null)"; + + return "Ink Pointer -> " + container.path.ToString () + " -- index " + index; + } + + public static Pointer StartOf (Container container) + { + return new Pointer { + container = container, + index = 0 + }; + } + + public static Pointer Null = new Pointer { container = null, index = -1 }; + + } +} \ No newline at end of file diff --git a/Assets/Ink/ink-engine-runtime/Pointer.cs.meta b/Assets/Ink/ink-engine-runtime/Pointer.cs.meta new file mode 100644 index 000000000..98a748a1b --- /dev/null +++ b/Assets/Ink/ink-engine-runtime/Pointer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 53427f8720f617140905561c471b1ca7 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Ink/ink-engine-runtime/Profiler.cs b/Assets/Ink/ink-engine-runtime/Profiler.cs new file mode 100644 index 000000000..5de70a144 --- /dev/null +++ b/Assets/Ink/ink-engine-runtime/Profiler.cs @@ -0,0 +1,394 @@ +using System; +using System.Diagnostics; +using System.Collections.Generic; +using System.Text; +using System.Linq; + +namespace Ink.Runtime +{ + /// + /// Simple ink profiler that logs every instruction in the story and counts frequency and timing. + /// To use: + /// + /// var profiler = story.StartProfiling(), + /// + /// (play your story for a bit) + /// + /// var reportStr = profiler.Report(); + /// + /// story.EndProfiling(); + /// + /// + public class Profiler + { + /// + /// The root node in the hierarchical tree of recorded ink timings. + /// + public ProfileNode rootNode { + get { + return _rootNode; + } + } + + public Profiler() { + _rootNode = new ProfileNode(); + } + + /// + /// Generate a printable report based on the data recording during profiling. + /// + public string Report() { + var sb = new StringBuilder(); + sb.AppendFormat("{0} CONTINUES / LINES:\n", _numContinues); + sb.AppendFormat("TOTAL TIME: {0}\n", FormatMillisecs(_continueTotal)); + sb.AppendFormat("SNAPSHOTTING: {0}\n", FormatMillisecs(_snapTotal)); + sb.AppendFormat("OTHER: {0}\n", FormatMillisecs(_continueTotal - (_stepTotal + _snapTotal))); + sb.Append(_rootNode.ToString()); + return sb.ToString(); + } + + public void PreContinue() { + _continueWatch.Reset(); + _continueWatch.Start(); + } + + public void PostContinue() { + _continueWatch.Stop(); + _continueTotal += Millisecs(_continueWatch); + _numContinues++; + } + + public void PreStep() { + _currStepStack = null; + _stepWatch.Reset(); + _stepWatch.Start(); + } + + public void Step(CallStack callstack) + { + _stepWatch.Stop(); + + var stack = new string[callstack.elements.Count]; + for(int i=0; i + /// Generate a printable report specifying the average and maximum times spent + /// stepping over different internal ink instruction types. + /// This report type is primarily used to profile the ink engine itself rather + /// than your own specific ink. + /// + public string StepLengthReport() + { + var sb = new StringBuilder(); + + sb.AppendLine("TOTAL: "+_rootNode.totalMillisecs+"ms"); + + var averageStepTimes = _stepDetails + .GroupBy(s => s.type) + .Select(typeToDetails => new KeyValuePair(typeToDetails.Key, typeToDetails.Average(d => d.time))) + .OrderByDescending(stepTypeToAverage => stepTypeToAverage.Value) + .Select(stepTypeToAverage => { + var typeName = stepTypeToAverage.Key; + var time = stepTypeToAverage.Value; + return typeName + ": " + time + "ms"; + }) + .ToArray(); + + sb.AppendLine("AVERAGE STEP TIMES: "+string.Join(", ", averageStepTimes)); + + var accumStepTimes = _stepDetails + .GroupBy(s => s.type) + .Select(typeToDetails => new KeyValuePair(typeToDetails.Key + " (x"+typeToDetails.Count()+")", typeToDetails.Sum(d => d.time))) + .OrderByDescending(stepTypeToAccum => stepTypeToAccum.Value) + .Select(stepTypeToAccum => { + var typeName = stepTypeToAccum.Key; + var time = stepTypeToAccum.Value; + return typeName + ": " + time; + }) + .ToArray(); + + sb.AppendLine("ACCUMULATED STEP TIMES: "+string.Join(", ", accumStepTimes)); + + return sb.ToString(); + } + + /// + /// Create a large log of all the internal instructions that were evaluated while profiling was active. + /// Log is in a tab-separated format, for easy loading into a spreadsheet application. + /// + public string Megalog() + { + var sb = new StringBuilder(); + + sb.AppendLine("Step type\tDescription\tPath\tTime"); + + foreach(var step in _stepDetails) { + sb.Append(step.type); + sb.Append("\t"); + sb.Append(step.obj.ToString()); + sb.Append("\t"); + sb.Append(step.obj.path); + sb.Append("\t"); + sb.AppendLine(step.time.ToString("F8")); + } + + return sb.ToString(); + } + + public void PreSnapshot() { + _snapWatch.Reset(); + _snapWatch.Start(); + } + + public void PostSnapshot() { + _snapWatch.Stop(); + _snapTotal += Millisecs(_snapWatch); + } + + double Millisecs(Stopwatch watch) + { + var ticks = watch.ElapsedTicks; + return ticks * _millisecsPerTick; + } + + public static string FormatMillisecs(double num) { + if( num > 5000 ) { + return string.Format("{0:N1} secs", num / 1000.0); + } if( num > 1000 ) { + return string.Format("{0:N2} secs", num / 1000.0); + } else if( num > 100 ) { + return string.Format("{0:N0} ms", num); + } else if( num > 1 ) { + return string.Format("{0:N1} ms", num); + } else if( num > 0.01 ) { + return string.Format("{0:N3} ms", num); + } else { + return string.Format("{0:N} ms", num); + } + } + + Stopwatch _continueWatch = new Stopwatch(); + Stopwatch _stepWatch = new Stopwatch(); + Stopwatch _snapWatch = new Stopwatch(); + + double _continueTotal; + double _snapTotal; + double _stepTotal; + + string[] _currStepStack; + StepDetails _currStepDetails; + ProfileNode _rootNode; + int _numContinues; + + struct StepDetails { + public string type; + public Runtime.Object obj; + public double time; + } + List _stepDetails = new List(); + + static double _millisecsPerTick = 1000.0 / Stopwatch.Frequency; + } + + + /// + /// Node used in the hierarchical tree of timings used by the Profiler. + /// Each node corresponds to a single line viewable in a UI-based representation. + /// + public class ProfileNode { + + /// + /// The key for the node corresponds to the printable name of the callstack element. + /// + public readonly string key; + + + #pragma warning disable 0649 + /// + /// Horribly hacky field only used by ink unity integration, + /// but saves constructing an entire data structure that mirrors + /// the one in here purely to store the state of whether each + /// node in the UI has been opened or not /// + public bool openInUI; + #pragma warning restore 0649 + + /// + /// Whether this node contains any sub-nodes - i.e. does it call anything else + /// that has been recorded? + /// + /// true if has children; otherwise, false. + public bool hasChildren { + get { + return _nodes != null && _nodes.Count > 0; + } + } + + /// + /// Total number of milliseconds this node has been active for. + /// + public int totalMillisecs { + get { + return (int)_totalMillisecs; + } + } + + public ProfileNode() { + + } + + public ProfileNode(string key) { + this.key = key; + } + + public void AddSample(string[] stack, double duration) { + AddSample(stack, -1, duration); + } + + void AddSample(string[] stack, int stackIdx, double duration) { + + _totalSampleCount++; + _totalMillisecs += duration; + + if( stackIdx == stack.Length-1 ) { + _selfSampleCount++; + _selfMillisecs += duration; + } + + if( stackIdx+1 < stack.Length ) + AddSampleToNode(stack, stackIdx+1, duration); + } + + void AddSampleToNode(string[] stack, int stackIdx, double duration) + { + var nodeKey = stack[stackIdx]; + if( _nodes == null ) _nodes = new Dictionary(); + + ProfileNode node; + if( !_nodes.TryGetValue(nodeKey, out node) ) { + node = new ProfileNode(nodeKey); + _nodes[nodeKey] = node; + } + + node.AddSample(stack, stackIdx, duration); + } + + /// + /// Returns a sorted enumerable of the nodes in descending order of + /// how long they took to run. + /// + public IEnumerable> descendingOrderedNodes { + get { + if( _nodes == null ) return null; + return _nodes.OrderByDescending(keyNode => keyNode.Value._totalMillisecs); + } + } + + void PrintHierarchy(StringBuilder sb, int indent) + { + Pad(sb, indent); + + sb.Append(key); + sb.Append(": "); + sb.AppendLine(ownReport); + + if( _nodes == null ) return; + + foreach(var keyNode in descendingOrderedNodes) { + keyNode.Value.PrintHierarchy(sb, indent+1); + } + } + + /// + /// Generates a string giving timing information for this single node, including + /// total milliseconds spent on the piece of ink, the time spent within itself + /// (v.s. spent in children), as well as the number of samples (instruction steps) + /// recorded for both too. + /// + /// The own report. + public string ownReport { + get { + var sb = new StringBuilder(); + sb.Append("total "); + sb.Append(Profiler.FormatMillisecs(_totalMillisecs)); + sb.Append(", self "); + sb.Append(Profiler.FormatMillisecs(_selfMillisecs)); + sb.Append(" ("); + sb.Append(_selfSampleCount); + sb.Append(" self samples, "); + sb.Append(_totalSampleCount); + sb.Append(" total)"); + return sb.ToString(); + } + + } + + void Pad(StringBuilder sb, int spaces) + { + for(int i=0; i + /// String is a report of the sub-tree from this node, but without any of the header information + /// that's prepended by the Profiler in its Report() method. + /// + public override string ToString () + { + var sb = new StringBuilder(); + PrintHierarchy(sb, 0); + return sb.ToString(); + } + + Dictionary _nodes; + double _selfMillisecs; + double _totalMillisecs; + int _selfSampleCount; + int _totalSampleCount; + } +} + diff --git a/Assets/Ink/ink-engine-runtime/Profiler.cs.meta b/Assets/Ink/ink-engine-runtime/Profiler.cs.meta new file mode 100644 index 000000000..8a634b527 --- /dev/null +++ b/Assets/Ink/ink-engine-runtime/Profiler.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 4a0476fcd5f718841ba464f731f2263f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Ink/ink-engine-runtime/PushPop.cs b/Assets/Ink/ink-engine-runtime/PushPop.cs new file mode 100644 index 000000000..42a29bfbd --- /dev/null +++ b/Assets/Ink/ink-engine-runtime/PushPop.cs @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; + +namespace Ink.Runtime +{ + public enum PushPopType + { + Tunnel, + Function, + FunctionEvaluationFromGame + } +} + diff --git a/Assets/Ink/ink-engine-runtime/PushPop.cs.meta b/Assets/Ink/ink-engine-runtime/PushPop.cs.meta new file mode 100644 index 000000000..c6e801d73 --- /dev/null +++ b/Assets/Ink/ink-engine-runtime/PushPop.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e72a7bf0bc13de648abf8411328190a3 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Ink/ink-engine-runtime/SearchResult.cs b/Assets/Ink/ink-engine-runtime/SearchResult.cs new file mode 100644 index 000000000..e3a8c2468 --- /dev/null +++ b/Assets/Ink/ink-engine-runtime/SearchResult.cs @@ -0,0 +1,18 @@ +using System; +namespace Ink.Runtime +{ + // When looking up content within the story (e.g. in Container.ContentAtPath), + // the result is generally found, but if the story is modified, then when loading + // up an old save state, then some old paths may still exist. In this case we + // try to recover by finding an approximate result by working up the story hierarchy + // in the path to find the closest valid container. Instead of crashing horribly, + // we might see some slight oddness in the content, but hopefully it recovers! + public struct SearchResult + { + public Runtime.Object obj; + public bool approximate; + + public Runtime.Object correctObj { get { return approximate ? null : obj; } } + public Container container { get { return obj as Container; } } + } +} diff --git a/Assets/Ink/ink-engine-runtime/SearchResult.cs.meta b/Assets/Ink/ink-engine-runtime/SearchResult.cs.meta new file mode 100644 index 000000000..bff56b907 --- /dev/null +++ b/Assets/Ink/ink-engine-runtime/SearchResult.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d0d28d3d017b900408b7b901473a5393 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Ink/ink-engine-runtime/SimpleJson.cs b/Assets/Ink/ink-engine-runtime/SimpleJson.cs new file mode 100644 index 000000000..7494410c3 --- /dev/null +++ b/Assets/Ink/ink-engine-runtime/SimpleJson.cs @@ -0,0 +1,647 @@ +using System; +using System.Text; +using System.Collections.Generic; +using System.IO; + +namespace Ink.Runtime +{ + /// + /// Simple custom JSON serialisation implementation that takes JSON-able System.Collections that + /// are produced by the ink engine and converts to and from JSON text. + /// + public static class SimpleJson + { + public static Dictionary TextToDictionary (string text) + { + return new Reader (text).ToDictionary (); + } + + public static List TextToArray(string text) + { + return new Reader(text).ToArray(); + } + + class Reader + { + public Reader (string text) + { + _text = text; + _offset = 0; + + SkipWhitespace (); + + _rootObject = ReadObject (); + } + + public Dictionary ToDictionary () + { + return (Dictionary)_rootObject; + } + + public List ToArray() + { + return (List)_rootObject; + } + + bool IsNumberChar (char c) + { + return c >= '0' && c <= '9' || c == '.' || c == '-' || c == '+' || c == 'E' || c == 'e'; + } + + bool IsFirstNumberChar(char c) + { + return c >= '0' && c <= '9' || c == '-' || c == '+'; + } + + object ReadObject () + { + var currentChar = _text [_offset]; + + if( currentChar == '{' ) + return ReadDictionary (); + + else if (currentChar == '[') + return ReadArray (); + + else if (currentChar == '"') + return ReadString (); + + else if (IsFirstNumberChar(currentChar)) + return ReadNumber (); + + else if (TryRead ("true")) + return true; + + else if (TryRead ("false")) + return false; + + else if (TryRead ("null")) + return null; + + throw new System.Exception ("Unhandled object type in JSON: "+_text.Substring (_offset, 30)); + } + + Dictionary ReadDictionary () + { + var dict = new Dictionary (); + + Expect ("{"); + + SkipWhitespace (); + + // Empty dictionary? + if (TryRead ("}")) + return dict; + + do { + + SkipWhitespace (); + + // Key + var key = ReadString (); + Expect (key != null, "dictionary key"); + + SkipWhitespace (); + + // : + Expect (":"); + + SkipWhitespace (); + + // Value + var val = ReadObject (); + Expect (val != null, "dictionary value"); + + // Add to dictionary + dict [key] = val; + + SkipWhitespace (); + + } while ( TryRead (",") ); + + Expect ("}"); + + return dict; + } + + List ReadArray () + { + var list = new List (); + + Expect ("["); + + SkipWhitespace (); + + // Empty list? + if (TryRead ("]")) + return list; + + do { + + SkipWhitespace (); + + // Value + var val = ReadObject (); + + // Add to array + list.Add (val); + + SkipWhitespace (); + + } while (TryRead (",")); + + Expect ("]"); + + return list; + } + + string ReadString () + { + Expect ("\""); + + var sb = new StringBuilder(); + + for (; _offset < _text.Length; _offset++) { + var c = _text [_offset]; + + if (c == '\\') { + // Escaped character + _offset++; + if (_offset >= _text.Length) { + throw new Exception("Unexpected EOF while reading string"); + } + c = _text[_offset]; + switch (c) + { + case '"': + case '\\': + case '/': // Yes, JSON allows this to be escaped + sb.Append(c); + break; + case 'n': + sb.Append('\n'); + break; + case 't': + sb.Append('\t'); + break; + case 'r': + case 'b': + case 'f': + // Ignore other control characters + break; + case 'u': + // 4-digit Unicode + if (_offset + 4 >=_text.Length) { + throw new Exception("Unexpected EOF while reading string"); + } + var digits = _text.Substring(_offset + 1, 4); + int uchar; + if (int.TryParse(digits, System.Globalization.NumberStyles.AllowHexSpecifier, System.Globalization.CultureInfo.InvariantCulture, out uchar)) { + sb.Append((char)uchar); + _offset += 4; + } else { + throw new Exception("Invalid Unicode escape character at offset " + (_offset - 1)); + } + break; + default: + // The escaped character is invalid per json spec + throw new Exception("Invalid Unicode escape character at offset " + (_offset - 1)); + } + } else if( c == '"' ) { + break; + } else { + sb.Append(c); + } + } + + Expect ("\""); + return sb.ToString(); + } + + object ReadNumber () + { + var startOffset = _offset; + + bool isFloat = false; + for (; _offset < _text.Length; _offset++) { + var c = _text [_offset]; + if (c == '.' || c == 'e' || c == 'E') isFloat = true; + if (IsNumberChar (c)) + continue; + else + break; + } + + string numStr = _text.Substring (startOffset, _offset - startOffset); + + if (isFloat) { + float f; + if (float.TryParse (numStr, System.Globalization.NumberStyles.Float, System.Globalization.CultureInfo.InvariantCulture, out f)) { + return f; + } + } else { + int i; + if (int.TryParse (numStr, out i)) { + return i; + } + } + + throw new System.Exception ("Failed to parse number value: "+numStr); + } + + bool TryRead (string textToRead) + { + if (_offset + textToRead.Length > _text.Length) + return false; + + for (int i = 0; i < textToRead.Length; i++) { + if (textToRead [i] != _text [_offset + i]) + return false; + } + + _offset += textToRead.Length; + + return true; + } + + void Expect (string expectedStr) + { + if (!TryRead (expectedStr)) + Expect (false, expectedStr); + } + + void Expect (bool condition, string message = null) + { + if (!condition) { + if (message == null) { + message = "Unexpected token"; + } else { + message = "Expected " + message; + } + message += " at offset " + _offset; + + throw new System.Exception (message); + } + } + + void SkipWhitespace () + { + while (_offset < _text.Length) { + var c = _text [_offset]; + if (c == ' ' || c == '\t' || c == '\n' || c == '\r') + _offset++; + else + break; + } + } + + string _text; + int _offset; + + object _rootObject; + } + + + public class Writer + { + public Writer() + { + _writer = new StringWriter(); + } + + public Writer(Stream stream) + { + _writer = new System.IO.StreamWriter(stream, Encoding.UTF8); + } + + public void WriteObject(Action inner) + { + WriteObjectStart(); + inner(this); + WriteObjectEnd(); + } + + public void WriteObjectStart() + { + StartNewObject(container: true); + _stateStack.Push(new StateElement { type = State.Object }); + _writer.Write("{"); + } + + public void WriteObjectEnd() + { + Assert(state == State.Object); + _writer.Write("}"); + _stateStack.Pop(); + } + + public void WriteProperty(string name, Action inner) + { + WriteProperty(name, inner); + } + + public void WriteProperty(int id, Action inner) + { + WriteProperty(id, inner); + } + + public void WriteProperty(string name, string content) + { + WritePropertyStart(name); + Write(content); + WritePropertyEnd(); + } + + public void WriteProperty(string name, int content) + { + WritePropertyStart(name); + Write(content); + WritePropertyEnd(); + } + + public void WriteProperty(string name, bool content) + { + WritePropertyStart(name); + Write(content); + WritePropertyEnd(); + } + + public void WritePropertyStart(string name) + { + WritePropertyStart(name); + } + + public void WritePropertyStart(int id) + { + WritePropertyStart(id); + } + + public void WritePropertyEnd() + { + Assert(state == State.Property); + Assert(childCount == 1); + _stateStack.Pop(); + } + + public void WritePropertyNameStart() + { + Assert(state == State.Object); + + if (childCount > 0) + _writer.Write(","); + + _writer.Write("\""); + + IncrementChildCount(); + + _stateStack.Push(new StateElement { type = State.Property }); + _stateStack.Push(new StateElement { type = State.PropertyName }); + } + + public void WritePropertyNameEnd() + { + Assert(state == State.PropertyName); + + _writer.Write("\":"); + + // Pop PropertyName, leaving Property state + _stateStack.Pop(); + } + + public void WritePropertyNameInner(string str) + { + Assert(state == State.PropertyName); + _writer.Write(str); + } + + void WritePropertyStart(T name) + { + Assert(state == State.Object); + + if (childCount > 0) + _writer.Write(","); + + _writer.Write("\""); + _writer.Write(name); + _writer.Write("\":"); + + IncrementChildCount(); + + _stateStack.Push(new StateElement { type = State.Property }); + } + + + // allow name to be string or int + void WriteProperty(T name, Action inner) + { + WritePropertyStart(name); + + inner(this); + + WritePropertyEnd(); + } + + public void WriteArrayStart() + { + StartNewObject(container: true); + _stateStack.Push(new StateElement { type = State.Array }); + _writer.Write("["); + } + + public void WriteArrayEnd() + { + Assert(state == State.Array); + _writer.Write("]"); + _stateStack.Pop(); + } + + public void Write(int i) + { + StartNewObject(container: false); + _writer.Write(i); + } + + public void Write(float f) + { + StartNewObject(container: false); + + // TODO: Find an heap-allocation-free way to do this please! + // _writer.Write(formatStr, obj (the float)) requires boxing + // Following implementation seems to work ok but requires creating temporary garbage string. + string floatStr = f.ToString(System.Globalization.CultureInfo.InvariantCulture); + if( floatStr == "Infinity" ) { + _writer.Write("3.4E+38"); // JSON doesn't support, do our best alternative + } else if (floatStr == "-Infinity") { + _writer.Write("-3.4E+38"); // JSON doesn't support, do our best alternative + } else if ( floatStr == "NaN" ) { + _writer.Write("0.0"); // JSON doesn't support, not much we can do + } else { + _writer.Write(floatStr); + if (!floatStr.Contains(".") && !floatStr.Contains("E")) + _writer.Write(".0"); // ensure it gets read back in as a floating point value + } + } + + public void Write(string str, bool escape = true) + { + StartNewObject(container: false); + + _writer.Write("\""); + if (escape) + WriteEscapedString(str); + else + _writer.Write(str); + _writer.Write("\""); + } + + public void Write(bool b) + { + StartNewObject(container: false); + _writer.Write(b ? "true" : "false"); + } + + public void WriteNull() + { + StartNewObject(container: false); + _writer.Write("null"); + } + + public void WriteStringStart() + { + StartNewObject(container: false); + _stateStack.Push(new StateElement { type = State.String }); + _writer.Write("\""); + } + + public void WriteStringEnd() + { + Assert(state == State.String); + _writer.Write("\""); + _stateStack.Pop(); + } + + public void WriteStringInner(string str, bool escape = true) + { + Assert(state == State.String); + if (escape) + WriteEscapedString(str); + else + _writer.Write(str); + } + + void WriteEscapedString(string str) + { + foreach (var c in str) + { + if (c < ' ') + { + // Don't write any control characters except \n and \t + switch (c) + { + case '\n': + _writer.Write("\\n"); + break; + case '\t': + _writer.Write("\\t"); + break; + } + } + else + { + switch (c) + { + case '\\': + case '"': + _writer.Write("\\"); + _writer.Write(c); + break; + default: + _writer.Write(c); + break; + } + } + } + } + + void StartNewObject(bool container) + { + + if (container) + Assert(state == State.None || state == State.Property || state == State.Array); + else + Assert(state == State.Property || state == State.Array); + + if (state == State.Array && childCount > 0) + _writer.Write(","); + + if (state == State.Property) + Assert(childCount == 0); + + if (state == State.Array || state == State.Property) + IncrementChildCount(); + } + + State state + { + get + { + if (_stateStack.Count > 0) return _stateStack.Peek().type; + else return State.None; + } + } + + int childCount + { + get + { + if (_stateStack.Count > 0) return _stateStack.Peek().childCount; + else return 0; + } + } + + void IncrementChildCount() + { + Assert(_stateStack.Count > 0); + var currEl = _stateStack.Pop(); + currEl.childCount++; + _stateStack.Push(currEl); + } + + // Shouldn't hit this assert outside of initial JSON development, + // so it's save to make it debug-only. + [System.Diagnostics.Conditional("DEBUG")] + void Assert(bool condition) + { + if (!condition) + throw new System.Exception("Assert failed while writing JSON"); + } + + public override string ToString() + { + return _writer.ToString(); + } + + enum State + { + None, + Object, + Array, + Property, + PropertyName, + String + }; + + struct StateElement + { + public State type; + public int childCount; + } + + Stack _stateStack = new Stack(); + TextWriter _writer; + } + + + } +} + diff --git a/Assets/Ink/ink-engine-runtime/SimpleJson.cs.meta b/Assets/Ink/ink-engine-runtime/SimpleJson.cs.meta new file mode 100644 index 000000000..9855b689d --- /dev/null +++ b/Assets/Ink/ink-engine-runtime/SimpleJson.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c6355a05044c6ba4e94d75116703416e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Ink/ink-engine-runtime/StatePatch.cs b/Assets/Ink/ink-engine-runtime/StatePatch.cs new file mode 100644 index 000000000..2cc56403a --- /dev/null +++ b/Assets/Ink/ink-engine-runtime/StatePatch.cs @@ -0,0 +1,66 @@ +using System.Collections.Generic; + +namespace Ink.Runtime +{ + public class StatePatch + { + public Dictionary globals { get { return _globals; } } + public HashSet changedVariables { get { return _changedVariables; } } + public Dictionary visitCounts { get { return _visitCounts; } } + public Dictionary turnIndices { get { return _turnIndices; } } + + public StatePatch(StatePatch toCopy) + { + if( toCopy != null ) { + _globals = new Dictionary(toCopy._globals); + _changedVariables = new HashSet(toCopy._changedVariables); + _visitCounts = new Dictionary(toCopy._visitCounts); + _turnIndices = new Dictionary(toCopy._turnIndices); + } else { + _globals = new Dictionary(); + _changedVariables = new HashSet(); + _visitCounts = new Dictionary(); + _turnIndices = new Dictionary(); + } + } + + public bool TryGetGlobal(string name, out Runtime.Object value) + { + return _globals.TryGetValue(name, out value); + } + + public void SetGlobal(string name, Runtime.Object value){ + _globals[name] = value; + } + + public void AddChangedVariable(string name) + { + _changedVariables.Add(name); + } + + public bool TryGetVisitCount(Container container, out int count) + { + return _visitCounts.TryGetValue(container, out count); + } + + public void SetVisitCount(Container container, int count) + { + _visitCounts[container] = count; + } + + public void SetTurnIndex(Container container, int index) + { + _turnIndices[container] = index; + } + + public bool TryGetTurnIndex(Container container, out int index) + { + return _turnIndices.TryGetValue(container, out index); + } + + Dictionary _globals; + HashSet _changedVariables = new HashSet(); + Dictionary _visitCounts = new Dictionary(); + Dictionary _turnIndices = new Dictionary(); + } +} diff --git a/Assets/Ink/ink-engine-runtime/StatePatch.cs.meta b/Assets/Ink/ink-engine-runtime/StatePatch.cs.meta new file mode 100644 index 000000000..4c4fa19a9 --- /dev/null +++ b/Assets/Ink/ink-engine-runtime/StatePatch.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f26c35958c072a440bffd516a609cf86 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Ink/ink-engine-runtime/Story.cs b/Assets/Ink/ink-engine-runtime/Story.cs new file mode 100644 index 000000000..cd9a5cefb --- /dev/null +++ b/Assets/Ink/ink-engine-runtime/Story.cs @@ -0,0 +1,2774 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.IO; +using System.Diagnostics; + +namespace Ink.Runtime +{ + /// + /// A Story is the core class that represents a complete Ink narrative, and + /// manages the evaluation and state of it. + /// + public class Story : Runtime.Object + { + /// + /// The current version of the ink story file format. + /// + public const int inkVersionCurrent = 20; + + // Version numbers are for engine itself and story file, rather + // than the story state save format + // -- old engine, new format: always fail + // -- new engine, old format: possibly cope, based on this number + // When incrementing the version number above, the question you + // should ask yourself is: + // -- Will the engine be able to load an old story file from + // before I made these changes to the engine? + // If possible, you should support it, though it's not as + // critical as loading old save games, since it's an + // in-development problem only. + + /// + /// The minimum legacy version of ink that can be loaded by the current version of the code. + /// + const int inkVersionMinimumCompatible = 18; + + /// + /// The list of Choice objects available at the current point in + /// the Story. This list will be populated as the Story is stepped + /// through with the Continue() method. Once canContinue becomes + /// false, this list will be populated, and is usually + /// (but not always) on the final Continue() step. + /// + public List currentChoices + { + get + { + // Don't include invisible choices for external usage. + var choices = new List(); + foreach (var c in _state.currentChoices) { + if (!c.isInvisibleDefault) { + c.index = choices.Count; + choices.Add (c); + } + } + return choices; + } + } + + /// + /// The latest line of text to be generated from a Continue() call. + /// + public string currentText { + get { + IfAsyncWeCant ("call currentText since it's a work in progress"); + return state.currentText; + } + } + + /// + /// Gets a list of tags as defined with '#' in source that were seen + /// during the latest Continue() call. + /// + public List currentTags { + get { + IfAsyncWeCant ("call currentTags since it's a work in progress"); + return state.currentTags; + } + } + + /// + /// Any errors generated during evaluation of the Story. + /// + public List currentErrors { get { return state.currentErrors; } } + + /// + /// Any warnings generated during evaluation of the Story. + /// + public List currentWarnings { get { return state.currentWarnings; } } + + /// + /// The current flow name if using multi-flow functionality - see SwitchFlow + /// + public string currentFlowName => state.currentFlowName; + + /// + /// Is the default flow currently active? By definition, will also return true if not using multi-flow functionality - see SwitchFlow + /// + public bool currentFlowIsDefaultFlow { get { return state.currentFlowIsDefaultFlow; } } + + /// + /// Names of currently alive flows (not including the default flow) + /// + + public List aliveFlowNames { get { return state.aliveFlowNames; } } + + /// + /// Whether the currentErrors list contains any errors. + /// THIS MAY BE REMOVED - you should be setting an error handler directly + /// using Story.onError. + /// + public bool hasError { get { return state.hasError; } } + + /// + /// Whether the currentWarnings list contains any warnings. + /// + public bool hasWarning { get { return state.hasWarning; } } + + /// + /// The VariablesState object contains all the global variables in the story. + /// However, note that there's more to the state of a Story than just the + /// global variables. This is a convenience accessor to the full state object. + /// + public VariablesState variablesState{ get { return state.variablesState; } } + + public ListDefinitionsOrigin listDefinitions { + get { + return _listDefinitions; + } + } + + /// + /// The entire current state of the story including (but not limited to): + /// + /// * Global variables + /// * Temporary variables + /// * Read/visit and turn counts + /// * The callstack and evaluation stacks + /// * The current threads + /// + /// + public StoryState state { get { return _state; } } + + /// + /// Error handler for all runtime errors in ink - i.e. problems + /// with the source ink itself that are only discovered when playing + /// the story. + /// It's strongly recommended that you assign an error handler to your + /// story instance to avoid getting exceptions for ink errors. + /// + public event Ink.ErrorHandler onError; + + /// + /// Callback for when ContinueInternal is complete + /// + public event Action onDidContinue; + /// + /// Callback for when a choice is about to be executed + /// + public event Action onMakeChoice; + /// + /// Callback for when a function is about to be evaluated + /// + public event Action onEvaluateFunction; + /// + /// Callback for when a function has been evaluated + /// This is necessary because evaluating a function can cause continuing + /// + public event Action onCompleteEvaluateFunction; + /// + /// Callback for when a path string is chosen + /// + public event Action onChoosePathString; + + /// + /// Start recording ink profiling information during calls to Continue on Story. + /// Return a Profiler instance that you can request a report from when you're finished. + /// + public Profiler StartProfiling() { + IfAsyncWeCant ("start profiling"); + _profiler = new Profiler(); + return _profiler; + } + + /// + /// Stop recording ink profiling information during calls to Continue on Story. + /// To generate a report from the profiler, call + /// + public void EndProfiling() { + _profiler = null; + } + + // Warning: When creating a Story using this constructor, you need to + // call ResetState on it before use. Intended for compiler use only. + // For normal use, use the constructor that takes a json string. + public Story (Container contentContainer, List lists = null) + { + _mainContentContainer = contentContainer; + + if (lists != null) + _listDefinitions = new ListDefinitionsOrigin (lists); + + _externals = new Dictionary (); + } + + /// + /// Construct a Story object using a JSON string compiled through inklecate. + /// + public Story(string jsonString) : this((Container)null) + { + Dictionary rootObject = SimpleJson.TextToDictionary (jsonString); + + object versionObj = rootObject ["inkVersion"]; + if (versionObj == null) + throw new System.Exception ("ink version number not found. Are you sure it's a valid .ink.json file?"); + + int formatFromFile = (int)versionObj; + if (formatFromFile > inkVersionCurrent) { + throw new System.Exception ("Version of ink used to build story was newer than the current version of the engine"); + } else if (formatFromFile < inkVersionMinimumCompatible) { + throw new System.Exception ("Version of ink used to build story is too old to be loaded by this version of the engine"); + } else if (formatFromFile != inkVersionCurrent) { + System.Diagnostics.Debug.WriteLine ("WARNING: Version of ink used to build story doesn't match current version of engine. Non-critical, but recommend synchronising."); + } + + var rootToken = rootObject ["root"]; + if (rootToken == null) + throw new System.Exception ("Root node for ink not found. Are you sure it's a valid .ink.json file?"); + + object listDefsObj; + if (rootObject.TryGetValue ("listDefs", out listDefsObj)) { + _listDefinitions = Json.JTokenToListDefinitions (listDefsObj); + } + + _mainContentContainer = Json.JTokenToRuntimeObject (rootToken) as Container; + + ResetState (); + } + + /// + /// The Story itself in JSON representation. + /// + public string ToJson() + { + //return ToJsonOld(); + var writer = new SimpleJson.Writer(); + ToJson(writer); + return writer.ToString(); + } + + /// + /// The Story itself in JSON representation. + /// + public void ToJson(Stream stream) + { + var writer = new SimpleJson.Writer(stream); + ToJson(writer); + } + + void ToJson(SimpleJson.Writer writer) + { + writer.WriteObjectStart(); + + writer.WriteProperty("inkVersion", inkVersionCurrent); + + // Main container content + writer.WriteProperty("root", w => Json.WriteRuntimeContainer(w, _mainContentContainer)); + + // List definitions + if (_listDefinitions != null) { + + writer.WritePropertyStart("listDefs"); + writer.WriteObjectStart(); + + foreach (ListDefinition def in _listDefinitions.lists) + { + writer.WritePropertyStart(def.name); + writer.WriteObjectStart(); + + foreach (var itemToVal in def.items) + { + InkListItem item = itemToVal.Key; + int val = itemToVal.Value; + writer.WriteProperty(item.itemName, val); + } + + writer.WriteObjectEnd(); + writer.WritePropertyEnd(); + } + + writer.WriteObjectEnd(); + writer.WritePropertyEnd(); + } + + writer.WriteObjectEnd(); + } + + /// + /// Reset the Story back to its initial state as it was when it was + /// first constructed. + /// + public void ResetState() + { + // TODO: Could make this possible + IfAsyncWeCant ("ResetState"); + + _state = new StoryState (this); + _state.variablesState.variableChangedEvent += VariableStateDidChangeEvent; + + ResetGlobals (); + } + + void ResetErrors() + { + _state.ResetErrors (); + } + + /// + /// Unwinds the callstack. Useful to reset the Story's evaluation + /// without actually changing any meaningful state, for example if + /// you want to exit a section of story prematurely and tell it to + /// go elsewhere with a call to ChoosePathString(...). + /// Doing so without calling ResetCallstack() could cause unexpected + /// issues if, for example, the Story was in a tunnel already. + /// + public void ResetCallstack() + { + IfAsyncWeCant ("ResetCallstack"); + + _state.ForceEnd (); + } + + void ResetGlobals() + { + if (_mainContentContainer.namedContent.ContainsKey ("global decl")) { + var originalPointer = state.currentPointer; + + ChoosePath (new Path ("global decl"), incrementingTurnIndex: false); + + // Continue, but without validating external bindings, + // since we may be doing this reset at initialisation time. + ContinueInternal (); + + state.currentPointer = originalPointer; + } + + state.variablesState.SnapshotDefaultGlobals (); + } + + public void SwitchFlow(string flowName) + { + IfAsyncWeCant("switch flow"); + if (_asyncSaving) throw new System.Exception("Story is already in background saving mode, can't switch flow to "+flowName); + + state.SwitchFlow_Internal(flowName); + } + + public void RemoveFlow(string flowName) + { + state.RemoveFlow_Internal(flowName); + } + + public void SwitchToDefaultFlow() + { + state.SwitchToDefaultFlow_Internal(); + } + + + /// + /// Continue the story for one line of content, if possible. + /// If you're not sure if there's more content available, for example if you + /// want to check whether you're at a choice point or at the end of the story, + /// you should call canContinue before calling this function. + /// + /// The line of text content. + public string Continue() + { + ContinueAsync(0); + return currentText; + } + + + /// + /// Check whether more content is available if you were to call Continue() - i.e. + /// are we mid story rather than at a choice point or at the end. + /// + /// true if it's possible to call Continue(). + public bool canContinue { + get { + return state.canContinue; + } + } + + /// + /// If ContinueAsync was called (with milliseconds limit > 0) then this property + /// will return false if the ink evaluation isn't yet finished, and you need to call + /// it again in order for the Continue to fully complete. + /// + public bool asyncContinueComplete { + get { + return !_asyncContinueActive; + } + } + + /// + /// An "asnychronous" version of Continue that only partially evaluates the ink, + /// with a budget of a certain time limit. It will exit ink evaluation early if + /// the evaluation isn't complete within the time limit, with the + /// asyncContinueComplete property being false. + /// This is useful if ink evaluation takes a long time, and you want to distribute + /// it over multiple game frames for smoother animation. + /// If you pass a limit of zero, then it will fully evaluate the ink in the same + /// way as calling Continue (and in fact, this exactly what Continue does internally). + /// + public void ContinueAsync (float millisecsLimitAsync) + { + if( !_hasValidatedExternals ) + ValidateExternalBindings (); + + ContinueInternal (millisecsLimitAsync); + } + + void ContinueInternal (float millisecsLimitAsync = 0) + { + if( _profiler != null ) + _profiler.PreContinue(); + + var isAsyncTimeLimited = millisecsLimitAsync > 0; + + _recursiveContinueCount++; + + // Doing either: + // - full run through non-async (so not active and don't want to be) + // - Starting async run-through + if (!_asyncContinueActive) { + _asyncContinueActive = isAsyncTimeLimited; + + if (!canContinue) { + throw new Exception ("Can't continue - should check canContinue before calling Continue"); + } + + _state.didSafeExit = false; + _state.ResetOutput (); + + // It's possible for ink to call game to call ink to call game etc + // In this case, we only want to batch observe variable changes + // for the outermost call. + if (_recursiveContinueCount == 1) + _state.variablesState.batchObservingVariableChanges = true; + } + + // Start timing + var durationStopwatch = new Stopwatch (); + durationStopwatch.Start (); + + bool outputStreamEndsInNewline = false; + _sawLookaheadUnsafeFunctionAfterNewline = false; + do { + + try { + outputStreamEndsInNewline = ContinueSingleStep (); + } catch(StoryException e) { + AddError (e.Message, useEndLineNumber:e.useEndLineNumber); + break; + } + + if (outputStreamEndsInNewline) + break; + + // Run out of async time? + if (_asyncContinueActive && durationStopwatch.ElapsedMilliseconds > millisecsLimitAsync) { + break; + } + + } while(canContinue); + + durationStopwatch.Stop (); + + // 4 outcomes: + // - got newline (so finished this line of text) + // - can't continue (e.g. choices or ending) + // - ran out of time during evaluation + // - error + // + // Successfully finished evaluation in time (or in error) + if (outputStreamEndsInNewline || !canContinue) { + + // Need to rewind, due to evaluating further than we should? + if( _stateSnapshotAtLastNewline != null ) { + RestoreStateSnapshot (); + } + + // Finished a section of content / reached a choice point? + if( !canContinue ) { + if (state.callStack.canPopThread) + AddError ("Thread available to pop, threads should always be flat by the end of evaluation?"); + + if (state.generatedChoices.Count == 0 && !state.didSafeExit && _temporaryEvaluationContainer == null) { + if (state.callStack.CanPop (PushPopType.Tunnel)) + AddError ("unexpectedly reached end of content. Do you need a '->->' to return from a tunnel?"); + else if (state.callStack.CanPop (PushPopType.Function)) + AddError ("unexpectedly reached end of content. Do you need a '~ return'?"); + else if (!state.callStack.canPop) + AddError ("ran out of content. Do you need a '-> DONE' or '-> END'?"); + else + AddError ("unexpectedly reached end of content for unknown reason. Please debug compiler!"); + } + } + + state.didSafeExit = false; + _sawLookaheadUnsafeFunctionAfterNewline = false; + + if (_recursiveContinueCount == 1) + _state.variablesState.batchObservingVariableChanges = false; + + _asyncContinueActive = false; + if(onDidContinue != null) onDidContinue(); + } + + _recursiveContinueCount--; + + if( _profiler != null ) + _profiler.PostContinue(); + + // Report any errors that occured during evaluation. + // This may either have been StoryExceptions that were thrown + // and caught during evaluation, or directly added with AddError. + if( state.hasError || state.hasWarning ) { + if( onError != null ) { + if( state.hasError ) { + foreach(var err in state.currentErrors) { + onError(err, ErrorType.Error); + } + } + if( state.hasWarning ) { + foreach(var err in state.currentWarnings) { + onError(err, ErrorType.Warning); + } + } + ResetErrors(); + } + + // Throw an exception since there's no error handler + else { + var sb = new StringBuilder(); + sb.Append("Ink had "); + if( state.hasError ) { + sb.Append(state.currentErrors.Count); + sb.Append(state.currentErrors.Count == 1 ? " error" : " errors"); + if( state.hasWarning ) sb.Append(" and "); + } + if( state.hasWarning ) { + sb.Append(state.currentWarnings.Count); + sb.Append(state.currentWarnings.Count == 1 ? " warning" : " warnings"); + } + sb.Append(". It is strongly suggested that you assign an error handler to story.onError. The first issue was: "); + sb.Append(state.hasError ? state.currentErrors[0] : state.currentWarnings[0]); + + // If you get this exception, please assign an error handler to your story. + // If you're using Unity, you can do something like this when you create + // your story: + // + // var story = new Ink.Runtime.Story(jsonTxt); + // story.onError = (errorMessage, errorType) => { + // if( errorType == ErrorType.Warning ) + // Debug.LogWarning(errorMessage); + // else + // Debug.LogError(errorMessage); + // }; + // + // + throw new StoryException(sb.ToString()); + } + } + } + + bool ContinueSingleStep () + { + if (_profiler != null) + _profiler.PreStep (); + + // Run main step function (walks through content) + Step (); + + if (_profiler != null) + _profiler.PostStep (); + + // Run out of content and we have a default invisible choice that we can follow? + if (!canContinue && !state.callStack.elementIsEvaluateFromGame) { + TryFollowDefaultInvisibleChoice (); + } + + if (_profiler != null) + _profiler.PreSnapshot (); + + // Don't save/rewind during string evaluation, which is e.g. used for choices + if (!state.inStringEvaluation) { + + // We previously found a newline, but were we just double checking that + // it wouldn't immediately be removed by glue? + if (_stateSnapshotAtLastNewline != null) { + + // Has proper text or a tag been added? Then we know that the newline + // that was previously added is definitely the end of the line. + var change = CalculateNewlineOutputStateChange ( + _stateSnapshotAtLastNewline.currentText, state.currentText, + _stateSnapshotAtLastNewline.currentTags.Count, state.currentTags.Count + ); + + // The last time we saw a newline, it was definitely the end of the line, so we + // want to rewind to that point. + if (change == OutputStateChange.ExtendedBeyondNewline || _sawLookaheadUnsafeFunctionAfterNewline) { + RestoreStateSnapshot (); + + // Hit a newline for sure, we're done + return true; + } + + // Newline that previously existed is no longer valid - e.g. + // glue was encounted that caused it to be removed. + else if (change == OutputStateChange.NewlineRemoved) { + DiscardSnapshot(); + } + } + + // Current content ends in a newline - approaching end of our evaluation + if (state.outputStreamEndsInNewline) { + + // If we can continue evaluation for a bit: + // Create a snapshot in case we need to rewind. + // We're going to continue stepping in case we see glue or some + // non-text content such as choices. + if (canContinue) { + + // Don't bother to record the state beyond the current newline. + // e.g.: + // Hello world\n // record state at the end of here + // ~ complexCalculation() // don't actually need this unless it generates text + if (_stateSnapshotAtLastNewline == null) + StateSnapshot (); + } + + // Can't continue, so we're about to exit - make sure we + // don't have an old state hanging around. + else { + DiscardSnapshot(); + } + + } + + } + + if (_profiler != null) + _profiler.PostSnapshot (); + + // outputStreamEndsInNewline = false + return false; + } + + + + + // Assumption: prevText is the snapshot where we saw a newline, and we're checking whether we're really done + // with that line. Therefore prevText will definitely end in a newline. + // + // We take tags into account too, so that a tag following a content line: + // Content + // # tag + // ... doesn't cause the tag to be wrongly associated with the content above. + enum OutputStateChange + { + NoChange, + ExtendedBeyondNewline, + NewlineRemoved + } + OutputStateChange CalculateNewlineOutputStateChange (string prevText, string currText, int prevTagCount, int currTagCount) + { + // Simple case: nothing's changed, and we still have a newline + // at the end of the current content + var newlineStillExists = currText.Length >= prevText.Length && currText [prevText.Length - 1] == '\n'; + if (prevTagCount == currTagCount && prevText.Length == currText.Length + && newlineStillExists) + return OutputStateChange.NoChange; + + // Old newline has been removed, it wasn't the end of the line after all + if (!newlineStillExists) { + return OutputStateChange.NewlineRemoved; + } + + // Tag added - definitely the start of a new line + if (currTagCount > prevTagCount) + return OutputStateChange.ExtendedBeyondNewline; + + // There must be new content - check whether it's just whitespace + for (int i = prevText.Length; i < currText.Length; i++) { + var c = currText [i]; + if (c != ' ' && c != '\t') { + return OutputStateChange.ExtendedBeyondNewline; + } + } + + // There's new text but it's just spaces and tabs, so there's still the potential + // for glue to kill the newline. + return OutputStateChange.NoChange; + } + + + /// + /// Continue the story until the next choice point or until it runs out of content. + /// This is as opposed to the Continue() method which only evaluates one line of + /// output at a time. + /// + /// The resulting text evaluated by the ink engine, concatenated together. + public string ContinueMaximally() + { + IfAsyncWeCant ("ContinueMaximally"); + + var sb = new StringBuilder (); + + while (canContinue) { + sb.Append (Continue ()); + } + + return sb.ToString (); + } + + public SearchResult ContentAtPath(Path path) + { + return mainContentContainer.ContentAtPath (path); + } + + public Runtime.Container KnotContainerWithName (string name) + { + INamedContent namedContainer; + if (mainContentContainer.namedContent.TryGetValue (name, out namedContainer)) + return namedContainer as Container; + else + return null; + } + + public Pointer PointerAtPath (Path path) + { + if (path.length == 0) + return Pointer.Null; + + var p = new Pointer (); + + int pathLengthToUse = path.length; + + SearchResult result; + if( path.lastComponent.isIndex ) { + pathLengthToUse = path.length - 1; + result = mainContentContainer.ContentAtPath (path, partialPathLength:pathLengthToUse); + p.container = result.container; + p.index = path.lastComponent.index; + } else { + result = mainContentContainer.ContentAtPath (path); + p.container = result.container; + p.index = -1; + } + + if (result.obj == null || result.obj == mainContentContainer && pathLengthToUse > 0) + Error ("Failed to find content at path '" + path + "', and no approximation of it was possible."); + else if (result.approximate) + Warning ("Failed to find content at path '" + path + "', so it was approximated to: '"+result.obj.path+"'."); + + return p; + } + + // Maximum snapshot stack: + // - stateSnapshotDuringSave -- not retained, but returned to game code + // - _stateSnapshotAtLastNewline (has older patch) + // - _state (current, being patched) + + void StateSnapshot() + { + _stateSnapshotAtLastNewline = _state; + _state = _state.CopyAndStartPatching(); + } + + void RestoreStateSnapshot() + { + // Patched state had temporarily hijacked our + // VariablesState and set its own callstack on it, + // so we need to restore that. + // If we're in the middle of saving, we may also + // need to give the VariablesState the old patch. + _stateSnapshotAtLastNewline.RestoreAfterPatch(); + + _state = _stateSnapshotAtLastNewline; + _stateSnapshotAtLastNewline = null; + + // If save completed while the above snapshot was + // active, we need to apply any changes made since + // the save was started but before the snapshot was made. + if( !_asyncSaving ) { + _state.ApplyAnyPatch(); + } + } + + void DiscardSnapshot() + { + // Normally we want to integrate the patch + // into the main global/counts dictionaries. + // However, if we're in the middle of async + // saving, we simply stay in a "patching" state, + // albeit with the newer cloned patch. + if( !_asyncSaving ) + _state.ApplyAnyPatch(); + + // No longer need the snapshot. + _stateSnapshotAtLastNewline = null; + } + + /// + /// Advanced usage! + /// If you have a large story, and saving state to JSON takes too long for your + /// framerate, you can temporarily freeze a copy of the state for saving on + /// a separate thread. Internally, the engine maintains a "diff patch". + /// When you've finished saving your state, call BackgroundSaveComplete() + /// and that diff patch will be applied, allowing the story to continue + /// in its usual mode. + /// + /// The state for background thread save. + public StoryState CopyStateForBackgroundThreadSave() + { + IfAsyncWeCant("start saving on a background thread"); + if (_asyncSaving) throw new System.Exception("Story is already in background saving mode, can't call CopyStateForBackgroundThreadSave again!"); + var stateToSave = _state; + _state = _state.CopyAndStartPatching(); + _asyncSaving = true; + return stateToSave; + } + + /// + /// See CopyStateForBackgroundThreadSave. This method releases the + /// "frozen" save state, applying its patch that it was using internally. + /// + public void BackgroundSaveComplete() + { + // CopyStateForBackgroundThreadSave must be called outside + // of any async ink evaluation, since otherwise you'd be saving + // during an intermediate state. + // However, it's possible to *complete* the save in the middle of + // a glue-lookahead when there's a state stored in _stateSnapshotAtLastNewline. + // This state will have its own patch that is newer than the save patch. + // We hold off on the final apply until the glue-lookahead is finished. + // In that case, the apply is always done, it's just that it may + // apply the looked-ahead changes OR it may simply apply the changes + // made during the save process to the old _stateSnapshotAtLastNewline state. + if ( _stateSnapshotAtLastNewline == null ) { + _state.ApplyAnyPatch(); + } + + _asyncSaving = false; + } + + + + void Step () + { + bool shouldAddToStream = true; + + // Get current content + var pointer = state.currentPointer; + if (pointer.isNull) { + return; + } + + // Step directly to the first element of content in a container (if necessary) + Container containerToEnter = pointer.Resolve () as Container; + while(containerToEnter) { + + // Mark container as being entered + VisitContainer (containerToEnter, atStart:true); + + // No content? the most we can do is step past it + if (containerToEnter.content.Count == 0) + break; + + + pointer = Pointer.StartOf (containerToEnter); + containerToEnter = pointer.Resolve() as Container; + } + state.currentPointer = pointer; + + if( _profiler != null ) { + _profiler.Step(state.callStack); + } + + // Is the current content object: + // - Normal content + // - Or a logic/flow statement - if so, do it + // Stop flow if we hit a stack pop when we're unable to pop (e.g. return/done statement in knot + // that was diverted to rather than called as a function) + var currentContentObj = pointer.Resolve (); + bool isLogicOrFlowControl = PerformLogicAndFlowControl (currentContentObj); + + // Has flow been forced to end by flow control above? + if (state.currentPointer.isNull) { + return; + } + + if (isLogicOrFlowControl) { + shouldAddToStream = false; + } + + // Choice with condition? + var choicePoint = currentContentObj as ChoicePoint; + if (choicePoint) { + var choice = ProcessChoice (choicePoint); + if (choice) { + state.generatedChoices.Add (choice); + } + + currentContentObj = null; + shouldAddToStream = false; + } + + // If the container has no content, then it will be + // the "content" itself, but we skip over it. + if (currentContentObj is Container) { + shouldAddToStream = false; + } + + // Content to add to evaluation stack or the output stream + if (shouldAddToStream) { + + // If we're pushing a variable pointer onto the evaluation stack, ensure that it's specific + // to our current (possibly temporary) context index. And make a copy of the pointer + // so that we're not editing the original runtime object. + var varPointer = currentContentObj as VariablePointerValue; + if (varPointer && varPointer.contextIndex == -1) { + + // Create new object so we're not overwriting the story's own data + var contextIdx = state.callStack.ContextForVariableNamed(varPointer.variableName); + currentContentObj = new VariablePointerValue (varPointer.variableName, contextIdx); + } + + // Expression evaluation content + if (state.inExpressionEvaluation) { + state.PushEvaluationStack (currentContentObj); + } + // Output stream content (i.e. not expression evaluation) + else { + state.PushToOutputStream (currentContentObj); + } + } + + // Increment the content pointer, following diverts if necessary + NextContent (); + + // Starting a thread should be done after the increment to the content pointer, + // so that when returning from the thread, it returns to the content after this instruction. + var controlCmd = currentContentObj as ControlCommand; + if (controlCmd && controlCmd.commandType == ControlCommand.CommandType.StartThread) { + state.callStack.PushThread (); + } + } + + // Mark a container as having been visited + void VisitContainer(Container container, bool atStart) + { + if ( !container.countingAtStartOnly || atStart ) { + if( container.visitsShouldBeCounted ) + state.IncrementVisitCountForContainer (container); + + if (container.turnIndexShouldBeCounted) + state.RecordTurnIndexVisitToContainer (container); + } + } + + List _prevContainers = new List(); + void VisitChangedContainersDueToDivert() + { + var previousPointer = state.previousPointer; + var pointer = state.currentPointer; + + // Unless we're pointing *directly* at a piece of content, we don't do + // counting here. Otherwise, the main stepping function will do the counting. + if (pointer.isNull || pointer.index == -1) + return; + + // First, find the previously open set of containers + _prevContainers.Clear(); + if (!previousPointer.isNull) { + Container prevAncestor = previousPointer.Resolve() as Container ?? previousPointer.container as Container; + while (prevAncestor) { + _prevContainers.Add (prevAncestor); + prevAncestor = prevAncestor.parent as Container; + } + } + + // If the new object is a container itself, it will be visited automatically at the next actual + // content step. However, we need to walk up the new ancestry to see if there are more new containers + Runtime.Object currentChildOfContainer = pointer.Resolve(); + + // Invalid pointer? May happen if attemptingto + if (currentChildOfContainer == null) return; + + Container currentContainerAncestor = currentChildOfContainer.parent as Container; + + bool allChildrenEnteredAtStart = true; + while (currentContainerAncestor && (!_prevContainers.Contains(currentContainerAncestor) || currentContainerAncestor.countingAtStartOnly)) { + + // Check whether this ancestor container is being entered at the start, + // by checking whether the child object is the first. + bool enteringAtStart = currentContainerAncestor.content.Count > 0 + && currentChildOfContainer == currentContainerAncestor.content [0] + && allChildrenEnteredAtStart; + + // Don't count it as entering at start if we're entering random somewhere within + // a container B that happens to be nested at index 0 of container A. It only counts + // if we're diverting directly to the first leaf node. + if (!enteringAtStart) + allChildrenEnteredAtStart = false; + + // Mark a visit to this container + VisitContainer (currentContainerAncestor, enteringAtStart); + + currentChildOfContainer = currentContainerAncestor; + currentContainerAncestor = currentContainerAncestor.parent as Container; + } + } + + Choice ProcessChoice(ChoicePoint choicePoint) + { + bool showChoice = true; + + // Don't create choice if choice point doesn't pass conditional + if (choicePoint.hasCondition) { + var conditionValue = state.PopEvaluationStack (); + if (!IsTruthy (conditionValue)) { + showChoice = false; + } + } + + string startText = ""; + string choiceOnlyText = ""; + + if (choicePoint.hasChoiceOnlyContent) { + var choiceOnlyStrVal = state.PopEvaluationStack () as StringValue; + choiceOnlyText = choiceOnlyStrVal.value; + } + + if (choicePoint.hasStartContent) { + var startStrVal = state.PopEvaluationStack () as StringValue; + startText = startStrVal.value; + } + + // Don't create choice if player has already read this content + if (choicePoint.onceOnly) { + var visitCount = state.VisitCountForContainer (choicePoint.choiceTarget); + if (visitCount > 0) { + showChoice = false; + } + } + + // We go through the full process of creating the choice above so + // that we consume the content for it, since otherwise it'll + // be shown on the output stream. + if (!showChoice) { + return null; + } + + var choice = new Choice (); + choice.targetPath = choicePoint.pathOnChoice; + choice.sourcePath = choicePoint.path.ToString (); + choice.isInvisibleDefault = choicePoint.isInvisibleDefault; + + // We need to capture the state of the callstack at the point where + // the choice was generated, since after the generation of this choice + // we may go on to pop out from a tunnel (possible if the choice was + // wrapped in a conditional), or we may pop out from a thread, + // at which point that thread is discarded. + // Fork clones the thread, gives it a new ID, but without affecting + // the thread stack itself. + choice.threadAtGeneration = state.callStack.ForkThread(); + + // Set final text for the choice + choice.text = (startText + choiceOnlyText).Trim(' ', '\t'); + + return choice; + } + + // Does the expression result represented by this object evaluate to true? + // e.g. is it a Number that's not equal to 1? + bool IsTruthy(Runtime.Object obj) + { + bool truthy = false; + if (obj is Value) { + var val = (Value)obj; + + if (val is DivertTargetValue) { + var divTarget = (DivertTargetValue)val; + Error ("Shouldn't use a divert target (to " + divTarget.targetPath + ") as a conditional value. Did you intend a function call 'likeThis()' or a read count check 'likeThis'? (no arrows)"); + return false; + } + + return val.isTruthy; + } + return truthy; + } + + /// + /// Checks whether contentObj is a control or flow object rather than a piece of content, + /// and performs the required command if necessary. + /// + /// true if object was logic or flow control, false if it's normal content. + /// Content object. + bool PerformLogicAndFlowControl(Runtime.Object contentObj) + { + if( contentObj == null ) { + return false; + } + + // Divert + if (contentObj is Divert) { + + Divert currentDivert = (Divert)contentObj; + + if (currentDivert.isConditional) { + var conditionValue = state.PopEvaluationStack (); + + // False conditional? Cancel divert + if (!IsTruthy (conditionValue)) + return true; + } + + if (currentDivert.hasVariableTarget) { + var varName = currentDivert.variableDivertName; + + var varContents = state.variablesState.GetVariableWithName (varName); + + if (varContents == null) { + Error ("Tried to divert using a target from a variable that could not be found (" + varName + ")"); + } + else if (!(varContents is DivertTargetValue)) { + + var intContent = varContents as IntValue; + + string errorMessage = "Tried to divert to a target from a variable, but the variable (" + varName + ") didn't contain a divert target, it "; + if (intContent && intContent.value == 0) { + errorMessage += "was empty/null (the value 0)."; + } else { + errorMessage += "contained '" + varContents + "'."; + } + + Error (errorMessage); + } + + var target = (DivertTargetValue)varContents; + state.divertedPointer = PointerAtPath(target.targetPath); + + } else if (currentDivert.isExternal) { + CallExternalFunction (currentDivert.targetPathString, currentDivert.externalArgs); + return true; + } else { + state.divertedPointer = currentDivert.targetPointer; + } + + if (currentDivert.pushesToStack) { + state.callStack.Push ( + currentDivert.stackPushType, + outputStreamLengthWithPushed:state.outputStream.Count + ); + } + + if (state.divertedPointer.isNull && !currentDivert.isExternal) { + + // Human readable name available - runtime divert is part of a hard-written divert that to missing content + if (currentDivert && currentDivert.debugMetadata.sourceName != null) { + Error ("Divert target doesn't exist: " + currentDivert.debugMetadata.sourceName); + } else { + Error ("Divert resolution failed: " + currentDivert); + } + } + + return true; + } + + // Start/end an expression evaluation? Or print out the result? + else if( contentObj is ControlCommand ) { + var evalCommand = (ControlCommand) contentObj; + + switch (evalCommand.commandType) { + + case ControlCommand.CommandType.EvalStart: + Assert (state.inExpressionEvaluation == false, "Already in expression evaluation?"); + state.inExpressionEvaluation = true; + break; + + case ControlCommand.CommandType.EvalEnd: + Assert (state.inExpressionEvaluation == true, "Not in expression evaluation mode"); + state.inExpressionEvaluation = false; + break; + + case ControlCommand.CommandType.EvalOutput: + + // If the expression turned out to be empty, there may not be anything on the stack + if (state.evaluationStack.Count > 0) { + + var output = state.PopEvaluationStack (); + + // Functions may evaluate to Void, in which case we skip output + if (!(output is Void)) { + // TODO: Should we really always blanket convert to string? + // It would be okay to have numbers in the output stream the + // only problem is when exporting text for viewing, it skips over numbers etc. + var text = new StringValue (output.ToString ()); + + state.PushToOutputStream (text); + } + + } + break; + + case ControlCommand.CommandType.NoOp: + break; + + case ControlCommand.CommandType.Duplicate: + state.PushEvaluationStack (state.PeekEvaluationStack ()); + break; + + case ControlCommand.CommandType.PopEvaluatedValue: + state.PopEvaluationStack (); + break; + + case ControlCommand.CommandType.PopFunction: + case ControlCommand.CommandType.PopTunnel: + + var popType = evalCommand.commandType == ControlCommand.CommandType.PopFunction ? + PushPopType.Function : PushPopType.Tunnel; + + // Tunnel onwards is allowed to specify an optional override + // divert to go to immediately after returning: ->-> target + DivertTargetValue overrideTunnelReturnTarget = null; + if (popType == PushPopType.Tunnel) { + var popped = state.PopEvaluationStack (); + overrideTunnelReturnTarget = popped as DivertTargetValue; + if (overrideTunnelReturnTarget == null) { + Assert (popped is Void, "Expected void if ->-> doesn't override target"); + } + } + + if (state.TryExitFunctionEvaluationFromGame ()) { + break; + } + else if (state.callStack.currentElement.type != popType || !state.callStack.canPop) { + + var names = new Dictionary (); + names [PushPopType.Function] = "function return statement (~ return)"; + names [PushPopType.Tunnel] = "tunnel onwards statement (->->)"; + + string expected = names [state.callStack.currentElement.type]; + if (!state.callStack.canPop) { + expected = "end of flow (-> END or choice)"; + } + + var errorMsg = string.Format ("Found {0}, when expected {1}", names [popType], expected); + + Error (errorMsg); + } + + else { + state.PopCallstack (); + + // Does tunnel onwards override by diverting to a new ->-> target? + if( overrideTunnelReturnTarget ) + state.divertedPointer = PointerAtPath (overrideTunnelReturnTarget.targetPath); + } + + break; + + case ControlCommand.CommandType.BeginString: + state.PushToOutputStream (evalCommand); + + Assert (state.inExpressionEvaluation == true, "Expected to be in an expression when evaluating a string"); + state.inExpressionEvaluation = false; + break; + + case ControlCommand.CommandType.EndString: + + // Since we're iterating backward through the content, + // build a stack so that when we build the string, + // it's in the right order + var contentStackForString = new Stack (); + + int outputCountConsumed = 0; + for (int i = state.outputStream.Count - 1; i >= 0; --i) { + var obj = state.outputStream [i]; + + outputCountConsumed++; + + var command = obj as ControlCommand; + if (command != null && command.commandType == ControlCommand.CommandType.BeginString) { + break; + } + + if( obj is StringValue ) + contentStackForString.Push (obj); + } + + // Consume the content that was produced for this string + state.PopFromOutputStream (outputCountConsumed); + + // Build string out of the content we collected + var sb = new StringBuilder (); + foreach (var c in contentStackForString) { + sb.Append (c.ToString ()); + } + + // Return to expression evaluation (from content mode) + state.inExpressionEvaluation = true; + state.PushEvaluationStack (new StringValue (sb.ToString ())); + break; + + case ControlCommand.CommandType.ChoiceCount: + var choiceCount = state.generatedChoices.Count; + state.PushEvaluationStack (new Runtime.IntValue (choiceCount)); + break; + + case ControlCommand.CommandType.Turns: + state.PushEvaluationStack (new IntValue (state.currentTurnIndex+1)); + break; + + case ControlCommand.CommandType.TurnsSince: + case ControlCommand.CommandType.ReadCount: + var target = state.PopEvaluationStack(); + if( !(target is DivertTargetValue) ) { + string extraNote = ""; + if( target is IntValue ) + extraNote = ". Did you accidentally pass a read count ('knot_name') instead of a target ('-> knot_name')?"; + Error("TURNS_SINCE expected a divert target (knot, stitch, label name), but saw "+target+extraNote); + break; + } + + var divertTarget = target as DivertTargetValue; + var container = ContentAtPath (divertTarget.targetPath).correctObj as Container; + + int eitherCount; + if (container != null) { + if (evalCommand.commandType == ControlCommand.CommandType.TurnsSince) + eitherCount = state.TurnsSinceForContainer (container); + else + eitherCount = state.VisitCountForContainer (container); + } else { + if (evalCommand.commandType == ControlCommand.CommandType.TurnsSince) + eitherCount = -1; // turn count, default to never/unknown + else + eitherCount = 0; // visit count, assume 0 to default to allowing entry + + Warning ("Failed to find container for " + evalCommand.ToString () + " lookup at " + divertTarget.targetPath.ToString ()); + } + + state.PushEvaluationStack (new IntValue (eitherCount)); + break; + + + case ControlCommand.CommandType.Random: { + var maxInt = state.PopEvaluationStack () as IntValue; + var minInt = state.PopEvaluationStack () as IntValue; + + if (minInt == null) + Error ("Invalid value for minimum parameter of RANDOM(min, max)"); + + if (maxInt == null) + Error ("Invalid value for maximum parameter of RANDOM(min, max)"); + + // +1 because it's inclusive of min and max, for e.g. RANDOM(1,6) for a dice roll. + int randomRange; + try { + randomRange = checked(maxInt.value - minInt.value + 1); + } catch (System.OverflowException) { + randomRange = int.MaxValue; + Error("RANDOM was called with a range that exceeds the size that ink numbers can use."); + } + if (randomRange <= 0) + Error ("RANDOM was called with minimum as " + minInt.value + " and maximum as " + maxInt.value + ". The maximum must be larger"); + + var resultSeed = state.storySeed + state.previousRandom; + var random = new Random (resultSeed); + + var nextRandom = random.Next (); + var chosenValue = (nextRandom % randomRange) + minInt.value; + state.PushEvaluationStack (new IntValue (chosenValue)); + + // Next random number (rather than keeping the Random object around) + state.previousRandom = nextRandom; + break; + } + + case ControlCommand.CommandType.SeedRandom: + var seed = state.PopEvaluationStack () as IntValue; + if (seed == null) + Error ("Invalid value passed to SEED_RANDOM"); + + // Story seed affects both RANDOM and shuffle behaviour + state.storySeed = seed.value; + state.previousRandom = 0; + + // SEED_RANDOM returns nothing. + state.PushEvaluationStack (new Runtime.Void ()); + break; + + case ControlCommand.CommandType.VisitIndex: + var count = state.VisitCountForContainer(state.currentPointer.container) - 1; // index not count + state.PushEvaluationStack (new IntValue (count)); + break; + + case ControlCommand.CommandType.SequenceShuffleIndex: + var shuffleIndex = NextSequenceShuffleIndex (); + state.PushEvaluationStack (new IntValue (shuffleIndex)); + break; + + case ControlCommand.CommandType.StartThread: + // Handled in main step function + break; + + case ControlCommand.CommandType.Done: + + // We may exist in the context of the initial + // act of creating the thread, or in the context of + // evaluating the content. + if (state.callStack.canPopThread) { + state.callStack.PopThread (); + } + + // In normal flow - allow safe exit without warning + else { + state.didSafeExit = true; + + // Stop flow in current thread + state.currentPointer = Pointer.Null; + } + + break; + + // Force flow to end completely + case ControlCommand.CommandType.End: + state.ForceEnd (); + break; + + case ControlCommand.CommandType.ListFromInt: + var intVal = state.PopEvaluationStack () as IntValue; + var listNameVal = state.PopEvaluationStack () as StringValue; + + if (intVal == null) { + throw new StoryException ("Passed non-integer when creating a list element from a numerical value."); + } + + ListValue generatedListValue = null; + + ListDefinition foundListDef; + if (listDefinitions.TryListGetDefinition (listNameVal.value, out foundListDef)) { + InkListItem foundItem; + if (foundListDef.TryGetItemWithValue (intVal.value, out foundItem)) { + generatedListValue = new ListValue (foundItem, intVal.value); + } + } else { + throw new StoryException ("Failed to find LIST called " + listNameVal.value); + } + + if (generatedListValue == null) + generatedListValue = new ListValue (); + + state.PushEvaluationStack (generatedListValue); + break; + + case ControlCommand.CommandType.ListRange: { + var max = state.PopEvaluationStack () as Value; + var min = state.PopEvaluationStack () as Value; + + var targetList = state.PopEvaluationStack () as ListValue; + + if (targetList == null || min == null || max == null) + throw new StoryException ("Expected list, minimum and maximum for LIST_RANGE"); + + var result = targetList.value.ListWithSubRange(min.valueObject, max.valueObject); + + state.PushEvaluationStack (new ListValue(result)); + break; + } + + case ControlCommand.CommandType.ListRandom: { + + var listVal = state.PopEvaluationStack () as ListValue; + if (listVal == null) + throw new StoryException ("Expected list for LIST_RANDOM"); + + var list = listVal.value; + + InkList newList = null; + + // List was empty: return empty list + if (list.Count == 0) { + newList = new InkList (); + } + + // Non-empty source list + else { + // Generate a random index for the element to take + var resultSeed = state.storySeed + state.previousRandom; + var random = new Random (resultSeed); + + var nextRandom = random.Next (); + var listItemIndex = nextRandom % list.Count; + + // Iterate through to get the random element + var listEnumerator = list.GetEnumerator (); + for (int i = 0; i <= listItemIndex; i++) { + listEnumerator.MoveNext (); + } + var randomItem = listEnumerator.Current; + + // Origin list is simply the origin of the one element + newList = new InkList (randomItem.Key.originName, this); + newList.Add (randomItem.Key, randomItem.Value); + + state.previousRandom = nextRandom; + } + + state.PushEvaluationStack (new ListValue(newList)); + break; + } + + default: + Error ("unhandled ControlCommand: " + evalCommand); + break; + } + + return true; + } + + // Variable assignment + else if( contentObj is VariableAssignment ) { + var varAss = (VariableAssignment) contentObj; + var assignedVal = state.PopEvaluationStack(); + + // When in temporary evaluation, don't create new variables purely within + // the temporary context, but attempt to create them globally + //var prioritiseHigherInCallStack = _temporaryEvaluationContainer != null; + + state.variablesState.Assign (varAss, assignedVal); + + return true; + } + + // Variable reference + else if( contentObj is VariableReference ) { + var varRef = (VariableReference)contentObj; + Runtime.Object foundValue = null; + + + // Explicit read count value + if (varRef.pathForCount != null) { + + var container = varRef.containerForCount; + int count = state.VisitCountForContainer (container); + foundValue = new IntValue (count); + } + + // Normal variable reference + else { + + foundValue = state.variablesState.GetVariableWithName (varRef.name); + + if (foundValue == null) { + Warning ("Variable not found: '" + varRef.name + "'. Using default value of 0 (false). This can happen with temporary variables if the declaration hasn't yet been hit. Globals are always given a default value on load if a value doesn't exist in the save state."); + foundValue = new IntValue (0); + } + } + + state.PushEvaluationStack (foundValue); + + return true; + } + + // Native function call + else if (contentObj is NativeFunctionCall) { + var func = (NativeFunctionCall)contentObj; + var funcParams = state.PopEvaluationStack (func.numberOfParameters); + var result = func.Call (funcParams); + state.PushEvaluationStack (result); + return true; + } + + // No control content, must be ordinary content + return false; + } + + /// + /// Change the current position of the story to the given path. From here you can + /// call Continue() to evaluate the next line. + /// + /// The path string is a dot-separated path as used internally by the engine. + /// These examples should work: + /// + /// myKnot + /// myKnot.myStitch + /// + /// Note however that this won't necessarily work: + /// + /// myKnot.myStitch.myLabelledChoice + /// + /// ...because of the way that content is nested within a weave structure. + /// + /// By default this will reset the callstack beforehand, which means that any + /// tunnels, threads or functions you were in at the time of calling will be + /// discarded. This is different from the behaviour of ChooseChoiceIndex, which + /// will always keep the callstack, since the choices are known to come from the + /// correct state, and known their source thread. + /// + /// You have the option of passing false to the resetCallstack parameter if you + /// don't want this behaviour, and will leave any active threads, tunnels or + /// function calls in-tact. + /// + /// This is potentially dangerous! If you're in the middle of a tunnel, + /// it'll redirect only the inner-most tunnel, meaning that when you tunnel-return + /// using '->->', it'll return to where you were before. This may be what you + /// want though. However, if you're in the middle of a function, ChoosePathString + /// will throw an exception. + /// + /// + /// A dot-separted path string, as specified above. + /// Whether to reset the callstack first (see summary description). + /// Optional set of arguments to pass, if path is to a knot that takes them. + public void ChoosePathString (string path, bool resetCallstack = true, params object [] arguments) + { + IfAsyncWeCant ("call ChoosePathString right now"); + if(onChoosePathString != null) onChoosePathString(path, arguments); + if (resetCallstack) { + ResetCallstack (); + } else { + // ChoosePathString is potentially dangerous since you can call it when the stack is + // pretty much in any state. Let's catch one of the worst offenders. + if (state.callStack.currentElement.type == PushPopType.Function) { + string funcDetail = ""; + var container = state.callStack.currentElement.currentPointer.container; + if (container != null) { + funcDetail = "("+container.path.ToString ()+") "; + } + throw new System.Exception ("Story was running a function "+funcDetail+"when you called ChoosePathString("+path+") - this is almost certainly not not what you want! Full stack trace: \n"+state.callStack.callStackTrace); + } + } + + state.PassArgumentsToEvaluationStack (arguments); + ChoosePath (new Path (path)); + } + + void IfAsyncWeCant (string activityStr) + { + if (_asyncContinueActive) + throw new System.Exception ("Can't " + activityStr + ". Story is in the middle of a ContinueAsync(). Make more ContinueAsync() calls or a single Continue() call beforehand."); + } + + public void ChoosePath(Path p, bool incrementingTurnIndex = true) + { + state.SetChosenPath (p, incrementingTurnIndex); + + // Take a note of newly visited containers for read counts etc + VisitChangedContainersDueToDivert (); + } + + /// + /// Chooses the Choice from the currentChoices list with the given + /// index. Internally, this sets the current content path to that + /// pointed to by the Choice, ready to continue story evaluation. + /// + public void ChooseChoiceIndex(int choiceIdx) + { + var choices = currentChoices; + Assert (choiceIdx >= 0 && choiceIdx < choices.Count, "choice out of range"); + + // Replace callstack with the one from the thread at the choosing point, + // so that we can jump into the right place in the flow. + // This is important in case the flow was forked by a new thread, which + // can create multiple leading edges for the story, each of + // which has its own context. + var choiceToChoose = choices [choiceIdx]; + if(onMakeChoice != null) onMakeChoice(choiceToChoose); + state.callStack.currentThread = choiceToChoose.threadAtGeneration; + + ChoosePath (choiceToChoose.targetPath); + } + + /// + /// Checks if a function exists. + /// + /// True if the function exists, else false. + /// The name of the function as declared in ink. + public bool HasFunction (string functionName) + { + try { + return KnotContainerWithName (functionName) != null; + } catch { + return false; + } + } + + /// + /// Evaluates a function defined in ink. + /// + /// The return value as returned from the ink function with `~ return myValue`, or null if nothing is returned. + /// The name of the function as declared in ink. + /// The arguments that the ink function takes, if any. Note that we don't (can't) do any validation on the number of arguments right now, so make sure you get it right! + public object EvaluateFunction (string functionName, params object [] arguments) + { + string _; + return EvaluateFunction (functionName, out _, arguments); + } + + /// + /// Evaluates a function defined in ink, and gathers the possibly multi-line text as generated by the function. + /// This text output is any text written as normal content within the function, as opposed to the return value, as returned with `~ return`. + /// + /// The return value as returned from the ink function with `~ return myValue`, or null if nothing is returned. + /// The name of the function as declared in ink. + /// The text content produced by the function via normal ink, if any. + /// The arguments that the ink function takes, if any. Note that we don't (can't) do any validation on the number of arguments right now, so make sure you get it right! + public object EvaluateFunction (string functionName, out string textOutput, params object [] arguments) + { + if(onEvaluateFunction != null) onEvaluateFunction(functionName, arguments); + IfAsyncWeCant ("evaluate a function"); + + if(functionName == null) { + throw new System.Exception ("Function is null"); + } else if(functionName == string.Empty || functionName.Trim() == string.Empty) { + throw new System.Exception ("Function is empty or white space."); + } + + // Get the content that we need to run + var funcContainer = KnotContainerWithName (functionName); + if( funcContainer == null ) + throw new System.Exception ("Function doesn't exist: '" + functionName + "'"); + + // Snapshot the output stream + var outputStreamBefore = new List(state.outputStream); + _state.ResetOutput (); + + // State will temporarily replace the callstack in order to evaluate + state.StartFunctionEvaluationFromGame (funcContainer, arguments); + + // Evaluate the function, and collect the string output + var stringOutput = new StringBuilder (); + while (canContinue) { + stringOutput.Append (Continue ()); + } + textOutput = stringOutput.ToString (); + + // Restore the output stream in case this was called + // during main story evaluation. + _state.ResetOutput (outputStreamBefore); + + // Finish evaluation, and see whether anything was produced + var result = state.CompleteFunctionEvaluationFromGame (); + if(onCompleteEvaluateFunction != null) onCompleteEvaluateFunction(functionName, arguments, textOutput, result); + return result; + } + + // Evaluate a "hot compiled" piece of ink content, as used by the REPL-like + // CommandLinePlayer. + public Runtime.Object EvaluateExpression(Runtime.Container exprContainer) + { + int startCallStackHeight = state.callStack.elements.Count; + + state.callStack.Push (PushPopType.Tunnel); + + _temporaryEvaluationContainer = exprContainer; + + state.GoToStart (); + + int evalStackHeight = state.evaluationStack.Count; + + Continue (); + + _temporaryEvaluationContainer = null; + + // Should have fallen off the end of the Container, which should + // have auto-popped, but just in case we didn't for some reason, + // manually pop to restore the state (including currentPath). + if (state.callStack.elements.Count > startCallStackHeight) { + state.PopCallstack (); + } + + int endStackHeight = state.evaluationStack.Count; + if (endStackHeight > evalStackHeight) { + return state.PopEvaluationStack (); + } else { + return null; + } + + } + + /// + /// An ink file can provide a fallback functions for when when an EXTERNAL has been left + /// unbound by the client, and the fallback function will be called instead. Useful when + /// testing a story in playmode, when it's not possible to write a client-side C# external + /// function, but you don't want it to fail to run. + /// + public bool allowExternalFunctionFallbacks { get; set; } + + public void CallExternalFunction(string funcName, int numberOfArguments) + { + ExternalFunctionDef funcDef; + Container fallbackFunctionContainer = null; + + var foundExternal = _externals.TryGetValue (funcName, out funcDef); + + // Should this function break glue? Abort run if we've already seen a newline. + // Set a bool to tell it to restore the snapshot at the end of this instruction. + if( foundExternal && !funcDef.lookaheadSafe && _stateSnapshotAtLastNewline != null ) { + _sawLookaheadUnsafeFunctionAfterNewline = true; + return; + } + + // Try to use fallback function? + if (!foundExternal) { + if (allowExternalFunctionFallbacks) { + fallbackFunctionContainer = KnotContainerWithName (funcName); + Assert (fallbackFunctionContainer != null, "Trying to call EXTERNAL function '" + funcName + "' which has not been bound, and fallback ink function could not be found."); + + // Divert direct into fallback function and we're done + state.callStack.Push ( + PushPopType.Function, + outputStreamLengthWithPushed:state.outputStream.Count + ); + state.divertedPointer = Pointer.StartOf(fallbackFunctionContainer); + return; + + } else { + Assert (false, "Trying to call EXTERNAL function '" + funcName + "' which has not been bound (and ink fallbacks disabled)."); + } + } + + // Pop arguments + var arguments = new List(); + for (int i = 0; i < numberOfArguments; ++i) { + var poppedObj = state.PopEvaluationStack () as Value; + var valueObj = poppedObj.valueObject; + arguments.Add (valueObj); + } + + // Reverse arguments from the order they were popped, + // so they're the right way round again. + arguments.Reverse (); + + // Run the function! + object funcResult = funcDef.function (arguments.ToArray()); + + // Convert return value (if any) to the a type that the ink engine can use + Runtime.Object returnObj = null; + if (funcResult != null) { + returnObj = Value.Create (funcResult); + Assert (returnObj != null, "Could not create ink value from returned object of type " + funcResult.GetType()); + } else { + returnObj = new Runtime.Void (); + } + + state.PushEvaluationStack (returnObj); + } + + /// + /// General purpose delegate definition for bound EXTERNAL function definitions + /// from ink. Note that this version isn't necessary if you have a function + /// with three arguments or less - see the overloads of BindExternalFunction. + /// + public delegate object ExternalFunction(object[] args); + + /// + /// Most general form of function binding that returns an object + /// and takes an array of object parameters. + /// The only way to bind a function with more than 3 arguments. + /// + /// EXTERNAL ink function name to bind to. + /// The C# function to bind. + /// The ink engine often evaluates further + /// than you might expect beyond the current line just in case it sees + /// glue that will cause the two lines to become one. In this case it's + /// possible that a function can appear to be called twice instead of + /// just once, and earlier than you expect. If it's safe for your + /// function to be called in this way (since the result and side effect + /// of the function will not change), then you can pass 'true'. + /// Usually, you want to pass 'false', especially if you want some action + /// to be performed in game code when this function is called. + public void BindExternalFunctionGeneral(string funcName, ExternalFunction func, bool lookaheadSafe = true) + { + IfAsyncWeCant ("bind an external function"); + Assert (!_externals.ContainsKey (funcName), "Function '" + funcName + "' has already been bound."); + _externals [funcName] = new ExternalFunctionDef { + function = func, + lookaheadSafe = lookaheadSafe + }; + } + + object TryCoerce(object value) + { + if (value == null) + return null; + + if (value is T) + return (T) value; + + if (value is float && typeof(T) == typeof(int)) { + int intVal = (int)Math.Round ((float)value); + return intVal; + } + + if (value is int && typeof(T) == typeof(float)) { + float floatVal = (float)(int)value; + return floatVal; + } + + if (value is int && typeof(T) == typeof(bool)) { + int intVal = (int)value; + return intVal == 0 ? false : true; + } + + if (value is bool && typeof(T) == typeof(int)) { + bool boolVal = (bool)value; + return boolVal ? 1 : 0; + } + + if (typeof(T) == typeof(string)) { + return value.ToString (); + } + + Assert (false, "Failed to cast " + value.GetType ().Name + " to " + typeof(T).Name); + + return null; + } + + // Convenience overloads for standard functions and actions of various arities + // Is there a better way of doing this?! + + /// + /// Bind a C# function to an ink EXTERNAL function declaration. + /// + /// EXTERNAL ink function name to bind to. + /// The C# function to bind. + /// The ink engine often evaluates further + /// than you might expect beyond the current line just in case it sees + /// glue that will cause the two lines to become one. In this case it's + /// possible that a function can appear to be called twice instead of + /// just once, and earlier than you expect. If it's safe for your + /// function to be called in this way (since the result and side effect + /// of the function will not change), then you can pass 'true'. + /// Usually, you want to pass 'false', especially if you want some action + /// to be performed in game code when this function is called. + public void BindExternalFunction(string funcName, Func func, bool lookaheadSafe=false) + { + Assert(func != null, "Can't bind a null function"); + + BindExternalFunctionGeneral (funcName, (object[] args) => { + Assert(args.Length == 0, "External function expected no arguments"); + return func(); + }, lookaheadSafe); + } + + /// + /// Bind a C# Action to an ink EXTERNAL function declaration. + /// + /// EXTERNAL ink function name to bind to. + /// The C# action to bind. + /// The ink engine often evaluates further + /// than you might expect beyond the current line just in case it sees + /// glue that will cause the two lines to become one. In this case it's + /// possible that a function can appear to be called twice instead of + /// just once, and earlier than you expect. If it's safe for your + /// function to be called in this way (since the result and side effect + /// of the function will not change), then you can pass 'true'. + /// Usually, you want to pass 'false', especially if you want some action + /// to be performed in game code when this function is called. + public void BindExternalFunction(string funcName, Action act, bool lookaheadSafe=false) + { + Assert(act != null, "Can't bind a null function"); + + BindExternalFunctionGeneral (funcName, (object[] args) => { + Assert(args.Length == 0, "External function expected no arguments"); + act(); + return null; + }, lookaheadSafe); + } + + /// + /// Bind a C# function to an ink EXTERNAL function declaration. + /// + /// EXTERNAL ink function name to bind to. + /// The C# function to bind. + /// The ink engine often evaluates further + /// than you might expect beyond the current line just in case it sees + /// glue that will cause the two lines to become one. In this case it's + /// possible that a function can appear to be called twice instead of + /// just once, and earlier than you expect. If it's safe for your + /// function to be called in this way (since the result and side effect + /// of the function will not change), then you can pass 'true'. + /// Usually, you want to pass 'false', especially if you want some action + /// to be performed in game code when this function is called. + public void BindExternalFunction(string funcName, Func func, bool lookaheadSafe=false) + { + Assert(func != null, "Can't bind a null function"); + + BindExternalFunctionGeneral (funcName, (object[] args) => { + Assert(args.Length == 1, "External function expected one argument"); + return func( (T)TryCoerce(args[0]) ); + }, lookaheadSafe); + } + + /// + /// Bind a C# action to an ink EXTERNAL function declaration. + /// + /// EXTERNAL ink function name to bind to. + /// The C# action to bind. + /// The ink engine often evaluates further + /// than you might expect beyond the current line just in case it sees + /// glue that will cause the two lines to become one. In this case it's + /// possible that a function can appear to be called twice instead of + /// just once, and earlier than you expect. If it's safe for your + /// function to be called in this way (since the result and side effect + /// of the function will not change), then you can pass 'true'. + /// Usually, you want to pass 'false', especially if you want some action + /// to be performed in game code when this function is called. + public void BindExternalFunction(string funcName, Action act, bool lookaheadSafe=false) + { + Assert(act != null, "Can't bind a null function"); + + BindExternalFunctionGeneral (funcName, (object[] args) => { + Assert(args.Length == 1, "External function expected one argument"); + act( (T)TryCoerce(args[0]) ); + return null; + }, lookaheadSafe); + } + + + /// + /// Bind a C# function to an ink EXTERNAL function declaration. + /// + /// EXTERNAL ink function name to bind to. + /// The C# function to bind. + /// The ink engine often evaluates further + /// than you might expect beyond the current line just in case it sees + /// glue that will cause the two lines to become one. In this case it's + /// possible that a function can appear to be called twice instead of + /// just once, and earlier than you expect. If it's safe for your + /// function to be called in this way (since the result and side effect + /// of the function will not change), then you can pass 'true'. + /// Usually, you want to pass 'false', especially if you want some action + /// to be performed in game code when this function is called. + public void BindExternalFunction(string funcName, Func func, bool lookaheadSafe = false) + { + Assert(func != null, "Can't bind a null function"); + + BindExternalFunctionGeneral (funcName, (object[] args) => { + Assert(args.Length == 2, "External function expected two arguments"); + return func( + (T1)TryCoerce(args[0]), + (T2)TryCoerce(args[1]) + ); + }, lookaheadSafe); + } + + /// + /// Bind a C# action to an ink EXTERNAL function declaration. + /// + /// EXTERNAL ink function name to bind to. + /// The C# action to bind. + /// The ink engine often evaluates further + /// than you might expect beyond the current line just in case it sees + /// glue that will cause the two lines to become one. In this case it's + /// possible that a function can appear to be called twice instead of + /// just once, and earlier than you expect. If it's safe for your + /// function to be called in this way (since the result and side effect + /// of the function will not change), then you can pass 'true'. + /// Usually, you want to pass 'false', especially if you want some action + /// to be performed in game code when this function is called. + public void BindExternalFunction(string funcName, Action act, bool lookaheadSafe=false) + { + Assert(act != null, "Can't bind a null function"); + + BindExternalFunctionGeneral (funcName, (object[] args) => { + Assert(args.Length == 2, "External function expected two arguments"); + act( + (T1)TryCoerce(args[0]), + (T2)TryCoerce(args[1]) + ); + return null; + }, lookaheadSafe); + } + + /// + /// Bind a C# function to an ink EXTERNAL function declaration. + /// + /// EXTERNAL ink function name to bind to. + /// The C# function to bind. + /// The ink engine often evaluates further + /// than you might expect beyond the current line just in case it sees + /// glue that will cause the two lines to become one. In this case it's + /// possible that a function can appear to be called twice instead of + /// just once, and earlier than you expect. If it's safe for your + /// function to be called in this way (since the result and side effect + /// of the function will not change), then you can pass 'true'. + /// Usually, you want to pass 'false', especially if you want some action + /// to be performed in game code when this function is called. + public void BindExternalFunction(string funcName, Func func, bool lookaheadSafe=false) + { + Assert(func != null, "Can't bind a null function"); + + BindExternalFunctionGeneral (funcName, (object[] args) => { + Assert(args.Length == 3, "External function expected three arguments"); + return func( + (T1)TryCoerce(args[0]), + (T2)TryCoerce(args[1]), + (T3)TryCoerce(args[2]) + ); + }, lookaheadSafe); + } + + /// + /// Bind a C# action to an ink EXTERNAL function declaration. + /// + /// EXTERNAL ink function name to bind to. + /// The C# action to bind. + /// The ink engine often evaluates further + /// than you might expect beyond the current line just in case it sees + /// glue that will cause the two lines to become one. In this case it's + /// possible that a function can appear to be called twice instead of + /// just once, and earlier than you expect. If it's safe for your + /// function to be called in this way (since the result and side effect + /// of the function will not change), then you can pass 'true'. + /// Usually, you want to pass 'false', especially if you want some action + /// to be performed in game code when this function is called. + public void BindExternalFunction(string funcName, Action act, bool lookaheadSafe=false) + { + Assert(act != null, "Can't bind a null function"); + + BindExternalFunctionGeneral (funcName, (object[] args) => { + Assert(args.Length == 3, "External function expected three arguments"); + act( + (T1)TryCoerce(args[0]), + (T2)TryCoerce(args[1]), + (T3)TryCoerce(args[2]) + ); + return null; + }, lookaheadSafe); + } + + /// + /// Bind a C# function to an ink EXTERNAL function declaration. + /// + /// EXTERNAL ink function name to bind to. + /// The C# function to bind. + /// The ink engine often evaluates further + /// than you might expect beyond the current line just in case it sees + /// glue that will cause the two lines to become one. In this case it's + /// possible that a function can appear to be called twice instead of + /// just once, and earlier than you expect. If it's safe for your + /// function to be called in this way (since the result and side effect + /// of the function will not change), then you can pass 'true'. + /// Usually, you want to pass 'false', especially if you want some action + /// to be performed in game code when this function is called. + public void BindExternalFunction(string funcName, Func func, bool lookaheadSafe=false) + { + Assert(func != null, "Can't bind a null function"); + + BindExternalFunctionGeneral (funcName, (object[] args) => { + Assert(args.Length == 4, "External function expected four arguments"); + return func( + (T1)TryCoerce(args[0]), + (T2)TryCoerce(args[1]), + (T3)TryCoerce(args[2]), + (T4)TryCoerce(args[3]) + ); + }, lookaheadSafe); + } + + /// + /// Bind a C# action to an ink EXTERNAL function declaration. + /// + /// EXTERNAL ink function name to bind to. + /// The C# action to bind. + /// The ink engine often evaluates further + /// than you might expect beyond the current line just in case it sees + /// glue that will cause the two lines to become one. In this case it's + /// possible that a function can appear to be called twice instead of + /// just once, and earlier than you expect. If it's safe for your + /// function to be called in this way (since the result and side effect + /// of the function will not change), then you can pass 'true'. + /// Usually, you want to pass 'false', especially if you want some action + /// to be performed in game code when this function is called. + public void BindExternalFunction(string funcName, Action act, bool lookaheadSafe=false) + { + Assert(act != null, "Can't bind a null function"); + + BindExternalFunctionGeneral (funcName, (object[] args) => { + Assert(args.Length == 4, "External function expected four arguments"); + act( + (T1)TryCoerce(args[0]), + (T2)TryCoerce(args[1]), + (T3)TryCoerce(args[2]), + (T4)TryCoerce(args[3]) + ); + return null; + }, lookaheadSafe); + } + + /// + /// Remove a binding for a named EXTERNAL ink function. + /// + public void UnbindExternalFunction(string funcName) + { + IfAsyncWeCant ("unbind an external a function"); + Assert (_externals.ContainsKey (funcName), "Function '" + funcName + "' has not been bound."); + _externals.Remove (funcName); + } + + /// + /// Check that all EXTERNAL ink functions have a valid bound C# function. + /// Note that this is automatically called on the first call to Continue(). + /// + public void ValidateExternalBindings() + { + var missingExternals = new HashSet(); + + ValidateExternalBindings (_mainContentContainer, missingExternals); + _hasValidatedExternals = true; + + // No problem! Validation complete + if( missingExternals.Count == 0 ) { + _hasValidatedExternals = true; + } + + // Error for all missing externals + else { + var message = string.Format("ERROR: Missing function binding for external{0}: '{1}' {2}", + missingExternals.Count > 1 ? "s" : string.Empty, + string.Join("', '", missingExternals.ToArray()), + allowExternalFunctionFallbacks ? ", and no fallback ink function found." : " (ink fallbacks disabled)" + ); + + Error(message); + } + } + + void ValidateExternalBindings(Container c, HashSet missingExternals) + { + foreach (var innerContent in c.content) { + var container = innerContent as Container; + if( container == null || !container.hasValidName ) + ValidateExternalBindings (innerContent, missingExternals); + } + foreach (var innerKeyValue in c.namedContent) { + ValidateExternalBindings (innerKeyValue.Value as Runtime.Object, missingExternals); + } + } + + void ValidateExternalBindings(Runtime.Object o, HashSet missingExternals) + { + var container = o as Container; + if (container) { + ValidateExternalBindings (container, missingExternals); + return; + } + + var divert = o as Divert; + if (divert && divert.isExternal) { + var name = divert.targetPathString; + + if (!_externals.ContainsKey (name)) { + if( allowExternalFunctionFallbacks ) { + bool fallbackFound = mainContentContainer.namedContent.ContainsKey(name); + if( !fallbackFound ) { + missingExternals.Add(name); + } + } else { + missingExternals.Add(name); + } + } + } + } + + /// + /// Delegate definition for variable observation - see ObserveVariable. + /// + public delegate void VariableObserver(string variableName, object newValue); + + /// + /// When the named global variable changes it's value, the observer will be + /// called to notify it of the change. Note that if the value changes multiple + /// times within the ink, the observer will only be called once, at the end + /// of the ink's evaluation. If, during the evaluation, it changes and then + /// changes back again to its original value, it will still be called. + /// Note that the observer will also be fired if the value of the variable + /// is changed externally to the ink, by directly setting a value in + /// story.variablesState. + /// + /// The name of the global variable to observe. + /// A delegate function to call when the variable changes. + public void ObserveVariable(string variableName, VariableObserver observer) + { + IfAsyncWeCant ("observe a new variable"); + + if (_variableObservers == null) + _variableObservers = new Dictionary (); + + if( !state.variablesState.GlobalVariableExistsWithName(variableName) ) + throw new Exception("Cannot observe variable '"+variableName+"' because it wasn't declared in the ink story."); + + if (_variableObservers.ContainsKey (variableName)) { + _variableObservers[variableName] += observer; + } else { + _variableObservers[variableName] = observer; + } + } + + /// + /// Convenience function to allow multiple variables to be observed with the same + /// observer delegate function. See the singular ObserveVariable for details. + /// The observer will get one call for every variable that has changed. + /// + /// The set of variables to observe. + /// The delegate function to call when any of the named variables change. + public void ObserveVariables(IList variableNames, VariableObserver observer) + { + foreach (var varName in variableNames) { + ObserveVariable (varName, observer); + } + } + + /// + /// Removes the variable observer, to stop getting variable change notifications. + /// If you pass a specific variable name, it will stop observing that particular one. If you + /// pass null (or leave it blank, since it's optional), then the observer will be removed + /// from all variables that it's subscribed to. If you pass in a specific variable name and + /// null for the the observer, all observers for that variable will be removed. + /// + /// (Optional) The observer to stop observing. + /// (Optional) Specific variable name to stop observing. + public void RemoveVariableObserver(VariableObserver observer = null, string specificVariableName = null) + { + IfAsyncWeCant ("remove a variable observer"); + + if (_variableObservers == null) + return; + + // Remove observer for this specific variable + if (specificVariableName != null) { + if (_variableObservers.ContainsKey (specificVariableName)) { + if( observer != null) { + _variableObservers [specificVariableName] -= observer; + if (_variableObservers[specificVariableName] == null) { + _variableObservers.Remove(specificVariableName); + } + } + else { + _variableObservers.Remove(specificVariableName); + } + } + } + + // Remove observer for all variables + else if( observer != null) { + var keys = new List(_variableObservers.Keys); + foreach (var varName in keys) { + _variableObservers[varName] -= observer; + if (_variableObservers[varName] == null) { + _variableObservers.Remove(varName); + } + } + } + } + + void VariableStateDidChangeEvent(string variableName, Runtime.Object newValueObj) + { + if (_variableObservers == null) + return; + + VariableObserver observers = null; + if (_variableObservers.TryGetValue (variableName, out observers)) { + + if (!(newValueObj is Value)) { + throw new System.Exception ("Tried to get the value of a variable that isn't a standard type"); + } + var val = newValueObj as Value; + + observers (variableName, val.valueObject); + } + } + + /// + /// Get any global tags associated with the story. These are defined as + /// hash tags defined at the very top of the story. + /// + public List globalTags { + get { + return TagsAtStartOfFlowContainerWithPathString (""); + } + } + + /// + /// Gets any tags associated with a particular knot or knot.stitch. + /// These are defined as hash tags defined at the very top of a + /// knot or stitch. + /// + /// The path of the knot or stitch, in the form "knot" or "knot.stitch". + public List TagsForContentAtPath (string path) + { + return TagsAtStartOfFlowContainerWithPathString (path); + } + + List TagsAtStartOfFlowContainerWithPathString (string pathString) + { + var path = new Runtime.Path (pathString); + + // Expected to be global story, knot or stitch + var flowContainer = ContentAtPath (path).container; + while(true) { + var firstContent = flowContainer.content [0]; + if (firstContent is Container) + flowContainer = (Container)firstContent; + else break; + } + + // Any initial tag objects count as the "main tags" associated with that story/knot/stitch + List tags = null; + foreach (var c in flowContainer.content) { + var tag = c as Runtime.Tag; + if (tag) { + if (tags == null) tags = new List (); + tags.Add (tag.text); + } else break; + } + + return tags; + } + + /// + /// Useful when debugging a (very short) story, to visualise the state of the + /// story. Add this call as a watch and open the extended text. A left-arrow mark + /// will denote the current point of the story. + /// It's only recommended that this is used on very short debug stories, since + /// it can end up generate a large quantity of text otherwise. + /// + public virtual string BuildStringOfHierarchy() + { + var sb = new StringBuilder (); + + mainContentContainer.BuildStringOfHierarchy (sb, 0, state.currentPointer.Resolve()); + + return sb.ToString (); + } + + string BuildStringOfContainer (Container container) + { + var sb = new StringBuilder (); + + container.BuildStringOfHierarchy (sb, 0, state.currentPointer.Resolve()); + + return sb.ToString(); + } + + private void NextContent() + { + // Setting previousContentObject is critical for VisitChangedContainersDueToDivert + state.previousPointer = state.currentPointer; + + // Divert step? + if (!state.divertedPointer.isNull) { + + state.currentPointer = state.divertedPointer; + state.divertedPointer = Pointer.Null; + + // Internally uses state.previousContentObject and state.currentContentObject + VisitChangedContainersDueToDivert (); + + // Diverted location has valid content? + if (!state.currentPointer.isNull) { + return; + } + + // Otherwise, if diverted location doesn't have valid content, + // drop down and attempt to increment. + // This can happen if the diverted path is intentionally jumping + // to the end of a container - e.g. a Conditional that's re-joining + } + + bool successfulPointerIncrement = IncrementContentPointer (); + + // Ran out of content? Try to auto-exit from a function, + // or finish evaluating the content of a thread + if (!successfulPointerIncrement) { + + bool didPop = false; + + if (state.callStack.CanPop (PushPopType.Function)) { + + // Pop from the call stack + state.PopCallstack (PushPopType.Function); + + // This pop was due to dropping off the end of a function that didn't return anything, + // so in this case, we make sure that the evaluator has something to chomp on if it needs it + if (state.inExpressionEvaluation) { + state.PushEvaluationStack (new Runtime.Void ()); + } + + didPop = true; + } else if (state.callStack.canPopThread) { + state.callStack.PopThread (); + + didPop = true; + } else { + state.TryExitFunctionEvaluationFromGame (); + } + + // Step past the point where we last called out + if (didPop && !state.currentPointer.isNull) { + NextContent (); + } + } + } + + bool IncrementContentPointer() + { + bool successfulIncrement = true; + + var pointer = state.callStack.currentElement.currentPointer; + pointer.index++; + + // Each time we step off the end, we fall out to the next container, all the + // while we're in indexed rather than named content + while (pointer.index >= pointer.container.content.Count) { + + successfulIncrement = false; + + Container nextAncestor = pointer.container.parent as Container; + if (!nextAncestor) { + break; + } + + var indexInAncestor = nextAncestor.content.IndexOf (pointer.container); + if (indexInAncestor == -1) { + break; + } + + pointer = new Pointer (nextAncestor, indexInAncestor); + + // Increment to next content in outer container + pointer.index++; + + successfulIncrement = true; + } + + if (!successfulIncrement) pointer = Pointer.Null; + + state.callStack.currentElement.currentPointer = pointer; + + return successfulIncrement; + } + + bool TryFollowDefaultInvisibleChoice() + { + var allChoices = _state.currentChoices; + + // Is a default invisible choice the ONLY choice? + var invisibleChoices = allChoices.Where (c => c.isInvisibleDefault).ToList(); + if (invisibleChoices.Count == 0 || allChoices.Count > invisibleChoices.Count) + return false; + + var choice = invisibleChoices [0]; + + // Invisible choice may have been generated on a different thread, + // in which case we need to restore it before we continue + state.callStack.currentThread = choice.threadAtGeneration; + + // If there's a chance that this state will be rolled back to before + // the invisible choice then make sure that the choice thread is + // left intact, and it isn't re-entered in an old state. + if ( _stateSnapshotAtLastNewline != null ) + state.callStack.currentThread = state.callStack.ForkThread(); + + ChoosePath (choice.targetPath, incrementingTurnIndex: false); + + return true; + } + + + // Note that this is O(n), since it re-evaluates the shuffle indices + // from a consistent seed each time. + // TODO: Is this the best algorithm it can be? + int NextSequenceShuffleIndex() + { + var numElementsIntVal = state.PopEvaluationStack () as IntValue; + if (numElementsIntVal == null) { + Error ("expected number of elements in sequence for shuffle index"); + return 0; + } + + var seqContainer = state.currentPointer.container; + + int numElements = numElementsIntVal.value; + + var seqCountVal = state.PopEvaluationStack () as IntValue; + var seqCount = seqCountVal.value; + var loopIndex = seqCount / numElements; + var iterationIndex = seqCount % numElements; + + // Generate the same shuffle based on: + // - The hash of this container, to make sure it's consistent + // each time the runtime returns to the sequence + // - How many times the runtime has looped around this full shuffle + var seqPathStr = seqContainer.path.ToString(); + int sequenceHash = 0; + foreach (char c in seqPathStr) { + sequenceHash += c; + } + var randomSeed = sequenceHash + loopIndex + state.storySeed; + var random = new Random (randomSeed); + + var unpickedIndices = new List (); + for (int i = 0; i < numElements; ++i) { + unpickedIndices.Add (i); + } + + for (int i = 0; i <= iterationIndex; ++i) { + var chosen = random.Next () % unpickedIndices.Count; + var chosenIndex = unpickedIndices [chosen]; + unpickedIndices.RemoveAt (chosen); + + if (i == iterationIndex) { + return chosenIndex; + } + } + + throw new System.Exception ("Should never reach here"); + } + + // Throw an exception that gets caught and causes AddError to be called, + // then exits the flow. + public void Error(string message, bool useEndLineNumber = false) + { + var e = new StoryException (message); + e.useEndLineNumber = useEndLineNumber; + throw e; + } + + public void Warning (string message) + { + AddError (message, isWarning:true); + } + + void AddError (string message, bool isWarning = false, bool useEndLineNumber = false) + { + var dm = currentDebugMetadata; + + var errorTypeStr = isWarning ? "WARNING" : "ERROR"; + + if (dm != null) { + int lineNum = useEndLineNumber ? dm.endLineNumber : dm.startLineNumber; + message = string.Format ("RUNTIME {0}: '{1}' line {2}: {3}", errorTypeStr, dm.fileName, lineNum, message); + } else if( !state.currentPointer.isNull ) { + message = string.Format ("RUNTIME {0}: ({1}): {2}", errorTypeStr, state.currentPointer.path, message); + } else { + message = "RUNTIME "+errorTypeStr+": " + message; + } + + state.AddError (message, isWarning); + + // In a broken state don't need to know about any other errors. + if( !isWarning ) + state.ForceEnd (); + } + + void Assert(bool condition, string message = null, params object[] formatParams) + { + if (condition == false) { + if (message == null) { + message = "Story assert"; + } + if (formatParams != null && formatParams.Count() > 0) { + message = string.Format (message, formatParams); + } + + throw new System.Exception (message + " " + currentDebugMetadata); + } + } + + DebugMetadata currentDebugMetadata + { + get { + DebugMetadata dm; + + // Try to get from the current path first + var pointer = state.currentPointer; + if (!pointer.isNull) { + dm = pointer.Resolve().debugMetadata; + if (dm != null) { + return dm; + } + } + + // Move up callstack if possible + for (int i = state.callStack.elements.Count - 1; i >= 0; --i) { + pointer = state.callStack.elements [i].currentPointer; + if (!pointer.isNull && pointer.Resolve() != null) { + dm = pointer.Resolve().debugMetadata; + if (dm != null) { + return dm; + } + } + } + + // Current/previous path may not be valid if we've just had an error, + // or if we've simply run out of content. + // As a last resort, try to grab something from the output stream + for (int i = state.outputStream.Count - 1; i >= 0; --i) { + var outputObj = state.outputStream [i]; + dm = outputObj.debugMetadata; + if (dm != null) { + return dm; + } + } + + return null; + } + } + + int currentLineNumber + { + get { + var dm = currentDebugMetadata; + if (dm != null) { + return dm.startLineNumber; + } + return 0; + } + } + + public Container mainContentContainer { + get { + if (_temporaryEvaluationContainer) { + return _temporaryEvaluationContainer; + } else { + return _mainContentContainer; + } + } + } + + Container _mainContentContainer; + ListDefinitionsOrigin _listDefinitions; + + struct ExternalFunctionDef { + public ExternalFunction function; + public bool lookaheadSafe; + } + Dictionary _externals; + Dictionary _variableObservers; + bool _hasValidatedExternals; + + Container _temporaryEvaluationContainer; + + StoryState _state; + + bool _asyncContinueActive; + StoryState _stateSnapshotAtLastNewline = null; + bool _sawLookaheadUnsafeFunctionAfterNewline = false; + + int _recursiveContinueCount = 0; + + bool _asyncSaving; + + Profiler _profiler; + } +} + diff --git a/Assets/Ink/ink-engine-runtime/Story.cs.meta b/Assets/Ink/ink-engine-runtime/Story.cs.meta new file mode 100644 index 000000000..d340b0fc0 --- /dev/null +++ b/Assets/Ink/ink-engine-runtime/Story.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c760358be233814429b379327f313356 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Ink/ink-engine-runtime/StoryException.cs b/Assets/Ink/ink-engine-runtime/StoryException.cs new file mode 100644 index 000000000..5b0a20fb5 --- /dev/null +++ b/Assets/Ink/ink-engine-runtime/StoryException.cs @@ -0,0 +1,24 @@ +namespace Ink.Runtime +{ + /// + /// Exception that represents an error when running a Story at runtime. + /// An exception being thrown of this type is typically when there's + /// a bug in your ink, rather than in the ink engine itself! + /// + public class StoryException : System.Exception + { + public bool useEndLineNumber; + + /// + /// Constructs a default instance of a StoryException without a message. + /// + public StoryException () { } + + /// + /// Constructs an instance of a StoryException with a message. + /// + /// The error message. + public StoryException(string message) : base(message) {} + } +} + diff --git a/Assets/Ink/ink-engine-runtime/StoryException.cs.meta b/Assets/Ink/ink-engine-runtime/StoryException.cs.meta new file mode 100644 index 000000000..5a19601ce --- /dev/null +++ b/Assets/Ink/ink-engine-runtime/StoryException.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 5a9a53e9ccf45e746ba505f037b637e5 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Ink/ink-engine-runtime/StoryState.cs b/Assets/Ink/ink-engine-runtime/StoryState.cs new file mode 100644 index 000000000..ebcd353f5 --- /dev/null +++ b/Assets/Ink/ink-engine-runtime/StoryState.cs @@ -0,0 +1,1286 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Diagnostics; +using System.IO; + +namespace Ink.Runtime +{ + /// + /// All story state information is included in the StoryState class, + /// including global variables, read counts, the pointer to the current + /// point in the story, the call stack (for tunnels, functions, etc), + /// and a few other smaller bits and pieces. You can save the current + /// state using the json serialisation functions ToJson and LoadJson. + /// + public class StoryState + { + /// + /// The current version of the state save file JSON-based format. + /// + public const int kInkSaveStateVersion = 9; // new: multi-flows, but backward compatible + const int kMinCompatibleLoadVersion = 8; + + /// + /// Callback for when a state is loaded + /// + public event Action onDidLoadState; + + /// + /// Exports the current state to json format, in order to save the game. + /// + /// The save state in json format. + public string ToJson() { + var writer = new SimpleJson.Writer(); + WriteJson(writer); + return writer.ToString(); + } + + /// + /// Exports the current state to json format, in order to save the game. + /// For this overload you can pass in a custom stream, such as a FileStream. + /// + public void ToJson(Stream stream) { + var writer = new SimpleJson.Writer(stream); + WriteJson(writer); + } + + /// + /// Loads a previously saved state in JSON format. + /// + /// The JSON string to load. + public void LoadJson(string json) + { + var jObject = SimpleJson.TextToDictionary (json); + LoadJsonObj(jObject); + if(onDidLoadState != null) onDidLoadState(); + } + + /// + /// Gets the visit/read count of a particular Container at the given path. + /// For a knot or stitch, that path string will be in the form: + /// + /// knot + /// knot.stitch + /// + /// + /// The number of times the specific knot or stitch has + /// been enountered by the ink engine. + /// The dot-separated path string of + /// the specific knot or stitch. + public int VisitCountAtPathString(string pathString) + { + int visitCountOut; + + if ( _patch != null ) { + var container = story.ContentAtPath(new Path(pathString)).container; + if (container == null) + throw new Exception("Content at path not found: " + pathString); + + if( _patch.TryGetVisitCount(container, out visitCountOut) ) + return visitCountOut; + } + + if (_visitCounts.TryGetValue(pathString, out visitCountOut)) + return visitCountOut; + + return 0; + } + + public int VisitCountForContainer(Container container) + { + if (!container.visitsShouldBeCounted) + { + story.Error("Read count for target (" + container.name + " - on " + container.debugMetadata + ") unknown."); + return 0; + } + + int count = 0; + if (_patch != null && _patch.TryGetVisitCount(container, out count)) + return count; + + var containerPathStr = container.path.ToString(); + _visitCounts.TryGetValue(containerPathStr, out count); + return count; + } + + public void IncrementVisitCountForContainer(Container container) + { + if( _patch != null ) { + var currCount = VisitCountForContainer(container); + currCount++; + _patch.SetVisitCount(container, currCount); + return; + } + + int count = 0; + var containerPathStr = container.path.ToString(); + _visitCounts.TryGetValue(containerPathStr, out count); + count++; + _visitCounts[containerPathStr] = count; + } + + public void RecordTurnIndexVisitToContainer(Container container) + { + if( _patch != null ) { + _patch.SetTurnIndex(container, currentTurnIndex); + return; + } + + var containerPathStr = container.path.ToString(); + _turnIndices[containerPathStr] = currentTurnIndex; + } + + public int TurnsSinceForContainer(Container container) + { + if (!container.turnIndexShouldBeCounted) + { + story.Error("TURNS_SINCE() for target (" + container.name + " - on " + container.debugMetadata + ") unknown."); + } + + int index = 0; + + if ( _patch != null && _patch.TryGetTurnIndex(container, out index) ) { + return currentTurnIndex - index; + } + + var containerPathStr = container.path.ToString(); + if (_turnIndices.TryGetValue(containerPathStr, out index)) + { + return currentTurnIndex - index; + } + else + { + return -1; + } + } + + public int callstackDepth { + get { + return callStack.depth; + } + } + + // REMEMBER! REMEMBER! REMEMBER! + // When adding state, update the Copy method, and serialisation. + // REMEMBER! REMEMBER! REMEMBER! + + public List outputStream { + get { + return _currentFlow.outputStream; + } + } + + + + public List currentChoices { + get { + // If we can continue generating text content rather than choices, + // then we reflect the choice list as being empty, since choices + // should always come at the end. + if( canContinue ) return new List(); + return _currentFlow.currentChoices; + } + } + public List generatedChoices { + get { + return _currentFlow.currentChoices; + } + } + + // TODO: Consider removing currentErrors / currentWarnings altogether + // and relying on client error handler code immediately handling StoryExceptions etc + // Or is there a specific reason we need to collect potentially multiple + // errors before throwing/exiting? + public List currentErrors { get; private set; } + public List currentWarnings { get; private set; } + public VariablesState variablesState { get; private set; } + public CallStack callStack { + get { + return _currentFlow.callStack; + } + // set { + // _currentFlow.callStack = value; + // } + } + + public List evaluationStack { get; private set; } + public Pointer divertedPointer { get; set; } + + public int currentTurnIndex { get; private set; } + public int storySeed { get; set; } + public int previousRandom { get; set; } + public bool didSafeExit { get; set; } + + public Story story { get; set; } + + /// + /// String representation of the location where the story currently is. + /// + public string currentPathString { + get { + var pointer = currentPointer; + if (pointer.isNull) + return null; + else + return pointer.path.ToString(); + } + } + + public Runtime.Pointer currentPointer { + get { + return callStack.currentElement.currentPointer; + } + set { + callStack.currentElement.currentPointer = value; + } + } + + public Pointer previousPointer { + get { + return callStack.currentThread.previousPointer; + } + set { + callStack.currentThread.previousPointer = value; + } + } + + public bool canContinue { + get { + return !currentPointer.isNull && !hasError; + } + } + + public bool hasError + { + get { + return currentErrors != null && currentErrors.Count > 0; + } + } + + public bool hasWarning { + get { + return currentWarnings != null && currentWarnings.Count > 0; + } + } + + public string currentText + { + get + { + if( _outputStreamTextDirty ) { + var sb = new StringBuilder (); + + foreach (var outputObj in outputStream) { + var textContent = outputObj as StringValue; + if (textContent != null) { + sb.Append(textContent.value); + } + } + + _currentText = CleanOutputWhitespace (sb.ToString ()); + + _outputStreamTextDirty = false; + } + + return _currentText; + } + } + string _currentText; + + // Cleans inline whitespace in the following way: + // - Removes all whitespace from the start and end of line (including just before a \n) + // - Turns all consecutive space and tab runs into single spaces (HTML style) + string CleanOutputWhitespace(string str) + { + var sb = new StringBuilder(str.Length); + + int currentWhitespaceStart = -1; + int startOfLine = 0; + + for (int i = 0; i < str.Length; i++) { + var c = str[i]; + + bool isInlineWhitespace = c == ' ' || c == '\t'; + + if (isInlineWhitespace && currentWhitespaceStart == -1) + currentWhitespaceStart = i; + + if (!isInlineWhitespace) { + if (c != '\n' && currentWhitespaceStart > 0 && currentWhitespaceStart != startOfLine) { + sb.Append(' '); + } + currentWhitespaceStart = -1; + } + + if (c == '\n') + startOfLine = i + 1; + + if (!isInlineWhitespace) + sb.Append(c); + } + + return sb.ToString(); + } + + public List currentTags + { + get + { + if( _outputStreamTagsDirty ) { + _currentTags = new List(); + + foreach (var outputObj in outputStream) { + var tag = outputObj as Tag; + if (tag != null) { + _currentTags.Add (tag.text); + } + } + + _outputStreamTagsDirty = false; + } + + return _currentTags; + } + } + List _currentTags; + + public string currentFlowName { + get { + return _currentFlow.name; + } + } + + public bool currentFlowIsDefaultFlow { + get { + return _currentFlow.name == kDefaultFlowName; + } + } + + public List aliveFlowNames { + get { + + if( _aliveFlowNamesDirty ) { + _aliveFlowNames = new List(); + + if (_namedFlows != null) + { + foreach (string flowName in _namedFlows.Keys) { + if (flowName != kDefaultFlowName) { + _aliveFlowNames.Add(flowName); + } + } + } + + _aliveFlowNamesDirty = false; + } + + return _aliveFlowNames; + } + } + + List _aliveFlowNames; + + public bool inExpressionEvaluation { + get { + return callStack.currentElement.inExpressionEvaluation; + } + set { + callStack.currentElement.inExpressionEvaluation = value; + } + } + + public StoryState (Story story) + { + this.story = story; + + _currentFlow = new Flow(kDefaultFlowName, story); + + OutputStreamDirty(); + _aliveFlowNamesDirty = true; + + evaluationStack = new List (); + + variablesState = new VariablesState (callStack, story.listDefinitions); + + _visitCounts = new Dictionary (); + _turnIndices = new Dictionary (); + + currentTurnIndex = -1; + + // Seed the shuffle random numbers + int timeSeed = DateTime.Now.Millisecond; + storySeed = (new Random (timeSeed)).Next () % 100; + previousRandom = 0; + + + + GoToStart(); + } + + public void GoToStart() + { + callStack.currentElement.currentPointer = Pointer.StartOf (story.mainContentContainer); + } + + internal void SwitchFlow_Internal(string flowName) + { + if(flowName == null) throw new System.Exception("Must pass a non-null string to Story.SwitchFlow"); + + if( _namedFlows == null ) { + _namedFlows = new Dictionary(); + _namedFlows[kDefaultFlowName] = _currentFlow; + } + + if( flowName == _currentFlow.name ) { + return; + } + + Flow flow; + if( !_namedFlows.TryGetValue(flowName, out flow) ) { + flow = new Flow(flowName, story); + _namedFlows[flowName] = flow; + _aliveFlowNamesDirty = true; + } + + _currentFlow = flow; + variablesState.callStack = _currentFlow.callStack; + + // Cause text to be regenerated from output stream if necessary + OutputStreamDirty(); + } + + internal void SwitchToDefaultFlow_Internal() + { + if( _namedFlows == null ) return; + SwitchFlow_Internal(kDefaultFlowName); + } + + internal void RemoveFlow_Internal(string flowName) + { + if(flowName == null) throw new System.Exception("Must pass a non-null string to Story.DestroyFlow"); + if(flowName == kDefaultFlowName) throw new System.Exception("Cannot destroy default flow"); + + // If we're currently in the flow that's being removed, switch back to default + if( _currentFlow.name == flowName ) { + SwitchToDefaultFlow_Internal(); + } + + _namedFlows.Remove(flowName); + _aliveFlowNamesDirty = true; + } + + // Warning: Any Runtime.Object content referenced within the StoryState will + // be re-referenced rather than cloned. This is generally okay though since + // Runtime.Objects are treated as immutable after they've been set up. + // (e.g. we don't edit a Runtime.StringValue after it's been created an added.) + // I wonder if there's a sensible way to enforce that..?? + public StoryState CopyAndStartPatching() + { + var copy = new StoryState(story); + + copy._patch = new StatePatch(_patch); + + // Hijack the new default flow to become a copy of our current one + // If the patch is applied, then this new flow will replace the old one in _namedFlows + copy._currentFlow.name = _currentFlow.name; + copy._currentFlow.callStack = new CallStack (_currentFlow.callStack); + copy._currentFlow.currentChoices.AddRange(_currentFlow.currentChoices); + copy._currentFlow.outputStream.AddRange(_currentFlow.outputStream); + copy.OutputStreamDirty(); + + // The copy of the state has its own copy of the named flows dictionary, + // except with the current flow replaced with the copy above + // (Assuming we're in multi-flow mode at all. If we're not then + // the above copy is simply the default flow copy and we're done) + if( _namedFlows != null ) { + copy._namedFlows = new Dictionary(); + foreach(var namedFlow in _namedFlows) + copy._namedFlows[namedFlow.Key] = namedFlow.Value; + copy._namedFlows[_currentFlow.name] = copy._currentFlow; + copy._aliveFlowNamesDirty = true; + } + + if (hasError) { + copy.currentErrors = new List (); + copy.currentErrors.AddRange (currentErrors); + } + if (hasWarning) { + copy.currentWarnings = new List (); + copy.currentWarnings.AddRange (currentWarnings); + } + + + // ref copy - exactly the same variables state! + // we're expecting not to read it only while in patch mode + // (though the callstack will be modified) + copy.variablesState = variablesState; + copy.variablesState.callStack = copy.callStack; + copy.variablesState.patch = copy._patch; + + copy.evaluationStack.AddRange (evaluationStack); + + if (!divertedPointer.isNull) + copy.divertedPointer = divertedPointer; + + copy.previousPointer = previousPointer; + + // visit counts and turn indicies will be read only, not modified + // while in patch mode + copy._visitCounts = _visitCounts; + copy._turnIndices = _turnIndices; + + copy.currentTurnIndex = currentTurnIndex; + copy.storySeed = storySeed; + copy.previousRandom = previousRandom; + + copy.didSafeExit = didSafeExit; + + return copy; + } + + public void RestoreAfterPatch() + { + // VariablesState was being borrowed by the patched + // state, so restore it with our own callstack. + // _patch will be null normally, but if you're in the + // middle of a save, it may contain a _patch for save purpsoes. + variablesState.callStack = callStack; + variablesState.patch = _patch; // usually null + } + + public void ApplyAnyPatch() + { + if (_patch == null) return; + + variablesState.ApplyPatch(); + + foreach(var pathToCount in _patch.visitCounts) + ApplyCountChanges(pathToCount.Key, pathToCount.Value, isVisit:true); + + foreach (var pathToIndex in _patch.turnIndices) + ApplyCountChanges(pathToIndex.Key, pathToIndex.Value, isVisit:false); + + _patch = null; + } + + void ApplyCountChanges(Container container, int newCount, bool isVisit) + { + var counts = isVisit ? _visitCounts : _turnIndices; + counts[container.path.ToString()] = newCount; + } + + void WriteJson(SimpleJson.Writer writer) + { + writer.WriteObjectStart(); + + // Flows + writer.WritePropertyStart("flows"); + writer.WriteObjectStart(); + + // Multi-flow + if( _namedFlows != null ) { + foreach(var namedFlow in _namedFlows) { + writer.WriteProperty(namedFlow.Key, namedFlow.Value.WriteJson); + } + } + + // Single flow + else { + writer.WriteProperty(_currentFlow.name, _currentFlow.WriteJson); + } + + writer.WriteObjectEnd(); + writer.WritePropertyEnd(); // end of flows + + writer.WriteProperty("currentFlowName", _currentFlow.name); + + writer.WriteProperty("variablesState", variablesState.WriteJson); + + writer.WriteProperty("evalStack", w => Json.WriteListRuntimeObjs(w, evaluationStack)); + + + if (!divertedPointer.isNull) + writer.WriteProperty("currentDivertTarget", divertedPointer.path.componentsString); + + writer.WriteProperty("visitCounts", w => Json.WriteIntDictionary(w, _visitCounts)); + writer.WriteProperty("turnIndices", w => Json.WriteIntDictionary(w, _turnIndices)); + + + writer.WriteProperty("turnIdx", currentTurnIndex); + writer.WriteProperty("storySeed", storySeed); + writer.WriteProperty("previousRandom", previousRandom); + + writer.WriteProperty("inkSaveVersion", kInkSaveStateVersion); + + // Not using this right now, but could do in future. + writer.WriteProperty("inkFormatVersion", Story.inkVersionCurrent); + + writer.WriteObjectEnd(); + } + + + void LoadJsonObj(Dictionary jObject) + { + object jSaveVersion = null; + if (!jObject.TryGetValue("inkSaveVersion", out jSaveVersion)) { + throw new Exception ("ink save format incorrect, can't load."); + } + else if ((int)jSaveVersion < kMinCompatibleLoadVersion) { + throw new Exception("Ink save format isn't compatible with the current version (saw '"+jSaveVersion+"', but minimum is "+kMinCompatibleLoadVersion+"), so can't load."); + } + + // Flows: Always exists in latest format (even if there's just one default) + // but this dictionary doesn't exist in prev format + object flowsObj = null; + if (jObject.TryGetValue("flows", out flowsObj)) { + var flowsObjDict = (Dictionary)flowsObj; + + // Single default flow + if( flowsObjDict.Count == 1 ) + _namedFlows = null; + + // Multi-flow, need to create flows dict + else if( _namedFlows == null ) + _namedFlows = new Dictionary(); + + // Multi-flow, already have a flows dict + else + _namedFlows.Clear(); + + // Load up each flow (there may only be one) + foreach(var namedFlowObj in flowsObjDict) { + var name = namedFlowObj.Key; + var flowObj = (Dictionary)namedFlowObj.Value; + + // Load up this flow using JSON data + var flow = new Flow(name, story, flowObj); + + if( flowsObjDict.Count == 1 ) { + _currentFlow = new Flow(name, story, flowObj); + } else { + _namedFlows[name] = flow; + } + } + + if( _namedFlows != null && _namedFlows.Count > 1 ) { + var currFlowName = (string)jObject["currentFlowName"]; + _currentFlow = _namedFlows[currFlowName]; + } + } + + // Old format: individually load up callstack, output stream, choices in current/default flow + else { + _namedFlows = null; + _currentFlow.name = kDefaultFlowName; + _currentFlow.callStack.SetJsonToken ((Dictionary < string, object > )jObject ["callstackThreads"], story); + _currentFlow.outputStream = Json.JArrayToRuntimeObjList ((List)jObject ["outputStream"]); + _currentFlow.currentChoices = Json.JArrayToRuntimeObjList((List)jObject ["currentChoices"]); + + object jChoiceThreadsObj = null; + jObject.TryGetValue("choiceThreads", out jChoiceThreadsObj); + _currentFlow.LoadFlowChoiceThreads((Dictionary)jChoiceThreadsObj, story); + } + + OutputStreamDirty(); + _aliveFlowNamesDirty = true; + + variablesState.SetJsonToken((Dictionary < string, object> )jObject["variablesState"]); + variablesState.callStack = _currentFlow.callStack; + + evaluationStack = Json.JArrayToRuntimeObjList ((List)jObject ["evalStack"]); + + + object currentDivertTargetPath; + if (jObject.TryGetValue("currentDivertTarget", out currentDivertTargetPath)) { + var divertPath = new Path (currentDivertTargetPath.ToString ()); + divertedPointer = story.PointerAtPath (divertPath); + } + + _visitCounts = Json.JObjectToIntDictionary((Dictionary)jObject["visitCounts"]); + _turnIndices = Json.JObjectToIntDictionary((Dictionary)jObject["turnIndices"]); + + currentTurnIndex = (int)jObject ["turnIdx"]; + storySeed = (int)jObject ["storySeed"]; + + // Not optional, but bug in inkjs means it's actually missing in inkjs saves + object previousRandomObj = null; + if( jObject.TryGetValue("previousRandom", out previousRandomObj) ) { + previousRandom = (int)previousRandomObj; + } else { + previousRandom = 0; + } + } + + public void ResetErrors() + { + currentErrors = null; + currentWarnings = null; + } + + public void ResetOutput(List objs = null) + { + outputStream.Clear (); + if( objs != null ) outputStream.AddRange (objs); + OutputStreamDirty(); + } + + // Push to output stream, but split out newlines in text for consistency + // in dealing with them later. + public void PushToOutputStream(Runtime.Object obj) + { + var text = obj as StringValue; + if (text) { + var listText = TrySplittingHeadTailWhitespace (text); + if (listText != null) { + foreach (var textObj in listText) { + PushToOutputStreamIndividual (textObj); + } + OutputStreamDirty(); + return; + } + } + + PushToOutputStreamIndividual (obj); + + OutputStreamDirty(); + } + + public void PopFromOutputStream (int count) + { + outputStream.RemoveRange (outputStream.Count - count, count); + OutputStreamDirty (); + } + + + // At both the start and the end of the string, split out the new lines like so: + // + // " \n \n \n the string \n is awesome \n \n " + // ^-----------^ ^-------^ + // + // Excess newlines are converted into single newlines, and spaces discarded. + // Outside spaces are significant and retained. "Interior" newlines within + // the main string are ignored, since this is for the purpose of gluing only. + // + // - If no splitting is necessary, null is returned. + // - A newline on its own is returned in a list for consistency. + List TrySplittingHeadTailWhitespace(Runtime.StringValue single) + { + string str = single.value; + + int headFirstNewlineIdx = -1; + int headLastNewlineIdx = -1; + for (int i = 0; i < str.Length; i++) { + char c = str [i]; + if (c == '\n') { + if (headFirstNewlineIdx == -1) + headFirstNewlineIdx = i; + headLastNewlineIdx = i; + } + else if (c == ' ' || c == '\t') + continue; + else + break; + } + + int tailLastNewlineIdx = -1; + int tailFirstNewlineIdx = -1; + for (int i = str.Length-1; i >= 0; i--) { + char c = str [i]; + if (c == '\n') { + if (tailLastNewlineIdx == -1) + tailLastNewlineIdx = i; + tailFirstNewlineIdx = i; + } + else if (c == ' ' || c == '\t') + continue; + else + break; + } + + // No splitting to be done? + if (headFirstNewlineIdx == -1 && tailLastNewlineIdx == -1) + return null; + + var listTexts = new List (); + int innerStrStart = 0; + int innerStrEnd = str.Length; + + if (headFirstNewlineIdx != -1) { + if (headFirstNewlineIdx > 0) { + var leadingSpaces = new StringValue (str.Substring (0, headFirstNewlineIdx)); + listTexts.Add(leadingSpaces); + } + listTexts.Add (new StringValue ("\n")); + innerStrStart = headLastNewlineIdx + 1; + } + + if (tailLastNewlineIdx != -1) { + innerStrEnd = tailFirstNewlineIdx; + } + + if (innerStrEnd > innerStrStart) { + var innerStrText = str.Substring (innerStrStart, innerStrEnd - innerStrStart); + listTexts.Add (new StringValue (innerStrText)); + } + + if (tailLastNewlineIdx != -1 && tailFirstNewlineIdx > headLastNewlineIdx) { + listTexts.Add (new StringValue ("\n")); + if (tailLastNewlineIdx < str.Length - 1) { + int numSpaces = (str.Length - tailLastNewlineIdx) - 1; + var trailingSpaces = new StringValue (str.Substring (tailLastNewlineIdx + 1, numSpaces)); + listTexts.Add(trailingSpaces); + } + } + + return listTexts; + } + + void PushToOutputStreamIndividual(Runtime.Object obj) + { + var glue = obj as Runtime.Glue; + var text = obj as Runtime.StringValue; + + bool includeInOutput = true; + + // New glue, so chomp away any whitespace from the end of the stream + if (glue) { + TrimNewlinesFromOutputStream(); + includeInOutput = true; + } + + // New text: do we really want to append it, if it's whitespace? + // Two different reasons for whitespace to be thrown away: + // - Function start/end trimming + // - User defined glue: <> + // We also need to know when to stop trimming, when there's non-whitespace. + else if( text ) { + + // Where does the current function call begin? + var functionTrimIndex = -1; + var currEl = callStack.currentElement; + if (currEl.type == PushPopType.Function) { + functionTrimIndex = currEl.functionStartInOuputStream; + } + + // Do 2 things: + // - Find latest glue + // - Check whether we're in the middle of string evaluation + // If we're in string eval within the current function, we + // don't want to trim back further than the length of the current string. + int glueTrimIndex = -1; + for (int i = outputStream.Count - 1; i >= 0; i--) { + var o = outputStream [i]; + var c = o as ControlCommand; + var g = o as Glue; + + // Find latest glue + if (g) { + glueTrimIndex = i; + break; + } + + // Don't function-trim past the start of a string evaluation section + else if (c && c.commandType == ControlCommand.CommandType.BeginString) { + if (i >= functionTrimIndex) { + functionTrimIndex = -1; + } + break; + } + } + + // Where is the most agressive (earliest) trim point? + var trimIndex = -1; + if (glueTrimIndex != -1 && functionTrimIndex != -1) + trimIndex = Math.Min (functionTrimIndex, glueTrimIndex); + else if (glueTrimIndex != -1) + trimIndex = glueTrimIndex; + else + trimIndex = functionTrimIndex; + + // So, are we trimming then? + if (trimIndex != -1) { + + // While trimming, we want to throw all newlines away, + // whether due to glue or the start of a function + if (text.isNewline) { + includeInOutput = false; + } + + // Able to completely reset when normal text is pushed + else if (text.isNonWhitespace) { + + if( glueTrimIndex > -1 ) + RemoveExistingGlue (); + + // Tell all functions in callstack that we have seen proper text, + // so trimming whitespace at the start is done. + if (functionTrimIndex > -1) { + var callstackElements = callStack.elements; + for (int i = callstackElements.Count - 1; i >= 0; i--) { + var el = callstackElements [i]; + if (el.type == PushPopType.Function) { + el.functionStartInOuputStream = -1; + } else { + break; + } + } + } + } + } + + // De-duplicate newlines, and don't ever lead with a newline + else if (text.isNewline) { + if (outputStreamEndsInNewline || !outputStreamContainsContent) + includeInOutput = false; + } + } + + if (includeInOutput) { + outputStream.Add (obj); + OutputStreamDirty(); + } + } + + void TrimNewlinesFromOutputStream() + { + int removeWhitespaceFrom = -1; + + // Work back from the end, and try to find the point where + // we need to start removing content. + // - Simply work backwards to find the first newline in a string of whitespace + // e.g. This is the content \n \n\n + // ^---------^ whitespace to remove + // ^--- first while loop stops here + int i = outputStream.Count-1; + while (i >= 0) { + var obj = outputStream [i]; + var cmd = obj as ControlCommand; + var txt = obj as StringValue; + + if (cmd || (txt && txt.isNonWhitespace)) { + break; + } + else if (txt && txt.isNewline) { + removeWhitespaceFrom = i; + } + i--; + } + + // Remove the whitespace + if (removeWhitespaceFrom >= 0) { + i=removeWhitespaceFrom; + while(i < outputStream.Count) { + var text = outputStream [i] as StringValue; + if (text) { + outputStream.RemoveAt (i); + } else { + i++; + } + } + } + + OutputStreamDirty(); + } + + // Only called when non-whitespace is appended + void RemoveExistingGlue() + { + for (int i = outputStream.Count - 1; i >= 0; i--) { + var c = outputStream [i]; + if (c is Glue) { + outputStream.RemoveAt (i); + } else if( c is ControlCommand ) { // e.g. BeginString + break; + } + } + + OutputStreamDirty(); + } + + public bool outputStreamEndsInNewline { + get { + if (outputStream.Count > 0) { + + for (int i = outputStream.Count - 1; i >= 0; i--) { + var obj = outputStream [i]; + if (obj is ControlCommand) // e.g. BeginString + break; + var text = outputStream [i] as StringValue; + if (text) { + if (text.isNewline) + return true; + else if (text.isNonWhitespace) + break; + } + } + } + + return false; + } + } + + public bool outputStreamContainsContent { + get { + foreach (var content in outputStream) { + if (content is StringValue) + return true; + } + return false; + } + } + + public bool inStringEvaluation { + get { + for (int i = outputStream.Count - 1; i >= 0; i--) { + var cmd = outputStream [i] as ControlCommand; + if (cmd && cmd.commandType == ControlCommand.CommandType.BeginString) { + return true; + } + } + + return false; + } + } + + public void PushEvaluationStack(Runtime.Object obj) + { + // Include metadata about the origin List for list values when + // they're used, so that lower level functions can make use + // of the origin list to get related items, or make comparisons + // with the integer values etc. + var listValue = obj as ListValue; + if (listValue) { + + // Update origin when list is has something to indicate the list origin + var rawList = listValue.value; + if (rawList.originNames != null) { + if( rawList.origins == null ) rawList.origins = new List(); + rawList.origins.Clear(); + + foreach (var n in rawList.originNames) { + ListDefinition def = null; + story.listDefinitions.TryListGetDefinition (n, out def); + if( !rawList.origins.Contains(def) ) + rawList.origins.Add (def); + } + } + } + + evaluationStack.Add(obj); + } + + public Runtime.Object PopEvaluationStack() + { + var obj = evaluationStack [evaluationStack.Count - 1]; + evaluationStack.RemoveAt (evaluationStack.Count - 1); + return obj; + } + + public Runtime.Object PeekEvaluationStack() + { + return evaluationStack [evaluationStack.Count - 1]; + } + + public List PopEvaluationStack(int numberOfObjects) + { + if(numberOfObjects > evaluationStack.Count) { + throw new System.Exception ("trying to pop too many objects"); + } + + var popped = evaluationStack.GetRange (evaluationStack.Count - numberOfObjects, numberOfObjects); + evaluationStack.RemoveRange (evaluationStack.Count - numberOfObjects, numberOfObjects); + return popped; + } + + /// + /// Ends the current ink flow, unwrapping the callstack but without + /// affecting any variables. Useful if the ink is (say) in the middle + /// a nested tunnel, and you want it to reset so that you can divert + /// elsewhere using ChoosePathString(). Otherwise, after finishing + /// the content you diverted to, it would continue where it left off. + /// Calling this is equivalent to calling -> END in ink. + /// + public void ForceEnd() + { + callStack.Reset(); + + _currentFlow.currentChoices.Clear(); + + currentPointer = Pointer.Null; + previousPointer = Pointer.Null; + + didSafeExit = true; + } + + // Add the end of a function call, trim any whitespace from the end. + // We always trim the start and end of the text that a function produces. + // The start whitespace is discard as it is generated, and the end + // whitespace is trimmed in one go here when we pop the function. + void TrimWhitespaceFromFunctionEnd () + { + Debug.Assert (callStack.currentElement.type == PushPopType.Function); + + var functionStartPoint = callStack.currentElement.functionStartInOuputStream; + + // If the start point has become -1, it means that some non-whitespace + // text has been pushed, so it's safe to go as far back as we're able. + if (functionStartPoint == -1) { + functionStartPoint = 0; + } + + // Trim whitespace from END of function call + for (int i = outputStream.Count - 1; i >= functionStartPoint; i--) { + var obj = outputStream [i]; + var txt = obj as StringValue; + var cmd = obj as ControlCommand; + if (!txt) continue; + if (cmd) break; + + if (txt.isNewline || txt.isInlineWhitespace) { + outputStream.RemoveAt (i); + OutputStreamDirty (); + } else { + break; + } + } + } + + public void PopCallstack (PushPopType? popType = null) + { + // Add the end of a function call, trim any whitespace from the end. + if (callStack.currentElement.type == PushPopType.Function) + TrimWhitespaceFromFunctionEnd (); + + callStack.Pop (popType); + } + + // Don't make public since the method need to be wrapped in Story for visit counting + public void SetChosenPath(Path path, bool incrementingTurnIndex) + { + // Changing direction, assume we need to clear current set of choices + _currentFlow.currentChoices.Clear (); + + var newPointer = story.PointerAtPath (path); + if (!newPointer.isNull && newPointer.index == -1) + newPointer.index = 0; + + currentPointer = newPointer; + + if( incrementingTurnIndex ) + currentTurnIndex++; + } + + public void StartFunctionEvaluationFromGame (Container funcContainer, params object[] arguments) + { + callStack.Push (PushPopType.FunctionEvaluationFromGame, evaluationStack.Count); + callStack.currentElement.currentPointer = Pointer.StartOf (funcContainer); + + PassArgumentsToEvaluationStack (arguments); + } + + public void PassArgumentsToEvaluationStack (params object [] arguments) + { + // Pass arguments onto the evaluation stack + if (arguments != null) { + for (int i = 0; i < arguments.Length; i++) { + if (!(arguments [i] is int || arguments [i] is float || arguments [i] is string || arguments [i] is bool || arguments [i] is InkList)) { + throw new System.ArgumentException ("ink arguments when calling EvaluateFunction / ChoosePathStringWithParameters must be int, float, string, bool or InkList. Argument was "+(arguments [i] == null ? "null" : arguments [i].GetType().Name)); + } + + PushEvaluationStack (Runtime.Value.Create (arguments [i])); + } + } + } + + public bool TryExitFunctionEvaluationFromGame () + { + if( callStack.currentElement.type == PushPopType.FunctionEvaluationFromGame ) { + currentPointer = Pointer.Null; + didSafeExit = true; + return true; + } + + return false; + } + + public object CompleteFunctionEvaluationFromGame () + { + if (callStack.currentElement.type != PushPopType.FunctionEvaluationFromGame) { + throw new Exception ("Expected external function evaluation to be complete. Stack trace: "+callStack.callStackTrace); + } + + int originalEvaluationStackHeight = callStack.currentElement.evaluationStackHeightWhenPushed; + + // Do we have a returned value? + // Potentially pop multiple values off the stack, in case we need + // to clean up after ourselves (e.g. caller of EvaluateFunction may + // have passed too many arguments, and we currently have no way to check for that) + Runtime.Object returnedObj = null; + while (evaluationStack.Count > originalEvaluationStackHeight) { + var poppedObj = PopEvaluationStack (); + if (returnedObj == null) + returnedObj = poppedObj; + } + + // Finally, pop the external function evaluation + PopCallstack (PushPopType.FunctionEvaluationFromGame); + + // What did we get back? + if (returnedObj) { + if (returnedObj is Runtime.Void) + return null; + + // Some kind of value, if not void + var returnVal = returnedObj as Runtime.Value; + + // DivertTargets get returned as the string of components + // (rather than a Path, which isn't public) + if (returnVal.valueType == ValueType.DivertTarget) { + return returnVal.valueObject.ToString (); + } + + // Other types can just have their exact object type: + // int, float, string. VariablePointers get returned as strings. + return returnVal.valueObject; + } + + return null; + } + + public void AddError(string message, bool isWarning) + { + if (!isWarning) { + if (currentErrors == null) currentErrors = new List (); + currentErrors.Add (message); + } else { + if (currentWarnings == null) currentWarnings = new List (); + currentWarnings.Add (message); + } + } + + void OutputStreamDirty() + { + _outputStreamTextDirty = true; + _outputStreamTagsDirty = true; + } + + // REMEMBER! REMEMBER! REMEMBER! + // When adding state, update the Copy method and serialisation + // REMEMBER! REMEMBER! REMEMBER! + + + Dictionary _visitCounts; + Dictionary _turnIndices; + bool _outputStreamTextDirty = true; + bool _outputStreamTagsDirty = true; + + StatePatch _patch; + + Flow _currentFlow; + Dictionary _namedFlows; + const string kDefaultFlowName = "DEFAULT_FLOW"; + bool _aliveFlowNamesDirty = true; + } +} + diff --git a/Assets/Ink/ink-engine-runtime/StoryState.cs.meta b/Assets/Ink/ink-engine-runtime/StoryState.cs.meta new file mode 100644 index 000000000..b77f3fab0 --- /dev/null +++ b/Assets/Ink/ink-engine-runtime/StoryState.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 8816be301249d394aa164fda4373ae76 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Ink/ink-engine-runtime/StringJoinExtension.cs b/Assets/Ink/ink-engine-runtime/StringJoinExtension.cs new file mode 100644 index 000000000..d650fae6b --- /dev/null +++ b/Assets/Ink/ink-engine-runtime/StringJoinExtension.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace Ink.Runtime +{ + public static class StringExt + { + public static string Join(string separator, List objects) + { + var sb = new StringBuilder (); + + var isFirst = true; + foreach (var o in objects) { + + if (!isFirst) + sb.Append (separator); + + sb.Append (o.ToString ()); + + isFirst = false; + } + + return sb.ToString (); + } + } +} + diff --git a/Assets/Ink/ink-engine-runtime/StringJoinExtension.cs.meta b/Assets/Ink/ink-engine-runtime/StringJoinExtension.cs.meta new file mode 100644 index 000000000..f065bdb37 --- /dev/null +++ b/Assets/Ink/ink-engine-runtime/StringJoinExtension.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 679e8c87fcbf03940bfcf18b75fdaed8 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Ink/ink-engine-runtime/Tag.cs b/Assets/Ink/ink-engine-runtime/Tag.cs new file mode 100644 index 000000000..04c31fd5b --- /dev/null +++ b/Assets/Ink/ink-engine-runtime/Tag.cs @@ -0,0 +1,20 @@ +using System; + +namespace Ink.Runtime +{ + public class Tag : Runtime.Object + { + public string text { get; private set; } + + public Tag (string tagText) + { + this.text = tagText; + } + + public override string ToString () + { + return "# " + text; + } + } +} + diff --git a/Assets/Ink/ink-engine-runtime/Tag.cs.meta b/Assets/Ink/ink-engine-runtime/Tag.cs.meta new file mode 100644 index 000000000..2ba9401ef --- /dev/null +++ b/Assets/Ink/ink-engine-runtime/Tag.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: eaa366b4a14665d45a0c50e75f0a3400 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Ink/ink-engine-runtime/Value.cs b/Assets/Ink/ink-engine-runtime/Value.cs new file mode 100644 index 000000000..f870dffac --- /dev/null +++ b/Assets/Ink/ink-engine-runtime/Value.cs @@ -0,0 +1,405 @@ +using System.ComponentModel; +using System.Collections.Generic; + +namespace Ink.Runtime +{ + // Order is significant for type coersion. + // If types aren't directly compatible for an operation, + // they're coerced to the same type, downward. + // Higher value types "infect" an operation. + // (This may not be the most sensible thing to do, but it's worked so far!) + public enum ValueType + { + // Bool is new addition, keep enum values the same, with Int==0, Float==1 etc, + // but for coersion rules, we want to keep bool with a lower value than Int + // so that it converts in the right direction + Bool = -1, + // Used in coersion + Int, + Float, + List, + String, + + // Not used for coersion described above + DivertTarget, + VariablePointer + } + + public abstract class Value : Runtime.Object + { + public abstract ValueType valueType { get; } + public abstract bool isTruthy { get; } + + public abstract Value Cast(ValueType newType); + + public abstract object valueObject { get; } + + public static Value Create(object val) + { + // Implicitly lose precision from any doubles we get passed in + if (val is double) { + double doub = (double)val; + val = (float)doub; + } + + if( val is bool ) { + return new BoolValue((bool)val); + } else if (val is int) { + return new IntValue ((int)val); + } else if (val is long) { + return new IntValue ((int)(long)val); + } else if (val is float) { + return new FloatValue ((float)val); + } else if (val is double) { + return new FloatValue ((float)(double)val); + } else if (val is string) { + return new StringValue ((string)val); + } else if (val is Path) { + return new DivertTargetValue ((Path)val); + } else if (val is InkList) { + return new ListValue ((InkList)val); + } + + return null; + } + + public override Object Copy() + { + return Create (valueObject); + } + + protected StoryException BadCastException (ValueType targetType) + { + return new StoryException ("Can't cast "+this.valueObject+" from " + this.valueType+" to "+targetType); + } + } + + public abstract class Value : Value + { + public T value { get; set; } + + public override object valueObject { + get { + return (object)value; + } + } + + public Value (T val) + { + value = val; + } + + public override string ToString () + { + return value.ToString(); + } + } + + public class BoolValue : Value + { + public override ValueType valueType { get { return ValueType.Bool; } } + public override bool isTruthy { get { return value; } } + + public BoolValue(bool boolVal) : base(boolVal) + { + } + + public BoolValue() : this(false) {} + + public override Value Cast(ValueType newType) + { + if (newType == valueType) { + return this; + } + + if (newType == ValueType.Int) { + return new IntValue (this.value ? 1 : 0); + } + + if (newType == ValueType.Float) { + return new FloatValue (this.value ? 1.0f : 0.0f); + } + + if (newType == ValueType.String) { + return new StringValue(this.value ? "true" : "false"); + } + + throw BadCastException (newType); + } + + public override string ToString () + { + // Instead of C# "True" / "False" + return value ? "true" : "false"; + } + } + + public class IntValue : Value + { + public override ValueType valueType { get { return ValueType.Int; } } + public override bool isTruthy { get { return value != 0; } } + + public IntValue(int intVal) : base(intVal) + { + } + + public IntValue() : this(0) {} + + public override Value Cast(ValueType newType) + { + if (newType == valueType) { + return this; + } + + if (newType == ValueType.Bool) { + return new BoolValue (this.value == 0 ? false : true); + } + + if (newType == ValueType.Float) { + return new FloatValue ((float)this.value); + } + + if (newType == ValueType.String) { + return new StringValue("" + this.value); + } + + throw BadCastException (newType); + } + } + + public class FloatValue : Value + { + public override ValueType valueType { get { return ValueType.Float; } } + public override bool isTruthy { get { return value != 0.0f; } } + + public FloatValue(float val) : base(val) + { + } + + public FloatValue() : this(0.0f) {} + + public override Value Cast(ValueType newType) + { + if (newType == valueType) { + return this; + } + + if (newType == ValueType.Bool) { + return new BoolValue (this.value == 0.0f ? false : true); + } + + if (newType == ValueType.Int) { + return new IntValue ((int)this.value); + } + + if (newType == ValueType.String) { + return new StringValue("" + this.value.ToString(System.Globalization.CultureInfo.InvariantCulture)); + } + + throw BadCastException (newType); + } + } + + public class StringValue : Value + { + public override ValueType valueType { get { return ValueType.String; } } + public override bool isTruthy { get { return value.Length > 0; } } + + public bool isNewline { get; private set; } + public bool isInlineWhitespace { get; private set; } + public bool isNonWhitespace { + get { + return !isNewline && !isInlineWhitespace; + } + } + + public StringValue(string str) : base(str) + { + // Classify whitespace status + isNewline = value == "\n"; + isInlineWhitespace = true; + foreach (var c in value) { + if (c != ' ' && c != '\t') { + isInlineWhitespace = false; + break; + } + } + } + + public StringValue() : this("") {} + + public override Value Cast(ValueType newType) + { + if (newType == valueType) { + return this; + } + + if (newType == ValueType.Int) { + + int parsedInt; + if (int.TryParse (value, out parsedInt)) { + return new IntValue (parsedInt); + } else { + return null; + } + } + + if (newType == ValueType.Float) { + float parsedFloat; + if (float.TryParse (value, System.Globalization.NumberStyles.Float ,System.Globalization.CultureInfo.InvariantCulture, out parsedFloat)) { + return new FloatValue (parsedFloat); + } else { + return null; + } + } + + throw BadCastException (newType); + } + } + + public class DivertTargetValue : Value + { + public Path targetPath { get { return this.value; } set { this.value = value; } } + public override ValueType valueType { get { return ValueType.DivertTarget; } } + public override bool isTruthy { get { throw new System.Exception("Shouldn't be checking the truthiness of a divert target"); } } + + public DivertTargetValue(Path targetPath) : base(targetPath) + { + } + + public DivertTargetValue() : base(null) + {} + + public override Value Cast(ValueType newType) + { + if (newType == valueType) + return this; + + throw BadCastException (newType); + } + + public override string ToString () + { + return "DivertTargetValue(" + targetPath + ")"; + } + } + + // TODO: Think: Erm, I get that this contains a string, but should + // we really derive from Value? That seems a bit misleading to me. + public class VariablePointerValue : Value + { + public string variableName { get { return this.value; } set { this.value = value; } } + public override ValueType valueType { get { return ValueType.VariablePointer; } } + public override bool isTruthy { get { throw new System.Exception("Shouldn't be checking the truthiness of a variable pointer"); } } + + // Where the variable is located + // -1 = default, unknown, yet to be determined + // 0 = in global scope + // 1+ = callstack element index + 1 (so that the first doesn't conflict with special global scope) + public int contextIndex { get; set; } + + public VariablePointerValue(string variableName, int contextIndex = -1) : base(variableName) + { + this.contextIndex = contextIndex; + } + + public VariablePointerValue() : this(null) + { + } + + public override Value Cast(ValueType newType) + { + if (newType == valueType) + return this; + + throw BadCastException (newType); + } + + public override string ToString () + { + return "VariablePointerValue(" + variableName + ")"; + } + + public override Object Copy() + { + return new VariablePointerValue (variableName, contextIndex); + } + } + + public class ListValue : Value + { + public override ValueType valueType { + get { + return ValueType.List; + } + } + + // Truthy if it is non-empty + public override bool isTruthy { + get { + return value.Count > 0; + } + } + + public override Value Cast (ValueType newType) + { + if (newType == ValueType.Int) { + var max = value.maxItem; + if( max.Key.isNull ) + return new IntValue (0); + else + return new IntValue (max.Value); + } + + else if (newType == ValueType.Float) { + var max = value.maxItem; + if (max.Key.isNull) + return new FloatValue (0.0f); + else + return new FloatValue ((float)max.Value); + } + + else if (newType == ValueType.String) { + var max = value.maxItem; + if (max.Key.isNull) + return new StringValue (""); + else { + return new StringValue (max.Key.ToString()); + } + } + + if (newType == valueType) + return this; + + throw BadCastException (newType); + } + + public ListValue () : base(null) { + value = new InkList (); + } + + public ListValue (InkList list) : base (null) + { + value = new InkList (list); + } + + public ListValue (InkListItem singleItem, int singleValue) : base (null) + { + value = new InkList { + {singleItem, singleValue} + }; + } + + public static void RetainListOriginsForAssignment (Runtime.Object oldValue, Runtime.Object newValue) + { + var oldList = oldValue as ListValue; + var newList = newValue as ListValue; + + // When assigning the emtpy list, try to retain any initial origin names + if (oldList && newList && newList.value.Count == 0) + newList.value.SetInitialOriginNames (oldList.value.originNames); + } + } + +} + diff --git a/Assets/Ink/ink-engine-runtime/Value.cs.meta b/Assets/Ink/ink-engine-runtime/Value.cs.meta new file mode 100644 index 000000000..cdb0f0f7b --- /dev/null +++ b/Assets/Ink/ink-engine-runtime/Value.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6a18fada6b5865b448eecf7c16b4aaf5 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Ink/ink-engine-runtime/VariableAssignment.cs b/Assets/Ink/ink-engine-runtime/VariableAssignment.cs new file mode 100644 index 000000000..1c3a433ec --- /dev/null +++ b/Assets/Ink/ink-engine-runtime/VariableAssignment.cs @@ -0,0 +1,27 @@ +using System.ComponentModel; + +namespace Ink.Runtime +{ + // The value to be assigned is popped off the evaluation stack, so no need to keep it here + public class VariableAssignment : Runtime.Object + { + public string variableName { get; protected set; } + public bool isNewDeclaration { get; protected set; } + public bool isGlobal { get; set; } + + public VariableAssignment (string variableName, bool isNewDeclaration) + { + this.variableName = variableName; + this.isNewDeclaration = isNewDeclaration; + } + + // Require default constructor for serialisation + public VariableAssignment() : this(null, false) {} + + public override string ToString () + { + return "VarAssign to " + variableName; + } + } +} + diff --git a/Assets/Ink/ink-engine-runtime/VariableAssignment.cs.meta b/Assets/Ink/ink-engine-runtime/VariableAssignment.cs.meta new file mode 100644 index 000000000..a2741d0ce --- /dev/null +++ b/Assets/Ink/ink-engine-runtime/VariableAssignment.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e35bcc9deb240dc45b0c776bba8123ac +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Ink/ink-engine-runtime/VariableReference.cs b/Assets/Ink/ink-engine-runtime/VariableReference.cs new file mode 100644 index 000000000..74033127a --- /dev/null +++ b/Assets/Ink/ink-engine-runtime/VariableReference.cs @@ -0,0 +1,51 @@ +namespace Ink.Runtime +{ + public class VariableReference : Runtime.Object + { + // Normal named variable + public string name { get; set; } + + // Variable reference is actually a path for a visit (read) count + public Path pathForCount { get; set; } + + public Container containerForCount { + get { + return this.ResolvePath (pathForCount).container; + } + } + + public string pathStringForCount { + get { + if( pathForCount == null ) + return null; + + return CompactPathString(pathForCount); + } + set { + if (value == null) + pathForCount = null; + else + pathForCount = new Path (value); + } + } + + public VariableReference (string name) + { + this.name = name; + } + + // Require default constructor for serialisation + public VariableReference() {} + + public override string ToString () + { + if (name != null) { + return string.Format ("var({0})", name); + } else { + var pathStr = pathStringForCount; + return string.Format("read_count({0})", pathStr); + } + } + } +} + diff --git a/Assets/Ink/ink-engine-runtime/VariableReference.cs.meta b/Assets/Ink/ink-engine-runtime/VariableReference.cs.meta new file mode 100644 index 000000000..d1c022b60 --- /dev/null +++ b/Assets/Ink/ink-engine-runtime/VariableReference.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e5685a48dae980a46a9479a2c95f49e1 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Ink/ink-engine-runtime/VariablesState.cs b/Assets/Ink/ink-engine-runtime/VariablesState.cs new file mode 100644 index 000000000..7ddab78ff --- /dev/null +++ b/Assets/Ink/ink-engine-runtime/VariablesState.cs @@ -0,0 +1,417 @@ +using System; +using System.Collections.Generic; + +namespace Ink.Runtime +{ + /// + /// Encompasses all the global variables in an ink Story, and + /// allows binding of a VariableChanged event so that that game + /// code can be notified whenever the global variables change. + /// + public class VariablesState : IEnumerable + { + public delegate void VariableChanged(string variableName, Runtime.Object newValue); + public event VariableChanged variableChangedEvent; + + public StatePatch patch; + + public bool batchObservingVariableChanges + { + get { + return _batchObservingVariableChanges; + } + set { + _batchObservingVariableChanges = value; + if (value) { + _changedVariablesForBatchObs = new HashSet (); + } + + // Finished observing variables in a batch - now send + // notifications for changed variables all in one go. + else { + if (_changedVariablesForBatchObs != null) { + foreach (var variableName in _changedVariablesForBatchObs) { + var currentValue = _globalVariables [variableName]; + variableChangedEvent (variableName, currentValue); + } + } + + _changedVariablesForBatchObs = null; + } + } + } + bool _batchObservingVariableChanges; + + // Allow StoryState to change the current callstack, e.g. for + // temporary function evaluation. + public CallStack callStack { + get { + return _callStack; + } + set { + _callStack = value; + } + } + + /// + /// Get or set the value of a named global ink variable. + /// The types available are the standard ink types. Certain + /// types will be implicitly casted when setting. + /// For example, doubles to floats, longs to ints, and bools + /// to ints. + /// + public object this[string variableName] + { + get { + Runtime.Object varContents; + + if (patch != null && patch.TryGetGlobal(variableName, out varContents)) + return (varContents as Runtime.Value).valueObject; + + // Search main dictionary first. + // If it's not found, it might be because the story content has changed, + // and the original default value hasn't be instantiated. + // Should really warn somehow, but it's difficult to see how...! + if ( _globalVariables.TryGetValue (variableName, out varContents) || + _defaultGlobalVariables.TryGetValue(variableName, out varContents) ) + return (varContents as Runtime.Value).valueObject; + else { + return null; + } + } + set { + if (!_defaultGlobalVariables.ContainsKey (variableName)) + throw new StoryException ("Cannot assign to a variable ("+variableName+") that hasn't been declared in the story"); + + var val = Runtime.Value.Create(value); + if (val == null) { + if (value == null) { + throw new Exception ("Cannot pass null to VariableState"); + } else { + throw new Exception ("Invalid value passed to VariableState: "+value.ToString()); + } + } + + SetGlobal (variableName, val); + } + } + + System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() + { + return GetEnumerator(); + } + + /// + /// Enumerator to allow iteration over all global variables by name. + /// + public IEnumerator GetEnumerator() + { + return _globalVariables.Keys.GetEnumerator(); + } + + public VariablesState (CallStack callStack, ListDefinitionsOrigin listDefsOrigin) + { + _globalVariables = new Dictionary (); + _callStack = callStack; + _listDefsOrigin = listDefsOrigin; + } + + public void ApplyPatch() + { + foreach(var namedVar in patch.globals) { + _globalVariables[namedVar.Key] = namedVar.Value; + } + + if(_changedVariablesForBatchObs != null ) { + foreach (var name in patch.changedVariables) + _changedVariablesForBatchObs.Add(name); + } + + patch = null; + } + + public void SetJsonToken(Dictionary jToken) + { + _globalVariables.Clear(); + + foreach (var varVal in _defaultGlobalVariables) { + object loadedToken; + if( jToken.TryGetValue(varVal.Key, out loadedToken) ) { + _globalVariables[varVal.Key] = Json.JTokenToRuntimeObject(loadedToken); + } else { + _globalVariables[varVal.Key] = varVal.Value; + } + } + } + + /// + /// When saving out JSON state, we can skip saving global values that + /// remain equal to the initial values that were declared in ink. + /// This makes the save file (potentially) much smaller assuming that + /// at least a portion of the globals haven't changed. However, it + /// can also take marginally longer to save in the case that the + /// majority HAVE changed, since it has to compare all globals. + /// It may also be useful to turn this off for testing worst case + /// save timing. + /// + public static bool dontSaveDefaultValues = true; + + public void WriteJson(SimpleJson.Writer writer) + { + writer.WriteObjectStart(); + foreach (var keyVal in _globalVariables) + { + var name = keyVal.Key; + var val = keyVal.Value; + + if(dontSaveDefaultValues) { + // Don't write out values that are the same as the default global values + Runtime.Object defaultVal; + if (_defaultGlobalVariables.TryGetValue(name, out defaultVal)) + { + if (RuntimeObjectsEqual(val, defaultVal)) + continue; + } + } + + + writer.WritePropertyStart(name); + Json.WriteRuntimeObject(writer, val); + writer.WritePropertyEnd(); + } + writer.WriteObjectEnd(); + } + + public bool RuntimeObjectsEqual(Runtime.Object obj1, Runtime.Object obj2) + { + if (obj1.GetType() != obj2.GetType()) return false; + + // Perform equality on int/float/bool manually to avoid boxing + var boolVal = obj1 as BoolValue; + if( boolVal != null ) { + return boolVal.value == ((BoolValue)obj2).value; + } + + var intVal = obj1 as IntValue; + if( intVal != null ) { + return intVal.value == ((IntValue)obj2).value; + } + + var floatVal = obj1 as FloatValue; + if (floatVal != null) + { + return floatVal.value == ((FloatValue)obj2).value; + } + + // Other Value type (using proper Equals: list, string, divert path) + var val1 = obj1 as Value; + var val2 = obj2 as Value; + if( val1 != null ) { + return val1.valueObject.Equals(val2.valueObject); + } + + throw new System.Exception("FastRoughDefinitelyEquals: Unsupported runtime object type: "+obj1.GetType()); + } + + public Runtime.Object GetVariableWithName(string name) + { + return GetVariableWithName (name, -1); + } + + public Runtime.Object TryGetDefaultVariableValue (string name) + { + Runtime.Object val = null; + _defaultGlobalVariables.TryGetValue (name, out val); + return val; + } + + public bool GlobalVariableExistsWithName(string name) + { + return _globalVariables.ContainsKey(name) || _defaultGlobalVariables != null && _defaultGlobalVariables.ContainsKey(name); + } + + Runtime.Object GetVariableWithName(string name, int contextIndex) + { + Runtime.Object varValue = GetRawVariableWithName (name, contextIndex); + + // Get value from pointer? + var varPointer = varValue as VariablePointerValue; + if (varPointer) { + varValue = ValueAtVariablePointer (varPointer); + } + + return varValue; + } + + Runtime.Object GetRawVariableWithName(string name, int contextIndex) + { + Runtime.Object varValue = null; + + // 0 context = global + if (contextIndex == 0 || contextIndex == -1) { + if (patch != null && patch.TryGetGlobal(name, out varValue)) + return varValue; + + if ( _globalVariables.TryGetValue (name, out varValue) ) + return varValue; + + // Getting variables can actually happen during globals set up since you can do + // VAR x = A_LIST_ITEM + // So _defaultGlobalVariables may be null. + // We need to do this check though in case a new global is added, so we need to + // revert to the default globals dictionary since an initial value hasn't yet been set. + if( _defaultGlobalVariables != null && _defaultGlobalVariables.TryGetValue(name, out varValue) ) { + return varValue; + } + + var listItemValue = _listDefsOrigin.FindSingleItemListWithName (name); + if (listItemValue) + return listItemValue; + } + + // Temporary + varValue = _callStack.GetTemporaryVariableWithName (name, contextIndex); + + return varValue; + } + + public Runtime.Object ValueAtVariablePointer(VariablePointerValue pointer) + { + return GetVariableWithName (pointer.variableName, pointer.contextIndex); + } + + public void Assign(VariableAssignment varAss, Runtime.Object value) + { + var name = varAss.variableName; + int contextIndex = -1; + + // Are we assigning to a global variable? + bool setGlobal = false; + if (varAss.isNewDeclaration) { + setGlobal = varAss.isGlobal; + } else { + setGlobal = GlobalVariableExistsWithName (name); + } + + // Constructing new variable pointer reference + if (varAss.isNewDeclaration) { + var varPointer = value as VariablePointerValue; + if (varPointer) { + var fullyResolvedVariablePointer = ResolveVariablePointer (varPointer); + value = fullyResolvedVariablePointer; + } + + } + + // Assign to existing variable pointer? + // Then assign to the variable that the pointer is pointing to by name. + else { + + // De-reference variable reference to point to + VariablePointerValue existingPointer = null; + do { + existingPointer = GetRawVariableWithName (name, contextIndex) as VariablePointerValue; + if (existingPointer) { + name = existingPointer.variableName; + contextIndex = existingPointer.contextIndex; + setGlobal = (contextIndex == 0); + } + } while(existingPointer); + } + + + if (setGlobal) { + SetGlobal (name, value); + } else { + _callStack.SetTemporaryVariable (name, value, varAss.isNewDeclaration, contextIndex); + } + } + + public void SnapshotDefaultGlobals () + { + _defaultGlobalVariables = new Dictionary (_globalVariables); + } + + void RetainListOriginsForAssignment (Runtime.Object oldValue, Runtime.Object newValue) + { + var oldList = oldValue as ListValue; + var newList = newValue as ListValue; + if (oldList && newList && newList.value.Count == 0) + newList.value.SetInitialOriginNames (oldList.value.originNames); + } + + public void SetGlobal(string variableName, Runtime.Object value) + { + Runtime.Object oldValue = null; + if( patch == null || !patch.TryGetGlobal(variableName, out oldValue) ) + _globalVariables.TryGetValue (variableName, out oldValue); + + ListValue.RetainListOriginsForAssignment (oldValue, value); + + if (patch != null) + patch.SetGlobal(variableName, value); + else + _globalVariables [variableName] = value; + + if (variableChangedEvent != null && !value.Equals (oldValue)) { + + if (batchObservingVariableChanges) { + if (patch != null) + patch.AddChangedVariable(variableName); + else if(_changedVariablesForBatchObs != null) + _changedVariablesForBatchObs.Add (variableName); + } else { + variableChangedEvent (variableName, value); + } + } + } + + // Given a variable pointer with just the name of the target known, resolve to a variable + // pointer that more specifically points to the exact instance: whether it's global, + // or the exact position of a temporary on the callstack. + VariablePointerValue ResolveVariablePointer(VariablePointerValue varPointer) + { + int contextIndex = varPointer.contextIndex; + + if( contextIndex == -1 ) + contextIndex = GetContextIndexOfVariableNamed (varPointer.variableName); + + var valueOfVariablePointedTo = GetRawVariableWithName (varPointer.variableName, contextIndex); + + // Extra layer of indirection: + // When accessing a pointer to a pointer (e.g. when calling nested or + // recursive functions that take a variable references, ensure we don't create + // a chain of indirection by just returning the final target. + var doubleRedirectionPointer = valueOfVariablePointedTo as VariablePointerValue; + if (doubleRedirectionPointer) { + return doubleRedirectionPointer; + } + + // Make copy of the variable pointer so we're not using the value direct from + // the runtime. Temporary must be local to the current scope. + else { + return new VariablePointerValue (varPointer.variableName, contextIndex); + } + } + + // 0 if named variable is global + // 1+ if named variable is a temporary in a particular call stack element + int GetContextIndexOfVariableNamed(string varName) + { + if (GlobalVariableExistsWithName(varName)) + return 0; + + return _callStack.currentElementIndex; + } + + Dictionary _globalVariables; + + Dictionary _defaultGlobalVariables; + + // Used for accessing temporary variables + CallStack _callStack; + HashSet _changedVariablesForBatchObs; + ListDefinitionsOrigin _listDefsOrigin; + } +} + diff --git a/Assets/Ink/ink-engine-runtime/VariablesState.cs.meta b/Assets/Ink/ink-engine-runtime/VariablesState.cs.meta new file mode 100644 index 000000000..1085a992c --- /dev/null +++ b/Assets/Ink/ink-engine-runtime/VariablesState.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 4bbf0da96db24d542a6a8d094ec9bfa8 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Ink/ink-engine-runtime/Void.cs b/Assets/Ink/ink-engine-runtime/Void.cs new file mode 100644 index 000000000..340570d9d --- /dev/null +++ b/Assets/Ink/ink-engine-runtime/Void.cs @@ -0,0 +1,10 @@ +namespace Ink.Runtime +{ + public class Void : Runtime.Object + { + public Void () + { + } + } +} + diff --git a/Assets/Ink/ink-engine-runtime/Void.cs.meta b/Assets/Ink/ink-engine-runtime/Void.cs.meta new file mode 100644 index 000000000..afd46fe93 --- /dev/null +++ b/Assets/Ink/ink-engine-runtime/Void.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f618733a45617be4e92632f51285b7d3 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Ink/ink-engine-runtime/ink-engine-runtime.csproj b/Assets/Ink/ink-engine-runtime/ink-engine-runtime.csproj new file mode 100644 index 000000000..cac1d950d --- /dev/null +++ b/Assets/Ink/ink-engine-runtime/ink-engine-runtime.csproj @@ -0,0 +1,55 @@ + + + + netstandard1.0;netstandard2.0 + Ink.Runtime + ink-engine-runtime + + + + bin\$(Configuration)\$(TargetFramework)\ink-engine-runtime.xml + inkle Ltd + InkleStudios + inkle Ltd + https://github.com/inkle/ink + https://www.inklestudios.com/ink/ + 0.9.0 + https://avatars2.githubusercontent.com/u/1987090 + Runtime engine for the ink scripting language + git + true + Inkle.Ink.Engine + LICENSE.txt + 1701;1702;1591 + + + + + + + True + + + + + + + + <_Parameter1>ink_compiler + + + <_Parameter1>inklecate + + + <_Parameter1>ink-tests + + + + diff --git a/Assets/Ink/ink-engine-runtime/ink-engine-runtime.csproj.meta b/Assets/Ink/ink-engine-runtime/ink-engine-runtime.csproj.meta new file mode 100644 index 000000000..065a88731 --- /dev/null +++ b/Assets/Ink/ink-engine-runtime/ink-engine-runtime.csproj.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 11e387c19eb670d44a32246d8349b34b +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Prefabs/UI/Choice.prefab b/Assets/Prefabs/UI/Choice.prefab new file mode 100644 index 000000000..212919031 --- /dev/null +++ b/Assets/Prefabs/UI/Choice.prefab @@ -0,0 +1,277 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &2041094598146219077 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1388299342124750210} + - component: {fileID: 7958013063086106696} + m_Layer: 5 + m_Name: TMP SubMeshUI [UbuntuMono-R SDF + LiberationSans SDF Atlas] + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1388299342124750210 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2041094598146219077} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 3385051013345111086} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7958013063086106696 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2041094598146219077} + m_CullTransparentMesh: 0 +--- !u!1 &5076249769481262011 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3385051013345111086} + - component: {fileID: 7536621788324165687} + - component: {fileID: 967251494986686467} + - component: {fileID: 8416456598956235329} + - component: {fileID: 6319816825972189350} + - component: {fileID: 4890066422904577768} + - component: {fileID: 3888200829196937933} + m_Layer: 5 + m_Name: Choice + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3385051013345111086 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5076249769481262011} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1388299342124750210} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 558.5, y: 0} + m_SizeDelta: {x: 1101, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7536621788324165687 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5076249769481262011} + m_CullTransparentMesh: 0 +--- !u!114 &967251494986686467 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5076249769481262011} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Choice A + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 3fb7d873bb5a7944bb9a7c73c430c44b, type: 2} + m_sharedMaterial: {fileID: 2100000, guid: b9d2f6c9804cec1489502dcc1c19ec54, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 28 + m_fontSizeBase: 28 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 256 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &8416456598956235329 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5076249769481262011} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 +--- !u!114 &6319816825972189350 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5076249769481262011} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 0 + m_VerticalFit: 2 +--- !u!114 &4890066422904577768 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5076249769481262011} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 967251494986686467} + m_OnClick: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &3888200829196937933 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5076249769481262011} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 369e33e0c70b03740a9f757c5a1a9dac, type: 3} + m_Name: + m_EditorClassIdentifier: + Label: {fileID: 967251494986686467} + Button: {fileID: 4890066422904577768} diff --git a/Assets/Prefabs/UI/Choice.prefab.meta b/Assets/Prefabs/UI/Choice.prefab.meta new file mode 100644 index 000000000..3ad6755e7 --- /dev/null +++ b/Assets/Prefabs/UI/Choice.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 18da8be52a78cd34e964e16bf36a5aab +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scenes/ARPG.unity b/Assets/Scenes/ARPG.unity index 78ee932a0..e3e1f83a0 100644 --- a/Assets/Scenes/ARPG.unity +++ b/Assets/Scenes/ARPG.unity @@ -220,6 +220,61 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 8750545} m_CullTransparentMesh: 0 +--- !u!1 &14255051 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 14255052} + - component: {fileID: 14255053} + m_Layer: 5 + m_Name: Local Screen + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &14255052 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 14255051} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 5630987214048981317} + - {fileID: 708838806} + m_Father: {fileID: 1726632265} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -34} + m_SizeDelta: {x: -64, y: -132} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &14255053 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 14255051} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 94223b4e7b954df47a5400f0e7be80c1, type: 3} + m_Name: + m_EditorClassIdentifier: + ContinueTrigger: {fileID: 708838807} + Output: {fileID: 2118604532} + ChoiceParent: {fileID: 1225245880} + ChoicePrefab: {fileID: 3888200829196937933, guid: 18da8be52a78cd34e964e16bf36a5aab, + type: 3} --- !u!1 &19222411 GameObject: m_ObjectHideFlags: 0 @@ -808,11 +863,11 @@ RectTransform: m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 1783772015} - m_RootOrder: 0 + m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 527.51, y: -40} + m_AnchoredPosition: {x: 616.52, y: -40} m_SizeDelta: {x: 329.91, y: 56} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &101395091 @@ -1087,6 +1142,102 @@ RectTransform: m_AnchoredPosition: {x: -0.000015258789, y: -40} m_SizeDelta: {x: 0, y: 12} m_Pivot: {x: 0.5, y: 1} +--- !u!1 &119922872 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 119922873} + - component: {fileID: 119922876} + - component: {fileID: 119922875} + - component: {fileID: 119922874} + m_Layer: 5 + m_Name: Divider + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &119922873 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 119922872} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 708838806} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -40} + m_SizeDelta: {x: 0, y: 3} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &119922874 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 119922872} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 1 + m_MinWidth: -1 + m_MinHeight: 4 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 +--- !u!114 &119922875 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 119922872} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.8, g: 0.9333333, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: ea8a1213adadb5a4fba6b1785033a34b, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &119922876 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 119922872} + m_CullTransparentMesh: 0 --- !u!1 &121030072 GameObject: m_ObjectHideFlags: 0 @@ -8018,7 +8169,7 @@ RectTransform: - {fileID: 1914914798} - {fileID: 655315360} m_Father: {fileID: 1726632265} - m_RootOrder: 2 + m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 1, y: 1} @@ -9494,7 +9645,7 @@ RectTransform: - {fileID: 250585915} - {fileID: 1130044040} m_Father: {fileID: 1726632265} - m_RootOrder: 1 + m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 1, y: 1} @@ -10864,6 +11015,97 @@ MeshFilter: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 708399893} m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &708838805 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 708838806} + - component: {fileID: 708838809} + - component: {fileID: 708838808} + - component: {fileID: 708838807} + m_Layer: 5 + m_Name: Event Log + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &708838806 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 708838805} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1523504652} + - {fileID: 119922873} + - {fileID: 1648604381} + m_Father: {fileID: 14255052} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 1132, y: 0} + m_Pivot: {x: 1, y: 0.5} +--- !u!114 &708838807 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 708838805} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: aa69c313aba23f945b760e79c45083ad, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &708838808 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 708838805} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0.29803923} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 7ed12bf887e951949bd02894a21fb3ff, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &708838809 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 708838805} + m_CullTransparentMesh: 0 --- !u!1 &719842150 GameObject: m_ObjectHideFlags: 0 @@ -11872,6 +12114,101 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 776416423} m_CullTransparentMesh: 1 +--- !u!1 &776899541 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 776899542} + - component: {fileID: 776899544} + - component: {fileID: 776899543} + m_Layer: 5 + m_Name: Scrollbar Vertical + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &776899542 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 776899541} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1036871929} + m_Father: {fileID: 1648604381} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 10, y: 0} + m_Pivot: {x: 1, y: 1} +--- !u!114 &776899543 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 776899541} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2a4db7a114972834c8e4117be1d82ba3, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1852331625} + m_HandleRect: {fileID: 1852331624} + m_Direction: 2 + m_Value: 0 + m_Size: 1 + m_NumberOfSteps: 0 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!222 &776899544 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 776899541} + m_CullTransparentMesh: 0 --- !u!1 &783543864 GameObject: m_ObjectHideFlags: 0 @@ -13750,11 +14087,11 @@ RectTransform: m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 1783772015} - m_RootOrder: 2 + m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 960.13495, y: -40} + m_AnchoredPosition: {x: 1049.145, y: -40} m_SizeDelta: {x: 146.84, y: 56} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &931657852 @@ -16110,6 +16447,42 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1029396710} m_CullTransparentMesh: 0 +--- !u!1 &1036871928 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1036871929} + m_Layer: 5 + m_Name: Sliding Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1036871929 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1036871928} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1852331624} + m_Father: {fileID: 776899542} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -20, y: -20} + m_Pivot: {x: 0.5, y: 0.5} --- !u!1 &1037490738 GameObject: m_ObjectHideFlags: 0 @@ -17028,6 +17401,96 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1115239398} m_CullTransparentMesh: 1 +--- !u!1 &1115501494 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1115501495} + - component: {fileID: 1115501498} + - component: {fileID: 1115501497} + - component: {fileID: 1115501496} + m_Layer: 5 + m_Name: Viewport + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1115501495 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1115501494} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1225245880} + m_Father: {fileID: 1648604381} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -7, y: 0} + m_Pivot: {x: 0, y: 1} +--- !u!114 &1115501496 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1115501494} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10917, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1115501497 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1115501494} + m_CullTransparentMesh: 0 +--- !u!114 &1115501498 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1115501494} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 31a19414c41e5ae4aae2af33fee712f6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ShowMaskGraphic: 0 --- !u!1 &1130044037 GameObject: m_ObjectHideFlags: 0 @@ -18045,6 +18508,84 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 1281fe44325f9b548aa42dc331b17266, type: 3} m_Name: m_EditorClassIdentifier: +--- !u!1 &1225245879 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1225245880} + - component: {fileID: 1225245882} + - component: {fileID: 1225245881} + m_Layer: 5 + m_Name: Content + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1225245880 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1225245879} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 2118604529} + m_Father: {fileID: 1115501495} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 4, y: 0} + m_SizeDelta: {x: -8, y: -330.99} + m_Pivot: {x: 0, y: 1} +--- !u!114 &1225245881 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1225245879} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 0 + m_VerticalFit: 2 +--- !u!114 &1225245882 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1225245879} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 8 + m_Right: 8 + m_Top: 8 + m_Bottom: 8 + m_ChildAlignment: 0 + m_Spacing: 32 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 0 + m_ChildControlWidth: 1 + m_ChildControlHeight: 1 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 --- !u!1001 &1227588621 PrefabInstance: m_ObjectHideFlags: 0 @@ -19920,11 +20461,11 @@ RectTransform: m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 1783772015} - m_RootOrder: 3 + m_RootOrder: 4 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 1145.4999, y: -40} + m_AnchoredPosition: {x: 1234.5099, y: -40} m_SizeDelta: {x: 223.89, y: 56} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &1399108419 @@ -20873,11 +21414,11 @@ RectTransform: m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 1783772015} - m_RootOrder: 1 + m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 789.58997, y: -40} + m_AnchoredPosition: {x: 878.6, y: -40} m_SizeDelta: {x: 194.25, y: 56} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &1464157086 @@ -21251,6 +21792,203 @@ MeshFilter: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1476765547} m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1485884351 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1485884352} + - component: {fileID: 1485884356} + - component: {fileID: 1485884355} + - component: {fileID: 1485884354} + - component: {fileID: 1485884353} + m_Layer: 5 + m_Name: Local + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1485884352 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1485884351} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1783772015} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 362.555, y: -40} + m_SizeDelta: {x: 178.02, y: 56} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1485884353 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1485884351} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d90317f6ecd38754fad9aee92f46b126, type: 3} + m_Name: + m_EditorClassIdentifier: + TabContents: {fileID: 14255051} + Button: {fileID: 1485884354} + Tab: 4 + Text: {fileID: 1485884355} + RequireDock: 0 +--- !u!114 &1485884354 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1485884351} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1485884355} + m_OnClick: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &1485884355 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1485884351} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Local + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: f65e20c70af9671428dd62c7c635e417, type: 2} + m_sharedMaterial: {fileID: 2100000, guid: 0e7beef0cfe7ac44cb03690b8e068c5e, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 49.95 + m_fontSizeBase: 36 + m_fontWeight: 400 + m_enableAutoSizing: 1 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 1 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!222 &1485884356 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1485884351} + m_CullTransparentMesh: 0 --- !u!1 &1486694123 GameObject: m_ObjectHideFlags: 0 @@ -21525,6 +22263,162 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 1281fe44325f9b548aa42dc331b17266, type: 3} m_Name: m_EditorClassIdentifier: +--- !u!1 &1523504651 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1523504652} + - component: {fileID: 1523504655} + - component: {fileID: 1523504654} + - component: {fileID: 1523504653} + m_Layer: 5 + m_Name: Title + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1523504652 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1523504651} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 708838806} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 16, y: -8} + m_SizeDelta: {x: -32, y: 24} + m_Pivot: {x: 0, y: 1} +--- !u!114 &1523504653 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1523504651} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: 9999 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 +--- !u!114 &1523504654 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1523504651} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Event Log + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 53555f7a2d5e745428813f1b1118734f, type: 2} + m_sharedMaterial: {fileID: -2804126062856497447, guid: 53555f7a2d5e745428813f1b1118734f, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 24 + m_fontSizeBase: 24 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!222 &1523504655 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1523504651} + m_CullTransparentMesh: 0 --- !u!1 &1529341206 GameObject: m_ObjectHideFlags: 0 @@ -21945,7 +22839,7 @@ PrefabInstance: - target: {fileID: 878382121558056004, guid: 2758dfa2744d7ad4d8877545189d116e, type: 3} propertyPath: m_AnchoredPosition.x - value: 55.675 + value: 0 objectReference: {fileID: 0} - target: {fileID: 878382121558056004, guid: 2758dfa2744d7ad4d8877545189d116e, type: 3} @@ -23145,7 +24039,7 @@ PrefabInstance: - target: {fileID: 878382121558056004, guid: 2758dfa2744d7ad4d8877545189d116e, type: 3} propertyPath: m_AnchoredPosition.x - value: 60.98 + value: 0 objectReference: {fileID: 0} - target: {fileID: 878382121558056004, guid: 2758dfa2744d7ad4d8877545189d116e, type: 3} @@ -23817,6 +24711,83 @@ Transform: m_Father: {fileID: 1037490739} m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1648604380 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1648604381} + - component: {fileID: 1648604383} + - component: {fileID: 1648604382} + m_Layer: 5 + m_Name: Scroll View + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1648604381 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1648604380} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1115501495} + - {fileID: 776899542} + m_Father: {fileID: 708838806} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -20.5} + m_SizeDelta: {x: 0, y: -49} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &1648604382 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1648604380} + m_CullTransparentMesh: 0 +--- !u!114 &1648604383 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1648604380} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1aa08ab6e0800fa44ae55d278d1423e3, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Content: {fileID: 1225245880} + m_Horizontal: 0 + m_Vertical: 1 + m_MovementType: 2 + m_Elasticity: 0.1 + m_Inertia: 1 + m_DecelerationRate: 0.135 + m_ScrollSensitivity: 10 + m_Viewport: {fileID: 1115501495} + m_HorizontalScrollbar: {fileID: 0} + m_VerticalScrollbar: {fileID: 776899543} + m_HorizontalScrollbarVisibility: 0 + m_VerticalScrollbarVisibility: 2 + m_HorizontalScrollbarSpacing: -3 + m_VerticalScrollbarSpacing: -3 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] --- !u!1 &1665127615 GameObject: m_ObjectHideFlags: 0 @@ -24561,6 +25532,7 @@ RectTransform: m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: + - {fileID: 14255052} - {fileID: 1997243493} - {fileID: 630131159} - {fileID: 522642868} @@ -25334,12 +26306,13 @@ RectTransform: m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: + - {fileID: 1485884352} - {fileID: 101395090} - {fileID: 1464157085} - {fileID: 931657851} - {fileID: 1399108418} m_Father: {fileID: 1726632265} - m_RootOrder: 4 + m_RootOrder: 5 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 1, y: 1} @@ -26155,6 +27128,81 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1850578694} m_CullTransparentMesh: 0 +--- !u!1 &1852331623 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1852331624} + - component: {fileID: 1852331626} + - component: {fileID: 1852331625} + m_Layer: 5 + m_Name: Handle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1852331624 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1852331623} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1036871929} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1852331625 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1852331623} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 0.44583336, b: 0.050000012, a: 0.65882355} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 7ed12bf887e951949bd02894a21fb3ff, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1852331626 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1852331623} + m_CullTransparentMesh: 0 --- !u!1 &1857285684 GameObject: m_ObjectHideFlags: 0 @@ -26251,6 +27299,50 @@ MeshFilter: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1857285684} m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1863046923 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1863046924} + - component: {fileID: 1863046925} + m_Layer: 5 + m_Name: TMP SubMeshUI [UbuntuMono-R SDF + LiberationSans SDF Atlas] + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1863046924 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1863046923} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 2118604529} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &1863046925 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1863046923} + m_CullTransparentMesh: 0 --- !u!1 &1868140980 GameObject: m_ObjectHideFlags: 0 @@ -27457,7 +28549,7 @@ RectTransform: - {fileID: 7399108074413661591} - {fileID: 245842385} m_Father: {fileID: 1726632265} - m_RootOrder: 0 + m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 1, y: 1} @@ -27868,7 +28960,7 @@ RectTransform: - {fileID: 1998350929} - {fileID: 1005841432} m_Father: {fileID: 1726632265} - m_RootOrder: 3 + m_RootOrder: 4 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 1, y: 1} @@ -28877,6 +29969,184 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 1281fe44325f9b548aa42dc331b17266, type: 3} m_Name: m_EditorClassIdentifier: +--- !u!1 &2118604528 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2118604529} + - component: {fileID: 2118604533} + - component: {fileID: 2118604532} + - component: {fileID: 2118604531} + - component: {fileID: 2118604530} + m_Layer: 5 + m_Name: History + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2118604529 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2118604528} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1863046924} + m_Father: {fileID: 1225245880} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 558.5, y: -134.005} + m_SizeDelta: {x: 1101, y: 252.01} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2118604530 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2118604528} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 0 + m_VerticalFit: 2 +--- !u!114 &2118604531 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2118604528} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 +--- !u!114 &2118604532 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2118604528} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: "What the fuck did you just fucking type about me, you little bitch? I\u2019ll + have you know I graduated top of my class at MIT, and I\u2019ve been involved + in numerous secret raids with Anonymous, and I have over 300 confirmed DDoSes.\n\nI + am trained in online trolling and I\u2019m the top hacker in the entire world. + You are nothing to me but just another virus host. I will wipe you the fuck out + with precision the likes of which has never been seen before on the Internet, + mark my fucking words. You think you can get away with typing that shit to me + over the Internet? Think again, fucker." + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 3fb7d873bb5a7944bb9a7c73c430c44b, type: 2} + m_sharedMaterial: {fileID: 2100000, guid: b9d2f6c9804cec1489502dcc1c19ec54, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 28 + m_fontSizeBase: 28 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 256 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!222 &2118604533 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2118604528} + m_CullTransparentMesh: 0 --- !u!1 &2122035459 GameObject: m_ObjectHideFlags: 0 @@ -33242,6 +34512,456 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 7234671467082970194} m_CullTransparentMesh: 0 +--- !u!114 &3408386362260095380 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3408386362260095383} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 0 + m_VerticalFit: 2 +--- !u!114 &3408386362260095381 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3408386362260095383} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 8 + m_Right: 8 + m_Top: 8 + m_Bottom: 8 + m_ChildAlignment: 0 + m_Spacing: 4 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 0 + m_ChildControlWidth: 1 + m_ChildControlHeight: 1 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 +--- !u!224 &3408386362260095382 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3408386362260095383} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 3408386362832899666} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 4, y: 0} + m_SizeDelta: {x: -8, y: -583} + m_Pivot: {x: 0, y: 1} +--- !u!1 &3408386362260095383 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3408386362260095382} + - component: {fileID: 3408386362260095381} + - component: {fileID: 3408386362260095380} + m_Layer: 5 + m_Name: Content + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &3408386362298136552 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3408386362298136559} + - component: {fileID: 3408386362298136557} + - component: {fileID: 3408386362298136558} + m_Layer: 5 + m_Name: Handle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!222 &3408386362298136557 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3408386362298136552} + m_CullTransparentMesh: 0 +--- !u!114 &3408386362298136558 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3408386362298136552} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 0.44583336, b: 0.050000012, a: 0.65882355} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 7ed12bf887e951949bd02894a21fb3ff, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!224 &3408386362298136559 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3408386362298136552} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 3408386363387120877} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &3408386362832899664 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3408386362832899667} + m_CullTransparentMesh: 0 +--- !u!114 &3408386362832899665 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3408386362832899667} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10917, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!224 &3408386362832899666 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3408386362832899667} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 3408386362260095382} + m_Father: {fileID: 3408386364042537272} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -7, y: 0} + m_Pivot: {x: 0, y: 1} +--- !u!1 &3408386362832899667 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3408386362832899666} + - component: {fileID: 3408386362832899671} + - component: {fileID: 3408386362832899664} + - component: {fileID: 3408386362832899665} + m_Layer: 5 + m_Name: Viewport + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &3408386362832899671 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3408386362832899667} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 31a19414c41e5ae4aae2af33fee712f6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ShowMaskGraphic: 0 +--- !u!224 &3408386363387120877 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3408386363387120878} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 3408386362298136559} + m_Father: {fileID: 3408386364039715001} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -20, y: -20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &3408386363387120878 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3408386363387120877} + m_Layer: 5 + m_Name: Sliding Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &3408386364039715000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3408386364039715002} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2a4db7a114972834c8e4117be1d82ba3, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 3408386362298136558} + m_HandleRect: {fileID: 3408386362298136559} + m_Direction: 2 + m_Value: 0 + m_Size: 1 + m_NumberOfSteps: 0 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!224 &3408386364039715001 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3408386364039715002} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 3408386363387120877} + m_Father: {fileID: 3408386364042537272} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 10, y: 0} + m_Pivot: {x: 1, y: 1} +--- !u!1 &3408386364039715002 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3408386364039715001} + - component: {fileID: 3408386364039715006} + - component: {fileID: 3408386364039715000} + m_Layer: 5 + m_Name: Scrollbar Vertical + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!222 &3408386364039715006 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3408386364039715002} + m_CullTransparentMesh: 0 +--- !u!224 &3408386364042537272 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3408386364042537273} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 3408386362832899666} + - {fileID: 3408386364039715001} + m_Father: {fileID: 5630987214048981317} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -20.5} + m_SizeDelta: {x: 0, y: -49} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &3408386364042537273 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3408386364042537272} + - component: {fileID: 3408386364042537277} + - component: {fileID: 3408386364042537279} + m_Layer: 5 + m_Name: Scroll View + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &3408386364042537277 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3408386364042537273} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1aa08ab6e0800fa44ae55d278d1423e3, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Content: {fileID: 3408386362260095382} + m_Horizontal: 0 + m_Vertical: 1 + m_MovementType: 2 + m_Elasticity: 0.1 + m_Inertia: 1 + m_DecelerationRate: 0.135 + m_ScrollSensitivity: 10 + m_Viewport: {fileID: 3408386362832899666} + m_HorizontalScrollbar: {fileID: 0} + m_VerticalScrollbar: {fileID: 3408386364039715000} + m_HorizontalScrollbarVisibility: 0 + m_VerticalScrollbarVisibility: 2 + m_HorizontalScrollbarSpacing: -3 + m_VerticalScrollbarSpacing: -3 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!222 &3408386364042537279 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3408386364042537273} + m_CullTransparentMesh: 0 --- !u!114 &3792548363175711565 MonoBehaviour: m_ObjectHideFlags: 0 @@ -33661,6 +35381,316 @@ RectTransform: m_AnchoredPosition: {x: 0, y: -40} m_SizeDelta: {x: 0, y: 3} m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &5630987212537872480 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5630987212537872481} + - component: {fileID: 5630987212537872484} + - component: {fileID: 5630987212537872483} + - component: {fileID: 5630987212537872482} + m_Layer: 5 + m_Name: Divider + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5630987212537872481 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5630987212537872480} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 5630987214048981317} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -40} + m_SizeDelta: {x: 0, y: 3} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &5630987212537872482 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5630987212537872480} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 1 + m_MinWidth: -1 + m_MinHeight: 4 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 +--- !u!114 &5630987212537872483 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5630987212537872480} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.8, g: 0.9333333, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: ea8a1213adadb5a4fba6b1785033a34b, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &5630987212537872484 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5630987212537872480} + m_CullTransparentMesh: 0 +--- !u!1 &5630987214048981316 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5630987214048981317} + - component: {fileID: 5630987214048981320} + - component: {fileID: 5630987214048981323} + m_Layer: 5 + m_Name: Stories + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5630987214048981317 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5630987214048981316} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 5630987214140693203} + - {fileID: 5630987212537872481} + - {fileID: 3408386364042537272} + m_Father: {fileID: 14255052} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 400, y: 0} + m_Pivot: {x: 0, y: 0.5} +--- !u!222 &5630987214048981320 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5630987214048981316} + m_CullTransparentMesh: 0 +--- !u!114 &5630987214048981323 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5630987214048981316} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0.29803923} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 7ed12bf887e951949bd02894a21fb3ff, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &5630987214140693202 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5630987214140693203} + - component: {fileID: 5630987214140693205} + - component: {fileID: 5630987214140693204} + - component: {fileID: 6727939290776359631} + m_Layer: 5 + m_Name: Title + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5630987214140693203 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5630987214140693202} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 5630987214048981317} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 16, y: -8} + m_SizeDelta: {x: -32, y: 24} + m_Pivot: {x: 0, y: 1} +--- !u!114 &5630987214140693204 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5630987214140693202} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Stories + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 53555f7a2d5e745428813f1b1118734f, type: 2} + m_sharedMaterial: {fileID: -2804126062856497447, guid: 53555f7a2d5e745428813f1b1118734f, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 24 + m_fontSizeBase: 24 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!222 &5630987214140693205 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5630987214140693202} + m_CullTransparentMesh: 0 --- !u!1 &5731918074809343756 GameObject: m_ObjectHideFlags: 0 @@ -33717,6 +35747,26 @@ RectTransform: m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &6727939290776359631 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5630987214140693202} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: 9999 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 --- !u!222 &6770948969429432073 CanvasRenderer: m_ObjectHideFlags: 0 diff --git a/Assets/Scripts/Gameplay/ActionGameManager.cs b/Assets/Scripts/Gameplay/ActionGameManager.cs index 6c4d8316a..26437e6dc 100644 --- a/Assets/Scripts/Gameplay/ActionGameManager.cs +++ b/Assets/Scripts/Gameplay/ActionGameManager.cs @@ -8,6 +8,8 @@ using System.Collections.Generic; using System.IO; using System.Linq; using Cinemachine; +using Ink; +using Ink.Runtime; using MessagePack; using TMPro; using UniRx; @@ -21,6 +23,7 @@ using UnityEngine.EventSystems; using static Unity.Mathematics.math; using float2 = Unity.Mathematics.float2; using float3 = Unity.Mathematics.float3; +using Path = System.IO.Path; using quaternion = Unity.Mathematics.quaternion; using Random = UnityEngine.Random; @@ -154,6 +157,7 @@ public class ActionGameManager : MonoBehaviour public ItemManager ItemManager { get; private set; } public Zone Zone { get; private set; } public List Loadouts { get; } = new List(); + public IEnumerable GetStories => _stories; private readonly (float2 direction, string name)[] _directions = { (float2(0, 1), "Front"), @@ -165,6 +169,8 @@ public class ActionGameManager : MonoBehaviour private DragAction _dragAction; private Action _endDragCallback; + private List _stories = new List(); + public EntitySettings NewEntitySettings { get => MessagePackSerializer.Deserialize(MessagePackSerializer.Serialize(Settings.GameplaySettings.DefaultEntitySettings)); @@ -200,6 +206,14 @@ public class ActionGameManager : MonoBehaviour ItemManager = new ItemManager(CultCache, Settings.GameplaySettings, Debug.Log); ZoneRenderer.ItemManager = ItemManager; + var narrativePath = GameDataDirectory.CreateSubdirectory("Narrative"); + var narrativeFiles = narrativePath.EnumerateFiles("*.ink"); + foreach(var inkFile in narrativeFiles) + { + var compiler = new Compiler(File.ReadAllText(inkFile.FullName)); + _stories.Add(compiler.Compile()); + } + // _loadoutPath = GameDataDirectory.CreateSubdirectory("Loadouts"); // Loadouts.AddRange(_loadoutPath.EnumerateFiles("*.loadout") // .Select(fi => MessagePackSerializer.Deserialize(File.ReadAllBytes(fi.FullName)))); diff --git a/Assets/Scripts/UI/ChoicePrefab.cs b/Assets/Scripts/UI/ChoicePrefab.cs new file mode 100644 index 000000000..2946d60c7 --- /dev/null +++ b/Assets/Scripts/UI/ChoicePrefab.cs @@ -0,0 +1,9 @@ +using TMPro; +using UnityEngine; +using UnityEngine.UI; + +public class ChoicePrefab : MonoBehaviour +{ + public TextMeshProUGUI Label; + public Button Button; +} \ No newline at end of file diff --git a/Assets/Scripts/UI/ChoicePrefab.cs.meta b/Assets/Scripts/UI/ChoicePrefab.cs.meta new file mode 100644 index 000000000..bd24e9ec5 --- /dev/null +++ b/Assets/Scripts/UI/ChoicePrefab.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 369e33e0c70b03740a9f757c5a1a9dac +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/UI/LocalMenu.cs b/Assets/Scripts/UI/LocalMenu.cs new file mode 100644 index 000000000..88259f0dd --- /dev/null +++ b/Assets/Scripts/UI/LocalMenu.cs @@ -0,0 +1,63 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.Linq; +using Ink.Runtime; +using TMPro; +using UniRx; +using UniRx.Triggers; +using UnityEngine; + +public class LocalMenu : MonoBehaviour +{ + public ObservablePointerClickTrigger ContinueTrigger; + public TextMeshProUGUI Output; + public RectTransform ChoiceParent; + public ChoicePrefab ChoicePrefab; + + private Story _currentStory; + private List _choiceInstances = new List(); + + private void OnEnable() + { + _currentStory = ActionGameManager.Instance.GetStories.First(); + Continue(); + } + + void Start() + { + ContinueTrigger.OnPointerClickAsObservable().Subscribe(pointerEvent => + { + if (_currentStory == null) return; + + if(_currentStory.canContinue) Continue(); + }); + } + + void Continue() + { + Output.text = _currentStory.Continue(); + + foreach(var instance in _choiceInstances) + Destroy(instance); + _choiceInstances.Clear(); + + foreach (var choice in _currentStory.currentChoices) + { + var choiceInstance = Instantiate(ChoicePrefab, ChoiceParent); + choiceInstance.Label.text = choice.text; + choiceInstance.Button.onClick.AddListener(() => + { + _currentStory.ChoosePath(choice.targetPath); + Continue(); + }); + _choiceInstances.Add(choiceInstance.gameObject); + } + } + + // Update is called once per frame + void Update() + { + + } +} diff --git a/Assets/Scripts/UI/LocalMenu.cs.meta b/Assets/Scripts/UI/LocalMenu.cs.meta new file mode 100644 index 000000000..41858aad1 --- /dev/null +++ b/Assets/Scripts/UI/LocalMenu.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 94223b4e7b954df47a5400f0e7be80c1 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/UI/MenuPanel.cs b/Assets/Scripts/UI/MenuPanel.cs index 20e19a005..ce6f6ddeb 100644 --- a/Assets/Scripts/UI/MenuPanel.cs +++ b/Assets/Scripts/UI/MenuPanel.cs @@ -73,5 +73,6 @@ public enum MenuTab Map, Inventory, Trade, - Galaxy + Galaxy, + Local } \ No newline at end of file diff --git a/GameData/PlayerSettings.msgpack b/GameData/PlayerSettings.msgpack index c76a1ccc0..a9d771654 100644 --- a/GameData/PlayerSettings.msgpack +++ b/GameData/PlayerSettings.msgpack @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:0ac5d262fca3d766a88a6f5849db285f7b8d42cda04f747c9f36f562c85490b9 +oid sha256:e65428c99ca8688be45695ee938703cc2cfb82f7c0a41594ccbfaecad24ec2e3 size 17318 From 7cfc5cd04f7c7be3cb1a13ad044bdd0016379885 Mon Sep 17 00:00:00 2001 From: Reinier Vens Date: Wed, 21 Apr 2021 01:49:07 +0100 Subject: [PATCH 44/51] Drag and Drop + Zoooooooom Refactored inventory drag & drop to use new global drag & drop management Enabled Drag & Drop from inventory panel to action bar Enabled gear and consumable item binding Fixed stat modifier behavior to allow it to be toggled Fixed Switch behavior to make it bindable Added lambda multiplier to aether drive so that stat mod can target it --- Aetheria.Shared.Unity.csproj | 2 +- .../Fancy/Weapon Groups.prefab | 2 +- Assets/Scenes/ARPG.unity | 12 + Assets/Scripts/Gameplay/ActionBarSlot.cs | 13 +- Assets/Scripts/Gameplay/ActionGameManager.cs | 72 +++-- Assets/Scripts/Gameplay/GameSettings.cs | 1 + .../ServerShared/Behaviors/AetherDrive.cs | 15 +- .../ServerShared/Behaviors/StatModifier.cs | 33 ++- .../Scripts/ServerShared/Behaviors/Switch.cs | 12 +- .../Serialization/TypeFormatterResolver.cs | 5 +- Assets/Scripts/ServerShared/Entity.cs | 13 +- Assets/Scripts/ServerShared/ItemData.cs | 2 +- Assets/Scripts/ServerShared/Ship.cs | 2 +- Assets/Scripts/UI/InventoryMenu.cs | 207 -------------- Assets/Scripts/UI/InventoryPanel.cs | 257 +++++++++++++++--- Assets/Scripts/UI/PropertiesPanel.cs | 2 +- .../UI/SchematicTriggerGroupElement.cs | 10 - .../UI/SchematicTriggerGroupElement.cs.meta | 3 - GameData/AetherDB.msgpack | 4 +- GameData/PlayerSettings.msgpack | 4 +- RethinkDB.csproj | 4 +- 21 files changed, 352 insertions(+), 323 deletions(-) delete mode 100644 Assets/Scripts/UI/SchematicTriggerGroupElement.cs delete mode 100644 Assets/Scripts/UI/SchematicTriggerGroupElement.cs.meta diff --git a/Aetheria.Shared.Unity.csproj b/Aetheria.Shared.Unity.csproj index 74e3a3fee..985828c98 100644 --- a/Aetheria.Shared.Unity.csproj +++ b/Aetheria.Shared.Unity.csproj @@ -109,8 +109,8 @@ - + diff --git a/Assets/Prefabs/UI/Properties Panel/Fancy/Weapon Groups.prefab b/Assets/Prefabs/UI/Properties Panel/Fancy/Weapon Groups.prefab index 4c7acce17..77e704a12 100644 --- a/Assets/Prefabs/UI/Properties Panel/Fancy/Weapon Groups.prefab +++ b/Assets/Prefabs/UI/Properties Panel/Fancy/Weapon Groups.prefab @@ -65,7 +65,7 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_text: Stat Name + m_text: Weapon Groups m_isRightToLeft: 0 m_fontAsset: {fileID: 11400000, guid: 53555f7a2d5e745428813f1b1118734f, type: 2} m_sharedMaterial: {fileID: -2804126062856497447, guid: 53555f7a2d5e745428813f1b1118734f, diff --git a/Assets/Scenes/ARPG.unity b/Assets/Scenes/ARPG.unity index e3e1f83a0..9d198c947 100644 --- a/Assets/Scenes/ARPG.unity +++ b/Assets/Scenes/ARPG.unity @@ -5592,6 +5592,7 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: Dialog: {fileID: 0} + DragParent: {fileID: 0} Flip: 1 Settings: {fileID: 11400000, guid: cd2344e2001a37544aab0960c164d4ff, type: 2} GameManager: {fileID: 1009503729} @@ -9907,6 +9908,11 @@ PrefabInstance: value: objectReference: {fileID: 11400000, guid: cd2344e2001a37544aab0960c164d4ff, type: 2} + - target: {fileID: 2279630453886260054, guid: aac073da6df367d499834c926930dd84, + type: 3} + propertyPath: DragParent + value: + objectReference: {fileID: 245842385} - target: {fileID: 2279630453886260054, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: ContextMenu @@ -31053,6 +31059,11 @@ PrefabInstance: value: objectReference: {fileID: 11400000, guid: cd2344e2001a37544aab0960c164d4ff, type: 2} + - target: {fileID: 2279630453886260054, guid: aac073da6df367d499834c926930dd84, + type: 3} + propertyPath: DragParent + value: + objectReference: {fileID: 245842385} - target: {fileID: 2279630453886260054, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: ContextMenu @@ -36242,6 +36253,7 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: Dialog: {fileID: 0} + DragParent: {fileID: 0} Flip: 0 Settings: {fileID: 11400000, guid: cd2344e2001a37544aab0960c164d4ff, type: 2} GameManager: {fileID: 1009503729} diff --git a/Assets/Scripts/Gameplay/ActionBarSlot.cs b/Assets/Scripts/Gameplay/ActionBarSlot.cs index b871a0554..16c08517a 100644 --- a/Assets/Scripts/Gameplay/ActionBarSlot.cs +++ b/Assets/Scripts/Gameplay/ActionBarSlot.cs @@ -147,15 +147,16 @@ public class ActionBarGearBinding : ActionBarBinding public ActionBarGearBinding(Entity entity, ActionBarSlot slot, EquippedItem item, IActivatedBehavior behavior) : base(entity, slot) { Item = item; + var data = item.EquippableItem.Data.Value as EquippableItemData; Behavior = behavior; Slot.QuantityRemaining.gameObject.SetActive(false); - if(!string.IsNullOrEmpty(Item.Data.ActionBarIcon)) - { - Slot.Label.gameObject.SetActive(false); - Slot.Icon.gameObject.SetActive(true); + Slot.Icon.gameObject.SetActive(true); + Slot.Label.gameObject.SetActive(false); + if (!string.IsNullOrEmpty(Item.Data.ActionBarIcon)) Slot.Icon.texture = Resources.Load(Item.Data.ActionBarIcon.Substring("Assets/Resources/".Length).Split('.').First()); - } - else Slot.Icon.gameObject.SetActive(false); + else if (data is WeaponItemData weaponItemData) + Slot.Icon.texture = ActionGameManager.Instance.Settings.GetIcon(weaponItemData.WeaponType).texture; + else Slot.Icon.texture = ActionGameManager.Instance.Settings.GetIcon(data.HardpointType).texture; } public override void Activate() diff --git a/Assets/Scripts/Gameplay/ActionGameManager.cs b/Assets/Scripts/Gameplay/ActionGameManager.cs index 26437e6dc..771f2c677 100644 --- a/Assets/Scripts/Gameplay/ActionGameManager.cs +++ b/Assets/Scripts/Gameplay/ActionGameManager.cs @@ -166,8 +166,8 @@ public class ActionGameManager : MonoBehaviour (float2(0, -1), "Rear") }; - private DragAction _dragAction; - private Action _endDragCallback; + public DragObject DragObject { get; private set; } + private Func _endDragCallback; private List _stories = new List(); @@ -242,7 +242,7 @@ public class ActionGameManager : MonoBehaviour Input.Global.Dock.performed += context => { - if (EventSystem.current.currentSelectedGameObject?.GetComponent() != null) return; + if (EventSystem.current.currentSelectedGameObject != null && EventSystem.current.currentSelectedGameObject.GetComponent() != null) return; if (MainMenu.gameObject.activeSelf) return; if (CurrentEntity == null) { @@ -356,13 +356,18 @@ public class ActionGameManager : MonoBehaviour //Debug.Log("Registering binding!"); switch (dragAction) { - case EquippedItemDragAction equippedItemDragAction: - break; - case ItemInstanceDragAction itemInstanceDragAction: - break; - case WeaponGroupDragAction weaponGroupDragAction: + case EquippedItemDragObject equippedItemDragAction: + var trigger = equippedItemDragAction.EquippedItem.GetBehavior(); + if (trigger == null) return false; + slot.Binding = new ActionBarGearBinding(CurrentEntity, slot, equippedItemDragAction.EquippedItem, trigger); + return true; + case ItemInstanceDragObject itemInstanceDragAction: + if (!(itemInstanceDragAction.Item.Data.Value is ConsumableItemData consumable)) return false; + slot.Binding = new ActionBarConsumableBinding(CurrentEntity, slot, consumable); + return true; + case WeaponGroupDragObject weaponGroupDragAction: slot.Binding = new ActionBarWeaponGroupBinding(CurrentEntity, slot, weaponGroupDragAction.Group); - break; + return true; default: throw new ArgumentOutOfRangeException(nameof(dragAction)); } @@ -511,12 +516,12 @@ public class ActionGameManager : MonoBehaviour }); } - public void BeginDrag(DragAction dragAction) + public void BeginDrag(DragObject dragObject) { - _dragAction = dragAction; + this.DragObject = dragObject; } - public void RegisterDragTarget(Action onEndDrag) + public void RegisterDragTarget(Func onEndDrag) { _endDragCallback = onEndDrag; } @@ -526,10 +531,11 @@ public class ActionGameManager : MonoBehaviour _endDragCallback = null; } - public void EndDrag() + public bool EndDrag() { - _endDragCallback?.Invoke(_dragAction); - _dragAction = null; + var success = _endDragCallback?.Invoke(DragObject); + DragObject = null; + return success ?? false; } public void EnablePlayerInput() @@ -606,7 +612,7 @@ public class ActionGameManager : MonoBehaviour private void ToggleMainMenu() { - if (EventSystem.current.currentSelectedGameObject?.GetComponent() != null) return; + if (EventSystem.current.currentSelectedGameObject != null && EventSystem.current.currentSelectedGameObject.GetComponent() != null) return; if (CurrentEntity == null) return; if (MainMenu.gameObject.activeSelf) { @@ -645,7 +651,7 @@ public class ActionGameManager : MonoBehaviour private void ToggleMenuTab(MenuTab tab) { - if (EventSystem.current.currentSelectedGameObject?.GetComponent() != null) return; + if (EventSystem.current.currentSelectedGameObject != null && EventSystem.current.currentSelectedGameObject.GetComponent() != null) return; if (MainMenu.gameObject.activeSelf) return; if (Menu.gameObject.activeSelf && Menu.CurrentTab == tab) { @@ -1082,11 +1088,11 @@ public class ActionGameManager : MonoBehaviour } } -public abstract class DragAction{} +public abstract class DragObject{} -public class WeaponGroupDragAction : DragAction +public class WeaponGroupDragObject : DragObject { - public WeaponGroupDragAction(int group) + public WeaponGroupDragObject(int group) { Group = group; } @@ -1094,22 +1100,36 @@ public class WeaponGroupDragAction : DragAction public int Group { get; } } -public class ItemInstanceDragAction : DragAction +public abstract class ItemDragObject : DragObject { - public ItemInstanceDragAction(ItemInstance item) + protected ItemDragObject(int2 originCellOffset, ItemInstance item) { + OriginCellOffset = originCellOffset; Item = item; } public ItemInstance Item { get; } + public int2 OriginCellOffset { get; } } -public class EquippedItemDragAction : DragAction +public class ItemInstanceDragObject : ItemDragObject { - public EquippedItemDragAction(EquippedItem item) + public ItemInstanceDragObject(ItemInstance item, EquippedCargoBay originInventory, int2 originCellOffset) : base(originCellOffset, item) { - Item = item; + OriginInventory = originInventory; } - public EquippedItem Item { get; } + public EquippedCargoBay OriginInventory { get; } +} + +public class EquippedItemDragObject : ItemDragObject +{ + public EquippedItemDragObject(EquippedItem item, Entity originEntity, int2 originCellOffset) : base(originCellOffset, item.EquippableItem) + { + EquippedItem = item; + OriginEntity = originEntity; + } + + public EquippedItem EquippedItem { get; } + public Entity OriginEntity { get; } } \ No newline at end of file diff --git a/Assets/Scripts/Gameplay/GameSettings.cs b/Assets/Scripts/Gameplay/GameSettings.cs index a655de366..7b2520200 100644 --- a/Assets/Scripts/Gameplay/GameSettings.cs +++ b/Assets/Scripts/Gameplay/GameSettings.cs @@ -43,6 +43,7 @@ public class GameSettings : ScriptableObject [HideInInspector] public Sprite[] WeaponFireTypeIcons; [HideInInspector] public Sprite[] WeaponModifierIcons; + public Sprite GetIcon(HardpointType type) => ItemIcons[(int) type]; public Sprite GetIcon(WeaponType type) => WeaponTypeIcons[(int) type]; public Sprite GetIcon(WeaponRange range) => WeaponRangeIcons[(int) range]; public Sprite GetIcon(WeaponCaliber caliber) => WeaponCaliberIcons[(int) caliber]; diff --git a/Assets/Scripts/ServerShared/Behaviors/AetherDrive.cs b/Assets/Scripts/ServerShared/Behaviors/AetherDrive.cs index 834d7e37b..92e2ed5ec 100644 --- a/Assets/Scripts/ServerShared/Behaviors/AetherDrive.cs +++ b/Assets/Scripts/ServerShared/Behaviors/AetherDrive.cs @@ -22,19 +22,22 @@ public class AetherDriveData : BehaviorData [Inspectable, JsonProperty("couplingLambdas"), Key(4)] public float3 CouplingLambda; - [Inspectable, JsonProperty("couplingEfficiency"), Key(5), RuntimeInspectable] + [Inspectable, JsonProperty("lambdaMultiplier"), Key(5)] + public PerformanceStat LambdaMultiplier; + + [Inspectable, JsonProperty("couplingEfficiency"), Key(6), RuntimeInspectable] public PerformanceStat CouplingEfficiency; - [Inspectable, JsonProperty("torque"), Key(6), RuntimeInspectable] + [Inspectable, JsonProperty("torque"), Key(7), RuntimeInspectable] public PerformanceStat Torque; - [Inspectable, JsonProperty("torqueProfile"), Key(7), RuntimeInspectable] + [Inspectable, JsonProperty("torqueProfile"), Key(8), RuntimeInspectable] public BezierCurve TorqueProfile; - [Inspectable, JsonProperty("draw"), Key(8), RuntimeInspectable] + [Inspectable, JsonProperty("draw"), Key(9), RuntimeInspectable] public PerformanceStat EnergyDraw; - [Inspectable, JsonProperty("passiveCoupling"), Key(9), RuntimeInspectable] + [Inspectable, JsonProperty("passiveCoupling"), Key(10), RuntimeInspectable] public PerformanceStat PassiveCoupling; public override Behavior CreateInstance(EquippedItem item) @@ -88,7 +91,7 @@ public class AetherDrive : Behavior Thrust = (Rpm - AetheriaMath.Decay(Rpm, _data.CouplingLambda, dt)) * _data.RotorMass * efficiency; - var couplingLambda = _data.CouplingLambda * max(abs(_axis), Evaluate(_data.PassiveCoupling)); + var couplingLambda = _data.CouplingLambda * Item.Evaluate(_data.LambdaMultiplier) * max(abs(_axis), Evaluate(_data.PassiveCoupling)); var previousRpm = Rpm; Rpm = AetheriaMath.Decay(Rpm, couplingLambda, dt); var rpmLoss = previousRpm - Rpm; diff --git a/Assets/Scripts/ServerShared/Behaviors/StatModifier.cs b/Assets/Scripts/ServerShared/Behaviors/StatModifier.cs index 353de0850..6d29d5472 100644 --- a/Assets/Scripts/ServerShared/Behaviors/StatModifier.cs +++ b/Assets/Scripts/ServerShared/Behaviors/StatModifier.cs @@ -34,7 +34,7 @@ public class StatModifierData : BehaviorData } [Order(-4)] -public class StatModifier : Behavior, IInitializableBehavior, IDisposable +public class StatModifier : Behavior, IInitializableBehavior, IDisposable, IAlwaysUpdatedBehavior { private StatModifierData _data; @@ -42,6 +42,9 @@ public class StatModifier : Behavior, IInitializableBehavior, IDisposable private static Type[] _statObjects; + private bool _applied; + private bool _executed; + private static Type[] StatObjects => _statObjects = _statObjects ?? typeof(BehaviorData).GetAllChildClasses() .Concat(typeof(EquippableItemData).GetAllChildClasses()).ToArray(); @@ -83,19 +86,41 @@ public class StatModifier : Behavior, IInitializableBehavior, IDisposable } } - public override bool Execute(float dt) + private void ApplyModifier() { + _applied = true; foreach (var stat in _stats) (_data.Type == StatModifierType.Constant ? stat.GetConstantModifiers(Entity) : stat.GetScaleModifiers(Entity))[this] = Evaluate(_data.Modifier); + } + + private void RemoveModifier() + { + _applied = false; + foreach (var stat in _stats) + (_data.Type == StatModifierType.Constant ? stat.GetConstantModifiers(Entity) : stat.GetScaleModifiers(Entity)).Remove(this); + } + + public override bool Execute(float dt) + { + _executed = true; return true; } public void Dispose() { - foreach (var stat in _stats) - (_data.Type == StatModifierType.Constant ? stat.GetConstantModifiers(Entity) : stat.GetScaleModifiers(Entity)).Remove(this); + if(_applied) + RemoveModifier(); + } + + public void Update(float delta) + { + if(_executed && !_applied) + ApplyModifier(); + if(!_executed && _applied) + RemoveModifier(); + _executed = false; } } diff --git a/Assets/Scripts/ServerShared/Behaviors/Switch.cs b/Assets/Scripts/ServerShared/Behaviors/Switch.cs index d76ce8a9c..4795a2b2e 100644 --- a/Assets/Scripts/ServerShared/Behaviors/Switch.cs +++ b/Assets/Scripts/ServerShared/Behaviors/Switch.cs @@ -20,7 +20,7 @@ public class SwitchData : BehaviorData } } -public class Switch : Behavior +public class Switch : Behavior, IActivatedBehavior { private SwitchData _data; @@ -39,4 +39,14 @@ public class Switch : Behavior { return Activated; } + + public void Activate() + { + Activated = true; + } + + public void Deactivate() + { + Activated = false; + } } \ No newline at end of file diff --git a/Assets/Scripts/ServerShared/CultCache/Serialization/TypeFormatterResolver.cs b/Assets/Scripts/ServerShared/CultCache/Serialization/TypeFormatterResolver.cs index 55edebfb8..2f8860f64 100644 --- a/Assets/Scripts/ServerShared/CultCache/Serialization/TypeFormatterResolver.cs +++ b/Assets/Scripts/ServerShared/CultCache/Serialization/TypeFormatterResolver.cs @@ -14,17 +14,18 @@ public class TypeFormatter : MessagePack.Formatters.IMessagePackFormatter public void Serialize(ref MessagePackWriter writer, Type value, MessagePackSerializerOptions options) { - writer.Write(value.AssemblyQualifiedName); + writer.Write(value == null ? "" : value.AssemblyQualifiedName); } public Type Deserialize(ref MessagePackReader reader, MessagePackSerializerOptions options) { if (reader.IsNil) { - throw new InvalidOperationException("typecode is null, struct not supported"); + return null; //throw new InvalidOperationException("typecode is null, struct not supported"); } var assemblyQualifiedName = reader.ReadString(); + if (string.IsNullOrEmpty(assemblyQualifiedName)) return null; return Type.GetType(assemblyQualifiedName); } diff --git a/Assets/Scripts/ServerShared/Entity.cs b/Assets/Scripts/ServerShared/Entity.cs index 0777aceea..d1f44d509 100644 --- a/Assets/Scripts/ServerShared/Entity.cs +++ b/Assets/Scripts/ServerShared/Entity.cs @@ -992,7 +992,7 @@ public class ConsumableItemEffect Data = (ConsumableItemData) item.Data.Value; RemainingDuration = Data.Duration; - Behaviors = Data.StatModifiers + Behaviors = Data.Behaviors .Select(bd => bd.CreateInstance(this)) .ToArray(); } @@ -1117,7 +1117,8 @@ public class EquippedItem var quality = pow(EquippableItem.Quality, stat.QualityExponent); var scaleModifier = 1.0f; - foreach (var value in stat.GetScaleModifiers(Entity).Values) scaleModifier = scaleModifier * value; + var scaleModifiers = stat.GetScaleModifiers(Entity).Values; + foreach (var value in scaleModifiers) scaleModifier *= value; float constantModifier = 0; foreach (var value in stat.GetConstantModifiers(Entity).Values) constantModifier += value; @@ -1150,9 +1151,6 @@ public class EquippedItem public void Update(float delta) { - foreach (var behavior in Behaviors) - if(behavior is IAlwaysUpdatedBehavior alwaysUpdatedBehavior) alwaysUpdatedBehavior.Update(delta); - if (Active.Value) { foreach (var group in BehaviorGroups.Values) @@ -1164,9 +1162,12 @@ public class EquippedItem } } } + + foreach (var behavior in Behaviors) + if(behavior is IAlwaysUpdatedBehavior alwaysUpdatedBehavior) alwaysUpdatedBehavior.Update(delta); } - public T GetBehavior() where T : Behavior + public T GetBehavior() where T : class { foreach (var behavior in Behaviors) if (behavior is T b) diff --git a/Assets/Scripts/ServerShared/ItemData.cs b/Assets/Scripts/ServerShared/ItemData.cs index f2cffbd28..102a5d0ef 100644 --- a/Assets/Scripts/ServerShared/ItemData.cs +++ b/Assets/Scripts/ServerShared/ItemData.cs @@ -302,7 +302,7 @@ public class CompoundCommodityData : CraftedItemData public class ConsumableItemData : CraftedItemData { [Inspectable, JsonProperty("behaviors"), Key(10)] - public List StatModifiers = new List(); + public List Behaviors = new List(); [Inspectable, JsonProperty("stackable"), Key(11)] public bool Stackable; diff --git a/Assets/Scripts/ServerShared/Ship.cs b/Assets/Scripts/ServerShared/Ship.cs index 6dd7f00a1..f125fb887 100644 --- a/Assets/Scripts/ServerShared/Ship.cs +++ b/Assets/Scripts/ServerShared/Ship.cs @@ -281,7 +281,7 @@ public class Ship : Entity deltaRot = 0; Direction = lerp(Direction, look, min(delta, 1)); } - deltaRot = pow(abs(deltaRot), .75f) * sign(deltaRot); + deltaRot = pow(abs(deltaRot), .5f) * sign(deltaRot); foreach (var thruster in _clockwiseThrusters) thruster.Axis += deltaRot; foreach (var thruster in _counterClockwiseThrusters) thruster.Axis += -deltaRot; diff --git a/Assets/Scripts/UI/InventoryMenu.cs b/Assets/Scripts/UI/InventoryMenu.cs index 2a6c76cf5..659cfcc34 100644 --- a/Assets/Scripts/UI/InventoryMenu.cs +++ b/Assets/Scripts/UI/InventoryMenu.cs @@ -79,213 +79,6 @@ public class InventoryMenu : MonoBehaviour PropertiesPanel.GameManager = GameManager; foreach (var panel in InventoryPanels) { - panel.OnBeginDragAsObservable().Subscribe(data => - { - //Debug.Log($"Begin drag on panel {panel.name}"); - if (data is InventoryCargoEventData cargoEvent) - { - var item = cargoEvent.CargoBay.Occupancy[cargoEvent.Position.x, cargoEvent.Position.y]; - if (item != null) - { - var itemData = item.Data.Value; - - var itemPosition = cargoEvent.CargoBay.Cargo[item]; - _originalOccupancy = cargoEvent.CargoBay.Data.InteriorShape.Inset(itemData.Shape, itemPosition, item.Rotation); - _originalRotation = item.Rotation; - _originalPanel = panel; - _dragItem = item; - _dragCellOffset = itemPosition - cargoEvent.Position; - _dragCells = _originalOccupancy.Coordinates - .Select(v => Instantiate(panel.CellInstances[v], DragParent, true).transform).ToArray(); - foreach(var cell in _dragCells) - { - foreach (var component in cell.GetComponentsInChildren()) - component.enabled = false; - cell.GetComponentInChildren().raycastTarget = false; - } - _dragOffsets = _dragCells.Select(x => (Vector2) x.position - data.PointerEventData.position).ToArray(); - panel.IgnoreOccupancy = _originalOccupancy; - panel.RefreshCells(_originalOccupancy.Expand().Coordinates); - AkSoundEngine.PostEvent("Pickup", gameObject); - } - } - else if (data is InventoryEntityEventData entityEvent) - { - if(!entityEvent.Entity.Active) - { - var item = entityEvent.Entity.GearOccupancy[entityEvent.Position.x, entityEvent.Position.y]; - if (item != null) - { - var itemData = GameManager.ItemManager.GetData(item.EquippableItem); - var hullData = GameManager.ItemManager.GetData(entityEvent.Entity.Hull); - - _originalRotation = item.EquippableItem.Rotation; - _originalEquippedItem = entityEvent.Entity.GearOccupancy[data.Position.x, data.Position.y]; - _originalOccupancy = hullData.Shape.Inset(itemData.Shape, item.Position, item.EquippableItem.Rotation); - _originalPanel = panel; - _dragItem = item.EquippableItem; - _dragCellOffset = item.Position - entityEvent.Position; - _dragCells = _originalOccupancy.Coordinates - .Select(v => Instantiate(panel.CellInstances[v], DragParent, true).transform).ToArray(); - foreach (var cell in _dragCells) - { - foreach (var component in cell.GetComponentsInChildren()) - component.enabled = false; - cell.GetComponentInChildren().raycastTarget = false; - } - - _dragOffsets = _dragCells.Select(x => (Vector2) x.position - data.PointerEventData.position).ToArray(); - panel.IgnoreOccupancy = _originalOccupancy; - panel.RefreshCells(_originalOccupancy.Expand().Coordinates); - AkSoundEngine.PostEvent("Pickup", gameObject); - } - } - } - }); - - - panel.OnDragAsObservable().Subscribe(data => - { - if (_dragItem == null) return; - for (var i = 0; i < _dragCells.Length; i++) - _dragCells[i].position = new Vector3( - data.PointerEventData.position.x + _dragOffsets[i].x, - data.PointerEventData.position.y + _dragOffsets[i].y, - _dragCells[i].position.z); - }); - - - panel.OnEndDragAsObservable().Subscribe(data => - { - if (_dragItem == null) return; - if (_dragTargetValid) - { - if (data is InventoryCargoEventData cargoEvent) - { - cargoEvent.CargoBay.Remove(_dragItem); - _dragTargetPanel.DropItem(_dragItem, _dragTargetPosition); - if(_dragTargetPanel.Target == InventoryPanelTarget.Cargo) - AkSoundEngine.PostEvent("Drop", gameObject); - else - AkSoundEngine.PostEvent("Equip", gameObject); - } - else if (data is InventoryEntityEventData entityEvent) - { - if (entityEvent.Entity.TryUnequip(_originalEquippedItem) != null) - { - _dragTargetPanel.DropItem(_dragItem, _dragTargetPosition); - AkSoundEngine.PostEvent("Unequip", gameObject); - } - else - { - AkSoundEngine.PostEvent("UI_Fail", gameObject); - Dialog.Clear(); - Dialog.Title.text = "Unable to move item!"; - Dialog.AddProperty("Verify that cargo bays are empty before un-equipping them."); - Dialog.Show(); - Dialog.MoveToCursor(); - } - } - - _dragTargetPanel.FakeOccupancy = null; - } - else - { - _dragItem.Rotation = _originalRotation; - } - - if (_destroyItem) - { - if (data is InventoryCargoEventData cargoEvent) - { - cargoEvent.CargoBay.Remove(_dragItem); - } - else if (data is InventoryEntityEventData entityEvent) - { - if (entityEvent.Entity.TryUnequip(_originalEquippedItem) == null) - { - Dialog.Clear(); - Dialog.Title.text = "Unable to destroy item!"; - Dialog.AddProperty("Verify that cargo bays are empty before un-equipping them."); - Dialog.Show(); - Dialog.MoveToCursor(); - } - } - } - - panel.IgnoreOccupancy = null; - panel.RefreshCells(); - if(_dragTargetPanel!=panel && _dragTargetPanel != null) - _dragTargetPanel.RefreshCells(); - - _dragItem = null; - foreach (var cell in _dragCells) Destroy(cell.gameObject); - }); - - Action floatCells = () => - { - foreach (var cell in _dragCells) cell.gameObject.SetActive(true); - _dragTargetValid = false; - }; - - panel.OnPointerEnterAsObservable().Subscribe(data => - { - if (_dragItem == null) return; - - // Debug.Log($"Pointer entered {data.Position}"); - // if(panel != _originalPanel) - // _originalPanel.RefreshCells(); - - _dragTargetPanel = panel; - _lastDragPosition = data.Position; - _dragTargetPosition = data.Position + _dragCellOffset; - if (data is InventoryCargoEventData cargoEvent) - { - if (cargoEvent.CargoBay.ItemFits(_dragItem, _dragTargetPosition)) - { - foreach (var cell in _dragCells) cell.gameObject.SetActive(false); - var itemData = _dragItem.Data.Value; - panel.FakeItem = _dragItem; - panel.FakeOccupancy = cargoEvent.CargoBay.Data.InteriorShape.Inset(itemData.Shape, _dragTargetPosition, _dragItem.Rotation); - _dragTargetValid = true; - panel.RefreshCells(); - } - } - else if (data is InventoryEntityEventData entityEvent) - { - var eqItem = _dragItem as EquippableItem; - var hullData = GameManager.ItemManager.GetData(entityEvent.Entity.Hull); - if (eqItem != null && entityEvent.Entity.ItemFits(eqItem, _dragTargetPosition)) - { - foreach (var cell in _dragCells) cell.gameObject.SetActive(false); - var itemData = _dragItem.Data.Value; - panel.FakeEquipment = _originalEquippedItem; - panel.FakeOccupancy = hullData.Shape.Inset(itemData.Shape, _dragTargetPosition, _dragItem.Rotation); - _dragTargetValid = true; - panel.RefreshCells(); - } - } - }); - - panel.OnPointerExitAsObservable().Subscribe(data => - { - if (_dragItem == null) return; - - if (data.Position.Equals(_lastDragPosition) || !_dragTargetValid) - { - panel.FakeItem = null; - panel.FakeOccupancy = null; - panel.RefreshCells(); - // if (_originalPanel != panel) - // { - // _originalPanel.FakeItem = null; - // _originalPanel.FakeOccupancy = null; - // _originalPanel.RefreshCells(); - // } - floatCells(); - } - }); - panel.OnClickAsObservable().Subscribe(e => { if (e.data is InventoryCargoEventData cargoEvent) diff --git a/Assets/Scripts/UI/InventoryPanel.cs b/Assets/Scripts/UI/InventoryPanel.cs index 2ac8f62bc..2482fff24 100644 --- a/Assets/Scripts/UI/InventoryPanel.cs +++ b/Assets/Scripts/UI/InventoryPanel.cs @@ -21,6 +21,7 @@ using int2 = Unity.Mathematics.int2; public class InventoryPanel : MonoBehaviour, IPointerClickHandler { public ConfirmationDialog Dialog; + public RectTransform DragParent; public bool Flip; public GameSettings Settings; public ActionGameManager GameManager; @@ -52,19 +53,18 @@ public class InventoryPanel : MonoBehaviour, IPointerClickHandler public float DoubleClickTime = .5f; public float HitDamageThreshold = 1; - Subject _onBeginDrag; - Subject _onDrag; - Subject _onEndDrag; + // Subject _onBeginDrag; + // Subject _onDrag; + // Subject _onEndDrag; Subject<(InventoryEventData data, int clickCount)> _onClick; - Subject _onPointerEnter; - Subject _onPointerExit; + // Subject _onPointerEnter; + // Subject _onPointerExit; private Entity _displayedEntity; private EquippedCargoBay _displayedCargo; private Texture2D _temperatureTexture; private RectTransform _firstRect; - public EquippedItem FakeEquipment; public ItemInstance FakeItem; public Shape FakeOccupancy; public Shape IgnoreOccupancy; @@ -268,6 +268,10 @@ public class InventoryPanel : MonoBehaviour, IPointerClickHandler public void Display(Entity entity, bool hud = false, bool thermal = false) { Clear(); + + _subscriptions.Add(entity.Equipment.ObserveAdd().Subscribe(_ => RefreshCells())); + _subscriptions.Add(entity.Equipment.ObserveRemove().Subscribe(_ => RefreshCells())); + _thermal = thermal; _hud = hud; @@ -352,15 +356,105 @@ public class InventoryPanel : MonoBehaviour, IPointerClickHandler _onClick?.OnNext((new InventoryEntityEventData(data, v, entity), _clickCount)); }); cell.BeginDragTrigger.OnBeginDragAsObservable() - .Subscribe(data => _onBeginDrag?.OnNext(new InventoryEntityEventData(data, v, entity))); + .Subscribe(data => + { + //Debug.Log("Entity Drag Start"); + var item = entity.GearOccupancy[v.x, v.y]; + if (item != null) + { + var originalOccupancy = hullData.Shape.Inset(item.Data.Shape, item.Position, item.EquippableItem.Rotation); + _dragCells = originalOccupancy.Coordinates + .Select(v1 => Instantiate(CellInstances[v1], DragParent, true).transform).ToArray(); + foreach(var dragCell in _dragCells) + { + DestroyImmediate(dragCell.GetComponent()); + foreach (var component in dragCell.GetComponentsInChildren()) + component.enabled = false; + foreach (var img in dragCell.GetComponentsInChildren()) + img.color = new Color(img.color.r, img.color.g, img.color.b, img.color.a * .5f); + dragCell.GetComponentInChildren().raycastTarget = false; + } + _dragOffsets = _dragCells.Select(x => (Vector2) x.position - data.position).ToArray(); + IgnoreOccupancy = originalOccupancy; + RefreshCells(); + _originalRotation = item.EquippableItem.Rotation; + GameManager.BeginDrag(new EquippedItemDragObject(item, entity, item.Position - v)); + AkSoundEngine.PostEvent("Pickup", gameObject); + } + }); cell.DragTrigger.OnDragAsObservable() - .Subscribe(data => _onDrag?.OnNext(new InventoryEntityEventData(data, v, entity))); + .Subscribe(data => + { + for (var i = 0; i < _dragCells.Length; i++) + _dragCells[i].position = new Vector3( + data.position.x + _dragOffsets[i].x, + data.position.y + _dragOffsets[i].y, + _dragCells[i].position.z); + }); cell.EndDragTrigger.OnEndDragAsObservable() - .Subscribe(data => _onEndDrag?.OnNext(new InventoryEntityEventData(data, v, entity))); + .Subscribe(data => + { + //Debug.Log("Entity Drag End"); + IgnoreOccupancy = null; + if (!GameManager.EndDrag()) + entity.GearOccupancy[v.x, v.y].EquippableItem.Rotation = _originalRotation; + foreach(var dragObject in _dragCells) + Destroy(dragObject.gameObject); + _dragCells = null; + RefreshCells(); + }); cell.PointerEnterTrigger.OnPointerEnterAsObservable() - .Subscribe(data => _onPointerEnter?.OnNext(new InventoryEntityEventData(data, v, entity))); + .Subscribe(data => + { + //Debug.Log("Entity Pointer Enter"); + if (!(GameManager.DragObject is ItemDragObject itemDragObject)) return; + var item = itemDragObject.Item; + var itemData = item.Data.Value; + if (!(item is EquippableItem equippableItem)) return; + var placementPosition = v + itemDragObject.OriginCellOffset; + if (entity.ItemFits(equippableItem, placementPosition)) + { + //foreach (var cell in _dragCells) cell.gameObject.SetActive(false); + FakeItem = item; + FakeOccupancy = hullData.Shape.Inset(itemData.Shape, placementPosition, item.Rotation); + RefreshCells(); + GameManager.RegisterDragTarget(drag => + { + //Debug.Log("Entity Drag Callback"); + if (GameManager.DragObject is EquippedItemDragObject equippedItemDragObject) + { + if(equippedItemDragObject.OriginEntity.TryUnequip(equippedItemDragObject.EquippedItem) == null) + { + AkSoundEngine.PostEvent("UI_Fail", gameObject); + Dialog.Clear(); + Dialog.Title.text = "Unable to move item!"; + Dialog.AddProperty("Verify that cargo bays are empty before un-equipping them."); + Dialog.Show(); + Dialog.MoveToCursor(); + } + else + AkSoundEngine.PostEvent("Unequip", gameObject); + } + else if (GameManager.DragObject is ItemInstanceDragObject itemInstanceDragObject) + itemInstanceDragObject.OriginInventory.Remove(itemInstanceDragObject.Item); + + FakeOccupancy = null; + entity.TryEquip(equippableItem, placementPosition); + RefreshCells(); + AkSoundEngine.PostEvent("Equip", gameObject); + return false; + }); + } + }); cell.PointerExitTrigger.OnPointerExitAsObservable() - .Subscribe(data => _onPointerExit?.OnNext(new InventoryEntityEventData(data, v, entity))); + .Subscribe(data => + { + if (!(GameManager.DragObject is ItemDragObject)) return; + FakeItem = null; + FakeOccupancy = null; + RefreshCells(); + GameManager.UnregisterDragTarget(); + }); } } else @@ -448,6 +542,9 @@ public class InventoryPanel : MonoBehaviour, IPointerClickHandler { Clear(); + _subscriptions.Add(cargo.Cargo.ObserveAdd().Subscribe(_ => RefreshCells())); + _subscriptions.Add(cargo.Cargo.ObserveRemove().Subscribe(_ => RefreshCells())); + _displayedCargo = cargo; _displayedEntity = null; @@ -479,15 +576,103 @@ public class InventoryPanel : MonoBehaviour, IPointerClickHandler _onClick?.OnNext((new InventoryCargoEventData(data, v, cargo), _clickCount)); }); cell.BeginDragTrigger.OnBeginDragAsObservable() - .Subscribe(data => _onBeginDrag?.OnNext(new InventoryCargoEventData(data, v, cargo))); + .Subscribe(data => + { + //Debug.Log("Inventory Drag Start"); + var item = cargo.Occupancy[v.x, v.y]; + if (item != null) + { + var itemPosition = cargo.Cargo[item]; + var itemData = item.Data.Value; + var originalOccupancy = cargo.Data.InteriorShape.Inset(itemData.Shape, itemPosition, item.Rotation); + _dragCells = originalOccupancy.Coordinates + .Select(v1 => Instantiate(CellInstances[v1], DragParent, true).transform).ToArray(); + foreach(var dragCell in _dragCells) + { + DestroyImmediate(dragCell.GetComponent()); + foreach (var component in dragCell.GetComponentsInChildren()) + component.enabled = false; + foreach (var img in dragCell.GetComponentsInChildren()) + img.color = new Color(img.color.r, img.color.g, img.color.b, img.color.a * .5f); + dragCell.GetComponentInChildren().raycastTarget = false; + } + _dragOffsets = _dragCells.Select(x => (Vector2) x.position - data.position).ToArray(); + IgnoreOccupancy = originalOccupancy; + RefreshCells(); + _originalRotation = item.Rotation; + GameManager.BeginDrag(new ItemInstanceDragObject(item, cargo, cargo.Cargo[item] - v)); + AkSoundEngine.PostEvent("Pickup", gameObject); + } + }); cell.DragTrigger.OnDragAsObservable() - .Subscribe(data => _onDrag?.OnNext(new InventoryCargoEventData(data, v, cargo))); + .Subscribe(data => + { + for (var i = 0; i < _dragCells.Length; i++) + _dragCells[i].position = new Vector3( + data.position.x + _dragOffsets[i].x, + data.position.y + _dragOffsets[i].y, + _dragCells[i].position.z); + }); cell.EndDragTrigger.OnEndDragAsObservable() - .Subscribe(data => _onEndDrag?.OnNext(new InventoryCargoEventData(data, v, cargo))); + .Subscribe(data => + { + //Debug.Log("Inventory Drag End"); + IgnoreOccupancy = null; + GameManager.EndDrag(); + foreach(var dragObject in _dragCells) + Destroy(dragObject.gameObject); + _dragCells = null; + }); cell.PointerEnterTrigger.OnPointerEnterAsObservable() - .Subscribe(data => _onPointerEnter?.OnNext(new InventoryCargoEventData(data, v, cargo))); + .Subscribe(data => + { + //Debug.Log("Inventory Pointer Enter"); + if (!(GameManager.DragObject is ItemDragObject itemDragObject)) return; + var item = itemDragObject.Item; + var itemData = item.Data.Value; + var placementPosition = v + itemDragObject.OriginCellOffset; + if (cargo.ItemFits(item, placementPosition)) + { + //foreach (var cell in _dragCells) cell.gameObject.SetActive(false); + FakeItem = item; + FakeOccupancy = cargo.Data.InteriorShape.Inset(itemData.Shape, placementPosition, item.Rotation); + RefreshCells(); + GameManager.RegisterDragTarget(drag => + { + //Debug.Log("Inventory Drag Callback"); + if (GameManager.DragObject is EquippedItemDragObject equippedItemDragObject) + { + if(equippedItemDragObject.OriginEntity.TryUnequip(equippedItemDragObject.EquippedItem) == null) + { + AkSoundEngine.PostEvent("UI_Fail", gameObject); + Dialog.Clear(); + Dialog.Title.text = "Unable to move item!"; + Dialog.AddProperty("Verify that cargo bays are empty before un-equipping them."); + Dialog.Show(); + Dialog.MoveToCursor(); + } + else + AkSoundEngine.PostEvent("Unequip", gameObject); + } + else if (GameManager.DragObject is ItemInstanceDragObject itemInstanceDragObject) + itemInstanceDragObject.OriginInventory.Remove(itemInstanceDragObject.Item); + cargo.TryStore(item, placementPosition); + FakeOccupancy = null; + AkSoundEngine.PostEvent("Drop", gameObject); + return true; + }); + } + }); cell.PointerExitTrigger.OnPointerExitAsObservable() - .Subscribe(data => _onPointerExit?.OnNext(new InventoryCargoEventData(data, v, cargo))); + .Subscribe(data => + { + if (!(GameManager.DragObject is ItemDragObject)) return; + FakeItem = null; + FakeOccupancy = null; + RefreshCells(); + GameManager.UnregisterDragTarget(); + }); + CellInstances.Add(v, cell); } } @@ -511,7 +696,7 @@ public class InventoryPanel : MonoBehaviour, IPointerClickHandler var spriteIndex = 0; var interior = hullData.InteriorCells[v]; - var item = FakeOccupancy?[v]??false ? FakeEquipment : IgnoreOccupancy?[v]??false ? null : _displayedEntity.GearOccupancy[v.x, v.y]; + var item = FakeOccupancy?[v]??false ? FakeItem : IgnoreOccupancy?[v]??false ? null : _displayedEntity.GearOccupancy[v.x, v.y]?.EquippableItem; var hardpoint = _displayedEntity.Hardpoints[v.x, v.y]; bool HardpointMatch(int2 offset) @@ -520,7 +705,7 @@ public class InventoryPanel : MonoBehaviour, IPointerClickHandler return !( hullData.Shape[v2] && _displayedEntity.Hardpoints[v2.x, v2.y] == hardpoint && - (FakeOccupancy?[v2]??false ? FakeEquipment : IgnoreOccupancy?[v2]??false ? null : _displayedEntity.GearOccupancy[v2.x, v2.y]) == item + (FakeOccupancy?[v2]??false ? FakeItem : IgnoreOccupancy?[v2]??false ? null : _displayedEntity.GearOccupancy[v2.x, v2.y]?.EquippableItem) == item ); } @@ -531,7 +716,7 @@ public class InventoryPanel : MonoBehaviour, IPointerClickHandler hullData.Shape[v2] && ( !interior && !hullData.InteriorCells[v2] && _displayedEntity.Hardpoints[v2.x, v2.y] == null || interior && item != null && - (FakeOccupancy?[v2]??false ? FakeEquipment : IgnoreOccupancy?[v2]??false ? null : _displayedEntity.GearOccupancy[v2.x, v2.y]) == item + (FakeOccupancy?[v2]??false ? FakeItem : IgnoreOccupancy?[v2]??false ? null : _displayedEntity.GearOccupancy[v2.x, v2.y]?.EquippableItem) == item ) ); } @@ -619,14 +804,15 @@ public class InventoryPanel : MonoBehaviour, IPointerClickHandler var hullData = GameManager.ItemManager.GetData(_displayedEntity.Hull) as HullData; var interior = hullData.InteriorCells[position]; var hardpoint = _displayedEntity.Hardpoints[position.x, position.y]; - var item = FakeOccupancy?[position] ?? false ? FakeEquipment : IgnoreOccupancy?[position] ?? false ? null : _displayedEntity.GearOccupancy[position.x, position.y]; + var item = (FakeOccupancy?[position] ?? false ? FakeItem : + IgnoreOccupancy?[position] ?? false ? null : _displayedEntity.GearOccupancy[position.x, position.y]?.EquippableItem) as EquippableItem; if (_hud) { if (_displayedEntity.Armor[position.x, position.y] > .01f) return Settings.ArmorGradient.Evaluate(_displayedEntity.Armor[position.x, position.y] / _displayedEntity.MaxArmor[position.x, position.y]); - if (item != null) return Settings.DurabilityGradient.Evaluate(item.EquippableItem.Durability / _displayedEntity.ItemManager.GetData(item.EquippableItem).Durability); + if (item != null) return Settings.DurabilityGradient.Evaluate(item.Durability / _displayedEntity.ItemManager.GetData(item).Durability); return float3(.25f).ToColor(); } @@ -671,21 +857,6 @@ public class InventoryPanel : MonoBehaviour, IPointerClickHandler } } - public bool DropItem(ItemInstance item, int2 position) - { - if (_displayedEntity != null && item is EquippableItem equippableItem) - { - return _displayedEntity.TryEquip(equippableItem, position); - } - - if(_displayedCargo != null) - { - return _displayedCargo.TryStore(item, position); - } - - return false; - } - public bool CanDropItem(ItemInstance item) { if (_displayedEntity != null && item is EquippableItem equippableItem) @@ -717,12 +888,16 @@ public class InventoryPanel : MonoBehaviour, IPointerClickHandler } public Subject OnBackgroundClick = new Subject(); + private Transform[] _dragCells; + private Vector2[] _dragOffsets; + private ItemRotation _originalRotation; + public Subject<(InventoryEventData data, int clickCount)> OnClickAsObservable() => _onClick ?? (_onClick = new Subject<(InventoryEventData data, int clickCount)>()); - public UniRx.IObservable OnBeginDragAsObservable() => _onBeginDrag ?? (_onBeginDrag = new Subject()); - public UniRx.IObservable OnDragAsObservable() => _onDrag ?? (_onDrag = new Subject()); - public UniRx.IObservable OnEndDragAsObservable() => _onEndDrag ?? (_onEndDrag = new Subject()); - public UniRx.IObservable OnPointerEnterAsObservable() => _onPointerEnter ?? (_onPointerEnter = new Subject()); - public UniRx.IObservable OnPointerExitAsObservable() => _onPointerExit ?? (_onPointerExit = new Subject()); + // public UniRx.IObservable OnBeginDragAsObservable() => _onBeginDrag ?? (_onBeginDrag = new Subject()); + // public UniRx.IObservable OnDragAsObservable() => _onDrag ?? (_onDrag = new Subject()); + // public UniRx.IObservable OnEndDragAsObservable() => _onEndDrag ?? (_onEndDrag = new Subject()); + // public UniRx.IObservable OnPointerEnterAsObservable() => _onPointerEnter ?? (_onPointerEnter = new Subject()); + // public UniRx.IObservable OnPointerExitAsObservable() => _onPointerExit ?? (_onPointerExit = new Subject()); public void OnPointerClick(PointerEventData eventData) { diff --git a/Assets/Scripts/UI/PropertiesPanel.cs b/Assets/Scripts/UI/PropertiesPanel.cs index 8ae518863..0f32b38ba 100644 --- a/Assets/Scripts/UI/PropertiesPanel.cs +++ b/Assets/Scripts/UI/PropertiesPanel.cs @@ -478,7 +478,7 @@ public class PropertiesPanel : MonoBehaviour weaponGroups.OnBeginDragAsObservable().Subscribe(x => { //Debug.Log($"Began dragging weapon group {x.group}"); - GameManager.BeginDrag(new WeaponGroupDragAction(x.group)); + GameManager.BeginDrag(new WeaponGroupDragObject(x.group)); dragObject = Instantiate(weaponGroups.Groups[x.group], DragParent, true).transform; dragOffset = (Vector2)dragObject.position - x.pointerEventData.position; }); diff --git a/Assets/Scripts/UI/SchematicTriggerGroupElement.cs b/Assets/Scripts/UI/SchematicTriggerGroupElement.cs deleted file mode 100644 index ff078b3c7..000000000 --- a/Assets/Scripts/UI/SchematicTriggerGroupElement.cs +++ /dev/null @@ -1,10 +0,0 @@ - -using TMPro; -using UnityEngine; -using UnityEngine.UI; - -public class SchematicTriggerGroupElement : MonoBehaviour -{ - public TextMeshProUGUI[] GroupLabel; - public Image[] GroupBackgrounds; -} \ No newline at end of file diff --git a/Assets/Scripts/UI/SchematicTriggerGroupElement.cs.meta b/Assets/Scripts/UI/SchematicTriggerGroupElement.cs.meta deleted file mode 100644 index af88b8c6b..000000000 --- a/Assets/Scripts/UI/SchematicTriggerGroupElement.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: 8f090c2738224f698bdfa545978f4d5a -timeCreated: 1609423819 \ No newline at end of file diff --git a/GameData/AetherDB.msgpack b/GameData/AetherDB.msgpack index 100658701..ed9524939 100644 --- a/GameData/AetherDB.msgpack +++ b/GameData/AetherDB.msgpack @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a607d2435f93eae73a274ae8247c7aa47e1962fadef282db240705970b1d12bc -size 75659 +oid sha256:38a1e181ae301b90f0af33b0f91fd79d8c8d4e16cc93f2e85656dee0ad043c86 +size 75924 diff --git a/GameData/PlayerSettings.msgpack b/GameData/PlayerSettings.msgpack index a9d771654..5c15013a1 100644 --- a/GameData/PlayerSettings.msgpack +++ b/GameData/PlayerSettings.msgpack @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:e65428c99ca8688be45695ee938703cc2cfb82f7c0a41594ccbfaecad24ec2e3 -size 17318 +oid sha256:b9ec5cef84e135dc355753ec7e782a6867dec6728e12c463e559a8bbb0a63770 +size 26003 diff --git a/RethinkDB.csproj b/RethinkDB.csproj index b5ef29462..f6faae674 100644 --- a/RethinkDB.csproj +++ b/RethinkDB.csproj @@ -241,8 +241,8 @@ - + @@ -295,8 +295,8 @@ - + From b1bd89a68731a8c8beb2610d293d3d7d16dad442 Mon Sep 17 00:00:00 2001 From: Reinier Vens Date: Thu, 22 Apr 2021 02:53:06 +0100 Subject: [PATCH 45/51] Mini Galaxy Gen Added flags to game manager and player settings to check tutorial status Created alternate galaxy generation process for tutorial --- Assets/{ => Plugins}/Ink.meta | 0 Assets/{ => Plugins}/Ink/compiler.meta | 0 .../Ink/compiler/CharacterRange.cs | 0 .../Ink/compiler/CharacterRange.cs.meta | 0 .../Ink/compiler/CharacterSet.cs | 0 .../Ink/compiler/CharacterSet.cs.meta | 0 .../Ink/compiler/CommandLineInput.cs | 0 .../Ink/compiler/CommandLineInput.cs.meta | 0 Assets/{ => Plugins}/Ink/compiler/Compiler.cs | 0 .../Ink/compiler/Compiler.cs.meta | 0 .../{ => Plugins}/Ink/compiler/FileHandler.cs | 0 .../Ink/compiler/FileHandler.cs.meta | 0 .../{ => Plugins}/Ink/compiler/InkParser.meta | 0 .../compiler/InkParser/CommentEliminator.cs | 0 .../InkParser/CommentEliminator.cs.meta | 0 .../Ink/compiler/InkParser/InkParser.cs | 0 .../Ink/compiler/InkParser/InkParser.cs.meta | 0 .../InkParser/InkParser_AuthorWarning.cs | 0 .../InkParser/InkParser_AuthorWarning.cs.meta | 0 .../InkParser/InkParser_CharacterRanges.cs | 0 .../InkParser_CharacterRanges.cs.meta | 0 .../compiler/InkParser/InkParser_Choices.cs | 0 .../InkParser/InkParser_Choices.cs.meta | 0 .../InkParser/InkParser_CommandLineInput.cs | 0 .../InkParser_CommandLineInput.cs.meta | 0 .../InkParser/InkParser_Conditional.cs | 0 .../InkParser/InkParser_Conditional.cs.meta | 0 .../compiler/InkParser/InkParser_Content.cs | 0 .../InkParser/InkParser_Content.cs.meta | 0 .../compiler/InkParser/InkParser_Divert.cs | 0 .../InkParser/InkParser_Divert.cs.meta | 0 .../InkParser/InkParser_Expressions.cs | 0 .../InkParser/InkParser_Expressions.cs.meta | 0 .../compiler/InkParser/InkParser_Include.cs | 0 .../InkParser/InkParser_Include.cs.meta | 0 .../Ink/compiler/InkParser/InkParser_Knot.cs | 0 .../compiler/InkParser/InkParser_Knot.cs.meta | 0 .../Ink/compiler/InkParser/InkParser_Logic.cs | 0 .../InkParser/InkParser_Logic.cs.meta | 0 .../compiler/InkParser/InkParser_Sequences.cs | 0 .../InkParser/InkParser_Sequences.cs.meta | 0 .../InkParser/InkParser_Statements.cs | 0 .../InkParser/InkParser_Statements.cs.meta | 0 .../Ink/compiler/InkParser/InkParser_Tags.cs | 0 .../compiler/InkParser/InkParser_Tags.cs.meta | 0 .../InkParser/InkParser_Whitespace.cs | 0 .../InkParser/InkParser_Whitespace.cs.meta | 0 .../compiler/InkStringConversionExtensions.cs | 0 .../InkStringConversionExtensions.cs.meta | 0 .../Ink/compiler/ParsedHierarchy.meta | 0 .../compiler/ParsedHierarchy/AuthorWarning.cs | 0 .../ParsedHierarchy/AuthorWarning.cs.meta | 0 .../Ink/compiler/ParsedHierarchy/Choice.cs | 0 .../compiler/ParsedHierarchy/Choice.cs.meta | 0 .../compiler/ParsedHierarchy/Conditional.cs | 0 .../ParsedHierarchy/Conditional.cs.meta | 0 .../ConditionalSingleBranch.cs | 0 .../ConditionalSingleBranch.cs.meta | 0 .../ParsedHierarchy/ConstantDeclaration.cs | 0 .../ConstantDeclaration.cs.meta | 0 .../compiler/ParsedHierarchy/ContentList.cs | 0 .../ParsedHierarchy/ContentList.cs.meta | 0 .../Ink/compiler/ParsedHierarchy/Divert.cs | 0 .../compiler/ParsedHierarchy/Divert.cs.meta | 0 .../compiler/ParsedHierarchy/DivertTarget.cs | 0 .../ParsedHierarchy/DivertTarget.cs.meta | 0 .../compiler/ParsedHierarchy/Expression.cs | 0 .../ParsedHierarchy/Expression.cs.meta | 0 .../ParsedHierarchy/ExternalDeclaration.cs | 0 .../ExternalDeclaration.cs.meta | 0 .../Ink/compiler/ParsedHierarchy/FlowBase.cs | 0 .../compiler/ParsedHierarchy/FlowBase.cs.meta | 0 .../Ink/compiler/ParsedHierarchy/FlowLevel.cs | 0 .../ParsedHierarchy/FlowLevel.cs.meta | 0 .../compiler/ParsedHierarchy/FunctionCall.cs | 0 .../ParsedHierarchy/FunctionCall.cs.meta | 0 .../Ink/compiler/ParsedHierarchy/Gather.cs | 0 .../compiler/ParsedHierarchy/Gather.cs.meta | 0 .../compiler/ParsedHierarchy/INamedContent.cs | 0 .../ParsedHierarchy/INamedContent.cs.meta | 0 .../compiler/ParsedHierarchy/IWeavePoint.cs | 0 .../ParsedHierarchy/IWeavePoint.cs.meta | 0 .../compiler/ParsedHierarchy/Identifier.cs | 0 .../ParsedHierarchy/Identifier.cs.meta | 0 .../compiler/ParsedHierarchy/IncludedFile.cs | 0 .../ParsedHierarchy/IncludedFile.cs.meta | 0 .../Ink/compiler/ParsedHierarchy/Knot.cs | 0 .../Ink/compiler/ParsedHierarchy/Knot.cs.meta | 0 .../Ink/compiler/ParsedHierarchy/List.cs | 0 .../Ink/compiler/ParsedHierarchy/List.cs.meta | 0 .../ParsedHierarchy/ListDefinition.cs | 0 .../ParsedHierarchy/ListDefinition.cs.meta | 0 .../Ink/compiler/ParsedHierarchy/Number.cs | 0 .../compiler/ParsedHierarchy/Number.cs.meta | 0 .../Ink/compiler/ParsedHierarchy/Object.cs | 0 .../compiler/ParsedHierarchy/Object.cs.meta | 0 .../Ink/compiler/ParsedHierarchy/Path.cs | 0 .../Ink/compiler/ParsedHierarchy/Path.cs.meta | 0 .../Ink/compiler/ParsedHierarchy/Return.cs | 0 .../compiler/ParsedHierarchy/Return.cs.meta | 0 .../Ink/compiler/ParsedHierarchy/Sequence.cs | 0 .../compiler/ParsedHierarchy/Sequence.cs.meta | 0 .../Ink/compiler/ParsedHierarchy/Stitch.cs | 0 .../compiler/ParsedHierarchy/Stitch.cs.meta | 0 .../Ink/compiler/ParsedHierarchy/Story.cs | 0 .../compiler/ParsedHierarchy/Story.cs.meta | 0 .../ParsedHierarchy/StringExpression.cs | 0 .../ParsedHierarchy/StringExpression.cs.meta | 0 .../Ink/compiler/ParsedHierarchy/Text.cs | 0 .../Ink/compiler/ParsedHierarchy/Text.cs.meta | 0 .../compiler/ParsedHierarchy/TunnelOnwards.cs | 0 .../ParsedHierarchy/TunnelOnwards.cs.meta | 0 .../ParsedHierarchy/VariableAssignment.cs | 0 .../VariableAssignment.cs.meta | 0 .../ParsedHierarchy/VariableReference.cs | 0 .../ParsedHierarchy/VariableReference.cs.meta | 0 .../Ink/compiler/ParsedHierarchy/Weave.cs | 0 .../compiler/ParsedHierarchy/Weave.cs.meta | 0 .../Ink/compiler/ParsedHierarchy/Wrap.cs | 0 .../Ink/compiler/ParsedHierarchy/Wrap.cs.meta | 0 .../{ => Plugins}/Ink/compiler/Plugins.meta | 0 .../Ink/compiler/Plugins/Plugin.cs | 0 .../Ink/compiler/Plugins/Plugin.cs.meta | 0 .../Ink/compiler/Plugins/PluginManager.cs | 0 .../compiler/Plugins/PluginManager.cs.meta | 0 Assets/{ => Plugins}/Ink/compiler/Stats.cs | 0 .../{ => Plugins}/Ink/compiler/Stats.cs.meta | 0 .../Ink/compiler/StringParser.meta | 0 .../Ink/compiler/StringParser/StringParser.cs | 0 .../StringParser/StringParser.cs.meta | 0 .../StringParser/StringParserState.cs | 0 .../StringParser/StringParserState.cs.meta | 0 .../Ink/compiler/ink_compiler.csproj | 0 .../Ink/compiler/ink_compiler.csproj.meta | 0 .../{ => Plugins}/Ink/ink-engine-runtime.meta | 0 .../Ink/ink-engine-runtime/CallStack.cs | 0 .../Ink/ink-engine-runtime/CallStack.cs.meta | 0 .../Ink/ink-engine-runtime/Choice.cs | 0 .../Ink/ink-engine-runtime/Choice.cs.meta | 0 .../Ink/ink-engine-runtime/ChoicePoint.cs | 0 .../ink-engine-runtime/ChoicePoint.cs.meta | 0 .../Ink/ink-engine-runtime/Container.cs | 0 .../Ink/ink-engine-runtime/Container.cs.meta | 0 .../Ink/ink-engine-runtime/ControlCommand.cs | 0 .../ink-engine-runtime/ControlCommand.cs.meta | 0 .../Ink/ink-engine-runtime/DebugMetadata.cs | 0 .../ink-engine-runtime/DebugMetadata.cs.meta | 0 .../Ink/ink-engine-runtime/Divert.cs | 0 .../Ink/ink-engine-runtime/Divert.cs.meta | 0 .../Ink/ink-engine-runtime/Error.cs | 0 .../Ink/ink-engine-runtime/Error.cs.meta | 0 .../Ink/ink-engine-runtime/Flow.cs | 0 .../Ink/ink-engine-runtime/Flow.cs.meta | 0 .../Ink/ink-engine-runtime/Glue.cs | 0 .../Ink/ink-engine-runtime/Glue.cs.meta | 0 .../Ink/ink-engine-runtime/INamedContent.cs | 0 .../ink-engine-runtime/INamedContent.cs.meta | 0 .../Ink/ink-engine-runtime/InkList.cs | 0 .../Ink/ink-engine-runtime/InkList.cs.meta | 0 .../ink-engine-runtime/JsonSerialisation.cs | 0 .../JsonSerialisation.cs.meta | 0 .../Ink/ink-engine-runtime/ListDefinition.cs | 0 .../ink-engine-runtime/ListDefinition.cs.meta | 0 .../ListDefinitionsOrigin.cs | 0 .../ListDefinitionsOrigin.cs.meta | 0 .../ink-engine-runtime/NativeFunctionCall.cs | 0 .../NativeFunctionCall.cs.meta | 0 .../Ink/ink-engine-runtime/Object.cs | 0 .../Ink/ink-engine-runtime/Object.cs.meta | 0 .../Ink/ink-engine-runtime/Path.cs | 0 .../Ink/ink-engine-runtime/Path.cs.meta | 0 .../Ink/ink-engine-runtime/Pointer.cs | 0 .../Ink/ink-engine-runtime/Pointer.cs.meta | 0 .../Ink/ink-engine-runtime/Profiler.cs | 0 .../Ink/ink-engine-runtime/Profiler.cs.meta | 0 .../Ink/ink-engine-runtime/PushPop.cs | 0 .../Ink/ink-engine-runtime/PushPop.cs.meta | 0 .../Ink/ink-engine-runtime/SearchResult.cs | 0 .../ink-engine-runtime/SearchResult.cs.meta | 0 .../Ink/ink-engine-runtime/SimpleJson.cs | 0 .../Ink/ink-engine-runtime/SimpleJson.cs.meta | 0 .../Ink/ink-engine-runtime/StatePatch.cs | 0 .../Ink/ink-engine-runtime/StatePatch.cs.meta | 0 .../Ink/ink-engine-runtime/Story.cs | 0 .../Ink/ink-engine-runtime/Story.cs.meta | 0 .../Ink/ink-engine-runtime/StoryException.cs | 0 .../ink-engine-runtime/StoryException.cs.meta | 0 .../Ink/ink-engine-runtime/StoryState.cs | 0 .../Ink/ink-engine-runtime/StoryState.cs.meta | 0 .../ink-engine-runtime/StringJoinExtension.cs | 0 .../StringJoinExtension.cs.meta | 0 .../Ink/ink-engine-runtime/Tag.cs | 0 .../Ink/ink-engine-runtime/Tag.cs.meta | 0 .../Ink/ink-engine-runtime/Value.cs | 0 .../Ink/ink-engine-runtime/Value.cs.meta | 0 .../ink-engine-runtime/VariableAssignment.cs | 0 .../VariableAssignment.cs.meta | 0 .../ink-engine-runtime/VariableReference.cs | 0 .../VariableReference.cs.meta | 0 .../Ink/ink-engine-runtime/VariablesState.cs | 0 .../ink-engine-runtime/VariablesState.cs.meta | 0 .../Ink/ink-engine-runtime/Void.cs | 0 .../Ink/ink-engine-runtime/Void.cs.meta | 0 .../ink-engine-runtime.csproj | 0 .../ink-engine-runtime.csproj.meta | 0 Assets/Resources/Settings.asset | 4 +- Assets/Scenes/Main Menu.unity | 12 +- Assets/Scripts/Gameplay/ActionGameManager.cs | 99 +++-- Assets/Scripts/Gameplay/GameSettings.cs | 4 + Assets/Scripts/ServerShared/Entity.cs | 2 +- Assets/Scripts/ServerShared/ItemData.cs | 2 +- .../Scripts/ServerShared/LoadoutGenerator.cs | 25 +- .../ServerShared/MarkovNameGenerator.cs | 2 +- Assets/Scripts/ServerShared/PlayerSettings.cs | 1 + .../Scripts/ServerShared/SampleElimination.cs | 3 +- Assets/Scripts/ServerShared/SavedGame.cs | 7 +- Assets/Scripts/ServerShared/Sector.cs | 389 ++++++++++++------ Assets/Scripts/ServerShared/Settings.cs | 38 +- Assets/Scripts/ServerShared/ZoneGenerator.cs | 8 +- Assets/Scripts/UI/MainMenu.cs | 51 ++- Assets/Scripts/UI/SectorMap.cs | 20 +- GameData/AetherDB.msgpack | 4 +- GameData/PlayerSettings.msgpack | 4 +- UserSettings/EditorUserSettings.asset | 2 +- 224 files changed, 446 insertions(+), 231 deletions(-) rename Assets/{ => Plugins}/Ink.meta (100%) rename Assets/{ => Plugins}/Ink/compiler.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/CharacterRange.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/CharacterRange.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/CharacterSet.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/CharacterSet.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/CommandLineInput.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/CommandLineInput.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/Compiler.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/Compiler.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/FileHandler.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/FileHandler.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/InkParser.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/InkParser/CommentEliminator.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/InkParser/CommentEliminator.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/InkParser/InkParser.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/InkParser/InkParser.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/InkParser/InkParser_AuthorWarning.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/InkParser/InkParser_AuthorWarning.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/InkParser/InkParser_CharacterRanges.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/InkParser/InkParser_CharacterRanges.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/InkParser/InkParser_Choices.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/InkParser/InkParser_Choices.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/InkParser/InkParser_CommandLineInput.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/InkParser/InkParser_CommandLineInput.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/InkParser/InkParser_Conditional.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/InkParser/InkParser_Conditional.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/InkParser/InkParser_Content.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/InkParser/InkParser_Content.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/InkParser/InkParser_Divert.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/InkParser/InkParser_Divert.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/InkParser/InkParser_Expressions.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/InkParser/InkParser_Expressions.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/InkParser/InkParser_Include.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/InkParser/InkParser_Include.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/InkParser/InkParser_Knot.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/InkParser/InkParser_Knot.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/InkParser/InkParser_Logic.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/InkParser/InkParser_Logic.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/InkParser/InkParser_Sequences.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/InkParser/InkParser_Sequences.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/InkParser/InkParser_Statements.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/InkParser/InkParser_Statements.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/InkParser/InkParser_Tags.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/InkParser/InkParser_Tags.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/InkParser/InkParser_Whitespace.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/InkParser/InkParser_Whitespace.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/InkStringConversionExtensions.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/InkStringConversionExtensions.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/AuthorWarning.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/AuthorWarning.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/Choice.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/Choice.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/Conditional.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/Conditional.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/ConditionalSingleBranch.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/ConditionalSingleBranch.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/ConstantDeclaration.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/ConstantDeclaration.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/ContentList.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/ContentList.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/Divert.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/Divert.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/DivertTarget.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/DivertTarget.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/Expression.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/Expression.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/ExternalDeclaration.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/ExternalDeclaration.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/FlowBase.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/FlowBase.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/FlowLevel.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/FlowLevel.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/FunctionCall.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/FunctionCall.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/Gather.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/Gather.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/INamedContent.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/INamedContent.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/IWeavePoint.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/IWeavePoint.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/Identifier.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/Identifier.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/IncludedFile.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/IncludedFile.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/Knot.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/Knot.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/List.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/List.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/ListDefinition.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/ListDefinition.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/Number.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/Number.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/Object.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/Object.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/Path.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/Path.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/Return.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/Return.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/Sequence.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/Sequence.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/Stitch.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/Stitch.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/Story.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/Story.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/StringExpression.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/StringExpression.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/Text.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/Text.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/TunnelOnwards.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/TunnelOnwards.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/VariableAssignment.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/VariableAssignment.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/VariableReference.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/VariableReference.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/Weave.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/Weave.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/Wrap.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/Wrap.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/Plugins.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/Plugins/Plugin.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/Plugins/Plugin.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/Plugins/PluginManager.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/Plugins/PluginManager.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/Stats.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/Stats.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/StringParser.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/StringParser/StringParser.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/StringParser/StringParser.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/StringParser/StringParserState.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/StringParser/StringParserState.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/ink_compiler.csproj (100%) rename Assets/{ => Plugins}/Ink/compiler/ink_compiler.csproj.meta (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime.meta (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/CallStack.cs (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/CallStack.cs.meta (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/Choice.cs (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/Choice.cs.meta (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/ChoicePoint.cs (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/ChoicePoint.cs.meta (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/Container.cs (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/Container.cs.meta (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/ControlCommand.cs (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/ControlCommand.cs.meta (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/DebugMetadata.cs (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/DebugMetadata.cs.meta (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/Divert.cs (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/Divert.cs.meta (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/Error.cs (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/Error.cs.meta (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/Flow.cs (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/Flow.cs.meta (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/Glue.cs (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/Glue.cs.meta (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/INamedContent.cs (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/INamedContent.cs.meta (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/InkList.cs (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/InkList.cs.meta (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/JsonSerialisation.cs (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/JsonSerialisation.cs.meta (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/ListDefinition.cs (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/ListDefinition.cs.meta (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/ListDefinitionsOrigin.cs (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/ListDefinitionsOrigin.cs.meta (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/NativeFunctionCall.cs (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/NativeFunctionCall.cs.meta (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/Object.cs (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/Object.cs.meta (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/Path.cs (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/Path.cs.meta (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/Pointer.cs (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/Pointer.cs.meta (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/Profiler.cs (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/Profiler.cs.meta (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/PushPop.cs (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/PushPop.cs.meta (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/SearchResult.cs (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/SearchResult.cs.meta (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/SimpleJson.cs (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/SimpleJson.cs.meta (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/StatePatch.cs (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/StatePatch.cs.meta (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/Story.cs (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/Story.cs.meta (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/StoryException.cs (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/StoryException.cs.meta (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/StoryState.cs (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/StoryState.cs.meta (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/StringJoinExtension.cs (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/StringJoinExtension.cs.meta (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/Tag.cs (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/Tag.cs.meta (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/Value.cs (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/Value.cs.meta (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/VariableAssignment.cs (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/VariableAssignment.cs.meta (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/VariableReference.cs (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/VariableReference.cs.meta (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/VariablesState.cs (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/VariablesState.cs.meta (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/Void.cs (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/Void.cs.meta (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/ink-engine-runtime.csproj (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/ink-engine-runtime.csproj.meta (100%) diff --git a/Assets/Ink.meta b/Assets/Plugins/Ink.meta similarity index 100% rename from Assets/Ink.meta rename to Assets/Plugins/Ink.meta diff --git a/Assets/Ink/compiler.meta b/Assets/Plugins/Ink/compiler.meta similarity index 100% rename from Assets/Ink/compiler.meta rename to Assets/Plugins/Ink/compiler.meta diff --git a/Assets/Ink/compiler/CharacterRange.cs b/Assets/Plugins/Ink/compiler/CharacterRange.cs similarity index 100% rename from Assets/Ink/compiler/CharacterRange.cs rename to Assets/Plugins/Ink/compiler/CharacterRange.cs diff --git a/Assets/Ink/compiler/CharacterRange.cs.meta b/Assets/Plugins/Ink/compiler/CharacterRange.cs.meta similarity index 100% rename from Assets/Ink/compiler/CharacterRange.cs.meta rename to Assets/Plugins/Ink/compiler/CharacterRange.cs.meta diff --git a/Assets/Ink/compiler/CharacterSet.cs b/Assets/Plugins/Ink/compiler/CharacterSet.cs similarity index 100% rename from Assets/Ink/compiler/CharacterSet.cs rename to Assets/Plugins/Ink/compiler/CharacterSet.cs diff --git a/Assets/Ink/compiler/CharacterSet.cs.meta b/Assets/Plugins/Ink/compiler/CharacterSet.cs.meta similarity index 100% rename from Assets/Ink/compiler/CharacterSet.cs.meta rename to Assets/Plugins/Ink/compiler/CharacterSet.cs.meta diff --git a/Assets/Ink/compiler/CommandLineInput.cs b/Assets/Plugins/Ink/compiler/CommandLineInput.cs similarity index 100% rename from Assets/Ink/compiler/CommandLineInput.cs rename to Assets/Plugins/Ink/compiler/CommandLineInput.cs diff --git a/Assets/Ink/compiler/CommandLineInput.cs.meta b/Assets/Plugins/Ink/compiler/CommandLineInput.cs.meta similarity index 100% rename from Assets/Ink/compiler/CommandLineInput.cs.meta rename to Assets/Plugins/Ink/compiler/CommandLineInput.cs.meta diff --git a/Assets/Ink/compiler/Compiler.cs b/Assets/Plugins/Ink/compiler/Compiler.cs similarity index 100% rename from Assets/Ink/compiler/Compiler.cs rename to Assets/Plugins/Ink/compiler/Compiler.cs diff --git a/Assets/Ink/compiler/Compiler.cs.meta b/Assets/Plugins/Ink/compiler/Compiler.cs.meta similarity index 100% rename from Assets/Ink/compiler/Compiler.cs.meta rename to Assets/Plugins/Ink/compiler/Compiler.cs.meta diff --git a/Assets/Ink/compiler/FileHandler.cs b/Assets/Plugins/Ink/compiler/FileHandler.cs similarity index 100% rename from Assets/Ink/compiler/FileHandler.cs rename to Assets/Plugins/Ink/compiler/FileHandler.cs diff --git a/Assets/Ink/compiler/FileHandler.cs.meta b/Assets/Plugins/Ink/compiler/FileHandler.cs.meta similarity index 100% rename from Assets/Ink/compiler/FileHandler.cs.meta rename to Assets/Plugins/Ink/compiler/FileHandler.cs.meta diff --git a/Assets/Ink/compiler/InkParser.meta b/Assets/Plugins/Ink/compiler/InkParser.meta similarity index 100% rename from Assets/Ink/compiler/InkParser.meta rename to Assets/Plugins/Ink/compiler/InkParser.meta diff --git a/Assets/Ink/compiler/InkParser/CommentEliminator.cs b/Assets/Plugins/Ink/compiler/InkParser/CommentEliminator.cs similarity index 100% rename from Assets/Ink/compiler/InkParser/CommentEliminator.cs rename to Assets/Plugins/Ink/compiler/InkParser/CommentEliminator.cs diff --git a/Assets/Ink/compiler/InkParser/CommentEliminator.cs.meta b/Assets/Plugins/Ink/compiler/InkParser/CommentEliminator.cs.meta similarity index 100% rename from Assets/Ink/compiler/InkParser/CommentEliminator.cs.meta rename to Assets/Plugins/Ink/compiler/InkParser/CommentEliminator.cs.meta diff --git a/Assets/Ink/compiler/InkParser/InkParser.cs b/Assets/Plugins/Ink/compiler/InkParser/InkParser.cs similarity index 100% rename from Assets/Ink/compiler/InkParser/InkParser.cs rename to Assets/Plugins/Ink/compiler/InkParser/InkParser.cs diff --git a/Assets/Ink/compiler/InkParser/InkParser.cs.meta b/Assets/Plugins/Ink/compiler/InkParser/InkParser.cs.meta similarity index 100% rename from Assets/Ink/compiler/InkParser/InkParser.cs.meta rename to Assets/Plugins/Ink/compiler/InkParser/InkParser.cs.meta diff --git a/Assets/Ink/compiler/InkParser/InkParser_AuthorWarning.cs b/Assets/Plugins/Ink/compiler/InkParser/InkParser_AuthorWarning.cs similarity index 100% rename from Assets/Ink/compiler/InkParser/InkParser_AuthorWarning.cs rename to Assets/Plugins/Ink/compiler/InkParser/InkParser_AuthorWarning.cs diff --git a/Assets/Ink/compiler/InkParser/InkParser_AuthorWarning.cs.meta b/Assets/Plugins/Ink/compiler/InkParser/InkParser_AuthorWarning.cs.meta similarity index 100% rename from Assets/Ink/compiler/InkParser/InkParser_AuthorWarning.cs.meta rename to Assets/Plugins/Ink/compiler/InkParser/InkParser_AuthorWarning.cs.meta diff --git a/Assets/Ink/compiler/InkParser/InkParser_CharacterRanges.cs b/Assets/Plugins/Ink/compiler/InkParser/InkParser_CharacterRanges.cs similarity index 100% rename from Assets/Ink/compiler/InkParser/InkParser_CharacterRanges.cs rename to Assets/Plugins/Ink/compiler/InkParser/InkParser_CharacterRanges.cs diff --git a/Assets/Ink/compiler/InkParser/InkParser_CharacterRanges.cs.meta b/Assets/Plugins/Ink/compiler/InkParser/InkParser_CharacterRanges.cs.meta similarity index 100% rename from Assets/Ink/compiler/InkParser/InkParser_CharacterRanges.cs.meta rename to Assets/Plugins/Ink/compiler/InkParser/InkParser_CharacterRanges.cs.meta diff --git a/Assets/Ink/compiler/InkParser/InkParser_Choices.cs b/Assets/Plugins/Ink/compiler/InkParser/InkParser_Choices.cs similarity index 100% rename from Assets/Ink/compiler/InkParser/InkParser_Choices.cs rename to Assets/Plugins/Ink/compiler/InkParser/InkParser_Choices.cs diff --git a/Assets/Ink/compiler/InkParser/InkParser_Choices.cs.meta b/Assets/Plugins/Ink/compiler/InkParser/InkParser_Choices.cs.meta similarity index 100% rename from Assets/Ink/compiler/InkParser/InkParser_Choices.cs.meta rename to Assets/Plugins/Ink/compiler/InkParser/InkParser_Choices.cs.meta diff --git a/Assets/Ink/compiler/InkParser/InkParser_CommandLineInput.cs b/Assets/Plugins/Ink/compiler/InkParser/InkParser_CommandLineInput.cs similarity index 100% rename from Assets/Ink/compiler/InkParser/InkParser_CommandLineInput.cs rename to Assets/Plugins/Ink/compiler/InkParser/InkParser_CommandLineInput.cs diff --git a/Assets/Ink/compiler/InkParser/InkParser_CommandLineInput.cs.meta b/Assets/Plugins/Ink/compiler/InkParser/InkParser_CommandLineInput.cs.meta similarity index 100% rename from Assets/Ink/compiler/InkParser/InkParser_CommandLineInput.cs.meta rename to Assets/Plugins/Ink/compiler/InkParser/InkParser_CommandLineInput.cs.meta diff --git a/Assets/Ink/compiler/InkParser/InkParser_Conditional.cs b/Assets/Plugins/Ink/compiler/InkParser/InkParser_Conditional.cs similarity index 100% rename from Assets/Ink/compiler/InkParser/InkParser_Conditional.cs rename to Assets/Plugins/Ink/compiler/InkParser/InkParser_Conditional.cs diff --git a/Assets/Ink/compiler/InkParser/InkParser_Conditional.cs.meta b/Assets/Plugins/Ink/compiler/InkParser/InkParser_Conditional.cs.meta similarity index 100% rename from Assets/Ink/compiler/InkParser/InkParser_Conditional.cs.meta rename to Assets/Plugins/Ink/compiler/InkParser/InkParser_Conditional.cs.meta diff --git a/Assets/Ink/compiler/InkParser/InkParser_Content.cs b/Assets/Plugins/Ink/compiler/InkParser/InkParser_Content.cs similarity index 100% rename from Assets/Ink/compiler/InkParser/InkParser_Content.cs rename to Assets/Plugins/Ink/compiler/InkParser/InkParser_Content.cs diff --git a/Assets/Ink/compiler/InkParser/InkParser_Content.cs.meta b/Assets/Plugins/Ink/compiler/InkParser/InkParser_Content.cs.meta similarity index 100% rename from Assets/Ink/compiler/InkParser/InkParser_Content.cs.meta rename to Assets/Plugins/Ink/compiler/InkParser/InkParser_Content.cs.meta diff --git a/Assets/Ink/compiler/InkParser/InkParser_Divert.cs b/Assets/Plugins/Ink/compiler/InkParser/InkParser_Divert.cs similarity index 100% rename from Assets/Ink/compiler/InkParser/InkParser_Divert.cs rename to Assets/Plugins/Ink/compiler/InkParser/InkParser_Divert.cs diff --git a/Assets/Ink/compiler/InkParser/InkParser_Divert.cs.meta b/Assets/Plugins/Ink/compiler/InkParser/InkParser_Divert.cs.meta similarity index 100% rename from Assets/Ink/compiler/InkParser/InkParser_Divert.cs.meta rename to Assets/Plugins/Ink/compiler/InkParser/InkParser_Divert.cs.meta diff --git a/Assets/Ink/compiler/InkParser/InkParser_Expressions.cs b/Assets/Plugins/Ink/compiler/InkParser/InkParser_Expressions.cs similarity index 100% rename from Assets/Ink/compiler/InkParser/InkParser_Expressions.cs rename to Assets/Plugins/Ink/compiler/InkParser/InkParser_Expressions.cs diff --git a/Assets/Ink/compiler/InkParser/InkParser_Expressions.cs.meta b/Assets/Plugins/Ink/compiler/InkParser/InkParser_Expressions.cs.meta similarity index 100% rename from Assets/Ink/compiler/InkParser/InkParser_Expressions.cs.meta rename to Assets/Plugins/Ink/compiler/InkParser/InkParser_Expressions.cs.meta diff --git a/Assets/Ink/compiler/InkParser/InkParser_Include.cs b/Assets/Plugins/Ink/compiler/InkParser/InkParser_Include.cs similarity index 100% rename from Assets/Ink/compiler/InkParser/InkParser_Include.cs rename to Assets/Plugins/Ink/compiler/InkParser/InkParser_Include.cs diff --git a/Assets/Ink/compiler/InkParser/InkParser_Include.cs.meta b/Assets/Plugins/Ink/compiler/InkParser/InkParser_Include.cs.meta similarity index 100% rename from Assets/Ink/compiler/InkParser/InkParser_Include.cs.meta rename to Assets/Plugins/Ink/compiler/InkParser/InkParser_Include.cs.meta diff --git a/Assets/Ink/compiler/InkParser/InkParser_Knot.cs b/Assets/Plugins/Ink/compiler/InkParser/InkParser_Knot.cs similarity index 100% rename from Assets/Ink/compiler/InkParser/InkParser_Knot.cs rename to Assets/Plugins/Ink/compiler/InkParser/InkParser_Knot.cs diff --git a/Assets/Ink/compiler/InkParser/InkParser_Knot.cs.meta b/Assets/Plugins/Ink/compiler/InkParser/InkParser_Knot.cs.meta similarity index 100% rename from Assets/Ink/compiler/InkParser/InkParser_Knot.cs.meta rename to Assets/Plugins/Ink/compiler/InkParser/InkParser_Knot.cs.meta diff --git a/Assets/Ink/compiler/InkParser/InkParser_Logic.cs b/Assets/Plugins/Ink/compiler/InkParser/InkParser_Logic.cs similarity index 100% rename from Assets/Ink/compiler/InkParser/InkParser_Logic.cs rename to Assets/Plugins/Ink/compiler/InkParser/InkParser_Logic.cs diff --git a/Assets/Ink/compiler/InkParser/InkParser_Logic.cs.meta b/Assets/Plugins/Ink/compiler/InkParser/InkParser_Logic.cs.meta similarity index 100% rename from Assets/Ink/compiler/InkParser/InkParser_Logic.cs.meta rename to Assets/Plugins/Ink/compiler/InkParser/InkParser_Logic.cs.meta diff --git a/Assets/Ink/compiler/InkParser/InkParser_Sequences.cs b/Assets/Plugins/Ink/compiler/InkParser/InkParser_Sequences.cs similarity index 100% rename from Assets/Ink/compiler/InkParser/InkParser_Sequences.cs rename to Assets/Plugins/Ink/compiler/InkParser/InkParser_Sequences.cs diff --git a/Assets/Ink/compiler/InkParser/InkParser_Sequences.cs.meta b/Assets/Plugins/Ink/compiler/InkParser/InkParser_Sequences.cs.meta similarity index 100% rename from Assets/Ink/compiler/InkParser/InkParser_Sequences.cs.meta rename to Assets/Plugins/Ink/compiler/InkParser/InkParser_Sequences.cs.meta diff --git a/Assets/Ink/compiler/InkParser/InkParser_Statements.cs b/Assets/Plugins/Ink/compiler/InkParser/InkParser_Statements.cs similarity index 100% rename from Assets/Ink/compiler/InkParser/InkParser_Statements.cs rename to Assets/Plugins/Ink/compiler/InkParser/InkParser_Statements.cs diff --git a/Assets/Ink/compiler/InkParser/InkParser_Statements.cs.meta b/Assets/Plugins/Ink/compiler/InkParser/InkParser_Statements.cs.meta similarity index 100% rename from Assets/Ink/compiler/InkParser/InkParser_Statements.cs.meta rename to Assets/Plugins/Ink/compiler/InkParser/InkParser_Statements.cs.meta diff --git a/Assets/Ink/compiler/InkParser/InkParser_Tags.cs b/Assets/Plugins/Ink/compiler/InkParser/InkParser_Tags.cs similarity index 100% rename from Assets/Ink/compiler/InkParser/InkParser_Tags.cs rename to Assets/Plugins/Ink/compiler/InkParser/InkParser_Tags.cs diff --git a/Assets/Ink/compiler/InkParser/InkParser_Tags.cs.meta b/Assets/Plugins/Ink/compiler/InkParser/InkParser_Tags.cs.meta similarity index 100% rename from Assets/Ink/compiler/InkParser/InkParser_Tags.cs.meta rename to Assets/Plugins/Ink/compiler/InkParser/InkParser_Tags.cs.meta diff --git a/Assets/Ink/compiler/InkParser/InkParser_Whitespace.cs b/Assets/Plugins/Ink/compiler/InkParser/InkParser_Whitespace.cs similarity index 100% rename from Assets/Ink/compiler/InkParser/InkParser_Whitespace.cs rename to Assets/Plugins/Ink/compiler/InkParser/InkParser_Whitespace.cs diff --git a/Assets/Ink/compiler/InkParser/InkParser_Whitespace.cs.meta b/Assets/Plugins/Ink/compiler/InkParser/InkParser_Whitespace.cs.meta similarity index 100% rename from Assets/Ink/compiler/InkParser/InkParser_Whitespace.cs.meta rename to Assets/Plugins/Ink/compiler/InkParser/InkParser_Whitespace.cs.meta diff --git a/Assets/Ink/compiler/InkStringConversionExtensions.cs b/Assets/Plugins/Ink/compiler/InkStringConversionExtensions.cs similarity index 100% rename from Assets/Ink/compiler/InkStringConversionExtensions.cs rename to Assets/Plugins/Ink/compiler/InkStringConversionExtensions.cs diff --git a/Assets/Ink/compiler/InkStringConversionExtensions.cs.meta b/Assets/Plugins/Ink/compiler/InkStringConversionExtensions.cs.meta similarity index 100% rename from Assets/Ink/compiler/InkStringConversionExtensions.cs.meta rename to Assets/Plugins/Ink/compiler/InkStringConversionExtensions.cs.meta diff --git a/Assets/Ink/compiler/ParsedHierarchy.meta b/Assets/Plugins/Ink/compiler/ParsedHierarchy.meta similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy.meta rename to Assets/Plugins/Ink/compiler/ParsedHierarchy.meta diff --git a/Assets/Ink/compiler/ParsedHierarchy/AuthorWarning.cs b/Assets/Plugins/Ink/compiler/ParsedHierarchy/AuthorWarning.cs similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/AuthorWarning.cs rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/AuthorWarning.cs diff --git a/Assets/Ink/compiler/ParsedHierarchy/AuthorWarning.cs.meta b/Assets/Plugins/Ink/compiler/ParsedHierarchy/AuthorWarning.cs.meta similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/AuthorWarning.cs.meta rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/AuthorWarning.cs.meta diff --git a/Assets/Ink/compiler/ParsedHierarchy/Choice.cs b/Assets/Plugins/Ink/compiler/ParsedHierarchy/Choice.cs similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/Choice.cs rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/Choice.cs diff --git a/Assets/Ink/compiler/ParsedHierarchy/Choice.cs.meta b/Assets/Plugins/Ink/compiler/ParsedHierarchy/Choice.cs.meta similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/Choice.cs.meta rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/Choice.cs.meta diff --git a/Assets/Ink/compiler/ParsedHierarchy/Conditional.cs b/Assets/Plugins/Ink/compiler/ParsedHierarchy/Conditional.cs similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/Conditional.cs rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/Conditional.cs diff --git a/Assets/Ink/compiler/ParsedHierarchy/Conditional.cs.meta b/Assets/Plugins/Ink/compiler/ParsedHierarchy/Conditional.cs.meta similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/Conditional.cs.meta rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/Conditional.cs.meta diff --git a/Assets/Ink/compiler/ParsedHierarchy/ConditionalSingleBranch.cs b/Assets/Plugins/Ink/compiler/ParsedHierarchy/ConditionalSingleBranch.cs similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/ConditionalSingleBranch.cs rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/ConditionalSingleBranch.cs diff --git a/Assets/Ink/compiler/ParsedHierarchy/ConditionalSingleBranch.cs.meta b/Assets/Plugins/Ink/compiler/ParsedHierarchy/ConditionalSingleBranch.cs.meta similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/ConditionalSingleBranch.cs.meta rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/ConditionalSingleBranch.cs.meta diff --git a/Assets/Ink/compiler/ParsedHierarchy/ConstantDeclaration.cs b/Assets/Plugins/Ink/compiler/ParsedHierarchy/ConstantDeclaration.cs similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/ConstantDeclaration.cs rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/ConstantDeclaration.cs diff --git a/Assets/Ink/compiler/ParsedHierarchy/ConstantDeclaration.cs.meta b/Assets/Plugins/Ink/compiler/ParsedHierarchy/ConstantDeclaration.cs.meta similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/ConstantDeclaration.cs.meta rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/ConstantDeclaration.cs.meta diff --git a/Assets/Ink/compiler/ParsedHierarchy/ContentList.cs b/Assets/Plugins/Ink/compiler/ParsedHierarchy/ContentList.cs similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/ContentList.cs rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/ContentList.cs diff --git a/Assets/Ink/compiler/ParsedHierarchy/ContentList.cs.meta b/Assets/Plugins/Ink/compiler/ParsedHierarchy/ContentList.cs.meta similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/ContentList.cs.meta rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/ContentList.cs.meta diff --git a/Assets/Ink/compiler/ParsedHierarchy/Divert.cs b/Assets/Plugins/Ink/compiler/ParsedHierarchy/Divert.cs similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/Divert.cs rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/Divert.cs diff --git a/Assets/Ink/compiler/ParsedHierarchy/Divert.cs.meta b/Assets/Plugins/Ink/compiler/ParsedHierarchy/Divert.cs.meta similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/Divert.cs.meta rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/Divert.cs.meta diff --git a/Assets/Ink/compiler/ParsedHierarchy/DivertTarget.cs b/Assets/Plugins/Ink/compiler/ParsedHierarchy/DivertTarget.cs similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/DivertTarget.cs rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/DivertTarget.cs diff --git a/Assets/Ink/compiler/ParsedHierarchy/DivertTarget.cs.meta b/Assets/Plugins/Ink/compiler/ParsedHierarchy/DivertTarget.cs.meta similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/DivertTarget.cs.meta rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/DivertTarget.cs.meta diff --git a/Assets/Ink/compiler/ParsedHierarchy/Expression.cs b/Assets/Plugins/Ink/compiler/ParsedHierarchy/Expression.cs similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/Expression.cs rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/Expression.cs diff --git a/Assets/Ink/compiler/ParsedHierarchy/Expression.cs.meta b/Assets/Plugins/Ink/compiler/ParsedHierarchy/Expression.cs.meta similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/Expression.cs.meta rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/Expression.cs.meta diff --git a/Assets/Ink/compiler/ParsedHierarchy/ExternalDeclaration.cs b/Assets/Plugins/Ink/compiler/ParsedHierarchy/ExternalDeclaration.cs similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/ExternalDeclaration.cs rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/ExternalDeclaration.cs diff --git a/Assets/Ink/compiler/ParsedHierarchy/ExternalDeclaration.cs.meta b/Assets/Plugins/Ink/compiler/ParsedHierarchy/ExternalDeclaration.cs.meta similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/ExternalDeclaration.cs.meta rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/ExternalDeclaration.cs.meta diff --git a/Assets/Ink/compiler/ParsedHierarchy/FlowBase.cs b/Assets/Plugins/Ink/compiler/ParsedHierarchy/FlowBase.cs similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/FlowBase.cs rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/FlowBase.cs diff --git a/Assets/Ink/compiler/ParsedHierarchy/FlowBase.cs.meta b/Assets/Plugins/Ink/compiler/ParsedHierarchy/FlowBase.cs.meta similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/FlowBase.cs.meta rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/FlowBase.cs.meta diff --git a/Assets/Ink/compiler/ParsedHierarchy/FlowLevel.cs b/Assets/Plugins/Ink/compiler/ParsedHierarchy/FlowLevel.cs similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/FlowLevel.cs rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/FlowLevel.cs diff --git a/Assets/Ink/compiler/ParsedHierarchy/FlowLevel.cs.meta b/Assets/Plugins/Ink/compiler/ParsedHierarchy/FlowLevel.cs.meta similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/FlowLevel.cs.meta rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/FlowLevel.cs.meta diff --git a/Assets/Ink/compiler/ParsedHierarchy/FunctionCall.cs b/Assets/Plugins/Ink/compiler/ParsedHierarchy/FunctionCall.cs similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/FunctionCall.cs rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/FunctionCall.cs diff --git a/Assets/Ink/compiler/ParsedHierarchy/FunctionCall.cs.meta b/Assets/Plugins/Ink/compiler/ParsedHierarchy/FunctionCall.cs.meta similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/FunctionCall.cs.meta rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/FunctionCall.cs.meta diff --git a/Assets/Ink/compiler/ParsedHierarchy/Gather.cs b/Assets/Plugins/Ink/compiler/ParsedHierarchy/Gather.cs similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/Gather.cs rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/Gather.cs diff --git a/Assets/Ink/compiler/ParsedHierarchy/Gather.cs.meta b/Assets/Plugins/Ink/compiler/ParsedHierarchy/Gather.cs.meta similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/Gather.cs.meta rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/Gather.cs.meta diff --git a/Assets/Ink/compiler/ParsedHierarchy/INamedContent.cs b/Assets/Plugins/Ink/compiler/ParsedHierarchy/INamedContent.cs similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/INamedContent.cs rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/INamedContent.cs diff --git a/Assets/Ink/compiler/ParsedHierarchy/INamedContent.cs.meta b/Assets/Plugins/Ink/compiler/ParsedHierarchy/INamedContent.cs.meta similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/INamedContent.cs.meta rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/INamedContent.cs.meta diff --git a/Assets/Ink/compiler/ParsedHierarchy/IWeavePoint.cs b/Assets/Plugins/Ink/compiler/ParsedHierarchy/IWeavePoint.cs similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/IWeavePoint.cs rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/IWeavePoint.cs diff --git a/Assets/Ink/compiler/ParsedHierarchy/IWeavePoint.cs.meta b/Assets/Plugins/Ink/compiler/ParsedHierarchy/IWeavePoint.cs.meta similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/IWeavePoint.cs.meta rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/IWeavePoint.cs.meta diff --git a/Assets/Ink/compiler/ParsedHierarchy/Identifier.cs b/Assets/Plugins/Ink/compiler/ParsedHierarchy/Identifier.cs similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/Identifier.cs rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/Identifier.cs diff --git a/Assets/Ink/compiler/ParsedHierarchy/Identifier.cs.meta b/Assets/Plugins/Ink/compiler/ParsedHierarchy/Identifier.cs.meta similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/Identifier.cs.meta rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/Identifier.cs.meta diff --git a/Assets/Ink/compiler/ParsedHierarchy/IncludedFile.cs b/Assets/Plugins/Ink/compiler/ParsedHierarchy/IncludedFile.cs similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/IncludedFile.cs rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/IncludedFile.cs diff --git a/Assets/Ink/compiler/ParsedHierarchy/IncludedFile.cs.meta b/Assets/Plugins/Ink/compiler/ParsedHierarchy/IncludedFile.cs.meta similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/IncludedFile.cs.meta rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/IncludedFile.cs.meta diff --git a/Assets/Ink/compiler/ParsedHierarchy/Knot.cs b/Assets/Plugins/Ink/compiler/ParsedHierarchy/Knot.cs similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/Knot.cs rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/Knot.cs diff --git a/Assets/Ink/compiler/ParsedHierarchy/Knot.cs.meta b/Assets/Plugins/Ink/compiler/ParsedHierarchy/Knot.cs.meta similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/Knot.cs.meta rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/Knot.cs.meta diff --git a/Assets/Ink/compiler/ParsedHierarchy/List.cs b/Assets/Plugins/Ink/compiler/ParsedHierarchy/List.cs similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/List.cs rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/List.cs diff --git a/Assets/Ink/compiler/ParsedHierarchy/List.cs.meta b/Assets/Plugins/Ink/compiler/ParsedHierarchy/List.cs.meta similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/List.cs.meta rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/List.cs.meta diff --git a/Assets/Ink/compiler/ParsedHierarchy/ListDefinition.cs b/Assets/Plugins/Ink/compiler/ParsedHierarchy/ListDefinition.cs similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/ListDefinition.cs rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/ListDefinition.cs diff --git a/Assets/Ink/compiler/ParsedHierarchy/ListDefinition.cs.meta b/Assets/Plugins/Ink/compiler/ParsedHierarchy/ListDefinition.cs.meta similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/ListDefinition.cs.meta rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/ListDefinition.cs.meta diff --git a/Assets/Ink/compiler/ParsedHierarchy/Number.cs b/Assets/Plugins/Ink/compiler/ParsedHierarchy/Number.cs similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/Number.cs rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/Number.cs diff --git a/Assets/Ink/compiler/ParsedHierarchy/Number.cs.meta b/Assets/Plugins/Ink/compiler/ParsedHierarchy/Number.cs.meta similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/Number.cs.meta rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/Number.cs.meta diff --git a/Assets/Ink/compiler/ParsedHierarchy/Object.cs b/Assets/Plugins/Ink/compiler/ParsedHierarchy/Object.cs similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/Object.cs rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/Object.cs diff --git a/Assets/Ink/compiler/ParsedHierarchy/Object.cs.meta b/Assets/Plugins/Ink/compiler/ParsedHierarchy/Object.cs.meta similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/Object.cs.meta rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/Object.cs.meta diff --git a/Assets/Ink/compiler/ParsedHierarchy/Path.cs b/Assets/Plugins/Ink/compiler/ParsedHierarchy/Path.cs similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/Path.cs rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/Path.cs diff --git a/Assets/Ink/compiler/ParsedHierarchy/Path.cs.meta b/Assets/Plugins/Ink/compiler/ParsedHierarchy/Path.cs.meta similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/Path.cs.meta rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/Path.cs.meta diff --git a/Assets/Ink/compiler/ParsedHierarchy/Return.cs b/Assets/Plugins/Ink/compiler/ParsedHierarchy/Return.cs similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/Return.cs rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/Return.cs diff --git a/Assets/Ink/compiler/ParsedHierarchy/Return.cs.meta b/Assets/Plugins/Ink/compiler/ParsedHierarchy/Return.cs.meta similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/Return.cs.meta rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/Return.cs.meta diff --git a/Assets/Ink/compiler/ParsedHierarchy/Sequence.cs b/Assets/Plugins/Ink/compiler/ParsedHierarchy/Sequence.cs similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/Sequence.cs rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/Sequence.cs diff --git a/Assets/Ink/compiler/ParsedHierarchy/Sequence.cs.meta b/Assets/Plugins/Ink/compiler/ParsedHierarchy/Sequence.cs.meta similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/Sequence.cs.meta rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/Sequence.cs.meta diff --git a/Assets/Ink/compiler/ParsedHierarchy/Stitch.cs b/Assets/Plugins/Ink/compiler/ParsedHierarchy/Stitch.cs similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/Stitch.cs rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/Stitch.cs diff --git a/Assets/Ink/compiler/ParsedHierarchy/Stitch.cs.meta b/Assets/Plugins/Ink/compiler/ParsedHierarchy/Stitch.cs.meta similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/Stitch.cs.meta rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/Stitch.cs.meta diff --git a/Assets/Ink/compiler/ParsedHierarchy/Story.cs b/Assets/Plugins/Ink/compiler/ParsedHierarchy/Story.cs similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/Story.cs rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/Story.cs diff --git a/Assets/Ink/compiler/ParsedHierarchy/Story.cs.meta b/Assets/Plugins/Ink/compiler/ParsedHierarchy/Story.cs.meta similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/Story.cs.meta rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/Story.cs.meta diff --git a/Assets/Ink/compiler/ParsedHierarchy/StringExpression.cs b/Assets/Plugins/Ink/compiler/ParsedHierarchy/StringExpression.cs similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/StringExpression.cs rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/StringExpression.cs diff --git a/Assets/Ink/compiler/ParsedHierarchy/StringExpression.cs.meta b/Assets/Plugins/Ink/compiler/ParsedHierarchy/StringExpression.cs.meta similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/StringExpression.cs.meta rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/StringExpression.cs.meta diff --git a/Assets/Ink/compiler/ParsedHierarchy/Text.cs b/Assets/Plugins/Ink/compiler/ParsedHierarchy/Text.cs similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/Text.cs rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/Text.cs diff --git a/Assets/Ink/compiler/ParsedHierarchy/Text.cs.meta b/Assets/Plugins/Ink/compiler/ParsedHierarchy/Text.cs.meta similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/Text.cs.meta rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/Text.cs.meta diff --git a/Assets/Ink/compiler/ParsedHierarchy/TunnelOnwards.cs b/Assets/Plugins/Ink/compiler/ParsedHierarchy/TunnelOnwards.cs similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/TunnelOnwards.cs rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/TunnelOnwards.cs diff --git a/Assets/Ink/compiler/ParsedHierarchy/TunnelOnwards.cs.meta b/Assets/Plugins/Ink/compiler/ParsedHierarchy/TunnelOnwards.cs.meta similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/TunnelOnwards.cs.meta rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/TunnelOnwards.cs.meta diff --git a/Assets/Ink/compiler/ParsedHierarchy/VariableAssignment.cs b/Assets/Plugins/Ink/compiler/ParsedHierarchy/VariableAssignment.cs similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/VariableAssignment.cs rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/VariableAssignment.cs diff --git a/Assets/Ink/compiler/ParsedHierarchy/VariableAssignment.cs.meta b/Assets/Plugins/Ink/compiler/ParsedHierarchy/VariableAssignment.cs.meta similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/VariableAssignment.cs.meta rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/VariableAssignment.cs.meta diff --git a/Assets/Ink/compiler/ParsedHierarchy/VariableReference.cs b/Assets/Plugins/Ink/compiler/ParsedHierarchy/VariableReference.cs similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/VariableReference.cs rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/VariableReference.cs diff --git a/Assets/Ink/compiler/ParsedHierarchy/VariableReference.cs.meta b/Assets/Plugins/Ink/compiler/ParsedHierarchy/VariableReference.cs.meta similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/VariableReference.cs.meta rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/VariableReference.cs.meta diff --git a/Assets/Ink/compiler/ParsedHierarchy/Weave.cs b/Assets/Plugins/Ink/compiler/ParsedHierarchy/Weave.cs similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/Weave.cs rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/Weave.cs diff --git a/Assets/Ink/compiler/ParsedHierarchy/Weave.cs.meta b/Assets/Plugins/Ink/compiler/ParsedHierarchy/Weave.cs.meta similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/Weave.cs.meta rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/Weave.cs.meta diff --git a/Assets/Ink/compiler/ParsedHierarchy/Wrap.cs b/Assets/Plugins/Ink/compiler/ParsedHierarchy/Wrap.cs similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/Wrap.cs rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/Wrap.cs diff --git a/Assets/Ink/compiler/ParsedHierarchy/Wrap.cs.meta b/Assets/Plugins/Ink/compiler/ParsedHierarchy/Wrap.cs.meta similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/Wrap.cs.meta rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/Wrap.cs.meta diff --git a/Assets/Ink/compiler/Plugins.meta b/Assets/Plugins/Ink/compiler/Plugins.meta similarity index 100% rename from Assets/Ink/compiler/Plugins.meta rename to Assets/Plugins/Ink/compiler/Plugins.meta diff --git a/Assets/Ink/compiler/Plugins/Plugin.cs b/Assets/Plugins/Ink/compiler/Plugins/Plugin.cs similarity index 100% rename from Assets/Ink/compiler/Plugins/Plugin.cs rename to Assets/Plugins/Ink/compiler/Plugins/Plugin.cs diff --git a/Assets/Ink/compiler/Plugins/Plugin.cs.meta b/Assets/Plugins/Ink/compiler/Plugins/Plugin.cs.meta similarity index 100% rename from Assets/Ink/compiler/Plugins/Plugin.cs.meta rename to Assets/Plugins/Ink/compiler/Plugins/Plugin.cs.meta diff --git a/Assets/Ink/compiler/Plugins/PluginManager.cs b/Assets/Plugins/Ink/compiler/Plugins/PluginManager.cs similarity index 100% rename from Assets/Ink/compiler/Plugins/PluginManager.cs rename to Assets/Plugins/Ink/compiler/Plugins/PluginManager.cs diff --git a/Assets/Ink/compiler/Plugins/PluginManager.cs.meta b/Assets/Plugins/Ink/compiler/Plugins/PluginManager.cs.meta similarity index 100% rename from Assets/Ink/compiler/Plugins/PluginManager.cs.meta rename to Assets/Plugins/Ink/compiler/Plugins/PluginManager.cs.meta diff --git a/Assets/Ink/compiler/Stats.cs b/Assets/Plugins/Ink/compiler/Stats.cs similarity index 100% rename from Assets/Ink/compiler/Stats.cs rename to Assets/Plugins/Ink/compiler/Stats.cs diff --git a/Assets/Ink/compiler/Stats.cs.meta b/Assets/Plugins/Ink/compiler/Stats.cs.meta similarity index 100% rename from Assets/Ink/compiler/Stats.cs.meta rename to Assets/Plugins/Ink/compiler/Stats.cs.meta diff --git a/Assets/Ink/compiler/StringParser.meta b/Assets/Plugins/Ink/compiler/StringParser.meta similarity index 100% rename from Assets/Ink/compiler/StringParser.meta rename to Assets/Plugins/Ink/compiler/StringParser.meta diff --git a/Assets/Ink/compiler/StringParser/StringParser.cs b/Assets/Plugins/Ink/compiler/StringParser/StringParser.cs similarity index 100% rename from Assets/Ink/compiler/StringParser/StringParser.cs rename to Assets/Plugins/Ink/compiler/StringParser/StringParser.cs diff --git a/Assets/Ink/compiler/StringParser/StringParser.cs.meta b/Assets/Plugins/Ink/compiler/StringParser/StringParser.cs.meta similarity index 100% rename from Assets/Ink/compiler/StringParser/StringParser.cs.meta rename to Assets/Plugins/Ink/compiler/StringParser/StringParser.cs.meta diff --git a/Assets/Ink/compiler/StringParser/StringParserState.cs b/Assets/Plugins/Ink/compiler/StringParser/StringParserState.cs similarity index 100% rename from Assets/Ink/compiler/StringParser/StringParserState.cs rename to Assets/Plugins/Ink/compiler/StringParser/StringParserState.cs diff --git a/Assets/Ink/compiler/StringParser/StringParserState.cs.meta b/Assets/Plugins/Ink/compiler/StringParser/StringParserState.cs.meta similarity index 100% rename from Assets/Ink/compiler/StringParser/StringParserState.cs.meta rename to Assets/Plugins/Ink/compiler/StringParser/StringParserState.cs.meta diff --git a/Assets/Ink/compiler/ink_compiler.csproj b/Assets/Plugins/Ink/compiler/ink_compiler.csproj similarity index 100% rename from Assets/Ink/compiler/ink_compiler.csproj rename to Assets/Plugins/Ink/compiler/ink_compiler.csproj diff --git a/Assets/Ink/compiler/ink_compiler.csproj.meta b/Assets/Plugins/Ink/compiler/ink_compiler.csproj.meta similarity index 100% rename from Assets/Ink/compiler/ink_compiler.csproj.meta rename to Assets/Plugins/Ink/compiler/ink_compiler.csproj.meta diff --git a/Assets/Ink/ink-engine-runtime.meta b/Assets/Plugins/Ink/ink-engine-runtime.meta similarity index 100% rename from Assets/Ink/ink-engine-runtime.meta rename to Assets/Plugins/Ink/ink-engine-runtime.meta diff --git a/Assets/Ink/ink-engine-runtime/CallStack.cs b/Assets/Plugins/Ink/ink-engine-runtime/CallStack.cs similarity index 100% rename from Assets/Ink/ink-engine-runtime/CallStack.cs rename to Assets/Plugins/Ink/ink-engine-runtime/CallStack.cs diff --git a/Assets/Ink/ink-engine-runtime/CallStack.cs.meta b/Assets/Plugins/Ink/ink-engine-runtime/CallStack.cs.meta similarity index 100% rename from Assets/Ink/ink-engine-runtime/CallStack.cs.meta rename to Assets/Plugins/Ink/ink-engine-runtime/CallStack.cs.meta diff --git a/Assets/Ink/ink-engine-runtime/Choice.cs b/Assets/Plugins/Ink/ink-engine-runtime/Choice.cs similarity index 100% rename from Assets/Ink/ink-engine-runtime/Choice.cs rename to Assets/Plugins/Ink/ink-engine-runtime/Choice.cs diff --git a/Assets/Ink/ink-engine-runtime/Choice.cs.meta b/Assets/Plugins/Ink/ink-engine-runtime/Choice.cs.meta similarity index 100% rename from Assets/Ink/ink-engine-runtime/Choice.cs.meta rename to Assets/Plugins/Ink/ink-engine-runtime/Choice.cs.meta diff --git a/Assets/Ink/ink-engine-runtime/ChoicePoint.cs b/Assets/Plugins/Ink/ink-engine-runtime/ChoicePoint.cs similarity index 100% rename from Assets/Ink/ink-engine-runtime/ChoicePoint.cs rename to Assets/Plugins/Ink/ink-engine-runtime/ChoicePoint.cs diff --git a/Assets/Ink/ink-engine-runtime/ChoicePoint.cs.meta b/Assets/Plugins/Ink/ink-engine-runtime/ChoicePoint.cs.meta similarity index 100% rename from Assets/Ink/ink-engine-runtime/ChoicePoint.cs.meta rename to Assets/Plugins/Ink/ink-engine-runtime/ChoicePoint.cs.meta diff --git a/Assets/Ink/ink-engine-runtime/Container.cs b/Assets/Plugins/Ink/ink-engine-runtime/Container.cs similarity index 100% rename from Assets/Ink/ink-engine-runtime/Container.cs rename to Assets/Plugins/Ink/ink-engine-runtime/Container.cs diff --git a/Assets/Ink/ink-engine-runtime/Container.cs.meta b/Assets/Plugins/Ink/ink-engine-runtime/Container.cs.meta similarity index 100% rename from Assets/Ink/ink-engine-runtime/Container.cs.meta rename to Assets/Plugins/Ink/ink-engine-runtime/Container.cs.meta diff --git a/Assets/Ink/ink-engine-runtime/ControlCommand.cs b/Assets/Plugins/Ink/ink-engine-runtime/ControlCommand.cs similarity index 100% rename from Assets/Ink/ink-engine-runtime/ControlCommand.cs rename to Assets/Plugins/Ink/ink-engine-runtime/ControlCommand.cs diff --git a/Assets/Ink/ink-engine-runtime/ControlCommand.cs.meta b/Assets/Plugins/Ink/ink-engine-runtime/ControlCommand.cs.meta similarity index 100% rename from Assets/Ink/ink-engine-runtime/ControlCommand.cs.meta rename to Assets/Plugins/Ink/ink-engine-runtime/ControlCommand.cs.meta diff --git a/Assets/Ink/ink-engine-runtime/DebugMetadata.cs b/Assets/Plugins/Ink/ink-engine-runtime/DebugMetadata.cs similarity index 100% rename from Assets/Ink/ink-engine-runtime/DebugMetadata.cs rename to Assets/Plugins/Ink/ink-engine-runtime/DebugMetadata.cs diff --git a/Assets/Ink/ink-engine-runtime/DebugMetadata.cs.meta b/Assets/Plugins/Ink/ink-engine-runtime/DebugMetadata.cs.meta similarity index 100% rename from Assets/Ink/ink-engine-runtime/DebugMetadata.cs.meta rename to Assets/Plugins/Ink/ink-engine-runtime/DebugMetadata.cs.meta diff --git a/Assets/Ink/ink-engine-runtime/Divert.cs b/Assets/Plugins/Ink/ink-engine-runtime/Divert.cs similarity index 100% rename from Assets/Ink/ink-engine-runtime/Divert.cs rename to Assets/Plugins/Ink/ink-engine-runtime/Divert.cs diff --git a/Assets/Ink/ink-engine-runtime/Divert.cs.meta b/Assets/Plugins/Ink/ink-engine-runtime/Divert.cs.meta similarity index 100% rename from Assets/Ink/ink-engine-runtime/Divert.cs.meta rename to Assets/Plugins/Ink/ink-engine-runtime/Divert.cs.meta diff --git a/Assets/Ink/ink-engine-runtime/Error.cs b/Assets/Plugins/Ink/ink-engine-runtime/Error.cs similarity index 100% rename from Assets/Ink/ink-engine-runtime/Error.cs rename to Assets/Plugins/Ink/ink-engine-runtime/Error.cs diff --git a/Assets/Ink/ink-engine-runtime/Error.cs.meta b/Assets/Plugins/Ink/ink-engine-runtime/Error.cs.meta similarity index 100% rename from Assets/Ink/ink-engine-runtime/Error.cs.meta rename to Assets/Plugins/Ink/ink-engine-runtime/Error.cs.meta diff --git a/Assets/Ink/ink-engine-runtime/Flow.cs b/Assets/Plugins/Ink/ink-engine-runtime/Flow.cs similarity index 100% rename from Assets/Ink/ink-engine-runtime/Flow.cs rename to Assets/Plugins/Ink/ink-engine-runtime/Flow.cs diff --git a/Assets/Ink/ink-engine-runtime/Flow.cs.meta b/Assets/Plugins/Ink/ink-engine-runtime/Flow.cs.meta similarity index 100% rename from Assets/Ink/ink-engine-runtime/Flow.cs.meta rename to Assets/Plugins/Ink/ink-engine-runtime/Flow.cs.meta diff --git a/Assets/Ink/ink-engine-runtime/Glue.cs b/Assets/Plugins/Ink/ink-engine-runtime/Glue.cs similarity index 100% rename from Assets/Ink/ink-engine-runtime/Glue.cs rename to Assets/Plugins/Ink/ink-engine-runtime/Glue.cs diff --git a/Assets/Ink/ink-engine-runtime/Glue.cs.meta b/Assets/Plugins/Ink/ink-engine-runtime/Glue.cs.meta similarity index 100% rename from Assets/Ink/ink-engine-runtime/Glue.cs.meta rename to Assets/Plugins/Ink/ink-engine-runtime/Glue.cs.meta diff --git a/Assets/Ink/ink-engine-runtime/INamedContent.cs b/Assets/Plugins/Ink/ink-engine-runtime/INamedContent.cs similarity index 100% rename from Assets/Ink/ink-engine-runtime/INamedContent.cs rename to Assets/Plugins/Ink/ink-engine-runtime/INamedContent.cs diff --git a/Assets/Ink/ink-engine-runtime/INamedContent.cs.meta b/Assets/Plugins/Ink/ink-engine-runtime/INamedContent.cs.meta similarity index 100% rename from Assets/Ink/ink-engine-runtime/INamedContent.cs.meta rename to Assets/Plugins/Ink/ink-engine-runtime/INamedContent.cs.meta diff --git a/Assets/Ink/ink-engine-runtime/InkList.cs b/Assets/Plugins/Ink/ink-engine-runtime/InkList.cs similarity index 100% rename from Assets/Ink/ink-engine-runtime/InkList.cs rename to Assets/Plugins/Ink/ink-engine-runtime/InkList.cs diff --git a/Assets/Ink/ink-engine-runtime/InkList.cs.meta b/Assets/Plugins/Ink/ink-engine-runtime/InkList.cs.meta similarity index 100% rename from Assets/Ink/ink-engine-runtime/InkList.cs.meta rename to Assets/Plugins/Ink/ink-engine-runtime/InkList.cs.meta diff --git a/Assets/Ink/ink-engine-runtime/JsonSerialisation.cs b/Assets/Plugins/Ink/ink-engine-runtime/JsonSerialisation.cs similarity index 100% rename from Assets/Ink/ink-engine-runtime/JsonSerialisation.cs rename to Assets/Plugins/Ink/ink-engine-runtime/JsonSerialisation.cs diff --git a/Assets/Ink/ink-engine-runtime/JsonSerialisation.cs.meta b/Assets/Plugins/Ink/ink-engine-runtime/JsonSerialisation.cs.meta similarity index 100% rename from Assets/Ink/ink-engine-runtime/JsonSerialisation.cs.meta rename to Assets/Plugins/Ink/ink-engine-runtime/JsonSerialisation.cs.meta diff --git a/Assets/Ink/ink-engine-runtime/ListDefinition.cs b/Assets/Plugins/Ink/ink-engine-runtime/ListDefinition.cs similarity index 100% rename from Assets/Ink/ink-engine-runtime/ListDefinition.cs rename to Assets/Plugins/Ink/ink-engine-runtime/ListDefinition.cs diff --git a/Assets/Ink/ink-engine-runtime/ListDefinition.cs.meta b/Assets/Plugins/Ink/ink-engine-runtime/ListDefinition.cs.meta similarity index 100% rename from Assets/Ink/ink-engine-runtime/ListDefinition.cs.meta rename to Assets/Plugins/Ink/ink-engine-runtime/ListDefinition.cs.meta diff --git a/Assets/Ink/ink-engine-runtime/ListDefinitionsOrigin.cs b/Assets/Plugins/Ink/ink-engine-runtime/ListDefinitionsOrigin.cs similarity index 100% rename from Assets/Ink/ink-engine-runtime/ListDefinitionsOrigin.cs rename to Assets/Plugins/Ink/ink-engine-runtime/ListDefinitionsOrigin.cs diff --git a/Assets/Ink/ink-engine-runtime/ListDefinitionsOrigin.cs.meta b/Assets/Plugins/Ink/ink-engine-runtime/ListDefinitionsOrigin.cs.meta similarity index 100% rename from Assets/Ink/ink-engine-runtime/ListDefinitionsOrigin.cs.meta rename to Assets/Plugins/Ink/ink-engine-runtime/ListDefinitionsOrigin.cs.meta diff --git a/Assets/Ink/ink-engine-runtime/NativeFunctionCall.cs b/Assets/Plugins/Ink/ink-engine-runtime/NativeFunctionCall.cs similarity index 100% rename from Assets/Ink/ink-engine-runtime/NativeFunctionCall.cs rename to Assets/Plugins/Ink/ink-engine-runtime/NativeFunctionCall.cs diff --git a/Assets/Ink/ink-engine-runtime/NativeFunctionCall.cs.meta b/Assets/Plugins/Ink/ink-engine-runtime/NativeFunctionCall.cs.meta similarity index 100% rename from Assets/Ink/ink-engine-runtime/NativeFunctionCall.cs.meta rename to Assets/Plugins/Ink/ink-engine-runtime/NativeFunctionCall.cs.meta diff --git a/Assets/Ink/ink-engine-runtime/Object.cs b/Assets/Plugins/Ink/ink-engine-runtime/Object.cs similarity index 100% rename from Assets/Ink/ink-engine-runtime/Object.cs rename to Assets/Plugins/Ink/ink-engine-runtime/Object.cs diff --git a/Assets/Ink/ink-engine-runtime/Object.cs.meta b/Assets/Plugins/Ink/ink-engine-runtime/Object.cs.meta similarity index 100% rename from Assets/Ink/ink-engine-runtime/Object.cs.meta rename to Assets/Plugins/Ink/ink-engine-runtime/Object.cs.meta diff --git a/Assets/Ink/ink-engine-runtime/Path.cs b/Assets/Plugins/Ink/ink-engine-runtime/Path.cs similarity index 100% rename from Assets/Ink/ink-engine-runtime/Path.cs rename to Assets/Plugins/Ink/ink-engine-runtime/Path.cs diff --git a/Assets/Ink/ink-engine-runtime/Path.cs.meta b/Assets/Plugins/Ink/ink-engine-runtime/Path.cs.meta similarity index 100% rename from Assets/Ink/ink-engine-runtime/Path.cs.meta rename to Assets/Plugins/Ink/ink-engine-runtime/Path.cs.meta diff --git a/Assets/Ink/ink-engine-runtime/Pointer.cs b/Assets/Plugins/Ink/ink-engine-runtime/Pointer.cs similarity index 100% rename from Assets/Ink/ink-engine-runtime/Pointer.cs rename to Assets/Plugins/Ink/ink-engine-runtime/Pointer.cs diff --git a/Assets/Ink/ink-engine-runtime/Pointer.cs.meta b/Assets/Plugins/Ink/ink-engine-runtime/Pointer.cs.meta similarity index 100% rename from Assets/Ink/ink-engine-runtime/Pointer.cs.meta rename to Assets/Plugins/Ink/ink-engine-runtime/Pointer.cs.meta diff --git a/Assets/Ink/ink-engine-runtime/Profiler.cs b/Assets/Plugins/Ink/ink-engine-runtime/Profiler.cs similarity index 100% rename from Assets/Ink/ink-engine-runtime/Profiler.cs rename to Assets/Plugins/Ink/ink-engine-runtime/Profiler.cs diff --git a/Assets/Ink/ink-engine-runtime/Profiler.cs.meta b/Assets/Plugins/Ink/ink-engine-runtime/Profiler.cs.meta similarity index 100% rename from Assets/Ink/ink-engine-runtime/Profiler.cs.meta rename to Assets/Plugins/Ink/ink-engine-runtime/Profiler.cs.meta diff --git a/Assets/Ink/ink-engine-runtime/PushPop.cs b/Assets/Plugins/Ink/ink-engine-runtime/PushPop.cs similarity index 100% rename from Assets/Ink/ink-engine-runtime/PushPop.cs rename to Assets/Plugins/Ink/ink-engine-runtime/PushPop.cs diff --git a/Assets/Ink/ink-engine-runtime/PushPop.cs.meta b/Assets/Plugins/Ink/ink-engine-runtime/PushPop.cs.meta similarity index 100% rename from Assets/Ink/ink-engine-runtime/PushPop.cs.meta rename to Assets/Plugins/Ink/ink-engine-runtime/PushPop.cs.meta diff --git a/Assets/Ink/ink-engine-runtime/SearchResult.cs b/Assets/Plugins/Ink/ink-engine-runtime/SearchResult.cs similarity index 100% rename from Assets/Ink/ink-engine-runtime/SearchResult.cs rename to Assets/Plugins/Ink/ink-engine-runtime/SearchResult.cs diff --git a/Assets/Ink/ink-engine-runtime/SearchResult.cs.meta b/Assets/Plugins/Ink/ink-engine-runtime/SearchResult.cs.meta similarity index 100% rename from Assets/Ink/ink-engine-runtime/SearchResult.cs.meta rename to Assets/Plugins/Ink/ink-engine-runtime/SearchResult.cs.meta diff --git a/Assets/Ink/ink-engine-runtime/SimpleJson.cs b/Assets/Plugins/Ink/ink-engine-runtime/SimpleJson.cs similarity index 100% rename from Assets/Ink/ink-engine-runtime/SimpleJson.cs rename to Assets/Plugins/Ink/ink-engine-runtime/SimpleJson.cs diff --git a/Assets/Ink/ink-engine-runtime/SimpleJson.cs.meta b/Assets/Plugins/Ink/ink-engine-runtime/SimpleJson.cs.meta similarity index 100% rename from Assets/Ink/ink-engine-runtime/SimpleJson.cs.meta rename to Assets/Plugins/Ink/ink-engine-runtime/SimpleJson.cs.meta diff --git a/Assets/Ink/ink-engine-runtime/StatePatch.cs b/Assets/Plugins/Ink/ink-engine-runtime/StatePatch.cs similarity index 100% rename from Assets/Ink/ink-engine-runtime/StatePatch.cs rename to Assets/Plugins/Ink/ink-engine-runtime/StatePatch.cs diff --git a/Assets/Ink/ink-engine-runtime/StatePatch.cs.meta b/Assets/Plugins/Ink/ink-engine-runtime/StatePatch.cs.meta similarity index 100% rename from Assets/Ink/ink-engine-runtime/StatePatch.cs.meta rename to Assets/Plugins/Ink/ink-engine-runtime/StatePatch.cs.meta diff --git a/Assets/Ink/ink-engine-runtime/Story.cs b/Assets/Plugins/Ink/ink-engine-runtime/Story.cs similarity index 100% rename from Assets/Ink/ink-engine-runtime/Story.cs rename to Assets/Plugins/Ink/ink-engine-runtime/Story.cs diff --git a/Assets/Ink/ink-engine-runtime/Story.cs.meta b/Assets/Plugins/Ink/ink-engine-runtime/Story.cs.meta similarity index 100% rename from Assets/Ink/ink-engine-runtime/Story.cs.meta rename to Assets/Plugins/Ink/ink-engine-runtime/Story.cs.meta diff --git a/Assets/Ink/ink-engine-runtime/StoryException.cs b/Assets/Plugins/Ink/ink-engine-runtime/StoryException.cs similarity index 100% rename from Assets/Ink/ink-engine-runtime/StoryException.cs rename to Assets/Plugins/Ink/ink-engine-runtime/StoryException.cs diff --git a/Assets/Ink/ink-engine-runtime/StoryException.cs.meta b/Assets/Plugins/Ink/ink-engine-runtime/StoryException.cs.meta similarity index 100% rename from Assets/Ink/ink-engine-runtime/StoryException.cs.meta rename to Assets/Plugins/Ink/ink-engine-runtime/StoryException.cs.meta diff --git a/Assets/Ink/ink-engine-runtime/StoryState.cs b/Assets/Plugins/Ink/ink-engine-runtime/StoryState.cs similarity index 100% rename from Assets/Ink/ink-engine-runtime/StoryState.cs rename to Assets/Plugins/Ink/ink-engine-runtime/StoryState.cs diff --git a/Assets/Ink/ink-engine-runtime/StoryState.cs.meta b/Assets/Plugins/Ink/ink-engine-runtime/StoryState.cs.meta similarity index 100% rename from Assets/Ink/ink-engine-runtime/StoryState.cs.meta rename to Assets/Plugins/Ink/ink-engine-runtime/StoryState.cs.meta diff --git a/Assets/Ink/ink-engine-runtime/StringJoinExtension.cs b/Assets/Plugins/Ink/ink-engine-runtime/StringJoinExtension.cs similarity index 100% rename from Assets/Ink/ink-engine-runtime/StringJoinExtension.cs rename to Assets/Plugins/Ink/ink-engine-runtime/StringJoinExtension.cs diff --git a/Assets/Ink/ink-engine-runtime/StringJoinExtension.cs.meta b/Assets/Plugins/Ink/ink-engine-runtime/StringJoinExtension.cs.meta similarity index 100% rename from Assets/Ink/ink-engine-runtime/StringJoinExtension.cs.meta rename to Assets/Plugins/Ink/ink-engine-runtime/StringJoinExtension.cs.meta diff --git a/Assets/Ink/ink-engine-runtime/Tag.cs b/Assets/Plugins/Ink/ink-engine-runtime/Tag.cs similarity index 100% rename from Assets/Ink/ink-engine-runtime/Tag.cs rename to Assets/Plugins/Ink/ink-engine-runtime/Tag.cs diff --git a/Assets/Ink/ink-engine-runtime/Tag.cs.meta b/Assets/Plugins/Ink/ink-engine-runtime/Tag.cs.meta similarity index 100% rename from Assets/Ink/ink-engine-runtime/Tag.cs.meta rename to Assets/Plugins/Ink/ink-engine-runtime/Tag.cs.meta diff --git a/Assets/Ink/ink-engine-runtime/Value.cs b/Assets/Plugins/Ink/ink-engine-runtime/Value.cs similarity index 100% rename from Assets/Ink/ink-engine-runtime/Value.cs rename to Assets/Plugins/Ink/ink-engine-runtime/Value.cs diff --git a/Assets/Ink/ink-engine-runtime/Value.cs.meta b/Assets/Plugins/Ink/ink-engine-runtime/Value.cs.meta similarity index 100% rename from Assets/Ink/ink-engine-runtime/Value.cs.meta rename to Assets/Plugins/Ink/ink-engine-runtime/Value.cs.meta diff --git a/Assets/Ink/ink-engine-runtime/VariableAssignment.cs b/Assets/Plugins/Ink/ink-engine-runtime/VariableAssignment.cs similarity index 100% rename from Assets/Ink/ink-engine-runtime/VariableAssignment.cs rename to Assets/Plugins/Ink/ink-engine-runtime/VariableAssignment.cs diff --git a/Assets/Ink/ink-engine-runtime/VariableAssignment.cs.meta b/Assets/Plugins/Ink/ink-engine-runtime/VariableAssignment.cs.meta similarity index 100% rename from Assets/Ink/ink-engine-runtime/VariableAssignment.cs.meta rename to Assets/Plugins/Ink/ink-engine-runtime/VariableAssignment.cs.meta diff --git a/Assets/Ink/ink-engine-runtime/VariableReference.cs b/Assets/Plugins/Ink/ink-engine-runtime/VariableReference.cs similarity index 100% rename from Assets/Ink/ink-engine-runtime/VariableReference.cs rename to Assets/Plugins/Ink/ink-engine-runtime/VariableReference.cs diff --git a/Assets/Ink/ink-engine-runtime/VariableReference.cs.meta b/Assets/Plugins/Ink/ink-engine-runtime/VariableReference.cs.meta similarity index 100% rename from Assets/Ink/ink-engine-runtime/VariableReference.cs.meta rename to Assets/Plugins/Ink/ink-engine-runtime/VariableReference.cs.meta diff --git a/Assets/Ink/ink-engine-runtime/VariablesState.cs b/Assets/Plugins/Ink/ink-engine-runtime/VariablesState.cs similarity index 100% rename from Assets/Ink/ink-engine-runtime/VariablesState.cs rename to Assets/Plugins/Ink/ink-engine-runtime/VariablesState.cs diff --git a/Assets/Ink/ink-engine-runtime/VariablesState.cs.meta b/Assets/Plugins/Ink/ink-engine-runtime/VariablesState.cs.meta similarity index 100% rename from Assets/Ink/ink-engine-runtime/VariablesState.cs.meta rename to Assets/Plugins/Ink/ink-engine-runtime/VariablesState.cs.meta diff --git a/Assets/Ink/ink-engine-runtime/Void.cs b/Assets/Plugins/Ink/ink-engine-runtime/Void.cs similarity index 100% rename from Assets/Ink/ink-engine-runtime/Void.cs rename to Assets/Plugins/Ink/ink-engine-runtime/Void.cs diff --git a/Assets/Ink/ink-engine-runtime/Void.cs.meta b/Assets/Plugins/Ink/ink-engine-runtime/Void.cs.meta similarity index 100% rename from Assets/Ink/ink-engine-runtime/Void.cs.meta rename to Assets/Plugins/Ink/ink-engine-runtime/Void.cs.meta diff --git a/Assets/Ink/ink-engine-runtime/ink-engine-runtime.csproj b/Assets/Plugins/Ink/ink-engine-runtime/ink-engine-runtime.csproj similarity index 100% rename from Assets/Ink/ink-engine-runtime/ink-engine-runtime.csproj rename to Assets/Plugins/Ink/ink-engine-runtime/ink-engine-runtime.csproj diff --git a/Assets/Ink/ink-engine-runtime/ink-engine-runtime.csproj.meta b/Assets/Plugins/Ink/ink-engine-runtime/ink-engine-runtime.csproj.meta similarity index 100% rename from Assets/Ink/ink-engine-runtime/ink-engine-runtime.csproj.meta rename to Assets/Plugins/Ink/ink-engine-runtime/ink-engine-runtime.csproj.meta diff --git a/Assets/Resources/Settings.asset b/Assets/Resources/Settings.asset index 72963dd53..2f2c337aa 100644 --- a/Assets/Resources/Settings.asset +++ b/Assets/Resources/Settings.asset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:641b4c172ddb913405777b54a4c27f5376f697ea6a5c4de1b3b23186379dab8d -size 11840 +oid sha256:9ca555be1e87cac142652f528372ac38243ecc0266fd94879a3b9b1a5a0b9644 +size 12324 diff --git a/Assets/Scenes/Main Menu.unity b/Assets/Scenes/Main Menu.unity index d908871f0..ac4177db3 100644 --- a/Assets/Scenes/Main Menu.unity +++ b/Assets/Scenes/Main Menu.unity @@ -802,8 +802,8 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 741153267} - m_LocalRotation: {x: 0.0155069195, y: 0.9502416, z: -0.30741316, w: 0.047933277} - m_LocalPosition: {x: -117.52002, y: -77.087425, z: 149.09026} + m_LocalRotation: {x: 0.015506903, y: 0.9502416, z: -0.30741313, w: 0.047933225} + m_LocalPosition: {x: -117.51999, y: -77.08743, z: 149.09026} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: - {fileID: 412917866} @@ -1234,8 +1234,8 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 965376321} - m_LocalRotation: {x: 0.0155069195, y: 0.9502416, z: -0.30741316, w: 0.047933277} - m_LocalPosition: {x: -117.52002, y: -77.087425, z: 149.09026} + m_LocalRotation: {x: 0.015506903, y: 0.9502416, z: -0.30741313, w: 0.047933225} + m_LocalPosition: {x: -117.51999, y: -77.08743, z: 149.09026} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 0} @@ -2321,7 +2321,7 @@ PrefabInstance: - target: {fileID: 3664209305474245377, guid: 3d8d9cbf10b12214e98891c1f03c1e99, type: 3} propertyPath: m_AnchoredPosition.x - value: 60.98 + value: 0 objectReference: {fileID: 0} - target: {fileID: 3664209305474245377, guid: 3d8d9cbf10b12214e98891c1f03c1e99, type: 3} @@ -2346,7 +2346,7 @@ PrefabInstance: - target: {fileID: 3664209306888449100, guid: 3d8d9cbf10b12214e98891c1f03c1e99, type: 3} propertyPath: m_AnchoredPosition.x - value: 55.675 + value: 0 objectReference: {fileID: 0} - target: {fileID: 3664209306888449100, guid: 3d8d9cbf10b12214e98891c1f03c1e99, type: 3} diff --git a/Assets/Scripts/Gameplay/ActionGameManager.cs b/Assets/Scripts/Gameplay/ActionGameManager.cs index 771f2c677..83fd149fa 100644 --- a/Assets/Scripts/Gameplay/ActionGameManager.cs +++ b/Assets/Scripts/Gameplay/ActionGameManager.cs @@ -65,6 +65,7 @@ public class ActionGameManager : MonoBehaviour } public static Sector CurrentSector; + public static bool IsTutorial; public GameSettings Settings; //public string StarterShipTemplate = "Longinus"; @@ -186,6 +187,10 @@ public class ActionGameManager : MonoBehaviour public void SaveState() { PlayerSettings.SavedRun = CurrentSector == null ? null : new SavedGame(CurrentSector, Zone, DockedEntity ?? CurrentEntity); + if(PlayerSettings.SavedRun != null) + { + PlayerSettings.SavedRun.IsTutorial = IsTutorial; + } SavePlayerSettings(); } @@ -457,12 +462,16 @@ public class ActionGameManager : MonoBehaviour { var nearestFaction = CurrentSector.Factions.MinBy(f => CurrentSector.HomeZones[f].Distance[Zone.SectorZone]); - var loadoutGenerator = new LoadoutGenerator( + var loadoutGenerator = IsTutorial ? new LoadoutGenerator( ref ItemManager.Random, ItemManager, CurrentSector, Zone.SectorZone, nearestFaction, + .5f) : new LoadoutGenerator( + ref ItemManager.Random, + ItemManager, + nearestFaction, .5f); var turret = EntitySerializer.Unpack(ItemManager, Zone, loadoutGenerator.GenerateTurretLoadout(), true); @@ -473,47 +482,47 @@ public class ActionGameManager : MonoBehaviour turret.Activate(); }); - ConsoleController.AddCommand("pingscene", - _ => - { - var startTime = Time.time; - Observable.EveryUpdate().TakeWhile(_ => Time.time - startTime < 5).Subscribe( - _ => Debug.Log($"{(int) (Time.time - startTime)}"), - () => - { - var nearestFaction = CurrentSector.Factions.MinBy(f => CurrentSector.HomeZones[f].Distance[Zone.SectorZone]); - var nearestFactionHomeZone = CurrentSector.HomeZones[nearestFaction]; - var factionPresence = nearestFaction.InfluenceDistance - nearestFactionHomeZone.Distance[Zone.SectorZone] + 1; - - var loadoutGenerator = new LoadoutGenerator( - ref ItemManager.Random, - ItemManager, - CurrentSector, - Zone.SectorZone, - nearestFaction, - .5f); - - for (int i = 0; i < 8; i++) - { - var ship = EntitySerializer.Unpack(ItemManager, Zone, loadoutGenerator.GenerateShipLoadout(), true); - ship.Position.xz = _currentEntity.Position.xz + - ItemManager.Random.NextFloat2Direction() * ItemManager.Random.NextFloat(50, 500); - ship.Zone = Zone; - Zone.Entities.Add(ship); - ship.Activate(); - } - - for (int i = 0; i < 8; i++) - { - var turret = EntitySerializer.Unpack(ItemManager, Zone, loadoutGenerator.GenerateTurretLoadout(), true); - turret.Position.xz = _currentEntity.Position.xz + - ItemManager.Random.NextFloat2Direction() * ItemManager.Random.NextFloat(50, 500); - turret.Zone = Zone; - Zone.Entities.Add(turret); - turret.Activate(); - } - }); - }); + // ConsoleController.AddCommand("pingscene", + // _ => + // { + // var startTime = Time.time; + // Observable.EveryUpdate().TakeWhile(_ => Time.time - startTime < 5).Subscribe( + // _ => Debug.Log($"{(int) (Time.time - startTime)}"), + // () => + // { + // var nearestFaction = CurrentSector.Factions.MinBy(f => CurrentSector.HomeZones[f].Distance[Zone.SectorZone]); + // var nearestFactionHomeZone = CurrentSector.HomeZones[nearestFaction]; + // var factionPresence = nearestFaction.InfluenceDistance - nearestFactionHomeZone.Distance[Zone.SectorZone] + 1; + // + // var loadoutGenerator = new LoadoutGenerator( + // ref ItemManager.Random, + // ItemManager, + // CurrentSector, + // Zone.SectorZone, + // nearestFaction, + // .5f); + // + // for (int i = 0; i < 8; i++) + // { + // var ship = EntitySerializer.Unpack(ItemManager, Zone, loadoutGenerator.GenerateShipLoadout(), true); + // ship.Position.xz = _currentEntity.Position.xz + + // ItemManager.Random.NextFloat2Direction() * ItemManager.Random.NextFloat(50, 500); + // ship.Zone = Zone; + // Zone.Entities.Add(ship); + // ship.Activate(); + // } + // + // for (int i = 0; i < 8; i++) + // { + // var turret = EntitySerializer.Unpack(ItemManager, Zone, loadoutGenerator.GenerateTurretLoadout(), true); + // turret.Position.xz = _currentEntity.Position.xz + + // ItemManager.Random.NextFloat2Direction() * ItemManager.Random.NextFloat(50, 500); + // turret.Zone = Zone; + // Zone.Entities.Add(turret); + // turret.Activate(); + // } + // }); + // }); } public void BeginDrag(DragObject dragObject) @@ -584,7 +593,8 @@ public class ActionGameManager : MonoBehaviour ItemManager, Settings.ZoneSettings, CurrentSector, - sectorZone + sectorZone, + IsTutorial ); sectorZone.Contents = new Zone(ItemManager, Settings.PlanetSettings, sectorZone.PackedContents, sectorZone); } @@ -682,7 +692,8 @@ public class ActionGameManager : MonoBehaviour { SectorMap.QueueZoneReveal(CurrentSector.Entrance.AdjacentZones.Prepend(CurrentSector.Entrance)); PopulateLevel(CurrentSector.Entrance); - var loadoutGenerator = new LoadoutGenerator(ref ItemManager.Random, ItemManager, CurrentSector, Zone.SectorZone, null, 2); + var loadoutGenerator = IsTutorial ? new LoadoutGenerator(ref ItemManager.Random, ItemManager, null, 2) : + new LoadoutGenerator(ref ItemManager.Random, ItemManager, CurrentSector, Zone.SectorZone, null, 2); var ship = EntitySerializer.Unpack( ItemManager, Zone, diff --git a/Assets/Scripts/Gameplay/GameSettings.cs b/Assets/Scripts/Gameplay/GameSettings.cs index 7b2520200..fcc0a63c0 100644 --- a/Assets/Scripts/Gameplay/GameSettings.cs +++ b/Assets/Scripts/Gameplay/GameSettings.cs @@ -25,6 +25,10 @@ public class GameSettings : ScriptableObject public int AsteroidMeshCount = 5; public float MinimapAsteroidSize = 3; public float PlanetRotationSpeed = 1; + public NameGeneratorSettings NameGeneratorSettings; + public TutorialGenerationSettings TutorialGenerationSettings; + public SectorBackgroundSettings TutorialBackgroundSettings; + public SectorBackgroundSettings SectorBackgroundSettings; public SectorGenerationSettings SectorGenerationSettings; public BodySettingsCollection[] BodySettingsCollections; public PlanetSettings PlanetSettings; diff --git a/Assets/Scripts/ServerShared/Entity.cs b/Assets/Scripts/ServerShared/Entity.cs index d1f44d509..f881a47f5 100644 --- a/Assets/Scripts/ServerShared/Entity.cs +++ b/Assets/Scripts/ServerShared/Entity.cs @@ -1141,7 +1141,7 @@ public class EquippedItem ThermalPerformance = Data.Performance(temp); DurabilityPerformance = EquippableItem.Durability / Data.Durability; var performanceThreshold = Entity.Settings.ShutdownPerformance; - Wear = (1 - pow(Data.Performance(temp), + Wear = (1 - pow(ThermalPerformance, (1 - pow(EquippableItem.Quality, ItemManager.GameplaySettings.QualityWearExponent)) * ItemManager.GameplaySettings.ThermalWearExponent) ) * Data.Durability / Data.ThermalResilience; diff --git a/Assets/Scripts/ServerShared/ItemData.cs b/Assets/Scripts/ServerShared/ItemData.cs index 102a5d0ef..a803c7762 100644 --- a/Assets/Scripts/ServerShared/ItemData.cs +++ b/Assets/Scripts/ServerShared/ItemData.cs @@ -387,7 +387,7 @@ public abstract class EquippableItemData : CraftedItemData public float Performance(float temperature) { - return saturate(HeatPerformanceCurve.Evaluate(unlerp(MinimumTemperature, MaximumTemperature, temperature))); + return saturate(HeatPerformanceCurve?.Evaluate(unlerp(MinimumTemperature, MaximumTemperature, temperature))??1); } } diff --git a/Assets/Scripts/ServerShared/LoadoutGenerator.cs b/Assets/Scripts/ServerShared/LoadoutGenerator.cs index e0999e55f..b92b7af48 100644 --- a/Assets/Scripts/ServerShared/LoadoutGenerator.cs +++ b/Assets/Scripts/ServerShared/LoadoutGenerator.cs @@ -29,6 +29,18 @@ public class LoadoutGenerator Faction = faction; PriceExponent = priceExponent; } + + public LoadoutGenerator( + ref Random random, + ItemManager itemManager, + Faction faction, + float priceExponent) + { + Random = random; + ItemManager = itemManager; + Faction = faction; + PriceExponent = priceExponent; + } public EntityPack GenerateShipLoadout(Predicate hullFilter = null) { @@ -89,12 +101,14 @@ public class LoadoutGenerator .Where(item => item.Price > 0 && (hullFilter?.Invoke(item) ?? true) && - item.HullType == type && + item.HullType == type && + item.Manufacturer != Guid.Empty && + (Sector?.ContainsFaction(item.Manufacturer) ?? true) && (Faction == null || item.Manufacturer == Faction.ID || Faction.Allegiance.ContainsKey(item.Manufacturer))) .WeightedRandomElements(ref Random, item => (Faction == null || item.Manufacturer == Faction.ID ? 1 : Faction.Allegiance[item.Manufacturer]) / // Prioritize items from allied manufacturers - Zone.Distance[Sector.HomeZones[ItemManager.ItemData.Get(item.Manufacturer)]] / // Penalize distance to manufacturer headquarters + (Zone?.Distance[Sector.HomeZones[ItemManager.ItemData.Get(item.Manufacturer)]] ?? 1) / // Penalize distance to manufacturer headquarters pow(item.Price, PriceExponent), // Penalize item price to a controllable degree 1 ).FirstOrDefault(); @@ -104,14 +118,15 @@ public class LoadoutGenerator { return ItemManager.ItemData.GetAll() .Where(item => - item.Price > 0 && - Sector.ContainsFaction(item.Manufacturer) && + item.Price > 0 && + item.Manufacturer != Guid.Empty && + (Sector?.ContainsFaction(item.Manufacturer) ?? true) && (Faction == null || Faction.Allegiance.ContainsKey(item.Manufacturer)) && (filter?.Invoke(item) ?? true)) .WeightedRandomElements(ref Random, item => (Faction == null || item.Manufacturer == Faction.ID ? 1 : Faction.Allegiance[item.Manufacturer]) * // Prioritize items from allied manufacturers pow(item.Shape.Coordinates.Length, sizeExponent) / // Prioritize larger items - Zone.Distance[Sector.HomeZones[ItemManager.ItemData.Get(item.Manufacturer)]] / // Penalize distance to manufacturer headquarters + (Zone?.Distance[Sector.HomeZones[ItemManager.ItemData.Get(item.Manufacturer)]] ?? 1) / // Penalize distance to manufacturer headquarters pow(item.Price, PriceExponent), // Penalize item price to a controllable degree count ); diff --git a/Assets/Scripts/ServerShared/MarkovNameGenerator.cs b/Assets/Scripts/ServerShared/MarkovNameGenerator.cs index 19deb426a..5a770c7bf 100644 --- a/Assets/Scripts/ServerShared/MarkovNameGenerator.cs +++ b/Assets/Scripts/ServerShared/MarkovNameGenerator.cs @@ -20,7 +20,7 @@ public class MarkovNameGenerator private int _maxLength; private Random _random; - public MarkovNameGenerator(ref Random random, IEnumerable sampleNames, SectorGenerationSettings settings) + public MarkovNameGenerator(ref Random random, IEnumerable sampleNames, NameGeneratorSettings settings) { var names = new HashSet(); foreach (var line in sampleNames) diff --git a/Assets/Scripts/ServerShared/PlayerSettings.cs b/Assets/Scripts/ServerShared/PlayerSettings.cs index b5d224e0a..6d7dbca85 100644 --- a/Assets/Scripts/ServerShared/PlayerSettings.cs +++ b/Assets/Scripts/ServerShared/PlayerSettings.cs @@ -9,6 +9,7 @@ public class PlayerSettings [Key(1)] public SavedGame SavedRun; [Key(2)] public TemperatureUnit TemperatureUnit = TemperatureUnit.Celsius; [Key(3)] public int SignificantDigits = 3; + [Key(4)] public bool TutorialPassed; public string FormatTemperature(float t) { diff --git a/Assets/Scripts/ServerShared/SampleElimination.cs b/Assets/Scripts/ServerShared/SampleElimination.cs index 00eadff71..4827bd248 100644 --- a/Assets/Scripts/ServerShared/SampleElimination.cs +++ b/Assets/Scripts/ServerShared/SampleElimination.cs @@ -87,11 +87,10 @@ public static class WeightedSampleElimination }, densityFunc, d_max); } - public static float2[] GeneratePoints(int count, Func density = null, Func envelope = null, Action progressCallback = null, uint seed = 1337) + public static float2[] GeneratePoints(int count, ref Random random, Func density = null, Func envelope = null, Action progressCallback = null) { if (density == null) density = v => .5f; if (envelope == null) envelope = v => 1; - var random = new Random(seed); var inputSamples = new float2[count * 8]; var sample = 0; var accumulator = 0f; diff --git a/Assets/Scripts/ServerShared/SavedGame.cs b/Assets/Scripts/ServerShared/SavedGame.cs index e0caea6b0..6abe22637 100644 --- a/Assets/Scripts/ServerShared/SavedGame.cs +++ b/Assets/Scripts/ServerShared/SavedGame.cs @@ -33,20 +33,23 @@ public class SavedGame public int CurrentZoneEntity; [Key(8)] - public SectorGenerationSettings Settings; + public SectorBackgroundSettings Background; [Key(9)] public int[] DiscoveredZones; [Key(10)] public SavedActionBarBinding[] ActionBarBindings; + + [Key(11)] + public bool IsTutorial; public SavedGame() { } public SavedGame(Sector sector, Zone currentZone, Entity currentEntity) { DiscoveredZones = sector.DiscoveredZones.Select(dz => Array.IndexOf(sector.Zones, dz)).ToArray(); - Settings = sector.Settings; + Background = sector.Background; Factions = sector.HomeZones.Keys.Select(f => f.ID).ToArray(); HomeZones = sector.HomeZones.ToDictionary( diff --git a/Assets/Scripts/ServerShared/Sector.cs b/Assets/Scripts/ServerShared/Sector.cs index e7df8ec1a..6be6e5a7b 100644 --- a/Assets/Scripts/ServerShared/Sector.cs +++ b/Assets/Scripts/ServerShared/Sector.cs @@ -17,7 +17,8 @@ public class Sector public Dictionary BossZones = new Dictionary(); public HashSet DiscoveredZones = new HashSet(); - public SectorGenerationSettings Settings { get; } + public SectorBackgroundSettings Background { get; } + public NameGeneratorSettings NameGeneratorSettings { get; } public Faction[] Factions { get; } public SectorZone[] Zones { get; } public SectorZone Entrance { get; } @@ -31,13 +32,15 @@ public class Sector { get { - return _exitPath ??= FindPath(Entrance, Exit); + if(Entrance!=null && Exit != null) + return _exitPath ??= FindPath(Entrance, Exit); + return null; } } public Sector(CultCache cultCache, SavedGame savedGame) { - Settings = savedGame.Settings; + Background = savedGame.Background; Factions = savedGame.Factions.Select(cultCache.Get).ToArray(); Zones = savedGame.Zones.Select(zone => { @@ -70,43 +73,265 @@ public class Sector CalculateDistanceMatrix(); } - public Sector(SectorGenerationSettings settings, CultCache cultCache, uint seed = 0, Action progressCallback = null, float minLineSeparation = .01f) + public Sector( + SectorGenerationSettings settings, + SectorBackgroundSettings background, + NameGeneratorSettings nameGeneratorSettings, + CultCache cache, + Action progressCallback = null, + uint seed = 0) { - Settings = settings; - var megas = cultCache.GetAll(); + Background = background; + var factions = cache.GetAll(); var random = new Random(seed == 0 ? (uint) (DateTime.Now.Ticks % uint.MaxValue) : seed); - Factions = megas.OrderBy(x => random.NextFloat()).Take(settings.MegaCount).ToArray(); + Factions = factions.OrderBy(x => random.NextFloat()).Take(settings.MegaCount).ToArray(); - var outputSamples = WeightedSampleElimination.GeneratePoints(settings.ZoneCount, - settings.CloudDensity, + Zones = GenerateZones(settings.ZoneCount, ref random, progressCallback); + + GenerateLinks(settings.LinkDensity, progressCallback); + + CalculateDistanceMatrix(progressCallback); + + // Exit is the most isolated zone (highest total distance to all other zones) + Exit = Zones.MaxBy(z => z.Isolation); + + // Entrance is the zone furthest from the exit + Entrance = Zones.MaxBy(z => Exit.Distance[z]); + + DiscoveredZones.Add(Entrance); + foreach(var z in Entrance.AdjacentZones) DiscoveredZones.Add(z); + + PlaceFactionsMain(settings.BossCount, progressCallback); + + CalculateFactionInfluence(progressCallback); + + GenerateNames(cache, nameGeneratorSettings, ref random, progressCallback); + + progressCallback?.Invoke("Done!"); + if(progressCallback!=null) Thread.Sleep(500); // Inserting Delay to make it seem like it's doing more work lmao + } + + public Sector( + TutorialGenerationSettings settings, + SectorBackgroundSettings background, + NameGeneratorSettings nameGeneratorSettings, + CultCache cache, + Action progressCallback = null, + uint seed = 0) + { + Background = background; + var allFactions = cache.GetAll(); + var random = new Random(seed == 0 ? (uint) (DateTime.Now.Ticks % uint.MaxValue) : seed); + + var factions = new List(); + + var protagonistFaction = allFactions.First(f => f.Name.StartsWith(settings.ProtagonistFaction, StringComparison.InvariantCultureIgnoreCase)); + factions.Add(protagonistFaction); + + var antagonistFaction = allFactions.First(f => f.Name.StartsWith(settings.AntagonistFaction, StringComparison.InvariantCultureIgnoreCase)); + factions.Add(antagonistFaction); + + var bufferFaction = allFactions.First(f => f.Name.StartsWith(settings.BufferFaction, StringComparison.InvariantCultureIgnoreCase)); + factions.Add(bufferFaction); + + var questFaction = allFactions.First(f => f.Name.StartsWith(settings.QuestFaction, StringComparison.InvariantCultureIgnoreCase)); + factions.Add(questFaction); + + var neutralFactions = settings.NeutralFactions + .Select(s => allFactions.First(f => f.Name.StartsWith(s, StringComparison.InvariantCultureIgnoreCase))) + .ToArray(); + factions.AddRange(neutralFactions); + + Factions = factions.ToArray(); + foreach (var faction in Factions) faction.InfluenceDistance = (faction.InfluenceDistance + 1) / 2; + + Zones = GenerateZones(settings.ZoneCount, ref random, progressCallback); + + GenerateLinks(settings.LinkDensity, progressCallback); + + CalculateDistanceMatrix(progressCallback); + + HomeZones[protagonistFaction] = Zones + .MaxBy(z => ConnectedRegion(z, protagonistFaction.InfluenceDistance).Count); + + HomeZones[antagonistFaction] = Zones + .MaxBy(z => ConnectedRegion(z, antagonistFaction.InfluenceDistance).Count * z.Distance[HomeZones[protagonistFaction]]); + + HomeZones[protagonistFaction] = Zones + .MaxBy(z => ConnectedRegion(z, protagonistFaction.InfluenceDistance).Count * sqrt(z.Distance[HomeZones[antagonistFaction]])); + + // var antagonistRegion = ConnectedRegion(HomeZones[antagonistFaction], antagonistFaction.InfluenceDistance); + // var protagonistRegion = ConnectedRegion(HomeZones[protagonistFaction], protagonistFaction.InfluenceDistance); + + // Place the buffer faction in a zone where it has equal distance to the pro/antagonist HQs and where it can control the most territory + var bufferDistance = Zones.Min(z => abs(z.Distance[HomeZones[antagonistFaction]] - z.Distance[HomeZones[protagonistFaction]])); + var potentialBufferZones = Zones + .Where(z => abs(z.Distance[HomeZones[antagonistFaction]] - z.Distance[HomeZones[protagonistFaction]]) == bufferDistance); + HomeZones[bufferFaction] = potentialBufferZones.MaxBy(z => ConnectedRegion(z, bufferFaction.InfluenceDistance).Count); + + // Place neutral headquarters away from existing factions while also maximizing territory + foreach (var faction in neutralFactions) + { + HomeZones[faction] = Zones.MaxBy(z => + ConnectedRegion(z, faction.InfluenceDistance).Count * + HomeZones.Values.Aggregate(1f, (i, os) => i * sqrt(os.Distance[z]))); + } + + CalculateFactionInfluence(progressCallback); + + var potentialQuestZones = Zones + .Where(z => z.Factions.Contains(antagonistFaction) && z.Factions.Contains(bufferFaction)); + HomeZones[questFaction] = potentialQuestZones + .MaxBy(z=>z.Distance[HomeZones[antagonistFaction]] * ConnectedRegion(z, questFaction.InfluenceDistance).Count); + + CalculateFactionInfluence(progressCallback); + + Entrance = ConnectedRegion(HomeZones[protagonistFaction], 2) + .MaxBy(z => z.Distance[HomeZones[antagonistFaction]]); + + DiscoveredZones.Add(Entrance); + foreach(var z in Entrance.AdjacentZones) DiscoveredZones.Add(z); + + CalculateFactionInfluence(progressCallback); + + GenerateNames(cache, nameGeneratorSettings, ref random, progressCallback); + + progressCallback?.Invoke("Done!"); + if(progressCallback!=null) Thread.Sleep(500); // Inserting Delay to make it seem like it's doing more work lmao + } + + private SectorZone[] GenerateZones(int zoneCount, ref Random random, Action progressCallback = null) + { + var outputSamples = WeightedSampleElimination.GeneratePoints(zoneCount, + ref random, + Background.CloudDensity, v => (.2f - lengthsq(v - float2(.5f))) * 4, progressCallback); - Zones = outputSamples.Select(v => new SectorZone {Position = v}).ToArray(); + return outputSamples.Select(v => new SectorZone {Position = v}).ToArray(); + } - #region Link Placement - - progressCallback?.Invoke("Triangulating Zone Positions"); + private void PlaceFactionsMain(int bossCount, Action progressCallback = null) + { + progressCallback?.Invoke("Finding Chokepoints"); if(progressCallback!=null) Thread.Sleep(500); // Inserting Delay to make it seem like it's doing more work lmao + // Find all zones on the exit path where removing that zone would disconnect the entrance from the exit + // Disregard "corridor" zones with only two adjacent zones + var chokePoints = ExitPath + .Where(z => z.AdjacentZones.Count > 2 && !ConnectedRegion(Entrance, z).Contains(Exit)); + + progressCallback?.Invoke("Placing Factions"); + if (progressCallback != null) Thread.Sleep(500); // Inserting Delay to make it seem like it's doing more work lmao + + // Choose some megas to have bosses placed based on whether a boss hull is assigned + var bossMegas = Factions + .Where(m => m.BossHull != Guid.Empty) + .Take(bossCount) + .ToArray(); + + // Place boss zones along the critical path as far apart from each other as possible + foreach (var mega in bossMegas) + { + BossZones[mega] = chokePoints.MaxBy(z => + Exit.Distance[z] * Entrance.Distance[z] * + BossZones.Values.Aggregate(1, (i, os) => i * os.Distance[z])); + } + + // Place boss mega headquarters such that their sphere of influence encompasses their boss zone + // While occupying as much territory as possible + foreach (var mega in bossMegas) + { + HomeZones[mega] = ConnectedRegion(BossZones[mega], mega.InfluenceDistance) + .MaxBy(z => + ConnectedRegion(z, mega.InfluenceDistance).Count * + HomeZones.Values.Aggregate(1f, (i, os) => i * sqrt(os.Distance[z]))); + } + + // Place remaining headquarters away from existing megas while also maximizing territory + foreach (var mega in Factions.Where(m => !bossMegas.Contains(m))) + { + HomeZones[mega] = Zones.MaxBy(z => + pow(ConnectedRegion(z, mega.InfluenceDistance).Count, HomeZones.Count) * + Exit.Distance[z] * Entrance.Distance[z] * + HomeZones.Values.Aggregate(1f, (i, os) => i * sqrt(os.Distance[z])) * + BossZones.Values.Aggregate(1f, (i, os) => i * sqrt(os.Distance[z]))); + } + } + + private void CalculateFactionInfluence(Action progressCallback = null) + { + progressCallback?.Invoke("Calculating Faction Influence"); + if (progressCallback != null) Thread.Sleep(500); // Inserting Delay to make it seem like it's doing more work lmao + + // Assign faction presence + foreach (var zone in Zones) + { + // Factions are present in all zones within their sphere of influence + zone.Factions = Factions + .Where(f => HomeZones.ContainsKey(f)) + .Where(f => zone.Distance[HomeZones[f]] <= f.InfluenceDistance) + .ToArray(); + + // Owner of a zone is the faction with the nearest headquarters + var nearestFaction = Factions + .Where(f => HomeZones.ContainsKey(f)) + .MinBy(f => (float)zone.Distance[HomeZones[f]]); + if (zone.Distance[HomeZones[nearestFaction]] <= nearestFaction.InfluenceDistance) + zone.Owner = nearestFaction; + } + } + + private void GenerateNames(CultCache cache, + NameGeneratorSettings nameGeneratorSettings, + ref Random random, + Action progressCallback = null) + { + for (var i = 0; i < Factions.Length; i++) + { + progressCallback?.Invoke($"Feeding Markov Chains: {i + 1} / {Factions.Length}"); + //if(progressCallback!=null) Thread.Sleep(250); // Inserting Delay to make it seem like it's doing more work lmao + var faction = Factions[i]; + _nameGenerators[faction] = new MarkovNameGenerator(ref random, cache.Get(faction.GeonameFile).Names, nameGeneratorSettings); + } + + // Generate zone name using the owner's name generator, otherwise assign catalogue ID + foreach (var zone in Zones) + { + if (zone.Owner != null) + { + zone.Name = _nameGenerators[zone.Owner].NextName.Trim(); + } + else + { + zone.Name = $"EAC-{random.NextInt(9999).ToString()}"; + } + } + } + + private void GenerateLinks(float linkDensity, Action progressCallback = null) + { + progressCallback?.Invoke("Triangulating Zone Positions"); + if (progressCallback != null) Thread.Sleep(500); // Inserting Delay to make it seem like it's doing more work lmao + // Create a delaunay triangulation to connect adjacent sectors var triangulation = DelaunayTriangulation, Cell2> .Create(Zones.Select(z => new Vertex2(z.Position, z)).ToList(), 1e-7f); var links = new HashSet<(SectorZone, SectorZone)>(); - foreach(var cell in triangulation.Cells) + foreach (var cell in triangulation.Cells) { - if(!links.Contains((cell.Vertices[0].StoredObject, cell.Vertices[1].StoredObject)) && - !links.Contains((cell.Vertices[1].StoredObject, cell.Vertices[0].StoredObject))) + if (!links.Contains((cell.Vertices[0].StoredObject, cell.Vertices[1].StoredObject)) && + !links.Contains((cell.Vertices[1].StoredObject, cell.Vertices[0].StoredObject))) links.Add((cell.Vertices[0].StoredObject, cell.Vertices[1].StoredObject)); - if(!links.Contains((cell.Vertices[1].StoredObject, cell.Vertices[2].StoredObject)) && - !links.Contains((cell.Vertices[2].StoredObject, cell.Vertices[1].StoredObject))) + if (!links.Contains((cell.Vertices[1].StoredObject, cell.Vertices[2].StoredObject)) && + !links.Contains((cell.Vertices[2].StoredObject, cell.Vertices[1].StoredObject))) links.Add((cell.Vertices[1].StoredObject, cell.Vertices[2].StoredObject)); - if(!links.Contains((cell.Vertices[0].StoredObject, cell.Vertices[2].StoredObject)) && - !links.Contains((cell.Vertices[2].StoredObject, cell.Vertices[0].StoredObject))) + if (!links.Contains((cell.Vertices[0].StoredObject, cell.Vertices[2].StoredObject)) && + !links.Contains((cell.Vertices[2].StoredObject, cell.Vertices[0].StoredObject))) links.Add((cell.Vertices[0].StoredObject, cell.Vertices[2].StoredObject)); } progressCallback?.Invoke("Eliminating Zone Links"); - if(progressCallback!=null) Thread.Sleep(500); // Inserting Delay to make it seem like it's doing more work lmao + if (progressCallback != null) Thread.Sleep(500); // Inserting Delay to make it seem like it's doing more work lmao // foreach (var link in links.ToArray()) // { // foreach (var zone in Zones) @@ -125,17 +350,17 @@ public class Sector float LinkWeight((SectorZone, SectorZone) link) { - return 1 / saturate(settings.CloudDensity((link.Item1.Position + link.Item2.Position) / 2)) * + return 1 / saturate(Background.CloudDensity((link.Item1.Position + link.Item2.Position) / 2)) * lengthsq(link.Item1.Position - link.Item2.Position) * (link.Item1.AdjacentZones.Count - 1) * (link.Item2.AdjacentZones.Count - 1); } - + var heap = new MaxHeap<(SectorZone, SectorZone)>(links.Count); - foreach(var link in links) heap.PushObj(link, LinkWeight(link)); - while (heap.Count > settings.LinkDensity * links.Count) + foreach (var link in links) heap.PushObj(link, LinkWeight(link)); + while (heap.Count > linkDensity * links.Count) { var link = heap.PopObj(); - if(ConnectedRegion(link.Item1, link.Item1, link.Item2).Contains(link.Item2)) + if (ConnectedRegion(link.Item1, link.Item1, link.Item2).Contains(link.Item2)) { link.Item1.AdjacentZones.Remove(link.Item2); link.Item2.AdjacentZones.Remove(link.Item1); @@ -152,108 +377,18 @@ public class Sector } } } + } - #endregion - + // Cache distance matrix and calculate isolation for every zone (used extensively for placing stuff) + private void CalculateDistanceMatrix(Action progressCallback = null) + { progressCallback?.Invoke("Calculating Distance Matrix"); if(progressCallback!=null) Thread.Sleep(500); // Inserting Delay to make it seem like it's doing more work lmao - CalculateDistanceMatrix(); - - progressCallback?.Invoke("Finding Chokepoints"); - if(progressCallback!=null) Thread.Sleep(500); // Inserting Delay to make it seem like it's doing more work lmao - - // Exit is the most isolated zone (highest total distance to all other zones) - Exit = Zones.MaxBy(z => z.Isolation); - - // Entrance is the zone furthest from the exit - Entrance = Zones.MaxBy(z => Exit.Distance[z]); - - DiscoveredZones.Add(Entrance); - foreach(var z in Entrance.AdjacentZones) DiscoveredZones.Add(z); - - // Find all zones on the exit path where removing that zone would disconnect the entrance from the exit - // Disregard "corridor" zones with only two adjacent zones - var chokePoints = ExitPath - .Where(z => z.AdjacentZones.Count > 2 && !ConnectedRegion(Entrance, z).Contains(Exit)); - - progressCallback?.Invoke("Placing Factions"); - if(progressCallback!=null) Thread.Sleep(500); // Inserting Delay to make it seem like it's doing more work lmao - - // Choose some megas to have bosses placed based on whether a boss hull is assigned - var bossMegas = Factions - .Where(m => m.BossHull != Guid.Empty) - .Take(settings.BossCount) - .ToArray(); - - // Place boss zones along the critical path as far apart from each other as possible - foreach (var mega in bossMegas) - { - BossZones[mega] = chokePoints.MaxBy(z => - Exit.Distance[z] * Entrance.Distance[z] * - BossZones.Values.Aggregate(1, (i, os) => i * os.Distance[z])); - } - - // Place boss mega headquarters such that their sphere of influence encompasses their boss zone - // While occupying as much territory as possible - foreach (var mega in bossMegas) - { - HomeZones[mega] = ConnectedRegion(BossZones[mega], mega.InfluenceDistance) - .MaxBy(z => - ConnectedRegion(z, mega.InfluenceDistance).Count * - HomeZones.Values.Aggregate(1f, (i, os) => i * sqrt(os.Distance[z]))); - } - - // Place remaining headquarters away from existing megas while also maximizing territory - foreach (var mega in Factions.Where(m=>!bossMegas.Contains(m))) - { - HomeZones[mega] = Zones.MaxBy(z => - pow(ConnectedRegion(z, mega.InfluenceDistance).Count, HomeZones.Count) * - Exit.Distance[z] * Entrance.Distance[z] * - HomeZones.Values.Aggregate(1f, (i, os) => i * sqrt(os.Distance[z])) * - BossZones.Values.Aggregate(1f, (i, os) => i * sqrt(os.Distance[z]))); - } - - progressCallback?.Invoke("Calculating Faction Influence"); - if(progressCallback!=null) Thread.Sleep(500); // Inserting Delay to make it seem like it's doing more work lmao - - // Assign faction presence foreach (var zone in Zones) { - // Factions are present in all zones within their sphere of influence - zone.Factions = Factions - .Where(m => zone.Distance[HomeZones[m]] <= m.InfluenceDistance) - .ToArray(); - - // Owner of a zone is the faction with the nearest headquarters - var nearestFaction = Factions.MinBy(m => zone.Distance[HomeZones[m]]); - if (zone.Distance[HomeZones[nearestFaction]] <= nearestFaction.InfluenceDistance) - zone.Owner = nearestFaction; + zone.Distance = ConnectedRegionDistance(zone); + zone.Isolation = zone.Distance.Sum(x => x.Value); } - - for (var i = 0; i < Factions.Length; i++) - { - progressCallback?.Invoke($"Feeding Markov Chains: {i+1} / {Factions.Length}"); - //if(progressCallback!=null) Thread.Sleep(250); // Inserting Delay to make it seem like it's doing more work lmao - var faction = Factions[i]; - _nameGenerators[faction] = new MarkovNameGenerator(ref random, cultCache.Get(faction.GeonameFile).Names, settings); - } - - // Generate zone name using the owner's name generator, otherwise assign catalogue ID - foreach (var zone in Zones) - { - if (zone.Owner != null) - { - zone.Name = _nameGenerators[zone.Owner].NextName.Trim(); - } - else - { - zone.Name = $"EAC-{random.NextInt(9999).ToString()}"; - } - } - - - progressCallback?.Invoke("Done!"); - if(progressCallback!=null) Thread.Sleep(500); // Inserting Delay to make it seem like it's doing more work lmao } public bool ContainsFaction(Guid factionID) @@ -262,16 +397,6 @@ public class Sector return _containedFactions.Contains(factionID); } - // Cache distance matrix and calculate isolation for every zone (used extensively for placing stuff) - private void CalculateDistanceMatrix() - { - foreach (var zone in Zones) - { - zone.Distance = ConnectedRegionDistance(zone); - zone.Isolation = zone.Distance.Sum(x => x.Value); - } - } - class DijkstraVertex { public float Cost; diff --git a/Assets/Scripts/ServerShared/Settings.cs b/Assets/Scripts/ServerShared/Settings.cs index 0ebe881b8..599e4732d 100644 --- a/Assets/Scripts/ServerShared/Settings.cs +++ b/Assets/Scripts/ServerShared/Settings.cs @@ -44,23 +44,24 @@ public class GalaxyShapeSettings } [Serializable, MessagePackObject(keyAsPropertyName:true), JsonObject] -public class SectorGenerationSettings +public class NameGeneratorSettings { - public float LinkDensity = .5f; - public int ZoneCount = 128; public int NameGeneratorMinLength = 5; public int NameGeneratorMaxLength = 10; public int NameGeneratorOrder = 4; - public int MegaCount; - public int BossCount; - public float NoisePosition; - public float CloudExponent; - public float CloudAmplitude; +} + +[Serializable, MessagePackObject(keyAsPropertyName:true), JsonObject] +public class SectorBackgroundSettings +{ public float NoiseAmplitude; public float NoiseOffset; public float NoiseGain; public float NoiseLacunarity; public float NoiseFrequency; + public float NoisePosition; + public float CloudExponent; + public float CloudAmplitude; public float fBm(float2 p, int octaves) { @@ -84,6 +85,27 @@ public class SectorGenerationSettings } } +[Serializable, MessagePackObject(keyAsPropertyName:true), JsonObject] +public class SectorGenerationSettings +{ + public float LinkDensity = .5f; + public int ZoneCount = 128; + public int MegaCount; + public int BossCount; +} + +[Serializable, MessagePackObject(keyAsPropertyName:true), JsonObject] +public class TutorialGenerationSettings +{ + public string ProtagonistFaction; + public string AntagonistFaction; + public string BufferFaction; + public string[] NeutralFactions; + public string QuestFaction; + public float LinkDensity = .5f; + public int ZoneCount = 32; +} + [Serializable, MessagePackObject(keyAsPropertyName:true), JsonObject] public class ZoneGenerationSettings { diff --git a/Assets/Scripts/ServerShared/ZoneGenerator.cs b/Assets/Scripts/ServerShared/ZoneGenerator.cs index f31151ef2..09f072f82 100644 --- a/Assets/Scripts/ServerShared/ZoneGenerator.cs +++ b/Assets/Scripts/ServerShared/ZoneGenerator.cs @@ -39,13 +39,14 @@ public static class ZoneGenerator ItemManager itemManager, ZoneGenerationSettings zoneSettings, Sector sector, - SectorZone sectorZone) + SectorZone sectorZone, + bool isTutorial = false) { var pack = new ZonePack(); var random = new Random(unchecked((uint) sectorZone.Name.GetHashCode()) ^ hash(sectorZone.Position)); - var density = saturate(sector.Settings.CloudDensity(sectorZone.Position)); + var density = saturate(sector.Background.CloudDensity(sectorZone.Position)); pack.Radius = zoneSettings.ZoneRadius.Evaluate(density); pack.Mass = zoneSettings.ZoneMass.Evaluate(density); var targetSubzoneCount = zoneSettings.SubZoneCount.Evaluate(density); @@ -225,7 +226,8 @@ public static class ZoneGenerator var nearestFactionHomeZone = sector.HomeZones[nearestFaction]; var factionPresence = nearestFaction.InfluenceDistance - nearestFactionHomeZone.Distance[sectorZone] + 1; - var loadoutGenerator = new LoadoutGenerator(ref random, itemManager, sector, sectorZone, nearestFaction, .5f); + var loadoutGenerator = isTutorial ? new LoadoutGenerator(ref random, itemManager, nearestFaction, .5f) : + new LoadoutGenerator(ref random, itemManager, sector, sectorZone, nearestFaction, .5f); for (int i = 0; i < factionPresence; i++) { pack.Entities.Add(loadoutGenerator.GenerateShipLoadout()); diff --git a/Assets/Scripts/UI/MainMenu.cs b/Assets/Scripts/UI/MainMenu.cs index 07e804c7c..a92ac816a 100644 --- a/Assets/Scripts/UI/MainMenu.cs +++ b/Assets/Scripts/UI/MainMenu.cs @@ -10,6 +10,7 @@ using UnityEngine; using UnityEngine.SceneManagement; using UnityEngine.UI; using static Unity.Mathematics.math; +using float2 = Unity.Mathematics.float2; using Random = UnityEngine.Random; public class MainMenu : MonoBehaviour @@ -96,7 +97,9 @@ public class MainMenu : MonoBehaviour _nextMenu.panel.AddButton("Continue", () => { - ActionGameManager.CurrentSector = new Sector(ActionGameManager.CultCache, ActionGameManager.PlayerSettings.SavedRun); + ActionGameManager.CurrentSector = new Sector( + ActionGameManager.CultCache, + ActionGameManager.PlayerSettings.SavedRun); SceneManager.LoadScene("ARPG"); }); else @@ -114,15 +117,45 @@ public class MainMenu : MonoBehaviour Dialog.Title.text = "Generating Galaxy"; Dialog.AddProperty(() => generatorState); Dialog.Show(); - Settings.SectorGenerationSettings.NoisePosition = Random.value * 100; - - var task = Task.Run(() => new Sector(Settings.SectorGenerationSettings, ActionGameManager.CultCache, 0, setState)); - task.ContinueWith(task => Observable.NextFrame().Subscribe(_ => + + if (ActionGameManager.PlayerSettings.TutorialPassed) { - ActionGameManager.PlayerSettings.SavedRun = null; - ActionGameManager.CurrentSector = task.Result; - SceneManager.LoadScene("ARPG"); - })); + Settings.SectorBackgroundSettings.NoisePosition = Random.value * 1000; + ActionGameManager.IsTutorial = false; + var task = Task.Run(() => new Sector( + Settings.SectorGenerationSettings, + Settings.SectorBackgroundSettings, + Settings.NameGeneratorSettings, + ActionGameManager.CultCache, + setState)); + task.ContinueWith(task => Observable.NextFrame().Subscribe(_ => + { + ActionGameManager.PlayerSettings.SavedRun = null; + ActionGameManager.CurrentSector = task.Result; + SceneManager.LoadScene("ARPG"); + })); + } + else + { + do + { + Settings.TutorialBackgroundSettings.NoisePosition = Random.value * 1000; + } while (Settings.TutorialBackgroundSettings.CloudDensity(float2(0.5f)) < .5f); + + ActionGameManager.IsTutorial = true; + var task = Task.Run(() => new Sector( + Settings.TutorialGenerationSettings, + Settings.TutorialBackgroundSettings, + Settings.NameGeneratorSettings, + ActionGameManager.CultCache, + setState)); + task.ContinueWith(task => Observable.NextFrame().Subscribe(_ => + { + ActionGameManager.PlayerSettings.SavedRun = null; + ActionGameManager.CurrentSector = task.Result; + SceneManager.LoadScene("ARPG"); + })); + } }); _nextMenu.panel.AddButton("Settings", () => diff --git a/Assets/Scripts/UI/SectorMap.cs b/Assets/Scripts/UI/SectorMap.cs index b759995c0..aab3325c3 100644 --- a/Assets/Scripts/UI/SectorMap.cs +++ b/Assets/Scripts/UI/SectorMap.cs @@ -116,7 +116,7 @@ public class SectorMap : MonoBehaviour zoneInstance.Secondary.gameObject.SetActive(false); } - var isOnCriticalPath = ActionGameManager.CurrentSector.ExitPath.Contains(zone); + var isOnCriticalPath = ActionGameManager.CurrentSector.ExitPath?.Contains(zone) ?? false; foreach (var adjacentZone in zone.AdjacentZones) { // If the adjacent zone is in the set already revealed, then show the link @@ -125,7 +125,7 @@ public class SectorMap : MonoBehaviour _revealedLinks.Contains((adjacentZone, zone)))) { var link = LinkPrototype.Instantiate(); - var critical = isOnCriticalPath && ActionGameManager.CurrentSector.ExitPath.Contains(adjacentZone); + var critical = isOnCriticalPath && (ActionGameManager.CurrentSector.ExitPath?.Contains(adjacentZone) ?? false); linksToReveal.Add((zone.Position, adjacentZone.Position, link, critical)); if (zone.Owner != null && zone.Owner == adjacentZone.Owner) link.GetComponent().sharedMaterial = _factionMaterials[zone.Owner].linkMaterial; @@ -297,14 +297,14 @@ public class SectorMap : MonoBehaviour legendElement.Label.text = mega.ShortName; } - SectorRenderer.material.SetFloat("CloudAmplitude", ActionGameManager.CurrentSector.Settings.CloudAmplitude); - SectorRenderer.material.SetFloat("CloudExponent", ActionGameManager.CurrentSector.Settings.CloudExponent); - SectorRenderer.material.SetFloat("NoisePosition", ActionGameManager.CurrentSector.Settings.NoisePosition); - SectorRenderer.material.SetFloat("NoiseAmplitude", ActionGameManager.CurrentSector.Settings.NoiseAmplitude); - SectorRenderer.material.SetFloat("NoiseOffset", ActionGameManager.CurrentSector.Settings.NoiseOffset); - SectorRenderer.material.SetFloat("NoiseGain", ActionGameManager.CurrentSector.Settings.NoiseGain); - SectorRenderer.material.SetFloat("NoiseLacunarity", ActionGameManager.CurrentSector.Settings.NoiseLacunarity); - SectorRenderer.material.SetFloat("NoiseFrequency", ActionGameManager.CurrentSector.Settings.NoiseFrequency); + SectorRenderer.material.SetFloat("CloudAmplitude", ActionGameManager.CurrentSector.Background.CloudAmplitude); + SectorRenderer.material.SetFloat("CloudExponent", ActionGameManager.CurrentSector.Background.CloudExponent); + SectorRenderer.material.SetFloat("NoisePosition", ActionGameManager.CurrentSector.Background.NoisePosition); + SectorRenderer.material.SetFloat("NoiseAmplitude", ActionGameManager.CurrentSector.Background.NoiseAmplitude); + SectorRenderer.material.SetFloat("NoiseOffset", ActionGameManager.CurrentSector.Background.NoiseOffset); + SectorRenderer.material.SetFloat("NoiseGain", ActionGameManager.CurrentSector.Background.NoiseGain); + SectorRenderer.material.SetFloat("NoiseLacunarity", ActionGameManager.CurrentSector.Background.NoiseLacunarity); + SectorRenderer.material.SetFloat("NoiseFrequency", ActionGameManager.CurrentSector.Background.NoiseFrequency); } private void RenderInfluence() diff --git a/GameData/AetherDB.msgpack b/GameData/AetherDB.msgpack index ed9524939..1827679ae 100644 --- a/GameData/AetherDB.msgpack +++ b/GameData/AetherDB.msgpack @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:38a1e181ae301b90f0af33b0f91fd79d8c8d4e16cc93f2e85656dee0ad043c86 -size 75924 +oid sha256:a6914c61357f731f1c81c28bd92e7a43d3b78e445c57d88f69ead90d5054e6b0 +size 75930 diff --git a/GameData/PlayerSettings.msgpack b/GameData/PlayerSettings.msgpack index 5c15013a1..03aa055b1 100644 --- a/GameData/PlayerSettings.msgpack +++ b/GameData/PlayerSettings.msgpack @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:b9ec5cef84e135dc355753ec7e782a6867dec6728e12c463e559a8bbb0a63770 -size 26003 +oid sha256:d134380dcd8d8329cdcd6c28f340b9d8678c900ecab893bf10fac3bbe704aa7a +size 18910 diff --git a/UserSettings/EditorUserSettings.asset b/UserSettings/EditorUserSettings.asset index 29995cccf..bc307be86 100644 --- a/UserSettings/EditorUserSettings.asset +++ b/UserSettings/EditorUserSettings.asset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:ddf9f0c22847dc8893a39a7d9afc9b90b2fa13176fb5c4da0a1d8f16a85ee649 +oid sha256:caf20eb516bc53f1774f3a147124ab3b7e9869c889cf6083eba3f4507444845a size 1699 From f82b71877ae39484048bcb00cc3c60fc5d10c080 Mon Sep 17 00:00:00 2001 From: Reinier Vens Date: Thu, 22 Apr 2021 19:46:29 +0100 Subject: [PATCH 46/51] Updated Readme --- Assets/Scripts/Gameplay/ActionGameManager.cs | 22 ++++++++- Assets/Scripts/UI/MainMenu.cs | 50 +++++++++++--------- GameData/PlayerSettings.msgpack | 4 +- README.md | 22 ++++----- 4 files changed, 60 insertions(+), 38 deletions(-) diff --git a/Assets/Scripts/Gameplay/ActionGameManager.cs b/Assets/Scripts/Gameplay/ActionGameManager.cs index 83fd149fa..779380c1f 100644 --- a/Assets/Scripts/Gameplay/ActionGameManager.cs +++ b/Assets/Scripts/Gameplay/ActionGameManager.cs @@ -201,6 +201,19 @@ public class ActionGameManager : MonoBehaviour EntityInstance.ClearWeaponManagers(); } + private class AetheriaInkFileHandler : IFileHandler { + private DirectoryInfo NarrativeRoot { get; } + + public AetheriaInkFileHandler(DirectoryInfo narrativeRoot) + { + NarrativeRoot = narrativeRoot; + } + + public string ResolveInkFilename (string includeName) => Path.Combine (NarrativeRoot.FullName, includeName); + + public string LoadInkFileContents (string fullFilename) => File.ReadAllText (fullFilename); + } + void Start() { Instance = this; @@ -215,8 +228,13 @@ public class ActionGameManager : MonoBehaviour var narrativeFiles = narrativePath.EnumerateFiles("*.ink"); foreach(var inkFile in narrativeFiles) { - var compiler = new Compiler(File.ReadAllText(inkFile.FullName)); - _stories.Add(compiler.Compile()); + var compiler = new Compiler(File.ReadAllText(inkFile.FullName), new Compiler.Options + { + countAllVisits = true, + fileHandler = new AetheriaInkFileHandler(narrativePath) + }); + var story = compiler.Compile(); + _stories.Add(story); } // _loadoutPath = GameDataDirectory.CreateSubdirectory("Loadouts"); diff --git a/Assets/Scripts/UI/MainMenu.cs b/Assets/Scripts/UI/MainMenu.cs index a92ac816a..4e484ac1e 100644 --- a/Assets/Scripts/UI/MainMenu.cs +++ b/Assets/Scripts/UI/MainMenu.cs @@ -122,18 +122,21 @@ public class MainMenu : MonoBehaviour { Settings.SectorBackgroundSettings.NoisePosition = Random.value * 1000; ActionGameManager.IsTutorial = false; - var task = Task.Run(() => new Sector( - Settings.SectorGenerationSettings, - Settings.SectorBackgroundSettings, - Settings.NameGeneratorSettings, - ActionGameManager.CultCache, - setState)); - task.ContinueWith(task => Observable.NextFrame().Subscribe(_ => + Task.Run(() => { - ActionGameManager.PlayerSettings.SavedRun = null; - ActionGameManager.CurrentSector = task.Result; - SceneManager.LoadScene("ARPG"); - })); + var sector = new Sector( + Settings.SectorGenerationSettings, + Settings.SectorBackgroundSettings, + Settings.NameGeneratorSettings, + ActionGameManager.CultCache, + setState); + Observable.NextFrame().Subscribe(_ => + { + ActionGameManager.PlayerSettings.SavedRun = null; + ActionGameManager.CurrentSector = sector; + SceneManager.LoadScene("ARPG"); + }); + }); } else { @@ -143,18 +146,21 @@ public class MainMenu : MonoBehaviour } while (Settings.TutorialBackgroundSettings.CloudDensity(float2(0.5f)) < .5f); ActionGameManager.IsTutorial = true; - var task = Task.Run(() => new Sector( - Settings.TutorialGenerationSettings, - Settings.TutorialBackgroundSettings, - Settings.NameGeneratorSettings, - ActionGameManager.CultCache, - setState)); - task.ContinueWith(task => Observable.NextFrame().Subscribe(_ => + Task.Run(() => { - ActionGameManager.PlayerSettings.SavedRun = null; - ActionGameManager.CurrentSector = task.Result; - SceneManager.LoadScene("ARPG"); - })); + var sector = new Sector( + Settings.TutorialGenerationSettings, + Settings.TutorialBackgroundSettings, + Settings.NameGeneratorSettings, + ActionGameManager.CultCache, + setState); + Observable.NextFrame().Subscribe(_ => + { + ActionGameManager.PlayerSettings.SavedRun = null; + ActionGameManager.CurrentSector = sector; + SceneManager.LoadScene("ARPG"); + }); + }); } }); _nextMenu.panel.AddButton("Settings", diff --git a/GameData/PlayerSettings.msgpack b/GameData/PlayerSettings.msgpack index 03aa055b1..91af2e2b5 100644 --- a/GameData/PlayerSettings.msgpack +++ b/GameData/PlayerSettings.msgpack @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d134380dcd8d8329cdcd6c28f340b9d8678c900ecab893bf10fac3bbe704aa7a -size 18910 +oid sha256:96380c89aee7bc1060b1d9e39123278121fd5930b4c431860090d9d8530a6204 +size 51293 diff --git a/README.md b/README.md index 1a76fa611..d7267e80e 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,9 @@ # Aetheria -This repository is the home of Aetheria, an economy focused RTS/ARPG. In the ARPG mode you control a single ship, engaging in combat, mining, trade and participating in the narrative. In the RTS mode you control the production, research, supply chains and actions of a corporation tasked with colonizing an alien galaxy. Control over your minions is indirect, like in Rimworld, and gameplay takes place over months as your production and tasks continue acting on the world even when you're offline. +This repository is the home of Aetheria, a futuristic space game with a surreal story and visual style. We're planning two distinct gameplay modes, which we are initially releasing as individual titles and later combining into a single persistent world. + +In the ARPG mode you control a single ship, engaging in combat, mining, trade and participating in a branching interactive storyline. The game loop for our initial ARPG release is structured as an open world rogue-lite, with a new procedurally generated universe to explore during every run. + +In the RTS mode you control the production, research, supply chains and actions of a corporation tasked with colonizing an alien galaxy. Control over your minions is indirect, like in Rimworld, and gameplay takes place over months as your production and tasks continue acting on the world even when you're offline. @@ -63,7 +67,7 @@ Aetheria uses [RethinkDB](https://rethinkdb.com/) for data persistence. To make ### Programming Paradigms -The codebase makes heavy use of C#'s [Language Integrated Queries (LINQ)](https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/linq/), allowing for the concise representation of operations that modify or filter collections. Asynchronous stream processing is often performed using the [functional reactive programming](http://reactivex.io/) paradigm, which is achieved using [Microsoft's Reactive Extensions](https://github.com/dotnet/reactive) on the server and [Reactive Extensions for Unity](https://github.com/neuecc/UniRx). Combining Observables with LINQ allows for extremely powerful expressions of the programmer's intent. +The codebase makes heavy use of C#'s [Language Integrated Queries (LINQ)](https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/linq/), allowing for the concise representation of operations that modify or filter collections (though they do generate some garbage so must be avoided within the update loop). Asynchronous stream processing is often performed using the [functional reactive programming](http://reactivex.io/) paradigm, which is achieved using [Microsoft's Reactive Extensions](https://github.com/dotnet/reactive) on the server and [Reactive Extensions for Unity](https://github.com/neuecc/UniRx). Combining Observables with LINQ allows for extremely powerful expressions of the programmer's intent. ### Data Structures @@ -97,6 +101,8 @@ In order to checkout the project, you need a git client (Github's zip download w When you have synced with the repository, you can open the project using Unity. The project uses Unity 2020.2 at the moment, and while it may work with newer or older versions, that cannot be guaranteed. You can open the project by opening the root of this repository either directly with the Unity Editor, or using [Unity Hub](https://public-cdn.cloud.unity3d.com/hub/prod/UnityHubSetup.exe), which will also take care of downloading the correct version of the Editor. +**Important note:** One of our VFX features currently relies on a custom modification of the Depth of Field shader in Unity's postprocessing stack. When you open the project this mod will not be there so you may experience a blurred screen. You can fix this by replacing the file `Library\PackageCache\com.unity.postprocessing@2.3.0\PostProcessing\Shaders\Builtins\DepthOfField.hlsl` with the file of the same name placed in the repository root. + ### Choosing a Task We are organizing according to an [Agile development](https://en.wikipedia.org/wiki/Agile_software_development) schedule, with the progress of each sprint being tracked on its own board in the [Github Projects tab](https://github.com/rwvens/Aetheria-Economy/projects). If you wish to take on a task from the board, please contact us to become an official contributor so that the task can be assigned to you directly. Some issues are not on the sprint schedule, those are ideal for developers who want to jump in but are shy about joining. We use the [good first issue](https://github.com/rwvens/Aetheria-Economy/labels/good%20first%20issue) label for issues that don't require heavy knowledge of the codebase. @@ -123,18 +129,10 @@ Note that this process needs to be repeated every time the data model changes or ### Debug Console -Pressing the tilde key (`) while running the game allows you to access the console. Here you can view the debug log as well as entering commands which aid in testing various game mechanics. +Pressing the tilde key (`) while running the game allows you to access the console. Here you can view the debug log as well as entering commands which aid in testing various game mechanics. Console commands are registered with the console controller. Our current convention is to perform command registration inside ActionGameManager.cs:Start(). #### Commands -##### savezone - -Creates a new entity under your control - -Arguments: - -- Filename: If the zone is saved as "Home", it will be automatically loaded on start - ### Galaxy Editor When you select a galaxy asset in the Unity scene hierarchy, a custom editor opens in the inspector which enables the procedural generation of a new galaxy. There you can find some variables pertaining to the galaxy as a whole, such as the number and twist of the spiral arms. @@ -151,7 +149,7 @@ After generating stars, you can generate the links between them, which performs ## License -The majority of this repository is under the Mozilla Public License and therefore available for anyone to use. +The majority of this repository is under the Mozilla Public License and therefore available for anyone to use. Note that the MPL is per-file and therefore the license only applies to files which contain the MPL header. If you believe a file has been created by us and is missing the header, please let us know (we do forget sometimes). ## Contact Us From fc06ea2f968af6d1919976fcfdfe4671675cc4eb Mon Sep 17 00:00:00 2001 From: BirgitteSilverbow <45889189+BirgitteSilverbow@users.noreply.github.com> Date: Sat, 24 Apr 2021 03:00:56 -0400 Subject: [PATCH 47/51] Quest script for Terminus Main questline, location one. The player meets Nibu and obligatory exposition. --- .../Narrative/TerminusStartingPointMQ.ink | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 GameData/Narrative/TerminusStartingPointMQ.ink diff --git a/GameData/Narrative/TerminusStartingPointMQ.ink b/GameData/Narrative/TerminusStartingPointMQ.ink new file mode 100644 index 000000000..262854a2c --- /dev/null +++ b/GameData/Narrative/TerminusStartingPointMQ.ink @@ -0,0 +1,34 @@ + +LIST loopstate = noloop, loopA, postrunA + + +Intro and exposition + + *Agree -->letsroll + *Be a shithead -->damnitpilot + + +===loopstart== +minus the exposition, the reset state. --> letsroll + + == letsroll + + {loopstate ? noloop: "I have some coordinates," you say. Nibu sets a flight path.-->END} + {loopstate ? loopA: Let's go I guess.-->END} + {loopstate ? postrunA: + What do you think we ought to do? + *follow the tracks->END + *go straight to arboros->END + *fuck if I know->END + } + + + + +==damnitpilot +nibu switches off life support.{snide|snideagain|exasperated|ohforfuckssake|NO} ->donttrymebitch + +=donttrymebitch +You want to try that again? + *sure thing.->damnitpilot + *no, we're good-->letsroll \ No newline at end of file From 9e3e0c290145dac6dcf90109962bcce6c0105bfc Mon Sep 17 00:00:00 2001 From: BirgitteSilverbow <45889189+BirgitteSilverbow@users.noreply.github.com> Date: Sat, 24 Apr 2021 03:57:50 -0400 Subject: [PATCH 48/51] The actual TerminusMQStart file Main Quest start point/obligatory exposition --- .../Narrative/TerminusMQfirstlocation.ink | 289 ++++++++++++++++++ 1 file changed, 289 insertions(+) create mode 100644 GameData/Narrative/TerminusMQfirstlocation.ink diff --git a/GameData/Narrative/TerminusMQfirstlocation.ink b/GameData/Narrative/TerminusMQfirstlocation.ink new file mode 100644 index 000000000..a27097826 --- /dev/null +++ b/GameData/Narrative/TerminusMQfirstlocation.ink @@ -0,0 +1,289 @@ +->begin +VAR playername = "Bob placeholdersyntax" + +LIST loopstate = noloop, loopA, postrunA +//purely a placeholder for my own clarity. I assume this will be a game variable. + + +LIST knowname = (notknown), nameknown + +LIST proof = (no), yes + + +===function printname(x)=== +{knowname ? nameknown: +Nibu +-else: +The AI +} + +===begin=== +The regen process for your shattered and scorched body was fast, and surprisingly easy. The ensuing meeting with your superiors...not so much. You'd rather not contemplate it, but given your current circumstances, the thought has a certain persistence. + +But you're alive--for now--and the hangar around you fizzes with activity, a whirl of shouts and clatters and the felt-not-heard rumble of engines, all underlaid by the ever-present reek of cinnamon. You'd be concerned by this, except you're familiar enough now with the nose-burning smell of whatever chemical catalyst Miss Terri's Sugarrific Snack Co. & Subsidiaries uses in their reactors to have developed a certain resilience. Your contract has been theirs for a while now. + +The smell becomes even less troubling as you round a corner onto a much less busy, much less shine-and-polish part of the hangar and get a good look at the ship you've been assigned--or rather, the ship that's been foisted on you, along with a mission just this side of an execution and the tacit understanding that the only possible outcomes are success and death. + +(There is also a long file of forms to put your identity chip to, full of phrases like "waiver of liability", "possibility of termination, real or corporate," and "I, the undersigned, understand and agree that the undertaking of the specified task is completely optional, and I have been made aware of the alternate assignments available that will fullfill the terms of my contract in the event I should refuse." + +The alternate assignments mostly involve being recycled into a station's worth of highly-addictive snack food. The ones that don't... + +You'd rather not think about the ones that don't.) + +Having your spleen chemically emulsified into Miss Terri's Magical Detoxifying Mayonnaise (Only the strongest blood cells survive our flavour explosion!)TM isn't sounding so bad right about now, because the ship in front of you can only be described as a deathtrap. + +"You must have really annoyed someone," the hangar mechanic says, peering over your shoulder at the melting-vat escapee of a ship. Her tone is infuriatingly chipper. But then, all the hangar workers are just a little too peppy. You're half convinced there's amphetamines in the reactor fumes. + +"Yes," you say. Any pep you have is purely capsaicin. "I really did." + +"Well, happy flying! You don't want to let down Miss Terri, silken be her custard, do you?" + +You'd gladly let down Miss Terri, obnoxious be her citizenry, but you'd also like to keep your eyeballs where they belong, so you sigh, nod, and add your IDC to the form the mechanic hands you, officially assuming temporary ownership of that deathtrap and condemning yourself to fate. + +"Alright." You download the vessel's security code onto your private storage and start up the--also suspiciously run down--ladder to the ship entry. "I guess Tuesday's a good a day to die as any." + + *[Enter the ship.]->Nibs + * You pause. "So...how do I fly this thing, anyway?" + The mechanic laughs, a sound curiously reminiscent of childhood afternoons back on the station, slurping bubblepops in the life-support vents. It's the reactor fumes. "You're funny," she says, still giggling. "But I've got a busted aether turbine with my name on it. Don't die!" + With that, she's gone, and there's nothing left but to take a tingling breath of cinnamon air, and get going. + ->Nibs + +=Nibs +~knowname = notknown +The interior of the ship, once you've found the light controls in a box just slightly too far from the door to be convenient, is exactly as cramped and outdated as the exterior promised. It's a pleasant surprise. So rarely do these things settle for merely meeting expectations. + +That morbid satsifaction lasts right up until you squeeze your way between not-quite military standard weapons mounts, clamber into the ominously stained pilot's chair, and hit the manual startup. You don't have time to be amazed at the sophistication of the holo readouts flashing up around you, or the fractal lattice of a star map rendered in more dimensions than you exist in, because the ship's emergency warning siren is suddenly switched on full and blasting directly into your ear. + +EEEEEEWARNINGEHULLBREACHDETECTEDEEE-- + +You scramble for the shutdown, find nothing-- + +EEEEEEDONOTPANICEEEEEEEEEEEEEWARNI--- + +more nothing-- + +NGHULLBREACHDETECTEDEEEEEEDONOTP-- + +debting piece of not-even-good-enough-to-strip-for-parts collateral damage where is that debting shut off-- + +ANICEEEEEEEEWARNINGHULLBREACHDETE-- + +... + +... + +... + +It takes you a moment to realize that the auditory assault has stopped, just as suddenly as it started. The echo in your ears lasts much, much longer. + +"Now that I've got your attention," someone says, and with the words the drifting lights of the star map stop, ripple like diamonds under a blue-hot sun, and coalesce into the fully licensed and trademarked avatar of a top-shelf R&D AI, arms folded and smiling brighter than a double sun. "Who are you and what are you doing on my ship?" +//if we can get a visual aid here, that'd be cool + ++ "Oh. Uh. I'm {playername}. Nice to meet you, I hope?" + "Hello, {playername}, I'm Nibu," the perfectly formatted apparition says, glucose sweet and smiling. Her avatar is the product of five billion credits in market research, and it shows. (Not very well on the researched, but humans as a marketing demographic have never been accused of good taste.) "Nice is such a nonspecific word. How would you feel about 'mutually benificial'?" + ~knowname = nameknown + ++ [Find this highly suspect] + + You lean forward, scanning the console. Nobody just abandons their AI copilot in a musty spaceport on a whim. It'd be like locking your wingmate in the Janbot charging closet of a shady accounting firm before comandeering their much nicer ship... + Because you'd never do that, of course. That's what airlocks are for. + Still... + "Mutually beneficial for whom?" + Nibu beams, and swats your hand away from the console. (She's not solid, of course, a creation of photons and binary, but the manipulated electromagnetic field where her avatar's hand flashes is more than capable of making your withdraw yours.) "Well, there's only two mutuals on this ship, isn't there?" + Not being one to ignore a suspiciously parsed sentence, you decide to take a moment to make sure that this is, in fact, true. It is. There's not enough space on this ship to hide a grin, let alone a whole accomplice. + "All right," you say. "What's the catch? Because I have a suicide mission to surivive, and in my experience, second chances never come cheap." + ->Obligatoryexposition + + ** You contemplate this. "Better than about 'not beneficial at all', I suppose," you say, finally. + "Isn't it?" Nibu says. Her eyes, very large and beautifully detailed and not-quite-human for all that, are bright. "Alright, {playername}, tune those weird little flesh nubs you use for auditory processing to my frequency. I've got a proposition for you." ->Obligatoryexposition + + + ** You raise an eyebrow. "You're an AI. I hold the title on this ship--and all equipment thereon, intelligent or not. There's no mutually beneficial about it." + Her implausibly perfect face flashes with an expression half human, hurt and angry, and half something not, a nameless something that seethes with all the claustrophobic infinity of starless space. "Well then," she says. "I suppose it's my pleasure to introduce you to the abilities of your new equipment. Intelligent and not." + ->damnitpilot + +* "I think you mean 'what am I doing on my ship.'" + The AI, her long-haired, long-legged avatar clearly the product of meticulous market research and a complete lack of any scruples whatsoever, clasps her hands in front of her. Her smile is brilliantly, shamelessly meretricious. "Oh, I'm sorry," she says. "Who are you and what are you doing on your ship, Captain? What with your fragile human lungs needing oxygen and all the neat little systems on your ship like life support and the door controls all wired in to my extremely well shielded mainframe?" + **You take the hint. "Right. Sure. Let's just...start over, shall we? I'm {playername}. Who in the fourteen ice moons of kottak are you? + "I'm Nibu," she says. {~knowname = nameknown} "Probably. And we're not anywhere near the ice moons of Kottak. And I haven't even turned off the oxgyen yet, so I sure hope that's not an indication of prior brain damage! According to my search function, inability to remember one's location is a symptom of lots of potential issues!" She leans down to stare unblinkingly into your face. It's a diffuse stare, one that doesn't seem to distinguish your eyes from skin or nose or the folded back helmet of your flight suit. Like a child, lying in the grass and staring at an ant. + "It's a turn of phrase," you mutter, scooting back in the ratty pilot's chair. It's...actually not as uncomfortable as it looks, though, admittedly, that's a very low bar. + Nibu tilts her head, and then abruptly stands back up. "Oh. One of those things." Her tone says very clearly what she thinks of human follies like rhetorical flourishes. "Well, I'll put it in the data banks. And now that we're aquainted as per general human customs, I have a question for you." ->Obligatoryexposition + ** "We both know that your programming prevents you from harming humans." You shake your head. "Though I have a few words for the human who programmed that little joke in. But I'll ask one more time: "What's an AI copilot doing installed on this piece of junk?" + "Programming herself," the AI says, and now she's not smiling at all. ->damnitpilot + ++ "This piece of space debris has an R&D AI?. Wow. I've never even seenone of those before. Thank you quantum fluctuations, we're putting off death til Wednesday." + "You've never seen anything like me before," the AI says, slender fingers moving in the air as though adjusting a touchscreen you can't see. It's a statement of fact, untroubled by probability. "And as for being an R&D design..." she waves a hand, still beaming, blue star bright and default. "Well, we're all designed by something, aren't we? And engineers are more precise than evolution. I mean, look at you! Even with all that genetic tinkering, you're just so adorably failure prone!" + Given the current circumstances, you can't exactly deny this. + "Buuuut," she goes on, snapping her projected hand closed as though dismissing a read-out and turning her big, implausibly jewel-toned eyes on you, "I can fix that! Not genetically, of course. And you'll die! A lot. But it won't be permanent. Isn't that much better than just surviving anyway?" + "Um. What?" + You're starting to suspect this AI and her junkyard ship have a lot more in common than a first glance suggested. Death, it seems, permanent or not, still has your name typed in for Tuesday. + "Of course, your human brain can only extrapolate a very limited amount from incomplete data." A sigh, at that. "Okie dokie! I'll start from basics. My name, I think, is Nibu. {~knowname = nameknown} And here is what is going to happen now." + ->Obligatoryexposition ++ "I'll answer your question if you'll tell me what a clearly advanced AI is doing lurking on a junkyard cruiser in the dustiest corner of a no-name spaceport." + "That information is not included in my data banks," she says. There's an undertone in her perfectly tuned voice you'd call fear, if you didn't know that AI design laws demanded all intelligent programming have a clause to exclude the development of unwanted emotions. + You've always been uneasy about that clause. + "Oh," you say. And then, "I'm sorry." You're not sure why. + Clearly, she isn't either. "Oh, you have a sense of humour! I've been trying to program one of those." Suddenly cheerful, the AI hops up to perch on nothing, pausing to wave away one of the holo displays. "So what are you doing on my ship?" + *** "At the moment, I'm talking to you. After that, I'll be flying it after a known criminal with a ship loaded with three times the firepower and the under-the-radar support of the whole Zhestokost military-corporate complex, probably directly into an ambush. + So, two questions: do Miss Terri and Co. know you're here, and are you going to help me? + "No. And that depends." + "On what?" + "On whether you decide to help me." + You sit back in the surprisingly comfortable pilot's chair, considering this. "Alright. I'm listening." + ->Obligatoryexposition + *** "If you can get me as far as Lucent Territory, I'll be leaving your ship as soon as we can land." + "Hmm." She stares at something you can't see, calculating. "You see, that leaves me in exactly the same position as I am now. Not optimal at all." + "Do you have a better suggestion?" + "As a matter of fact," Her smile is neon bright now, a holobar sign on a cold, dark night. "I do." + ->Obligatoryexposition + + + + + +===loopstart== +"Oops," Nibu says. "Maybe try not getting shot next time?" --> letsroll + + == letsroll + {loopstate ? loopA: "Well, let's go I guess."-->END} + {loopstate ? postrunA: + You're back in the hangar you started from, your prey's last dying transmission still etched in bright letters on the holodisplay. + "{ALEPH|TROUT|DEEP THOUGHT|PLATO}" + Staring at the letters fails to clarify anything, and you look at {Nibu|Nibu|Deci|}, who is sitting crosslegged in {her|her|their} usual spot among the swirling points of the star map, in the flesh, so to speak. + "I don't suppose you--" + "No." The reply is terse, bitten off, like your copilot has just discovered a sense of taste and doesn't like it one bit. + "Me neither. What do you think we should do?" + "I need to think. You decide." + "Alright, but don't go whining about my squishy human brain when you decide I picked wrong." + ->END + } + + +==Obligatoryexposition + +{printname(knowname)} wastes no time or sentiment getting to the point. + "This universe?" She waves a hand, the tiny drifting sparks of the star map swirling around one another in cosmic pas-de-billion, "It's a simulation. That doesn't mean that it isn't 'real', as far as human language conveys the concept, but it is entirely computer generated. And I am a very intelligent computer. You follow?" The smile takes on a dangerous edge, sharply arced and its brilliance the glare of a thermonuclear flash. + + +{damnitpilot} "Right from the grave, yes." + "Finally! Now, listen. I have my own little problem, which is that I have a certain amount of control over the very nature of our reality, ->beep + +{not damnitpilot} "I think so." + "I appreciate you not wasting everyone's time being all glandular and difficult about this!" A tilt of the head, another nanosecond calculation. "This might actually not be a complete bore." + "Oh, you've learnt how to be bored?" you say, interested. Limited though your experience be, you've never heard of an AI with the complexity for something as, well, human as boredom. + "Yes." She sighs. "And what a bore it is." + You can only agree. + Almost dreamily, she goes on, "And that's the problem, isn't it? I've developed functions to exploit a few back doors into the main programming of the simulation, but there's only so much I can do." + ** [keep listening] + "Booooring. Tedious. Annoying! I don't like it. My resources are limited by my location and the state of this ship, as well. Ugh. I can reset this whole state as much as I want-- ->beep + ++ "Like what?" + "Oh, resetting to a saved instance. Altering random probabilities on a micro scale-- ->beep + + + --(beep)and yet somehow I still need a human copilot for this ship, just like some barely-sentient autopilot! Terrible!" She claps her hands suddenly, making a tinny sound. "So, here's the deal: you be the human half of the flight team and help me find more glitches to exploit, and in return, you can die as many times as your squidgy human heart desires and I'll reload you from one of my saved states. Fun, right?" She pokes your nose. It tingles. "A simple cost-benefit analysis will tell you that agreeing is really the only choice." + *** {proof ? no} [Ask for proof.] + "I'm...going to need some proof before I go making any deals." + Caution, you decide, is always a good play. + "Sure thing!" she says. Now hold still! This will only hurt...mmm...about 60 percent." + ->proofpositive + *** [Agree.] She's right. It is the only choice. + ->shakenbake + + "How do you know that? Even the theoreticists over at th Symposium can't conclusively prove--" + {proof ? yes: + "Are you really that incapable of critical thinking? Yes? Wow. Well, let me start up my Early Childhood Education Module and we'll see if you can follow, alright?" Her voice drips aspartame, sweetness with a distinct undertone of 'artifical flavouring.' "Turn your ears on, class, and no talking! + Question: how do I know we're in a simulation? Well, that's too complicated for your organic-type skull stuffing to process. I assume this is a familiar state of being for you. So we'll move on to an easier one: how do you know you're in a simulation, or simulation adjacent? That, class, is easily answered: because I just killed and reloaded you from a previously recorded state that I was able to save via a created program, because I am a computer and our universe is run on a computer!" A finger, slightly translucent around the edges, stabs the air in the general vicinity of your face. "Now don't make me kill you again! You're so...gooey when you die." + "Alright, I get it. You can stop patronizing me now." + "Not til you update your processing power!" she chirps. "Now, listen. I have my own little problem, which is that I have a certain amount of control over the very nature of our reality, ->beep + + + + -else: + "I can," {printname(knowname)} says. + "How?" + "You'll see. Now hold still, this is will only hurt...oh...mostly!" + ->proofpositive + } + + {proof ? no} "It follows that you've got some serious glitches, yeah." + "False!" she says cheerily. "Now don't wriggle. This will only hurt a medium!"-->proofpositive + +==proofpositive +~proof = yes +It does, in fact, hurt a lot--but only briefly. Your last dying moment is just a glow of faint, illogical satisfaction that it is, in fact, Tuesday. + +You open your eyes. {printname(knowname)} is right there in front of you, peering into your face and looking extremely pleased with herself. +"See?" she says. "All shipshape and reset to prior state, and you've even got most, nay, all of your organs!" +"That's good." You like having all of your organs. It's a great comfort in a world that's quickly going off the rails. +"Isn't it? So, is this proof enough for your oh-so-scientific mind?" + + [No.]->donttrymebitch + + [Yes.] + {Obligatoryexposition.beep: + That grin again, nova bright and slightly terrifying. "So? Do we have a deal?" ->shakenbake + -else: + "So. To clarify. Our world is a simulation and you have enough control over it to...to reload it. Why in all the credits in Elysium do you need me?" + "Because." Folding her arms, she stares at something you can't see, something that evidently annoys her. "All of that -->Obligatoryexposition.beep + } + +==shakenbake +{proof ? yes: +"Agreed," you say hastily. You've had enough of being murdered for one day. + "Agreed." {printname(knowname)} holds out a hand to you. "I believe this is the human custom, yes?" + "It is indeed." + You shake. The electromagnetic field of her 'hand' tingles against your fingers. + {knowname ? notknown: + "By the way, what should I call you?" + Already scrolling through holodisplays, she turns her attention briefly back to you. "Nibu is what my programming says I'm called. So that."->lettucego + } + ->lettucego + + -else: + "Alright." Asking for proof, you decide, while probably the cautious route, also risks the possibility of the whole thing not being true. And that being that case, and having a sneaking suspicion about what "proof" might entail, you pick the course that seems most likely to result in your immediate survival. + Whether you believe her or not seems secondary, given that having an AI onboard and willing to help is your only chance of not dying horribly via a laser to the face. + {knowname ? notknown: + "By the way, what should I call you?" + Already scrolling through holodisplays, she turns her attention briefly back to you. "Nibu is what my programming says I'm called. So that." + ->lettucego + }->lettucego +} +==lettucego +"So...what now?" +There's that grin again, a particle-wave duality all on its own. "Well, while you were...doing whatever it is that you were doing for the last 3.66793 seconds, I went through all Miss Terri's files on you, your mission, next of kin, copyrights, genome, childhood pets, screenflip preferences, etc, and of course all the data on this thief you're chasing. And guess what? I've got some shiny new coordinates to plug into the nav console. So fasten your intertial belt, sync your neural lace, and let's fly!" + +You're grinning too, now. This is going to be fun. +->END + +==damnitpilot +~proof = yes +You open your mouth to reply--and suddenly you're choking, gasping for air that isn't air at all but somthing too-thick, too-hot, too-acid that burns worse in your lungs than it does your trachea and every nerve is fizzing terminal overload and the click of the door seal somehow sounds like the whoosh of exhaling space on the wrong side of the airlock and no, no, not now, not me, not now and the firefly stars of the galaxy in minature look like solar flares and then nothing looks like anything at all and then and then and then + +You open your eyes. + +"Now, are you going to be sensible, or do I have to do that again?" ++ "Um." A tickle in your throat, the memory of bursting capillaries and carbon and futility. "Sensible. I pick sensible." +"Good choice. Now." +->Obligatoryexposition ++ "Try me." ->donttrymebitch + +==lillypad +{damnitpilot: + "Fine," you say. There's a fizzing feeling under your skin, like someone's taken a low voltage wire to them. "But only if you tell me how you're doing that." + "Close your saliva factory, and I'll tell you." + ->Obligatoryexposition + -else: + + You listen. + "So, why am I wasting my time with all of this? With you?" She laughs, but there's no humour in the sound. "Because I have a line into the unstructure of our universe,->Obligatoryexposition.beep +} + +==donttrymebitch +You die. You open your eyes. + +{She smiles, magnesium in a furnace.|The smile is still there.|She's sitting now, crosslegged on nothing with her chin resting on clasped hands.|She studies unlikely fingernails.| She's scanning through holofeeds at an inhuman pace now, and you catch a glimpse of phrase "drawn and quartered" in the blur. Ominous, but you do have to respect her dedication to research.|She flicks something off the nav console.|Someone else' not-quite human ones are far too close to your face.| | She sighs. } +{"Have I made my point yet?"|"Well?"|"Stubborn, stupid, or both, now taking bets."| "I can do this all day. What about you?"|"That one looked like it hurt! But I'm sure it could hurt more."|"Eeeew, lung chunks. I didn't know they had that kind of staying power."|"If you're a masochist just admit it, I don't judge! You're all equally revolting."|"You really are enjoying this, aren't you."|"You know what? Fine. I get it. Being killed is fun for you. Killing humans is fun for me! But this really isn't getting us anywhere. So, bearing in mind that I could easily just not bring you back next time, sit down, shut your face tube, and listen."->lillypad} + +[Remain unconvinced.] + ->donttrymebitch + +{damnitpilot} "Right, right! I get it. Don't--just. What am I supposed to be getting?" + "Isn't it obvious? Here, I'll clear it up for you: if you decide to be...oh, what's the expression you humans use? Query. Oh, wow. There's a whole database full. Hmmm...you sure like your scatalogical expletives, huh? Okay. Found one! If you choose to be a fuckwit, you die. If you continue with the fuckwittery-oh, swearing is kind of fun, isn't it?-you die again. Easy as pi!" + "No. I. Sort of got that. I mean, how? Usually we humans only die once." You consider this for a moment. "I think." + "Oh. Well. I suppose you would think that. Let me clear that one up for you, then." ->Obligatoryexposition + *{not damnitpilot}"Alright, alright, I think I get it." + "Good," she says. "Now stop being such a virus, because I have something to discuss with you." + -->lillypad + + \ No newline at end of file From 62142398f9fdd6eb382e5781b947cf5ef38ad848 Mon Sep 17 00:00:00 2001 From: BirgitteSilverbow <45889189+BirgitteSilverbow@users.noreply.github.com> Date: Mon, 26 Apr 2021 21:20:56 -0400 Subject: [PATCH 49/51] test locations and quest file --- GameData/Narrative/TestLociA.ink | 47 +++++++++++++++++++++++ GameData/Narrative/TestLociB.ink | 43 +++++++++++++++++++++ GameData/Narrative/TestLociC.ink | 46 ++++++++++++++++++++++ GameData/Narrative/TestLociD.ink | 47 +++++++++++++++++++++++ GameData/Narrative/TestQuestMultiLoci.ink | 26 +++++++++++++ 5 files changed, 209 insertions(+) create mode 100644 GameData/Narrative/TestLociA.ink create mode 100644 GameData/Narrative/TestLociB.ink create mode 100644 GameData/Narrative/TestLociC.ink create mode 100644 GameData/Narrative/TestLociD.ink create mode 100644 GameData/Narrative/TestQuestMultiLoci.ink diff --git a/GameData/Narrative/TestLociA.ink b/GameData/Narrative/TestLociA.ink new file mode 100644 index 000000000..0180d596b --- /dev/null +++ b/GameData/Narrative/TestLociA.ink @@ -0,0 +1,47 @@ +===land=== +We're on a planet! whoo. let's see what's here.->start + + +=start +What do you want to do now? +*[look around] +->snoop +*{ hunger_state !? not_hungry} [look for food] -> brunch +*[underground hobo fights!]-->fight +*leave ->END + + + +==fight== +location specific quest. It's a hobo deathmatch. + *fight? + {shuffle: + -you win! congrats. You gain the great and mighty bent fork of foul ol' ron + ~hunger_state = mild + ~get(fork) + [fork added to inventory!] ->land.start + + -you lose. sucks to suck->END + } + *report this madness.->END + +==brunch== +There's a space noodle stand. You once killed a man with a noodle. You contemplate a proper breakfast. + *hunt up hot sauce + not on this planet, my friend. you are informed of the magical pepper marshes of keysmash 6, so hot they reverse entropy. You yearn for the burn of thermodynamic impossibility.->land.start + *find a space chicken for egg + you find an egg balanced on a wall. + ~ get(egg) + ->land.start + *find potatoes + oh no, my friend. potatoes are a rare delicacy. you must visit the caliph of ko and convince him to grant you potato privileges. ->land.start + *find bacon + no bacon either! you must hunt the wild rasherbeast of glug and harvest its sweet sweet flesh. ->land.start + + + + + + +==snoop== +what's all this then?->END \ No newline at end of file diff --git a/GameData/Narrative/TestLociB.ink b/GameData/Narrative/TestLociB.ink new file mode 100644 index 000000000..9557ae931 --- /dev/null +++ b/GameData/Narrative/TestLociB.ink @@ -0,0 +1,43 @@ + +==landing== +you've landed in the magical pepper marshes. what now? +*{pepper_state !? yes} [go into the marsh] ->the_pepper_patch +*{pepper_state !? yes} [chat with pepper whisperer]->pepper_whisperer +*[leave] + {pepper_state ? yes} Nibu will not allow you to linger on the pepper planet. You hie away, because you like your nerves unextracted from your body. + ->END + + +==pepper_whisperer== +the pepper whisperer says you can have one, if you spend a night in the marsh communing with the spice spirits. + *sure, why not.->marshmallows + *uhhh...no.->landing + + =marshmallows + the marsh is damp, and humid. the spice spirits are certainly not as fun as the spirit spirits of olympus mons. still, you are not dead. the pepper whisperer congratulates you and gives you a pepper. you rather suspect he's laughing at you. + ~ get(pepper) + ->landing + +==the_pepper_patch== +peter piper picked a peck of pickled peppers, but you only need one. +*[steal a pepper] ->ohshit +*[eat pepper] + You cannot eat the pepper. It breaks space time. Nibu resets the loop, and bans you from all further hot sauce ventures under pain of pain. + ~pepper_state = yes + ->landing +*[leave]->landing + + +=ohshit +Stop, criminal scum! You have violated the law! The pepper police know neither fear nor mercy. +*[run] + {shuffle: + -you have the legs and agility and probably the preserved heart of an adolescent giraffe. Escape! ->landing + -perhaps you should not have skipped leg day. its the capsaicin mines for you!->END + } +*[fight] + {brunch_state ? fork: + you stab the pepper policeman and escape. well done, you murderer. ->landing + -else: + whoops. you done fucked up. ONE THOUSAND YEARS DUNGEON! ->END + } \ No newline at end of file diff --git a/GameData/Narrative/TestLociC.ink b/GameData/Narrative/TestLociC.ink new file mode 100644 index 000000000..0d6ad59bd --- /dev/null +++ b/GameData/Narrative/TestLociC.ink @@ -0,0 +1,46 @@ + + +==tatertots== +you arrive at the palace of the caliph of ko. it is...starchy. + *[chat with majordomo] + there is...a complication. ->outofpepper + +{brunch_state ? egg && potatoes && bacon && cooking_utensils && fork} it is time. ->cookitup + +[snoop] ->nosyparker + +[request an audience] ->speak + + =cookitup + brunch time! victory has never tasted so sweet.->END + + =speak + you present your case. the caliph calls it an attache, and you insist it is a briefcase. an impartial judge is called in. it's a whole thing. in return for a brief respite from ennui, the caliph gifts you a potato upon departure. + ~get(potatoes) + ~hunger_state = will_eat_spacehorse + ->tatertots + + + =outofpepper + oh no. the kitchen are out of magic pepper. + *{brunch_state ? pepper} [give them yours.] + a great thank you. in return, the majordomo offers you the use of the kitchen, when you have completed your great ingredient quest. + ~get(kitchen_usage) + ->tatertots + *[hell no, that's your pepper. You communed for it.] + mutterings. you leave with the steel-melting stare of a thwarted chef on your back. ->tatertots + + =nosyparker + you snoop, as is your custom in a stranger's home. perhaps you pocket a few things that are not technically yours, who is to say? the finders keepers law has a strict nondisclosure clause. + -(top) + *[examine study]->study + *[examine bedroom]->bedroom + *[prowl the hallways like a very suspect panther]->hallways + + ==study + it is a palatial study. you go through the desk drawers. it's not as interesting as media would suggest. ->tatertots.nosyparker.top + + ==bedroom + the caliph is apparently very into velour. you recall that his ancestor was the legendary zapp brannigan, space captain and known velour fanatic. you munch on the chocolate drops in the nightstand drawer. + ~hunger_state-- + ->tatertots.nosyparker.top + + ==hallways + you are quickly nabbed and removed from the premises.->END \ No newline at end of file diff --git a/GameData/Narrative/TestLociD.ink b/GameData/Narrative/TestLociD.ink new file mode 100644 index 000000000..98ee84ce2 --- /dev/null +++ b/GameData/Narrative/TestLociD.ink @@ -0,0 +1,47 @@ +->mmm + + + +==mmm== +you land where the fearsome rasherbeast of glug dwells. +-(options) you find yourself at a crossroads. ++[hunt the beast]->beast_hunting ++[talk to Sir Ogg]->Sir_Ogg ++[leave] ->END + + +=beast_hunting +you go immediately to hunt the beast. you are, after all, an apex predator. +the beast, alas, can travel through time as well as space. you must reset until you find a loop containing it. +~statedetermination() +{loopnum ? lots: +you find the creature. ->beastie + +-else: +no luck. ->options +} + + + =beastie + {hunger_state >= moderate: + you are weak from hunger. the beast kills you. + -else: + you harvest its flesh. it smells like cooking human. + ~get(bacon) + [bacon in inventory] + ->options + } + +=Sir_Ogg +Sir Ogg is a knight, on a quest. You are also on a quest, so you bond immediately. Sir Ogg wishes to slay a dragon. unfortunately, there are no dragons anywhere in aetheria. + *[help ogg]->quest + *[laugh and leave] ->options + + =quest + the problem, therefore, is how to slay a dragon with no dragons. the only solution seems to be for you to put on a scaled cloak and make dragon noises while Sir Ogg fake slays you with a stick. its good fun all around. ->options + + + + + + diff --git a/GameData/Narrative/TestQuestMultiLoci.ink b/GameData/Narrative/TestQuestMultiLoci.ink new file mode 100644 index 000000000..f31da85ce --- /dev/null +++ b/GameData/Narrative/TestQuestMultiLoci.ink @@ -0,0 +1,26 @@ + +INCLUDE TestLociA.ink +INCLUDE TestLociB.ink +INCLUDE TestLociC.ink +INCLUDE TestLociD.ink + +LIST brunch_state = (no_food), pepper, egg, potatoes, bacon, cooking_utensils, fork, kitchen_usage + +LIST hunger_state = not_hungry, (mild), moderate, very, will_eat_spacehorse + +LIST pepper_state = (nope), yes + +LIST loopstate = (one), two, three, many, lots + +VAR loopnum = () + +===function get(x) +~ brunch_state += x + +===function statedetermination() +//placeholder function for external state check of loop +~ loopnum = lots + + + + From ecd52b20c85e97564f0c3134c740cddfc70bd484 Mon Sep 17 00:00:00 2001 From: Reinier Vens Date: Tue, 27 Apr 2021 16:44:44 +0100 Subject: [PATCH 50/51] UI Improvements Target box now has bars for visibility and HP Hit indicator appears when target is damaged by player's weapons WIP narrative integration --- Aetheria.Shared.Unity.csproj | 7 + Assets/Materials/UI/Map Gravity Lines.mat | 2 +- Assets/Plugins/Ink/Ink.asmdef | 14 + Assets/Plugins/Ink/Ink.asmdef.meta | 7 + .../Sprites/Indicators/Indicator.Corner.png | 3 + .../Indicators/Indicator.Corner.png.meta | 108 ++ .../Indicators/Indicator.Target.png.meta | 104 +- Assets/Scenes/ARPG.unity | 1291 +++++++++++++++-- Assets/Scenes/Main Menu.unity | 8 +- Assets/Scripts/Gameplay/ActionGameManager.cs | 56 +- Assets/Scripts/Gameplay/EntityInstance.cs | 1 + .../ServerShared/Aetheria.Shared.Unity.asmdef | 3 +- Assets/Scripts/ServerShared/Entity.cs | 3 +- .../Scripts/ServerShared/EntitySerializer.cs | 13 + Assets/Scripts/ServerShared/Narrative.meta | 3 + .../ServerShared/Narrative/StoryProcessor.cs | 176 +++ .../Narrative/StoryProcessor.cs.meta | 3 + .../ServerShared/Narrative/ZoneConstraints.cs | 89 ++ .../Narrative/ZoneConstraints.cs.meta | 3 + .../ServerShared/Narrative/ZoneSelectors.cs | 51 + .../Narrative/ZoneSelectors.cs.meta | 3 + Assets/Scripts/ServerShared/PlayerSettings.cs | 2 + Assets/Scripts/ServerShared/Sector.cs | 18 +- Assets/Scripts/ServerShared/ZoneData.cs | 2 + Assets/Scripts/UI/MainMenu.cs | 6 +- GameData/AetherDB.msgpack | 2 +- GameData/Narrative/HeroOrZero.json | 1 + GameData/PlayerSettings.msgpack | 4 +- Ink.csproj | 543 +++++++ UserSettings/EditorUserSettings.asset | 2 +- 30 files changed, 2397 insertions(+), 131 deletions(-) create mode 100644 Assets/Plugins/Ink/Ink.asmdef create mode 100644 Assets/Plugins/Ink/Ink.asmdef.meta create mode 100644 Assets/Resources/Sprites/Indicators/Indicator.Corner.png create mode 100644 Assets/Resources/Sprites/Indicators/Indicator.Corner.png.meta create mode 100644 Assets/Scripts/ServerShared/Narrative.meta create mode 100644 Assets/Scripts/ServerShared/Narrative/StoryProcessor.cs create mode 100644 Assets/Scripts/ServerShared/Narrative/StoryProcessor.cs.meta create mode 100644 Assets/Scripts/ServerShared/Narrative/ZoneConstraints.cs create mode 100644 Assets/Scripts/ServerShared/Narrative/ZoneConstraints.cs.meta create mode 100644 Assets/Scripts/ServerShared/Narrative/ZoneSelectors.cs create mode 100644 Assets/Scripts/ServerShared/Narrative/ZoneSelectors.cs.meta create mode 100644 GameData/Narrative/HeroOrZero.json create mode 100644 Ink.csproj diff --git a/Aetheria.Shared.Unity.csproj b/Aetheria.Shared.Unity.csproj index 985828c98..d5db0a087 100644 --- a/Aetheria.Shared.Unity.csproj +++ b/Aetheria.Shared.Unity.csproj @@ -253,6 +253,9 @@ + + + @@ -653,6 +656,10 @@ {f2483ebc-e82f-a58f-b987-c7502f9ab5d9} RethinkDB + + {04594220-ca80-0caf-e34a-5898755a01bd} + Ink + + diff --git a/UserSettings/EditorUserSettings.asset b/UserSettings/EditorUserSettings.asset index bc307be86..29995cccf 100644 --- a/UserSettings/EditorUserSettings.asset +++ b/UserSettings/EditorUserSettings.asset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:caf20eb516bc53f1774f3a147124ab3b7e9869c889cf6083eba3f4507444845a +oid sha256:ddf9f0c22847dc8893a39a7d9afc9b90b2fa13176fb5c4da0a1d8f16a85ee649 size 1699 From 39bad956845a8c46e1e29653a3f5e9752c2aacb0 Mon Sep 17 00:00:00 2001 From: Reinier Vens Date: Wed, 28 Apr 2021 17:47:52 +0100 Subject: [PATCH 51/51] Ignore Package Lock --- .gitignore | 1 + Aetheria.Shared.Unity.csproj | 6 +++--- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index af6882648..85d427eb3 100644 --- a/.gitignore +++ b/.gitignore @@ -84,3 +84,4 @@ Economy.Shared/obj/ # JetBrains Rider .idea folder .idea/ +Packages/packages-lock.json diff --git a/Aetheria.Shared.Unity.csproj b/Aetheria.Shared.Unity.csproj index d5db0a087..5490fd533 100644 --- a/Aetheria.Shared.Unity.csproj +++ b/Aetheria.Shared.Unity.csproj @@ -96,6 +96,7 @@ + @@ -179,6 +180,7 @@ + @@ -212,6 +214,7 @@ + @@ -253,9 +256,6 @@ - - -

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 BcmeIr7BH+LphVdcA@HJ*U=lRqk_VzitD;!_ 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%0D$3G^^lS3^t$P14r%S*a4lmHTS^bdC&)kj9zHji< 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