commit f3bf534682a799fb0d1314d1342bc5f4c5269e64 Author: discomrade Date: Sun Mar 20 22:15:45 2022 +0000 Initialize version control This commit is equal to version 0.0.2. Version 0.0.1 source code is available on archive.org diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..8ad74f7 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,2 @@ +# Normalize EOL for all files that Git considers text files. +* text=auto eol=lf diff --git a/.github/ISSUE_TEMPLATE/bug-report.md b/.github/ISSUE_TEMPLATE/bug-report.md new file mode 100644 index 0000000..a289ca8 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug-report.md @@ -0,0 +1,30 @@ +--- +name: Bug Report +about: Report a bug with the TPS demo. +title: '' +labels: bug +assignees: '' + +--- + + + +**OS/device including version:** + + + +**Issue description:** + + + +**Screenshots of issue:** + diff --git a/.github/ISSUE_TEMPLATE/enhancement-request.md b/.github/ISSUE_TEMPLATE/enhancement-request.md new file mode 100644 index 0000000..346bb63 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/enhancement-request.md @@ -0,0 +1,13 @@ +--- +name: Enhancement Request +about: Request improvements to the TPS demo. +title: '' +labels: enhancement +assignees: '' + +--- + + diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..1230149 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,6 @@ +version: 2 +updates: + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "daily" diff --git a/.github/workflows/static_checks.yml b/.github/workflows/static_checks.yml new file mode 100644 index 0000000..b8e2d6c --- /dev/null +++ b/.github/workflows/static_checks.yml @@ -0,0 +1,19 @@ +name: Static Checks +on: [push, pull_request] + +jobs: + format: + name: File formatting (file_format.sh) + runs-on: ubuntu-20.04 + steps: + - name: Checkout + uses: actions/checkout@v2 + + - name: Install dependencies + run: | + sudo apt-get update -qq + sudo apt-get install -qq dos2unix recode + + - name: File formatting checks (file_format.sh) + run: | + bash ./file_format.sh diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a6bd447 --- /dev/null +++ b/.gitignore @@ -0,0 +1,22 @@ +# Godot 4+ specific ignores +.godot/ + +# Godot-specific ignores +.import/ +export.cfg +export_presets.cfg + +# Imported translations (automatically generated from CSV files) +*.translation + +# Mono-specific ignores +.mono/ +data_*/ +mono_crash.*.json + +# System/tool-specific ignores +.directory +*~ + +# Blender versioning +*.blend[0-9]* diff --git a/addons/godot-git-plugin/LICENSE b/addons/godot-git-plugin/LICENSE new file mode 100644 index 0000000..b559e80 --- /dev/null +++ b/addons/godot-git-plugin/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2016-2022 The Godot Engine community + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/addons/godot-git-plugin/THIRDPARTY.md b/addons/godot-git-plugin/THIRDPARTY.md new file mode 100644 index 0000000..79218e3 --- /dev/null +++ b/addons/godot-git-plugin/THIRDPARTY.md @@ -0,0 +1,1062 @@ +# Third-Party Notices + +The Godot Git Plugin source code uses the following third-party source code: + +1. godotengine/godot-cpp - MIT License - https://github.com/godotengine/godot-cpp/tree/99e9dd1d9396ed3af40678263b509078e5265ffc +2. libgit2/libgit2 - GPLv2 with a special Linking Exception - https://github.com/libgit2/libgit2/commit/7d3c7057f0e774aecd6fc4ef8333e69e5c4873e0 + +## License Texts + +### godotengine/godot-cpp + +``` +# MIT License + +Copyright (c) 2017-2021 Godot Engine contributors. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +``` + +### libgit2/libgit2 + +``` + libgit2 is Copyright (C) the libgit2 contributors, + unless otherwise stated. See the AUTHORS file for details. + + Note that the only valid version of the GPL as far as this project + is concerned is _this_ particular version of the license (ie v2, not + v2.2 or v3.x or whatever), unless explicitly otherwise stated. + +---------------------------------------------------------------------- + + LINKING EXCEPTION + + In addition to the permissions in the GNU General Public License, + the authors give you unlimited permission to link the compiled + version of this library into combinations with other programs, + and to distribute those combinations without any restriction + coming from the use of this file. (The General Public License + restrictions do apply in other respects; for example, they cover + modification of the file, and distribution when not linked into + a combined executable.) + +---------------------------------------------------------------------- + + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + 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 +this service 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. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute 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 and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +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 +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the 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 a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, 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. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE 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. + + 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 +convey 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 General Public License as published by + the Free Software Foundation; either version 2 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. + +---------------------------------------------------------------------- + +The bundled ZLib code is licensed under the ZLib license: + +Copyright (C) 1995-2010 Jean-loup Gailly and Mark Adler + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. + + Jean-loup Gailly Mark Adler + jloup@gzip.org madler@alumni.caltech.edu + +---------------------------------------------------------------------- + +The Clar framework is licensed under the ISC license: + +Copyright (c) 2011-2015 Vicent Marti + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +---------------------------------------------------------------------- + +The regex library (deps/regex/) is licensed under the GNU LGPL +(available at the end of this file). + +Definitions for data structures and routines for the regular +expression library. + +Copyright (C) 1985,1989-93,1995-98,2000,2001,2002,2003,2005,2006,2008 +Free Software Foundation, Inc. +This file is part of the GNU C Library. + +The GNU C Library is free software; you can redistribute it and/or +modify it under the terms of the GNU Lesser General Public +License as published by the Free Software Foundation; either +version 2.1 of the License, or (at your option) any later version. + +The GNU C Library 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 +Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with the GNU C Library; if not, write to the Free +Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301 USA. + +---------------------------------------------------------------------- + +The bundled winhttp definition files (deps/winhttp/) are licensed under +the GNU LGPL (available at the end of this file). + +Copyright (C) 2007 Francois Gouget + +This library is free software; you can redistribute it and/or +modify it under the terms of the GNU Lesser General Public +License as published by the Free Software Foundation; either +version 2.1 of the License, or (at your option) any later version. + +This library 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 +Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with this library; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + +---------------------------------------------------------------------- + + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +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 this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +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 +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser 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 Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "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 +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY 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 +LIBRARY (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 LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey 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 library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! + +---------------------------------------------------------------------- + +The bundled SHA1 collision detection code is licensed under the MIT license: + +MIT License + +Copyright (c) 2017: + Marc Stevens + Cryptology Group + Centrum Wiskunde & Informatica + P.O. Box 94079, 1090 GB Amsterdam, Netherlands + marc@marc-stevens.nl + + Dan Shumow + Microsoft Research + danshu@microsoft.com + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +---------------------------------------------------------------------- + +The bundled wildmatch code is licensed under the BSD license: + +Copyright Rich Salz. +All rights reserved. + +Redistribution and use in any form are permitted provided that the +following restrictions are are met: + +1. Source distributions must retain this entire copyright notice + and comment. +2. Binary distributions must include the acknowledgement ``This + product includes software developed by Rich Salz'' in the + documentation or other materials provided with the + distribution. This must not be represented as an endorsement + or promotion without specific prior written permission. +3. The origin of this software must not be misrepresented, either + by explicit claim or by omission. Credits must appear in the + source and documentation. +4. Altered versions must be plainly marked as such in the source + and documentation and must not be misrepresented as being the + original software. + +THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED +WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. + +``` diff --git a/addons/godot-git-plugin/git_api.gdnlib b/addons/godot-git-plugin/git_api.gdnlib new file mode 100644 index 0000000..18a34ed --- /dev/null +++ b/addons/godot-git-plugin/git_api.gdnlib @@ -0,0 +1,18 @@ +[general] + +singleton=true +load_once=true +symbol_prefix="godot_" +reloadable=false + +[entry] + +OSX.64="res://addons/godot-git-plugin/osx/release/libgitapi.dylib" +Windows.64="res://addons/godot-git-plugin/win64/release/libgitapi.dll" +X11.64="res://addons/godot-git-plugin/x11/release/libgitapi.so" + +[dependencies] + +OSX.64=[ ] +Windows.64=[ ] +X11.64=[ ] diff --git a/addons/godot-git-plugin/git_api.gdns b/addons/godot-git-plugin/git_api.gdns new file mode 100644 index 0000000..eac0d86 --- /dev/null +++ b/addons/godot-git-plugin/git_api.gdns @@ -0,0 +1,9 @@ +[gd_resource type="NativeScript" load_steps=2 format=2] + +[ext_resource path="res://addons/godot-git-plugin/git_api.gdnlib" type="GDNativeLibrary" id=1] + +[resource] +resource_name = "GitAPI" +class_name = "GitAPI" +library = ExtResource( 1 ) +script_class_name = "GitAPI" diff --git a/addons/godot-git-plugin/osx/release/libgitapi.dylib b/addons/godot-git-plugin/osx/release/libgitapi.dylib new file mode 100644 index 0000000..8bd2ab2 Binary files /dev/null and b/addons/godot-git-plugin/osx/release/libgitapi.dylib differ diff --git a/addons/godot-git-plugin/plugin.cfg b/addons/godot-git-plugin/plugin.cfg new file mode 100644 index 0000000..41694fb --- /dev/null +++ b/addons/godot-git-plugin/plugin.cfg @@ -0,0 +1,7 @@ +[plugin] + +name="Godot Git Plugin" +description="This plugin lets you interact with Git without leaving the Godot editor. More information can be found at https://github.com/godotengine/godot-git-plugin/wiki" +author="ChronicallySerious" +version="v1.2.3" +script="git_api.gdns" diff --git a/addons/godot-git-plugin/win64/release/libgitapi.dll b/addons/godot-git-plugin/win64/release/libgitapi.dll new file mode 100644 index 0000000..4318383 Binary files /dev/null and b/addons/godot-git-plugin/win64/release/libgitapi.dll differ diff --git a/addons/godot-git-plugin/win64/release/libgitapi.exp b/addons/godot-git-plugin/win64/release/libgitapi.exp new file mode 100644 index 0000000..527b4ae Binary files /dev/null and b/addons/godot-git-plugin/win64/release/libgitapi.exp differ diff --git a/addons/godot-git-plugin/win64/release/libgitapi.lib b/addons/godot-git-plugin/win64/release/libgitapi.lib new file mode 100644 index 0000000..ea56761 Binary files /dev/null and b/addons/godot-git-plugin/win64/release/libgitapi.lib differ diff --git a/addons/godot-git-plugin/x11/release/libgitapi.so b/addons/godot-git-plugin/x11/release/libgitapi.so new file mode 100644 index 0000000..30876b5 Binary files /dev/null and b/addons/godot-git-plugin/x11/release/libgitapi.so differ diff --git a/bin/.gdignore b/bin/.gdignore new file mode 100644 index 0000000..e69de29 diff --git a/default_bus_layout.tres b/default_bus_layout.tres new file mode 100644 index 0000000..ea8f5ae --- /dev/null +++ b/default_bus_layout.tres @@ -0,0 +1,32 @@ +[gd_resource type="AudioBusLayout" load_steps=3 format=2] + +[sub_resource type="AudioEffectReverb" id=1] +resource_name = "Reverb" +room_size = 0.98 +hipass = 0.42 +wet = 0.29 + +[sub_resource type="AudioEffectReverb" id=2] +resource_name = "Reverb" +room_size = 0.74 +hipass = 0.14 +wet = 0.56 + +[resource] +bus/0/volume_db = -10.0 +bus/1/name = "Outside" +bus/1/solo = false +bus/1/mute = false +bus/1/bypass_fx = false +bus/1/volume_db = 0.0 +bus/1/send = "Master" +bus/1/effect/0/effect = SubResource( 1 ) +bus/1/effect/0/enabled = true +bus/2/name = "Reactor" +bus/2/solo = false +bus/2/mute = false +bus/2/bypass_fx = false +bus/2/volume_db = 0.0 +bus/2/send = "Master" +bus/2/effect/0/effect = SubResource( 2 ) +bus/2/effect/0/enabled = true diff --git a/default_env.tres b/default_env.tres new file mode 100644 index 0000000..20207a4 --- /dev/null +++ b/default_env.tres @@ -0,0 +1,7 @@ +[gd_resource type="Environment" load_steps=2 format=2] + +[sub_resource type="ProceduralSky" id=1] + +[resource] +background_mode = 2 +background_sky = SubResource( 1 ) diff --git a/effects_shared/animu.shader b/effects_shared/animu.shader new file mode 100644 index 0000000..ad32ccd --- /dev/null +++ b/effects_shared/animu.shader @@ -0,0 +1,227 @@ +// AnimuEyes - procedurally generated anime eyes shader +// add an extra shader pass to your character model and set uvArea to the uv range where you want +// the eyes to appear. xy are the middle point of the rectangle, zw are width/height. +// _if you have other transparent materials, make sure to adjust the render priority_ +// adjust the depthOffset if you don't want them to render through hair or if rendering through +// hair is wonky +// godot version tested: 3.2.2 stable +// license: public domain (UNLICENSE) + +shader_type spatial; +render_mode unshaded; + +// these are the uniforms that should be dynamically changed for facial expressions and such +uniform vec3 lookAt = vec3(0, 0, 100000); // target point relative to eyes +uniform vec4 maxLook = vec4(-.4, -.2, .4, .2); // eye movement range +uniform vec2 lookSens = vec2(.2, .2); // adjust until eyes match up with the look target +uniform float irisScale : hint_range(.1, 1.5) = 1; +uniform float eyebrowOffset = 0; +uniform float eyebrowRotationOffsetDegrees : hint_range(-180, 180) = 0; +uniform float open : hint_range(0, 1) = 1; // might cause some artifacts, mainly used for blinking + +// everything else is only recommended to be used to define the base eye aesthetic +uniform vec4 uvArea = vec4(.5, .5, 1, 1); +uniform float position = .2; +uniform float dist = .2; +uniform float depthOffset = .01; + +uniform vec4 color : hint_color = vec4(1, .3, 0, 1); +uniform vec4 whiteColor : hint_color = vec4(1, 1, 1, 1); +uniform vec4 rimColor : hint_color = vec4(1, 1, 1, 1); +uniform vec4 eyebrowColor : hint_color = vec4(0, 0, 0, 1); +uniform vec4 border1Color : hint_color = vec4(0, 0, 0, 1); +uniform vec4 border2Color : hint_color = vec4(0, 0, 0, 1); + +uniform float shapeSquare : hint_range(0, 1) = .554; +uniform float irisSquare : hint_range(0, 1) = .219; +uniform float border1Square : hint_range(0, 1) = .5; +uniform float border2Square : hint_range(0, 1) = 1; +uniform float eyebrowSquare : hint_range(0, 1) = .5; + +uniform vec4 topEllipse = vec4(.444, .598, .5, .4); +uniform vec4 bottomEllipse = vec4(.49, .297, .3, .33); +uniform vec4 irisEllipse = vec4(.53, .35, .17, .236); +uniform vec4 pupilEllipse = vec4(0, .02, .08, .1); + +uniform float eyebrowPosition = 0; +uniform vec4 eyebrow = vec4(.037, -.369, 1.1, 1.1); +uniform vec4 eyebrowFalloffEllipse = vec4(.5, -.315, .028, .039); +uniform float eyebrowFalloff : hint_range(0, 1) = .5; +uniform float eyebrowRotationDegrees : hint_range(-180, 180) = -10; +uniform float eyebrowThickness : hint_range(0, .1) = .025; + +uniform vec4 border1 = vec4(.025, .016, 1.1, 1.1); +uniform vec4 border1FalloffEllipse = vec4(.222, -.03, .3, .2); +uniform float border1Falloff : hint_range(0, 1) = .3; +uniform float border1RotationDegrees : hint_range(-180, 180) = -3; +uniform float border1Thickness : hint_range(0, .1) = .025; + +uniform vec4 border2 = vec4(-.043, .057, .916, 1); +uniform vec4 border2FalloffEllipse = vec4(.5, .861, .03, .049); +uniform float border2Falloff : hint_range(0, 1) = .2; +uniform float border2RotationDegrees : hint_range(-180, 180) = 0; +uniform float border2Thickness : hint_range(0, .1) = .008; + +uniform float sharpness : hint_range(100, 1000) = 200; +uniform vec2 scale = vec2(.3, .3); +uniform float attenuation : hint_range(0, 1) = .3; +uniform float irisAttenuation : hint_range(0, 1) = .1; +uniform vec4 highlightEllipse = vec4(.608, .6, .4, .3); +uniform vec2 irisGradientOffset = vec2(0, -.01); +uniform vec4 rim1Ellipse = vec4(0.128, -0.034, .067, .043); +uniform float rim1RotationDegrees : hint_range(-180, 180) = 10; +uniform vec4 rim2Ellipse = vec4(-0.135, 0.057, .05, .03); +uniform float rim2RotationDegrees : hint_range(-180, 180) = 10; + +float ellipse(vec2 c, vec2 r, vec2 uv) { + // this is essentialy doing a circle sdf and then distorting the space by the aspect ratio + float smallDim = min(r.x, r.y); + return length((c - uv) / r) * smallDim - smallDim; +} + +float ellipse4(vec4 cr, vec2 uv) { + return ellipse(cr.xy, cr.zw, uv); +} + +float rect(vec2 c, vec2 r, vec2 uv) { + return length(max(abs(uv - c) - r, 0)); +} + +float rect4(vec4 cr, vec2 uv) { + return rect(cr.xy, cr.zw, uv); +} + +// this gives a smooth transition when doing min distance to combine shapes +float smin(float a, float b, float k) { + float h = clamp(0.5 + 0.5 * (b - a) / k, 0., 1.); + return mix(b, a, h) - k * h * (1.0 - h); +} + +float squaredEllipse(vec4 cr, vec2 uv, float squareAmt) { + float e = ellipse4(cr, uv); + float r = rect4(vec4(cr.xy, cr.zw * squareAmt), uv); + return smin(e, r, .3); +} + +float hardEdge(float d) { + return 1.0 - smoothstep(0, 1.0 / sharpness, d); +} + +mat2 rotateMat(float deg) { + float rad = radians(deg); + float s = sin(rad), c = cos(rad); + return mat2(vec2(c, -s), vec2(s, c)); +} + +vec2 rotate(vec2 uv, float deg, vec2 origin) { + return (uv - origin) * rotateMat(deg) + origin; +} + +vec4 openDelta(float openAmt) { + return -(bottomEllipse - topEllipse) * vec4(0, 1. - openAmt, 0, 0); +} + +float shape(vec2 uv, float square, float openAmt) { + float dTop = squaredEllipse(topEllipse + openDelta(openAmt), uv, square); + float dBot = squaredEllipse(bottomEllipse, uv, square); + return max(dTop, dBot); +} + +float border(vec2 uv, float ds, vec4 posScale, float rotDeg, vec4 fallEl, float thick, + float square, float fall, float openAmt) +{ + // arbitrary small scaling delta to make stuff look better from far away + float epsilon = ds * .00011; + vec2 borderUv = rotate((uv + posScale.xy) / posScale.zw, rotDeg, vec2(.5, .5)); + float dShape = shape(borderUv, square, openAmt); // shape sdf offset by border offset + float d = bottomEllipse.y - topEllipse.y; + float dFalloff = ellipse4(fallEl + openDelta(openAmt), borderUv); + float falloffAmt = 1.0 - smoothstep(0, fall, dFalloff); + float thicc = thick * falloffAmt; + float dBorder = abs(dShape - thick * falloffAmt) - thicc; // always touching edge of shape + float borderAmt = 1.0 - hardEdge(falloffAmt); + return hardEdge(dBorder / ds + epsilon) * borderAmt; +} + +float brow(vec2 uv, float dScale) { + float r = eyebrowRotationDegrees + eyebrowRotationOffsetDegrees; + return border(uv, dScale, eyebrow, r, eyebrowFalloffEllipse, + eyebrowThickness, eyebrowSquare, eyebrowFalloff, 1); +} + +vec4 eye(float flipRims, vec2 uv, vec2 look, float dScale) { + float epsilon = dScale * .00011; + float shapeEdge = hardEdge(shape(uv, shapeSquare, open) / dScale); + float border1Edge = border(uv, dScale, border1, border1RotationDegrees, border1FalloffEllipse, + border1Thickness, border1Square, border1Falloff, open); + float border2Edge = border(uv, dScale, border2, border2RotationDegrees, border2FalloffEllipse, + border2Thickness, border2Square, border2Falloff, open); + vec4 irisE = irisEllipse; + irisE.xy += look; + irisE.zw *= irisScale; + float dIris = squaredEllipse(irisE, uv, irisSquare) / dScale; + float dIrisGradient = squaredEllipse(irisE, uv + irisGradientOffset, irisSquare); + float irisEdge = hardEdge(dIris + epsilon * .5); + float irisGradient = (1.0 - smoothstep(-.001, -.03, dIrisGradient)) * irisEdge; + vec4 pupilE = pupilEllipse; + pupilE.xy += irisE.xy; + pupilE.zw *= irisScale; + float dPupil = ellipse4(pupilE, uv); + float pupilEdge = 1.0 - smoothstep(0, .035, dPupil); + float highlight = ellipse4(highlightEllipse, uv); + float highlightEdge = smoothstep(0, .05, highlight); + vec4 r1 = rim1Ellipse; + vec4 r2 = rim2Ellipse; + r1.x *= flipRims; + r2.x *= flipRims; + r1.xy += irisE.xy; + r2.xy += irisE.xy; + float dRim1 = ellipse4(r1, rotate(uv, rim1RotationDegrees * flipRims, r1.xy)); + float rim1Edge = hardEdge(dRim1 / dScale + epsilon); + float dRim2 = ellipse4(r2, rotate(uv, rim2RotationDegrees * flipRims, r2.xy)); + float rim2Edge = hardEdge(dRim2 / dScale + epsilon); + vec4 col = vec4(0, 0, 0, 0); + col = mix(col, whiteColor, shapeEdge); + col = mix(col, color, irisEdge); + col = mix(col, color * irisAttenuation, pupilEdge); + col = mix(col, col * irisAttenuation, irisGradient); + col = mix(col, col * attenuation, highlightEdge); + col = mix(col, rimColor, max(rim1Edge, rim2Edge)); + col = mix(col, border1Color, border1Edge); + col = mix(col, border2Color, border2Edge); + col.a = max(max(shapeEdge, border1Edge), border2Edge); + return col; +} + +// maps uvs that fall into area (x, y, width, height) to 0.0-1.0 - this way functions don't need +// to be aware of position and scale +vec2 toLocal(vec2 uv, vec4 area) { + return (uv - area.xy) / area.zw + .5; +} + +void fragment() { + // this is used to scale smoothsteps so it's equally smooth regardless of distance. + // if I didn't do this, it would become blurry close-up and aliased from afar + float dScale = abs(VERTEX.z) / scale.x; + vec2 uv = toLocal(UV, uvArea); + uv = (uv - .5) / vec2(uvArea.z / uvArea.w, 1) + .5; // adjust for uvArea aspect ratio + dScale /= uvArea.z; + vec3 look = normalize(lookAt); + look.xy *= lookSens; + look.xy = clamp(look.xy, maxLook.xy, maxLook.zw); + look.x *= -1.; + vec4 right = eye(1, toLocal(uv, vec4(.5 - dist, position, scale.x, scale.y)), look.xy, dScale); + look.x *= -1.; + vec4 left = eye(-1, toLocal(uv, vec4(.5 + dist, position, -scale.x, scale.y)), look.xy, dScale); + float browpos = eyebrowOffset + eyebrowPosition; + float browR = brow(toLocal(uv, vec4(.5 - dist, browpos, scale.x, scale.y)), dScale); + float browL = brow(toLocal(uv, vec4(.5 + dist, browpos, -scale.x, scale.y)), dScale); + vec4 col = mix(right, left, left.a); + col = mix(col, eyebrowColor, max(browR, browL)); + ALPHA = col.a; + ALBEDO = col.rgb; + // adjust depth to render through hair + vec4 fragpos = FRAGCOORD * INV_PROJECTION_MATRIX; + fragpos.z += depthOffset; // view space Z + DEPTH = (fragpos * PROJECTION_MATRIX).z; +} diff --git a/effects_shared/bullet/BlastMesh.glb b/effects_shared/bullet/BlastMesh.glb new file mode 100644 index 0000000..acf985f Binary files /dev/null and b/effects_shared/bullet/BlastMesh.glb differ diff --git a/effects_shared/bullet/BlastMesh.glb.import b/effects_shared/bullet/BlastMesh.glb.import new file mode 100644 index 0000000..a1423b0 --- /dev/null +++ b/effects_shared/bullet/BlastMesh.glb.import @@ -0,0 +1,1065 @@ +[remap] + +importer="scene" +type="PackedScene" +path="res://.import/BlastMesh.glb-b920556d00e26e649010b0e5deb05823.scn" + +[deps] + +source_file="res://effects_shared/bullet/BlastMesh.glb" +dest_files=[ "res://.import/BlastMesh.glb-b920556d00e26e649010b0e5deb05823.scn" ] + +[params] + +nodes/root_type="Spatial" +nodes/root_name="Scene Root" +nodes/root_scale=1.0 +nodes/custom_script="" +nodes/storage=0 +nodes/use_legacy_names=false +materials/location=1 +materials/storage=0 +materials/keep_on_reimport=true +meshes/octahedral_compression=true +meshes/compress=true +meshes/ensure_tangents=true +meshes/storage=1 +meshes/light_baking=0 +meshes/lightmap_texel_size=0.1 +skins/use_named_skins=true +external_files/store_in_subdir=false +animation/import=true +animation/fps=15 +animation/filter_script="" +animation/storage=false +animation/keep_custom_tracks=false +animation/optimizer/enabled=true +animation/optimizer/max_linear_error=0.05 +animation/optimizer/max_angular_error=0.01 +animation/optimizer/max_angle=22 +animation/optimizer/remove_unused_tracks=true +animation/clips/amount=0 +animation/clip_1/name="" +animation/clip_1/start_frame=0 +animation/clip_1/end_frame=0 +animation/clip_1/loops=false +animation/clip_2/name="" +animation/clip_2/start_frame=0 +animation/clip_2/end_frame=0 +animation/clip_2/loops=false +animation/clip_3/name="" +animation/clip_3/start_frame=0 +animation/clip_3/end_frame=0 +animation/clip_3/loops=false +animation/clip_4/name="" +animation/clip_4/start_frame=0 +animation/clip_4/end_frame=0 +animation/clip_4/loops=false +animation/clip_5/name="" +animation/clip_5/start_frame=0 +animation/clip_5/end_frame=0 +animation/clip_5/loops=false +animation/clip_6/name="" +animation/clip_6/start_frame=0 +animation/clip_6/end_frame=0 +animation/clip_6/loops=false +animation/clip_7/name="" +animation/clip_7/start_frame=0 +animation/clip_7/end_frame=0 +animation/clip_7/loops=false +animation/clip_8/name="" +animation/clip_8/start_frame=0 +animation/clip_8/end_frame=0 +animation/clip_8/loops=false +animation/clip_9/name="" +animation/clip_9/start_frame=0 +animation/clip_9/end_frame=0 +animation/clip_9/loops=false +animation/clip_10/name="" +animation/clip_10/start_frame=0 +animation/clip_10/end_frame=0 +animation/clip_10/loops=false +animation/clip_11/name="" +animation/clip_11/start_frame=0 +animation/clip_11/end_frame=0 +animation/clip_11/loops=false +animation/clip_12/name="" +animation/clip_12/start_frame=0 +animation/clip_12/end_frame=0 +animation/clip_12/loops=false +animation/clip_13/name="" +animation/clip_13/start_frame=0 +animation/clip_13/end_frame=0 +animation/clip_13/loops=false +animation/clip_14/name="" +animation/clip_14/start_frame=0 +animation/clip_14/end_frame=0 +animation/clip_14/loops=false +animation/clip_15/name="" +animation/clip_15/start_frame=0 +animation/clip_15/end_frame=0 +animation/clip_15/loops=false +animation/clip_16/name="" +animation/clip_16/start_frame=0 +animation/clip_16/end_frame=0 +animation/clip_16/loops=false +animation/clip_17/name="" +animation/clip_17/start_frame=0 +animation/clip_17/end_frame=0 +animation/clip_17/loops=false +animation/clip_18/name="" +animation/clip_18/start_frame=0 +animation/clip_18/end_frame=0 +animation/clip_18/loops=false +animation/clip_19/name="" +animation/clip_19/start_frame=0 +animation/clip_19/end_frame=0 +animation/clip_19/loops=false +animation/clip_20/name="" +animation/clip_20/start_frame=0 +animation/clip_20/end_frame=0 +animation/clip_20/loops=false +animation/clip_21/name="" +animation/clip_21/start_frame=0 +animation/clip_21/end_frame=0 +animation/clip_21/loops=false +animation/clip_22/name="" +animation/clip_22/start_frame=0 +animation/clip_22/end_frame=0 +animation/clip_22/loops=false +animation/clip_23/name="" +animation/clip_23/start_frame=0 +animation/clip_23/end_frame=0 +animation/clip_23/loops=false +animation/clip_24/name="" +animation/clip_24/start_frame=0 +animation/clip_24/end_frame=0 +animation/clip_24/loops=false +animation/clip_25/name="" +animation/clip_25/start_frame=0 +animation/clip_25/end_frame=0 +animation/clip_25/loops=false +animation/clip_26/name="" +animation/clip_26/start_frame=0 +animation/clip_26/end_frame=0 +animation/clip_26/loops=false +animation/clip_27/name="" +animation/clip_27/start_frame=0 +animation/clip_27/end_frame=0 +animation/clip_27/loops=false +animation/clip_28/name="" +animation/clip_28/start_frame=0 +animation/clip_28/end_frame=0 +animation/clip_28/loops=false +animation/clip_29/name="" +animation/clip_29/start_frame=0 +animation/clip_29/end_frame=0 +animation/clip_29/loops=false +animation/clip_30/name="" +animation/clip_30/start_frame=0 +animation/clip_30/end_frame=0 +animation/clip_30/loops=false +animation/clip_31/name="" +animation/clip_31/start_frame=0 +animation/clip_31/end_frame=0 +animation/clip_31/loops=false +animation/clip_32/name="" +animation/clip_32/start_frame=0 +animation/clip_32/end_frame=0 +animation/clip_32/loops=false +animation/clip_33/name="" +animation/clip_33/start_frame=0 +animation/clip_33/end_frame=0 +animation/clip_33/loops=false +animation/clip_34/name="" +animation/clip_34/start_frame=0 +animation/clip_34/end_frame=0 +animation/clip_34/loops=false +animation/clip_35/name="" +animation/clip_35/start_frame=0 +animation/clip_35/end_frame=0 +animation/clip_35/loops=false +animation/clip_36/name="" +animation/clip_36/start_frame=0 +animation/clip_36/end_frame=0 +animation/clip_36/loops=false +animation/clip_37/name="" +animation/clip_37/start_frame=0 +animation/clip_37/end_frame=0 +animation/clip_37/loops=false +animation/clip_38/name="" +animation/clip_38/start_frame=0 +animation/clip_38/end_frame=0 +animation/clip_38/loops=false +animation/clip_39/name="" +animation/clip_39/start_frame=0 +animation/clip_39/end_frame=0 +animation/clip_39/loops=false +animation/clip_40/name="" +animation/clip_40/start_frame=0 +animation/clip_40/end_frame=0 +animation/clip_40/loops=false +animation/clip_41/name="" +animation/clip_41/start_frame=0 +animation/clip_41/end_frame=0 +animation/clip_41/loops=false +animation/clip_42/name="" +animation/clip_42/start_frame=0 +animation/clip_42/end_frame=0 +animation/clip_42/loops=false +animation/clip_43/name="" +animation/clip_43/start_frame=0 +animation/clip_43/end_frame=0 +animation/clip_43/loops=false +animation/clip_44/name="" +animation/clip_44/start_frame=0 +animation/clip_44/end_frame=0 +animation/clip_44/loops=false +animation/clip_45/name="" +animation/clip_45/start_frame=0 +animation/clip_45/end_frame=0 +animation/clip_45/loops=false +animation/clip_46/name="" +animation/clip_46/start_frame=0 +animation/clip_46/end_frame=0 +animation/clip_46/loops=false +animation/clip_47/name="" +animation/clip_47/start_frame=0 +animation/clip_47/end_frame=0 +animation/clip_47/loops=false +animation/clip_48/name="" +animation/clip_48/start_frame=0 +animation/clip_48/end_frame=0 +animation/clip_48/loops=false +animation/clip_49/name="" +animation/clip_49/start_frame=0 +animation/clip_49/end_frame=0 +animation/clip_49/loops=false +animation/clip_50/name="" +animation/clip_50/start_frame=0 +animation/clip_50/end_frame=0 +animation/clip_50/loops=false +animation/clip_51/name="" +animation/clip_51/start_frame=0 +animation/clip_51/end_frame=0 +animation/clip_51/loops=false +animation/clip_52/name="" +animation/clip_52/start_frame=0 +animation/clip_52/end_frame=0 +animation/clip_52/loops=false +animation/clip_53/name="" +animation/clip_53/start_frame=0 +animation/clip_53/end_frame=0 +animation/clip_53/loops=false +animation/clip_54/name="" +animation/clip_54/start_frame=0 +animation/clip_54/end_frame=0 +animation/clip_54/loops=false +animation/clip_55/name="" +animation/clip_55/start_frame=0 +animation/clip_55/end_frame=0 +animation/clip_55/loops=false +animation/clip_56/name="" +animation/clip_56/start_frame=0 +animation/clip_56/end_frame=0 +animation/clip_56/loops=false +animation/clip_57/name="" +animation/clip_57/start_frame=0 +animation/clip_57/end_frame=0 +animation/clip_57/loops=false +animation/clip_58/name="" +animation/clip_58/start_frame=0 +animation/clip_58/end_frame=0 +animation/clip_58/loops=false +animation/clip_59/name="" +animation/clip_59/start_frame=0 +animation/clip_59/end_frame=0 +animation/clip_59/loops=false +animation/clip_60/name="" +animation/clip_60/start_frame=0 +animation/clip_60/end_frame=0 +animation/clip_60/loops=false +animation/clip_61/name="" +animation/clip_61/start_frame=0 +animation/clip_61/end_frame=0 +animation/clip_61/loops=false +animation/clip_62/name="" +animation/clip_62/start_frame=0 +animation/clip_62/end_frame=0 +animation/clip_62/loops=false +animation/clip_63/name="" +animation/clip_63/start_frame=0 +animation/clip_63/end_frame=0 +animation/clip_63/loops=false +animation/clip_64/name="" +animation/clip_64/start_frame=0 +animation/clip_64/end_frame=0 +animation/clip_64/loops=false +animation/clip_65/name="" +animation/clip_65/start_frame=0 +animation/clip_65/end_frame=0 +animation/clip_65/loops=false +animation/clip_66/name="" +animation/clip_66/start_frame=0 +animation/clip_66/end_frame=0 +animation/clip_66/loops=false +animation/clip_67/name="" +animation/clip_67/start_frame=0 +animation/clip_67/end_frame=0 +animation/clip_67/loops=false +animation/clip_68/name="" +animation/clip_68/start_frame=0 +animation/clip_68/end_frame=0 +animation/clip_68/loops=false +animation/clip_69/name="" +animation/clip_69/start_frame=0 +animation/clip_69/end_frame=0 +animation/clip_69/loops=false +animation/clip_70/name="" +animation/clip_70/start_frame=0 +animation/clip_70/end_frame=0 +animation/clip_70/loops=false +animation/clip_71/name="" +animation/clip_71/start_frame=0 +animation/clip_71/end_frame=0 +animation/clip_71/loops=false +animation/clip_72/name="" +animation/clip_72/start_frame=0 +animation/clip_72/end_frame=0 +animation/clip_72/loops=false +animation/clip_73/name="" +animation/clip_73/start_frame=0 +animation/clip_73/end_frame=0 +animation/clip_73/loops=false +animation/clip_74/name="" +animation/clip_74/start_frame=0 +animation/clip_74/end_frame=0 +animation/clip_74/loops=false +animation/clip_75/name="" +animation/clip_75/start_frame=0 +animation/clip_75/end_frame=0 +animation/clip_75/loops=false +animation/clip_76/name="" +animation/clip_76/start_frame=0 +animation/clip_76/end_frame=0 +animation/clip_76/loops=false +animation/clip_77/name="" +animation/clip_77/start_frame=0 +animation/clip_77/end_frame=0 +animation/clip_77/loops=false +animation/clip_78/name="" +animation/clip_78/start_frame=0 +animation/clip_78/end_frame=0 +animation/clip_78/loops=false +animation/clip_79/name="" +animation/clip_79/start_frame=0 +animation/clip_79/end_frame=0 +animation/clip_79/loops=false +animation/clip_80/name="" +animation/clip_80/start_frame=0 +animation/clip_80/end_frame=0 +animation/clip_80/loops=false +animation/clip_81/name="" +animation/clip_81/start_frame=0 +animation/clip_81/end_frame=0 +animation/clip_81/loops=false +animation/clip_82/name="" +animation/clip_82/start_frame=0 +animation/clip_82/end_frame=0 +animation/clip_82/loops=false +animation/clip_83/name="" +animation/clip_83/start_frame=0 +animation/clip_83/end_frame=0 +animation/clip_83/loops=false +animation/clip_84/name="" +animation/clip_84/start_frame=0 +animation/clip_84/end_frame=0 +animation/clip_84/loops=false +animation/clip_85/name="" +animation/clip_85/start_frame=0 +animation/clip_85/end_frame=0 +animation/clip_85/loops=false +animation/clip_86/name="" +animation/clip_86/start_frame=0 +animation/clip_86/end_frame=0 +animation/clip_86/loops=false +animation/clip_87/name="" +animation/clip_87/start_frame=0 +animation/clip_87/end_frame=0 +animation/clip_87/loops=false +animation/clip_88/name="" +animation/clip_88/start_frame=0 +animation/clip_88/end_frame=0 +animation/clip_88/loops=false +animation/clip_89/name="" +animation/clip_89/start_frame=0 +animation/clip_89/end_frame=0 +animation/clip_89/loops=false +animation/clip_90/name="" +animation/clip_90/start_frame=0 +animation/clip_90/end_frame=0 +animation/clip_90/loops=false +animation/clip_91/name="" +animation/clip_91/start_frame=0 +animation/clip_91/end_frame=0 +animation/clip_91/loops=false +animation/clip_92/name="" +animation/clip_92/start_frame=0 +animation/clip_92/end_frame=0 +animation/clip_92/loops=false +animation/clip_93/name="" +animation/clip_93/start_frame=0 +animation/clip_93/end_frame=0 +animation/clip_93/loops=false +animation/clip_94/name="" +animation/clip_94/start_frame=0 +animation/clip_94/end_frame=0 +animation/clip_94/loops=false +animation/clip_95/name="" +animation/clip_95/start_frame=0 +animation/clip_95/end_frame=0 +animation/clip_95/loops=false +animation/clip_96/name="" +animation/clip_96/start_frame=0 +animation/clip_96/end_frame=0 +animation/clip_96/loops=false +animation/clip_97/name="" +animation/clip_97/start_frame=0 +animation/clip_97/end_frame=0 +animation/clip_97/loops=false +animation/clip_98/name="" +animation/clip_98/start_frame=0 +animation/clip_98/end_frame=0 +animation/clip_98/loops=false +animation/clip_99/name="" +animation/clip_99/start_frame=0 +animation/clip_99/end_frame=0 +animation/clip_99/loops=false +animation/clip_100/name="" +animation/clip_100/start_frame=0 +animation/clip_100/end_frame=0 +animation/clip_100/loops=false +animation/clip_101/name="" +animation/clip_101/start_frame=0 +animation/clip_101/end_frame=0 +animation/clip_101/loops=false +animation/clip_102/name="" +animation/clip_102/start_frame=0 +animation/clip_102/end_frame=0 +animation/clip_102/loops=false +animation/clip_103/name="" +animation/clip_103/start_frame=0 +animation/clip_103/end_frame=0 +animation/clip_103/loops=false +animation/clip_104/name="" +animation/clip_104/start_frame=0 +animation/clip_104/end_frame=0 +animation/clip_104/loops=false +animation/clip_105/name="" +animation/clip_105/start_frame=0 +animation/clip_105/end_frame=0 +animation/clip_105/loops=false +animation/clip_106/name="" +animation/clip_106/start_frame=0 +animation/clip_106/end_frame=0 +animation/clip_106/loops=false +animation/clip_107/name="" +animation/clip_107/start_frame=0 +animation/clip_107/end_frame=0 +animation/clip_107/loops=false +animation/clip_108/name="" +animation/clip_108/start_frame=0 +animation/clip_108/end_frame=0 +animation/clip_108/loops=false +animation/clip_109/name="" +animation/clip_109/start_frame=0 +animation/clip_109/end_frame=0 +animation/clip_109/loops=false +animation/clip_110/name="" +animation/clip_110/start_frame=0 +animation/clip_110/end_frame=0 +animation/clip_110/loops=false +animation/clip_111/name="" +animation/clip_111/start_frame=0 +animation/clip_111/end_frame=0 +animation/clip_111/loops=false +animation/clip_112/name="" +animation/clip_112/start_frame=0 +animation/clip_112/end_frame=0 +animation/clip_112/loops=false +animation/clip_113/name="" +animation/clip_113/start_frame=0 +animation/clip_113/end_frame=0 +animation/clip_113/loops=false +animation/clip_114/name="" +animation/clip_114/start_frame=0 +animation/clip_114/end_frame=0 +animation/clip_114/loops=false +animation/clip_115/name="" +animation/clip_115/start_frame=0 +animation/clip_115/end_frame=0 +animation/clip_115/loops=false +animation/clip_116/name="" +animation/clip_116/start_frame=0 +animation/clip_116/end_frame=0 +animation/clip_116/loops=false +animation/clip_117/name="" +animation/clip_117/start_frame=0 +animation/clip_117/end_frame=0 +animation/clip_117/loops=false +animation/clip_118/name="" +animation/clip_118/start_frame=0 +animation/clip_118/end_frame=0 +animation/clip_118/loops=false +animation/clip_119/name="" +animation/clip_119/start_frame=0 +animation/clip_119/end_frame=0 +animation/clip_119/loops=false +animation/clip_120/name="" +animation/clip_120/start_frame=0 +animation/clip_120/end_frame=0 +animation/clip_120/loops=false +animation/clip_121/name="" +animation/clip_121/start_frame=0 +animation/clip_121/end_frame=0 +animation/clip_121/loops=false +animation/clip_122/name="" +animation/clip_122/start_frame=0 +animation/clip_122/end_frame=0 +animation/clip_122/loops=false +animation/clip_123/name="" +animation/clip_123/start_frame=0 +animation/clip_123/end_frame=0 +animation/clip_123/loops=false +animation/clip_124/name="" +animation/clip_124/start_frame=0 +animation/clip_124/end_frame=0 +animation/clip_124/loops=false +animation/clip_125/name="" +animation/clip_125/start_frame=0 +animation/clip_125/end_frame=0 +animation/clip_125/loops=false +animation/clip_126/name="" +animation/clip_126/start_frame=0 +animation/clip_126/end_frame=0 +animation/clip_126/loops=false +animation/clip_127/name="" +animation/clip_127/start_frame=0 +animation/clip_127/end_frame=0 +animation/clip_127/loops=false +animation/clip_128/name="" +animation/clip_128/start_frame=0 +animation/clip_128/end_frame=0 +animation/clip_128/loops=false +animation/clip_129/name="" +animation/clip_129/start_frame=0 +animation/clip_129/end_frame=0 +animation/clip_129/loops=false +animation/clip_130/name="" +animation/clip_130/start_frame=0 +animation/clip_130/end_frame=0 +animation/clip_130/loops=false +animation/clip_131/name="" +animation/clip_131/start_frame=0 +animation/clip_131/end_frame=0 +animation/clip_131/loops=false +animation/clip_132/name="" +animation/clip_132/start_frame=0 +animation/clip_132/end_frame=0 +animation/clip_132/loops=false +animation/clip_133/name="" +animation/clip_133/start_frame=0 +animation/clip_133/end_frame=0 +animation/clip_133/loops=false +animation/clip_134/name="" +animation/clip_134/start_frame=0 +animation/clip_134/end_frame=0 +animation/clip_134/loops=false +animation/clip_135/name="" +animation/clip_135/start_frame=0 +animation/clip_135/end_frame=0 +animation/clip_135/loops=false +animation/clip_136/name="" +animation/clip_136/start_frame=0 +animation/clip_136/end_frame=0 +animation/clip_136/loops=false +animation/clip_137/name="" +animation/clip_137/start_frame=0 +animation/clip_137/end_frame=0 +animation/clip_137/loops=false +animation/clip_138/name="" +animation/clip_138/start_frame=0 +animation/clip_138/end_frame=0 +animation/clip_138/loops=false +animation/clip_139/name="" +animation/clip_139/start_frame=0 +animation/clip_139/end_frame=0 +animation/clip_139/loops=false +animation/clip_140/name="" +animation/clip_140/start_frame=0 +animation/clip_140/end_frame=0 +animation/clip_140/loops=false +animation/clip_141/name="" +animation/clip_141/start_frame=0 +animation/clip_141/end_frame=0 +animation/clip_141/loops=false +animation/clip_142/name="" +animation/clip_142/start_frame=0 +animation/clip_142/end_frame=0 +animation/clip_142/loops=false +animation/clip_143/name="" +animation/clip_143/start_frame=0 +animation/clip_143/end_frame=0 +animation/clip_143/loops=false +animation/clip_144/name="" +animation/clip_144/start_frame=0 +animation/clip_144/end_frame=0 +animation/clip_144/loops=false +animation/clip_145/name="" +animation/clip_145/start_frame=0 +animation/clip_145/end_frame=0 +animation/clip_145/loops=false +animation/clip_146/name="" +animation/clip_146/start_frame=0 +animation/clip_146/end_frame=0 +animation/clip_146/loops=false +animation/clip_147/name="" +animation/clip_147/start_frame=0 +animation/clip_147/end_frame=0 +animation/clip_147/loops=false +animation/clip_148/name="" +animation/clip_148/start_frame=0 +animation/clip_148/end_frame=0 +animation/clip_148/loops=false +animation/clip_149/name="" +animation/clip_149/start_frame=0 +animation/clip_149/end_frame=0 +animation/clip_149/loops=false +animation/clip_150/name="" +animation/clip_150/start_frame=0 +animation/clip_150/end_frame=0 +animation/clip_150/loops=false +animation/clip_151/name="" +animation/clip_151/start_frame=0 +animation/clip_151/end_frame=0 +animation/clip_151/loops=false +animation/clip_152/name="" +animation/clip_152/start_frame=0 +animation/clip_152/end_frame=0 +animation/clip_152/loops=false +animation/clip_153/name="" +animation/clip_153/start_frame=0 +animation/clip_153/end_frame=0 +animation/clip_153/loops=false +animation/clip_154/name="" +animation/clip_154/start_frame=0 +animation/clip_154/end_frame=0 +animation/clip_154/loops=false +animation/clip_155/name="" +animation/clip_155/start_frame=0 +animation/clip_155/end_frame=0 +animation/clip_155/loops=false +animation/clip_156/name="" +animation/clip_156/start_frame=0 +animation/clip_156/end_frame=0 +animation/clip_156/loops=false +animation/clip_157/name="" +animation/clip_157/start_frame=0 +animation/clip_157/end_frame=0 +animation/clip_157/loops=false +animation/clip_158/name="" +animation/clip_158/start_frame=0 +animation/clip_158/end_frame=0 +animation/clip_158/loops=false +animation/clip_159/name="" +animation/clip_159/start_frame=0 +animation/clip_159/end_frame=0 +animation/clip_159/loops=false +animation/clip_160/name="" +animation/clip_160/start_frame=0 +animation/clip_160/end_frame=0 +animation/clip_160/loops=false +animation/clip_161/name="" +animation/clip_161/start_frame=0 +animation/clip_161/end_frame=0 +animation/clip_161/loops=false +animation/clip_162/name="" +animation/clip_162/start_frame=0 +animation/clip_162/end_frame=0 +animation/clip_162/loops=false +animation/clip_163/name="" +animation/clip_163/start_frame=0 +animation/clip_163/end_frame=0 +animation/clip_163/loops=false +animation/clip_164/name="" +animation/clip_164/start_frame=0 +animation/clip_164/end_frame=0 +animation/clip_164/loops=false +animation/clip_165/name="" +animation/clip_165/start_frame=0 +animation/clip_165/end_frame=0 +animation/clip_165/loops=false +animation/clip_166/name="" +animation/clip_166/start_frame=0 +animation/clip_166/end_frame=0 +animation/clip_166/loops=false +animation/clip_167/name="" +animation/clip_167/start_frame=0 +animation/clip_167/end_frame=0 +animation/clip_167/loops=false +animation/clip_168/name="" +animation/clip_168/start_frame=0 +animation/clip_168/end_frame=0 +animation/clip_168/loops=false +animation/clip_169/name="" +animation/clip_169/start_frame=0 +animation/clip_169/end_frame=0 +animation/clip_169/loops=false +animation/clip_170/name="" +animation/clip_170/start_frame=0 +animation/clip_170/end_frame=0 +animation/clip_170/loops=false +animation/clip_171/name="" +animation/clip_171/start_frame=0 +animation/clip_171/end_frame=0 +animation/clip_171/loops=false +animation/clip_172/name="" +animation/clip_172/start_frame=0 +animation/clip_172/end_frame=0 +animation/clip_172/loops=false +animation/clip_173/name="" +animation/clip_173/start_frame=0 +animation/clip_173/end_frame=0 +animation/clip_173/loops=false +animation/clip_174/name="" +animation/clip_174/start_frame=0 +animation/clip_174/end_frame=0 +animation/clip_174/loops=false +animation/clip_175/name="" +animation/clip_175/start_frame=0 +animation/clip_175/end_frame=0 +animation/clip_175/loops=false +animation/clip_176/name="" +animation/clip_176/start_frame=0 +animation/clip_176/end_frame=0 +animation/clip_176/loops=false +animation/clip_177/name="" +animation/clip_177/start_frame=0 +animation/clip_177/end_frame=0 +animation/clip_177/loops=false +animation/clip_178/name="" +animation/clip_178/start_frame=0 +animation/clip_178/end_frame=0 +animation/clip_178/loops=false +animation/clip_179/name="" +animation/clip_179/start_frame=0 +animation/clip_179/end_frame=0 +animation/clip_179/loops=false +animation/clip_180/name="" +animation/clip_180/start_frame=0 +animation/clip_180/end_frame=0 +animation/clip_180/loops=false +animation/clip_181/name="" +animation/clip_181/start_frame=0 +animation/clip_181/end_frame=0 +animation/clip_181/loops=false +animation/clip_182/name="" +animation/clip_182/start_frame=0 +animation/clip_182/end_frame=0 +animation/clip_182/loops=false +animation/clip_183/name="" +animation/clip_183/start_frame=0 +animation/clip_183/end_frame=0 +animation/clip_183/loops=false +animation/clip_184/name="" +animation/clip_184/start_frame=0 +animation/clip_184/end_frame=0 +animation/clip_184/loops=false +animation/clip_185/name="" +animation/clip_185/start_frame=0 +animation/clip_185/end_frame=0 +animation/clip_185/loops=false +animation/clip_186/name="" +animation/clip_186/start_frame=0 +animation/clip_186/end_frame=0 +animation/clip_186/loops=false +animation/clip_187/name="" +animation/clip_187/start_frame=0 +animation/clip_187/end_frame=0 +animation/clip_187/loops=false +animation/clip_188/name="" +animation/clip_188/start_frame=0 +animation/clip_188/end_frame=0 +animation/clip_188/loops=false +animation/clip_189/name="" +animation/clip_189/start_frame=0 +animation/clip_189/end_frame=0 +animation/clip_189/loops=false +animation/clip_190/name="" +animation/clip_190/start_frame=0 +animation/clip_190/end_frame=0 +animation/clip_190/loops=false +animation/clip_191/name="" +animation/clip_191/start_frame=0 +animation/clip_191/end_frame=0 +animation/clip_191/loops=false +animation/clip_192/name="" +animation/clip_192/start_frame=0 +animation/clip_192/end_frame=0 +animation/clip_192/loops=false +animation/clip_193/name="" +animation/clip_193/start_frame=0 +animation/clip_193/end_frame=0 +animation/clip_193/loops=false +animation/clip_194/name="" +animation/clip_194/start_frame=0 +animation/clip_194/end_frame=0 +animation/clip_194/loops=false +animation/clip_195/name="" +animation/clip_195/start_frame=0 +animation/clip_195/end_frame=0 +animation/clip_195/loops=false +animation/clip_196/name="" +animation/clip_196/start_frame=0 +animation/clip_196/end_frame=0 +animation/clip_196/loops=false +animation/clip_197/name="" +animation/clip_197/start_frame=0 +animation/clip_197/end_frame=0 +animation/clip_197/loops=false +animation/clip_198/name="" +animation/clip_198/start_frame=0 +animation/clip_198/end_frame=0 +animation/clip_198/loops=false +animation/clip_199/name="" +animation/clip_199/start_frame=0 +animation/clip_199/end_frame=0 +animation/clip_199/loops=false +animation/clip_200/name="" +animation/clip_200/start_frame=0 +animation/clip_200/end_frame=0 +animation/clip_200/loops=false +animation/clip_201/name="" +animation/clip_201/start_frame=0 +animation/clip_201/end_frame=0 +animation/clip_201/loops=false +animation/clip_202/name="" +animation/clip_202/start_frame=0 +animation/clip_202/end_frame=0 +animation/clip_202/loops=false +animation/clip_203/name="" +animation/clip_203/start_frame=0 +animation/clip_203/end_frame=0 +animation/clip_203/loops=false +animation/clip_204/name="" +animation/clip_204/start_frame=0 +animation/clip_204/end_frame=0 +animation/clip_204/loops=false +animation/clip_205/name="" +animation/clip_205/start_frame=0 +animation/clip_205/end_frame=0 +animation/clip_205/loops=false +animation/clip_206/name="" +animation/clip_206/start_frame=0 +animation/clip_206/end_frame=0 +animation/clip_206/loops=false +animation/clip_207/name="" +animation/clip_207/start_frame=0 +animation/clip_207/end_frame=0 +animation/clip_207/loops=false +animation/clip_208/name="" +animation/clip_208/start_frame=0 +animation/clip_208/end_frame=0 +animation/clip_208/loops=false +animation/clip_209/name="" +animation/clip_209/start_frame=0 +animation/clip_209/end_frame=0 +animation/clip_209/loops=false +animation/clip_210/name="" +animation/clip_210/start_frame=0 +animation/clip_210/end_frame=0 +animation/clip_210/loops=false +animation/clip_211/name="" +animation/clip_211/start_frame=0 +animation/clip_211/end_frame=0 +animation/clip_211/loops=false +animation/clip_212/name="" +animation/clip_212/start_frame=0 +animation/clip_212/end_frame=0 +animation/clip_212/loops=false +animation/clip_213/name="" +animation/clip_213/start_frame=0 +animation/clip_213/end_frame=0 +animation/clip_213/loops=false +animation/clip_214/name="" +animation/clip_214/start_frame=0 +animation/clip_214/end_frame=0 +animation/clip_214/loops=false +animation/clip_215/name="" +animation/clip_215/start_frame=0 +animation/clip_215/end_frame=0 +animation/clip_215/loops=false +animation/clip_216/name="" +animation/clip_216/start_frame=0 +animation/clip_216/end_frame=0 +animation/clip_216/loops=false +animation/clip_217/name="" +animation/clip_217/start_frame=0 +animation/clip_217/end_frame=0 +animation/clip_217/loops=false +animation/clip_218/name="" +animation/clip_218/start_frame=0 +animation/clip_218/end_frame=0 +animation/clip_218/loops=false +animation/clip_219/name="" +animation/clip_219/start_frame=0 +animation/clip_219/end_frame=0 +animation/clip_219/loops=false +animation/clip_220/name="" +animation/clip_220/start_frame=0 +animation/clip_220/end_frame=0 +animation/clip_220/loops=false +animation/clip_221/name="" +animation/clip_221/start_frame=0 +animation/clip_221/end_frame=0 +animation/clip_221/loops=false +animation/clip_222/name="" +animation/clip_222/start_frame=0 +animation/clip_222/end_frame=0 +animation/clip_222/loops=false +animation/clip_223/name="" +animation/clip_223/start_frame=0 +animation/clip_223/end_frame=0 +animation/clip_223/loops=false +animation/clip_224/name="" +animation/clip_224/start_frame=0 +animation/clip_224/end_frame=0 +animation/clip_224/loops=false +animation/clip_225/name="" +animation/clip_225/start_frame=0 +animation/clip_225/end_frame=0 +animation/clip_225/loops=false +animation/clip_226/name="" +animation/clip_226/start_frame=0 +animation/clip_226/end_frame=0 +animation/clip_226/loops=false +animation/clip_227/name="" +animation/clip_227/start_frame=0 +animation/clip_227/end_frame=0 +animation/clip_227/loops=false +animation/clip_228/name="" +animation/clip_228/start_frame=0 +animation/clip_228/end_frame=0 +animation/clip_228/loops=false +animation/clip_229/name="" +animation/clip_229/start_frame=0 +animation/clip_229/end_frame=0 +animation/clip_229/loops=false +animation/clip_230/name="" +animation/clip_230/start_frame=0 +animation/clip_230/end_frame=0 +animation/clip_230/loops=false +animation/clip_231/name="" +animation/clip_231/start_frame=0 +animation/clip_231/end_frame=0 +animation/clip_231/loops=false +animation/clip_232/name="" +animation/clip_232/start_frame=0 +animation/clip_232/end_frame=0 +animation/clip_232/loops=false +animation/clip_233/name="" +animation/clip_233/start_frame=0 +animation/clip_233/end_frame=0 +animation/clip_233/loops=false +animation/clip_234/name="" +animation/clip_234/start_frame=0 +animation/clip_234/end_frame=0 +animation/clip_234/loops=false +animation/clip_235/name="" +animation/clip_235/start_frame=0 +animation/clip_235/end_frame=0 +animation/clip_235/loops=false +animation/clip_236/name="" +animation/clip_236/start_frame=0 +animation/clip_236/end_frame=0 +animation/clip_236/loops=false +animation/clip_237/name="" +animation/clip_237/start_frame=0 +animation/clip_237/end_frame=0 +animation/clip_237/loops=false +animation/clip_238/name="" +animation/clip_238/start_frame=0 +animation/clip_238/end_frame=0 +animation/clip_238/loops=false +animation/clip_239/name="" +animation/clip_239/start_frame=0 +animation/clip_239/end_frame=0 +animation/clip_239/loops=false +animation/clip_240/name="" +animation/clip_240/start_frame=0 +animation/clip_240/end_frame=0 +animation/clip_240/loops=false +animation/clip_241/name="" +animation/clip_241/start_frame=0 +animation/clip_241/end_frame=0 +animation/clip_241/loops=false +animation/clip_242/name="" +animation/clip_242/start_frame=0 +animation/clip_242/end_frame=0 +animation/clip_242/loops=false +animation/clip_243/name="" +animation/clip_243/start_frame=0 +animation/clip_243/end_frame=0 +animation/clip_243/loops=false +animation/clip_244/name="" +animation/clip_244/start_frame=0 +animation/clip_244/end_frame=0 +animation/clip_244/loops=false +animation/clip_245/name="" +animation/clip_245/start_frame=0 +animation/clip_245/end_frame=0 +animation/clip_245/loops=false +animation/clip_246/name="" +animation/clip_246/start_frame=0 +animation/clip_246/end_frame=0 +animation/clip_246/loops=false +animation/clip_247/name="" +animation/clip_247/start_frame=0 +animation/clip_247/end_frame=0 +animation/clip_247/loops=false +animation/clip_248/name="" +animation/clip_248/start_frame=0 +animation/clip_248/end_frame=0 +animation/clip_248/loops=false +animation/clip_249/name="" +animation/clip_249/start_frame=0 +animation/clip_249/end_frame=0 +animation/clip_249/loops=false +animation/clip_250/name="" +animation/clip_250/start_frame=0 +animation/clip_250/end_frame=0 +animation/clip_250/loops=false +animation/clip_251/name="" +animation/clip_251/start_frame=0 +animation/clip_251/end_frame=0 +animation/clip_251/loops=false +animation/clip_252/name="" +animation/clip_252/start_frame=0 +animation/clip_252/end_frame=0 +animation/clip_252/loops=false +animation/clip_253/name="" +animation/clip_253/start_frame=0 +animation/clip_253/end_frame=0 +animation/clip_253/loops=false +animation/clip_254/name="" +animation/clip_254/start_frame=0 +animation/clip_254/end_frame=0 +animation/clip_254/loops=false +animation/clip_255/name="" +animation/clip_255/start_frame=0 +animation/clip_255/end_frame=0 +animation/clip_255/loops=false +animation/clip_256/name="" +animation/clip_256/start_frame=0 +animation/clip_256/end_frame=0 +animation/clip_256/loops=false diff --git a/effects_shared/bullet/BlastMesh_Sphere.mesh b/effects_shared/bullet/BlastMesh_Sphere.mesh new file mode 100644 index 0000000..c903a05 Binary files /dev/null and b/effects_shared/bullet/BlastMesh_Sphere.mesh differ diff --git a/effects_shared/bullet/BlastTexture.png b/effects_shared/bullet/BlastTexture.png new file mode 100644 index 0000000..7309da6 Binary files /dev/null and b/effects_shared/bullet/BlastTexture.png differ diff --git a/effects_shared/bullet/BlastTexture.png.import b/effects_shared/bullet/BlastTexture.png.import new file mode 100644 index 0000000..00466df --- /dev/null +++ b/effects_shared/bullet/BlastTexture.png.import @@ -0,0 +1,36 @@ +[remap] + +importer="texture" +type="StreamTexture" +path.s3tc="res://.import/BlastTexture.png-c527c26bd9b5d1df74298d8ce80bc295.s3tc.stex" +metadata={ +"imported_formats": [ "s3tc" ], +"vram_texture": true +} + +[deps] + +source_file="res://effects_shared/bullet/BlastTexture.png" +dest_files=[ "res://.import/BlastTexture.png-c527c26bd9b5d1df74298d8ce80bc295.s3tc.stex" ] + +[params] + +compress/mode=2 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=true +flags/filter=true +flags/mipmaps=true +flags/anisotropic=false +flags/srgb=1 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/effects_shared/bullet/effect/BlastMaterial.tres b/effects_shared/bullet/effect/BlastMaterial.tres new file mode 100644 index 0000000..bd2798e --- /dev/null +++ b/effects_shared/bullet/effect/BlastMaterial.tres @@ -0,0 +1,58 @@ +[gd_resource type="ShaderMaterial" load_steps=3 format=2] + +[ext_resource path="res://effects_shared/bullet/BlastTexture.png" type="Texture" id=1] + +[sub_resource type="Shader" id=1] +code = "shader_type spatial; +render_mode blend_mix,depth_draw_never,cull_back,diffuse_burley,specular_schlick_ggx; +uniform vec4 albedo : hint_color; +uniform sampler2D texture_albedo : hint_albedo; +uniform float specular; +uniform float metallic; +uniform float roughness : hint_range(0,1); +uniform float point_size : hint_range(0,128); +uniform int particles_anim_h_frames; +uniform int particles_anim_v_frames; +uniform bool particles_anim_loop; +uniform vec3 uv1_scale; +uniform vec3 uv1_offset; +uniform vec3 uv2_scale; +uniform vec3 uv2_offset; + + +void vertex() { + UV=UV*uv1_scale.xy+uv1_offset.xy; + mat4 mat_world = mat4(normalize(CAMERA_MATRIX[0])*length(WORLD_MATRIX[0]),normalize(CAMERA_MATRIX[1])*length(WORLD_MATRIX[0]),normalize(CAMERA_MATRIX[2])*length(WORLD_MATRIX[2]),WORLD_MATRIX[3]); + mat_world = mat_world * mat4( vec4(cos(INSTANCE_CUSTOM.x),-sin(INSTANCE_CUSTOM.x), 0.0, 0.0), vec4(sin(INSTANCE_CUSTOM.x), cos(INSTANCE_CUSTOM.x), 0.0, 0.0),vec4(0.0, 0.0, 1.0, 0.0),vec4(0.0, 0.0, 0.0, 1.0)); + MODELVIEW_MATRIX = INV_CAMERA_MATRIX * mat_world; +} + + +void fragment() { + vec2 base_uv = UV; + vec4 albedo_tex = texture(texture_albedo,base_uv); + albedo_tex *= COLOR; + ALBEDO = albedo.rgb * albedo_tex.rgb * COLOR.rgb; + EMISSION = albedo.rgb * albedo.a * 1.0 * COLOR.rgb * COLOR.a; + METALLIC = metallic; + ROUGHNESS = roughness; + SPECULAR = specular; + ALPHA = albedo_tex.a * COLOR.a; +} +" + +[resource] +shader = SubResource( 1 ) +shader_param/albedo = Color( 0, 1, 1, 1 ) +shader_param/specular = 0.0 +shader_param/metallic = 0.0 +shader_param/roughness = 1.0 +shader_param/point_size = 1.0 +shader_param/particles_anim_h_frames = 1 +shader_param/particles_anim_v_frames = 1 +shader_param/particles_anim_loop = false +shader_param/uv1_scale = Vector3( 1, 1, 1 ) +shader_param/uv1_offset = Vector3( 0, 0, 0 ) +shader_param/uv2_scale = Vector3( 1, 1, 1 ) +shader_param/uv2_offset = Vector3( 0, 0, 0 ) +shader_param/texture_albedo = ExtResource( 1 ) diff --git a/effects_shared/bullet/effect/BlastSpark.png b/effects_shared/bullet/effect/BlastSpark.png new file mode 100644 index 0000000..71900b6 Binary files /dev/null and b/effects_shared/bullet/effect/BlastSpark.png differ diff --git a/effects_shared/bullet/effect/BlastSpark.png.import b/effects_shared/bullet/effect/BlastSpark.png.import new file mode 100644 index 0000000..41dc6b7 --- /dev/null +++ b/effects_shared/bullet/effect/BlastSpark.png.import @@ -0,0 +1,36 @@ +[remap] + +importer="texture" +type="StreamTexture" +path.s3tc="res://.import/BlastSpark.png-6abcee349e2987154845483c37251625.s3tc.stex" +metadata={ +"imported_formats": [ "s3tc" ], +"vram_texture": true +} + +[deps] + +source_file="res://effects_shared/bullet/effect/BlastSpark.png" +dest_files=[ "res://.import/BlastSpark.png-6abcee349e2987154845483c37251625.s3tc.stex" ] + +[params] + +compress/mode=2 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=true +flags/filter=true +flags/mipmaps=true +flags/anisotropic=false +flags/srgb=1 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/effects_shared/bullet/effect/BlastSparksParticles.tres b/effects_shared/bullet/effect/BlastSparksParticles.tres new file mode 100644 index 0000000..6ff86db --- /dev/null +++ b/effects_shared/bullet/effect/BlastSparksParticles.tres @@ -0,0 +1,26 @@ +[gd_resource type="ParticlesMaterial" load_steps=5 format=2] + +[sub_resource type="Gradient" id=17] +offsets = PoolRealArray( 0, 0.237037, 0.859259 ) +colors = PoolColorArray( 1, 1, 1, 1, 0, 0.972656, 0.972656, 0.967582, 0.0107751, 0.00360107, 0.921875, 0.478431 ) + +[sub_resource type="GradientTexture" id=18] +gradient = SubResource( 17 ) +width = 128 + +[sub_resource type="Curve" id=19] +_data = [ Vector2( 0, 1 ), 0.0, -1.96199e-07, 0, 0, Vector2( 0.848101, 0.781818 ), -1.30578, -1.30578, 0, 0, Vector2( 1, 0.0090909 ), -0.0813035, 0.0, 0, 0 ] + +[sub_resource type="CurveTexture" id=20] +width = 128 +curve = SubResource( 19 ) + +[resource] +flag_align_y = true +direction = Vector3( 0, 1, 0 ) +spread = 151.58 +gravity = Vector3( 0, 0, 0 ) +initial_velocity = 12.0 +damping = 31.5 +scale_curve = SubResource( 20 ) +color_ramp = SubResource( 18 ) diff --git a/effects_shared/bullet/effect/FlarePolar.png b/effects_shared/bullet/effect/FlarePolar.png new file mode 100644 index 0000000..ca66d53 Binary files /dev/null and b/effects_shared/bullet/effect/FlarePolar.png differ diff --git a/effects_shared/bullet/effect/FlarePolar.png.import b/effects_shared/bullet/effect/FlarePolar.png.import new file mode 100644 index 0000000..8426229 --- /dev/null +++ b/effects_shared/bullet/effect/FlarePolar.png.import @@ -0,0 +1,36 @@ +[remap] + +importer="texture" +type="StreamTexture" +path.s3tc="res://.import/FlarePolar.png-62b323305bf480f361cf2ea871ca1be9.s3tc.stex" +metadata={ +"imported_formats": [ "s3tc" ], +"vram_texture": true +} + +[deps] + +source_file="res://effects_shared/bullet/effect/FlarePolar.png" +dest_files=[ "res://.import/FlarePolar.png-62b323305bf480f361cf2ea871ca1be9.s3tc.stex" ] + +[params] + +compress/mode=2 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=true +flags/filter=true +flags/mipmaps=true +flags/anisotropic=false +flags/srgb=1 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/effects_shared/bullet/effect/FlareStraight.png b/effects_shared/bullet/effect/FlareStraight.png new file mode 100644 index 0000000..d830cf0 Binary files /dev/null and b/effects_shared/bullet/effect/FlareStraight.png differ diff --git a/effects_shared/bullet/effect/FlareStraight.png.import b/effects_shared/bullet/effect/FlareStraight.png.import new file mode 100644 index 0000000..c1630f8 --- /dev/null +++ b/effects_shared/bullet/effect/FlareStraight.png.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/FlareStraight.png-482a1c66e3d92a3e71190d2bffbb48c0.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://effects_shared/bullet/effect/FlareStraight.png" +dest_files=[ "res://.import/FlareStraight.png-482a1c66e3d92a3e71190d2bffbb48c0.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/effects_shared/bullet/effect/InnerBlastLightParticle.tres b/effects_shared/bullet/effect/InnerBlastLightParticle.tres new file mode 100644 index 0000000..72757a2 --- /dev/null +++ b/effects_shared/bullet/effect/InnerBlastLightParticle.tres @@ -0,0 +1,12 @@ +[gd_resource type="ParticlesMaterial" load_steps=3 format=2] + +[sub_resource type="Curve" id=39] +_data = [ Vector2( 0, 0 ), 0.0, 0.0, 0, 0, Vector2( 0.379747, 1 ), 0.0, 0.0, 0, 0, Vector2( 1, 0 ), 0.0, 0.0, 0, 0 ] + +[sub_resource type="CurveTexture" id=40] +width = 128 +curve = SubResource( 39 ) + +[resource] +gravity = Vector3( 0, 0, 0 ) +scale_curve = SubResource( 40 ) diff --git a/effects_shared/bullet/effect/LightParticle.tres b/effects_shared/bullet/effect/LightParticle.tres new file mode 100644 index 0000000..6a539ba --- /dev/null +++ b/effects_shared/bullet/effect/LightParticle.tres @@ -0,0 +1,29 @@ +[gd_resource type="ParticlesMaterial" load_steps=5 format=2] + +[sub_resource type="Curve" id=33] +min_value = -1.0 +_data = [ Vector2( 0, 0.0181819 ), 0.0, 0.0, 0, 0, Vector2( 1, -0.745454 ), 0.0, 0.0, 0, 0 ] + +[sub_resource type="CurveTexture" id=34] +width = 128 +curve = SubResource( 33 ) + +[sub_resource type="Curve" id=35] +_data = [ Vector2( 0, 0 ), 0.0, 0.0, 0, 0, Vector2( 0.746835, 1 ), 2.15455, -3.73455, 0, 1, Vector2( 1, 0.0545454 ), 0.0, 0.0, 0, 0 ] + +[sub_resource type="CurveTexture" id=36] +width = 128 +curve = SubResource( 35 ) + +[resource] +emission_shape = 1 +emission_sphere_radius = 0.3 +direction = Vector3( 0, 1, 0 ) +spread = 180.0 +gravity = Vector3( 0, 3, 0 ) +initial_velocity = 0.3 +radial_accel = 1.0 +radial_accel_curve = SubResource( 34 ) +scale = 1.5 +scale_random = 1.0 +scale_curve = SubResource( 36 ) diff --git a/effects_shared/bullet/effect/MainBodyParticle.tres b/effects_shared/bullet/effect/MainBodyParticle.tres new file mode 100644 index 0000000..6c77e2a --- /dev/null +++ b/effects_shared/bullet/effect/MainBodyParticle.tres @@ -0,0 +1,21 @@ +[gd_resource type="ParticlesMaterial" load_steps=5 format=2] + +[sub_resource type="Gradient" id=43] +colors = PoolColorArray( 1, 1, 1, 1, 1, 1, 1, 0 ) + +[sub_resource type="GradientTexture" id=44] +gradient = SubResource( 43 ) + +[sub_resource type="Curve" id=45] +max_value = 4.0 +_data = [ Vector2( 0.150987, 4 ), 0.0, 0.0, 0, 0, Vector2( 1, 0.6936 ), 0.0, 0.0, 0, 0 ] + +[sub_resource type="CurveTexture" id=46] +curve = SubResource( 45 ) + +[resource] +spread = 180.0 +gravity = Vector3( 0, -1, 0 ) +scale = 0.3 +scale_curve = SubResource( 46 ) +color_ramp = SubResource( 44 ) diff --git a/effects_shared/bullet/effect/SmokeOverrideMaterial.tres b/effects_shared/bullet/effect/SmokeOverrideMaterial.tres new file mode 100644 index 0000000..5732f3f --- /dev/null +++ b/effects_shared/bullet/effect/SmokeOverrideMaterial.tres @@ -0,0 +1,16 @@ +[gd_resource type="SpatialMaterial" load_steps=2 format=2] + +[ext_resource path="res://player/bullet/blue_myst.png" type="Texture" id=1] + +[resource] +flags_transparent = true +vertex_color_use_as_albedo = true +params_cull_mode = 2 +params_depth_draw_mode = 2 +params_billboard_mode = 3 +params_billboard_keep_scale = true +particles_anim_h_frames = 1 +particles_anim_v_frames = 1 +particles_anim_loop = false +albedo_color = Color( 0.701961, 0.701961, 0.701961, 0.560784 ) +albedo_texture = ExtResource( 1 ) diff --git a/effects_shared/bullet/effect/SmokeParticles.tres b/effects_shared/bullet/effect/SmokeParticles.tres new file mode 100644 index 0000000..912f83e --- /dev/null +++ b/effects_shared/bullet/effect/SmokeParticles.tres @@ -0,0 +1,36 @@ +[gd_resource type="ParticlesMaterial" load_steps=7 format=2] + +[sub_resource type="Curve" id=24] +min_value = -1.0 +_data = [ Vector2( 0, 0.890909 ), 0.0, 0.0, 0, 0, Vector2( 1, -0.0545454 ), 0.0, 0.0, 0, 0 ] + +[sub_resource type="CurveTexture" id=25] +width = 128 +curve = SubResource( 24 ) + +[sub_resource type="Gradient" id=26] +offsets = PoolRealArray( 0, 0.918519 ) +colors = PoolColorArray( 1, 1, 1, 0.8, 0, 0.309753, 0.792969, 0.0196078 ) + +[sub_resource type="GradientTexture" id=27] +gradient = SubResource( 26 ) +width = 128 + +[sub_resource type="Curve" id=28] +_data = [ Vector2( 0, 0 ), 0.0, 0.0, 0, 0, Vector2( 0.14557, 1 ), 0.0, 0.0, 0, 0, Vector2( 1, 0 ), -3.50114, 0.0, 0, 0 ] + +[sub_resource type="CurveTexture" id=29] +width = 128 +curve = SubResource( 28 ) + +[resource] +emission_shape = 1 +emission_sphere_radius = 0.4 +gravity = Vector3( 0, 2, 0 ) +angular_velocity = 82.76 +angular_velocity_random = 0.53 +angular_velocity_curve = SubResource( 25 ) +angle = -248.2 +angle_random = 0.44 +scale_curve = SubResource( 29 ) +color_ramp = SubResource( 27 ) diff --git a/effects_shared/bullet/effect/TrailParticle.tres b/effects_shared/bullet/effect/TrailParticle.tres new file mode 100644 index 0000000..e6a7b1d --- /dev/null +++ b/effects_shared/bullet/effect/TrailParticle.tres @@ -0,0 +1,28 @@ +[gd_resource type="ParticlesMaterial" load_steps=5 format=2] + +[sub_resource type="Gradient" id=50] +colors = PoolColorArray( 1, 1, 1, 1, 0, 0.0313726, 0.501961, 0.752941 ) + +[sub_resource type="GradientTexture" id=51] +gradient = SubResource( 50 ) +width = 128 + +[sub_resource type="Curve" id=52] +_data = [ Vector2( 0, 0 ), 0.0, 0.0, 0, 0, Vector2( 0.417722, 1 ), 0.0, 0.0, 0, 0, Vector2( 1, 0 ), 0.0, 0.0, 0, 0 ] + +[sub_resource type="CurveTexture" id=53] +width = 128 +curve = SubResource( 52 ) + +[resource] +emission_shape = 1 +emission_sphere_radius = 0.1 +flag_align_y = true +direction = Vector3( 0, 0, -1 ) +spread = 0.0 +gravity = Vector3( 0, 0, 0 ) +initial_velocity = 9.0 +damping = 9.0 +scale = 0.3 +scale_curve = SubResource( 53 ) +color_ramp = SubResource( 51 ) diff --git a/effects_shared/bullet/effect/light_rays_material.tres b/effects_shared/bullet/effect/light_rays_material.tres new file mode 100644 index 0000000..cb57f0d --- /dev/null +++ b/effects_shared/bullet/effect/light_rays_material.tres @@ -0,0 +1,11 @@ +[gd_resource type="SpatialMaterial" load_steps=2 format=2] + +[ext_resource path="res://effects_shared/bullet/effect/FlarePolar.png" type="Texture" id=1] + +[resource] +flags_transparent = true +flags_unshaded = true +vertex_color_use_as_albedo = true +params_billboard_mode = 1 +params_billboard_keep_scale = true +albedo_texture = ExtResource( 1 ) diff --git a/effects_shared/muzzle_flash_particle_mesh.glb b/effects_shared/muzzle_flash_particle_mesh.glb new file mode 100644 index 0000000..8edc8b2 Binary files /dev/null and b/effects_shared/muzzle_flash_particle_mesh.glb differ diff --git a/effects_shared/muzzle_flash_particle_mesh.glb.import b/effects_shared/muzzle_flash_particle_mesh.glb.import new file mode 100644 index 0000000..0a00561 --- /dev/null +++ b/effects_shared/muzzle_flash_particle_mesh.glb.import @@ -0,0 +1,1065 @@ +[remap] + +importer="scene" +type="PackedScene" +path="res://.import/muzzle_flash_particle_mesh.glb-fbe92d70b18366e7c4486f5ff0440c57.scn" + +[deps] + +source_file="res://effects_shared/muzzle_flash_particle_mesh.glb" +dest_files=[ "res://.import/muzzle_flash_particle_mesh.glb-fbe92d70b18366e7c4486f5ff0440c57.scn" ] + +[params] + +nodes/root_type="Spatial" +nodes/root_name="Scene Root" +nodes/root_scale=1.0 +nodes/custom_script="" +nodes/storage=0 +nodes/use_legacy_names=false +materials/location=1 +materials/storage=1 +materials/keep_on_reimport=true +meshes/octahedral_compression=true +meshes/compress=4286 +meshes/ensure_tangents=true +meshes/storage=0 +meshes/light_baking=0 +meshes/lightmap_texel_size=0.1 +skins/use_named_skins=true +external_files/store_in_subdir=false +animation/import=true +animation/fps=15 +animation/filter_script="" +animation/storage=false +animation/keep_custom_tracks=false +animation/optimizer/enabled=true +animation/optimizer/max_linear_error=0.05 +animation/optimizer/max_angular_error=0.01 +animation/optimizer/max_angle=22 +animation/optimizer/remove_unused_tracks=true +animation/clips/amount=0 +animation/clip_1/name="" +animation/clip_1/start_frame=0 +animation/clip_1/end_frame=0 +animation/clip_1/loops=false +animation/clip_2/name="" +animation/clip_2/start_frame=0 +animation/clip_2/end_frame=0 +animation/clip_2/loops=false +animation/clip_3/name="" +animation/clip_3/start_frame=0 +animation/clip_3/end_frame=0 +animation/clip_3/loops=false +animation/clip_4/name="" +animation/clip_4/start_frame=0 +animation/clip_4/end_frame=0 +animation/clip_4/loops=false +animation/clip_5/name="" +animation/clip_5/start_frame=0 +animation/clip_5/end_frame=0 +animation/clip_5/loops=false +animation/clip_6/name="" +animation/clip_6/start_frame=0 +animation/clip_6/end_frame=0 +animation/clip_6/loops=false +animation/clip_7/name="" +animation/clip_7/start_frame=0 +animation/clip_7/end_frame=0 +animation/clip_7/loops=false +animation/clip_8/name="" +animation/clip_8/start_frame=0 +animation/clip_8/end_frame=0 +animation/clip_8/loops=false +animation/clip_9/name="" +animation/clip_9/start_frame=0 +animation/clip_9/end_frame=0 +animation/clip_9/loops=false +animation/clip_10/name="" +animation/clip_10/start_frame=0 +animation/clip_10/end_frame=0 +animation/clip_10/loops=false +animation/clip_11/name="" +animation/clip_11/start_frame=0 +animation/clip_11/end_frame=0 +animation/clip_11/loops=false +animation/clip_12/name="" +animation/clip_12/start_frame=0 +animation/clip_12/end_frame=0 +animation/clip_12/loops=false +animation/clip_13/name="" +animation/clip_13/start_frame=0 +animation/clip_13/end_frame=0 +animation/clip_13/loops=false +animation/clip_14/name="" +animation/clip_14/start_frame=0 +animation/clip_14/end_frame=0 +animation/clip_14/loops=false +animation/clip_15/name="" +animation/clip_15/start_frame=0 +animation/clip_15/end_frame=0 +animation/clip_15/loops=false +animation/clip_16/name="" +animation/clip_16/start_frame=0 +animation/clip_16/end_frame=0 +animation/clip_16/loops=false +animation/clip_17/name="" +animation/clip_17/start_frame=0 +animation/clip_17/end_frame=0 +animation/clip_17/loops=false +animation/clip_18/name="" +animation/clip_18/start_frame=0 +animation/clip_18/end_frame=0 +animation/clip_18/loops=false +animation/clip_19/name="" +animation/clip_19/start_frame=0 +animation/clip_19/end_frame=0 +animation/clip_19/loops=false +animation/clip_20/name="" +animation/clip_20/start_frame=0 +animation/clip_20/end_frame=0 +animation/clip_20/loops=false +animation/clip_21/name="" +animation/clip_21/start_frame=0 +animation/clip_21/end_frame=0 +animation/clip_21/loops=false +animation/clip_22/name="" +animation/clip_22/start_frame=0 +animation/clip_22/end_frame=0 +animation/clip_22/loops=false +animation/clip_23/name="" +animation/clip_23/start_frame=0 +animation/clip_23/end_frame=0 +animation/clip_23/loops=false +animation/clip_24/name="" +animation/clip_24/start_frame=0 +animation/clip_24/end_frame=0 +animation/clip_24/loops=false +animation/clip_25/name="" +animation/clip_25/start_frame=0 +animation/clip_25/end_frame=0 +animation/clip_25/loops=false +animation/clip_26/name="" +animation/clip_26/start_frame=0 +animation/clip_26/end_frame=0 +animation/clip_26/loops=false +animation/clip_27/name="" +animation/clip_27/start_frame=0 +animation/clip_27/end_frame=0 +animation/clip_27/loops=false +animation/clip_28/name="" +animation/clip_28/start_frame=0 +animation/clip_28/end_frame=0 +animation/clip_28/loops=false +animation/clip_29/name="" +animation/clip_29/start_frame=0 +animation/clip_29/end_frame=0 +animation/clip_29/loops=false +animation/clip_30/name="" +animation/clip_30/start_frame=0 +animation/clip_30/end_frame=0 +animation/clip_30/loops=false +animation/clip_31/name="" +animation/clip_31/start_frame=0 +animation/clip_31/end_frame=0 +animation/clip_31/loops=false +animation/clip_32/name="" +animation/clip_32/start_frame=0 +animation/clip_32/end_frame=0 +animation/clip_32/loops=false +animation/clip_33/name="" +animation/clip_33/start_frame=0 +animation/clip_33/end_frame=0 +animation/clip_33/loops=false +animation/clip_34/name="" +animation/clip_34/start_frame=0 +animation/clip_34/end_frame=0 +animation/clip_34/loops=false +animation/clip_35/name="" +animation/clip_35/start_frame=0 +animation/clip_35/end_frame=0 +animation/clip_35/loops=false +animation/clip_36/name="" +animation/clip_36/start_frame=0 +animation/clip_36/end_frame=0 +animation/clip_36/loops=false +animation/clip_37/name="" +animation/clip_37/start_frame=0 +animation/clip_37/end_frame=0 +animation/clip_37/loops=false +animation/clip_38/name="" +animation/clip_38/start_frame=0 +animation/clip_38/end_frame=0 +animation/clip_38/loops=false +animation/clip_39/name="" +animation/clip_39/start_frame=0 +animation/clip_39/end_frame=0 +animation/clip_39/loops=false +animation/clip_40/name="" +animation/clip_40/start_frame=0 +animation/clip_40/end_frame=0 +animation/clip_40/loops=false +animation/clip_41/name="" +animation/clip_41/start_frame=0 +animation/clip_41/end_frame=0 +animation/clip_41/loops=false +animation/clip_42/name="" +animation/clip_42/start_frame=0 +animation/clip_42/end_frame=0 +animation/clip_42/loops=false +animation/clip_43/name="" +animation/clip_43/start_frame=0 +animation/clip_43/end_frame=0 +animation/clip_43/loops=false +animation/clip_44/name="" +animation/clip_44/start_frame=0 +animation/clip_44/end_frame=0 +animation/clip_44/loops=false +animation/clip_45/name="" +animation/clip_45/start_frame=0 +animation/clip_45/end_frame=0 +animation/clip_45/loops=false +animation/clip_46/name="" +animation/clip_46/start_frame=0 +animation/clip_46/end_frame=0 +animation/clip_46/loops=false +animation/clip_47/name="" +animation/clip_47/start_frame=0 +animation/clip_47/end_frame=0 +animation/clip_47/loops=false +animation/clip_48/name="" +animation/clip_48/start_frame=0 +animation/clip_48/end_frame=0 +animation/clip_48/loops=false +animation/clip_49/name="" +animation/clip_49/start_frame=0 +animation/clip_49/end_frame=0 +animation/clip_49/loops=false +animation/clip_50/name="" +animation/clip_50/start_frame=0 +animation/clip_50/end_frame=0 +animation/clip_50/loops=false +animation/clip_51/name="" +animation/clip_51/start_frame=0 +animation/clip_51/end_frame=0 +animation/clip_51/loops=false +animation/clip_52/name="" +animation/clip_52/start_frame=0 +animation/clip_52/end_frame=0 +animation/clip_52/loops=false +animation/clip_53/name="" +animation/clip_53/start_frame=0 +animation/clip_53/end_frame=0 +animation/clip_53/loops=false +animation/clip_54/name="" +animation/clip_54/start_frame=0 +animation/clip_54/end_frame=0 +animation/clip_54/loops=false +animation/clip_55/name="" +animation/clip_55/start_frame=0 +animation/clip_55/end_frame=0 +animation/clip_55/loops=false +animation/clip_56/name="" +animation/clip_56/start_frame=0 +animation/clip_56/end_frame=0 +animation/clip_56/loops=false +animation/clip_57/name="" +animation/clip_57/start_frame=0 +animation/clip_57/end_frame=0 +animation/clip_57/loops=false +animation/clip_58/name="" +animation/clip_58/start_frame=0 +animation/clip_58/end_frame=0 +animation/clip_58/loops=false +animation/clip_59/name="" +animation/clip_59/start_frame=0 +animation/clip_59/end_frame=0 +animation/clip_59/loops=false +animation/clip_60/name="" +animation/clip_60/start_frame=0 +animation/clip_60/end_frame=0 +animation/clip_60/loops=false +animation/clip_61/name="" +animation/clip_61/start_frame=0 +animation/clip_61/end_frame=0 +animation/clip_61/loops=false +animation/clip_62/name="" +animation/clip_62/start_frame=0 +animation/clip_62/end_frame=0 +animation/clip_62/loops=false +animation/clip_63/name="" +animation/clip_63/start_frame=0 +animation/clip_63/end_frame=0 +animation/clip_63/loops=false +animation/clip_64/name="" +animation/clip_64/start_frame=0 +animation/clip_64/end_frame=0 +animation/clip_64/loops=false +animation/clip_65/name="" +animation/clip_65/start_frame=0 +animation/clip_65/end_frame=0 +animation/clip_65/loops=false +animation/clip_66/name="" +animation/clip_66/start_frame=0 +animation/clip_66/end_frame=0 +animation/clip_66/loops=false +animation/clip_67/name="" +animation/clip_67/start_frame=0 +animation/clip_67/end_frame=0 +animation/clip_67/loops=false +animation/clip_68/name="" +animation/clip_68/start_frame=0 +animation/clip_68/end_frame=0 +animation/clip_68/loops=false +animation/clip_69/name="" +animation/clip_69/start_frame=0 +animation/clip_69/end_frame=0 +animation/clip_69/loops=false +animation/clip_70/name="" +animation/clip_70/start_frame=0 +animation/clip_70/end_frame=0 +animation/clip_70/loops=false +animation/clip_71/name="" +animation/clip_71/start_frame=0 +animation/clip_71/end_frame=0 +animation/clip_71/loops=false +animation/clip_72/name="" +animation/clip_72/start_frame=0 +animation/clip_72/end_frame=0 +animation/clip_72/loops=false +animation/clip_73/name="" +animation/clip_73/start_frame=0 +animation/clip_73/end_frame=0 +animation/clip_73/loops=false +animation/clip_74/name="" +animation/clip_74/start_frame=0 +animation/clip_74/end_frame=0 +animation/clip_74/loops=false +animation/clip_75/name="" +animation/clip_75/start_frame=0 +animation/clip_75/end_frame=0 +animation/clip_75/loops=false +animation/clip_76/name="" +animation/clip_76/start_frame=0 +animation/clip_76/end_frame=0 +animation/clip_76/loops=false +animation/clip_77/name="" +animation/clip_77/start_frame=0 +animation/clip_77/end_frame=0 +animation/clip_77/loops=false +animation/clip_78/name="" +animation/clip_78/start_frame=0 +animation/clip_78/end_frame=0 +animation/clip_78/loops=false +animation/clip_79/name="" +animation/clip_79/start_frame=0 +animation/clip_79/end_frame=0 +animation/clip_79/loops=false +animation/clip_80/name="" +animation/clip_80/start_frame=0 +animation/clip_80/end_frame=0 +animation/clip_80/loops=false +animation/clip_81/name="" +animation/clip_81/start_frame=0 +animation/clip_81/end_frame=0 +animation/clip_81/loops=false +animation/clip_82/name="" +animation/clip_82/start_frame=0 +animation/clip_82/end_frame=0 +animation/clip_82/loops=false +animation/clip_83/name="" +animation/clip_83/start_frame=0 +animation/clip_83/end_frame=0 +animation/clip_83/loops=false +animation/clip_84/name="" +animation/clip_84/start_frame=0 +animation/clip_84/end_frame=0 +animation/clip_84/loops=false +animation/clip_85/name="" +animation/clip_85/start_frame=0 +animation/clip_85/end_frame=0 +animation/clip_85/loops=false +animation/clip_86/name="" +animation/clip_86/start_frame=0 +animation/clip_86/end_frame=0 +animation/clip_86/loops=false +animation/clip_87/name="" +animation/clip_87/start_frame=0 +animation/clip_87/end_frame=0 +animation/clip_87/loops=false +animation/clip_88/name="" +animation/clip_88/start_frame=0 +animation/clip_88/end_frame=0 +animation/clip_88/loops=false +animation/clip_89/name="" +animation/clip_89/start_frame=0 +animation/clip_89/end_frame=0 +animation/clip_89/loops=false +animation/clip_90/name="" +animation/clip_90/start_frame=0 +animation/clip_90/end_frame=0 +animation/clip_90/loops=false +animation/clip_91/name="" +animation/clip_91/start_frame=0 +animation/clip_91/end_frame=0 +animation/clip_91/loops=false +animation/clip_92/name="" +animation/clip_92/start_frame=0 +animation/clip_92/end_frame=0 +animation/clip_92/loops=false +animation/clip_93/name="" +animation/clip_93/start_frame=0 +animation/clip_93/end_frame=0 +animation/clip_93/loops=false +animation/clip_94/name="" +animation/clip_94/start_frame=0 +animation/clip_94/end_frame=0 +animation/clip_94/loops=false +animation/clip_95/name="" +animation/clip_95/start_frame=0 +animation/clip_95/end_frame=0 +animation/clip_95/loops=false +animation/clip_96/name="" +animation/clip_96/start_frame=0 +animation/clip_96/end_frame=0 +animation/clip_96/loops=false +animation/clip_97/name="" +animation/clip_97/start_frame=0 +animation/clip_97/end_frame=0 +animation/clip_97/loops=false +animation/clip_98/name="" +animation/clip_98/start_frame=0 +animation/clip_98/end_frame=0 +animation/clip_98/loops=false +animation/clip_99/name="" +animation/clip_99/start_frame=0 +animation/clip_99/end_frame=0 +animation/clip_99/loops=false +animation/clip_100/name="" +animation/clip_100/start_frame=0 +animation/clip_100/end_frame=0 +animation/clip_100/loops=false +animation/clip_101/name="" +animation/clip_101/start_frame=0 +animation/clip_101/end_frame=0 +animation/clip_101/loops=false +animation/clip_102/name="" +animation/clip_102/start_frame=0 +animation/clip_102/end_frame=0 +animation/clip_102/loops=false +animation/clip_103/name="" +animation/clip_103/start_frame=0 +animation/clip_103/end_frame=0 +animation/clip_103/loops=false +animation/clip_104/name="" +animation/clip_104/start_frame=0 +animation/clip_104/end_frame=0 +animation/clip_104/loops=false +animation/clip_105/name="" +animation/clip_105/start_frame=0 +animation/clip_105/end_frame=0 +animation/clip_105/loops=false +animation/clip_106/name="" +animation/clip_106/start_frame=0 +animation/clip_106/end_frame=0 +animation/clip_106/loops=false +animation/clip_107/name="" +animation/clip_107/start_frame=0 +animation/clip_107/end_frame=0 +animation/clip_107/loops=false +animation/clip_108/name="" +animation/clip_108/start_frame=0 +animation/clip_108/end_frame=0 +animation/clip_108/loops=false +animation/clip_109/name="" +animation/clip_109/start_frame=0 +animation/clip_109/end_frame=0 +animation/clip_109/loops=false +animation/clip_110/name="" +animation/clip_110/start_frame=0 +animation/clip_110/end_frame=0 +animation/clip_110/loops=false +animation/clip_111/name="" +animation/clip_111/start_frame=0 +animation/clip_111/end_frame=0 +animation/clip_111/loops=false +animation/clip_112/name="" +animation/clip_112/start_frame=0 +animation/clip_112/end_frame=0 +animation/clip_112/loops=false +animation/clip_113/name="" +animation/clip_113/start_frame=0 +animation/clip_113/end_frame=0 +animation/clip_113/loops=false +animation/clip_114/name="" +animation/clip_114/start_frame=0 +animation/clip_114/end_frame=0 +animation/clip_114/loops=false +animation/clip_115/name="" +animation/clip_115/start_frame=0 +animation/clip_115/end_frame=0 +animation/clip_115/loops=false +animation/clip_116/name="" +animation/clip_116/start_frame=0 +animation/clip_116/end_frame=0 +animation/clip_116/loops=false +animation/clip_117/name="" +animation/clip_117/start_frame=0 +animation/clip_117/end_frame=0 +animation/clip_117/loops=false +animation/clip_118/name="" +animation/clip_118/start_frame=0 +animation/clip_118/end_frame=0 +animation/clip_118/loops=false +animation/clip_119/name="" +animation/clip_119/start_frame=0 +animation/clip_119/end_frame=0 +animation/clip_119/loops=false +animation/clip_120/name="" +animation/clip_120/start_frame=0 +animation/clip_120/end_frame=0 +animation/clip_120/loops=false +animation/clip_121/name="" +animation/clip_121/start_frame=0 +animation/clip_121/end_frame=0 +animation/clip_121/loops=false +animation/clip_122/name="" +animation/clip_122/start_frame=0 +animation/clip_122/end_frame=0 +animation/clip_122/loops=false +animation/clip_123/name="" +animation/clip_123/start_frame=0 +animation/clip_123/end_frame=0 +animation/clip_123/loops=false +animation/clip_124/name="" +animation/clip_124/start_frame=0 +animation/clip_124/end_frame=0 +animation/clip_124/loops=false +animation/clip_125/name="" +animation/clip_125/start_frame=0 +animation/clip_125/end_frame=0 +animation/clip_125/loops=false +animation/clip_126/name="" +animation/clip_126/start_frame=0 +animation/clip_126/end_frame=0 +animation/clip_126/loops=false +animation/clip_127/name="" +animation/clip_127/start_frame=0 +animation/clip_127/end_frame=0 +animation/clip_127/loops=false +animation/clip_128/name="" +animation/clip_128/start_frame=0 +animation/clip_128/end_frame=0 +animation/clip_128/loops=false +animation/clip_129/name="" +animation/clip_129/start_frame=0 +animation/clip_129/end_frame=0 +animation/clip_129/loops=false +animation/clip_130/name="" +animation/clip_130/start_frame=0 +animation/clip_130/end_frame=0 +animation/clip_130/loops=false +animation/clip_131/name="" +animation/clip_131/start_frame=0 +animation/clip_131/end_frame=0 +animation/clip_131/loops=false +animation/clip_132/name="" +animation/clip_132/start_frame=0 +animation/clip_132/end_frame=0 +animation/clip_132/loops=false +animation/clip_133/name="" +animation/clip_133/start_frame=0 +animation/clip_133/end_frame=0 +animation/clip_133/loops=false +animation/clip_134/name="" +animation/clip_134/start_frame=0 +animation/clip_134/end_frame=0 +animation/clip_134/loops=false +animation/clip_135/name="" +animation/clip_135/start_frame=0 +animation/clip_135/end_frame=0 +animation/clip_135/loops=false +animation/clip_136/name="" +animation/clip_136/start_frame=0 +animation/clip_136/end_frame=0 +animation/clip_136/loops=false +animation/clip_137/name="" +animation/clip_137/start_frame=0 +animation/clip_137/end_frame=0 +animation/clip_137/loops=false +animation/clip_138/name="" +animation/clip_138/start_frame=0 +animation/clip_138/end_frame=0 +animation/clip_138/loops=false +animation/clip_139/name="" +animation/clip_139/start_frame=0 +animation/clip_139/end_frame=0 +animation/clip_139/loops=false +animation/clip_140/name="" +animation/clip_140/start_frame=0 +animation/clip_140/end_frame=0 +animation/clip_140/loops=false +animation/clip_141/name="" +animation/clip_141/start_frame=0 +animation/clip_141/end_frame=0 +animation/clip_141/loops=false +animation/clip_142/name="" +animation/clip_142/start_frame=0 +animation/clip_142/end_frame=0 +animation/clip_142/loops=false +animation/clip_143/name="" +animation/clip_143/start_frame=0 +animation/clip_143/end_frame=0 +animation/clip_143/loops=false +animation/clip_144/name="" +animation/clip_144/start_frame=0 +animation/clip_144/end_frame=0 +animation/clip_144/loops=false +animation/clip_145/name="" +animation/clip_145/start_frame=0 +animation/clip_145/end_frame=0 +animation/clip_145/loops=false +animation/clip_146/name="" +animation/clip_146/start_frame=0 +animation/clip_146/end_frame=0 +animation/clip_146/loops=false +animation/clip_147/name="" +animation/clip_147/start_frame=0 +animation/clip_147/end_frame=0 +animation/clip_147/loops=false +animation/clip_148/name="" +animation/clip_148/start_frame=0 +animation/clip_148/end_frame=0 +animation/clip_148/loops=false +animation/clip_149/name="" +animation/clip_149/start_frame=0 +animation/clip_149/end_frame=0 +animation/clip_149/loops=false +animation/clip_150/name="" +animation/clip_150/start_frame=0 +animation/clip_150/end_frame=0 +animation/clip_150/loops=false +animation/clip_151/name="" +animation/clip_151/start_frame=0 +animation/clip_151/end_frame=0 +animation/clip_151/loops=false +animation/clip_152/name="" +animation/clip_152/start_frame=0 +animation/clip_152/end_frame=0 +animation/clip_152/loops=false +animation/clip_153/name="" +animation/clip_153/start_frame=0 +animation/clip_153/end_frame=0 +animation/clip_153/loops=false +animation/clip_154/name="" +animation/clip_154/start_frame=0 +animation/clip_154/end_frame=0 +animation/clip_154/loops=false +animation/clip_155/name="" +animation/clip_155/start_frame=0 +animation/clip_155/end_frame=0 +animation/clip_155/loops=false +animation/clip_156/name="" +animation/clip_156/start_frame=0 +animation/clip_156/end_frame=0 +animation/clip_156/loops=false +animation/clip_157/name="" +animation/clip_157/start_frame=0 +animation/clip_157/end_frame=0 +animation/clip_157/loops=false +animation/clip_158/name="" +animation/clip_158/start_frame=0 +animation/clip_158/end_frame=0 +animation/clip_158/loops=false +animation/clip_159/name="" +animation/clip_159/start_frame=0 +animation/clip_159/end_frame=0 +animation/clip_159/loops=false +animation/clip_160/name="" +animation/clip_160/start_frame=0 +animation/clip_160/end_frame=0 +animation/clip_160/loops=false +animation/clip_161/name="" +animation/clip_161/start_frame=0 +animation/clip_161/end_frame=0 +animation/clip_161/loops=false +animation/clip_162/name="" +animation/clip_162/start_frame=0 +animation/clip_162/end_frame=0 +animation/clip_162/loops=false +animation/clip_163/name="" +animation/clip_163/start_frame=0 +animation/clip_163/end_frame=0 +animation/clip_163/loops=false +animation/clip_164/name="" +animation/clip_164/start_frame=0 +animation/clip_164/end_frame=0 +animation/clip_164/loops=false +animation/clip_165/name="" +animation/clip_165/start_frame=0 +animation/clip_165/end_frame=0 +animation/clip_165/loops=false +animation/clip_166/name="" +animation/clip_166/start_frame=0 +animation/clip_166/end_frame=0 +animation/clip_166/loops=false +animation/clip_167/name="" +animation/clip_167/start_frame=0 +animation/clip_167/end_frame=0 +animation/clip_167/loops=false +animation/clip_168/name="" +animation/clip_168/start_frame=0 +animation/clip_168/end_frame=0 +animation/clip_168/loops=false +animation/clip_169/name="" +animation/clip_169/start_frame=0 +animation/clip_169/end_frame=0 +animation/clip_169/loops=false +animation/clip_170/name="" +animation/clip_170/start_frame=0 +animation/clip_170/end_frame=0 +animation/clip_170/loops=false +animation/clip_171/name="" +animation/clip_171/start_frame=0 +animation/clip_171/end_frame=0 +animation/clip_171/loops=false +animation/clip_172/name="" +animation/clip_172/start_frame=0 +animation/clip_172/end_frame=0 +animation/clip_172/loops=false +animation/clip_173/name="" +animation/clip_173/start_frame=0 +animation/clip_173/end_frame=0 +animation/clip_173/loops=false +animation/clip_174/name="" +animation/clip_174/start_frame=0 +animation/clip_174/end_frame=0 +animation/clip_174/loops=false +animation/clip_175/name="" +animation/clip_175/start_frame=0 +animation/clip_175/end_frame=0 +animation/clip_175/loops=false +animation/clip_176/name="" +animation/clip_176/start_frame=0 +animation/clip_176/end_frame=0 +animation/clip_176/loops=false +animation/clip_177/name="" +animation/clip_177/start_frame=0 +animation/clip_177/end_frame=0 +animation/clip_177/loops=false +animation/clip_178/name="" +animation/clip_178/start_frame=0 +animation/clip_178/end_frame=0 +animation/clip_178/loops=false +animation/clip_179/name="" +animation/clip_179/start_frame=0 +animation/clip_179/end_frame=0 +animation/clip_179/loops=false +animation/clip_180/name="" +animation/clip_180/start_frame=0 +animation/clip_180/end_frame=0 +animation/clip_180/loops=false +animation/clip_181/name="" +animation/clip_181/start_frame=0 +animation/clip_181/end_frame=0 +animation/clip_181/loops=false +animation/clip_182/name="" +animation/clip_182/start_frame=0 +animation/clip_182/end_frame=0 +animation/clip_182/loops=false +animation/clip_183/name="" +animation/clip_183/start_frame=0 +animation/clip_183/end_frame=0 +animation/clip_183/loops=false +animation/clip_184/name="" +animation/clip_184/start_frame=0 +animation/clip_184/end_frame=0 +animation/clip_184/loops=false +animation/clip_185/name="" +animation/clip_185/start_frame=0 +animation/clip_185/end_frame=0 +animation/clip_185/loops=false +animation/clip_186/name="" +animation/clip_186/start_frame=0 +animation/clip_186/end_frame=0 +animation/clip_186/loops=false +animation/clip_187/name="" +animation/clip_187/start_frame=0 +animation/clip_187/end_frame=0 +animation/clip_187/loops=false +animation/clip_188/name="" +animation/clip_188/start_frame=0 +animation/clip_188/end_frame=0 +animation/clip_188/loops=false +animation/clip_189/name="" +animation/clip_189/start_frame=0 +animation/clip_189/end_frame=0 +animation/clip_189/loops=false +animation/clip_190/name="" +animation/clip_190/start_frame=0 +animation/clip_190/end_frame=0 +animation/clip_190/loops=false +animation/clip_191/name="" +animation/clip_191/start_frame=0 +animation/clip_191/end_frame=0 +animation/clip_191/loops=false +animation/clip_192/name="" +animation/clip_192/start_frame=0 +animation/clip_192/end_frame=0 +animation/clip_192/loops=false +animation/clip_193/name="" +animation/clip_193/start_frame=0 +animation/clip_193/end_frame=0 +animation/clip_193/loops=false +animation/clip_194/name="" +animation/clip_194/start_frame=0 +animation/clip_194/end_frame=0 +animation/clip_194/loops=false +animation/clip_195/name="" +animation/clip_195/start_frame=0 +animation/clip_195/end_frame=0 +animation/clip_195/loops=false +animation/clip_196/name="" +animation/clip_196/start_frame=0 +animation/clip_196/end_frame=0 +animation/clip_196/loops=false +animation/clip_197/name="" +animation/clip_197/start_frame=0 +animation/clip_197/end_frame=0 +animation/clip_197/loops=false +animation/clip_198/name="" +animation/clip_198/start_frame=0 +animation/clip_198/end_frame=0 +animation/clip_198/loops=false +animation/clip_199/name="" +animation/clip_199/start_frame=0 +animation/clip_199/end_frame=0 +animation/clip_199/loops=false +animation/clip_200/name="" +animation/clip_200/start_frame=0 +animation/clip_200/end_frame=0 +animation/clip_200/loops=false +animation/clip_201/name="" +animation/clip_201/start_frame=0 +animation/clip_201/end_frame=0 +animation/clip_201/loops=false +animation/clip_202/name="" +animation/clip_202/start_frame=0 +animation/clip_202/end_frame=0 +animation/clip_202/loops=false +animation/clip_203/name="" +animation/clip_203/start_frame=0 +animation/clip_203/end_frame=0 +animation/clip_203/loops=false +animation/clip_204/name="" +animation/clip_204/start_frame=0 +animation/clip_204/end_frame=0 +animation/clip_204/loops=false +animation/clip_205/name="" +animation/clip_205/start_frame=0 +animation/clip_205/end_frame=0 +animation/clip_205/loops=false +animation/clip_206/name="" +animation/clip_206/start_frame=0 +animation/clip_206/end_frame=0 +animation/clip_206/loops=false +animation/clip_207/name="" +animation/clip_207/start_frame=0 +animation/clip_207/end_frame=0 +animation/clip_207/loops=false +animation/clip_208/name="" +animation/clip_208/start_frame=0 +animation/clip_208/end_frame=0 +animation/clip_208/loops=false +animation/clip_209/name="" +animation/clip_209/start_frame=0 +animation/clip_209/end_frame=0 +animation/clip_209/loops=false +animation/clip_210/name="" +animation/clip_210/start_frame=0 +animation/clip_210/end_frame=0 +animation/clip_210/loops=false +animation/clip_211/name="" +animation/clip_211/start_frame=0 +animation/clip_211/end_frame=0 +animation/clip_211/loops=false +animation/clip_212/name="" +animation/clip_212/start_frame=0 +animation/clip_212/end_frame=0 +animation/clip_212/loops=false +animation/clip_213/name="" +animation/clip_213/start_frame=0 +animation/clip_213/end_frame=0 +animation/clip_213/loops=false +animation/clip_214/name="" +animation/clip_214/start_frame=0 +animation/clip_214/end_frame=0 +animation/clip_214/loops=false +animation/clip_215/name="" +animation/clip_215/start_frame=0 +animation/clip_215/end_frame=0 +animation/clip_215/loops=false +animation/clip_216/name="" +animation/clip_216/start_frame=0 +animation/clip_216/end_frame=0 +animation/clip_216/loops=false +animation/clip_217/name="" +animation/clip_217/start_frame=0 +animation/clip_217/end_frame=0 +animation/clip_217/loops=false +animation/clip_218/name="" +animation/clip_218/start_frame=0 +animation/clip_218/end_frame=0 +animation/clip_218/loops=false +animation/clip_219/name="" +animation/clip_219/start_frame=0 +animation/clip_219/end_frame=0 +animation/clip_219/loops=false +animation/clip_220/name="" +animation/clip_220/start_frame=0 +animation/clip_220/end_frame=0 +animation/clip_220/loops=false +animation/clip_221/name="" +animation/clip_221/start_frame=0 +animation/clip_221/end_frame=0 +animation/clip_221/loops=false +animation/clip_222/name="" +animation/clip_222/start_frame=0 +animation/clip_222/end_frame=0 +animation/clip_222/loops=false +animation/clip_223/name="" +animation/clip_223/start_frame=0 +animation/clip_223/end_frame=0 +animation/clip_223/loops=false +animation/clip_224/name="" +animation/clip_224/start_frame=0 +animation/clip_224/end_frame=0 +animation/clip_224/loops=false +animation/clip_225/name="" +animation/clip_225/start_frame=0 +animation/clip_225/end_frame=0 +animation/clip_225/loops=false +animation/clip_226/name="" +animation/clip_226/start_frame=0 +animation/clip_226/end_frame=0 +animation/clip_226/loops=false +animation/clip_227/name="" +animation/clip_227/start_frame=0 +animation/clip_227/end_frame=0 +animation/clip_227/loops=false +animation/clip_228/name="" +animation/clip_228/start_frame=0 +animation/clip_228/end_frame=0 +animation/clip_228/loops=false +animation/clip_229/name="" +animation/clip_229/start_frame=0 +animation/clip_229/end_frame=0 +animation/clip_229/loops=false +animation/clip_230/name="" +animation/clip_230/start_frame=0 +animation/clip_230/end_frame=0 +animation/clip_230/loops=false +animation/clip_231/name="" +animation/clip_231/start_frame=0 +animation/clip_231/end_frame=0 +animation/clip_231/loops=false +animation/clip_232/name="" +animation/clip_232/start_frame=0 +animation/clip_232/end_frame=0 +animation/clip_232/loops=false +animation/clip_233/name="" +animation/clip_233/start_frame=0 +animation/clip_233/end_frame=0 +animation/clip_233/loops=false +animation/clip_234/name="" +animation/clip_234/start_frame=0 +animation/clip_234/end_frame=0 +animation/clip_234/loops=false +animation/clip_235/name="" +animation/clip_235/start_frame=0 +animation/clip_235/end_frame=0 +animation/clip_235/loops=false +animation/clip_236/name="" +animation/clip_236/start_frame=0 +animation/clip_236/end_frame=0 +animation/clip_236/loops=false +animation/clip_237/name="" +animation/clip_237/start_frame=0 +animation/clip_237/end_frame=0 +animation/clip_237/loops=false +animation/clip_238/name="" +animation/clip_238/start_frame=0 +animation/clip_238/end_frame=0 +animation/clip_238/loops=false +animation/clip_239/name="" +animation/clip_239/start_frame=0 +animation/clip_239/end_frame=0 +animation/clip_239/loops=false +animation/clip_240/name="" +animation/clip_240/start_frame=0 +animation/clip_240/end_frame=0 +animation/clip_240/loops=false +animation/clip_241/name="" +animation/clip_241/start_frame=0 +animation/clip_241/end_frame=0 +animation/clip_241/loops=false +animation/clip_242/name="" +animation/clip_242/start_frame=0 +animation/clip_242/end_frame=0 +animation/clip_242/loops=false +animation/clip_243/name="" +animation/clip_243/start_frame=0 +animation/clip_243/end_frame=0 +animation/clip_243/loops=false +animation/clip_244/name="" +animation/clip_244/start_frame=0 +animation/clip_244/end_frame=0 +animation/clip_244/loops=false +animation/clip_245/name="" +animation/clip_245/start_frame=0 +animation/clip_245/end_frame=0 +animation/clip_245/loops=false +animation/clip_246/name="" +animation/clip_246/start_frame=0 +animation/clip_246/end_frame=0 +animation/clip_246/loops=false +animation/clip_247/name="" +animation/clip_247/start_frame=0 +animation/clip_247/end_frame=0 +animation/clip_247/loops=false +animation/clip_248/name="" +animation/clip_248/start_frame=0 +animation/clip_248/end_frame=0 +animation/clip_248/loops=false +animation/clip_249/name="" +animation/clip_249/start_frame=0 +animation/clip_249/end_frame=0 +animation/clip_249/loops=false +animation/clip_250/name="" +animation/clip_250/start_frame=0 +animation/clip_250/end_frame=0 +animation/clip_250/loops=false +animation/clip_251/name="" +animation/clip_251/start_frame=0 +animation/clip_251/end_frame=0 +animation/clip_251/loops=false +animation/clip_252/name="" +animation/clip_252/start_frame=0 +animation/clip_252/end_frame=0 +animation/clip_252/loops=false +animation/clip_253/name="" +animation/clip_253/start_frame=0 +animation/clip_253/end_frame=0 +animation/clip_253/loops=false +animation/clip_254/name="" +animation/clip_254/start_frame=0 +animation/clip_254/end_frame=0 +animation/clip_254/loops=false +animation/clip_255/name="" +animation/clip_255/start_frame=0 +animation/clip_255/end_frame=0 +animation/clip_255/loops=false +animation/clip_256/name="" +animation/clip_256/start_frame=0 +animation/clip_256/end_frame=0 +animation/clip_256/loops=false diff --git a/effects_shared/muzzle_flash_particle_mesh_Cone.mesh b/effects_shared/muzzle_flash_particle_mesh_Cone.mesh new file mode 100644 index 0000000..4aab5ed Binary files /dev/null and b/effects_shared/muzzle_flash_particle_mesh_Cone.mesh differ diff --git a/enemies/bad_cat/audio/jump.wav b/enemies/bad_cat/audio/jump.wav new file mode 100644 index 0000000..935444a Binary files /dev/null and b/enemies/bad_cat/audio/jump.wav differ diff --git a/enemies/bad_cat/audio/jump.wav.import b/enemies/bad_cat/audio/jump.wav.import new file mode 100644 index 0000000..c3873d0 --- /dev/null +++ b/enemies/bad_cat/audio/jump.wav.import @@ -0,0 +1,21 @@ +[remap] + +importer="wav" +type="AudioStreamSample" +path="res://.import/jump.wav-7da1ee513bc08bdb8de7368683f83a8f.sample" + +[deps] + +source_file="res://enemies/bad_cat/audio/jump.wav" +dest_files=[ "res://.import/jump.wav-7da1ee513bc08bdb8de7368683f83a8f.sample" ] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=true +edit/normalize=true +edit/loop=false +compress/mode=0 diff --git a/enemies/bad_cat/audio/land.wav b/enemies/bad_cat/audio/land.wav new file mode 100644 index 0000000..c3b4926 Binary files /dev/null and b/enemies/bad_cat/audio/land.wav differ diff --git a/enemies/bad_cat/audio/land.wav.import b/enemies/bad_cat/audio/land.wav.import new file mode 100644 index 0000000..b1b8957 --- /dev/null +++ b/enemies/bad_cat/audio/land.wav.import @@ -0,0 +1,21 @@ +[remap] + +importer="wav" +type="AudioStreamSample" +path="res://.import/land.wav-b0953dafa50529bde0f15882cfc8634f.sample" + +[deps] + +source_file="res://enemies/bad_cat/audio/land.wav" +dest_files=[ "res://.import/land.wav-b0953dafa50529bde0f15882cfc8634f.sample" ] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=true +edit/normalize=true +edit/loop=false +compress/mode=0 diff --git a/enemies/bad_cat/audio/shoot.wav b/enemies/bad_cat/audio/shoot.wav new file mode 100644 index 0000000..b0b7500 Binary files /dev/null and b/enemies/bad_cat/audio/shoot.wav differ diff --git a/enemies/bad_cat/audio/shoot.wav.import b/enemies/bad_cat/audio/shoot.wav.import new file mode 100644 index 0000000..200aacd --- /dev/null +++ b/enemies/bad_cat/audio/shoot.wav.import @@ -0,0 +1,21 @@ +[remap] + +importer="wav" +type="AudioStreamSample" +path="res://.import/shoot.wav-a1925bc236c059a9752e02a1e62106dd.sample" + +[deps] + +source_file="res://enemies/bad_cat/audio/shoot.wav" +dest_files=[ "res://.import/shoot.wav-a1925bc236c059a9752e02a1e62106dd.sample" ] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=true +edit/normalize=true +edit/loop=false +compress/mode=0 diff --git a/enemies/bad_cat/audio/step.wav b/enemies/bad_cat/audio/step.wav new file mode 100644 index 0000000..26551a8 Binary files /dev/null and b/enemies/bad_cat/audio/step.wav differ diff --git a/enemies/bad_cat/audio/step.wav.import b/enemies/bad_cat/audio/step.wav.import new file mode 100644 index 0000000..de84391 --- /dev/null +++ b/enemies/bad_cat/audio/step.wav.import @@ -0,0 +1,21 @@ +[remap] + +importer="wav" +type="AudioStreamSample" +path="res://.import/step.wav-197836f56b95238920bd13064a10b2bf.sample" + +[deps] + +source_file="res://enemies/bad_cat/audio/step.wav" +dest_files=[ "res://.import/step.wav-197836f56b95238920bd13064a10b2bf.sample" ] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=true +edit/normalize=false +edit/loop=false +compress/mode=0 diff --git a/enemies/bad_cat/audio/step_random_pitch.tres b/enemies/bad_cat/audio/step_random_pitch.tres new file mode 100644 index 0000000..876edaa --- /dev/null +++ b/enemies/bad_cat/audio/step_random_pitch.tres @@ -0,0 +1,8 @@ +[gd_resource type="AudioStreamRandomPitch" load_steps=2 format=2] + +[ext_resource path="res://player/audio/step.wav" type="AudioStream" id=1] + +[resource] + +audio_stream = ExtResource( 1 ) +random_pitch = 1.1 diff --git a/enemies/bad_cat/bad_cat.gd b/enemies/bad_cat/bad_cat.gd new file mode 100644 index 0000000..5671b02 --- /dev/null +++ b/enemies/bad_cat/bad_cat.gd @@ -0,0 +1,169 @@ +extends KinematicBody + +enum State { + APPROACH = 0, + AIM = 1, + SHOOTING = 2, +} + +const PLAYER_AIM_TOLERANCE_DEGREES = 15 + +const SHOOT_WAIT = 0.5 +const AIM_TIME = 1 + +const AIM_PREPARE_TIME = 0.5 +const BLEND_AIM_SPEED = 0.05 + +export(int) var health = 5 +export(bool) var test_shoot = false + +var state = State.APPROACH + +var shoot_countdown = SHOOT_WAIT +var aim_countdown = AIM_TIME +var aim_preparing = AIM_PREPARE_TIME +var dead = false + +var player = null +var velocity = Vector3() +var orientation = Transform() + + +const ROTATION_INTERPOLATE_SPEED = 0.025 + +var root_motion = Transform() +var motion = Vector2() + +var last_player_sighting = Vector3() + +onready var initial_position = transform.origin +onready var gravity = ProjectSettings.get_setting("physics/3d/default_gravity") * ProjectSettings.get_setting("physics/3d/default_gravity_vector") + +onready var animation_tree = $AnimationTree +onready var player_model = $PlayerModel +onready var shoot_from = player_model.get_node(@"Colette_Armature/Skeleton/GunBone/ShootFrom") +onready var fire_cooldown = $FireCooldown +onready var collision_shape = $CapsuleShape + +onready var sound_effects = $SoundEffects +onready var sound_effect_jump = sound_effects.get_node(@"Jump") +onready var sound_effect_land = sound_effects.get_node(@"Land") +onready var sound_effect_shoot = sound_effects.get_node(@"Shoot") +onready var explosion_sound = sound_effects.get_node(@"Explosion") +onready var hit_sound = sound_effects.get_node(@"Hit") + +onready var debug_marker = $debug_marker + +func _ready(): + # Pre-initialize orientation transform. + orientation = player_model.global_transform + orientation.origin = Vector3() + +func _physics_process(delta): + if dead: + return + + if player != null and fire_cooldown.time_left == 0: + # See if player can be killed because in they're sight. + var ray_origin = shoot_from.global_transform.origin + var ray_to = player.global_transform.origin + Vector3.UP # Above middle of player. + var col = get_world().direct_space_state.intersect_ray(ray_origin, ray_to, [self], 0b111) + # If our raycast hit a player + if not col.empty() and col.collider == player: + # Record last sighting (in case they hide later) + last_player_sighting = ray_to + + state = State.AIM + aim_countdown = AIM_TIME + aim_preparing = 0 + animation_tree["parameters/state/current"] = 1 + + # If the player is detected by at too large an angle, slerp rotate towards them + var to_player_local = global_transform.xform_inv(player.global_transform.origin) + # The front of this is +Z, and atan2 is zero at +X, so we need to use the Z for the X parameter (second one). + var angle_to_player = atan2(to_player_local.x, to_player_local.z) + var tolerance = deg2rad(PLAYER_AIM_TOLERANCE_DEGREES) + if angle_to_player > tolerance: + lerp_to_face_player(angle_to_player, ROTATION_INTERPOLATE_SPEED) + debug_marker.global_transform.origin = self.global_transform.origin + (self.transform.basis.z * 3) + elif angle_to_player < -tolerance: + lerp_to_face_player(angle_to_player, ROTATION_INTERPOLATE_SPEED) + debug_marker.global_transform.origin = self.global_transform.origin + (self.transform.basis.z * 3) + else: + # Facing player, try to shoot. + self.look_at(ray_to, Vector3.UP) + self.rotate_object_local(Vector3.UP, PI) + + var bullet = preload("res://player/bullet/bullet.tscn").instance() + get_parent().add_child(bullet) + bullet.global_transform.origin = ray_origin + # If we don't rotate the bullets there is no useful way to control the particles .. + bullet.look_at(ray_to, Vector3.UP) + bullet.add_collision_exception_with(self) + var shoot_particle = $PlayerModel/Colette_Armature/Skeleton/GunBone/ShootFrom/ShootParticle + shoot_particle.restart() + shoot_particle.emitting = true + var muzzle_particle = $PlayerModel/Colette_Armature/Skeleton/GunBone/ShootFrom/MuzzleFlash + muzzle_particle.restart() + muzzle_particle.emitting = true + fire_cooldown.start() + sound_effect_shoot.play() + + # Player not in sight. + shoot_countdown = SHOOT_WAIT + + # Run at their last known position + if last_player_sighting != Vector3(): + + # If the player is detected by at too large an angle, slerp rotate towards them + var to_player_local = global_transform.xform_inv(last_player_sighting) + # The front of this is +Z, and atan2 is zero at +X, so we need to use the Z for the X parameter (second one). + var angle_to_player = atan2(to_player_local.x, to_player_local.z) + var tolerance = deg2rad(PLAYER_AIM_TOLERANCE_DEGREES) + if angle_to_player > tolerance: + lerp_to_face_player(angle_to_player, ROTATION_INTERPOLATE_SPEED) + debug_marker.global_transform.origin = self.global_transform.origin + (self.transform.basis.z * 3) + elif angle_to_player < -tolerance: + lerp_to_face_player(angle_to_player, ROTATION_INTERPOLATE_SPEED) + debug_marker.global_transform.origin = self.global_transform.origin + (self.transform.basis.z * 3) + + animation_tree["parameters/state/current"] = 2 + # Blend position for walk speed based on motion. + + # Run animation straight forward, high speed + animation_tree["parameters/walk/blend_position"] = Vector2(0.5, 0) + + # move in XY direction facing + root_motion = global_transform.basis.z * 3# * delta + move_and_slide(root_motion.length() * self.transform.basis.z * Vector3(1,0,1), Vector3.UP) + if get_slide_count() == 0: + move_and_slide(Vector3.DOWN * 9.8, Vector3.UP) + +# else: # Not in air or aiming, idle. + +func lerp_to_face_player(angle_to_player, rot_speed): + var langle = lerp_angle(0, angle_to_player, rot_speed) + # restrict to Y axis (no vertical rotation) + self.global_transform.basis = Basis(Vector3(0, 1, 0), langle) * self.global_transform.basis + +func hit(col): + health -= 1 + if health <= 0: + dead = true + animation_tree.active = false + player_model.visible = false + collision_shape.disabled = true + explosion_sound.play() + self.queue_free() # delete self + hit_sound.play() + +func _on_Area_body_entered(body): + if body.name == "Player" or body.name == "Target": + player = body + animation_tree["parameters/idle_aim/current"] = 1 + + +func _on_Area_body_exited(body): + if body.name == "Player": + player = null + animation_tree["parameters/idle_aim/current"] = 0 diff --git a/enemies/bad_cat/bad_cat.tscn b/enemies/bad_cat/bad_cat.tscn new file mode 100644 index 0000000..eedc09c --- /dev/null +++ b/enemies/bad_cat/bad_cat.tscn @@ -0,0 +1,311 @@ +[gd_scene load_steps=50 format=2] + +[ext_resource path="res://enemies/bad_cat/bad_cat.gd" type="Script" id=1] +[ext_resource path="res://enemies/bad_cat/model/Colette_Head.material" type="Material" id=2] +[ext_resource path="res://enemies/common/audio/hit.wav" type="AudioStream" id=3] +[ext_resource path="res://player/audio/step_random_pitch.tres" type="AudioStream" id=4] +[ext_resource path="res://player/audio/jump.wav" type="AudioStream" id=5] +[ext_resource path="res://player/audio/land.wav" type="AudioStream" id=6] +[ext_resource path="res://player/audio/shoot.wav" type="AudioStream" id=7] +[ext_resource path="res://enemies/common/audio/explosion.wav" type="AudioStream" id=8] +[ext_resource path="res://player/bullet/bullet_material.tres" type="Material" id=9] +[ext_resource path="res://enemies/bad_cat/model/muzzle_flash_particle_mesh_Cone.mesh" type="ArrayMesh" id=10] +[ext_resource path="res://effects_shared/bullet/effect/FlarePolar.png" type="Texture" id=11] +[ext_resource path="res://enemies/bad_cat/textures/animu_alunya_shadermat.tres" type="Material" id=12] +[ext_resource path="res://player/model/Alunya.glb" type="PackedScene" id=13] +[ext_resource path="res://enemies/bad_cat/model/Colette_Hair.material" type="Material" id=14] +[ext_resource path="res://enemies/bad_cat/model/Bandana.material" type="Material" id=15] +[ext_resource path="res://enemies/common/Hitbox.gd" type="Script" id=16] +[ext_resource path="res://player/model/materials/ear.tres" type="Material" id=17] +[ext_resource path="res://enemies/bad_cat/model/Colette_Body.material" type="Material" id=18] + +[sub_resource type="ParticlesMaterial" id=1] +flag_align_y = true +direction = Vector3( 0, 0, -1 ) +spread = 15.0 +gravity = Vector3( 0, -3, 0 ) +initial_velocity = 3.0 + +[sub_resource type="SphereMesh" id=2] +radius = 0.003 +height = 0.02 + +[sub_resource type="SpatialMaterial" id=3] +flags_transparent = true +flags_unshaded = true +vertex_color_use_as_albedo = true +params_cull_mode = 2 +albedo_texture = ExtResource( 11 ) + +[sub_resource type="Gradient" id=4] +offsets = PoolRealArray( 0.325926, 1 ) +colors = PoolColorArray( 0.0507812, 0.955505, 1, 1, 0.875, 0.888672, 1, 0.305882 ) + +[sub_resource type="GradientTexture" id=42] +gradient = SubResource( 4 ) +width = 32 + +[sub_resource type="Curve" id=6] +_data = [ Vector2( 0, 0 ), 0.0, 0.0, 0, 0, Vector2( 0.791139, 0.990909 ), 0.0, 0.0, 0, 0, Vector2( 1, 0 ), 0.0, 0.0, 0, 0 ] + +[sub_resource type="CurveTexture" id=43] +width = 64 +curve = SubResource( 6 ) + +[sub_resource type="ParticlesMaterial" id=8] +gravity = Vector3( 0, 0, 0 ) +angle = -4.0 +angle_random = 1.0 +scale = 0.3 +scale_curve = SubResource( 43 ) +color_ramp = SubResource( 42 ) + +[sub_resource type="CapsuleShape" id=41] +radius = 0.253575 +height = 0.808991 + +[sub_resource type="AnimationNodeBlend2" id=69] +filter_enabled = true +filters = [ "Colette_Armature/Skeleton:ElbowF.R", "Colette_Armature/Skeleton:ElbowM.R", "Colette_Armature/Skeleton:ElbowU.R", "Colette_Armature/Skeleton:F_Index_1.R", "Colette_Armature/Skeleton:F_Index_2.R", "Colette_Armature/Skeleton:F_Index_3.R", "Colette_Armature/Skeleton:F_Index_4.R", "Colette_Armature/Skeleton:F_Middle_1.R", "Colette_Armature/Skeleton:F_Middle_2.R", "Colette_Armature/Skeleton:F_Middle_3.R", "Colette_Armature/Skeleton:F_Middle_4.R", "Colette_Armature/Skeleton:F_Pinky_1.R", "Colette_Armature/Skeleton:F_Pinky_2.R", "Colette_Armature/Skeleton:F_Pinky_3.R", "Colette_Armature/Skeleton:F_Pinky_4.R", "Colette_Armature/Skeleton:F_Ring_1.R", "Colette_Armature/Skeleton:F_Ring_2.R", "Colette_Armature/Skeleton:F_Ring_3.R", "Colette_Armature/Skeleton:F_Ring_4.R", "Colette_Armature/Skeleton:F_Thumb_1.R", "Colette_Armature/Skeleton:F_Thumb_2.R", "Colette_Armature/Skeleton:F_Thumb_3.R", "Colette_Armature/Skeleton:ForeArm.R", "Colette_Armature/Skeleton:ForeArmSkin1.R", "Colette_Armature/Skeleton:ForeArmSkin2.R", "Colette_Armature/Skeleton:ForeArmSkin3.R", "Colette_Armature/Skeleton:Hand.R", "Colette_Armature/Skeleton:HandMark_IK_FK.R", "Colette_Armature/Skeleton:Shoulder.R", "Colette_Armature/Skeleton:UpperArm.R", "Colette_Armature/Skeleton:UpperArmSkin1.R", "Colette_Armature/Skeleton:UpperArmSkin2.R", "Colette_Armature/Skeleton:UpperArmSkin3.R" ] + +[sub_resource type="AnimationNodeAnimation" id=39] +animation = "idle-loop" + +[sub_resource type="AnimationNodeAnimation" id=70] +animation = "idle-loop" + +[sub_resource type="AnimationNodeTransition" id=68] +input_count = 2 +xfade_time = 0.2 +input_0/name = "idle" +input_0/auto_advance = false +input_1/name = "aim" +input_1/auto_advance = false + +[sub_resource type="AnimationNodeAnimation" id=67] +animation = "aim_pistol-loop" + +[sub_resource type="AnimationNodeTransition" id=49] +resource_local_to_scene = true +input_count = 3 +xfade_time = 0.15 +input_0/name = "idle" +input_0/auto_advance = false +input_1/name = "strafe" +input_1/auto_advance = false +input_2/name = "walk" +input_2/auto_advance = false + +[sub_resource type="AnimationNodeAnimation" id=71] +animation = "walking-cycle-loop" + +[sub_resource type="AnimationNodeAnimation" id=72] +animation = "walking-cycle-loop" + +[sub_resource type="AnimationNodeAnimation" id=73] +animation = "walking-cycle-loop" + +[sub_resource type="AnimationNodeAnimation" id=74] +animation = "run-cycle-loop" + +[sub_resource type="AnimationNodeAnimation" id=79] +animation = "idle-loop" + +[sub_resource type="AnimationNodeBlendSpace2D" id=55] +resource_local_to_scene = true +blend_point_0/node = SubResource( 71 ) +blend_point_0/pos = Vector2( -1, 0 ) +blend_point_1/node = SubResource( 72 ) +blend_point_1/pos = Vector2( 0, -1 ) +blend_point_2/node = SubResource( 73 ) +blend_point_2/pos = Vector2( 1, 0 ) +blend_point_3/node = SubResource( 74 ) +blend_point_3/pos = Vector2( 0, 1 ) +blend_point_4/node = SubResource( 79 ) +blend_point_4/pos = Vector2( 0, 0 ) + +[sub_resource type="AnimationNodeAnimation" id=76] +animation = "run-cycle-loop" + +[sub_resource type="AnimationNodeAnimation" id=78] +animation = "walking_gun-cycle" + +[sub_resource type="AnimationNodeAnimation" id=80] +animation = "idle-loop" + +[sub_resource type="AnimationNodeBlendSpace2D" id=60] +resource_local_to_scene = true +blend_point_0/node = SubResource( 76 ) +blend_point_0/pos = Vector2( 1, 0 ) +blend_point_1/node = SubResource( 78 ) +blend_point_1/pos = Vector2( 0, 1 ) +blend_point_2/node = SubResource( 80 ) +blend_point_2/pos = Vector2( 0, 0 ) +min_space = Vector2( 0, 0 ) +x_label = "speed" +y_label = "gun" + +[sub_resource type="AnimationNodeBlendTree" id=30] +resource_local_to_scene = true +graph_offset = Vector2( -937.444, 37.3194 ) +nodes/Blend2/node = SubResource( 69 ) +nodes/Blend2/position = Vector2( 460, 80 ) +nodes/idle/node = SubResource( 39 ) +nodes/idle/position = Vector2( -340, -20 ) +nodes/idle1/node = SubResource( 70 ) +nodes/idle1/position = Vector2( 20, -140 ) +nodes/idle_aim/node = SubResource( 68 ) +nodes/idle_aim/position = Vector2( 220, -80 ) +nodes/output/position = Vector2( 760, 120 ) +nodes/shoot_pose/node = SubResource( 67 ) +nodes/shoot_pose/position = Vector2( -20, -20 ) +nodes/state/node = SubResource( 49 ) +nodes/state/position = Vector2( -80, 120 ) +nodes/strafe/node = SubResource( 55 ) +nodes/strafe/position = Vector2( -640, 40 ) +nodes/walk/node = SubResource( 60 ) +nodes/walk/position = Vector2( -640, 200 ) +node_connections = [ "state", 0, "idle", "state", 1, "strafe", "state", 2, "walk", "output", 0, "Blend2", "Blend2", 0, "state", "Blend2", 1, "idle_aim", "idle_aim", 0, "idle1", "idle_aim", 1, "shoot_pose" ] + +[sub_resource type="CapsuleShape" id=64] +radius = 0.68932 +height = 0.002 + +[sub_resource type="AudioStreamRandomPitch" id=35] +audio_stream = ExtResource( 7 ) + +[sub_resource type="AudioStreamRandomPitch" id=38] +audio_stream = ExtResource( 3 ) + +[sub_resource type="SphereShape" id=36] +radius = 20.0 + +[sub_resource type="PrismMesh" id=37] + +[node name="BadCat" type="KinematicBody"] +collision_layer = 4 +collision_mask = 23 +script = ExtResource( 1 ) + +[node name="PlayerModel" parent="." instance=ExtResource( 13 )] + +[node name="GunBone" type="BoneAttachment" parent="PlayerModel/Colette_Armature/Skeleton" index="0"] +transform = Transform( -0.0209218, -0.185609, -0.982401, 0.0101222, -0.982548, 0.185422, -0.999672, -0.00606411, 0.0224358, -0.201483, 0.742031, -0.0377114 ) +bone_name = "Hand.R" + +[node name="ShootFrom" type="Position3D" parent="PlayerModel/Colette_Armature/Skeleton/GunBone"] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.4, 0 ) + +[node name="ShootParticle" type="Particles" parent="PlayerModel/Colette_Armature/Skeleton/GunBone/ShootFrom"] +transform = Transform( 1, 2.04891e-08, 0, 3.21306e-08, 1, 5.58794e-09, 0, 0, 1, 0, 0, 0 ) +material_override = ExtResource( 9 ) +emitting = false +amount = 10 +lifetime = 0.3 +one_shot = true +explosiveness = 0.79 +local_coords = false +process_material = SubResource( 1 ) +draw_pass_1 = SubResource( 2 ) + +[node name="MuzzleFlash" type="Particles" parent="PlayerModel/Colette_Armature/Skeleton/GunBone/ShootFrom"] +transform = Transform( 1, 0, -2.00234e-08, 1.21072e-08, -4.37722e-08, -1, -2.98023e-08, 1, -4.74975e-08, 0, 0, 0 ) +material_override = SubResource( 3 ) +emitting = false +amount = 1 +lifetime = 0.1 +one_shot = true +explosiveness = 1.0 +process_material = SubResource( 8 ) +draw_pass_1 = ExtResource( 10 ) + +[node name="ChestBone" type="BoneAttachment" parent="PlayerModel/Colette_Armature/Skeleton" index="1"] +transform = Transform( 1, 9.83052e-08, -4.4973e-07, -9.24421e-08, 0.998489, -0.0538833, 3.5868e-07, 0.0538833, 0.998489, 6.63939e-09, 1.00081, 0.0376625 ) +bone_name = "Chest" + +[node name="Hitbox" type="KinematicBody" parent="PlayerModel/Colette_Armature/Skeleton/ChestBone"] +transform = Transform( 0.697, 4.07329e-05, 0.000196172, -2.55566e-05, 1.19195, 0.00618147, -0.000195948, -0.0105715, 0.696972, -7.45737e-05, -0.195816, -0.0145013 ) +collision_layer = 64 +collision_mask = 0 +script = ExtResource( 16 ) +node_with_hit = NodePath("../../../../..") + +[node name="CollisionShape" type="CollisionShape" parent="PlayerModel/Colette_Armature/Skeleton/ChestBone/Hitbox"] +transform = Transform( 1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0, 0 ) +shape = SubResource( 41 ) + +[node name="Colette_Mesh" parent="PlayerModel/Colette_Armature/Skeleton" index="2"] +material/0 = ExtResource( 12 ) +material/1 = ExtResource( 12 ) +material/2 = ExtResource( 2 ) +material/3 = ExtResource( 18 ) +material/4 = ExtResource( 17 ) +material/5 = ExtResource( 14 ) +material/6 = ExtResource( 15 ) + +[node name="RootMotionView" type="RootMotionView" parent="."] +animation_path = NodePath("../AnimationTree") + +[node name="AnimationTree" type="AnimationTree" parent="."] +tree_root = SubResource( 30 ) +anim_player = NodePath("../PlayerModel/AnimationPlayer") +active = true +process_mode = 0 +root_motion_track = NodePath("Colette_Armature/Skeleton:Root") +parameters/Blend2/blend_amount = 1.0 +parameters/idle_aim/current = 0 +parameters/state/current = 0 +parameters/strafe/blend_position = Vector2( 0, 0 ) +parameters/walk/blend_position = Vector2( 0, 0 ) + +[node name="CapsuleShape" type="CollisionShape" parent="."] +transform = Transform( 0.999835, 0.0162343, -0.00821726, 0.0079643, 0.0155836, 0.999847, 0.0163598, -0.999747, 0.0154518, 0, 0.701, 0 ) +shape = SubResource( 64 ) + +[node name="SoundEffects" type="Node" parent="."] + +[node name="Step" type="AudioStreamPlayer" parent="SoundEffects"] +stream = ExtResource( 4 ) + +[node name="Jump" type="AudioStreamPlayer" parent="SoundEffects"] +stream = ExtResource( 5 ) + +[node name="Land" type="AudioStreamPlayer" parent="SoundEffects"] +stream = ExtResource( 6 ) + +[node name="Shoot" type="AudioStreamPlayer" parent="SoundEffects"] +stream = SubResource( 35 ) + +[node name="Explosion" type="AudioStreamPlayer3D" parent="SoundEffects"] +stream = ExtResource( 8 ) +unit_db = 12.0 +unit_size = 15.0 + +[node name="Hit" type="AudioStreamPlayer3D" parent="SoundEffects"] +stream = SubResource( 38 ) +unit_db = 3.0 +unit_size = 15.0 + +[node name="FireCooldown" type="Timer" parent="."] +wait_time = 0.4 +one_shot = true +autostart = true + +[node name="PlayerDetectionArea" type="Area" parent="."] +collision_layer = 2 +collision_mask = 2 + +[node name="CollisionShape" type="CollisionShape" parent="PlayerDetectionArea"] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.00589287, -1.19209e-07, 0.000506759 ) +shape = SubResource( 36 ) + +[node name="debug_marker" type="MeshInstance" parent="."] +transform = Transform( 0.245, 0, 0, 0, 0.205, 0, 0, 0, 0.115, 0, 0, 3.06692 ) +visible = false +mesh = SubResource( 37 ) +material/0 = null + +[connection signal="body_entered" from="PlayerDetectionArea" to="." method="_on_Area_body_entered"] +[connection signal="body_exited" from="PlayerDetectionArea" to="." method="_on_Area_body_exited"] + +[editable path="PlayerModel"] diff --git a/enemies/bad_cat/bullet/blue_myst.png b/enemies/bad_cat/bullet/blue_myst.png new file mode 100644 index 0000000..bbb84a8 Binary files /dev/null and b/enemies/bad_cat/bullet/blue_myst.png differ diff --git a/enemies/bad_cat/bullet/blue_myst.png.import b/enemies/bad_cat/bullet/blue_myst.png.import new file mode 100644 index 0000000..7b37827 --- /dev/null +++ b/enemies/bad_cat/bullet/blue_myst.png.import @@ -0,0 +1,36 @@ +[remap] + +importer="texture" +type="StreamTexture" +path.s3tc="res://.import/blue_myst.png-7727ef8a9a4fafec2d4a943494dcd294.s3tc.stex" +metadata={ +"imported_formats": [ "s3tc" ], +"vram_texture": true +} + +[deps] + +source_file="res://enemies/bad_cat/bullet/blue_myst.png" +dest_files=[ "res://.import/blue_myst.png-7727ef8a9a4fafec2d4a943494dcd294.s3tc.stex" ] + +[params] + +compress/mode=2 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=true +flags/filter=true +flags/mipmaps=true +flags/anisotropic=false +flags/srgb=1 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/enemies/bad_cat/bullet/bullet.gd b/enemies/bad_cat/bullet/bullet.gd new file mode 100644 index 0000000..932be28 --- /dev/null +++ b/enemies/bad_cat/bullet/bullet.gd @@ -0,0 +1,24 @@ +extends KinematicBody + +const BULLET_VELOCITY = 20 + +var time_alive = 5 +var hit = false + +onready var animation_player = $AnimationPlayer +onready var collision_shape = $CollisionShape + +func _physics_process(delta): + if hit: + return + time_alive -= delta + if time_alive < 0: + hit = true + animation_player.play("explode") + var col = move_and_collide(-delta * BULLET_VELOCITY * transform.basis.z) + if col: + if col.collider and col.collider.has_method("hit"): + col.collider.hit(col) + collision_shape.disabled = true + animation_player.play("explode") + hit = true diff --git a/enemies/bad_cat/bullet/bullet.tscn b/enemies/bad_cat/bullet/bullet.tscn new file mode 100644 index 0000000..9c458a9 --- /dev/null +++ b/enemies/bad_cat/bullet/bullet.tscn @@ -0,0 +1,405 @@ +[gd_scene load_steps=38 format=2] + +[ext_resource path="res://player/bullet/bullet.gd" type="Script" id=1] +[ext_resource path="res://effects_shared/bullet/BlastMesh_Sphere.mesh" type="ArrayMesh" id=2] +[ext_resource path="res://player/bullet/bullet_explode.wav" type="AudioStream" id=3] +[ext_resource path="res://effects_shared/bullet/effect/BlastMaterial.tres" type="Material" id=4] +[ext_resource path="res://effects_shared/bullet/effect/light_rays_material.tres" type="Material" id=5] +[ext_resource path="res://effects_shared/bullet/effect/LightParticle.tres" type="Material" id=6] +[ext_resource path="res://effects_shared/bullet/effect/SmokeParticles.tres" type="Material" id=7] +[ext_resource path="res://effects_shared/bullet/effect/SmokeOverrideMaterial.tres" type="Material" id=8] +[ext_resource path="res://player/bullet/bullet_material.tres" type="Material" id=9] +[ext_resource path="res://effects_shared/bullet/effect/MainBodyParticle.tres" type="Material" id=10] +[ext_resource path="res://effects_shared/bullet/effect/InnerBlastLightParticle.tres" type="Material" id=11] +[ext_resource path="res://effects_shared/bullet/effect/BlastSparksParticles.tres" type="Material" id=12] +[ext_resource path="res://effects_shared/bullet/effect/TrailParticle.tres" type="Material" id=13] + +[sub_resource type="SphereMesh" id=1] +radial_segments = 9 +rings = 5 + +[sub_resource type="SphereShape" id=2] +radius = 0.170413 + +[sub_resource type="Animation" id=3] +resource_name = "explode" +length = 3.0 +step = 0.05 +tracks/0/type = "value" +tracks/0/path = NodePath("OmniLight:light_energy") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0, 0.25, 0.85 ), +"transitions": PoolRealArray( 1, 1, 1 ), +"update": 0, +"values": [ 1.5, 3.0, 0.0 ] +} +tracks/1/type = "method" +tracks/1/path = NodePath(".") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 1.5 ), +"transitions": PoolRealArray( 1 ), +"values": [ { +"args": [ ], +"method": "queue_free" +} ] +} +tracks/2/type = "value" +tracks/2/path = NodePath("BulletBody/MainBody:emitting") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ false ] +} +tracks/3/type = "value" +tracks/3/path = NodePath("MeshInstance:visible") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ false ] +} +tracks/4/type = "value" +tracks/4/path = NodePath("ExplosionAudio:playing") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/keys = { +"times": PoolRealArray( 0.1 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ true ] +} +tracks/5/type = "value" +tracks/5/path = NodePath("Blast/BlastParticle:emitting") +tracks/5/interp = 1 +tracks/5/loop_wrap = false +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ true ] +} +tracks/6/type = "value" +tracks/6/path = NodePath("Blast/LightBlast:emitting") +tracks/6/interp = 1 +tracks/6/loop_wrap = false +tracks/6/imported = false +tracks/6/enabled = true +tracks/6/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ true ] +} +tracks/7/type = "value" +tracks/7/path = NodePath("Blast/BlastSparks:emitting") +tracks/7/interp = 1 +tracks/7/loop_wrap = true +tracks/7/imported = false +tracks/7/enabled = true +tracks/7/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ true ] +} +tracks/8/type = "value" +tracks/8/path = NodePath("Blast/Smoke:emitting") +tracks/8/interp = 1 +tracks/8/loop_wrap = true +tracks/8/imported = false +tracks/8/enabled = true +tracks/8/keys = { +"times": PoolRealArray( 0.2 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ true ] +} +tracks/9/type = "value" +tracks/9/path = NodePath("Blast/LightParticle:emitting") +tracks/9/interp = 1 +tracks/9/loop_wrap = true +tracks/9/imported = false +tracks/9/enabled = true +tracks/9/keys = { +"times": PoolRealArray( 0.05 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ true ] +} +tracks/10/type = "value" +tracks/10/path = NodePath("Blast/InnerBlastLight:emitting") +tracks/10/interp = 1 +tracks/10/loop_wrap = true +tracks/10/imported = false +tracks/10/enabled = true +tracks/10/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ true ] +} +tracks/11/type = "value" +tracks/11/path = NodePath("BulletBody/Trail:emitting") +tracks/11/interp = 1 +tracks/11/loop_wrap = true +tracks/11/imported = false +tracks/11/enabled = true +tracks/11/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ false ] +} + +[sub_resource type="Gradient" id=4] +offsets = PoolRealArray( 0, 0.318519, 1 ) +colors = PoolColorArray( 0.828125, 1, 1, 1, 0, 1, 1, 1, 0, 0.0829163, 0.964844, 0 ) + +[sub_resource type="GradientTexture" id=5] +gradient = SubResource( 4 ) +width = 128 + +[sub_resource type="Curve" id=6] +_data = [ Vector2( 0, 0 ), 0.0, 3.2107, 0, 0, Vector2( 0.575949, 1 ), 1.59619e-07, 0.0, 0, 0 ] + +[sub_resource type="CurveTexture" id=7] +width = 128 +curve = SubResource( 6 ) + +[sub_resource type="ParticlesMaterial" id=8] +spread = 0.0 +gravity = Vector3( 0, 0, 0 ) +scale = 0.7 +scale_curve = SubResource( 7 ) +color_ramp = SubResource( 5 ) + +[sub_resource type="Gradient" id=9] +offsets = PoolRealArray( 0, 0.703704 ) +colors = PoolColorArray( 1, 1, 1, 1, 1, 1, 1, 0 ) + +[sub_resource type="GradientTexture" id=10] +gradient = SubResource( 9 ) +width = 128 + +[sub_resource type="Curve" id=11] +_data = [ Vector2( 0, 0.236364 ), 0.0, 0.0, 0, 0, Vector2( 0.259494, 1 ), 0.0, 0.0, 0, 0, Vector2( 1, 0.763636 ), 0.0, 0.0, 0, 0 ] + +[sub_resource type="CurveTexture" id=12] +width = 128 +curve = SubResource( 11 ) + +[sub_resource type="ParticlesMaterial" id=13] +gravity = Vector3( 0, 0, 0 ) +scale = 0.8 +scale_curve = SubResource( 12 ) +color_ramp = SubResource( 10 ) + +[sub_resource type="QuadMesh" id=14] +size = Vector2( 2, 2 ) + +[sub_resource type="Shader" id=15] +code = "shader_type spatial; +render_mode blend_mix,depth_draw_alpha_prepass,cull_back,diffuse_burley,specular_schlick_ggx; +uniform vec4 albedo : hint_color; +uniform sampler2D texture_albedo : hint_albedo; +uniform float point_size : hint_range(0,128); +uniform float emission_energy = 2.0; + + +void fragment() { + vec2 base_uv = UV; + vec4 albedo_tex = texture(texture_albedo,base_uv); + albedo_tex *= COLOR; + ALBEDO = albedo.rgb * albedo_tex.rgb; + EMISSION = ALBEDO * emission_energy; +} +" + +[sub_resource type="ShaderMaterial" id=16] +shader = SubResource( 15 ) +shader_param/albedo = Color( 1, 1, 1, 1 ) +shader_param/point_size = 1.0 +shader_param/emission_energy = 7.34 + +[sub_resource type="SphereMesh" id=22] +radius = 0.03 +height = 0.06 + +[sub_resource type="QuadMesh" id=31] +size = Vector2( 2, 2 ) + +[sub_resource type="SpatialMaterial" id=32] +albedo_color = Color( 0.00784314, 0.988235, 0.988235, 1 ) +emission_enabled = true +emission = Color( 0, 0.486275, 1, 1 ) +emission_energy = 4.0 +emission_operator = 0 +emission_on_uv2 = false + +[sub_resource type="SphereMesh" id=38] +radius = 0.05 +height = 0.1 +radial_segments = 4 +rings = 4 + +[sub_resource type="SphereMesh" id=42] +radius = 0.3 +height = 0.6 + +[sub_resource type="SpatialMaterial" id=48] +flags_transparent = true +vertex_color_use_as_albedo = true +vertex_color_is_srgb = true +roughness = 0.0 +emission_enabled = true +emission = Color( 0, 0.929412, 1, 1 ) +emission_energy = 2.0 +emission_operator = 0 +emission_on_uv2 = false + +[sub_resource type="SphereMesh" id=49] +material = SubResource( 48 ) +radius = 0.1 +height = 0.2 +radial_segments = 5 +rings = 3 + +[sub_resource type="SphereMesh" id=55] +radius = 0.05 +height = 0.3 +radial_segments = 4 +rings = 4 + +[node name="Bullet" type="KinematicBody"] +collision_layer = 0 +collision_mask = 97 +script = ExtResource( 1 ) + +[node name="MeshInstance" type="MeshInstance" parent="."] +transform = Transform( 0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, 0, 0, 0 ) +visible = false +cast_shadow = 0 +mesh = SubResource( 1 ) +material/0 = null + +[node name="OmniLight" type="OmniLight" parent="."] +light_color = Color( 0, 1, 0.952941, 1 ) +light_energy = 0.778846 +light_bake_mode = 0 +shadow_enabled = true +omni_range = 3.0 +omni_attenuation = 2.0 +omni_shadow_mode = 0 + +[node name="CollisionShape" type="CollisionShape" parent="."] +shape = SubResource( 2 ) + +[node name="AnimationPlayer" type="AnimationPlayer" parent="."] +anims/explode = SubResource( 3 ) + +[node name="ExplosionAudio" type="AudioStreamPlayer3D" parent="."] +stream = ExtResource( 3 ) +unit_size = 20.0 + +[node name="Blast" type="Spatial" parent="."] + +[node name="BlastParticle" type="Particles" parent="Blast"] +material_override = ExtResource( 4 ) +emitting = false +amount = 1 +lifetime = 0.6 +one_shot = true +process_material = SubResource( 8 ) +draw_pass_1 = ExtResource( 2 ) + +[node name="LightBlast" type="Particles" parent="Blast"] +material_override = ExtResource( 5 ) +emitting = false +amount = 1 +lifetime = 0.15 +one_shot = true +process_material = SubResource( 13 ) +draw_pass_1 = SubResource( 14 ) + +[node name="BlastSparks" type="Particles" parent="Blast"] +material_override = SubResource( 16 ) +emitting = false +amount = 10 +lifetime = 0.3 +one_shot = true +explosiveness = 0.92 +process_material = ExtResource( 12 ) +draw_pass_1 = SubResource( 22 ) + +[node name="Smoke" type="Particles" parent="Blast"] +material_override = ExtResource( 8 ) +emitting = false +amount = 5 +lifetime = 1.5 +one_shot = true +explosiveness = 1.0 +process_material = ExtResource( 7 ) +draw_pass_1 = SubResource( 31 ) + +[node name="LightParticle" type="Particles" parent="Blast"] +material_override = SubResource( 32 ) +emitting = false +amount = 3 +lifetime = 0.8 +one_shot = true +explosiveness = 0.84 +process_material = ExtResource( 6 ) +draw_pass_1 = SubResource( 38 ) + +[node name="InnerBlastLight" type="Particles" parent="Blast"] +material_override = ExtResource( 9 ) +emitting = false +amount = 1 +lifetime = 0.2 +one_shot = true +process_material = ExtResource( 11 ) +draw_pass_1 = SubResource( 42 ) + +[node name="MeshInstance2" type="MeshInstance" parent="."] +visible = false +material_override = ExtResource( 4 ) +mesh = ExtResource( 2 ) +material/0 = null + +[node name="BulletBody" type="Spatial" parent="."] + +[node name="MainBody" type="Particles" parent="BulletBody"] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.00988865, 0, 0 ) +amount = 100 +lifetime = 0.1 +local_coords = false +process_material = ExtResource( 10 ) +draw_pass_1 = SubResource( 49 ) + +[node name="Trail" type="Particles" parent="BulletBody"] +material_override = ExtResource( 9 ) +amount = 10 +local_coords = false +process_material = ExtResource( 13 ) +draw_pass_1 = SubResource( 55 ) diff --git a/enemies/bad_cat/bullet/bullet_explode.wav b/enemies/bad_cat/bullet/bullet_explode.wav new file mode 100644 index 0000000..7bcebd6 Binary files /dev/null and b/enemies/bad_cat/bullet/bullet_explode.wav differ diff --git a/enemies/bad_cat/bullet/bullet_explode.wav.import b/enemies/bad_cat/bullet/bullet_explode.wav.import new file mode 100644 index 0000000..ecd2e42 --- /dev/null +++ b/enemies/bad_cat/bullet/bullet_explode.wav.import @@ -0,0 +1,21 @@ +[remap] + +importer="wav" +type="AudioStreamSample" +path="res://.import/bullet_explode.wav-780facb1896cb2021cdaeb47e5a3e1c7.sample" + +[deps] + +source_file="res://enemies/bad_cat/bullet/bullet_explode.wav" +dest_files=[ "res://.import/bullet_explode.wav-780facb1896cb2021cdaeb47e5a3e1c7.sample" ] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=true +edit/normalize=true +edit/loop=false +compress/mode=0 diff --git a/enemies/bad_cat/bullet/bullet_material.tres b/enemies/bad_cat/bullet/bullet_material.tres new file mode 100644 index 0000000..ce798e3 --- /dev/null +++ b/enemies/bad_cat/bullet/bullet_material.tres @@ -0,0 +1,11 @@ +[gd_resource type="SpatialMaterial" format=2] + +[resource] +vertex_color_use_as_albedo = true +albedo_color = Color( 0, 0, 0, 1 ) +roughness = 0.0 +emission_enabled = true +emission = Color( 0.109804, 0.894118, 1, 1 ) +emission_energy = 7.34 +emission_operator = 0 +emission_on_uv2 = false diff --git a/enemies/bad_cat/model/Bandana.material b/enemies/bad_cat/model/Bandana.material new file mode 100644 index 0000000..98251c8 Binary files /dev/null and b/enemies/bad_cat/model/Bandana.material differ diff --git a/enemies/bad_cat/model/Colette_Body.material b/enemies/bad_cat/model/Colette_Body.material new file mode 100644 index 0000000..58bfd9f Binary files /dev/null and b/enemies/bad_cat/model/Colette_Body.material differ diff --git a/enemies/bad_cat/model/Colette_Ears.material b/enemies/bad_cat/model/Colette_Ears.material new file mode 100644 index 0000000..478b42f Binary files /dev/null and b/enemies/bad_cat/model/Colette_Ears.material differ diff --git a/enemies/bad_cat/model/Colette_Hair.material b/enemies/bad_cat/model/Colette_Hair.material new file mode 100644 index 0000000..6a5aaaa Binary files /dev/null and b/enemies/bad_cat/model/Colette_Hair.material differ diff --git a/enemies/bad_cat/model/Colette_Head.material b/enemies/bad_cat/model/Colette_Head.material new file mode 100644 index 0000000..21468d5 Binary files /dev/null and b/enemies/bad_cat/model/Colette_Head.material differ diff --git a/enemies/bad_cat/model/muzzle_flash_particle_mesh.glb b/enemies/bad_cat/model/muzzle_flash_particle_mesh.glb new file mode 100644 index 0000000..8edc8b2 Binary files /dev/null and b/enemies/bad_cat/model/muzzle_flash_particle_mesh.glb differ diff --git a/enemies/bad_cat/model/muzzle_flash_particle_mesh.glb.import b/enemies/bad_cat/model/muzzle_flash_particle_mesh.glb.import new file mode 100644 index 0000000..3dcc9ae --- /dev/null +++ b/enemies/bad_cat/model/muzzle_flash_particle_mesh.glb.import @@ -0,0 +1,1065 @@ +[remap] + +importer="scene" +type="PackedScene" +path="res://.import/muzzle_flash_particle_mesh.glb-059c60f8c225d7b58816ef8c803314f7.scn" + +[deps] + +source_file="res://enemies/bad_cat/model/muzzle_flash_particle_mesh.glb" +dest_files=[ "res://.import/muzzle_flash_particle_mesh.glb-059c60f8c225d7b58816ef8c803314f7.scn" ] + +[params] + +nodes/root_type="Spatial" +nodes/root_name="Scene Root" +nodes/root_scale=1.0 +nodes/custom_script="" +nodes/storage=0 +nodes/use_legacy_names=false +materials/location=1 +materials/storage=2 +materials/keep_on_reimport=true +meshes/octahedral_compression=true +meshes/compress=true +meshes/ensure_tangents=true +meshes/storage=1 +meshes/light_baking=0 +meshes/lightmap_texel_size=0.1 +skins/use_named_skins=true +external_files/store_in_subdir=false +animation/import=true +animation/fps=15 +animation/filter_script="" +animation/storage=false +animation/keep_custom_tracks=false +animation/optimizer/enabled=true +animation/optimizer/max_linear_error=0.05 +animation/optimizer/max_angular_error=0.01 +animation/optimizer/max_angle=22 +animation/optimizer/remove_unused_tracks=true +animation/clips/amount=0 +animation/clip_1/name="" +animation/clip_1/start_frame=0 +animation/clip_1/end_frame=0 +animation/clip_1/loops=false +animation/clip_2/name="" +animation/clip_2/start_frame=0 +animation/clip_2/end_frame=0 +animation/clip_2/loops=false +animation/clip_3/name="" +animation/clip_3/start_frame=0 +animation/clip_3/end_frame=0 +animation/clip_3/loops=false +animation/clip_4/name="" +animation/clip_4/start_frame=0 +animation/clip_4/end_frame=0 +animation/clip_4/loops=false +animation/clip_5/name="" +animation/clip_5/start_frame=0 +animation/clip_5/end_frame=0 +animation/clip_5/loops=false +animation/clip_6/name="" +animation/clip_6/start_frame=0 +animation/clip_6/end_frame=0 +animation/clip_6/loops=false +animation/clip_7/name="" +animation/clip_7/start_frame=0 +animation/clip_7/end_frame=0 +animation/clip_7/loops=false +animation/clip_8/name="" +animation/clip_8/start_frame=0 +animation/clip_8/end_frame=0 +animation/clip_8/loops=false +animation/clip_9/name="" +animation/clip_9/start_frame=0 +animation/clip_9/end_frame=0 +animation/clip_9/loops=false +animation/clip_10/name="" +animation/clip_10/start_frame=0 +animation/clip_10/end_frame=0 +animation/clip_10/loops=false +animation/clip_11/name="" +animation/clip_11/start_frame=0 +animation/clip_11/end_frame=0 +animation/clip_11/loops=false +animation/clip_12/name="" +animation/clip_12/start_frame=0 +animation/clip_12/end_frame=0 +animation/clip_12/loops=false +animation/clip_13/name="" +animation/clip_13/start_frame=0 +animation/clip_13/end_frame=0 +animation/clip_13/loops=false +animation/clip_14/name="" +animation/clip_14/start_frame=0 +animation/clip_14/end_frame=0 +animation/clip_14/loops=false +animation/clip_15/name="" +animation/clip_15/start_frame=0 +animation/clip_15/end_frame=0 +animation/clip_15/loops=false +animation/clip_16/name="" +animation/clip_16/start_frame=0 +animation/clip_16/end_frame=0 +animation/clip_16/loops=false +animation/clip_17/name="" +animation/clip_17/start_frame=0 +animation/clip_17/end_frame=0 +animation/clip_17/loops=false +animation/clip_18/name="" +animation/clip_18/start_frame=0 +animation/clip_18/end_frame=0 +animation/clip_18/loops=false +animation/clip_19/name="" +animation/clip_19/start_frame=0 +animation/clip_19/end_frame=0 +animation/clip_19/loops=false +animation/clip_20/name="" +animation/clip_20/start_frame=0 +animation/clip_20/end_frame=0 +animation/clip_20/loops=false +animation/clip_21/name="" +animation/clip_21/start_frame=0 +animation/clip_21/end_frame=0 +animation/clip_21/loops=false +animation/clip_22/name="" +animation/clip_22/start_frame=0 +animation/clip_22/end_frame=0 +animation/clip_22/loops=false +animation/clip_23/name="" +animation/clip_23/start_frame=0 +animation/clip_23/end_frame=0 +animation/clip_23/loops=false +animation/clip_24/name="" +animation/clip_24/start_frame=0 +animation/clip_24/end_frame=0 +animation/clip_24/loops=false +animation/clip_25/name="" +animation/clip_25/start_frame=0 +animation/clip_25/end_frame=0 +animation/clip_25/loops=false +animation/clip_26/name="" +animation/clip_26/start_frame=0 +animation/clip_26/end_frame=0 +animation/clip_26/loops=false +animation/clip_27/name="" +animation/clip_27/start_frame=0 +animation/clip_27/end_frame=0 +animation/clip_27/loops=false +animation/clip_28/name="" +animation/clip_28/start_frame=0 +animation/clip_28/end_frame=0 +animation/clip_28/loops=false +animation/clip_29/name="" +animation/clip_29/start_frame=0 +animation/clip_29/end_frame=0 +animation/clip_29/loops=false +animation/clip_30/name="" +animation/clip_30/start_frame=0 +animation/clip_30/end_frame=0 +animation/clip_30/loops=false +animation/clip_31/name="" +animation/clip_31/start_frame=0 +animation/clip_31/end_frame=0 +animation/clip_31/loops=false +animation/clip_32/name="" +animation/clip_32/start_frame=0 +animation/clip_32/end_frame=0 +animation/clip_32/loops=false +animation/clip_33/name="" +animation/clip_33/start_frame=0 +animation/clip_33/end_frame=0 +animation/clip_33/loops=false +animation/clip_34/name="" +animation/clip_34/start_frame=0 +animation/clip_34/end_frame=0 +animation/clip_34/loops=false +animation/clip_35/name="" +animation/clip_35/start_frame=0 +animation/clip_35/end_frame=0 +animation/clip_35/loops=false +animation/clip_36/name="" +animation/clip_36/start_frame=0 +animation/clip_36/end_frame=0 +animation/clip_36/loops=false +animation/clip_37/name="" +animation/clip_37/start_frame=0 +animation/clip_37/end_frame=0 +animation/clip_37/loops=false +animation/clip_38/name="" +animation/clip_38/start_frame=0 +animation/clip_38/end_frame=0 +animation/clip_38/loops=false +animation/clip_39/name="" +animation/clip_39/start_frame=0 +animation/clip_39/end_frame=0 +animation/clip_39/loops=false +animation/clip_40/name="" +animation/clip_40/start_frame=0 +animation/clip_40/end_frame=0 +animation/clip_40/loops=false +animation/clip_41/name="" +animation/clip_41/start_frame=0 +animation/clip_41/end_frame=0 +animation/clip_41/loops=false +animation/clip_42/name="" +animation/clip_42/start_frame=0 +animation/clip_42/end_frame=0 +animation/clip_42/loops=false +animation/clip_43/name="" +animation/clip_43/start_frame=0 +animation/clip_43/end_frame=0 +animation/clip_43/loops=false +animation/clip_44/name="" +animation/clip_44/start_frame=0 +animation/clip_44/end_frame=0 +animation/clip_44/loops=false +animation/clip_45/name="" +animation/clip_45/start_frame=0 +animation/clip_45/end_frame=0 +animation/clip_45/loops=false +animation/clip_46/name="" +animation/clip_46/start_frame=0 +animation/clip_46/end_frame=0 +animation/clip_46/loops=false +animation/clip_47/name="" +animation/clip_47/start_frame=0 +animation/clip_47/end_frame=0 +animation/clip_47/loops=false +animation/clip_48/name="" +animation/clip_48/start_frame=0 +animation/clip_48/end_frame=0 +animation/clip_48/loops=false +animation/clip_49/name="" +animation/clip_49/start_frame=0 +animation/clip_49/end_frame=0 +animation/clip_49/loops=false +animation/clip_50/name="" +animation/clip_50/start_frame=0 +animation/clip_50/end_frame=0 +animation/clip_50/loops=false +animation/clip_51/name="" +animation/clip_51/start_frame=0 +animation/clip_51/end_frame=0 +animation/clip_51/loops=false +animation/clip_52/name="" +animation/clip_52/start_frame=0 +animation/clip_52/end_frame=0 +animation/clip_52/loops=false +animation/clip_53/name="" +animation/clip_53/start_frame=0 +animation/clip_53/end_frame=0 +animation/clip_53/loops=false +animation/clip_54/name="" +animation/clip_54/start_frame=0 +animation/clip_54/end_frame=0 +animation/clip_54/loops=false +animation/clip_55/name="" +animation/clip_55/start_frame=0 +animation/clip_55/end_frame=0 +animation/clip_55/loops=false +animation/clip_56/name="" +animation/clip_56/start_frame=0 +animation/clip_56/end_frame=0 +animation/clip_56/loops=false +animation/clip_57/name="" +animation/clip_57/start_frame=0 +animation/clip_57/end_frame=0 +animation/clip_57/loops=false +animation/clip_58/name="" +animation/clip_58/start_frame=0 +animation/clip_58/end_frame=0 +animation/clip_58/loops=false +animation/clip_59/name="" +animation/clip_59/start_frame=0 +animation/clip_59/end_frame=0 +animation/clip_59/loops=false +animation/clip_60/name="" +animation/clip_60/start_frame=0 +animation/clip_60/end_frame=0 +animation/clip_60/loops=false +animation/clip_61/name="" +animation/clip_61/start_frame=0 +animation/clip_61/end_frame=0 +animation/clip_61/loops=false +animation/clip_62/name="" +animation/clip_62/start_frame=0 +animation/clip_62/end_frame=0 +animation/clip_62/loops=false +animation/clip_63/name="" +animation/clip_63/start_frame=0 +animation/clip_63/end_frame=0 +animation/clip_63/loops=false +animation/clip_64/name="" +animation/clip_64/start_frame=0 +animation/clip_64/end_frame=0 +animation/clip_64/loops=false +animation/clip_65/name="" +animation/clip_65/start_frame=0 +animation/clip_65/end_frame=0 +animation/clip_65/loops=false +animation/clip_66/name="" +animation/clip_66/start_frame=0 +animation/clip_66/end_frame=0 +animation/clip_66/loops=false +animation/clip_67/name="" +animation/clip_67/start_frame=0 +animation/clip_67/end_frame=0 +animation/clip_67/loops=false +animation/clip_68/name="" +animation/clip_68/start_frame=0 +animation/clip_68/end_frame=0 +animation/clip_68/loops=false +animation/clip_69/name="" +animation/clip_69/start_frame=0 +animation/clip_69/end_frame=0 +animation/clip_69/loops=false +animation/clip_70/name="" +animation/clip_70/start_frame=0 +animation/clip_70/end_frame=0 +animation/clip_70/loops=false +animation/clip_71/name="" +animation/clip_71/start_frame=0 +animation/clip_71/end_frame=0 +animation/clip_71/loops=false +animation/clip_72/name="" +animation/clip_72/start_frame=0 +animation/clip_72/end_frame=0 +animation/clip_72/loops=false +animation/clip_73/name="" +animation/clip_73/start_frame=0 +animation/clip_73/end_frame=0 +animation/clip_73/loops=false +animation/clip_74/name="" +animation/clip_74/start_frame=0 +animation/clip_74/end_frame=0 +animation/clip_74/loops=false +animation/clip_75/name="" +animation/clip_75/start_frame=0 +animation/clip_75/end_frame=0 +animation/clip_75/loops=false +animation/clip_76/name="" +animation/clip_76/start_frame=0 +animation/clip_76/end_frame=0 +animation/clip_76/loops=false +animation/clip_77/name="" +animation/clip_77/start_frame=0 +animation/clip_77/end_frame=0 +animation/clip_77/loops=false +animation/clip_78/name="" +animation/clip_78/start_frame=0 +animation/clip_78/end_frame=0 +animation/clip_78/loops=false +animation/clip_79/name="" +animation/clip_79/start_frame=0 +animation/clip_79/end_frame=0 +animation/clip_79/loops=false +animation/clip_80/name="" +animation/clip_80/start_frame=0 +animation/clip_80/end_frame=0 +animation/clip_80/loops=false +animation/clip_81/name="" +animation/clip_81/start_frame=0 +animation/clip_81/end_frame=0 +animation/clip_81/loops=false +animation/clip_82/name="" +animation/clip_82/start_frame=0 +animation/clip_82/end_frame=0 +animation/clip_82/loops=false +animation/clip_83/name="" +animation/clip_83/start_frame=0 +animation/clip_83/end_frame=0 +animation/clip_83/loops=false +animation/clip_84/name="" +animation/clip_84/start_frame=0 +animation/clip_84/end_frame=0 +animation/clip_84/loops=false +animation/clip_85/name="" +animation/clip_85/start_frame=0 +animation/clip_85/end_frame=0 +animation/clip_85/loops=false +animation/clip_86/name="" +animation/clip_86/start_frame=0 +animation/clip_86/end_frame=0 +animation/clip_86/loops=false +animation/clip_87/name="" +animation/clip_87/start_frame=0 +animation/clip_87/end_frame=0 +animation/clip_87/loops=false +animation/clip_88/name="" +animation/clip_88/start_frame=0 +animation/clip_88/end_frame=0 +animation/clip_88/loops=false +animation/clip_89/name="" +animation/clip_89/start_frame=0 +animation/clip_89/end_frame=0 +animation/clip_89/loops=false +animation/clip_90/name="" +animation/clip_90/start_frame=0 +animation/clip_90/end_frame=0 +animation/clip_90/loops=false +animation/clip_91/name="" +animation/clip_91/start_frame=0 +animation/clip_91/end_frame=0 +animation/clip_91/loops=false +animation/clip_92/name="" +animation/clip_92/start_frame=0 +animation/clip_92/end_frame=0 +animation/clip_92/loops=false +animation/clip_93/name="" +animation/clip_93/start_frame=0 +animation/clip_93/end_frame=0 +animation/clip_93/loops=false +animation/clip_94/name="" +animation/clip_94/start_frame=0 +animation/clip_94/end_frame=0 +animation/clip_94/loops=false +animation/clip_95/name="" +animation/clip_95/start_frame=0 +animation/clip_95/end_frame=0 +animation/clip_95/loops=false +animation/clip_96/name="" +animation/clip_96/start_frame=0 +animation/clip_96/end_frame=0 +animation/clip_96/loops=false +animation/clip_97/name="" +animation/clip_97/start_frame=0 +animation/clip_97/end_frame=0 +animation/clip_97/loops=false +animation/clip_98/name="" +animation/clip_98/start_frame=0 +animation/clip_98/end_frame=0 +animation/clip_98/loops=false +animation/clip_99/name="" +animation/clip_99/start_frame=0 +animation/clip_99/end_frame=0 +animation/clip_99/loops=false +animation/clip_100/name="" +animation/clip_100/start_frame=0 +animation/clip_100/end_frame=0 +animation/clip_100/loops=false +animation/clip_101/name="" +animation/clip_101/start_frame=0 +animation/clip_101/end_frame=0 +animation/clip_101/loops=false +animation/clip_102/name="" +animation/clip_102/start_frame=0 +animation/clip_102/end_frame=0 +animation/clip_102/loops=false +animation/clip_103/name="" +animation/clip_103/start_frame=0 +animation/clip_103/end_frame=0 +animation/clip_103/loops=false +animation/clip_104/name="" +animation/clip_104/start_frame=0 +animation/clip_104/end_frame=0 +animation/clip_104/loops=false +animation/clip_105/name="" +animation/clip_105/start_frame=0 +animation/clip_105/end_frame=0 +animation/clip_105/loops=false +animation/clip_106/name="" +animation/clip_106/start_frame=0 +animation/clip_106/end_frame=0 +animation/clip_106/loops=false +animation/clip_107/name="" +animation/clip_107/start_frame=0 +animation/clip_107/end_frame=0 +animation/clip_107/loops=false +animation/clip_108/name="" +animation/clip_108/start_frame=0 +animation/clip_108/end_frame=0 +animation/clip_108/loops=false +animation/clip_109/name="" +animation/clip_109/start_frame=0 +animation/clip_109/end_frame=0 +animation/clip_109/loops=false +animation/clip_110/name="" +animation/clip_110/start_frame=0 +animation/clip_110/end_frame=0 +animation/clip_110/loops=false +animation/clip_111/name="" +animation/clip_111/start_frame=0 +animation/clip_111/end_frame=0 +animation/clip_111/loops=false +animation/clip_112/name="" +animation/clip_112/start_frame=0 +animation/clip_112/end_frame=0 +animation/clip_112/loops=false +animation/clip_113/name="" +animation/clip_113/start_frame=0 +animation/clip_113/end_frame=0 +animation/clip_113/loops=false +animation/clip_114/name="" +animation/clip_114/start_frame=0 +animation/clip_114/end_frame=0 +animation/clip_114/loops=false +animation/clip_115/name="" +animation/clip_115/start_frame=0 +animation/clip_115/end_frame=0 +animation/clip_115/loops=false +animation/clip_116/name="" +animation/clip_116/start_frame=0 +animation/clip_116/end_frame=0 +animation/clip_116/loops=false +animation/clip_117/name="" +animation/clip_117/start_frame=0 +animation/clip_117/end_frame=0 +animation/clip_117/loops=false +animation/clip_118/name="" +animation/clip_118/start_frame=0 +animation/clip_118/end_frame=0 +animation/clip_118/loops=false +animation/clip_119/name="" +animation/clip_119/start_frame=0 +animation/clip_119/end_frame=0 +animation/clip_119/loops=false +animation/clip_120/name="" +animation/clip_120/start_frame=0 +animation/clip_120/end_frame=0 +animation/clip_120/loops=false +animation/clip_121/name="" +animation/clip_121/start_frame=0 +animation/clip_121/end_frame=0 +animation/clip_121/loops=false +animation/clip_122/name="" +animation/clip_122/start_frame=0 +animation/clip_122/end_frame=0 +animation/clip_122/loops=false +animation/clip_123/name="" +animation/clip_123/start_frame=0 +animation/clip_123/end_frame=0 +animation/clip_123/loops=false +animation/clip_124/name="" +animation/clip_124/start_frame=0 +animation/clip_124/end_frame=0 +animation/clip_124/loops=false +animation/clip_125/name="" +animation/clip_125/start_frame=0 +animation/clip_125/end_frame=0 +animation/clip_125/loops=false +animation/clip_126/name="" +animation/clip_126/start_frame=0 +animation/clip_126/end_frame=0 +animation/clip_126/loops=false +animation/clip_127/name="" +animation/clip_127/start_frame=0 +animation/clip_127/end_frame=0 +animation/clip_127/loops=false +animation/clip_128/name="" +animation/clip_128/start_frame=0 +animation/clip_128/end_frame=0 +animation/clip_128/loops=false +animation/clip_129/name="" +animation/clip_129/start_frame=0 +animation/clip_129/end_frame=0 +animation/clip_129/loops=false +animation/clip_130/name="" +animation/clip_130/start_frame=0 +animation/clip_130/end_frame=0 +animation/clip_130/loops=false +animation/clip_131/name="" +animation/clip_131/start_frame=0 +animation/clip_131/end_frame=0 +animation/clip_131/loops=false +animation/clip_132/name="" +animation/clip_132/start_frame=0 +animation/clip_132/end_frame=0 +animation/clip_132/loops=false +animation/clip_133/name="" +animation/clip_133/start_frame=0 +animation/clip_133/end_frame=0 +animation/clip_133/loops=false +animation/clip_134/name="" +animation/clip_134/start_frame=0 +animation/clip_134/end_frame=0 +animation/clip_134/loops=false +animation/clip_135/name="" +animation/clip_135/start_frame=0 +animation/clip_135/end_frame=0 +animation/clip_135/loops=false +animation/clip_136/name="" +animation/clip_136/start_frame=0 +animation/clip_136/end_frame=0 +animation/clip_136/loops=false +animation/clip_137/name="" +animation/clip_137/start_frame=0 +animation/clip_137/end_frame=0 +animation/clip_137/loops=false +animation/clip_138/name="" +animation/clip_138/start_frame=0 +animation/clip_138/end_frame=0 +animation/clip_138/loops=false +animation/clip_139/name="" +animation/clip_139/start_frame=0 +animation/clip_139/end_frame=0 +animation/clip_139/loops=false +animation/clip_140/name="" +animation/clip_140/start_frame=0 +animation/clip_140/end_frame=0 +animation/clip_140/loops=false +animation/clip_141/name="" +animation/clip_141/start_frame=0 +animation/clip_141/end_frame=0 +animation/clip_141/loops=false +animation/clip_142/name="" +animation/clip_142/start_frame=0 +animation/clip_142/end_frame=0 +animation/clip_142/loops=false +animation/clip_143/name="" +animation/clip_143/start_frame=0 +animation/clip_143/end_frame=0 +animation/clip_143/loops=false +animation/clip_144/name="" +animation/clip_144/start_frame=0 +animation/clip_144/end_frame=0 +animation/clip_144/loops=false +animation/clip_145/name="" +animation/clip_145/start_frame=0 +animation/clip_145/end_frame=0 +animation/clip_145/loops=false +animation/clip_146/name="" +animation/clip_146/start_frame=0 +animation/clip_146/end_frame=0 +animation/clip_146/loops=false +animation/clip_147/name="" +animation/clip_147/start_frame=0 +animation/clip_147/end_frame=0 +animation/clip_147/loops=false +animation/clip_148/name="" +animation/clip_148/start_frame=0 +animation/clip_148/end_frame=0 +animation/clip_148/loops=false +animation/clip_149/name="" +animation/clip_149/start_frame=0 +animation/clip_149/end_frame=0 +animation/clip_149/loops=false +animation/clip_150/name="" +animation/clip_150/start_frame=0 +animation/clip_150/end_frame=0 +animation/clip_150/loops=false +animation/clip_151/name="" +animation/clip_151/start_frame=0 +animation/clip_151/end_frame=0 +animation/clip_151/loops=false +animation/clip_152/name="" +animation/clip_152/start_frame=0 +animation/clip_152/end_frame=0 +animation/clip_152/loops=false +animation/clip_153/name="" +animation/clip_153/start_frame=0 +animation/clip_153/end_frame=0 +animation/clip_153/loops=false +animation/clip_154/name="" +animation/clip_154/start_frame=0 +animation/clip_154/end_frame=0 +animation/clip_154/loops=false +animation/clip_155/name="" +animation/clip_155/start_frame=0 +animation/clip_155/end_frame=0 +animation/clip_155/loops=false +animation/clip_156/name="" +animation/clip_156/start_frame=0 +animation/clip_156/end_frame=0 +animation/clip_156/loops=false +animation/clip_157/name="" +animation/clip_157/start_frame=0 +animation/clip_157/end_frame=0 +animation/clip_157/loops=false +animation/clip_158/name="" +animation/clip_158/start_frame=0 +animation/clip_158/end_frame=0 +animation/clip_158/loops=false +animation/clip_159/name="" +animation/clip_159/start_frame=0 +animation/clip_159/end_frame=0 +animation/clip_159/loops=false +animation/clip_160/name="" +animation/clip_160/start_frame=0 +animation/clip_160/end_frame=0 +animation/clip_160/loops=false +animation/clip_161/name="" +animation/clip_161/start_frame=0 +animation/clip_161/end_frame=0 +animation/clip_161/loops=false +animation/clip_162/name="" +animation/clip_162/start_frame=0 +animation/clip_162/end_frame=0 +animation/clip_162/loops=false +animation/clip_163/name="" +animation/clip_163/start_frame=0 +animation/clip_163/end_frame=0 +animation/clip_163/loops=false +animation/clip_164/name="" +animation/clip_164/start_frame=0 +animation/clip_164/end_frame=0 +animation/clip_164/loops=false +animation/clip_165/name="" +animation/clip_165/start_frame=0 +animation/clip_165/end_frame=0 +animation/clip_165/loops=false +animation/clip_166/name="" +animation/clip_166/start_frame=0 +animation/clip_166/end_frame=0 +animation/clip_166/loops=false +animation/clip_167/name="" +animation/clip_167/start_frame=0 +animation/clip_167/end_frame=0 +animation/clip_167/loops=false +animation/clip_168/name="" +animation/clip_168/start_frame=0 +animation/clip_168/end_frame=0 +animation/clip_168/loops=false +animation/clip_169/name="" +animation/clip_169/start_frame=0 +animation/clip_169/end_frame=0 +animation/clip_169/loops=false +animation/clip_170/name="" +animation/clip_170/start_frame=0 +animation/clip_170/end_frame=0 +animation/clip_170/loops=false +animation/clip_171/name="" +animation/clip_171/start_frame=0 +animation/clip_171/end_frame=0 +animation/clip_171/loops=false +animation/clip_172/name="" +animation/clip_172/start_frame=0 +animation/clip_172/end_frame=0 +animation/clip_172/loops=false +animation/clip_173/name="" +animation/clip_173/start_frame=0 +animation/clip_173/end_frame=0 +animation/clip_173/loops=false +animation/clip_174/name="" +animation/clip_174/start_frame=0 +animation/clip_174/end_frame=0 +animation/clip_174/loops=false +animation/clip_175/name="" +animation/clip_175/start_frame=0 +animation/clip_175/end_frame=0 +animation/clip_175/loops=false +animation/clip_176/name="" +animation/clip_176/start_frame=0 +animation/clip_176/end_frame=0 +animation/clip_176/loops=false +animation/clip_177/name="" +animation/clip_177/start_frame=0 +animation/clip_177/end_frame=0 +animation/clip_177/loops=false +animation/clip_178/name="" +animation/clip_178/start_frame=0 +animation/clip_178/end_frame=0 +animation/clip_178/loops=false +animation/clip_179/name="" +animation/clip_179/start_frame=0 +animation/clip_179/end_frame=0 +animation/clip_179/loops=false +animation/clip_180/name="" +animation/clip_180/start_frame=0 +animation/clip_180/end_frame=0 +animation/clip_180/loops=false +animation/clip_181/name="" +animation/clip_181/start_frame=0 +animation/clip_181/end_frame=0 +animation/clip_181/loops=false +animation/clip_182/name="" +animation/clip_182/start_frame=0 +animation/clip_182/end_frame=0 +animation/clip_182/loops=false +animation/clip_183/name="" +animation/clip_183/start_frame=0 +animation/clip_183/end_frame=0 +animation/clip_183/loops=false +animation/clip_184/name="" +animation/clip_184/start_frame=0 +animation/clip_184/end_frame=0 +animation/clip_184/loops=false +animation/clip_185/name="" +animation/clip_185/start_frame=0 +animation/clip_185/end_frame=0 +animation/clip_185/loops=false +animation/clip_186/name="" +animation/clip_186/start_frame=0 +animation/clip_186/end_frame=0 +animation/clip_186/loops=false +animation/clip_187/name="" +animation/clip_187/start_frame=0 +animation/clip_187/end_frame=0 +animation/clip_187/loops=false +animation/clip_188/name="" +animation/clip_188/start_frame=0 +animation/clip_188/end_frame=0 +animation/clip_188/loops=false +animation/clip_189/name="" +animation/clip_189/start_frame=0 +animation/clip_189/end_frame=0 +animation/clip_189/loops=false +animation/clip_190/name="" +animation/clip_190/start_frame=0 +animation/clip_190/end_frame=0 +animation/clip_190/loops=false +animation/clip_191/name="" +animation/clip_191/start_frame=0 +animation/clip_191/end_frame=0 +animation/clip_191/loops=false +animation/clip_192/name="" +animation/clip_192/start_frame=0 +animation/clip_192/end_frame=0 +animation/clip_192/loops=false +animation/clip_193/name="" +animation/clip_193/start_frame=0 +animation/clip_193/end_frame=0 +animation/clip_193/loops=false +animation/clip_194/name="" +animation/clip_194/start_frame=0 +animation/clip_194/end_frame=0 +animation/clip_194/loops=false +animation/clip_195/name="" +animation/clip_195/start_frame=0 +animation/clip_195/end_frame=0 +animation/clip_195/loops=false +animation/clip_196/name="" +animation/clip_196/start_frame=0 +animation/clip_196/end_frame=0 +animation/clip_196/loops=false +animation/clip_197/name="" +animation/clip_197/start_frame=0 +animation/clip_197/end_frame=0 +animation/clip_197/loops=false +animation/clip_198/name="" +animation/clip_198/start_frame=0 +animation/clip_198/end_frame=0 +animation/clip_198/loops=false +animation/clip_199/name="" +animation/clip_199/start_frame=0 +animation/clip_199/end_frame=0 +animation/clip_199/loops=false +animation/clip_200/name="" +animation/clip_200/start_frame=0 +animation/clip_200/end_frame=0 +animation/clip_200/loops=false +animation/clip_201/name="" +animation/clip_201/start_frame=0 +animation/clip_201/end_frame=0 +animation/clip_201/loops=false +animation/clip_202/name="" +animation/clip_202/start_frame=0 +animation/clip_202/end_frame=0 +animation/clip_202/loops=false +animation/clip_203/name="" +animation/clip_203/start_frame=0 +animation/clip_203/end_frame=0 +animation/clip_203/loops=false +animation/clip_204/name="" +animation/clip_204/start_frame=0 +animation/clip_204/end_frame=0 +animation/clip_204/loops=false +animation/clip_205/name="" +animation/clip_205/start_frame=0 +animation/clip_205/end_frame=0 +animation/clip_205/loops=false +animation/clip_206/name="" +animation/clip_206/start_frame=0 +animation/clip_206/end_frame=0 +animation/clip_206/loops=false +animation/clip_207/name="" +animation/clip_207/start_frame=0 +animation/clip_207/end_frame=0 +animation/clip_207/loops=false +animation/clip_208/name="" +animation/clip_208/start_frame=0 +animation/clip_208/end_frame=0 +animation/clip_208/loops=false +animation/clip_209/name="" +animation/clip_209/start_frame=0 +animation/clip_209/end_frame=0 +animation/clip_209/loops=false +animation/clip_210/name="" +animation/clip_210/start_frame=0 +animation/clip_210/end_frame=0 +animation/clip_210/loops=false +animation/clip_211/name="" +animation/clip_211/start_frame=0 +animation/clip_211/end_frame=0 +animation/clip_211/loops=false +animation/clip_212/name="" +animation/clip_212/start_frame=0 +animation/clip_212/end_frame=0 +animation/clip_212/loops=false +animation/clip_213/name="" +animation/clip_213/start_frame=0 +animation/clip_213/end_frame=0 +animation/clip_213/loops=false +animation/clip_214/name="" +animation/clip_214/start_frame=0 +animation/clip_214/end_frame=0 +animation/clip_214/loops=false +animation/clip_215/name="" +animation/clip_215/start_frame=0 +animation/clip_215/end_frame=0 +animation/clip_215/loops=false +animation/clip_216/name="" +animation/clip_216/start_frame=0 +animation/clip_216/end_frame=0 +animation/clip_216/loops=false +animation/clip_217/name="" +animation/clip_217/start_frame=0 +animation/clip_217/end_frame=0 +animation/clip_217/loops=false +animation/clip_218/name="" +animation/clip_218/start_frame=0 +animation/clip_218/end_frame=0 +animation/clip_218/loops=false +animation/clip_219/name="" +animation/clip_219/start_frame=0 +animation/clip_219/end_frame=0 +animation/clip_219/loops=false +animation/clip_220/name="" +animation/clip_220/start_frame=0 +animation/clip_220/end_frame=0 +animation/clip_220/loops=false +animation/clip_221/name="" +animation/clip_221/start_frame=0 +animation/clip_221/end_frame=0 +animation/clip_221/loops=false +animation/clip_222/name="" +animation/clip_222/start_frame=0 +animation/clip_222/end_frame=0 +animation/clip_222/loops=false +animation/clip_223/name="" +animation/clip_223/start_frame=0 +animation/clip_223/end_frame=0 +animation/clip_223/loops=false +animation/clip_224/name="" +animation/clip_224/start_frame=0 +animation/clip_224/end_frame=0 +animation/clip_224/loops=false +animation/clip_225/name="" +animation/clip_225/start_frame=0 +animation/clip_225/end_frame=0 +animation/clip_225/loops=false +animation/clip_226/name="" +animation/clip_226/start_frame=0 +animation/clip_226/end_frame=0 +animation/clip_226/loops=false +animation/clip_227/name="" +animation/clip_227/start_frame=0 +animation/clip_227/end_frame=0 +animation/clip_227/loops=false +animation/clip_228/name="" +animation/clip_228/start_frame=0 +animation/clip_228/end_frame=0 +animation/clip_228/loops=false +animation/clip_229/name="" +animation/clip_229/start_frame=0 +animation/clip_229/end_frame=0 +animation/clip_229/loops=false +animation/clip_230/name="" +animation/clip_230/start_frame=0 +animation/clip_230/end_frame=0 +animation/clip_230/loops=false +animation/clip_231/name="" +animation/clip_231/start_frame=0 +animation/clip_231/end_frame=0 +animation/clip_231/loops=false +animation/clip_232/name="" +animation/clip_232/start_frame=0 +animation/clip_232/end_frame=0 +animation/clip_232/loops=false +animation/clip_233/name="" +animation/clip_233/start_frame=0 +animation/clip_233/end_frame=0 +animation/clip_233/loops=false +animation/clip_234/name="" +animation/clip_234/start_frame=0 +animation/clip_234/end_frame=0 +animation/clip_234/loops=false +animation/clip_235/name="" +animation/clip_235/start_frame=0 +animation/clip_235/end_frame=0 +animation/clip_235/loops=false +animation/clip_236/name="" +animation/clip_236/start_frame=0 +animation/clip_236/end_frame=0 +animation/clip_236/loops=false +animation/clip_237/name="" +animation/clip_237/start_frame=0 +animation/clip_237/end_frame=0 +animation/clip_237/loops=false +animation/clip_238/name="" +animation/clip_238/start_frame=0 +animation/clip_238/end_frame=0 +animation/clip_238/loops=false +animation/clip_239/name="" +animation/clip_239/start_frame=0 +animation/clip_239/end_frame=0 +animation/clip_239/loops=false +animation/clip_240/name="" +animation/clip_240/start_frame=0 +animation/clip_240/end_frame=0 +animation/clip_240/loops=false +animation/clip_241/name="" +animation/clip_241/start_frame=0 +animation/clip_241/end_frame=0 +animation/clip_241/loops=false +animation/clip_242/name="" +animation/clip_242/start_frame=0 +animation/clip_242/end_frame=0 +animation/clip_242/loops=false +animation/clip_243/name="" +animation/clip_243/start_frame=0 +animation/clip_243/end_frame=0 +animation/clip_243/loops=false +animation/clip_244/name="" +animation/clip_244/start_frame=0 +animation/clip_244/end_frame=0 +animation/clip_244/loops=false +animation/clip_245/name="" +animation/clip_245/start_frame=0 +animation/clip_245/end_frame=0 +animation/clip_245/loops=false +animation/clip_246/name="" +animation/clip_246/start_frame=0 +animation/clip_246/end_frame=0 +animation/clip_246/loops=false +animation/clip_247/name="" +animation/clip_247/start_frame=0 +animation/clip_247/end_frame=0 +animation/clip_247/loops=false +animation/clip_248/name="" +animation/clip_248/start_frame=0 +animation/clip_248/end_frame=0 +animation/clip_248/loops=false +animation/clip_249/name="" +animation/clip_249/start_frame=0 +animation/clip_249/end_frame=0 +animation/clip_249/loops=false +animation/clip_250/name="" +animation/clip_250/start_frame=0 +animation/clip_250/end_frame=0 +animation/clip_250/loops=false +animation/clip_251/name="" +animation/clip_251/start_frame=0 +animation/clip_251/end_frame=0 +animation/clip_251/loops=false +animation/clip_252/name="" +animation/clip_252/start_frame=0 +animation/clip_252/end_frame=0 +animation/clip_252/loops=false +animation/clip_253/name="" +animation/clip_253/start_frame=0 +animation/clip_253/end_frame=0 +animation/clip_253/loops=false +animation/clip_254/name="" +animation/clip_254/start_frame=0 +animation/clip_254/end_frame=0 +animation/clip_254/loops=false +animation/clip_255/name="" +animation/clip_255/start_frame=0 +animation/clip_255/end_frame=0 +animation/clip_255/loops=false +animation/clip_256/name="" +animation/clip_256/start_frame=0 +animation/clip_256/end_frame=0 +animation/clip_256/loops=false diff --git a/enemies/bad_cat/model/muzzle_flash_particle_mesh_Cone.mesh b/enemies/bad_cat/model/muzzle_flash_particle_mesh_Cone.mesh new file mode 100644 index 0000000..8da96c2 Binary files /dev/null and b/enemies/bad_cat/model/muzzle_flash_particle_mesh_Cone.mesh differ diff --git a/enemies/bad_cat/model/robotemitter.tres b/enemies/bad_cat/model/robotemitter.tres new file mode 100644 index 0000000..e22468e --- /dev/null +++ b/enemies/bad_cat/model/robotemitter.tres @@ -0,0 +1,14 @@ +[gd_resource type="SpatialMaterial" format=2] + +[resource] +resource_name = "robotemitter" +albedo_color = Color( 0.196078, 0.388235, 0.639216, 1 ) +roughness = 0.0960784 +emission_enabled = true +emission = Color( 0.196078, 0.388235, 0.639216, 1 ) +emission_energy = 6.19 +emission_operator = 0 +emission_on_uv2 = false +distance_fade_mode = 3 +distance_fade_min_distance = 0.2 +distance_fade_max_distance = 0.8 diff --git a/enemies/bad_cat/textures/animu_alunya_shadermat.tres b/enemies/bad_cat/textures/animu_alunya_shadermat.tres new file mode 100644 index 0000000..1ecba7c --- /dev/null +++ b/enemies/bad_cat/textures/animu_alunya_shadermat.tres @@ -0,0 +1,58 @@ +[gd_resource type="ShaderMaterial" load_steps=2 format=2] + +[ext_resource path="res://effects_shared/animu.shader" type="Shader" id=1] + +[resource] +shader = ExtResource( 1 ) +shader_param/lookAt = Vector3( 0, 0, 5 ) +shader_param/maxLook = Plane( -0.4, -0.2, 0.4, 0.2 ) +shader_param/lookSens = Vector2( 0.2, 0.2 ) +shader_param/irisScale = 0.841 +shader_param/eyebrowOffset = 0.0 +shader_param/eyebrowRotationOffsetDegrees = 0.0 +shader_param/open = 0.541 +shader_param/uvArea = Plane( 0.102, 0.514, 1, 1 ) +shader_param/position = 0.125 +shader_param/dist = 0.048 +shader_param/depthOffset = 0.0 +shader_param/color = Color( 0.831373, 0.858824, 0.0117647, 1 ) +shader_param/whiteColor = Color( 1, 1, 1, 1 ) +shader_param/rimColor = Color( 1, 1, 1, 1 ) +shader_param/eyebrowColor = Color( 0, 0, 0, 1 ) +shader_param/border1Color = Color( 0, 0, 0, 1 ) +shader_param/border2Color = Color( 0, 0, 0, 1 ) +shader_param/shapeSquare = 0.554 +shader_param/irisSquare = 0.111 +shader_param/border1Square = 0.5 +shader_param/border2Square = 1.0 +shader_param/eyebrowSquare = 0.5 +shader_param/topEllipse = Plane( 0.343, 0.558, 0.454, 0.408 ) +shader_param/bottomEllipse = Plane( 0.45, 0.308, 0.284, 0.336 ) +shader_param/irisEllipse = Plane( 0.53, 0.388, 0.144, 0.236 ) +shader_param/pupilEllipse = Plane( 0, -0.023, 0.075, 0.209 ) +shader_param/eyebrowPosition = 0.0 +shader_param/eyebrow = Plane( 0.037, -0.369, 1.1, 1.1 ) +shader_param/eyebrowFalloffEllipse = Plane( 0.5, -0.315, 0.028, 0.039 ) +shader_param/eyebrowFalloff = 0.5 +shader_param/eyebrowRotationDegrees = -10.0 +shader_param/eyebrowThickness = 0.025 +shader_param/border1 = Plane( 0.025, 0.016, 1.1, 1.1 ) +shader_param/border1FalloffEllipse = Plane( 0.125, -0.018, 0.297, 0.305 ) +shader_param/border1Falloff = 0.222 +shader_param/border1RotationDegrees = -3.0 +shader_param/border1Thickness = 0.009 +shader_param/border2 = Plane( -0.043, 0.057, 0.916, 1 ) +shader_param/border2FalloffEllipse = Plane( 0.5, 0.861, 0.03, 0.049 ) +shader_param/border2Falloff = 0.0 +shader_param/border2RotationDegrees = 0.0 +shader_param/border2Thickness = 0.0 +shader_param/sharpness = 200.0 +shader_param/scale = Vector2( 0.088, 0.081 ) +shader_param/attenuation = 0.747 +shader_param/irisAttenuation = 0.147 +shader_param/highlightEllipse = Plane( 0.608, 0.36, 0.489, 0.3 ) +shader_param/irisGradientOffset = Vector2( -0.007, -0.095 ) +shader_param/rim1Ellipse = Plane( 0.128, -0.034, 0.067, 0.043 ) +shader_param/rim1RotationDegrees = 10.0 +shader_param/rim2Ellipse = Plane( -0.276, 0.162, 0.081, 0.007 ) +shader_param/rim2RotationDegrees = 0.0 diff --git a/enemies/common/Hitbox.gd b/enemies/common/Hitbox.gd new file mode 100644 index 0000000..434b7df --- /dev/null +++ b/enemies/common/Hitbox.gd @@ -0,0 +1,6 @@ +extends KinematicBody + +export(NodePath) var node_with_hit + +func hit(col): + get_node(node_with_hit).hit(col) diff --git a/enemies/common/audio/explosion.wav b/enemies/common/audio/explosion.wav new file mode 100644 index 0000000..0c9e842 Binary files /dev/null and b/enemies/common/audio/explosion.wav differ diff --git a/enemies/common/audio/explosion.wav.import b/enemies/common/audio/explosion.wav.import new file mode 100644 index 0000000..9f477c1 --- /dev/null +++ b/enemies/common/audio/explosion.wav.import @@ -0,0 +1,21 @@ +[remap] + +importer="wav" +type="AudioStreamSample" +path="res://.import/explosion.wav-ca6425df2c1e6db7ccfe4bfba076f858.sample" + +[deps] + +source_file="res://enemies/common/audio/explosion.wav" +dest_files=[ "res://.import/explosion.wav-ca6425df2c1e6db7ccfe4bfba076f858.sample" ] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=true +edit/normalize=true +edit/loop=false +compress/mode=0 diff --git a/enemies/common/audio/hit.wav b/enemies/common/audio/hit.wav new file mode 100644 index 0000000..1641d1b Binary files /dev/null and b/enemies/common/audio/hit.wav differ diff --git a/enemies/common/audio/hit.wav.import b/enemies/common/audio/hit.wav.import new file mode 100644 index 0000000..e86d7f4 --- /dev/null +++ b/enemies/common/audio/hit.wav.import @@ -0,0 +1,21 @@ +[remap] + +importer="wav" +type="AudioStreamSample" +path="res://.import/hit.wav-239559cb80f688cad81fbb36658c3b19.sample" + +[deps] + +source_file="res://enemies/common/audio/hit.wav" +dest_files=[ "res://.import/hit.wav-239559cb80f688cad81fbb36658c3b19.sample" ] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=true +edit/normalize=true +edit/loop=false +compress/mode=0 diff --git a/enemies/standard_merc/model/Balaclava.material b/enemies/standard_merc/model/Balaclava.material new file mode 100644 index 0000000..61fd9f5 Binary files /dev/null and b/enemies/standard_merc/model/Balaclava.material differ diff --git a/enemies/standard_merc/model/BeltGreen.material b/enemies/standard_merc/model/BeltGreen.material new file mode 100644 index 0000000..1679427 Binary files /dev/null and b/enemies/standard_merc/model/BeltGreen.material differ diff --git a/enemies/standard_merc/model/GlassesGreen.material b/enemies/standard_merc/model/GlassesGreen.material new file mode 100644 index 0000000..8b67c8e Binary files /dev/null and b/enemies/standard_merc/model/GlassesGreen.material differ diff --git a/enemies/standard_merc/model/Helmet.material b/enemies/standard_merc/model/Helmet.material new file mode 100644 index 0000000..6c4e584 Binary files /dev/null and b/enemies/standard_merc/model/Helmet.material differ diff --git a/enemies/standard_merc/model/Material.material b/enemies/standard_merc/model/Material.material new file mode 100644 index 0000000..b091c96 Binary files /dev/null and b/enemies/standard_merc/model/Material.material differ diff --git a/enemies/standard_merc/model/NavyBlue.material b/enemies/standard_merc/model/NavyBlue.material new file mode 100644 index 0000000..0b1e0b6 Binary files /dev/null and b/enemies/standard_merc/model/NavyBlue.material differ diff --git a/enemies/standard_merc/model/PadBlack.material b/enemies/standard_merc/model/PadBlack.material new file mode 100644 index 0000000..7a17bde Binary files /dev/null and b/enemies/standard_merc/model/PadBlack.material differ diff --git a/enemies/standard_merc/model/PadKevlar.material b/enemies/standard_merc/model/PadKevlar.material new file mode 100644 index 0000000..c71162d Binary files /dev/null and b/enemies/standard_merc/model/PadKevlar.material differ diff --git a/enemies/standard_merc/model/ShotgunShellCopper.material b/enemies/standard_merc/model/ShotgunShellCopper.material new file mode 100644 index 0000000..93c7a92 Binary files /dev/null and b/enemies/standard_merc/model/ShotgunShellCopper.material differ diff --git a/enemies/standard_merc/model/darkMatteBlack.material b/enemies/standard_merc/model/darkMatteBlack.material new file mode 100644 index 0000000..654b75e Binary files /dev/null and b/enemies/standard_merc/model/darkMatteBlack.material differ diff --git a/enemies/standard_merc/model/matteBlack.material b/enemies/standard_merc/model/matteBlack.material new file mode 100644 index 0000000..4a46ce8 Binary files /dev/null and b/enemies/standard_merc/model/matteBlack.material differ diff --git a/enemies/standard_merc/model/merc1.glb b/enemies/standard_merc/model/merc1.glb new file mode 100644 index 0000000..7f96f6d Binary files /dev/null and b/enemies/standard_merc/model/merc1.glb differ diff --git a/enemies/standard_merc/model/merc1.glb.import b/enemies/standard_merc/model/merc1.glb.import new file mode 100644 index 0000000..e239ee9 --- /dev/null +++ b/enemies/standard_merc/model/merc1.glb.import @@ -0,0 +1,1065 @@ +[remap] + +importer="scene" +type="PackedScene" +path="res://.import/merc1.glb-dcfc441311b55eaa1c030dee5d67533b.scn" + +[deps] + +source_file="res://enemies/standard_merc/model/merc1.glb" +dest_files=[ "res://.import/merc1.glb-dcfc441311b55eaa1c030dee5d67533b.scn" ] + +[params] + +nodes/root_type="Spatial" +nodes/root_name="Scene Root" +nodes/root_scale=1.0 +nodes/custom_script="" +nodes/storage=0 +nodes/use_legacy_names=false +materials/location=1 +materials/storage=1 +materials/keep_on_reimport=true +meshes/octahedral_compression=true +meshes/compress=4286 +meshes/ensure_tangents=true +meshes/storage=0 +meshes/light_baking=0 +meshes/lightmap_texel_size=0.1 +skins/use_named_skins=true +external_files/store_in_subdir=false +animation/import=true +animation/fps=15 +animation/filter_script="" +animation/storage=false +animation/keep_custom_tracks=false +animation/optimizer/enabled=true +animation/optimizer/max_linear_error=0.05 +animation/optimizer/max_angular_error=0.01 +animation/optimizer/max_angle=22 +animation/optimizer/remove_unused_tracks=true +animation/clips/amount=0 +animation/clip_1/name="" +animation/clip_1/start_frame=0 +animation/clip_1/end_frame=0 +animation/clip_1/loops=false +animation/clip_2/name="" +animation/clip_2/start_frame=0 +animation/clip_2/end_frame=0 +animation/clip_2/loops=false +animation/clip_3/name="" +animation/clip_3/start_frame=0 +animation/clip_3/end_frame=0 +animation/clip_3/loops=false +animation/clip_4/name="" +animation/clip_4/start_frame=0 +animation/clip_4/end_frame=0 +animation/clip_4/loops=false +animation/clip_5/name="" +animation/clip_5/start_frame=0 +animation/clip_5/end_frame=0 +animation/clip_5/loops=false +animation/clip_6/name="" +animation/clip_6/start_frame=0 +animation/clip_6/end_frame=0 +animation/clip_6/loops=false +animation/clip_7/name="" +animation/clip_7/start_frame=0 +animation/clip_7/end_frame=0 +animation/clip_7/loops=false +animation/clip_8/name="" +animation/clip_8/start_frame=0 +animation/clip_8/end_frame=0 +animation/clip_8/loops=false +animation/clip_9/name="" +animation/clip_9/start_frame=0 +animation/clip_9/end_frame=0 +animation/clip_9/loops=false +animation/clip_10/name="" +animation/clip_10/start_frame=0 +animation/clip_10/end_frame=0 +animation/clip_10/loops=false +animation/clip_11/name="" +animation/clip_11/start_frame=0 +animation/clip_11/end_frame=0 +animation/clip_11/loops=false +animation/clip_12/name="" +animation/clip_12/start_frame=0 +animation/clip_12/end_frame=0 +animation/clip_12/loops=false +animation/clip_13/name="" +animation/clip_13/start_frame=0 +animation/clip_13/end_frame=0 +animation/clip_13/loops=false +animation/clip_14/name="" +animation/clip_14/start_frame=0 +animation/clip_14/end_frame=0 +animation/clip_14/loops=false +animation/clip_15/name="" +animation/clip_15/start_frame=0 +animation/clip_15/end_frame=0 +animation/clip_15/loops=false +animation/clip_16/name="" +animation/clip_16/start_frame=0 +animation/clip_16/end_frame=0 +animation/clip_16/loops=false +animation/clip_17/name="" +animation/clip_17/start_frame=0 +animation/clip_17/end_frame=0 +animation/clip_17/loops=false +animation/clip_18/name="" +animation/clip_18/start_frame=0 +animation/clip_18/end_frame=0 +animation/clip_18/loops=false +animation/clip_19/name="" +animation/clip_19/start_frame=0 +animation/clip_19/end_frame=0 +animation/clip_19/loops=false +animation/clip_20/name="" +animation/clip_20/start_frame=0 +animation/clip_20/end_frame=0 +animation/clip_20/loops=false +animation/clip_21/name="" +animation/clip_21/start_frame=0 +animation/clip_21/end_frame=0 +animation/clip_21/loops=false +animation/clip_22/name="" +animation/clip_22/start_frame=0 +animation/clip_22/end_frame=0 +animation/clip_22/loops=false +animation/clip_23/name="" +animation/clip_23/start_frame=0 +animation/clip_23/end_frame=0 +animation/clip_23/loops=false +animation/clip_24/name="" +animation/clip_24/start_frame=0 +animation/clip_24/end_frame=0 +animation/clip_24/loops=false +animation/clip_25/name="" +animation/clip_25/start_frame=0 +animation/clip_25/end_frame=0 +animation/clip_25/loops=false +animation/clip_26/name="" +animation/clip_26/start_frame=0 +animation/clip_26/end_frame=0 +animation/clip_26/loops=false +animation/clip_27/name="" +animation/clip_27/start_frame=0 +animation/clip_27/end_frame=0 +animation/clip_27/loops=false +animation/clip_28/name="" +animation/clip_28/start_frame=0 +animation/clip_28/end_frame=0 +animation/clip_28/loops=false +animation/clip_29/name="" +animation/clip_29/start_frame=0 +animation/clip_29/end_frame=0 +animation/clip_29/loops=false +animation/clip_30/name="" +animation/clip_30/start_frame=0 +animation/clip_30/end_frame=0 +animation/clip_30/loops=false +animation/clip_31/name="" +animation/clip_31/start_frame=0 +animation/clip_31/end_frame=0 +animation/clip_31/loops=false +animation/clip_32/name="" +animation/clip_32/start_frame=0 +animation/clip_32/end_frame=0 +animation/clip_32/loops=false +animation/clip_33/name="" +animation/clip_33/start_frame=0 +animation/clip_33/end_frame=0 +animation/clip_33/loops=false +animation/clip_34/name="" +animation/clip_34/start_frame=0 +animation/clip_34/end_frame=0 +animation/clip_34/loops=false +animation/clip_35/name="" +animation/clip_35/start_frame=0 +animation/clip_35/end_frame=0 +animation/clip_35/loops=false +animation/clip_36/name="" +animation/clip_36/start_frame=0 +animation/clip_36/end_frame=0 +animation/clip_36/loops=false +animation/clip_37/name="" +animation/clip_37/start_frame=0 +animation/clip_37/end_frame=0 +animation/clip_37/loops=false +animation/clip_38/name="" +animation/clip_38/start_frame=0 +animation/clip_38/end_frame=0 +animation/clip_38/loops=false +animation/clip_39/name="" +animation/clip_39/start_frame=0 +animation/clip_39/end_frame=0 +animation/clip_39/loops=false +animation/clip_40/name="" +animation/clip_40/start_frame=0 +animation/clip_40/end_frame=0 +animation/clip_40/loops=false +animation/clip_41/name="" +animation/clip_41/start_frame=0 +animation/clip_41/end_frame=0 +animation/clip_41/loops=false +animation/clip_42/name="" +animation/clip_42/start_frame=0 +animation/clip_42/end_frame=0 +animation/clip_42/loops=false +animation/clip_43/name="" +animation/clip_43/start_frame=0 +animation/clip_43/end_frame=0 +animation/clip_43/loops=false +animation/clip_44/name="" +animation/clip_44/start_frame=0 +animation/clip_44/end_frame=0 +animation/clip_44/loops=false +animation/clip_45/name="" +animation/clip_45/start_frame=0 +animation/clip_45/end_frame=0 +animation/clip_45/loops=false +animation/clip_46/name="" +animation/clip_46/start_frame=0 +animation/clip_46/end_frame=0 +animation/clip_46/loops=false +animation/clip_47/name="" +animation/clip_47/start_frame=0 +animation/clip_47/end_frame=0 +animation/clip_47/loops=false +animation/clip_48/name="" +animation/clip_48/start_frame=0 +animation/clip_48/end_frame=0 +animation/clip_48/loops=false +animation/clip_49/name="" +animation/clip_49/start_frame=0 +animation/clip_49/end_frame=0 +animation/clip_49/loops=false +animation/clip_50/name="" +animation/clip_50/start_frame=0 +animation/clip_50/end_frame=0 +animation/clip_50/loops=false +animation/clip_51/name="" +animation/clip_51/start_frame=0 +animation/clip_51/end_frame=0 +animation/clip_51/loops=false +animation/clip_52/name="" +animation/clip_52/start_frame=0 +animation/clip_52/end_frame=0 +animation/clip_52/loops=false +animation/clip_53/name="" +animation/clip_53/start_frame=0 +animation/clip_53/end_frame=0 +animation/clip_53/loops=false +animation/clip_54/name="" +animation/clip_54/start_frame=0 +animation/clip_54/end_frame=0 +animation/clip_54/loops=false +animation/clip_55/name="" +animation/clip_55/start_frame=0 +animation/clip_55/end_frame=0 +animation/clip_55/loops=false +animation/clip_56/name="" +animation/clip_56/start_frame=0 +animation/clip_56/end_frame=0 +animation/clip_56/loops=false +animation/clip_57/name="" +animation/clip_57/start_frame=0 +animation/clip_57/end_frame=0 +animation/clip_57/loops=false +animation/clip_58/name="" +animation/clip_58/start_frame=0 +animation/clip_58/end_frame=0 +animation/clip_58/loops=false +animation/clip_59/name="" +animation/clip_59/start_frame=0 +animation/clip_59/end_frame=0 +animation/clip_59/loops=false +animation/clip_60/name="" +animation/clip_60/start_frame=0 +animation/clip_60/end_frame=0 +animation/clip_60/loops=false +animation/clip_61/name="" +animation/clip_61/start_frame=0 +animation/clip_61/end_frame=0 +animation/clip_61/loops=false +animation/clip_62/name="" +animation/clip_62/start_frame=0 +animation/clip_62/end_frame=0 +animation/clip_62/loops=false +animation/clip_63/name="" +animation/clip_63/start_frame=0 +animation/clip_63/end_frame=0 +animation/clip_63/loops=false +animation/clip_64/name="" +animation/clip_64/start_frame=0 +animation/clip_64/end_frame=0 +animation/clip_64/loops=false +animation/clip_65/name="" +animation/clip_65/start_frame=0 +animation/clip_65/end_frame=0 +animation/clip_65/loops=false +animation/clip_66/name="" +animation/clip_66/start_frame=0 +animation/clip_66/end_frame=0 +animation/clip_66/loops=false +animation/clip_67/name="" +animation/clip_67/start_frame=0 +animation/clip_67/end_frame=0 +animation/clip_67/loops=false +animation/clip_68/name="" +animation/clip_68/start_frame=0 +animation/clip_68/end_frame=0 +animation/clip_68/loops=false +animation/clip_69/name="" +animation/clip_69/start_frame=0 +animation/clip_69/end_frame=0 +animation/clip_69/loops=false +animation/clip_70/name="" +animation/clip_70/start_frame=0 +animation/clip_70/end_frame=0 +animation/clip_70/loops=false +animation/clip_71/name="" +animation/clip_71/start_frame=0 +animation/clip_71/end_frame=0 +animation/clip_71/loops=false +animation/clip_72/name="" +animation/clip_72/start_frame=0 +animation/clip_72/end_frame=0 +animation/clip_72/loops=false +animation/clip_73/name="" +animation/clip_73/start_frame=0 +animation/clip_73/end_frame=0 +animation/clip_73/loops=false +animation/clip_74/name="" +animation/clip_74/start_frame=0 +animation/clip_74/end_frame=0 +animation/clip_74/loops=false +animation/clip_75/name="" +animation/clip_75/start_frame=0 +animation/clip_75/end_frame=0 +animation/clip_75/loops=false +animation/clip_76/name="" +animation/clip_76/start_frame=0 +animation/clip_76/end_frame=0 +animation/clip_76/loops=false +animation/clip_77/name="" +animation/clip_77/start_frame=0 +animation/clip_77/end_frame=0 +animation/clip_77/loops=false +animation/clip_78/name="" +animation/clip_78/start_frame=0 +animation/clip_78/end_frame=0 +animation/clip_78/loops=false +animation/clip_79/name="" +animation/clip_79/start_frame=0 +animation/clip_79/end_frame=0 +animation/clip_79/loops=false +animation/clip_80/name="" +animation/clip_80/start_frame=0 +animation/clip_80/end_frame=0 +animation/clip_80/loops=false +animation/clip_81/name="" +animation/clip_81/start_frame=0 +animation/clip_81/end_frame=0 +animation/clip_81/loops=false +animation/clip_82/name="" +animation/clip_82/start_frame=0 +animation/clip_82/end_frame=0 +animation/clip_82/loops=false +animation/clip_83/name="" +animation/clip_83/start_frame=0 +animation/clip_83/end_frame=0 +animation/clip_83/loops=false +animation/clip_84/name="" +animation/clip_84/start_frame=0 +animation/clip_84/end_frame=0 +animation/clip_84/loops=false +animation/clip_85/name="" +animation/clip_85/start_frame=0 +animation/clip_85/end_frame=0 +animation/clip_85/loops=false +animation/clip_86/name="" +animation/clip_86/start_frame=0 +animation/clip_86/end_frame=0 +animation/clip_86/loops=false +animation/clip_87/name="" +animation/clip_87/start_frame=0 +animation/clip_87/end_frame=0 +animation/clip_87/loops=false +animation/clip_88/name="" +animation/clip_88/start_frame=0 +animation/clip_88/end_frame=0 +animation/clip_88/loops=false +animation/clip_89/name="" +animation/clip_89/start_frame=0 +animation/clip_89/end_frame=0 +animation/clip_89/loops=false +animation/clip_90/name="" +animation/clip_90/start_frame=0 +animation/clip_90/end_frame=0 +animation/clip_90/loops=false +animation/clip_91/name="" +animation/clip_91/start_frame=0 +animation/clip_91/end_frame=0 +animation/clip_91/loops=false +animation/clip_92/name="" +animation/clip_92/start_frame=0 +animation/clip_92/end_frame=0 +animation/clip_92/loops=false +animation/clip_93/name="" +animation/clip_93/start_frame=0 +animation/clip_93/end_frame=0 +animation/clip_93/loops=false +animation/clip_94/name="" +animation/clip_94/start_frame=0 +animation/clip_94/end_frame=0 +animation/clip_94/loops=false +animation/clip_95/name="" +animation/clip_95/start_frame=0 +animation/clip_95/end_frame=0 +animation/clip_95/loops=false +animation/clip_96/name="" +animation/clip_96/start_frame=0 +animation/clip_96/end_frame=0 +animation/clip_96/loops=false +animation/clip_97/name="" +animation/clip_97/start_frame=0 +animation/clip_97/end_frame=0 +animation/clip_97/loops=false +animation/clip_98/name="" +animation/clip_98/start_frame=0 +animation/clip_98/end_frame=0 +animation/clip_98/loops=false +animation/clip_99/name="" +animation/clip_99/start_frame=0 +animation/clip_99/end_frame=0 +animation/clip_99/loops=false +animation/clip_100/name="" +animation/clip_100/start_frame=0 +animation/clip_100/end_frame=0 +animation/clip_100/loops=false +animation/clip_101/name="" +animation/clip_101/start_frame=0 +animation/clip_101/end_frame=0 +animation/clip_101/loops=false +animation/clip_102/name="" +animation/clip_102/start_frame=0 +animation/clip_102/end_frame=0 +animation/clip_102/loops=false +animation/clip_103/name="" +animation/clip_103/start_frame=0 +animation/clip_103/end_frame=0 +animation/clip_103/loops=false +animation/clip_104/name="" +animation/clip_104/start_frame=0 +animation/clip_104/end_frame=0 +animation/clip_104/loops=false +animation/clip_105/name="" +animation/clip_105/start_frame=0 +animation/clip_105/end_frame=0 +animation/clip_105/loops=false +animation/clip_106/name="" +animation/clip_106/start_frame=0 +animation/clip_106/end_frame=0 +animation/clip_106/loops=false +animation/clip_107/name="" +animation/clip_107/start_frame=0 +animation/clip_107/end_frame=0 +animation/clip_107/loops=false +animation/clip_108/name="" +animation/clip_108/start_frame=0 +animation/clip_108/end_frame=0 +animation/clip_108/loops=false +animation/clip_109/name="" +animation/clip_109/start_frame=0 +animation/clip_109/end_frame=0 +animation/clip_109/loops=false +animation/clip_110/name="" +animation/clip_110/start_frame=0 +animation/clip_110/end_frame=0 +animation/clip_110/loops=false +animation/clip_111/name="" +animation/clip_111/start_frame=0 +animation/clip_111/end_frame=0 +animation/clip_111/loops=false +animation/clip_112/name="" +animation/clip_112/start_frame=0 +animation/clip_112/end_frame=0 +animation/clip_112/loops=false +animation/clip_113/name="" +animation/clip_113/start_frame=0 +animation/clip_113/end_frame=0 +animation/clip_113/loops=false +animation/clip_114/name="" +animation/clip_114/start_frame=0 +animation/clip_114/end_frame=0 +animation/clip_114/loops=false +animation/clip_115/name="" +animation/clip_115/start_frame=0 +animation/clip_115/end_frame=0 +animation/clip_115/loops=false +animation/clip_116/name="" +animation/clip_116/start_frame=0 +animation/clip_116/end_frame=0 +animation/clip_116/loops=false +animation/clip_117/name="" +animation/clip_117/start_frame=0 +animation/clip_117/end_frame=0 +animation/clip_117/loops=false +animation/clip_118/name="" +animation/clip_118/start_frame=0 +animation/clip_118/end_frame=0 +animation/clip_118/loops=false +animation/clip_119/name="" +animation/clip_119/start_frame=0 +animation/clip_119/end_frame=0 +animation/clip_119/loops=false +animation/clip_120/name="" +animation/clip_120/start_frame=0 +animation/clip_120/end_frame=0 +animation/clip_120/loops=false +animation/clip_121/name="" +animation/clip_121/start_frame=0 +animation/clip_121/end_frame=0 +animation/clip_121/loops=false +animation/clip_122/name="" +animation/clip_122/start_frame=0 +animation/clip_122/end_frame=0 +animation/clip_122/loops=false +animation/clip_123/name="" +animation/clip_123/start_frame=0 +animation/clip_123/end_frame=0 +animation/clip_123/loops=false +animation/clip_124/name="" +animation/clip_124/start_frame=0 +animation/clip_124/end_frame=0 +animation/clip_124/loops=false +animation/clip_125/name="" +animation/clip_125/start_frame=0 +animation/clip_125/end_frame=0 +animation/clip_125/loops=false +animation/clip_126/name="" +animation/clip_126/start_frame=0 +animation/clip_126/end_frame=0 +animation/clip_126/loops=false +animation/clip_127/name="" +animation/clip_127/start_frame=0 +animation/clip_127/end_frame=0 +animation/clip_127/loops=false +animation/clip_128/name="" +animation/clip_128/start_frame=0 +animation/clip_128/end_frame=0 +animation/clip_128/loops=false +animation/clip_129/name="" +animation/clip_129/start_frame=0 +animation/clip_129/end_frame=0 +animation/clip_129/loops=false +animation/clip_130/name="" +animation/clip_130/start_frame=0 +animation/clip_130/end_frame=0 +animation/clip_130/loops=false +animation/clip_131/name="" +animation/clip_131/start_frame=0 +animation/clip_131/end_frame=0 +animation/clip_131/loops=false +animation/clip_132/name="" +animation/clip_132/start_frame=0 +animation/clip_132/end_frame=0 +animation/clip_132/loops=false +animation/clip_133/name="" +animation/clip_133/start_frame=0 +animation/clip_133/end_frame=0 +animation/clip_133/loops=false +animation/clip_134/name="" +animation/clip_134/start_frame=0 +animation/clip_134/end_frame=0 +animation/clip_134/loops=false +animation/clip_135/name="" +animation/clip_135/start_frame=0 +animation/clip_135/end_frame=0 +animation/clip_135/loops=false +animation/clip_136/name="" +animation/clip_136/start_frame=0 +animation/clip_136/end_frame=0 +animation/clip_136/loops=false +animation/clip_137/name="" +animation/clip_137/start_frame=0 +animation/clip_137/end_frame=0 +animation/clip_137/loops=false +animation/clip_138/name="" +animation/clip_138/start_frame=0 +animation/clip_138/end_frame=0 +animation/clip_138/loops=false +animation/clip_139/name="" +animation/clip_139/start_frame=0 +animation/clip_139/end_frame=0 +animation/clip_139/loops=false +animation/clip_140/name="" +animation/clip_140/start_frame=0 +animation/clip_140/end_frame=0 +animation/clip_140/loops=false +animation/clip_141/name="" +animation/clip_141/start_frame=0 +animation/clip_141/end_frame=0 +animation/clip_141/loops=false +animation/clip_142/name="" +animation/clip_142/start_frame=0 +animation/clip_142/end_frame=0 +animation/clip_142/loops=false +animation/clip_143/name="" +animation/clip_143/start_frame=0 +animation/clip_143/end_frame=0 +animation/clip_143/loops=false +animation/clip_144/name="" +animation/clip_144/start_frame=0 +animation/clip_144/end_frame=0 +animation/clip_144/loops=false +animation/clip_145/name="" +animation/clip_145/start_frame=0 +animation/clip_145/end_frame=0 +animation/clip_145/loops=false +animation/clip_146/name="" +animation/clip_146/start_frame=0 +animation/clip_146/end_frame=0 +animation/clip_146/loops=false +animation/clip_147/name="" +animation/clip_147/start_frame=0 +animation/clip_147/end_frame=0 +animation/clip_147/loops=false +animation/clip_148/name="" +animation/clip_148/start_frame=0 +animation/clip_148/end_frame=0 +animation/clip_148/loops=false +animation/clip_149/name="" +animation/clip_149/start_frame=0 +animation/clip_149/end_frame=0 +animation/clip_149/loops=false +animation/clip_150/name="" +animation/clip_150/start_frame=0 +animation/clip_150/end_frame=0 +animation/clip_150/loops=false +animation/clip_151/name="" +animation/clip_151/start_frame=0 +animation/clip_151/end_frame=0 +animation/clip_151/loops=false +animation/clip_152/name="" +animation/clip_152/start_frame=0 +animation/clip_152/end_frame=0 +animation/clip_152/loops=false +animation/clip_153/name="" +animation/clip_153/start_frame=0 +animation/clip_153/end_frame=0 +animation/clip_153/loops=false +animation/clip_154/name="" +animation/clip_154/start_frame=0 +animation/clip_154/end_frame=0 +animation/clip_154/loops=false +animation/clip_155/name="" +animation/clip_155/start_frame=0 +animation/clip_155/end_frame=0 +animation/clip_155/loops=false +animation/clip_156/name="" +animation/clip_156/start_frame=0 +animation/clip_156/end_frame=0 +animation/clip_156/loops=false +animation/clip_157/name="" +animation/clip_157/start_frame=0 +animation/clip_157/end_frame=0 +animation/clip_157/loops=false +animation/clip_158/name="" +animation/clip_158/start_frame=0 +animation/clip_158/end_frame=0 +animation/clip_158/loops=false +animation/clip_159/name="" +animation/clip_159/start_frame=0 +animation/clip_159/end_frame=0 +animation/clip_159/loops=false +animation/clip_160/name="" +animation/clip_160/start_frame=0 +animation/clip_160/end_frame=0 +animation/clip_160/loops=false +animation/clip_161/name="" +animation/clip_161/start_frame=0 +animation/clip_161/end_frame=0 +animation/clip_161/loops=false +animation/clip_162/name="" +animation/clip_162/start_frame=0 +animation/clip_162/end_frame=0 +animation/clip_162/loops=false +animation/clip_163/name="" +animation/clip_163/start_frame=0 +animation/clip_163/end_frame=0 +animation/clip_163/loops=false +animation/clip_164/name="" +animation/clip_164/start_frame=0 +animation/clip_164/end_frame=0 +animation/clip_164/loops=false +animation/clip_165/name="" +animation/clip_165/start_frame=0 +animation/clip_165/end_frame=0 +animation/clip_165/loops=false +animation/clip_166/name="" +animation/clip_166/start_frame=0 +animation/clip_166/end_frame=0 +animation/clip_166/loops=false +animation/clip_167/name="" +animation/clip_167/start_frame=0 +animation/clip_167/end_frame=0 +animation/clip_167/loops=false +animation/clip_168/name="" +animation/clip_168/start_frame=0 +animation/clip_168/end_frame=0 +animation/clip_168/loops=false +animation/clip_169/name="" +animation/clip_169/start_frame=0 +animation/clip_169/end_frame=0 +animation/clip_169/loops=false +animation/clip_170/name="" +animation/clip_170/start_frame=0 +animation/clip_170/end_frame=0 +animation/clip_170/loops=false +animation/clip_171/name="" +animation/clip_171/start_frame=0 +animation/clip_171/end_frame=0 +animation/clip_171/loops=false +animation/clip_172/name="" +animation/clip_172/start_frame=0 +animation/clip_172/end_frame=0 +animation/clip_172/loops=false +animation/clip_173/name="" +animation/clip_173/start_frame=0 +animation/clip_173/end_frame=0 +animation/clip_173/loops=false +animation/clip_174/name="" +animation/clip_174/start_frame=0 +animation/clip_174/end_frame=0 +animation/clip_174/loops=false +animation/clip_175/name="" +animation/clip_175/start_frame=0 +animation/clip_175/end_frame=0 +animation/clip_175/loops=false +animation/clip_176/name="" +animation/clip_176/start_frame=0 +animation/clip_176/end_frame=0 +animation/clip_176/loops=false +animation/clip_177/name="" +animation/clip_177/start_frame=0 +animation/clip_177/end_frame=0 +animation/clip_177/loops=false +animation/clip_178/name="" +animation/clip_178/start_frame=0 +animation/clip_178/end_frame=0 +animation/clip_178/loops=false +animation/clip_179/name="" +animation/clip_179/start_frame=0 +animation/clip_179/end_frame=0 +animation/clip_179/loops=false +animation/clip_180/name="" +animation/clip_180/start_frame=0 +animation/clip_180/end_frame=0 +animation/clip_180/loops=false +animation/clip_181/name="" +animation/clip_181/start_frame=0 +animation/clip_181/end_frame=0 +animation/clip_181/loops=false +animation/clip_182/name="" +animation/clip_182/start_frame=0 +animation/clip_182/end_frame=0 +animation/clip_182/loops=false +animation/clip_183/name="" +animation/clip_183/start_frame=0 +animation/clip_183/end_frame=0 +animation/clip_183/loops=false +animation/clip_184/name="" +animation/clip_184/start_frame=0 +animation/clip_184/end_frame=0 +animation/clip_184/loops=false +animation/clip_185/name="" +animation/clip_185/start_frame=0 +animation/clip_185/end_frame=0 +animation/clip_185/loops=false +animation/clip_186/name="" +animation/clip_186/start_frame=0 +animation/clip_186/end_frame=0 +animation/clip_186/loops=false +animation/clip_187/name="" +animation/clip_187/start_frame=0 +animation/clip_187/end_frame=0 +animation/clip_187/loops=false +animation/clip_188/name="" +animation/clip_188/start_frame=0 +animation/clip_188/end_frame=0 +animation/clip_188/loops=false +animation/clip_189/name="" +animation/clip_189/start_frame=0 +animation/clip_189/end_frame=0 +animation/clip_189/loops=false +animation/clip_190/name="" +animation/clip_190/start_frame=0 +animation/clip_190/end_frame=0 +animation/clip_190/loops=false +animation/clip_191/name="" +animation/clip_191/start_frame=0 +animation/clip_191/end_frame=0 +animation/clip_191/loops=false +animation/clip_192/name="" +animation/clip_192/start_frame=0 +animation/clip_192/end_frame=0 +animation/clip_192/loops=false +animation/clip_193/name="" +animation/clip_193/start_frame=0 +animation/clip_193/end_frame=0 +animation/clip_193/loops=false +animation/clip_194/name="" +animation/clip_194/start_frame=0 +animation/clip_194/end_frame=0 +animation/clip_194/loops=false +animation/clip_195/name="" +animation/clip_195/start_frame=0 +animation/clip_195/end_frame=0 +animation/clip_195/loops=false +animation/clip_196/name="" +animation/clip_196/start_frame=0 +animation/clip_196/end_frame=0 +animation/clip_196/loops=false +animation/clip_197/name="" +animation/clip_197/start_frame=0 +animation/clip_197/end_frame=0 +animation/clip_197/loops=false +animation/clip_198/name="" +animation/clip_198/start_frame=0 +animation/clip_198/end_frame=0 +animation/clip_198/loops=false +animation/clip_199/name="" +animation/clip_199/start_frame=0 +animation/clip_199/end_frame=0 +animation/clip_199/loops=false +animation/clip_200/name="" +animation/clip_200/start_frame=0 +animation/clip_200/end_frame=0 +animation/clip_200/loops=false +animation/clip_201/name="" +animation/clip_201/start_frame=0 +animation/clip_201/end_frame=0 +animation/clip_201/loops=false +animation/clip_202/name="" +animation/clip_202/start_frame=0 +animation/clip_202/end_frame=0 +animation/clip_202/loops=false +animation/clip_203/name="" +animation/clip_203/start_frame=0 +animation/clip_203/end_frame=0 +animation/clip_203/loops=false +animation/clip_204/name="" +animation/clip_204/start_frame=0 +animation/clip_204/end_frame=0 +animation/clip_204/loops=false +animation/clip_205/name="" +animation/clip_205/start_frame=0 +animation/clip_205/end_frame=0 +animation/clip_205/loops=false +animation/clip_206/name="" +animation/clip_206/start_frame=0 +animation/clip_206/end_frame=0 +animation/clip_206/loops=false +animation/clip_207/name="" +animation/clip_207/start_frame=0 +animation/clip_207/end_frame=0 +animation/clip_207/loops=false +animation/clip_208/name="" +animation/clip_208/start_frame=0 +animation/clip_208/end_frame=0 +animation/clip_208/loops=false +animation/clip_209/name="" +animation/clip_209/start_frame=0 +animation/clip_209/end_frame=0 +animation/clip_209/loops=false +animation/clip_210/name="" +animation/clip_210/start_frame=0 +animation/clip_210/end_frame=0 +animation/clip_210/loops=false +animation/clip_211/name="" +animation/clip_211/start_frame=0 +animation/clip_211/end_frame=0 +animation/clip_211/loops=false +animation/clip_212/name="" +animation/clip_212/start_frame=0 +animation/clip_212/end_frame=0 +animation/clip_212/loops=false +animation/clip_213/name="" +animation/clip_213/start_frame=0 +animation/clip_213/end_frame=0 +animation/clip_213/loops=false +animation/clip_214/name="" +animation/clip_214/start_frame=0 +animation/clip_214/end_frame=0 +animation/clip_214/loops=false +animation/clip_215/name="" +animation/clip_215/start_frame=0 +animation/clip_215/end_frame=0 +animation/clip_215/loops=false +animation/clip_216/name="" +animation/clip_216/start_frame=0 +animation/clip_216/end_frame=0 +animation/clip_216/loops=false +animation/clip_217/name="" +animation/clip_217/start_frame=0 +animation/clip_217/end_frame=0 +animation/clip_217/loops=false +animation/clip_218/name="" +animation/clip_218/start_frame=0 +animation/clip_218/end_frame=0 +animation/clip_218/loops=false +animation/clip_219/name="" +animation/clip_219/start_frame=0 +animation/clip_219/end_frame=0 +animation/clip_219/loops=false +animation/clip_220/name="" +animation/clip_220/start_frame=0 +animation/clip_220/end_frame=0 +animation/clip_220/loops=false +animation/clip_221/name="" +animation/clip_221/start_frame=0 +animation/clip_221/end_frame=0 +animation/clip_221/loops=false +animation/clip_222/name="" +animation/clip_222/start_frame=0 +animation/clip_222/end_frame=0 +animation/clip_222/loops=false +animation/clip_223/name="" +animation/clip_223/start_frame=0 +animation/clip_223/end_frame=0 +animation/clip_223/loops=false +animation/clip_224/name="" +animation/clip_224/start_frame=0 +animation/clip_224/end_frame=0 +animation/clip_224/loops=false +animation/clip_225/name="" +animation/clip_225/start_frame=0 +animation/clip_225/end_frame=0 +animation/clip_225/loops=false +animation/clip_226/name="" +animation/clip_226/start_frame=0 +animation/clip_226/end_frame=0 +animation/clip_226/loops=false +animation/clip_227/name="" +animation/clip_227/start_frame=0 +animation/clip_227/end_frame=0 +animation/clip_227/loops=false +animation/clip_228/name="" +animation/clip_228/start_frame=0 +animation/clip_228/end_frame=0 +animation/clip_228/loops=false +animation/clip_229/name="" +animation/clip_229/start_frame=0 +animation/clip_229/end_frame=0 +animation/clip_229/loops=false +animation/clip_230/name="" +animation/clip_230/start_frame=0 +animation/clip_230/end_frame=0 +animation/clip_230/loops=false +animation/clip_231/name="" +animation/clip_231/start_frame=0 +animation/clip_231/end_frame=0 +animation/clip_231/loops=false +animation/clip_232/name="" +animation/clip_232/start_frame=0 +animation/clip_232/end_frame=0 +animation/clip_232/loops=false +animation/clip_233/name="" +animation/clip_233/start_frame=0 +animation/clip_233/end_frame=0 +animation/clip_233/loops=false +animation/clip_234/name="" +animation/clip_234/start_frame=0 +animation/clip_234/end_frame=0 +animation/clip_234/loops=false +animation/clip_235/name="" +animation/clip_235/start_frame=0 +animation/clip_235/end_frame=0 +animation/clip_235/loops=false +animation/clip_236/name="" +animation/clip_236/start_frame=0 +animation/clip_236/end_frame=0 +animation/clip_236/loops=false +animation/clip_237/name="" +animation/clip_237/start_frame=0 +animation/clip_237/end_frame=0 +animation/clip_237/loops=false +animation/clip_238/name="" +animation/clip_238/start_frame=0 +animation/clip_238/end_frame=0 +animation/clip_238/loops=false +animation/clip_239/name="" +animation/clip_239/start_frame=0 +animation/clip_239/end_frame=0 +animation/clip_239/loops=false +animation/clip_240/name="" +animation/clip_240/start_frame=0 +animation/clip_240/end_frame=0 +animation/clip_240/loops=false +animation/clip_241/name="" +animation/clip_241/start_frame=0 +animation/clip_241/end_frame=0 +animation/clip_241/loops=false +animation/clip_242/name="" +animation/clip_242/start_frame=0 +animation/clip_242/end_frame=0 +animation/clip_242/loops=false +animation/clip_243/name="" +animation/clip_243/start_frame=0 +animation/clip_243/end_frame=0 +animation/clip_243/loops=false +animation/clip_244/name="" +animation/clip_244/start_frame=0 +animation/clip_244/end_frame=0 +animation/clip_244/loops=false +animation/clip_245/name="" +animation/clip_245/start_frame=0 +animation/clip_245/end_frame=0 +animation/clip_245/loops=false +animation/clip_246/name="" +animation/clip_246/start_frame=0 +animation/clip_246/end_frame=0 +animation/clip_246/loops=false +animation/clip_247/name="" +animation/clip_247/start_frame=0 +animation/clip_247/end_frame=0 +animation/clip_247/loops=false +animation/clip_248/name="" +animation/clip_248/start_frame=0 +animation/clip_248/end_frame=0 +animation/clip_248/loops=false +animation/clip_249/name="" +animation/clip_249/start_frame=0 +animation/clip_249/end_frame=0 +animation/clip_249/loops=false +animation/clip_250/name="" +animation/clip_250/start_frame=0 +animation/clip_250/end_frame=0 +animation/clip_250/loops=false +animation/clip_251/name="" +animation/clip_251/start_frame=0 +animation/clip_251/end_frame=0 +animation/clip_251/loops=false +animation/clip_252/name="" +animation/clip_252/start_frame=0 +animation/clip_252/end_frame=0 +animation/clip_252/loops=false +animation/clip_253/name="" +animation/clip_253/start_frame=0 +animation/clip_253/end_frame=0 +animation/clip_253/loops=false +animation/clip_254/name="" +animation/clip_254/start_frame=0 +animation/clip_254/end_frame=0 +animation/clip_254/loops=false +animation/clip_255/name="" +animation/clip_255/start_frame=0 +animation/clip_255/end_frame=0 +animation/clip_255/loops=false +animation/clip_256/name="" +animation/clip_256/start_frame=0 +animation/clip_256/end_frame=0 +animation/clip_256/loops=false diff --git a/enemies/standard_merc/model/metallic.material b/enemies/standard_merc/model/metallic.material new file mode 100644 index 0000000..436730d Binary files /dev/null and b/enemies/standard_merc/model/metallic.material differ diff --git a/enemies/standard_merc/model/shotgunShellRed.material b/enemies/standard_merc/model/shotgunShellRed.material new file mode 100644 index 0000000..10b9169 Binary files /dev/null and b/enemies/standard_merc/model/shotgunShellRed.material differ diff --git a/enemies/standard_merc/model/skin.material b/enemies/standard_merc/model/skin.material new file mode 100644 index 0000000..ee31213 Binary files /dev/null and b/enemies/standard_merc/model/skin.material differ diff --git a/enemies/standard_merc/standard_merc.gd b/enemies/standard_merc/standard_merc.gd new file mode 100644 index 0000000..ae3d53b --- /dev/null +++ b/enemies/standard_merc/standard_merc.gd @@ -0,0 +1,190 @@ +extends KinematicBody + +enum State { + APPROACH = 0, + AIM = 1, + SHOOTING = 2, +} + +const PLAYER_AIM_TOLERANCE_DEGREES = 15 + +const SHOOT_WAIT = 0.5 +const AIM_TIME = 1 + +const AIM_PREPARE_TIME = 0.5 +const BLEND_AIM_SPEED = 0.05 + +export(int) var health = 5 +export(bool) var test_shoot = false + +var state = State.APPROACH + +var shoot_countdown = SHOOT_WAIT +var aim_countdown = AIM_TIME +var aim_preparing = AIM_PREPARE_TIME +var dead = false + +var player = null +var velocity = Vector3() +var orientation = Transform() +var dummy : Spatial + +var in_detection_normal = false +var in_detection_focused = false + +const ROTATION_INTERPOLATE_SPEED = 0.025 + +var root_motion = Transform() +var motion = Vector2() + +var last_player_sighting = Vector3() + +onready var initial_position = transform.origin +onready var gravity = ProjectSettings.get_setting("physics/3d/default_gravity") * ProjectSettings.get_setting("physics/3d/default_gravity_vector") + +onready var animation_tree = $AnimationTree +onready var player_model = $merc1/CharacterRig001 +onready var shoot_from = player_model.get_node(@"Skeleton/GunBone/ShootFrom") +onready var fire_cooldown = $FireCooldown +onready var collision_shape = $CapsuleShape + +onready var sound_effects = $SoundEffects +onready var sound_effect_jump = sound_effects.get_node(@"Jump") +onready var sound_effect_land = sound_effects.get_node(@"Land") +onready var sound_effect_shoot = sound_effects.get_node(@"Shoot") +onready var explosion_sound = sound_effects.get_node(@"Explosion") +onready var hit_sound = sound_effects.get_node(@"Hit") + +onready var reaction_time = $ReactionTime.get_wait_time() + +onready var sight_normal = $"PlayerDetection1/NormalLoS" +onready var sight_focused = $"PlayerDetection1/AttentiveLoS" + +func _ready(): + # Pre-initialize orientation transform. + orientation = player_model.global_transform + orientation.origin = Vector3() + + dummy = Spatial.new() + +func _physics_process(delta): + if dead: + return + + if player != null and fire_cooldown.time_left == 0: + # See if player can be killed because in they're sight. + var ray_origin = shoot_from.global_transform.origin + var ray_to = player.global_transform.origin + Vector3.UP # Above middle of player. + var col = get_world().direct_space_state.intersect_ray(ray_origin, ray_to, [self], 0b111) + # If our raycast hit a player + if not col.empty() and col.collider == player: + # Record last sighting (in case they hide later) + last_player_sighting = ray_to + + state = State.AIM + aim_countdown = AIM_TIME + aim_preparing = 0 + animation_tree["parameters/state/current"] = 1 + + if $ReactionTime.time_left == 0: + + # If the player is detected by at too large an angle, slerp rotate towards them + var to_player_local = global_transform.xform_inv(player.global_transform.origin) + # The front of this is +Z, and atan2 is zero at +X, so we need to use the Z for the X parameter (second one). + var angle_to_player = atan2(to_player_local.x, to_player_local.z) + var tolerance = deg2rad(PLAYER_AIM_TOLERANCE_DEGREES) + if angle_to_player > tolerance: + lerp_to_face_player(angle_to_player, ROTATION_INTERPOLATE_SPEED) + elif angle_to_player < -tolerance: + lerp_to_face_player(angle_to_player, ROTATION_INTERPOLATE_SPEED) + else: + # Facing player, try to shoot. + self.look_at(ray_to, Vector3.UP) + self.rotate_object_local(Vector3.UP, PI) + + var bullet = preload("res://player/bullet/bullet.tscn").instance() + get_parent().add_child(bullet) + bullet.global_transform.origin = ray_origin + # If we don't rotate the bullets there is no useful way to control the particles .. + bullet.look_at(ray_to, Vector3.UP) + bullet.add_collision_exception_with(self) + var shoot_particle = player_model.get_node(@"Skeleton/GunBone/ShootFrom/ShootParticle") + shoot_particle.restart() + shoot_particle.emitting = true + var muzzle_particle = player_model.get_node(@"Skeleton/GunBone/ShootFrom/MuzzleFlash") + muzzle_particle.restart() + muzzle_particle.emitting = true + fire_cooldown.start() + sound_effect_shoot.play() + else: + if $ReactionTime.is_paused(): + $ReactionTime.set_paused(false) #restart reaction time + else: + # Player not in sight. + shoot_countdown = SHOOT_WAIT + + if $ReactionTime.time_left != reaction_time: + $ReactionTime.start() + $ReactionTime.set_paused(true) + + # Run at their last known position + if last_player_sighting != Vector3(): + + # If the player is detected by at too large an angle, slerp rotate towards them + var to_player_local = global_transform.xform_inv(last_player_sighting) + # The front of this is +Z, and atan2 is zero at +X, so we need to use the Z for the X parameter (second one). + var angle_to_player = atan2(to_player_local.x, to_player_local.z) + var tolerance = deg2rad(PLAYER_AIM_TOLERANCE_DEGREES) + if angle_to_player > tolerance: + lerp_to_face_player(angle_to_player, ROTATION_INTERPOLATE_SPEED) + elif angle_to_player < -tolerance: + lerp_to_face_player(angle_to_player, ROTATION_INTERPOLATE_SPEED) + + animation_tree["parameters/state/current"] = 2 + # Blend position for walk speed based on motion. + + # Run animation straight forward, high speed + animation_tree["parameters/walk/blend_position"] = Vector2(0.5, 0) + + # move in XY direction facing + root_motion = animation_tree.get_root_motion_transform() + velocity = move_and_slide(root_motion.origin.length() * self.transform.basis.z * Vector3(1,0,1), Vector3.UP) + self.global_transform.origin += velocity + #self.global_transform.origin += root_motion.origin.length() * self.transform.basis.z * Vector3(1,0,1) + + +func lerp_to_face_player(angle_to_player, rot_speed): + var langle = lerp_angle(0, angle_to_player, rot_speed) + # restrict to Y axis (no vertical rotation) + self.global_transform.basis = Basis(Vector3(0, 1, 0), langle) * self.global_transform.basis + +func hit(col): + health -= 1 + if health <= 0: + dead = true + animation_tree.active = false + player_model.visible = false + collision_shape.disabled = true + explosion_sound.play() + self.queue_free() # delete self + hit_sound.play() + # If shot at, attempt to look for player. This will extrapolate from impact position + # so they may validly look the wrong direction + if player == null or player == dummy: + player = dummy + last_player_sighting = (col.position - self.global_transform.origin) * 20 + self.global_transform.origin + # Enable longer focus detection shape + sight_focused.disabled = false + + +func _on_PlayerDetection1_body_entered(body): + if body.name == "Player" or body.name == "Target": + in_detection_normal = true + player = body + # Enable longer focus detection shape + sight_focused.disabled = false + +func _on_PlayerDetection1_body_exited(body): + if body.name == "Player": + player = null + sight_focused.disabled = true diff --git a/enemies/standard_merc/standard_merc1.tscn b/enemies/standard_merc/standard_merc1.tscn new file mode 100644 index 0000000..f24f24c --- /dev/null +++ b/enemies/standard_merc/standard_merc1.tscn @@ -0,0 +1,380 @@ +[gd_scene load_steps=51 format=2] + +[ext_resource path="res://enemies/standard_merc/model/merc1.glb" type="PackedScene" id=1] +[ext_resource path="res://player/bullet/bullet_material.tres" type="Material" id=2] +[ext_resource path="res://effects_shared/bullet/effect/FlarePolar.png" type="Texture" id=3] +[ext_resource path="res://enemies/standard_merc/standard_merc.gd" type="Script" id=4] +[ext_resource path="res://player/model/muzzle_flash_particle_mesh_Cone.mesh" type="ArrayMesh" id=5] +[ext_resource path="res://enemies/common/audio/explosion.wav" type="AudioStream" id=6] +[ext_resource path="res://player/audio/land.wav" type="AudioStream" id=7] +[ext_resource path="res://player/audio/shoot.wav" type="AudioStream" id=8] +[ext_resource path="res://player/audio/jump.wav" type="AudioStream" id=9] +[ext_resource path="res://enemies/bad_cat/audio/step.wav" type="AudioStream" id=10] +[ext_resource path="res://player/audio/step_random_pitch.tres" type="AudioStream" id=11] +[ext_resource path="res://enemies/common/Hitbox.gd" type="Script" id=12] +[ext_resource path="res://level/catalunya/map/Water.material" type="Material" id=13] + +[sub_resource type="ParticlesMaterial" id=2] +flag_align_y = true +direction = Vector3( 0, 0, -1 ) +spread = 15.0 +gravity = Vector3( 0, -3, 0 ) +initial_velocity = 3.0 + +[sub_resource type="SphereMesh" id=3] +radius = 0.003 +height = 0.02 + +[sub_resource type="SpatialMaterial" id=4] +flags_transparent = true +flags_unshaded = true +vertex_color_use_as_albedo = true +params_cull_mode = 2 +albedo_texture = ExtResource( 3 ) + +[sub_resource type="Gradient" id=5] +offsets = PoolRealArray( 0.325926, 1 ) +colors = PoolColorArray( 0.0507812, 0.955505, 1, 1, 0.875, 0.888672, 1, 0.305882 ) + +[sub_resource type="GradientTexture" id=6] +gradient = SubResource( 5 ) +width = 32 + +[sub_resource type="Curve" id=7] +_data = [ Vector2( 0, 0 ), 0.0, 0.0, 0, 0, Vector2( 0.791139, 0.990909 ), 0.0, 0.0, 0, 0, Vector2( 1, 0 ), 0.0, 0.0, 0, 0 ] + +[sub_resource type="CurveTexture" id=8] +width = 64 +curve = SubResource( 7 ) + +[sub_resource type="ParticlesMaterial" id=9] +gravity = Vector3( 0, 0, 0 ) +angle = -4.0 +angle_random = 1.0 +scale = 0.3 +scale_curve = SubResource( 8 ) +color_ramp = SubResource( 6 ) + +[sub_resource type="CapsuleShape" id=75] +radius = 0.838398 +height = 3.62302 + +[sub_resource type="CapsuleShape" id=1] +radius = 1.77315 +height = 1.96526 + +[sub_resource type="SphereShape" id=74] +radius = 100.0 + +[sub_resource type="CapsuleShape" id=77] +radius = 36.0 +height = 250.0 + +[sub_resource type="CapsuleMesh" id=78] +radius = 50.0 +mid_height = 250.0 + +[sub_resource type="AudioStreamRandomPitch" id=11] +audio_stream = ExtResource( 8 ) + +[sub_resource type="AnimationNodeAdd3" id=40] +resource_local_to_scene = true +filter_enabled = true +filters = [ "Colette_Armature/Skeleton:ElbowF.R", "Colette_Armature/Skeleton:ElbowM.R", "Colette_Armature/Skeleton:ElbowTargetIK.R", "Colette_Armature/Skeleton:ElbowU.R", "Colette_Armature/Skeleton:F_Index_1.R", "Colette_Armature/Skeleton:F_Index_2.R", "Colette_Armature/Skeleton:F_Index_3.R", "Colette_Armature/Skeleton:F_Index_4.R", "Colette_Armature/Skeleton:F_Middle_1.R", "Colette_Armature/Skeleton:F_Middle_2.R", "Colette_Armature/Skeleton:F_Middle_3.R", "Colette_Armature/Skeleton:F_Middle_4.R", "Colette_Armature/Skeleton:F_Pinky_1.R", "Colette_Armature/Skeleton:F_Pinky_2.R", "Colette_Armature/Skeleton:F_Pinky_3.R", "Colette_Armature/Skeleton:F_Pinky_4.R", "Colette_Armature/Skeleton:F_Ring_1.R", "Colette_Armature/Skeleton:F_Ring_2.R", "Colette_Armature/Skeleton:F_Ring_3.R", "Colette_Armature/Skeleton:F_Ring_4.R", "Colette_Armature/Skeleton:F_Thumb_1.R", "Colette_Armature/Skeleton:F_Thumb_2.R", "Colette_Armature/Skeleton:F_Thumb_3.R", "Colette_Armature/Skeleton:ForeArm.R", "Colette_Armature/Skeleton:ForeArmSkin1.R", "Colette_Armature/Skeleton:ForeArmSkin2.R", "Colette_Armature/Skeleton:ForeArmSkin3.R", "Colette_Armature/Skeleton:Hand.R", "Colette_Armature/Skeleton:HandMark_IK_FK.R", "Colette_Armature/Skeleton:Shoulder.R", "Colette_Armature/Skeleton:UpperArm.R", "Colette_Armature/Skeleton:UpperArmSkin1.R", "Colette_Armature/Skeleton:UpperArmSkin2.R", "Colette_Armature/Skeleton:UpperArmSkin3.R", "Colette_Armature/Skeleton:hand_r", "Robot_Skeleton/Skeleton:neck.001", "Robot_Skeleton/Skeleton:upper_arm.R" ] + +[sub_resource type="AnimationNodeAnimation" id=61] +resource_local_to_scene = true +animation = "AIM-Down" + +[sub_resource type="AnimationNodeAnimation" id=62] +resource_local_to_scene = true +animation = "AIM-Up" + +[sub_resource type="AnimationNodeBlend2" id=63] +resource_local_to_scene = true +filter_enabled = true +filters = [ "Colette_Armature/Skeleton:Eye.L", "Colette_Armature/Skeleton:Eye.L.001", "Colette_Armature/Skeleton:Eye.L.002", "Colette_Armature/Skeleton:Eye.R", "Colette_Armature/Skeleton:Eye.R.001", "Colette_Armature/Skeleton:Eye.R.002", "Colette_Armature/Skeleton:EyeMaster", "Colette_Armature/Skeleton:Eyebrowflex.L", "Colette_Armature/Skeleton:Eyebrowflex.R", "Colette_Armature/Skeleton:Eyeslash.L", "Colette_Armature/Skeleton:Eyeslash.R", "Colette_Armature/Skeleton:eyebrow1.L", "Colette_Armature/Skeleton:eyebrow1.R", "Colette_Armature/Skeleton:eyebrow2.L.001", "Colette_Armature/Skeleton:eyebrow2.R.001", "Colette_Armature/Skeleton:eyebrow3.L.001", "Colette_Armature/Skeleton:eyebrow3.R.001", "Colette_Armature/Skeleton:eyebrow4.L.001", "Colette_Armature/Skeleton:eyebrow4.R.001", "Colette_Armature/Skeleton:eyebrow5.L", "Colette_Armature/Skeleton:eyebrow5.R", "Colette_Armature/Skeleton:eyebrowMaster.L", "Colette_Armature/Skeleton:eyebrowMaster.R", "Robot_Skeleton/Skeleton:eyelid.d.L", "Robot_Skeleton/Skeleton:eyelid.d.R", "Robot_Skeleton/Skeleton:eyelid.u.L", "Robot_Skeleton/Skeleton:eyelid.u.R", "Robot_Skeleton/Skeleton:eyes" ] + +[sub_resource type="AnimationNodeAnimation" id=44] +resource_local_to_scene = true +animation = "eyes-cycle" + +[sub_resource type="AnimationNodeAnimation" id=45] +resource_local_to_scene = true +animation = "jump_5_hardlanding" + +[sub_resource type="AnimationNodeAnimation" id=39] +animation = "Aim" + +[sub_resource type="AnimationNodeAnimation" id=46] +resource_local_to_scene = true +animation = "jump_4_falling-cycle" + +[sub_resource type="AnimationNodeAnimation" id=47] +resource_local_to_scene = true +animation = "jump_2_upwards-cycle" + +[sub_resource type="AnimationNodeOneShot" id=48] +resource_local_to_scene = true +fadein_time = 0.25 +fadeout_time = 0.25 +autorestart_random_delay = 1.0 + +[sub_resource type="AnimationNodeTransition" id=49] +resource_local_to_scene = true +input_count = 5 +xfade_time = 0.15 +input_0/name = "idle" +input_0/auto_advance = false +input_1/name = "strafe" +input_1/auto_advance = false +input_2/name = "walk" +input_2/auto_advance = false +input_3/name = "jump_up" +input_3/auto_advance = false +input_4/name = "jump_down" +input_4/auto_advance = false + +[sub_resource type="AnimationNodeAnimation" id=64] +resource_local_to_scene = true +animation = "strafe_left-cycle" + +[sub_resource type="AnimationNodeAnimation" id=65] +resource_local_to_scene = true +animation = "strafe_right-cycle" + +[sub_resource type="AnimationNodeAnimation" id=66] +resource_local_to_scene = true +animation = "strafe_back-cycle" + +[sub_resource type="AnimationNodeAnimation" id=67] +resource_local_to_scene = true +animation = "strafe_front-cycle" + +[sub_resource type="AnimationNodeAnimation" id=68] +resource_local_to_scene = true +animation = "Idlecombat-cycle" + +[sub_resource type="AnimationNodeBlendSpace2D" id=55] +resource_local_to_scene = true +blend_point_0/node = SubResource( 64 ) +blend_point_0/pos = Vector2( 1, 0 ) +blend_point_1/node = SubResource( 65 ) +blend_point_1/pos = Vector2( -1, 0 ) +blend_point_2/node = SubResource( 66 ) +blend_point_2/pos = Vector2( 0, -1 ) +blend_point_3/node = SubResource( 67 ) +blend_point_3/pos = Vector2( 0, 1 ) +blend_point_4/node = SubResource( 68 ) +blend_point_4/pos = Vector2( 0, 0 ) + +[sub_resource type="AnimationNodeAnimation" id=69] +resource_local_to_scene = true +animation = "Idle-cycle" + +[sub_resource type="AnimationNodeAnimation" id=70] +resource_local_to_scene = true +animation = "running_nogun-cycle" + +[sub_resource type="AnimationNodeAnimation" id=71] +resource_local_to_scene = true +animation = "running_gun-cycle" + +[sub_resource type="AnimationNodeAnimation" id=72] +resource_local_to_scene = true +animation = "Idlecombat-cycle" + +[sub_resource type="AnimationNodeBlendSpace2D" id=60] +resource_local_to_scene = true +blend_point_0/node = SubResource( 69 ) +blend_point_0/pos = Vector2( 0, 0 ) +blend_point_1/node = SubResource( 70 ) +blend_point_1/pos = Vector2( 1, 0 ) +blend_point_2/node = SubResource( 71 ) +blend_point_2/pos = Vector2( 1, 1 ) +blend_point_3/node = SubResource( 72 ) +blend_point_3/pos = Vector2( 0, 1 ) +min_space = Vector2( 0, 0 ) +x_label = "speed" +y_label = "gun" + +[sub_resource type="AnimationNodeBlendTree" id=73] +resource_local_to_scene = true +graph_offset = Vector2( -819, 27 ) +nodes/aim/node = SubResource( 40 ) +nodes/aim/position = Vector2( 380, 120 ) +nodes/aimdown/node = SubResource( 61 ) +nodes/aimdown/position = Vector2( 120, 60 ) +nodes/aimup/node = SubResource( 62 ) +nodes/aimup/position = Vector2( 140, 380 ) +nodes/eye_blend/node = SubResource( 63 ) +nodes/eye_blend/position = Vector2( 640, 120 ) +nodes/eyes/node = SubResource( 44 ) +nodes/eyes/position = Vector2( 380, 360 ) +nodes/hardland/node = SubResource( 45 ) +nodes/hardland/position = Vector2( -160, 400 ) +nodes/idle/node = SubResource( 39 ) +nodes/idle/position = Vector2( -420, -40 ) +nodes/jumpdown/node = SubResource( 46 ) +nodes/jumpdown/position = Vector2( -420, 400 ) +nodes/jumpup/node = SubResource( 47 ) +nodes/jumpup/position = Vector2( -440, 280 ) +nodes/land/node = SubResource( 48 ) +nodes/land/position = Vector2( 120, 180 ) +nodes/output/position = Vector2( 840, 120 ) +nodes/state/node = SubResource( 49 ) +nodes/state/position = Vector2( -120, 120 ) +nodes/strafe/node = SubResource( 55 ) +nodes/strafe/position = Vector2( -640, 40 ) +nodes/walk/node = SubResource( 60 ) +nodes/walk/position = Vector2( -640, 200 ) +node_connections = [ "state", 0, "idle", "state", 1, "strafe", "state", 2, "walk", "state", 3, "jumpup", "state", 4, "jumpdown", "output", 0, "eye_blend", "eye_blend", 0, "aim", "eye_blend", 1, "eyes", "land", 0, "state", "land", 1, "hardland", "aim", 0, "aimdown", "aim", 1, "land", "aim", 2, "aimup" ] + +[node name="merc_st_1" type="KinematicBody"] +script = ExtResource( 4 ) + +[node name="merc1" parent="." instance=ExtResource( 1 )] +transform = Transform( 0.25, 0, 0, 0, 0.25, 0, 0, 0, 0.25, 0, 0, 0 ) + +[node name="BoneAttachment" parent="merc1/CharacterRig001/Skeleton" index="0"] +transform = Transform( 1, -1.77636e-15, 0, 1.77636e-14, 0.999486, -0.0320689, -5.68434e-14, 0.032069, 0.999485, -0.141024, 2.85038, 0.253468 ) + +[node name="BoneAttachment2" parent="merc1/CharacterRig001/Skeleton" index="1"] +transform = Transform( -0.864423, -0.469201, -0.180617, -0.0894964, -0.209907, 0.973616, -0.494735, 0.857782, 0.139457, 0.253897, 1.91372, 0.970537 ) + +[node name="BoneAttachment3" parent="merc1/CharacterRig001/Skeleton" index="2"] +transform = Transform( 0.41059, -0.0995836, -0.906366, -0.762978, -0.58181, -0.281711, -0.499279, 0.807205, -0.314866, -1.05637, 1.45186, 0.211358 ) + +[node name="BoneAttachment4" parent="merc1/CharacterRig001/Skeleton" index="3"] +transform = Transform( 0.987501, 0.0954544, -0.125421, 0.00230877, -0.804427, -0.594048, -0.157597, 0.586333, -0.794592, 0.336515, 0.182227, 1.29471 ) + +[node name="BoneAttachment5" parent="merc1/CharacterRig001/Skeleton" index="4"] +transform = Transform( 0.990442, 0.133285, -0.0354968, 0.00633056, -0.301008, -0.953602, -0.137785, 0.944261, -0.298975, 0.179503, 0.536819, 0.182357 ) + +[node name="BoneAttachment6" parent="merc1/CharacterRig001/Skeleton" index="5"] +transform = Transform( 0.993216, -0.0799971, 0.0843927, -0.115633, -0.756083, 0.64418, 0.0122754, -0.64957, -0.760203, -0.415847, -0.78547, 0.189681 ) + +[node name="BoneAttachment7" parent="merc1/CharacterRig001/Skeleton" index="6"] +transform = Transform( 0.995782, -0.0915606, 0.00586568, -0.0916677, -0.995552, 0.0218013, 0.00384344, -0.0222471, -0.999746, -0.307987, 0.387305, 0.215888 ) + +[node name="BoneAttachment8" parent="merc1/CharacterRig001/Skeleton" index="7"] +transform = Transform( 1, -1.06581e-14, 2.38419e-07, 6.17289e-08, 0.965901, -0.25891, -2.30289e-07, 0.25891, 0.965901, -0.141024, 0.588151, 0.19426 ) + +[node name="BoneAttachment9" parent="merc1/CharacterRig001/Skeleton" index="8"] +transform = Transform( 1, -1.06581e-14, 2.38419e-07, 6.17289e-08, 0.965901, -0.25891, -2.30289e-07, 0.25891, 0.965901, -0.141024, 0.588151, 0.19426 ) + +[node name="GunBone" type="BoneAttachment" parent="merc1/CharacterRig001/Skeleton" index="20"] + +[node name="ShootFrom" type="Position3D" parent="merc1/CharacterRig001/Skeleton/GunBone"] +transform = Transform( 1, 0, 0, 0, -1, 8.74228e-08, 0, -8.74228e-08, -1, -0.83252, 1.76359, 2.32827 ) + +[node name="ShootParticle" type="Particles" parent="merc1/CharacterRig001/Skeleton/GunBone/ShootFrom"] +transform = Transform( 1, 2.04891e-08, 0, 3.21306e-08, 1, 5.58794e-09, 0, 0, 1, 0, 0, 0 ) +material_override = ExtResource( 2 ) +emitting = false +amount = 10 +lifetime = 0.3 +one_shot = true +explosiveness = 0.79 +local_coords = false +process_material = SubResource( 2 ) +draw_pass_1 = SubResource( 3 ) + +[node name="MuzzleFlash" type="Particles" parent="merc1/CharacterRig001/Skeleton/GunBone/ShootFrom"] +transform = Transform( 1, 0, -2.00234e-08, 1.21072e-08, -4.37722e-08, -1, -2.98023e-08, 1, -4.74975e-08, 0, 0, 0 ) +material_override = SubResource( 4 ) +emitting = false +amount = 1 +lifetime = 0.1 +one_shot = true +explosiveness = 1.0 +process_material = SubResource( 9 ) +draw_pass_1 = ExtResource( 5 ) + +[node name="ChestBone" type="BoneAttachment" parent="merc1/CharacterRig001/Skeleton" index="21"] +transform = Transform( 1, -4.84561e-15, -2.38419e-07, 2.16312e-10, 0.999999, 0.000907198, 2.38418e-07, -0.000907179, 0.999999, -0.141024, 1.4479, 0.307752 ) +bone_name = "spine2" + +[node name="Hitbox" type="KinematicBody" parent="merc1/CharacterRig001/Skeleton/ChestBone"] +collision_layer = 64 +collision_mask = 0 +script = ExtResource( 12 ) +node_with_hit = NodePath("../../../../..") + +[node name="CollisionShape" type="CollisionShape" parent="merc1/CharacterRig001/Skeleton/ChestBone/Hitbox"] +transform = Transform( 1, 0, -6.93889e-17, -6.93889e-17, -4.4005e-08, -1, 0, 1, -4.4005e-08, 7.45058e-08, -0.228799, 0.156217 ) +shape = SubResource( 75 ) + +[node name="CapsuleShape" type="CollisionShape" parent="."] +transform = Transform( 0.25, 0, 0, 0, -1.09278e-08, 0.25, 0, -0.25, -1.09278e-08, 0, 0.716, 0 ) +shape = SubResource( 1 ) + +[node name="FireCooldown" type="Timer" parent="."] +wait_time = 0.4 +one_shot = true +autostart = true + +[node name="ReactionTime" type="Timer" parent="."] +wait_time = 0.5 +one_shot = true + +[node name="PlayerDetection1" type="Area" parent="."] +transform = Transform( 0.25, 0, 0, 0, 0.25, 0, 0, 0, 0.25, 0, 0, 0 ) +collision_layer = 2 +collision_mask = 2 + +[node name="NormalDetection" type="CollisionShape" parent="PlayerDetection1"] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 43.7507 ) +shape = SubResource( 74 ) + +[node name="AttentiveLoS" type="CollisionShape" parent="PlayerDetection1"] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 143.478 ) +shape = SubResource( 77 ) +disabled = true + +[node name="DebugMesh" type="MeshInstance" parent="PlayerDetection1/AttentiveLoS"] +visible = false +mesh = SubResource( 78 ) +material/0 = ExtResource( 13 ) + +[node name="SoundEffects" type="Node" parent="."] + +[node name="Step" type="AudioStreamPlayer" parent="SoundEffects"] +stream = ExtResource( 11 ) + +[node name="Jump" type="AudioStreamPlayer" parent="SoundEffects"] +stream = ExtResource( 9 ) + +[node name="Land" type="AudioStreamPlayer" parent="SoundEffects"] +stream = ExtResource( 7 ) + +[node name="Shoot" type="AudioStreamPlayer" parent="SoundEffects"] +stream = SubResource( 11 ) + +[node name="Explosion" type="AudioStreamPlayer3D" parent="SoundEffects"] +stream = ExtResource( 6 ) +unit_db = 12.0 +unit_size = 15.0 + +[node name="Hit" type="AudioStreamPlayer3D" parent="SoundEffects"] +stream = ExtResource( 10 ) +unit_db = 3.0 +unit_size = 15.0 + +[node name="AnimationTree" type="AnimationTree" parent="."] +tree_root = SubResource( 73 ) +anim_player = NodePath("../merc1/AnimationPlayer") +active = true +process_mode = 0 +root_motion_track = NodePath("Colette_Armature/Skeleton:Root") +parameters/aim/add_amount = 0 +parameters/eye_blend/blend_amount = 1.0 +parameters/land/active = false +parameters/state/current = 0 +parameters/strafe/blend_position = Vector2( 0.00158477, 0.982759 ) +parameters/walk/blend_position = Vector2( 0, 0 ) + +[connection signal="body_entered" from="PlayerDetection1" to="." method="_on_PlayerDetection1_body_entered"] +[connection signal="body_exited" from="PlayerDetection1" to="." method="_on_PlayerDetection1_body_exited"] + +[editable path="merc1"] diff --git a/file_format.sh b/file_format.sh new file mode 100644 index 0000000..fab029e --- /dev/null +++ b/file_format.sh @@ -0,0 +1,55 @@ +#!/usr/bin/env bash + +# This script ensures proper POSIX text file formatting and a few other things. + +set -uo pipefail +IFS=$'\n\t' + +# Loops through all text files tracked by Git. +git grep -zIl '' | +while IFS= read -rd '' f; do + # Exclude some types of files. + if [[ "$f" == *"csproj" ]]; then + continue + elif [[ "$f" == *"hdr" ]]; then + continue + fi + # Ensure that files are UTF-8 formatted. + recode UTF-8 "$f" 2> /dev/null + # Ensure that files have LF line endings and do not contain a BOM. + dos2unix "$f" 2> /dev/null + # Remove trailing space characters and ensures that files end + # with newline characters. -l option handles newlines conveniently. + perl -i -ple 's/\s*$//g' "$f" + # Remove the character sequence "== true" if it has a leading space. + perl -i -pe 's/\x20== true//g' "$f" + # We don't want to change lines around braces in godot/tscn files. + if [[ "$f" == *"godot" ]]; then + continue + elif [[ "$f" == *"tscn" ]]; then + continue + fi + # Disallow empty lines after the opening brace. + sed -z -i 's/\x7B\x0A\x0A/\x7B\x0A/g' "$f" + # Disallow some empty lines before the closing brace. + sed -z -i 's/\x0A\x0A\x7D/\x0A\x7D/g' "$f" +done + +git diff > patch.patch +FILESIZE="$(stat -c%s patch.patch)" +MAXSIZE=5 + +# If no patch has been generated all is OK, clean up, and exit. +if (( FILESIZE < MAXSIZE )); then + printf "Files in this commit comply with the formatting rules.\n" + rm -f patch.patch + exit 0 +fi + +# A patch has been created, notify the user, clean up, and exit. +printf "\n*** The following differences were found between the code " +printf "and the formatting rules:\n\n" +cat patch.patch +printf "\n*** Aborting, please fix your commit(s) with 'git commit --amend' or 'git rebase -i '\n" +rm -f patch.patch +exit 1 diff --git a/icon.ico b/icon.ico new file mode 100644 index 0000000..b6addf4 Binary files /dev/null and b/icon.ico differ diff --git a/icon.png b/icon.png new file mode 100644 index 0000000..a55c884 Binary files /dev/null and b/icon.png differ diff --git a/icon.png.import b/icon.png.import new file mode 100644 index 0000000..a4c02e6 --- /dev/null +++ b/icon.png.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://icon.png" +dest_files=[ "res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/level/catalunya/IGNORED_textures_original_size/.gdignore b/level/catalunya/IGNORED_textures_original_size/.gdignore new file mode 100644 index 0000000..e69de29 diff --git a/level/catalunya/IGNORED_textures_original_size/1024px-Estelada_roja.svg.png b/level/catalunya/IGNORED_textures_original_size/1024px-Estelada_roja.svg.png new file mode 100644 index 0000000..dd82d37 Binary files /dev/null and b/level/catalunya/IGNORED_textures_original_size/1024px-Estelada_roja.svg.png differ diff --git a/level/catalunya/IGNORED_textures_original_size/1024px-Estelada_roja.svg.png.import b/level/catalunya/IGNORED_textures_original_size/1024px-Estelada_roja.svg.png.import new file mode 100644 index 0000000..3168358 --- /dev/null +++ b/level/catalunya/IGNORED_textures_original_size/1024px-Estelada_roja.svg.png.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/1024px-Estelada_roja.svg.png-5f286c23ed9b693f4af128447eb13912.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://catalunya/EXCLUDE_textures_original_size/1024px-Estelada_roja.svg.png" +dest_files=[ "res://.import/1024px-Estelada_roja.svg.png-5f286c23ed9b693f4af128447eb13912.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/level/catalunya/IGNORED_textures_original_size/Berga_i_Serra_de_Queralt_des_de_la_Serra_de_Noet,_Catalunya,_Espanya_-_20110204 (copy).png b/level/catalunya/IGNORED_textures_original_size/Berga_i_Serra_de_Queralt_des_de_la_Serra_de_Noet,_Catalunya,_Espanya_-_20110204 (copy).png new file mode 100644 index 0000000..2b59673 Binary files /dev/null and b/level/catalunya/IGNORED_textures_original_size/Berga_i_Serra_de_Queralt_des_de_la_Serra_de_Noet,_Catalunya,_Espanya_-_20110204 (copy).png differ diff --git a/level/catalunya/IGNORED_textures_original_size/Berga_i_Serra_de_Queralt_des_de_la_Serra_de_Noet,_Catalunya,_Espanya_-_20110204 (copy).png.import b/level/catalunya/IGNORED_textures_original_size/Berga_i_Serra_de_Queralt_des_de_la_Serra_de_Noet,_Catalunya,_Espanya_-_20110204 (copy).png.import new file mode 100644 index 0000000..e47d684 --- /dev/null +++ b/level/catalunya/IGNORED_textures_original_size/Berga_i_Serra_de_Queralt_des_de_la_Serra_de_Noet,_Catalunya,_Espanya_-_20110204 (copy).png.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/Berga_i_Serra_de_Queralt_des_de_la_Serra_de_Noet,_Catalunya,_Espanya_-_20110204 (copy).png-cedba7e29c8e5ca6c91a7e7cb6421b5f.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://catalunya/EXCLUDE_textures_original_size/Berga_i_Serra_de_Queralt_des_de_la_Serra_de_Noet,_Catalunya,_Espanya_-_20110204 (copy).png" +dest_files=[ "res://.import/Berga_i_Serra_de_Queralt_des_de_la_Serra_de_Noet,_Catalunya,_Espanya_-_20110204 (copy).png-cedba7e29c8e5ca6c91a7e7cb6421b5f.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/level/catalunya/IGNORED_textures_original_size/Berga_i_Serra_de_Queralt_des_de_la_Serra_de_Noet,_Catalunya,_Espanya_-_20110204.png b/level/catalunya/IGNORED_textures_original_size/Berga_i_Serra_de_Queralt_des_de_la_Serra_de_Noet,_Catalunya,_Espanya_-_20110204.png new file mode 100644 index 0000000..8393e7e Binary files /dev/null and b/level/catalunya/IGNORED_textures_original_size/Berga_i_Serra_de_Queralt_des_de_la_Serra_de_Noet,_Catalunya,_Espanya_-_20110204.png differ diff --git a/level/catalunya/IGNORED_textures_original_size/Berga_i_Serra_de_Queralt_des_de_la_Serra_de_Noet,_Catalunya,_Espanya_-_20110204.png.import b/level/catalunya/IGNORED_textures_original_size/Berga_i_Serra_de_Queralt_des_de_la_Serra_de_Noet,_Catalunya,_Espanya_-_20110204.png.import new file mode 100644 index 0000000..12f28b9 --- /dev/null +++ b/level/catalunya/IGNORED_textures_original_size/Berga_i_Serra_de_Queralt_des_de_la_Serra_de_Noet,_Catalunya,_Espanya_-_20110204.png.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/Berga_i_Serra_de_Queralt_des_de_la_Serra_de_Noet,_Catalunya,_Espanya_-_20110204.png-433fcc815f0e2d9a4b9eb3c606330d07.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://catalunya/EXCLUDE_textures_original_size/Berga_i_Serra_de_Queralt_des_de_la_Serra_de_Noet,_Catalunya,_Espanya_-_20110204.png" +dest_files=[ "res://.import/Berga_i_Serra_de_Queralt_des_de_la_Serra_de_Noet,_Catalunya,_Espanya_-_20110204.png-433fcc815f0e2d9a4b9eb3c606330d07.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/level/catalunya/IGNORED_textures_original_size/Stone_panels_01_ambientocclusion.jpg b/level/catalunya/IGNORED_textures_original_size/Stone_panels_01_ambientocclusion.jpg new file mode 100644 index 0000000..8178f34 Binary files /dev/null and b/level/catalunya/IGNORED_textures_original_size/Stone_panels_01_ambientocclusion.jpg differ diff --git a/level/catalunya/IGNORED_textures_original_size/Stone_panels_01_ambientocclusion.jpg.import b/level/catalunya/IGNORED_textures_original_size/Stone_panels_01_ambientocclusion.jpg.import new file mode 100644 index 0000000..7fc78f2 --- /dev/null +++ b/level/catalunya/IGNORED_textures_original_size/Stone_panels_01_ambientocclusion.jpg.import @@ -0,0 +1,36 @@ +[remap] + +importer="texture" +type="StreamTexture" +path.s3tc="res://.import/Stone_panels_01_ambientocclusion.jpg-17839a62b8337ec280815670443942ea.s3tc.stex" +metadata={ +"imported_formats": [ "s3tc" ], +"vram_texture": true +} + +[deps] + +source_file="res://catalunya/EXCLUDE_textures_original_size/Stone_panels_01_ambientocclusion.jpg" +dest_files=[ "res://.import/Stone_panels_01_ambientocclusion.jpg-17839a62b8337ec280815670443942ea.s3tc.stex" ] + +[params] + +compress/mode=2 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=true +flags/filter=true +flags/mipmaps=true +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/level/catalunya/IGNORED_textures_original_size/Stone_panels_01_normal.jpg b/level/catalunya/IGNORED_textures_original_size/Stone_panels_01_normal.jpg new file mode 100644 index 0000000..f56f4c6 Binary files /dev/null and b/level/catalunya/IGNORED_textures_original_size/Stone_panels_01_normal.jpg differ diff --git a/level/catalunya/IGNORED_textures_original_size/Stone_panels_01_normal.jpg.import b/level/catalunya/IGNORED_textures_original_size/Stone_panels_01_normal.jpg.import new file mode 100644 index 0000000..805df2d --- /dev/null +++ b/level/catalunya/IGNORED_textures_original_size/Stone_panels_01_normal.jpg.import @@ -0,0 +1,36 @@ +[remap] + +importer="texture" +type="StreamTexture" +path.s3tc="res://.import/Stone_panels_01_normal.jpg-bd38ccc72eded0edd82a6d559c0bdb45.s3tc.stex" +metadata={ +"imported_formats": [ "s3tc" ], +"vram_texture": true +} + +[deps] + +source_file="res://catalunya/EXCLUDE_textures_original_size/Stone_panels_01_normal.jpg" +dest_files=[ "res://.import/Stone_panels_01_normal.jpg-bd38ccc72eded0edd82a6d559c0bdb45.s3tc.stex" ] + +[params] + +compress/mode=2 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=1 +flags/repeat=true +flags/filter=true +flags/mipmaps=true +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/level/catalunya/IGNORED_textures_original_size/Stylized_13_RoofSquare_ambientocclusion.jpg b/level/catalunya/IGNORED_textures_original_size/Stylized_13_RoofSquare_ambientocclusion.jpg new file mode 100644 index 0000000..b3d11f9 Binary files /dev/null and b/level/catalunya/IGNORED_textures_original_size/Stylized_13_RoofSquare_ambientocclusion.jpg differ diff --git a/level/catalunya/IGNORED_textures_original_size/Stylized_13_RoofSquare_ambientocclusion.jpg.import b/level/catalunya/IGNORED_textures_original_size/Stylized_13_RoofSquare_ambientocclusion.jpg.import new file mode 100644 index 0000000..cb642d0 --- /dev/null +++ b/level/catalunya/IGNORED_textures_original_size/Stylized_13_RoofSquare_ambientocclusion.jpg.import @@ -0,0 +1,36 @@ +[remap] + +importer="texture" +type="StreamTexture" +path.s3tc="res://.import/Stylized_13_RoofSquare_ambientocclusion.jpg-31699b4f487851983087fe86cf52eedf.s3tc.stex" +metadata={ +"imported_formats": [ "s3tc" ], +"vram_texture": true +} + +[deps] + +source_file="res://catalunya/EXCLUDE_textures_original_size/Stylized_13_RoofSquare_ambientocclusion.jpg" +dest_files=[ "res://.import/Stylized_13_RoofSquare_ambientocclusion.jpg-31699b4f487851983087fe86cf52eedf.s3tc.stex" ] + +[params] + +compress/mode=2 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=true +flags/filter=true +flags/mipmaps=true +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/level/catalunya/IGNORED_textures_original_size/Stylized_13_RoofSquare_normal.jpg b/level/catalunya/IGNORED_textures_original_size/Stylized_13_RoofSquare_normal.jpg new file mode 100644 index 0000000..8916626 Binary files /dev/null and b/level/catalunya/IGNORED_textures_original_size/Stylized_13_RoofSquare_normal.jpg differ diff --git a/level/catalunya/IGNORED_textures_original_size/Stylized_13_RoofSquare_normal.jpg.import b/level/catalunya/IGNORED_textures_original_size/Stylized_13_RoofSquare_normal.jpg.import new file mode 100644 index 0000000..cddb276 --- /dev/null +++ b/level/catalunya/IGNORED_textures_original_size/Stylized_13_RoofSquare_normal.jpg.import @@ -0,0 +1,36 @@ +[remap] + +importer="texture" +type="StreamTexture" +path.s3tc="res://.import/Stylized_13_RoofSquare_normal.jpg-b86337a585ac1c7b1f0fefe1d63d69e0.s3tc.stex" +metadata={ +"imported_formats": [ "s3tc" ], +"vram_texture": true +} + +[deps] + +source_file="res://catalunya/EXCLUDE_textures_original_size/Stylized_13_RoofSquare_normal.jpg" +dest_files=[ "res://.import/Stylized_13_RoofSquare_normal.jpg-b86337a585ac1c7b1f0fefe1d63d69e0.s3tc.stex" ] + +[params] + +compress/mode=2 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=1 +flags/repeat=true +flags/filter=true +flags/mipmaps=true +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/level/catalunya/IGNORED_textures_original_size/Stylized_13_RoofSquare_roughness.jpg b/level/catalunya/IGNORED_textures_original_size/Stylized_13_RoofSquare_roughness.jpg new file mode 100644 index 0000000..8ca8563 Binary files /dev/null and b/level/catalunya/IGNORED_textures_original_size/Stylized_13_RoofSquare_roughness.jpg differ diff --git a/level/catalunya/IGNORED_textures_original_size/Stylized_13_RoofSquare_roughness.jpg.import b/level/catalunya/IGNORED_textures_original_size/Stylized_13_RoofSquare_roughness.jpg.import new file mode 100644 index 0000000..0081961 --- /dev/null +++ b/level/catalunya/IGNORED_textures_original_size/Stylized_13_RoofSquare_roughness.jpg.import @@ -0,0 +1,36 @@ +[remap] + +importer="texture" +type="StreamTexture" +path.s3tc="res://.import/Stylized_13_RoofSquare_roughness.jpg-069142ba0787250713fe25c829955206.s3tc.stex" +metadata={ +"imported_formats": [ "s3tc" ], +"vram_texture": true +} + +[deps] + +source_file="res://catalunya/EXCLUDE_textures_original_size/Stylized_13_RoofSquare_roughness.jpg" +dest_files=[ "res://.import/Stylized_13_RoofSquare_roughness.jpg-069142ba0787250713fe25c829955206.s3tc.stex" ] + +[params] + +compress/mode=2 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=true +flags/filter=true +flags/mipmaps=true +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/level/catalunya/IGNORED_textures_original_size/Stylized_15_Grass_ambientocclusion.jpg b/level/catalunya/IGNORED_textures_original_size/Stylized_15_Grass_ambientocclusion.jpg new file mode 100644 index 0000000..3c242e5 Binary files /dev/null and b/level/catalunya/IGNORED_textures_original_size/Stylized_15_Grass_ambientocclusion.jpg differ diff --git a/level/catalunya/IGNORED_textures_original_size/Stylized_15_Grass_ambientocclusion.jpg.import b/level/catalunya/IGNORED_textures_original_size/Stylized_15_Grass_ambientocclusion.jpg.import new file mode 100644 index 0000000..68274c5 --- /dev/null +++ b/level/catalunya/IGNORED_textures_original_size/Stylized_15_Grass_ambientocclusion.jpg.import @@ -0,0 +1,36 @@ +[remap] + +importer="texture" +type="StreamTexture" +path.s3tc="res://.import/Stylized_15_Grass_ambientocclusion.jpg-fdfc4eb47046f49d31ed3f26f012e1ff.s3tc.stex" +metadata={ +"imported_formats": [ "s3tc" ], +"vram_texture": true +} + +[deps] + +source_file="res://catalunya/EXCLUDE_textures_original_size/Stylized_15_Grass_ambientocclusion.jpg" +dest_files=[ "res://.import/Stylized_15_Grass_ambientocclusion.jpg-fdfc4eb47046f49d31ed3f26f012e1ff.s3tc.stex" ] + +[params] + +compress/mode=2 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=true +flags/filter=true +flags/mipmaps=true +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/level/catalunya/IGNORED_textures_original_size/Stylized_15_Grass_height.jpg b/level/catalunya/IGNORED_textures_original_size/Stylized_15_Grass_height.jpg new file mode 100644 index 0000000..ba8022f Binary files /dev/null and b/level/catalunya/IGNORED_textures_original_size/Stylized_15_Grass_height.jpg differ diff --git a/level/catalunya/IGNORED_textures_original_size/Stylized_15_Grass_height.jpg.import b/level/catalunya/IGNORED_textures_original_size/Stylized_15_Grass_height.jpg.import new file mode 100644 index 0000000..7aa9c5d --- /dev/null +++ b/level/catalunya/IGNORED_textures_original_size/Stylized_15_Grass_height.jpg.import @@ -0,0 +1,36 @@ +[remap] + +importer="texture" +type="StreamTexture" +path.s3tc="res://.import/Stylized_15_Grass_height.jpg-61fa154c26090d7c3748fa58674682a7.s3tc.stex" +metadata={ +"imported_formats": [ "s3tc" ], +"vram_texture": true +} + +[deps] + +source_file="res://catalunya/EXCLUDE_textures_original_size/Stylized_15_Grass_height.jpg" +dest_files=[ "res://.import/Stylized_15_Grass_height.jpg-61fa154c26090d7c3748fa58674682a7.s3tc.stex" ] + +[params] + +compress/mode=2 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=true +flags/filter=true +flags/mipmaps=true +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/level/catalunya/IGNORED_textures_original_size/Stylized_15_Grass_normal.jpg b/level/catalunya/IGNORED_textures_original_size/Stylized_15_Grass_normal.jpg new file mode 100644 index 0000000..9c4fc0e Binary files /dev/null and b/level/catalunya/IGNORED_textures_original_size/Stylized_15_Grass_normal.jpg differ diff --git a/level/catalunya/IGNORED_textures_original_size/Stylized_15_Grass_normal.jpg.import b/level/catalunya/IGNORED_textures_original_size/Stylized_15_Grass_normal.jpg.import new file mode 100644 index 0000000..1ba0749 --- /dev/null +++ b/level/catalunya/IGNORED_textures_original_size/Stylized_15_Grass_normal.jpg.import @@ -0,0 +1,36 @@ +[remap] + +importer="texture" +type="StreamTexture" +path.s3tc="res://.import/Stylized_15_Grass_normal.jpg-6ea558c60438d81e2fc739917c7d0c54.s3tc.stex" +metadata={ +"imported_formats": [ "s3tc" ], +"vram_texture": true +} + +[deps] + +source_file="res://catalunya/EXCLUDE_textures_original_size/Stylized_15_Grass_normal.jpg" +dest_files=[ "res://.import/Stylized_15_Grass_normal.jpg-6ea558c60438d81e2fc739917c7d0c54.s3tc.stex" ] + +[params] + +compress/mode=2 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=1 +flags/repeat=true +flags/filter=true +flags/mipmaps=true +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/level/catalunya/IGNORED_textures_original_size/ivy_leaves_n.png b/level/catalunya/IGNORED_textures_original_size/ivy_leaves_n.png new file mode 100644 index 0000000..4367fb0 Binary files /dev/null and b/level/catalunya/IGNORED_textures_original_size/ivy_leaves_n.png differ diff --git a/level/catalunya/IGNORED_textures_original_size/ivy_leaves_n.png.import b/level/catalunya/IGNORED_textures_original_size/ivy_leaves_n.png.import new file mode 100644 index 0000000..ce45879 --- /dev/null +++ b/level/catalunya/IGNORED_textures_original_size/ivy_leaves_n.png.import @@ -0,0 +1,36 @@ +[remap] + +importer="texture" +type="StreamTexture" +path.s3tc="res://.import/ivy_leaves_n.png-998d25c5cca6bdc279259c07ec4c3fd6.s3tc.stex" +metadata={ +"imported_formats": [ "s3tc" ], +"vram_texture": true +} + +[deps] + +source_file="res://catalunya/EXCLUDE_textures_original_size/ivy_leaves_n.png" +dest_files=[ "res://.import/ivy_leaves_n.png-998d25c5cca6bdc279259c07ec4c3fd6.s3tc.stex" ] + +[params] + +compress/mode=2 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=1 +flags/repeat=true +flags/filter=true +flags/mipmaps=true +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/level/catalunya/audio/Hot Pursuit.mp3 b/level/catalunya/audio/Hot Pursuit.mp3 new file mode 100644 index 0000000..1a617c2 Binary files /dev/null and b/level/catalunya/audio/Hot Pursuit.mp3 differ diff --git a/level/catalunya/audio/Hot Pursuit.mp3.import b/level/catalunya/audio/Hot Pursuit.mp3.import new file mode 100644 index 0000000..4b480c1 --- /dev/null +++ b/level/catalunya/audio/Hot Pursuit.mp3.import @@ -0,0 +1,15 @@ +[remap] + +importer="mp3" +type="AudioStreamMP3" +path="res://.import/Hot Pursuit.mp3-9f5f074bf2a9c7bbe016659c8e421453.mp3str" + +[deps] + +source_file="res://level/catalunya/audio/Hot Pursuit.mp3" +dest_files=[ "res://.import/Hot Pursuit.mp3-9f5f074bf2a9c7bbe016659c8e421453.mp3str" ] + +[params] + +loop=true +loop_offset=0 diff --git a/level/catalunya/audio/Neon Laser Horizon.mp3 b/level/catalunya/audio/Neon Laser Horizon.mp3 new file mode 100644 index 0000000..79f89f1 Binary files /dev/null and b/level/catalunya/audio/Neon Laser Horizon.mp3 differ diff --git a/level/catalunya/audio/Neon Laser Horizon.mp3.import b/level/catalunya/audio/Neon Laser Horizon.mp3.import new file mode 100644 index 0000000..f44480b --- /dev/null +++ b/level/catalunya/audio/Neon Laser Horizon.mp3.import @@ -0,0 +1,15 @@ +[remap] + +importer="mp3" +type="AudioStreamMP3" +path="res://.import/Neon Laser Horizon.mp3-05bbd5b2c5498e17aefd95a64d190efd.mp3str" + +[deps] + +source_file="res://level/catalunya/audio/Neon Laser Horizon.mp3" +dest_files=[ "res://.import/Neon Laser Horizon.mp3-05bbd5b2c5498e17aefd95a64d190efd.mp3str" ] + +[params] + +loop=true +loop_offset=0 diff --git a/level/catalunya/catalunya.gd b/level/catalunya/catalunya.gd new file mode 100644 index 0000000..230c241 --- /dev/null +++ b/level/catalunya/catalunya.gd @@ -0,0 +1,37 @@ +extends "res://level/common/level.gd" + +onready var player = $Player +onready var playerHitbox = player.get_main_hitbox() + +var won = false + +func _init(): + # Set these constants before they are read on player's ready + out_of_bounds_y_start = -1 + out_of_bounds_y_end = -4 + +func _ready(): + $Music.play() + player.achievement("Objective: Escape", "Porky has sent mercenaries to kidnap you! Escape the town.") + +func win(): + if !won: + won = true + player.achievement("Escaped the town!", "") + $Music.stop() + $WinTheme.play() + + +func _on_WaypointCheckpoint1_body_entered(body): + if body == playerHitbox: + player.achievement("Checkpoint!", "") + player.initial_position = player.global_transform.origin + +func _on_AchieveWetKitty_body_entered(body): + if body == playerHitbox: + player.achievement("Achievement: Wet Kitty", "no youre not supposed to like water\n >:(") + +func _on_WaypointEndLevel_body_entered(body): + if body == playerHitbox: + win() + diff --git a/level/catalunya/catalunya.tscn b/level/catalunya/catalunya.tscn new file mode 100644 index 0000000..1ec9534 --- /dev/null +++ b/level/catalunya/catalunya.tscn @@ -0,0 +1,672 @@ +[gd_scene load_steps=39 format=2] + +[ext_resource path="res://level/catalunya/map/catalunya-map.glb" type="PackedScene" id=1] +[ext_resource path="res://level/catalunya/map/catalunya-map-speccol.gd" type="Script" id=2] +[ext_resource path="res://level/catalunya/map/catalunya-map-speccol.tscn" type="PackedScene" id=3] +[ext_resource path="res://level/catalunya/map/StoneTilesGrey.tres" type="Material" id=4] +[ext_resource path="res://enemies/bad_cat/bad_cat.tscn" type="PackedScene" id=5] +[ext_resource path="res://level/catalunya/catalunya.gd" type="Script" id=6] +[ext_resource path="res://enemies/standard_merc/standard_merc1.tscn" type="PackedScene" id=7] +[ext_resource path="res://level/catalunya/map/Water.material" type="Material" id=8] +[ext_resource path="res://level/catalunya/textures/Berga_i_Serra_de_Queralt_des_de_la_Serra_de_Noet,_Catalunya,_Espanya_-_20110204.webp" type="Texture" id=9] +[ext_resource path="res://level/catalunya/map/dumb.material" type="Material" id=10] +[ext_resource path="res://level/catalunya/audio/Hot Pursuit.mp3" type="AudioStream" id=11] +[ext_resource path="res://level/catalunya/audio/Neon Laser Horizon.mp3" type="AudioStream" id=12] +[ext_resource path="res://player/player.tscn" type="PackedScene" id=13] +[ext_resource path="res://level/catalunya/textures/1024px-Estelada_roja.webp" type="Texture" id=14] +[ext_resource path="res://level/catalunya/map/Grass.tres" type="Material" id=15] +[ext_resource path="res://level/catalunya/map/RoofTilesRed2.tres" type="Material" id=16] +[ext_resource path="res://level/catalunya/map/RoofTilesRed1.tres" type="Material" id=17] +[ext_resource path="res://level/catalunya/map/StoneTilesTan1.tres" type="Material" id=18] +[ext_resource path="res://level/catalunya/map/Ivy.tres" type="Material" id=19] +[ext_resource path="res://level/catalunya/map/StoneTilesWhiteRough.tres" type="Material" id=20] +[ext_resource path="res://level/catalunya/map/StoneTilesTan2.tres" type="Material" id=21] +[ext_resource path="res://level/catalunya/map/Window.material" type="Material" id=22] +[ext_resource path="res://level/catalunya/scripts/football.gd" type="Script" id=23] +[ext_resource path="res://level/catalunya/textures/grass_dry.tres" type="Material" id=24] + +[sub_resource type="SpatialMaterial" id=11] +albedo_texture = ExtResource( 14 ) + +[sub_resource type="PhysicsMaterial" id=15] +friction = 0.9 +bounce = 0.2 + +[sub_resource type="SphereShape" id=12] +radius = 0.25 + +[sub_resource type="SphereMesh" id=13] +radius = 0.25 +height = 0.5 +radial_segments = 8 +rings = 8 + +[sub_resource type="SpatialMaterial" id=14] +albedo_color = Color( 0.623529, 0.34902, 0.27451, 1 ) + +[sub_resource type="PanoramaSky" id=8] +panorama = ExtResource( 9 ) + +[sub_resource type="Environment" id=2] +background_mode = 2 +background_sky = SubResource( 8 ) +background_sky_orientation = Basis( 0.807897, 0, 0.589323, 0, 1, 0, -0.589323, 0, 0.807897 ) +background_color = Color( 0.764706, 0.890196, 0.933333, 1 ) +background_energy = 1.15 +ambient_light_color = Color( 1, 1, 1, 1 ) +ambient_light_energy = 1.6 +ambient_light_sky_contribution = 0.5 +adjustment_enabled = true +adjustment_contrast = 1.08 +adjustment_saturation = 1.08 + +[sub_resource type="GIProbeData" id=10] +bounds = AABB( -121.638, -14.0113, -144.643, 243.277, 28.0227, 289.286 ) +cell_size = 2.26005 +to_cell_xform = Transform( 0.442468, 0, 0, 0, 0.442468, 0, 0, 0, 0.442468, 53.8211, 6.19956, 64 ) +dynamic_data = PoolIntArray( 0, 8, 128, 16, 128, 1, 0, 0, 1102053376, 1084227584, 1065353216, 0, 1102053376, 1101529088, 1065353216, 1065353216, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 8355711, 0 ) +dynamic_range = 4 +energy = 0.25 +bias = 1.5 +normal_bias = 0.0 +propagation = 0.7 + +[sub_resource type="BoxShape" id=3] +extents = Vector3( 3.02656, 4.44051, 2.31448 ) + +[sub_resource type="BoxShape" id=7] +extents = Vector3( 1, 3.57747, 9.95616 ) + +[sub_resource type="ParticlesMaterial" id=4] +direction = Vector3( 0, 4, -4 ) +spread = 10.0 +initial_velocity = 4.75 +initial_velocity_random = 0.24 + +[sub_resource type="CapsuleMesh" id=5] +radius = 0.015 +mid_height = 0.001 + +[sub_resource type="ParticlesMaterial" id=6] +direction = Vector3( 0, 4, -4 ) +spread = 5.0 +initial_velocity = 4.5 +initial_velocity_random = 0.1 + +[sub_resource type="CylinderMesh" id=9] +top_radius = 0.03 +bottom_radius = 0.05 +height = 0.25 + +[node name="Catalunya" type="Spatial"] +script = ExtResource( 6 ) + +[node name="catalunya-map" parent="." instance=ExtResource( 1 )] + +[node name="Floor" parent="catalunya-map" index="0"] +material/0 = ExtResource( 4 ) +material/1 = ExtResource( 10 ) + +[node name="Cart" parent="catalunya-map" index="1"] +material/0 = ExtResource( 10 ) + +[node name="kol" parent="catalunya-map/Cart" index="0"] +material/0 = ExtResource( 10 ) + +[node name="obj4" parent="catalunya-map/Cart" index="1"] +transform = Transform( 0.0789435, -0.000794348, -0.0109142, 0.0147449, 0.00425293, 0.0584345, 1.16415e-10, -0.0705747, 0.00364418, 0.0130777, 0.162529, -0.0518231 ) +material/0 = ExtResource( 10 ) + +[node name="House_g" parent="catalunya-map" index="2"] +material/0 = ExtResource( 20 ) +material/1 = ExtResource( 22 ) + +[node name="Clock_flor_fi" parent="catalunya-map" index="3"] +material/0 = ExtResource( 20 ) + +[node name="Arch" parent="catalunya-map" index="4"] +material/0 = ExtResource( 20 ) + +[node name="Roof_top" parent="catalunya-map" index="5"] +material/0 = ExtResource( 20 ) +material/1 = ExtResource( 17 ) + +[node name="Clock" parent="catalunya-map" index="6"] +material/0 = ExtResource( 20 ) + +[node name="BigBong" parent="catalunya-map" index="7"] +material/0 = ExtResource( 20 ) +material/1 = ExtResource( 22 ) + +[node name="House002" parent="catalunya-map" index="8"] +material/0 = ExtResource( 21 ) +material/1 = ExtResource( 16 ) + +[node name="Roof" parent="catalunya-map" index="9"] +material/0 = ExtResource( 16 ) + +[node name="StairWide_000" parent="catalunya-map" index="10"] +material/0 = ExtResource( 4 ) + +[node name="StairWide_000001" parent="catalunya-map" index="11"] +material/0 = ExtResource( 4 ) + +[node name="Clock_flor_fi001" parent="catalunya-map" index="12"] +material/0 = ExtResource( 18 ) + +[node name="Roof_top001" parent="catalunya-map" index="13"] +material/0 = ExtResource( 18 ) + +[node name="Clock_flor_fi002" parent="catalunya-map" index="14"] +material/0 = ExtResource( 18 ) + +[node name="Clock_flor_fi003" parent="catalunya-map" index="15"] +material/0 = ExtResource( 18 ) + +[node name="Clock_flor_fi004" parent="catalunya-map" index="16"] +material/0 = ExtResource( 18 ) + +[node name="House001" parent="catalunya-map" index="17"] +material/0 = ExtResource( 18 ) +material/1 = ExtResource( 17 ) + +[node name="House006" parent="catalunya-map" index="18"] +material/0 = ExtResource( 18 ) +material/1 = ExtResource( 17 ) + +[node name="House005" parent="catalunya-map" index="19"] +material/0 = ExtResource( 18 ) +material/1 = ExtResource( 17 ) + +[node name="House007" parent="catalunya-map" index="20"] +material/0 = ExtResource( 20 ) +material/1 = ExtResource( 16 ) + +[node name="House003" parent="catalunya-map" index="21"] +material/0 = ExtResource( 18 ) +material/1 = ExtResource( 17 ) + +[node name="House004" parent="catalunya-map" index="22"] +material/0 = ExtResource( 18 ) +material/1 = ExtResource( 17 ) + +[node name="Ivy002" parent="catalunya-map" index="23"] +material/0 = ExtResource( 19 ) + +[node name="Ivy006" parent="catalunya-map" index="24"] +material/0 = ExtResource( 19 ) + +[node name="Ivy005" parent="catalunya-map" index="25"] +material/0 = ExtResource( 19 ) + +[node name="Ivy004" parent="catalunya-map" index="26"] +material/0 = ExtResource( 19 ) + +[node name="Ivy" parent="catalunya-map" index="27"] +material/0 = ExtResource( 19 ) + +[node name="Ivy003" parent="catalunya-map" index="28"] +material/0 = ExtResource( 19 ) + +[node name="Ivy001" parent="catalunya-map" index="29"] +material/0 = ExtResource( 19 ) + +[node name="House008" parent="catalunya-map" index="30"] +material/0 = ExtResource( 21 ) +material/1 = ExtResource( 16 ) + +[node name="Clock_flor_fi005" parent="catalunya-map" index="31"] +material/0 = ExtResource( 21 ) + +[node name="WaterFeature" parent="catalunya-map" index="32"] +material/0 = ExtResource( 10 ) + +[node name="Base" parent="catalunya-map/WaterFeature" index="0"] +material/0 = ExtResource( 20 ) + +[node name="CenterIco" parent="catalunya-map/WaterFeature" index="1"] +material/0 = ExtResource( 22 ) + +[node name="WaterPool" parent="catalunya-map/WaterFeature" index="2"] +material/0 = ExtResource( 8 ) + +[node name="House009" parent="catalunya-map" index="33"] +material/0 = ExtResource( 18 ) +material/1 = ExtResource( 17 ) + +[node name="House010" parent="catalunya-map" index="34"] +material/0 = ExtResource( 21 ) +material/1 = ExtResource( 16 ) + +[node name="Floor001" parent="catalunya-map" index="35"] +material/0 = ExtResource( 4 ) + +[node name="StairWide_000002" parent="catalunya-map" index="36"] +material/0 = ExtResource( 4 ) + +[node name="House011" parent="catalunya-map" index="37"] +material/0 = ExtResource( 21 ) +material/1 = ExtResource( 16 ) + +[node name="Floor002" parent="catalunya-map" index="38"] +material/0 = ExtResource( 4 ) + +[node name="House012" parent="catalunya-map" index="39"] +material/0 = ExtResource( 21 ) +material/1 = ExtResource( 16 ) + +[node name="House013" parent="catalunya-map" index="40"] +material/0 = ExtResource( 18 ) +material/1 = ExtResource( 17 ) + +[node name="House014" parent="catalunya-map" index="41"] +material/0 = ExtResource( 21 ) +material/1 = ExtResource( 16 ) + +[node name="House015" parent="catalunya-map" index="42"] +material/0 = ExtResource( 21 ) +material/1 = ExtResource( 16 ) + +[node name="Clock_flor_fi006" parent="catalunya-map" index="43"] +material/0 = ExtResource( 21 ) + +[node name="Clock_flor_fi007" parent="catalunya-map" index="44"] +material/0 = ExtResource( 18 ) + +[node name="Clock_flor_fi008" parent="catalunya-map" index="45"] +material/0 = ExtResource( 21 ) + +[node name="House016" parent="catalunya-map" index="46"] +material/0 = ExtResource( 21 ) +material/1 = ExtResource( 16 ) + +[node name="House017" parent="catalunya-map" index="47"] +material/0 = ExtResource( 18 ) +material/1 = ExtResource( 17 ) + +[node name="House018" parent="catalunya-map" index="48"] +material/0 = ExtResource( 18 ) +material/1 = ExtResource( 17 ) + +[node name="House019" parent="catalunya-map" index="49"] +material/0 = ExtResource( 21 ) +material/1 = ExtResource( 16 ) + +[node name="House020" parent="catalunya-map" index="50"] +material/0 = ExtResource( 18 ) +material/1 = ExtResource( 17 ) + +[node name="Clock_flor_fi009" parent="catalunya-map" index="51"] +material/0 = ExtResource( 18 ) + +[node name="House021" parent="catalunya-map" index="52"] +material/0 = ExtResource( 18 ) +material/1 = ExtResource( 17 ) + +[node name="House022" parent="catalunya-map" index="53"] +material/0 = ExtResource( 21 ) +material/1 = ExtResource( 16 ) + +[node name="House023" parent="catalunya-map" index="54"] +material/0 = ExtResource( 18 ) +material/1 = ExtResource( 17 ) + +[node name="Clock_flor_fi010" parent="catalunya-map" index="55"] +material/0 = ExtResource( 18 ) + +[node name="Clock_flor_fi011" parent="catalunya-map" index="56"] +material/0 = ExtResource( 18 ) + +[node name="Floor003" parent="catalunya-map" index="57"] +material/0 = ExtResource( 4 ) + +[node name="House024" parent="catalunya-map" index="58"] +material/0 = ExtResource( 21 ) +material/1 = ExtResource( 16 ) + +[node name="House_g001" parent="catalunya-map" index="59"] +material/0 = ExtResource( 20 ) +material/1 = ExtResource( 22 ) + +[node name="Clock_flor_fi012" parent="catalunya-map" index="60"] +material/0 = ExtResource( 20 ) + +[node name="Arch001" parent="catalunya-map" index="61"] +material/0 = ExtResource( 20 ) + +[node name="Roof_top002" parent="catalunya-map" index="62"] +material/0 = ExtResource( 20 ) +material/1 = ExtResource( 16 ) + +[node name="House025" parent="catalunya-map" index="63"] +material/0 = ExtResource( 18 ) +material/1 = ExtResource( 17 ) + +[node name="Roof001" parent="catalunya-map" index="64"] +material/0 = ExtResource( 16 ) + +[node name="House026" parent="catalunya-map" index="65"] +material/0 = ExtResource( 21 ) +material/1 = ExtResource( 16 ) + +[node name="House027" parent="catalunya-map" index="66"] +material/0 = ExtResource( 21 ) +material/1 = ExtResource( 16 ) + +[node name="House028" parent="catalunya-map" index="67"] +material/0 = ExtResource( 18 ) +material/1 = ExtResource( 17 ) + +[node name="House029" parent="catalunya-map" index="68"] +material/0 = ExtResource( 18 ) +material/1 = ExtResource( 17 ) + +[node name="House030" parent="catalunya-map" index="69"] +material/0 = ExtResource( 21 ) +material/1 = ExtResource( 16 ) + +[node name="House031" parent="catalunya-map" index="70"] +material/0 = ExtResource( 21 ) +material/1 = ExtResource( 16 ) + +[node name="House032" parent="catalunya-map" index="71"] +material/0 = ExtResource( 21 ) +material/1 = ExtResource( 16 ) + +[node name="Clock_flor_fi013" parent="catalunya-map" index="72"] +material/0 = ExtResource( 21 ) + +[node name="Floor004" parent="catalunya-map" index="73"] +material/0 = ExtResource( 4 ) + +[node name="House033" parent="catalunya-map" index="74"] +material/0 = ExtResource( 18 ) +material/1 = ExtResource( 17 ) + +[node name="House034" parent="catalunya-map" index="75"] +material/0 = ExtResource( 18 ) +material/1 = ExtResource( 17 ) + +[node name="Grass001" parent="catalunya-map" index="76"] +material/0 = ExtResource( 15 ) + +[node name="Grass" parent="catalunya-map" index="77"] +material/0 = ExtResource( 15 ) + +[node name="Grass002" parent="catalunya-map" index="78"] +material/0 = ExtResource( 24 ) + +[node name="Ivy007" parent="catalunya-map" index="79"] +material/0 = ExtResource( 19 ) + +[node name="Ivy008" parent="catalunya-map" index="80"] +material/0 = ExtResource( 19 ) + +[node name="Ivy010" parent="catalunya-map" index="81"] +material/0 = ExtResource( 19 ) + +[node name="Ivy009" parent="catalunya-map" index="82"] +material/0 = ExtResource( 19 ) + +[node name="Grass003" parent="catalunya-map" index="83"] +material/0 = ExtResource( 15 ) + +[node name="Grass004" parent="catalunya-map" index="84"] +material/0 = ExtResource( 15 ) + +[node name="House035" parent="catalunya-map" index="85"] +material/0 = ExtResource( 18 ) +material/1 = ExtResource( 17 ) + +[node name="House036" parent="catalunya-map" index="86"] +material/0 = ExtResource( 18 ) +material/1 = ExtResource( 17 ) + +[node name="Floor005" parent="catalunya-map" index="87"] +material/0 = ExtResource( 4 ) + +[node name="Floor006" parent="catalunya-map" index="88"] +material/0 = ExtResource( 4 ) + +[node name="River" parent="catalunya-map" index="89"] +material/0 = ExtResource( 8 ) + +[node name="Ivy011" parent="catalunya-map" index="90"] +material/0 = ExtResource( 19 ) + +[node name="Ivy012" parent="catalunya-map" index="91"] +material/0 = ExtResource( 19 ) + +[node name="Ivy013" parent="catalunya-map" index="92"] +transform = Transform( 0.619536, -2.30065e-08, -0.46056, -0.46056, 0, -0.619536, 2.30065e-08, 0.771971, 0, -31.8601, 7.97173, 2.91467 ) +material/0 = ExtResource( 19 ) + +[node name="Ivy014" parent="catalunya-map" index="93"] +material/0 = ExtResource( 19 ) + +[node name="Ivy015" parent="catalunya-map" index="94"] +material/0 = ExtResource( 19 ) + +[node name="Ivy016" parent="catalunya-map" index="95"] +material/0 = ExtResource( 19 ) + +[node name="Balustrade" parent="catalunya-map" index="96"] +material/0 = ExtResource( 4 ) + +[node name="Balustrade001" parent="catalunya-map" index="97"] +material/0 = ExtResource( 4 ) + +[node name="Bridge" parent="catalunya-map" index="98"] +material/0 = ExtResource( 4 ) + +[node name="Bridge_floor" parent="catalunya-map" index="99"] +material/0 = ExtResource( 4 ) + +[node name="Flag" parent="catalunya-map" index="100"] +material/0 = SubResource( 11 ) + +[node name="Bridge001" parent="catalunya-map" index="101"] +material/0 = ExtResource( 4 ) + +[node name="Bridge_floor001" parent="catalunya-map" index="102"] +material/0 = ExtResource( 4 ) + +[node name="Grass005" parent="catalunya-map" index="103"] +material/0 = ExtResource( 24 ) + +[node name="Clock_flor_fi014" parent="catalunya-map" index="104"] +material/0 = ExtResource( 4 ) + +[node name="Arch002" parent="catalunya-map" index="105"] +material/0 = ExtResource( 4 ) + +[node name="Roof_top003" parent="catalunya-map" index="106"] +material/0 = ExtResource( 4 ) +material/1 = ExtResource( 4 ) + +[node name="shape0" parent="catalunya-map/Roof_top003/static_collision" index="0"] +transform = Transform( 1, -1.77636e-15, -7.10543e-15, 1.42109e-14, 1, 7.53644e-15, -1.42109e-14, 3.14019e-15, 1, 0, 0, 0 ) + +[node name="Bridge_floor002" parent="catalunya-map" index="107"] +material/0 = ExtResource( 4 ) + +[node name="Bridge002" parent="catalunya-map" index="108"] +material/0 = ExtResource( 4 ) + +[node name="Clock_flor_fi015" parent="catalunya-map" index="109"] +material/0 = ExtResource( 4 ) + +[node name="Grass006" parent="catalunya-map" index="110"] +material/0 = ExtResource( 24 ) + +[node name="Grass007" parent="catalunya-map" index="111"] +material/0 = ExtResource( 24 ) + +[node name="River001" parent="catalunya-map" index="112"] +material/0 = ExtResource( 8 ) + +[node name="Grass008" parent="catalunya-map" index="113"] +material/0 = ExtResource( 24 ) + +[node name="Grass009" parent="catalunya-map" index="114"] +material/0 = ExtResource( 24 ) + +[node name="Grass010" parent="catalunya-map" index="115"] +material/0 = ExtResource( 24 ) + +[node name="River002" parent="catalunya-map" index="116"] +material/0 = ExtResource( 8 ) + +[node name="Grass011" parent="catalunya-map" index="117"] +material/0 = ExtResource( 24 ) + +[node name="Grass012" parent="catalunya-map" index="118"] +material/0 = ExtResource( 24 ) + +[node name="Balustrade002" parent="catalunya-map" index="119"] +material/0 = ExtResource( 4 ) + +[node name="catalunya-map-speccol2" parent="." instance=ExtResource( 3 )] +script = ExtResource( 2 ) + +[node name="Player" parent="." instance=ExtResource( 13 )] +transform = Transform( -0.872317, 0, -0.488941, 0, 1, 0, 0.488941, 0, -0.872317, -67.0995, 2.72827, 53.8141 ) + +[node name="BadCat" parent="." instance=ExtResource( 5 )] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 1.17124, 0, -5.70429 ) + +[node name="merc_st_1" parent="." instance=ExtResource( 7 )] +transform = Transform( -0.6642, 0, -0.747555, 0, 1, 0, 0.747555, 0, -0.6642, -55.9516, 2.41161, 18.8628 ) + +[node name="merc_st_2" parent="." instance=ExtResource( 7 )] +transform = Transform( -0.46813, 0, -0.883659, 0, 1, 0, 0.883659, 0, -0.46813, -46.0219, 2.41161, 23.9238 ) + +[node name="merc_st_3" parent="." instance=ExtResource( 7 )] +transform = Transform( 0.0837473, 0, 0.996487, 0, 1, 0, -0.996487, 0, 0.0837473, -17.4528, 2.41161, 11.5215 ) + +[node name="merc_st_4" parent="." instance=ExtResource( 7 )] +transform = Transform( 0.993807, 0, 0.111122, 0, 1, 0, -0.111122, 0, 0.993807, -1.28456, 0.0541062, -8.59162 ) + +[node name="merc_st_5" parent="." instance=ExtResource( 7 )] +transform = Transform( 0.993807, 0, 0.111122, 0, 1, 0, -0.111122, 0, 0.993807, -6.79873, 0.0541062, -6.87654 ) + +[node name="merc_st_6" parent="." instance=ExtResource( 7 )] +transform = Transform( -0.881254, 0, -0.472643, 0, 1, 0, 0.472643, 0, -0.881254, -6.25435, 0.0541062, -2.75085 ) + +[node name="merc_st_7" parent="." instance=ExtResource( 7 )] +transform = Transform( -0.881254, 0, -0.472643, 0, 1, 0, 0.472643, 0, -0.881254, 8.54123, 0.0541062, -3.92897 ) + +[node name="merc_st_8" parent="." instance=ExtResource( 7 )] +transform = Transform( -0.51616, 0, -0.856493, 0, 1, 0, 0.856493, 0, -0.51616, 27.3358, 1.25441, 0.354869 ) + +[node name="merc_st_9" parent="." instance=ExtResource( 7 )] +transform = Transform( -0.244106, 0, -0.969749, 0, 1, 0, 0.969749, 0, -0.244106, 20.677, 1.25441, -5.6365 ) + +[node name="merc_st_10" parent="." instance=ExtResource( 7 )] +transform = Transform( 0.067998, 0, -0.997686, 0, 1, 0, 0.997686, 0, 0.067998, 19.9424, 1.25441, -7.66128 ) + +[node name="football" type="RigidBody" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -73.9171, 2.75736, 49.8927 ) +physics_material_override = SubResource( 15 ) +script = ExtResource( 23 ) + +[node name="Collision" type="CollisionShape" parent="football"] +shape = SubResource( 12 ) + +[node name="MeshInstance" type="MeshInstance" parent="football"] +mesh = SubResource( 13 ) +material/0 = SubResource( 14 ) + +[node name="SunLight" type="DirectionalLight" parent="."] +transform = Transform( 0.985957, -0.0970803, 0.135882, -0.160492, -0.325925, 0.931673, -0.0461599, -0.940398, -0.336929, 0, 25.3514, 0 ) +light_color = Color( 0.886275, 0.85098, 0.745098, 1 ) +light_energy = 1.294 +light_cull_mask = 4294967071 +shadow_enabled = true + +[node name="WorldEnvironment" type="WorldEnvironment" parent="."] +environment = SubResource( 2 ) + +[node name="GIProbe" type="GIProbe" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 16.2134, 7.79828, -0.0709095 ) +extents = Vector3( 121.638, 14.0113, 144.643 ) +energy = 0.25 +data = SubResource( 10 ) + +[node name="ReflectionProbes" type="Spatial" parent="."] +visible = false + +[node name="ReflectionProbe" type="ReflectionProbe" parent="ReflectionProbes"] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -2.01842, 1.00768, 13.1051 ) +visible = false +extents = Vector3( 6.42944, 1, 6.44904 ) +origin_offset = Vector3( 0, -2.23517e-10, 0 ) + +[node name="ReflectionProbe2" type="ReflectionProbe" parent="ReflectionProbes"] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.609454, 1.00768, -6.14527 ) +visible = false +extents = Vector3( 10.8603, 1, 6.44904 ) +origin_offset = Vector3( 0, -2.23517e-10, 0 ) + +[node name="WaypointCheckpoint1" type="Area" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -14.1106, 6.5343, 11.5205 ) +collision_layer = 0 +collision_mask = 32 + +[node name="CollisionShape" type="CollisionShape" parent="WaypointCheckpoint1"] +shape = SubResource( 3 ) + +[node name="AchieveWetKitty" type="Area" parent="."] +transform = Transform( 0.204, 0, 0, 0, 0.224, 0, 0, 0, 0.281, -0.108707, 0.454466, 15.6957 ) +collision_layer = 0 +collision_mask = 32 + +[node name="CollisionShape" type="CollisionShape" parent="AchieveWetKitty"] +shape = SubResource( 3 ) + +[node name="WaypointEndLevel" type="Area" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 43.6766, 0.399192, -6.75602 ) +collision_layer = 0 +collision_mask = 32 + +[node name="CollisionShape" type="CollisionShape" parent="WaypointEndLevel"] +shape = SubResource( 7 ) + +[node name="WaterParticles1" type="Particles" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 4.32908, 18.879 ) +material_override = ExtResource( 8 ) +amount = 127 +lifetime = 1.3 +explosiveness = 0.15 +fract_delta = false +process_material = SubResource( 4 ) +draw_pass_1 = SubResource( 5 ) + +[node name="WaterParticles2" type="Particles" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 4.32908, 18.879 ) +material_override = ExtResource( 8 ) +amount = 127 +lifetime = 1.3 +explosiveness = 0.07 +randomness = 1.0 +fract_delta = false +process_material = SubResource( 6 ) +draw_pass_1 = SubResource( 5 ) + +[node name="WaterSpout" type="MeshInstance" parent="."] +transform = Transform( 1, 0, 0, 0, 0.701718, 0.712455, 0, -0.712455, 0.701718, 0, 4.37175, 18.8517 ) +mesh = SubResource( 9 ) +skeleton = NodePath("../WaterParticles1") +material/0 = ExtResource( 10 ) + +[node name="Music" type="AudioStreamPlayer" parent="."] +stream = ExtResource( 11 ) + +[node name="WinTheme" type="AudioStreamPlayer" parent="."] +stream = ExtResource( 12 ) + +[connection signal="body_entered" from="WaypointCheckpoint1" to="." method="_on_WaypointCheckpoint1_body_entered"] +[connection signal="body_entered" from="AchieveWetKitty" to="." method="_on_AchieveWetKitty_body_entered"] +[connection signal="body_entered" from="WaypointEndLevel" to="." method="_on_WaypointEndLevel_body_entered"] + +[editable path="catalunya-map"] diff --git a/level/catalunya/icon.webp b/level/catalunya/icon.webp new file mode 100644 index 0000000..abe3fef Binary files /dev/null and b/level/catalunya/icon.webp differ diff --git a/level/catalunya/icon.webp.import b/level/catalunya/icon.webp.import new file mode 100644 index 0000000..8604cf5 --- /dev/null +++ b/level/catalunya/icon.webp.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/icon.webp-11d01dd3efe7569f9b4d08faf1ad33c4.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://level/catalunya/icon.webp" +dest_files=[ "res://.import/icon.webp-11d01dd3efe7569f9b4d08faf1ad33c4.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=2 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=false +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/level/catalunya/map/Grass.tres b/level/catalunya/map/Grass.tres new file mode 100644 index 0000000..88edf1d --- /dev/null +++ b/level/catalunya/map/Grass.tres @@ -0,0 +1,16 @@ +[gd_resource type="SpatialMaterial" load_steps=4 format=2] + +[ext_resource path="res://level/catalunya/textures/Stylized_15_Grass_normal.webp" type="Texture" id=1] +[ext_resource path="res://level/catalunya/textures/Stylized_15_Grass_ambientocclusion.webp" type="Texture" id=2] +[ext_resource path="res://level/catalunya/textures/Stylized_15_Grass_basecolor.webp" type="Texture" id=3] + +[resource] +albedo_texture = ExtResource( 3 ) +normal_enabled = true +normal_scale = -7.23 +normal_texture = ExtResource( 1 ) +ao_enabled = true +ao_light_affect = 0.82 +ao_texture = ExtResource( 2 ) +ao_on_uv2 = false +ao_texture_channel = 0 diff --git a/level/catalunya/map/Ivy.tres b/level/catalunya/map/Ivy.tres new file mode 100644 index 0000000..0fbfe3f --- /dev/null +++ b/level/catalunya/map/Ivy.tres @@ -0,0 +1,11 @@ +[gd_resource type="SpatialMaterial" load_steps=3 format=2] + +[ext_resource path="res://level/catalunya/textures/ivy_leaves_n.webp" type="Texture" id=1] +[ext_resource path="res://level/catalunya/textures/ivy_leaves_base.webp" type="Texture" id=2] + +[resource] +flags_transparent = true +albedo_texture = ExtResource( 2 ) +normal_enabled = true +normal_scale = -5.0 +normal_texture = ExtResource( 1 ) diff --git a/level/catalunya/map/RoofTilesRed1.tres b/level/catalunya/map/RoofTilesRed1.tres new file mode 100644 index 0000000..dd92ccc --- /dev/null +++ b/level/catalunya/map/RoofTilesRed1.tres @@ -0,0 +1,21 @@ +[gd_resource type="SpatialMaterial" load_steps=5 format=2] + +[ext_resource path="res://level/catalunya/textures/Stylized_13_RoofSquare_roughness.webp" type="Texture" id=1] +[ext_resource path="res://level/catalunya/textures/Stylized_13_RoofSquare_normal.webp" type="Texture" id=2] +[ext_resource path="res://level/catalunya/textures/Stylized_13_RoofSquare_ambientocclusion.webp" type="Texture" id=3] +[ext_resource path="res://level/catalunya/textures/Stylized_13_RoofSquare_basecolor.webp" type="Texture" id=4] + +[resource] +albedo_color = Color( 0.815686, 0.811765, 0.741176, 1 ) +albedo_texture = ExtResource( 4 ) +metallic_specular = 0.32 +metallic_texture = ExtResource( 2 ) +roughness = 0.85 +roughness_texture = ExtResource( 1 ) +normal_enabled = true +normal_scale = -1.5 +normal_texture = ExtResource( 3 ) +ao_enabled = true +ao_light_affect = 0.0 +ao_on_uv2 = false +ao_texture_channel = 0 diff --git a/level/catalunya/map/RoofTilesRed2.tres b/level/catalunya/map/RoofTilesRed2.tres new file mode 100644 index 0000000..d01e885 --- /dev/null +++ b/level/catalunya/map/RoofTilesRed2.tres @@ -0,0 +1,21 @@ +[gd_resource type="SpatialMaterial" load_steps=5 format=2] + +[ext_resource path="res://level/catalunya/textures/Stylized_13_RoofSquare_roughness.webp" type="Texture" id=1] +[ext_resource path="res://level/catalunya/textures/Stylized_13_RoofSquare_normal.webp" type="Texture" id=2] +[ext_resource path="res://level/catalunya/textures/Stylized_13_RoofSquare_ambientocclusion.webp" type="Texture" id=3] +[ext_resource path="res://level/catalunya/textures/Stylized_13_RoofSquare_basecolor.webp" type="Texture" id=4] + +[resource] +albedo_color = Color( 0.811765, 0.772549, 0.65098, 1 ) +albedo_texture = ExtResource( 4 ) +metallic_specular = 0.32 +roughness = 0.85 +roughness_texture = ExtResource( 1 ) +normal_enabled = true +normal_scale = -1.5 +normal_texture = ExtResource( 2 ) +ao_enabled = true +ao_light_affect = 0.0 +ao_texture = ExtResource( 3 ) +ao_on_uv2 = false +ao_texture_channel = 0 diff --git a/level/catalunya/map/StoneTilesGrey.tres b/level/catalunya/map/StoneTilesGrey.tres new file mode 100644 index 0000000..8527840 --- /dev/null +++ b/level/catalunya/map/StoneTilesGrey.tres @@ -0,0 +1,7 @@ +[gd_resource type="SpatialMaterial" load_steps=2 format=2] + +[ext_resource path="res://level/catalunya/textures/Stone_panels_01_basecolor.webp" type="Texture" id=1] + +[resource] +albedo_color = Color( 0.690196, 0.690196, 0.690196, 1 ) +albedo_texture = ExtResource( 1 ) diff --git a/level/catalunya/map/StoneTilesTan1.tres b/level/catalunya/map/StoneTilesTan1.tres new file mode 100644 index 0000000..b834ef7 --- /dev/null +++ b/level/catalunya/map/StoneTilesTan1.tres @@ -0,0 +1,14 @@ +[gd_resource type="SpatialMaterial" load_steps=4 format=2] + +[ext_resource path="res://level/catalunya/textures/Stone_panels_01_normal.webp" type="Texture" id=1] +[ext_resource path="res://level/catalunya/textures/Stone_panels_01_basecolor.webp" type="Texture" id=2] +[ext_resource path="res://level/catalunya/textures/Stone_panels_01_ambientocclusion.webp" type="Texture" id=3] + +[resource] +albedo_color = Color( 0.972549, 0.945098, 0.898039, 1 ) +albedo_texture = ExtResource( 2 ) +roughness = 0.9 +roughness_texture = ExtResource( 1 ) +normal_enabled = true +normal_scale = -0.4 +normal_texture = ExtResource( 3 ) diff --git a/level/catalunya/map/StoneTilesTan2.tres b/level/catalunya/map/StoneTilesTan2.tres new file mode 100644 index 0000000..dc788ea --- /dev/null +++ b/level/catalunya/map/StoneTilesTan2.tres @@ -0,0 +1,7 @@ +[gd_resource type="SpatialMaterial" load_steps=2 format=2] + +[ext_resource path="res://level/catalunya/textures/Stone_panels_01_basecolor.webp" type="Texture" id=1] + +[resource] +albedo_color = Color( 0.984314, 0.941176, 0.866667, 1 ) +albedo_texture = ExtResource( 1 ) diff --git a/level/catalunya/map/StoneTilesWhiteRough.tres b/level/catalunya/map/StoneTilesWhiteRough.tres new file mode 100644 index 0000000..91c9cb1 --- /dev/null +++ b/level/catalunya/map/StoneTilesWhiteRough.tres @@ -0,0 +1,16 @@ +[gd_resource type="SpatialMaterial" load_steps=4 format=2] + +[ext_resource path="res://level/catalunya/textures/Stone_panels_01_normal.webp" type="Texture" id=1] +[ext_resource path="res://level/catalunya/textures/Stone_panels_01_basecolor.webp" type="Texture" id=2] +[ext_resource path="res://level/catalunya/textures/Stone_panels_01_ambientocclusion.webp" type="Texture" id=3] + +[resource] +albedo_texture = ExtResource( 2 ) +normal_enabled = true +normal_scale = -0.7 +normal_texture = ExtResource( 1 ) +ao_enabled = true +ao_light_affect = 0.0 +ao_texture = ExtResource( 3 ) +ao_on_uv2 = false +ao_texture_channel = 0 diff --git a/level/catalunya/map/Water.material b/level/catalunya/map/Water.material new file mode 100644 index 0000000..09ca4d8 Binary files /dev/null and b/level/catalunya/map/Water.material differ diff --git a/level/catalunya/map/Window.material b/level/catalunya/map/Window.material new file mode 100644 index 0000000..8b63686 Binary files /dev/null and b/level/catalunya/map/Window.material differ diff --git a/level/catalunya/map/catalunya-map-speccol.gd b/level/catalunya/map/catalunya-map-speccol.gd new file mode 100644 index 0000000..102cf89 --- /dev/null +++ b/level/catalunya/map/catalunya-map-speccol.gd @@ -0,0 +1,6 @@ +extends Spatial + +# README for this catalunya-map-speccol + +# This is for adjusting special collisions for ease of exports. +# One example is the tunnel: I want to disable the player running up it, but let bullets go through. diff --git a/level/catalunya/map/catalunya-map-speccol.glb b/level/catalunya/map/catalunya-map-speccol.glb new file mode 100644 index 0000000..5dfe0f8 Binary files /dev/null and b/level/catalunya/map/catalunya-map-speccol.glb differ diff --git a/level/catalunya/map/catalunya-map-speccol.glb.import b/level/catalunya/map/catalunya-map-speccol.glb.import new file mode 100644 index 0000000..c2ce222 --- /dev/null +++ b/level/catalunya/map/catalunya-map-speccol.glb.import @@ -0,0 +1,1065 @@ +[remap] + +importer="scene" +type="PackedScene" +path="res://.import/catalunya-map-speccol.glb-b545b1e1cf24a63001340d5ee53287a8.scn" + +[deps] + +source_file="res://level/catalunya/map/catalunya-map-speccol.glb" +dest_files=[ "res://.import/catalunya-map-speccol.glb-b545b1e1cf24a63001340d5ee53287a8.scn" ] + +[params] + +nodes/root_type="Spatial" +nodes/root_name="Scene Root" +nodes/root_scale=1.0 +nodes/custom_script="" +nodes/storage=0 +nodes/use_legacy_names=false +materials/location=1 +materials/storage=1 +materials/keep_on_reimport=true +meshes/octahedral_compression=true +meshes/compress=4286 +meshes/ensure_tangents=true +meshes/storage=0 +meshes/light_baking=0 +meshes/lightmap_texel_size=0.1 +skins/use_named_skins=true +external_files/store_in_subdir=false +animation/import=true +animation/fps=15 +animation/filter_script="" +animation/storage=false +animation/keep_custom_tracks=false +animation/optimizer/enabled=true +animation/optimizer/max_linear_error=0.05 +animation/optimizer/max_angular_error=0.01 +animation/optimizer/max_angle=22 +animation/optimizer/remove_unused_tracks=true +animation/clips/amount=0 +animation/clip_1/name="" +animation/clip_1/start_frame=0 +animation/clip_1/end_frame=0 +animation/clip_1/loops=false +animation/clip_2/name="" +animation/clip_2/start_frame=0 +animation/clip_2/end_frame=0 +animation/clip_2/loops=false +animation/clip_3/name="" +animation/clip_3/start_frame=0 +animation/clip_3/end_frame=0 +animation/clip_3/loops=false +animation/clip_4/name="" +animation/clip_4/start_frame=0 +animation/clip_4/end_frame=0 +animation/clip_4/loops=false +animation/clip_5/name="" +animation/clip_5/start_frame=0 +animation/clip_5/end_frame=0 +animation/clip_5/loops=false +animation/clip_6/name="" +animation/clip_6/start_frame=0 +animation/clip_6/end_frame=0 +animation/clip_6/loops=false +animation/clip_7/name="" +animation/clip_7/start_frame=0 +animation/clip_7/end_frame=0 +animation/clip_7/loops=false +animation/clip_8/name="" +animation/clip_8/start_frame=0 +animation/clip_8/end_frame=0 +animation/clip_8/loops=false +animation/clip_9/name="" +animation/clip_9/start_frame=0 +animation/clip_9/end_frame=0 +animation/clip_9/loops=false +animation/clip_10/name="" +animation/clip_10/start_frame=0 +animation/clip_10/end_frame=0 +animation/clip_10/loops=false +animation/clip_11/name="" +animation/clip_11/start_frame=0 +animation/clip_11/end_frame=0 +animation/clip_11/loops=false +animation/clip_12/name="" +animation/clip_12/start_frame=0 +animation/clip_12/end_frame=0 +animation/clip_12/loops=false +animation/clip_13/name="" +animation/clip_13/start_frame=0 +animation/clip_13/end_frame=0 +animation/clip_13/loops=false +animation/clip_14/name="" +animation/clip_14/start_frame=0 +animation/clip_14/end_frame=0 +animation/clip_14/loops=false +animation/clip_15/name="" +animation/clip_15/start_frame=0 +animation/clip_15/end_frame=0 +animation/clip_15/loops=false +animation/clip_16/name="" +animation/clip_16/start_frame=0 +animation/clip_16/end_frame=0 +animation/clip_16/loops=false +animation/clip_17/name="" +animation/clip_17/start_frame=0 +animation/clip_17/end_frame=0 +animation/clip_17/loops=false +animation/clip_18/name="" +animation/clip_18/start_frame=0 +animation/clip_18/end_frame=0 +animation/clip_18/loops=false +animation/clip_19/name="" +animation/clip_19/start_frame=0 +animation/clip_19/end_frame=0 +animation/clip_19/loops=false +animation/clip_20/name="" +animation/clip_20/start_frame=0 +animation/clip_20/end_frame=0 +animation/clip_20/loops=false +animation/clip_21/name="" +animation/clip_21/start_frame=0 +animation/clip_21/end_frame=0 +animation/clip_21/loops=false +animation/clip_22/name="" +animation/clip_22/start_frame=0 +animation/clip_22/end_frame=0 +animation/clip_22/loops=false +animation/clip_23/name="" +animation/clip_23/start_frame=0 +animation/clip_23/end_frame=0 +animation/clip_23/loops=false +animation/clip_24/name="" +animation/clip_24/start_frame=0 +animation/clip_24/end_frame=0 +animation/clip_24/loops=false +animation/clip_25/name="" +animation/clip_25/start_frame=0 +animation/clip_25/end_frame=0 +animation/clip_25/loops=false +animation/clip_26/name="" +animation/clip_26/start_frame=0 +animation/clip_26/end_frame=0 +animation/clip_26/loops=false +animation/clip_27/name="" +animation/clip_27/start_frame=0 +animation/clip_27/end_frame=0 +animation/clip_27/loops=false +animation/clip_28/name="" +animation/clip_28/start_frame=0 +animation/clip_28/end_frame=0 +animation/clip_28/loops=false +animation/clip_29/name="" +animation/clip_29/start_frame=0 +animation/clip_29/end_frame=0 +animation/clip_29/loops=false +animation/clip_30/name="" +animation/clip_30/start_frame=0 +animation/clip_30/end_frame=0 +animation/clip_30/loops=false +animation/clip_31/name="" +animation/clip_31/start_frame=0 +animation/clip_31/end_frame=0 +animation/clip_31/loops=false +animation/clip_32/name="" +animation/clip_32/start_frame=0 +animation/clip_32/end_frame=0 +animation/clip_32/loops=false +animation/clip_33/name="" +animation/clip_33/start_frame=0 +animation/clip_33/end_frame=0 +animation/clip_33/loops=false +animation/clip_34/name="" +animation/clip_34/start_frame=0 +animation/clip_34/end_frame=0 +animation/clip_34/loops=false +animation/clip_35/name="" +animation/clip_35/start_frame=0 +animation/clip_35/end_frame=0 +animation/clip_35/loops=false +animation/clip_36/name="" +animation/clip_36/start_frame=0 +animation/clip_36/end_frame=0 +animation/clip_36/loops=false +animation/clip_37/name="" +animation/clip_37/start_frame=0 +animation/clip_37/end_frame=0 +animation/clip_37/loops=false +animation/clip_38/name="" +animation/clip_38/start_frame=0 +animation/clip_38/end_frame=0 +animation/clip_38/loops=false +animation/clip_39/name="" +animation/clip_39/start_frame=0 +animation/clip_39/end_frame=0 +animation/clip_39/loops=false +animation/clip_40/name="" +animation/clip_40/start_frame=0 +animation/clip_40/end_frame=0 +animation/clip_40/loops=false +animation/clip_41/name="" +animation/clip_41/start_frame=0 +animation/clip_41/end_frame=0 +animation/clip_41/loops=false +animation/clip_42/name="" +animation/clip_42/start_frame=0 +animation/clip_42/end_frame=0 +animation/clip_42/loops=false +animation/clip_43/name="" +animation/clip_43/start_frame=0 +animation/clip_43/end_frame=0 +animation/clip_43/loops=false +animation/clip_44/name="" +animation/clip_44/start_frame=0 +animation/clip_44/end_frame=0 +animation/clip_44/loops=false +animation/clip_45/name="" +animation/clip_45/start_frame=0 +animation/clip_45/end_frame=0 +animation/clip_45/loops=false +animation/clip_46/name="" +animation/clip_46/start_frame=0 +animation/clip_46/end_frame=0 +animation/clip_46/loops=false +animation/clip_47/name="" +animation/clip_47/start_frame=0 +animation/clip_47/end_frame=0 +animation/clip_47/loops=false +animation/clip_48/name="" +animation/clip_48/start_frame=0 +animation/clip_48/end_frame=0 +animation/clip_48/loops=false +animation/clip_49/name="" +animation/clip_49/start_frame=0 +animation/clip_49/end_frame=0 +animation/clip_49/loops=false +animation/clip_50/name="" +animation/clip_50/start_frame=0 +animation/clip_50/end_frame=0 +animation/clip_50/loops=false +animation/clip_51/name="" +animation/clip_51/start_frame=0 +animation/clip_51/end_frame=0 +animation/clip_51/loops=false +animation/clip_52/name="" +animation/clip_52/start_frame=0 +animation/clip_52/end_frame=0 +animation/clip_52/loops=false +animation/clip_53/name="" +animation/clip_53/start_frame=0 +animation/clip_53/end_frame=0 +animation/clip_53/loops=false +animation/clip_54/name="" +animation/clip_54/start_frame=0 +animation/clip_54/end_frame=0 +animation/clip_54/loops=false +animation/clip_55/name="" +animation/clip_55/start_frame=0 +animation/clip_55/end_frame=0 +animation/clip_55/loops=false +animation/clip_56/name="" +animation/clip_56/start_frame=0 +animation/clip_56/end_frame=0 +animation/clip_56/loops=false +animation/clip_57/name="" +animation/clip_57/start_frame=0 +animation/clip_57/end_frame=0 +animation/clip_57/loops=false +animation/clip_58/name="" +animation/clip_58/start_frame=0 +animation/clip_58/end_frame=0 +animation/clip_58/loops=false +animation/clip_59/name="" +animation/clip_59/start_frame=0 +animation/clip_59/end_frame=0 +animation/clip_59/loops=false +animation/clip_60/name="" +animation/clip_60/start_frame=0 +animation/clip_60/end_frame=0 +animation/clip_60/loops=false +animation/clip_61/name="" +animation/clip_61/start_frame=0 +animation/clip_61/end_frame=0 +animation/clip_61/loops=false +animation/clip_62/name="" +animation/clip_62/start_frame=0 +animation/clip_62/end_frame=0 +animation/clip_62/loops=false +animation/clip_63/name="" +animation/clip_63/start_frame=0 +animation/clip_63/end_frame=0 +animation/clip_63/loops=false +animation/clip_64/name="" +animation/clip_64/start_frame=0 +animation/clip_64/end_frame=0 +animation/clip_64/loops=false +animation/clip_65/name="" +animation/clip_65/start_frame=0 +animation/clip_65/end_frame=0 +animation/clip_65/loops=false +animation/clip_66/name="" +animation/clip_66/start_frame=0 +animation/clip_66/end_frame=0 +animation/clip_66/loops=false +animation/clip_67/name="" +animation/clip_67/start_frame=0 +animation/clip_67/end_frame=0 +animation/clip_67/loops=false +animation/clip_68/name="" +animation/clip_68/start_frame=0 +animation/clip_68/end_frame=0 +animation/clip_68/loops=false +animation/clip_69/name="" +animation/clip_69/start_frame=0 +animation/clip_69/end_frame=0 +animation/clip_69/loops=false +animation/clip_70/name="" +animation/clip_70/start_frame=0 +animation/clip_70/end_frame=0 +animation/clip_70/loops=false +animation/clip_71/name="" +animation/clip_71/start_frame=0 +animation/clip_71/end_frame=0 +animation/clip_71/loops=false +animation/clip_72/name="" +animation/clip_72/start_frame=0 +animation/clip_72/end_frame=0 +animation/clip_72/loops=false +animation/clip_73/name="" +animation/clip_73/start_frame=0 +animation/clip_73/end_frame=0 +animation/clip_73/loops=false +animation/clip_74/name="" +animation/clip_74/start_frame=0 +animation/clip_74/end_frame=0 +animation/clip_74/loops=false +animation/clip_75/name="" +animation/clip_75/start_frame=0 +animation/clip_75/end_frame=0 +animation/clip_75/loops=false +animation/clip_76/name="" +animation/clip_76/start_frame=0 +animation/clip_76/end_frame=0 +animation/clip_76/loops=false +animation/clip_77/name="" +animation/clip_77/start_frame=0 +animation/clip_77/end_frame=0 +animation/clip_77/loops=false +animation/clip_78/name="" +animation/clip_78/start_frame=0 +animation/clip_78/end_frame=0 +animation/clip_78/loops=false +animation/clip_79/name="" +animation/clip_79/start_frame=0 +animation/clip_79/end_frame=0 +animation/clip_79/loops=false +animation/clip_80/name="" +animation/clip_80/start_frame=0 +animation/clip_80/end_frame=0 +animation/clip_80/loops=false +animation/clip_81/name="" +animation/clip_81/start_frame=0 +animation/clip_81/end_frame=0 +animation/clip_81/loops=false +animation/clip_82/name="" +animation/clip_82/start_frame=0 +animation/clip_82/end_frame=0 +animation/clip_82/loops=false +animation/clip_83/name="" +animation/clip_83/start_frame=0 +animation/clip_83/end_frame=0 +animation/clip_83/loops=false +animation/clip_84/name="" +animation/clip_84/start_frame=0 +animation/clip_84/end_frame=0 +animation/clip_84/loops=false +animation/clip_85/name="" +animation/clip_85/start_frame=0 +animation/clip_85/end_frame=0 +animation/clip_85/loops=false +animation/clip_86/name="" +animation/clip_86/start_frame=0 +animation/clip_86/end_frame=0 +animation/clip_86/loops=false +animation/clip_87/name="" +animation/clip_87/start_frame=0 +animation/clip_87/end_frame=0 +animation/clip_87/loops=false +animation/clip_88/name="" +animation/clip_88/start_frame=0 +animation/clip_88/end_frame=0 +animation/clip_88/loops=false +animation/clip_89/name="" +animation/clip_89/start_frame=0 +animation/clip_89/end_frame=0 +animation/clip_89/loops=false +animation/clip_90/name="" +animation/clip_90/start_frame=0 +animation/clip_90/end_frame=0 +animation/clip_90/loops=false +animation/clip_91/name="" +animation/clip_91/start_frame=0 +animation/clip_91/end_frame=0 +animation/clip_91/loops=false +animation/clip_92/name="" +animation/clip_92/start_frame=0 +animation/clip_92/end_frame=0 +animation/clip_92/loops=false +animation/clip_93/name="" +animation/clip_93/start_frame=0 +animation/clip_93/end_frame=0 +animation/clip_93/loops=false +animation/clip_94/name="" +animation/clip_94/start_frame=0 +animation/clip_94/end_frame=0 +animation/clip_94/loops=false +animation/clip_95/name="" +animation/clip_95/start_frame=0 +animation/clip_95/end_frame=0 +animation/clip_95/loops=false +animation/clip_96/name="" +animation/clip_96/start_frame=0 +animation/clip_96/end_frame=0 +animation/clip_96/loops=false +animation/clip_97/name="" +animation/clip_97/start_frame=0 +animation/clip_97/end_frame=0 +animation/clip_97/loops=false +animation/clip_98/name="" +animation/clip_98/start_frame=0 +animation/clip_98/end_frame=0 +animation/clip_98/loops=false +animation/clip_99/name="" +animation/clip_99/start_frame=0 +animation/clip_99/end_frame=0 +animation/clip_99/loops=false +animation/clip_100/name="" +animation/clip_100/start_frame=0 +animation/clip_100/end_frame=0 +animation/clip_100/loops=false +animation/clip_101/name="" +animation/clip_101/start_frame=0 +animation/clip_101/end_frame=0 +animation/clip_101/loops=false +animation/clip_102/name="" +animation/clip_102/start_frame=0 +animation/clip_102/end_frame=0 +animation/clip_102/loops=false +animation/clip_103/name="" +animation/clip_103/start_frame=0 +animation/clip_103/end_frame=0 +animation/clip_103/loops=false +animation/clip_104/name="" +animation/clip_104/start_frame=0 +animation/clip_104/end_frame=0 +animation/clip_104/loops=false +animation/clip_105/name="" +animation/clip_105/start_frame=0 +animation/clip_105/end_frame=0 +animation/clip_105/loops=false +animation/clip_106/name="" +animation/clip_106/start_frame=0 +animation/clip_106/end_frame=0 +animation/clip_106/loops=false +animation/clip_107/name="" +animation/clip_107/start_frame=0 +animation/clip_107/end_frame=0 +animation/clip_107/loops=false +animation/clip_108/name="" +animation/clip_108/start_frame=0 +animation/clip_108/end_frame=0 +animation/clip_108/loops=false +animation/clip_109/name="" +animation/clip_109/start_frame=0 +animation/clip_109/end_frame=0 +animation/clip_109/loops=false +animation/clip_110/name="" +animation/clip_110/start_frame=0 +animation/clip_110/end_frame=0 +animation/clip_110/loops=false +animation/clip_111/name="" +animation/clip_111/start_frame=0 +animation/clip_111/end_frame=0 +animation/clip_111/loops=false +animation/clip_112/name="" +animation/clip_112/start_frame=0 +animation/clip_112/end_frame=0 +animation/clip_112/loops=false +animation/clip_113/name="" +animation/clip_113/start_frame=0 +animation/clip_113/end_frame=0 +animation/clip_113/loops=false +animation/clip_114/name="" +animation/clip_114/start_frame=0 +animation/clip_114/end_frame=0 +animation/clip_114/loops=false +animation/clip_115/name="" +animation/clip_115/start_frame=0 +animation/clip_115/end_frame=0 +animation/clip_115/loops=false +animation/clip_116/name="" +animation/clip_116/start_frame=0 +animation/clip_116/end_frame=0 +animation/clip_116/loops=false +animation/clip_117/name="" +animation/clip_117/start_frame=0 +animation/clip_117/end_frame=0 +animation/clip_117/loops=false +animation/clip_118/name="" +animation/clip_118/start_frame=0 +animation/clip_118/end_frame=0 +animation/clip_118/loops=false +animation/clip_119/name="" +animation/clip_119/start_frame=0 +animation/clip_119/end_frame=0 +animation/clip_119/loops=false +animation/clip_120/name="" +animation/clip_120/start_frame=0 +animation/clip_120/end_frame=0 +animation/clip_120/loops=false +animation/clip_121/name="" +animation/clip_121/start_frame=0 +animation/clip_121/end_frame=0 +animation/clip_121/loops=false +animation/clip_122/name="" +animation/clip_122/start_frame=0 +animation/clip_122/end_frame=0 +animation/clip_122/loops=false +animation/clip_123/name="" +animation/clip_123/start_frame=0 +animation/clip_123/end_frame=0 +animation/clip_123/loops=false +animation/clip_124/name="" +animation/clip_124/start_frame=0 +animation/clip_124/end_frame=0 +animation/clip_124/loops=false +animation/clip_125/name="" +animation/clip_125/start_frame=0 +animation/clip_125/end_frame=0 +animation/clip_125/loops=false +animation/clip_126/name="" +animation/clip_126/start_frame=0 +animation/clip_126/end_frame=0 +animation/clip_126/loops=false +animation/clip_127/name="" +animation/clip_127/start_frame=0 +animation/clip_127/end_frame=0 +animation/clip_127/loops=false +animation/clip_128/name="" +animation/clip_128/start_frame=0 +animation/clip_128/end_frame=0 +animation/clip_128/loops=false +animation/clip_129/name="" +animation/clip_129/start_frame=0 +animation/clip_129/end_frame=0 +animation/clip_129/loops=false +animation/clip_130/name="" +animation/clip_130/start_frame=0 +animation/clip_130/end_frame=0 +animation/clip_130/loops=false +animation/clip_131/name="" +animation/clip_131/start_frame=0 +animation/clip_131/end_frame=0 +animation/clip_131/loops=false +animation/clip_132/name="" +animation/clip_132/start_frame=0 +animation/clip_132/end_frame=0 +animation/clip_132/loops=false +animation/clip_133/name="" +animation/clip_133/start_frame=0 +animation/clip_133/end_frame=0 +animation/clip_133/loops=false +animation/clip_134/name="" +animation/clip_134/start_frame=0 +animation/clip_134/end_frame=0 +animation/clip_134/loops=false +animation/clip_135/name="" +animation/clip_135/start_frame=0 +animation/clip_135/end_frame=0 +animation/clip_135/loops=false +animation/clip_136/name="" +animation/clip_136/start_frame=0 +animation/clip_136/end_frame=0 +animation/clip_136/loops=false +animation/clip_137/name="" +animation/clip_137/start_frame=0 +animation/clip_137/end_frame=0 +animation/clip_137/loops=false +animation/clip_138/name="" +animation/clip_138/start_frame=0 +animation/clip_138/end_frame=0 +animation/clip_138/loops=false +animation/clip_139/name="" +animation/clip_139/start_frame=0 +animation/clip_139/end_frame=0 +animation/clip_139/loops=false +animation/clip_140/name="" +animation/clip_140/start_frame=0 +animation/clip_140/end_frame=0 +animation/clip_140/loops=false +animation/clip_141/name="" +animation/clip_141/start_frame=0 +animation/clip_141/end_frame=0 +animation/clip_141/loops=false +animation/clip_142/name="" +animation/clip_142/start_frame=0 +animation/clip_142/end_frame=0 +animation/clip_142/loops=false +animation/clip_143/name="" +animation/clip_143/start_frame=0 +animation/clip_143/end_frame=0 +animation/clip_143/loops=false +animation/clip_144/name="" +animation/clip_144/start_frame=0 +animation/clip_144/end_frame=0 +animation/clip_144/loops=false +animation/clip_145/name="" +animation/clip_145/start_frame=0 +animation/clip_145/end_frame=0 +animation/clip_145/loops=false +animation/clip_146/name="" +animation/clip_146/start_frame=0 +animation/clip_146/end_frame=0 +animation/clip_146/loops=false +animation/clip_147/name="" +animation/clip_147/start_frame=0 +animation/clip_147/end_frame=0 +animation/clip_147/loops=false +animation/clip_148/name="" +animation/clip_148/start_frame=0 +animation/clip_148/end_frame=0 +animation/clip_148/loops=false +animation/clip_149/name="" +animation/clip_149/start_frame=0 +animation/clip_149/end_frame=0 +animation/clip_149/loops=false +animation/clip_150/name="" +animation/clip_150/start_frame=0 +animation/clip_150/end_frame=0 +animation/clip_150/loops=false +animation/clip_151/name="" +animation/clip_151/start_frame=0 +animation/clip_151/end_frame=0 +animation/clip_151/loops=false +animation/clip_152/name="" +animation/clip_152/start_frame=0 +animation/clip_152/end_frame=0 +animation/clip_152/loops=false +animation/clip_153/name="" +animation/clip_153/start_frame=0 +animation/clip_153/end_frame=0 +animation/clip_153/loops=false +animation/clip_154/name="" +animation/clip_154/start_frame=0 +animation/clip_154/end_frame=0 +animation/clip_154/loops=false +animation/clip_155/name="" +animation/clip_155/start_frame=0 +animation/clip_155/end_frame=0 +animation/clip_155/loops=false +animation/clip_156/name="" +animation/clip_156/start_frame=0 +animation/clip_156/end_frame=0 +animation/clip_156/loops=false +animation/clip_157/name="" +animation/clip_157/start_frame=0 +animation/clip_157/end_frame=0 +animation/clip_157/loops=false +animation/clip_158/name="" +animation/clip_158/start_frame=0 +animation/clip_158/end_frame=0 +animation/clip_158/loops=false +animation/clip_159/name="" +animation/clip_159/start_frame=0 +animation/clip_159/end_frame=0 +animation/clip_159/loops=false +animation/clip_160/name="" +animation/clip_160/start_frame=0 +animation/clip_160/end_frame=0 +animation/clip_160/loops=false +animation/clip_161/name="" +animation/clip_161/start_frame=0 +animation/clip_161/end_frame=0 +animation/clip_161/loops=false +animation/clip_162/name="" +animation/clip_162/start_frame=0 +animation/clip_162/end_frame=0 +animation/clip_162/loops=false +animation/clip_163/name="" +animation/clip_163/start_frame=0 +animation/clip_163/end_frame=0 +animation/clip_163/loops=false +animation/clip_164/name="" +animation/clip_164/start_frame=0 +animation/clip_164/end_frame=0 +animation/clip_164/loops=false +animation/clip_165/name="" +animation/clip_165/start_frame=0 +animation/clip_165/end_frame=0 +animation/clip_165/loops=false +animation/clip_166/name="" +animation/clip_166/start_frame=0 +animation/clip_166/end_frame=0 +animation/clip_166/loops=false +animation/clip_167/name="" +animation/clip_167/start_frame=0 +animation/clip_167/end_frame=0 +animation/clip_167/loops=false +animation/clip_168/name="" +animation/clip_168/start_frame=0 +animation/clip_168/end_frame=0 +animation/clip_168/loops=false +animation/clip_169/name="" +animation/clip_169/start_frame=0 +animation/clip_169/end_frame=0 +animation/clip_169/loops=false +animation/clip_170/name="" +animation/clip_170/start_frame=0 +animation/clip_170/end_frame=0 +animation/clip_170/loops=false +animation/clip_171/name="" +animation/clip_171/start_frame=0 +animation/clip_171/end_frame=0 +animation/clip_171/loops=false +animation/clip_172/name="" +animation/clip_172/start_frame=0 +animation/clip_172/end_frame=0 +animation/clip_172/loops=false +animation/clip_173/name="" +animation/clip_173/start_frame=0 +animation/clip_173/end_frame=0 +animation/clip_173/loops=false +animation/clip_174/name="" +animation/clip_174/start_frame=0 +animation/clip_174/end_frame=0 +animation/clip_174/loops=false +animation/clip_175/name="" +animation/clip_175/start_frame=0 +animation/clip_175/end_frame=0 +animation/clip_175/loops=false +animation/clip_176/name="" +animation/clip_176/start_frame=0 +animation/clip_176/end_frame=0 +animation/clip_176/loops=false +animation/clip_177/name="" +animation/clip_177/start_frame=0 +animation/clip_177/end_frame=0 +animation/clip_177/loops=false +animation/clip_178/name="" +animation/clip_178/start_frame=0 +animation/clip_178/end_frame=0 +animation/clip_178/loops=false +animation/clip_179/name="" +animation/clip_179/start_frame=0 +animation/clip_179/end_frame=0 +animation/clip_179/loops=false +animation/clip_180/name="" +animation/clip_180/start_frame=0 +animation/clip_180/end_frame=0 +animation/clip_180/loops=false +animation/clip_181/name="" +animation/clip_181/start_frame=0 +animation/clip_181/end_frame=0 +animation/clip_181/loops=false +animation/clip_182/name="" +animation/clip_182/start_frame=0 +animation/clip_182/end_frame=0 +animation/clip_182/loops=false +animation/clip_183/name="" +animation/clip_183/start_frame=0 +animation/clip_183/end_frame=0 +animation/clip_183/loops=false +animation/clip_184/name="" +animation/clip_184/start_frame=0 +animation/clip_184/end_frame=0 +animation/clip_184/loops=false +animation/clip_185/name="" +animation/clip_185/start_frame=0 +animation/clip_185/end_frame=0 +animation/clip_185/loops=false +animation/clip_186/name="" +animation/clip_186/start_frame=0 +animation/clip_186/end_frame=0 +animation/clip_186/loops=false +animation/clip_187/name="" +animation/clip_187/start_frame=0 +animation/clip_187/end_frame=0 +animation/clip_187/loops=false +animation/clip_188/name="" +animation/clip_188/start_frame=0 +animation/clip_188/end_frame=0 +animation/clip_188/loops=false +animation/clip_189/name="" +animation/clip_189/start_frame=0 +animation/clip_189/end_frame=0 +animation/clip_189/loops=false +animation/clip_190/name="" +animation/clip_190/start_frame=0 +animation/clip_190/end_frame=0 +animation/clip_190/loops=false +animation/clip_191/name="" +animation/clip_191/start_frame=0 +animation/clip_191/end_frame=0 +animation/clip_191/loops=false +animation/clip_192/name="" +animation/clip_192/start_frame=0 +animation/clip_192/end_frame=0 +animation/clip_192/loops=false +animation/clip_193/name="" +animation/clip_193/start_frame=0 +animation/clip_193/end_frame=0 +animation/clip_193/loops=false +animation/clip_194/name="" +animation/clip_194/start_frame=0 +animation/clip_194/end_frame=0 +animation/clip_194/loops=false +animation/clip_195/name="" +animation/clip_195/start_frame=0 +animation/clip_195/end_frame=0 +animation/clip_195/loops=false +animation/clip_196/name="" +animation/clip_196/start_frame=0 +animation/clip_196/end_frame=0 +animation/clip_196/loops=false +animation/clip_197/name="" +animation/clip_197/start_frame=0 +animation/clip_197/end_frame=0 +animation/clip_197/loops=false +animation/clip_198/name="" +animation/clip_198/start_frame=0 +animation/clip_198/end_frame=0 +animation/clip_198/loops=false +animation/clip_199/name="" +animation/clip_199/start_frame=0 +animation/clip_199/end_frame=0 +animation/clip_199/loops=false +animation/clip_200/name="" +animation/clip_200/start_frame=0 +animation/clip_200/end_frame=0 +animation/clip_200/loops=false +animation/clip_201/name="" +animation/clip_201/start_frame=0 +animation/clip_201/end_frame=0 +animation/clip_201/loops=false +animation/clip_202/name="" +animation/clip_202/start_frame=0 +animation/clip_202/end_frame=0 +animation/clip_202/loops=false +animation/clip_203/name="" +animation/clip_203/start_frame=0 +animation/clip_203/end_frame=0 +animation/clip_203/loops=false +animation/clip_204/name="" +animation/clip_204/start_frame=0 +animation/clip_204/end_frame=0 +animation/clip_204/loops=false +animation/clip_205/name="" +animation/clip_205/start_frame=0 +animation/clip_205/end_frame=0 +animation/clip_205/loops=false +animation/clip_206/name="" +animation/clip_206/start_frame=0 +animation/clip_206/end_frame=0 +animation/clip_206/loops=false +animation/clip_207/name="" +animation/clip_207/start_frame=0 +animation/clip_207/end_frame=0 +animation/clip_207/loops=false +animation/clip_208/name="" +animation/clip_208/start_frame=0 +animation/clip_208/end_frame=0 +animation/clip_208/loops=false +animation/clip_209/name="" +animation/clip_209/start_frame=0 +animation/clip_209/end_frame=0 +animation/clip_209/loops=false +animation/clip_210/name="" +animation/clip_210/start_frame=0 +animation/clip_210/end_frame=0 +animation/clip_210/loops=false +animation/clip_211/name="" +animation/clip_211/start_frame=0 +animation/clip_211/end_frame=0 +animation/clip_211/loops=false +animation/clip_212/name="" +animation/clip_212/start_frame=0 +animation/clip_212/end_frame=0 +animation/clip_212/loops=false +animation/clip_213/name="" +animation/clip_213/start_frame=0 +animation/clip_213/end_frame=0 +animation/clip_213/loops=false +animation/clip_214/name="" +animation/clip_214/start_frame=0 +animation/clip_214/end_frame=0 +animation/clip_214/loops=false +animation/clip_215/name="" +animation/clip_215/start_frame=0 +animation/clip_215/end_frame=0 +animation/clip_215/loops=false +animation/clip_216/name="" +animation/clip_216/start_frame=0 +animation/clip_216/end_frame=0 +animation/clip_216/loops=false +animation/clip_217/name="" +animation/clip_217/start_frame=0 +animation/clip_217/end_frame=0 +animation/clip_217/loops=false +animation/clip_218/name="" +animation/clip_218/start_frame=0 +animation/clip_218/end_frame=0 +animation/clip_218/loops=false +animation/clip_219/name="" +animation/clip_219/start_frame=0 +animation/clip_219/end_frame=0 +animation/clip_219/loops=false +animation/clip_220/name="" +animation/clip_220/start_frame=0 +animation/clip_220/end_frame=0 +animation/clip_220/loops=false +animation/clip_221/name="" +animation/clip_221/start_frame=0 +animation/clip_221/end_frame=0 +animation/clip_221/loops=false +animation/clip_222/name="" +animation/clip_222/start_frame=0 +animation/clip_222/end_frame=0 +animation/clip_222/loops=false +animation/clip_223/name="" +animation/clip_223/start_frame=0 +animation/clip_223/end_frame=0 +animation/clip_223/loops=false +animation/clip_224/name="" +animation/clip_224/start_frame=0 +animation/clip_224/end_frame=0 +animation/clip_224/loops=false +animation/clip_225/name="" +animation/clip_225/start_frame=0 +animation/clip_225/end_frame=0 +animation/clip_225/loops=false +animation/clip_226/name="" +animation/clip_226/start_frame=0 +animation/clip_226/end_frame=0 +animation/clip_226/loops=false +animation/clip_227/name="" +animation/clip_227/start_frame=0 +animation/clip_227/end_frame=0 +animation/clip_227/loops=false +animation/clip_228/name="" +animation/clip_228/start_frame=0 +animation/clip_228/end_frame=0 +animation/clip_228/loops=false +animation/clip_229/name="" +animation/clip_229/start_frame=0 +animation/clip_229/end_frame=0 +animation/clip_229/loops=false +animation/clip_230/name="" +animation/clip_230/start_frame=0 +animation/clip_230/end_frame=0 +animation/clip_230/loops=false +animation/clip_231/name="" +animation/clip_231/start_frame=0 +animation/clip_231/end_frame=0 +animation/clip_231/loops=false +animation/clip_232/name="" +animation/clip_232/start_frame=0 +animation/clip_232/end_frame=0 +animation/clip_232/loops=false +animation/clip_233/name="" +animation/clip_233/start_frame=0 +animation/clip_233/end_frame=0 +animation/clip_233/loops=false +animation/clip_234/name="" +animation/clip_234/start_frame=0 +animation/clip_234/end_frame=0 +animation/clip_234/loops=false +animation/clip_235/name="" +animation/clip_235/start_frame=0 +animation/clip_235/end_frame=0 +animation/clip_235/loops=false +animation/clip_236/name="" +animation/clip_236/start_frame=0 +animation/clip_236/end_frame=0 +animation/clip_236/loops=false +animation/clip_237/name="" +animation/clip_237/start_frame=0 +animation/clip_237/end_frame=0 +animation/clip_237/loops=false +animation/clip_238/name="" +animation/clip_238/start_frame=0 +animation/clip_238/end_frame=0 +animation/clip_238/loops=false +animation/clip_239/name="" +animation/clip_239/start_frame=0 +animation/clip_239/end_frame=0 +animation/clip_239/loops=false +animation/clip_240/name="" +animation/clip_240/start_frame=0 +animation/clip_240/end_frame=0 +animation/clip_240/loops=false +animation/clip_241/name="" +animation/clip_241/start_frame=0 +animation/clip_241/end_frame=0 +animation/clip_241/loops=false +animation/clip_242/name="" +animation/clip_242/start_frame=0 +animation/clip_242/end_frame=0 +animation/clip_242/loops=false +animation/clip_243/name="" +animation/clip_243/start_frame=0 +animation/clip_243/end_frame=0 +animation/clip_243/loops=false +animation/clip_244/name="" +animation/clip_244/start_frame=0 +animation/clip_244/end_frame=0 +animation/clip_244/loops=false +animation/clip_245/name="" +animation/clip_245/start_frame=0 +animation/clip_245/end_frame=0 +animation/clip_245/loops=false +animation/clip_246/name="" +animation/clip_246/start_frame=0 +animation/clip_246/end_frame=0 +animation/clip_246/loops=false +animation/clip_247/name="" +animation/clip_247/start_frame=0 +animation/clip_247/end_frame=0 +animation/clip_247/loops=false +animation/clip_248/name="" +animation/clip_248/start_frame=0 +animation/clip_248/end_frame=0 +animation/clip_248/loops=false +animation/clip_249/name="" +animation/clip_249/start_frame=0 +animation/clip_249/end_frame=0 +animation/clip_249/loops=false +animation/clip_250/name="" +animation/clip_250/start_frame=0 +animation/clip_250/end_frame=0 +animation/clip_250/loops=false +animation/clip_251/name="" +animation/clip_251/start_frame=0 +animation/clip_251/end_frame=0 +animation/clip_251/loops=false +animation/clip_252/name="" +animation/clip_252/start_frame=0 +animation/clip_252/end_frame=0 +animation/clip_252/loops=false +animation/clip_253/name="" +animation/clip_253/start_frame=0 +animation/clip_253/end_frame=0 +animation/clip_253/loops=false +animation/clip_254/name="" +animation/clip_254/start_frame=0 +animation/clip_254/end_frame=0 +animation/clip_254/loops=false +animation/clip_255/name="" +animation/clip_255/start_frame=0 +animation/clip_255/end_frame=0 +animation/clip_255/loops=false +animation/clip_256/name="" +animation/clip_256/start_frame=0 +animation/clip_256/end_frame=0 +animation/clip_256/loops=false diff --git a/level/catalunya/map/catalunya-map-speccol.tscn b/level/catalunya/map/catalunya-map-speccol.tscn new file mode 100644 index 0000000..99325c7 --- /dev/null +++ b/level/catalunya/map/catalunya-map-speccol.tscn @@ -0,0 +1,13 @@ +[gd_scene load_steps=2 format=2] + +[ext_resource path="res://level/catalunya/map/catalunya-map-speccol.glb" type="PackedScene" id=1] + +[node name="catalunya-map-speccol" instance=ExtResource( 1 )] + +[node name="arch" parent="." index="4"] +collision_layer = 16 +collision_mask = 16 + +[node name="arch001" parent="." index="5"] +collision_layer = 16 +collision_mask = 16 diff --git a/level/catalunya/map/catalunya-map.glb b/level/catalunya/map/catalunya-map.glb new file mode 100644 index 0000000..90133bd Binary files /dev/null and b/level/catalunya/map/catalunya-map.glb differ diff --git a/level/catalunya/map/catalunya-map.glb.import b/level/catalunya/map/catalunya-map.glb.import new file mode 100644 index 0000000..954b9f4 --- /dev/null +++ b/level/catalunya/map/catalunya-map.glb.import @@ -0,0 +1,1065 @@ +[remap] + +importer="scene" +type="PackedScene" +path="res://.import/catalunya-map.glb-98838b6e05e453174b9d17d2572177b8.scn" + +[deps] + +source_file="res://level/catalunya/map/catalunya-map.glb" +dest_files=[ "res://.import/catalunya-map.glb-98838b6e05e453174b9d17d2572177b8.scn" ] + +[params] + +nodes/root_type="Spatial" +nodes/root_name="Scene Root" +nodes/root_scale=1.0 +nodes/custom_script="" +nodes/storage=0 +nodes/use_legacy_names=false +materials/location=1 +materials/storage=1 +materials/keep_on_reimport=true +meshes/octahedral_compression=true +meshes/compress=4286 +meshes/ensure_tangents=true +meshes/storage=0 +meshes/light_baking=0 +meshes/lightmap_texel_size=0.1 +skins/use_named_skins=true +external_files/store_in_subdir=false +animation/import=true +animation/fps=15 +animation/filter_script="" +animation/storage=false +animation/keep_custom_tracks=false +animation/optimizer/enabled=true +animation/optimizer/max_linear_error=0.05 +animation/optimizer/max_angular_error=0.01 +animation/optimizer/max_angle=22 +animation/optimizer/remove_unused_tracks=true +animation/clips/amount=0 +animation/clip_1/name="" +animation/clip_1/start_frame=0 +animation/clip_1/end_frame=0 +animation/clip_1/loops=false +animation/clip_2/name="" +animation/clip_2/start_frame=0 +animation/clip_2/end_frame=0 +animation/clip_2/loops=false +animation/clip_3/name="" +animation/clip_3/start_frame=0 +animation/clip_3/end_frame=0 +animation/clip_3/loops=false +animation/clip_4/name="" +animation/clip_4/start_frame=0 +animation/clip_4/end_frame=0 +animation/clip_4/loops=false +animation/clip_5/name="" +animation/clip_5/start_frame=0 +animation/clip_5/end_frame=0 +animation/clip_5/loops=false +animation/clip_6/name="" +animation/clip_6/start_frame=0 +animation/clip_6/end_frame=0 +animation/clip_6/loops=false +animation/clip_7/name="" +animation/clip_7/start_frame=0 +animation/clip_7/end_frame=0 +animation/clip_7/loops=false +animation/clip_8/name="" +animation/clip_8/start_frame=0 +animation/clip_8/end_frame=0 +animation/clip_8/loops=false +animation/clip_9/name="" +animation/clip_9/start_frame=0 +animation/clip_9/end_frame=0 +animation/clip_9/loops=false +animation/clip_10/name="" +animation/clip_10/start_frame=0 +animation/clip_10/end_frame=0 +animation/clip_10/loops=false +animation/clip_11/name="" +animation/clip_11/start_frame=0 +animation/clip_11/end_frame=0 +animation/clip_11/loops=false +animation/clip_12/name="" +animation/clip_12/start_frame=0 +animation/clip_12/end_frame=0 +animation/clip_12/loops=false +animation/clip_13/name="" +animation/clip_13/start_frame=0 +animation/clip_13/end_frame=0 +animation/clip_13/loops=false +animation/clip_14/name="" +animation/clip_14/start_frame=0 +animation/clip_14/end_frame=0 +animation/clip_14/loops=false +animation/clip_15/name="" +animation/clip_15/start_frame=0 +animation/clip_15/end_frame=0 +animation/clip_15/loops=false +animation/clip_16/name="" +animation/clip_16/start_frame=0 +animation/clip_16/end_frame=0 +animation/clip_16/loops=false +animation/clip_17/name="" +animation/clip_17/start_frame=0 +animation/clip_17/end_frame=0 +animation/clip_17/loops=false +animation/clip_18/name="" +animation/clip_18/start_frame=0 +animation/clip_18/end_frame=0 +animation/clip_18/loops=false +animation/clip_19/name="" +animation/clip_19/start_frame=0 +animation/clip_19/end_frame=0 +animation/clip_19/loops=false +animation/clip_20/name="" +animation/clip_20/start_frame=0 +animation/clip_20/end_frame=0 +animation/clip_20/loops=false +animation/clip_21/name="" +animation/clip_21/start_frame=0 +animation/clip_21/end_frame=0 +animation/clip_21/loops=false +animation/clip_22/name="" +animation/clip_22/start_frame=0 +animation/clip_22/end_frame=0 +animation/clip_22/loops=false +animation/clip_23/name="" +animation/clip_23/start_frame=0 +animation/clip_23/end_frame=0 +animation/clip_23/loops=false +animation/clip_24/name="" +animation/clip_24/start_frame=0 +animation/clip_24/end_frame=0 +animation/clip_24/loops=false +animation/clip_25/name="" +animation/clip_25/start_frame=0 +animation/clip_25/end_frame=0 +animation/clip_25/loops=false +animation/clip_26/name="" +animation/clip_26/start_frame=0 +animation/clip_26/end_frame=0 +animation/clip_26/loops=false +animation/clip_27/name="" +animation/clip_27/start_frame=0 +animation/clip_27/end_frame=0 +animation/clip_27/loops=false +animation/clip_28/name="" +animation/clip_28/start_frame=0 +animation/clip_28/end_frame=0 +animation/clip_28/loops=false +animation/clip_29/name="" +animation/clip_29/start_frame=0 +animation/clip_29/end_frame=0 +animation/clip_29/loops=false +animation/clip_30/name="" +animation/clip_30/start_frame=0 +animation/clip_30/end_frame=0 +animation/clip_30/loops=false +animation/clip_31/name="" +animation/clip_31/start_frame=0 +animation/clip_31/end_frame=0 +animation/clip_31/loops=false +animation/clip_32/name="" +animation/clip_32/start_frame=0 +animation/clip_32/end_frame=0 +animation/clip_32/loops=false +animation/clip_33/name="" +animation/clip_33/start_frame=0 +animation/clip_33/end_frame=0 +animation/clip_33/loops=false +animation/clip_34/name="" +animation/clip_34/start_frame=0 +animation/clip_34/end_frame=0 +animation/clip_34/loops=false +animation/clip_35/name="" +animation/clip_35/start_frame=0 +animation/clip_35/end_frame=0 +animation/clip_35/loops=false +animation/clip_36/name="" +animation/clip_36/start_frame=0 +animation/clip_36/end_frame=0 +animation/clip_36/loops=false +animation/clip_37/name="" +animation/clip_37/start_frame=0 +animation/clip_37/end_frame=0 +animation/clip_37/loops=false +animation/clip_38/name="" +animation/clip_38/start_frame=0 +animation/clip_38/end_frame=0 +animation/clip_38/loops=false +animation/clip_39/name="" +animation/clip_39/start_frame=0 +animation/clip_39/end_frame=0 +animation/clip_39/loops=false +animation/clip_40/name="" +animation/clip_40/start_frame=0 +animation/clip_40/end_frame=0 +animation/clip_40/loops=false +animation/clip_41/name="" +animation/clip_41/start_frame=0 +animation/clip_41/end_frame=0 +animation/clip_41/loops=false +animation/clip_42/name="" +animation/clip_42/start_frame=0 +animation/clip_42/end_frame=0 +animation/clip_42/loops=false +animation/clip_43/name="" +animation/clip_43/start_frame=0 +animation/clip_43/end_frame=0 +animation/clip_43/loops=false +animation/clip_44/name="" +animation/clip_44/start_frame=0 +animation/clip_44/end_frame=0 +animation/clip_44/loops=false +animation/clip_45/name="" +animation/clip_45/start_frame=0 +animation/clip_45/end_frame=0 +animation/clip_45/loops=false +animation/clip_46/name="" +animation/clip_46/start_frame=0 +animation/clip_46/end_frame=0 +animation/clip_46/loops=false +animation/clip_47/name="" +animation/clip_47/start_frame=0 +animation/clip_47/end_frame=0 +animation/clip_47/loops=false +animation/clip_48/name="" +animation/clip_48/start_frame=0 +animation/clip_48/end_frame=0 +animation/clip_48/loops=false +animation/clip_49/name="" +animation/clip_49/start_frame=0 +animation/clip_49/end_frame=0 +animation/clip_49/loops=false +animation/clip_50/name="" +animation/clip_50/start_frame=0 +animation/clip_50/end_frame=0 +animation/clip_50/loops=false +animation/clip_51/name="" +animation/clip_51/start_frame=0 +animation/clip_51/end_frame=0 +animation/clip_51/loops=false +animation/clip_52/name="" +animation/clip_52/start_frame=0 +animation/clip_52/end_frame=0 +animation/clip_52/loops=false +animation/clip_53/name="" +animation/clip_53/start_frame=0 +animation/clip_53/end_frame=0 +animation/clip_53/loops=false +animation/clip_54/name="" +animation/clip_54/start_frame=0 +animation/clip_54/end_frame=0 +animation/clip_54/loops=false +animation/clip_55/name="" +animation/clip_55/start_frame=0 +animation/clip_55/end_frame=0 +animation/clip_55/loops=false +animation/clip_56/name="" +animation/clip_56/start_frame=0 +animation/clip_56/end_frame=0 +animation/clip_56/loops=false +animation/clip_57/name="" +animation/clip_57/start_frame=0 +animation/clip_57/end_frame=0 +animation/clip_57/loops=false +animation/clip_58/name="" +animation/clip_58/start_frame=0 +animation/clip_58/end_frame=0 +animation/clip_58/loops=false +animation/clip_59/name="" +animation/clip_59/start_frame=0 +animation/clip_59/end_frame=0 +animation/clip_59/loops=false +animation/clip_60/name="" +animation/clip_60/start_frame=0 +animation/clip_60/end_frame=0 +animation/clip_60/loops=false +animation/clip_61/name="" +animation/clip_61/start_frame=0 +animation/clip_61/end_frame=0 +animation/clip_61/loops=false +animation/clip_62/name="" +animation/clip_62/start_frame=0 +animation/clip_62/end_frame=0 +animation/clip_62/loops=false +animation/clip_63/name="" +animation/clip_63/start_frame=0 +animation/clip_63/end_frame=0 +animation/clip_63/loops=false +animation/clip_64/name="" +animation/clip_64/start_frame=0 +animation/clip_64/end_frame=0 +animation/clip_64/loops=false +animation/clip_65/name="" +animation/clip_65/start_frame=0 +animation/clip_65/end_frame=0 +animation/clip_65/loops=false +animation/clip_66/name="" +animation/clip_66/start_frame=0 +animation/clip_66/end_frame=0 +animation/clip_66/loops=false +animation/clip_67/name="" +animation/clip_67/start_frame=0 +animation/clip_67/end_frame=0 +animation/clip_67/loops=false +animation/clip_68/name="" +animation/clip_68/start_frame=0 +animation/clip_68/end_frame=0 +animation/clip_68/loops=false +animation/clip_69/name="" +animation/clip_69/start_frame=0 +animation/clip_69/end_frame=0 +animation/clip_69/loops=false +animation/clip_70/name="" +animation/clip_70/start_frame=0 +animation/clip_70/end_frame=0 +animation/clip_70/loops=false +animation/clip_71/name="" +animation/clip_71/start_frame=0 +animation/clip_71/end_frame=0 +animation/clip_71/loops=false +animation/clip_72/name="" +animation/clip_72/start_frame=0 +animation/clip_72/end_frame=0 +animation/clip_72/loops=false +animation/clip_73/name="" +animation/clip_73/start_frame=0 +animation/clip_73/end_frame=0 +animation/clip_73/loops=false +animation/clip_74/name="" +animation/clip_74/start_frame=0 +animation/clip_74/end_frame=0 +animation/clip_74/loops=false +animation/clip_75/name="" +animation/clip_75/start_frame=0 +animation/clip_75/end_frame=0 +animation/clip_75/loops=false +animation/clip_76/name="" +animation/clip_76/start_frame=0 +animation/clip_76/end_frame=0 +animation/clip_76/loops=false +animation/clip_77/name="" +animation/clip_77/start_frame=0 +animation/clip_77/end_frame=0 +animation/clip_77/loops=false +animation/clip_78/name="" +animation/clip_78/start_frame=0 +animation/clip_78/end_frame=0 +animation/clip_78/loops=false +animation/clip_79/name="" +animation/clip_79/start_frame=0 +animation/clip_79/end_frame=0 +animation/clip_79/loops=false +animation/clip_80/name="" +animation/clip_80/start_frame=0 +animation/clip_80/end_frame=0 +animation/clip_80/loops=false +animation/clip_81/name="" +animation/clip_81/start_frame=0 +animation/clip_81/end_frame=0 +animation/clip_81/loops=false +animation/clip_82/name="" +animation/clip_82/start_frame=0 +animation/clip_82/end_frame=0 +animation/clip_82/loops=false +animation/clip_83/name="" +animation/clip_83/start_frame=0 +animation/clip_83/end_frame=0 +animation/clip_83/loops=false +animation/clip_84/name="" +animation/clip_84/start_frame=0 +animation/clip_84/end_frame=0 +animation/clip_84/loops=false +animation/clip_85/name="" +animation/clip_85/start_frame=0 +animation/clip_85/end_frame=0 +animation/clip_85/loops=false +animation/clip_86/name="" +animation/clip_86/start_frame=0 +animation/clip_86/end_frame=0 +animation/clip_86/loops=false +animation/clip_87/name="" +animation/clip_87/start_frame=0 +animation/clip_87/end_frame=0 +animation/clip_87/loops=false +animation/clip_88/name="" +animation/clip_88/start_frame=0 +animation/clip_88/end_frame=0 +animation/clip_88/loops=false +animation/clip_89/name="" +animation/clip_89/start_frame=0 +animation/clip_89/end_frame=0 +animation/clip_89/loops=false +animation/clip_90/name="" +animation/clip_90/start_frame=0 +animation/clip_90/end_frame=0 +animation/clip_90/loops=false +animation/clip_91/name="" +animation/clip_91/start_frame=0 +animation/clip_91/end_frame=0 +animation/clip_91/loops=false +animation/clip_92/name="" +animation/clip_92/start_frame=0 +animation/clip_92/end_frame=0 +animation/clip_92/loops=false +animation/clip_93/name="" +animation/clip_93/start_frame=0 +animation/clip_93/end_frame=0 +animation/clip_93/loops=false +animation/clip_94/name="" +animation/clip_94/start_frame=0 +animation/clip_94/end_frame=0 +animation/clip_94/loops=false +animation/clip_95/name="" +animation/clip_95/start_frame=0 +animation/clip_95/end_frame=0 +animation/clip_95/loops=false +animation/clip_96/name="" +animation/clip_96/start_frame=0 +animation/clip_96/end_frame=0 +animation/clip_96/loops=false +animation/clip_97/name="" +animation/clip_97/start_frame=0 +animation/clip_97/end_frame=0 +animation/clip_97/loops=false +animation/clip_98/name="" +animation/clip_98/start_frame=0 +animation/clip_98/end_frame=0 +animation/clip_98/loops=false +animation/clip_99/name="" +animation/clip_99/start_frame=0 +animation/clip_99/end_frame=0 +animation/clip_99/loops=false +animation/clip_100/name="" +animation/clip_100/start_frame=0 +animation/clip_100/end_frame=0 +animation/clip_100/loops=false +animation/clip_101/name="" +animation/clip_101/start_frame=0 +animation/clip_101/end_frame=0 +animation/clip_101/loops=false +animation/clip_102/name="" +animation/clip_102/start_frame=0 +animation/clip_102/end_frame=0 +animation/clip_102/loops=false +animation/clip_103/name="" +animation/clip_103/start_frame=0 +animation/clip_103/end_frame=0 +animation/clip_103/loops=false +animation/clip_104/name="" +animation/clip_104/start_frame=0 +animation/clip_104/end_frame=0 +animation/clip_104/loops=false +animation/clip_105/name="" +animation/clip_105/start_frame=0 +animation/clip_105/end_frame=0 +animation/clip_105/loops=false +animation/clip_106/name="" +animation/clip_106/start_frame=0 +animation/clip_106/end_frame=0 +animation/clip_106/loops=false +animation/clip_107/name="" +animation/clip_107/start_frame=0 +animation/clip_107/end_frame=0 +animation/clip_107/loops=false +animation/clip_108/name="" +animation/clip_108/start_frame=0 +animation/clip_108/end_frame=0 +animation/clip_108/loops=false +animation/clip_109/name="" +animation/clip_109/start_frame=0 +animation/clip_109/end_frame=0 +animation/clip_109/loops=false +animation/clip_110/name="" +animation/clip_110/start_frame=0 +animation/clip_110/end_frame=0 +animation/clip_110/loops=false +animation/clip_111/name="" +animation/clip_111/start_frame=0 +animation/clip_111/end_frame=0 +animation/clip_111/loops=false +animation/clip_112/name="" +animation/clip_112/start_frame=0 +animation/clip_112/end_frame=0 +animation/clip_112/loops=false +animation/clip_113/name="" +animation/clip_113/start_frame=0 +animation/clip_113/end_frame=0 +animation/clip_113/loops=false +animation/clip_114/name="" +animation/clip_114/start_frame=0 +animation/clip_114/end_frame=0 +animation/clip_114/loops=false +animation/clip_115/name="" +animation/clip_115/start_frame=0 +animation/clip_115/end_frame=0 +animation/clip_115/loops=false +animation/clip_116/name="" +animation/clip_116/start_frame=0 +animation/clip_116/end_frame=0 +animation/clip_116/loops=false +animation/clip_117/name="" +animation/clip_117/start_frame=0 +animation/clip_117/end_frame=0 +animation/clip_117/loops=false +animation/clip_118/name="" +animation/clip_118/start_frame=0 +animation/clip_118/end_frame=0 +animation/clip_118/loops=false +animation/clip_119/name="" +animation/clip_119/start_frame=0 +animation/clip_119/end_frame=0 +animation/clip_119/loops=false +animation/clip_120/name="" +animation/clip_120/start_frame=0 +animation/clip_120/end_frame=0 +animation/clip_120/loops=false +animation/clip_121/name="" +animation/clip_121/start_frame=0 +animation/clip_121/end_frame=0 +animation/clip_121/loops=false +animation/clip_122/name="" +animation/clip_122/start_frame=0 +animation/clip_122/end_frame=0 +animation/clip_122/loops=false +animation/clip_123/name="" +animation/clip_123/start_frame=0 +animation/clip_123/end_frame=0 +animation/clip_123/loops=false +animation/clip_124/name="" +animation/clip_124/start_frame=0 +animation/clip_124/end_frame=0 +animation/clip_124/loops=false +animation/clip_125/name="" +animation/clip_125/start_frame=0 +animation/clip_125/end_frame=0 +animation/clip_125/loops=false +animation/clip_126/name="" +animation/clip_126/start_frame=0 +animation/clip_126/end_frame=0 +animation/clip_126/loops=false +animation/clip_127/name="" +animation/clip_127/start_frame=0 +animation/clip_127/end_frame=0 +animation/clip_127/loops=false +animation/clip_128/name="" +animation/clip_128/start_frame=0 +animation/clip_128/end_frame=0 +animation/clip_128/loops=false +animation/clip_129/name="" +animation/clip_129/start_frame=0 +animation/clip_129/end_frame=0 +animation/clip_129/loops=false +animation/clip_130/name="" +animation/clip_130/start_frame=0 +animation/clip_130/end_frame=0 +animation/clip_130/loops=false +animation/clip_131/name="" +animation/clip_131/start_frame=0 +animation/clip_131/end_frame=0 +animation/clip_131/loops=false +animation/clip_132/name="" +animation/clip_132/start_frame=0 +animation/clip_132/end_frame=0 +animation/clip_132/loops=false +animation/clip_133/name="" +animation/clip_133/start_frame=0 +animation/clip_133/end_frame=0 +animation/clip_133/loops=false +animation/clip_134/name="" +animation/clip_134/start_frame=0 +animation/clip_134/end_frame=0 +animation/clip_134/loops=false +animation/clip_135/name="" +animation/clip_135/start_frame=0 +animation/clip_135/end_frame=0 +animation/clip_135/loops=false +animation/clip_136/name="" +animation/clip_136/start_frame=0 +animation/clip_136/end_frame=0 +animation/clip_136/loops=false +animation/clip_137/name="" +animation/clip_137/start_frame=0 +animation/clip_137/end_frame=0 +animation/clip_137/loops=false +animation/clip_138/name="" +animation/clip_138/start_frame=0 +animation/clip_138/end_frame=0 +animation/clip_138/loops=false +animation/clip_139/name="" +animation/clip_139/start_frame=0 +animation/clip_139/end_frame=0 +animation/clip_139/loops=false +animation/clip_140/name="" +animation/clip_140/start_frame=0 +animation/clip_140/end_frame=0 +animation/clip_140/loops=false +animation/clip_141/name="" +animation/clip_141/start_frame=0 +animation/clip_141/end_frame=0 +animation/clip_141/loops=false +animation/clip_142/name="" +animation/clip_142/start_frame=0 +animation/clip_142/end_frame=0 +animation/clip_142/loops=false +animation/clip_143/name="" +animation/clip_143/start_frame=0 +animation/clip_143/end_frame=0 +animation/clip_143/loops=false +animation/clip_144/name="" +animation/clip_144/start_frame=0 +animation/clip_144/end_frame=0 +animation/clip_144/loops=false +animation/clip_145/name="" +animation/clip_145/start_frame=0 +animation/clip_145/end_frame=0 +animation/clip_145/loops=false +animation/clip_146/name="" +animation/clip_146/start_frame=0 +animation/clip_146/end_frame=0 +animation/clip_146/loops=false +animation/clip_147/name="" +animation/clip_147/start_frame=0 +animation/clip_147/end_frame=0 +animation/clip_147/loops=false +animation/clip_148/name="" +animation/clip_148/start_frame=0 +animation/clip_148/end_frame=0 +animation/clip_148/loops=false +animation/clip_149/name="" +animation/clip_149/start_frame=0 +animation/clip_149/end_frame=0 +animation/clip_149/loops=false +animation/clip_150/name="" +animation/clip_150/start_frame=0 +animation/clip_150/end_frame=0 +animation/clip_150/loops=false +animation/clip_151/name="" +animation/clip_151/start_frame=0 +animation/clip_151/end_frame=0 +animation/clip_151/loops=false +animation/clip_152/name="" +animation/clip_152/start_frame=0 +animation/clip_152/end_frame=0 +animation/clip_152/loops=false +animation/clip_153/name="" +animation/clip_153/start_frame=0 +animation/clip_153/end_frame=0 +animation/clip_153/loops=false +animation/clip_154/name="" +animation/clip_154/start_frame=0 +animation/clip_154/end_frame=0 +animation/clip_154/loops=false +animation/clip_155/name="" +animation/clip_155/start_frame=0 +animation/clip_155/end_frame=0 +animation/clip_155/loops=false +animation/clip_156/name="" +animation/clip_156/start_frame=0 +animation/clip_156/end_frame=0 +animation/clip_156/loops=false +animation/clip_157/name="" +animation/clip_157/start_frame=0 +animation/clip_157/end_frame=0 +animation/clip_157/loops=false +animation/clip_158/name="" +animation/clip_158/start_frame=0 +animation/clip_158/end_frame=0 +animation/clip_158/loops=false +animation/clip_159/name="" +animation/clip_159/start_frame=0 +animation/clip_159/end_frame=0 +animation/clip_159/loops=false +animation/clip_160/name="" +animation/clip_160/start_frame=0 +animation/clip_160/end_frame=0 +animation/clip_160/loops=false +animation/clip_161/name="" +animation/clip_161/start_frame=0 +animation/clip_161/end_frame=0 +animation/clip_161/loops=false +animation/clip_162/name="" +animation/clip_162/start_frame=0 +animation/clip_162/end_frame=0 +animation/clip_162/loops=false +animation/clip_163/name="" +animation/clip_163/start_frame=0 +animation/clip_163/end_frame=0 +animation/clip_163/loops=false +animation/clip_164/name="" +animation/clip_164/start_frame=0 +animation/clip_164/end_frame=0 +animation/clip_164/loops=false +animation/clip_165/name="" +animation/clip_165/start_frame=0 +animation/clip_165/end_frame=0 +animation/clip_165/loops=false +animation/clip_166/name="" +animation/clip_166/start_frame=0 +animation/clip_166/end_frame=0 +animation/clip_166/loops=false +animation/clip_167/name="" +animation/clip_167/start_frame=0 +animation/clip_167/end_frame=0 +animation/clip_167/loops=false +animation/clip_168/name="" +animation/clip_168/start_frame=0 +animation/clip_168/end_frame=0 +animation/clip_168/loops=false +animation/clip_169/name="" +animation/clip_169/start_frame=0 +animation/clip_169/end_frame=0 +animation/clip_169/loops=false +animation/clip_170/name="" +animation/clip_170/start_frame=0 +animation/clip_170/end_frame=0 +animation/clip_170/loops=false +animation/clip_171/name="" +animation/clip_171/start_frame=0 +animation/clip_171/end_frame=0 +animation/clip_171/loops=false +animation/clip_172/name="" +animation/clip_172/start_frame=0 +animation/clip_172/end_frame=0 +animation/clip_172/loops=false +animation/clip_173/name="" +animation/clip_173/start_frame=0 +animation/clip_173/end_frame=0 +animation/clip_173/loops=false +animation/clip_174/name="" +animation/clip_174/start_frame=0 +animation/clip_174/end_frame=0 +animation/clip_174/loops=false +animation/clip_175/name="" +animation/clip_175/start_frame=0 +animation/clip_175/end_frame=0 +animation/clip_175/loops=false +animation/clip_176/name="" +animation/clip_176/start_frame=0 +animation/clip_176/end_frame=0 +animation/clip_176/loops=false +animation/clip_177/name="" +animation/clip_177/start_frame=0 +animation/clip_177/end_frame=0 +animation/clip_177/loops=false +animation/clip_178/name="" +animation/clip_178/start_frame=0 +animation/clip_178/end_frame=0 +animation/clip_178/loops=false +animation/clip_179/name="" +animation/clip_179/start_frame=0 +animation/clip_179/end_frame=0 +animation/clip_179/loops=false +animation/clip_180/name="" +animation/clip_180/start_frame=0 +animation/clip_180/end_frame=0 +animation/clip_180/loops=false +animation/clip_181/name="" +animation/clip_181/start_frame=0 +animation/clip_181/end_frame=0 +animation/clip_181/loops=false +animation/clip_182/name="" +animation/clip_182/start_frame=0 +animation/clip_182/end_frame=0 +animation/clip_182/loops=false +animation/clip_183/name="" +animation/clip_183/start_frame=0 +animation/clip_183/end_frame=0 +animation/clip_183/loops=false +animation/clip_184/name="" +animation/clip_184/start_frame=0 +animation/clip_184/end_frame=0 +animation/clip_184/loops=false +animation/clip_185/name="" +animation/clip_185/start_frame=0 +animation/clip_185/end_frame=0 +animation/clip_185/loops=false +animation/clip_186/name="" +animation/clip_186/start_frame=0 +animation/clip_186/end_frame=0 +animation/clip_186/loops=false +animation/clip_187/name="" +animation/clip_187/start_frame=0 +animation/clip_187/end_frame=0 +animation/clip_187/loops=false +animation/clip_188/name="" +animation/clip_188/start_frame=0 +animation/clip_188/end_frame=0 +animation/clip_188/loops=false +animation/clip_189/name="" +animation/clip_189/start_frame=0 +animation/clip_189/end_frame=0 +animation/clip_189/loops=false +animation/clip_190/name="" +animation/clip_190/start_frame=0 +animation/clip_190/end_frame=0 +animation/clip_190/loops=false +animation/clip_191/name="" +animation/clip_191/start_frame=0 +animation/clip_191/end_frame=0 +animation/clip_191/loops=false +animation/clip_192/name="" +animation/clip_192/start_frame=0 +animation/clip_192/end_frame=0 +animation/clip_192/loops=false +animation/clip_193/name="" +animation/clip_193/start_frame=0 +animation/clip_193/end_frame=0 +animation/clip_193/loops=false +animation/clip_194/name="" +animation/clip_194/start_frame=0 +animation/clip_194/end_frame=0 +animation/clip_194/loops=false +animation/clip_195/name="" +animation/clip_195/start_frame=0 +animation/clip_195/end_frame=0 +animation/clip_195/loops=false +animation/clip_196/name="" +animation/clip_196/start_frame=0 +animation/clip_196/end_frame=0 +animation/clip_196/loops=false +animation/clip_197/name="" +animation/clip_197/start_frame=0 +animation/clip_197/end_frame=0 +animation/clip_197/loops=false +animation/clip_198/name="" +animation/clip_198/start_frame=0 +animation/clip_198/end_frame=0 +animation/clip_198/loops=false +animation/clip_199/name="" +animation/clip_199/start_frame=0 +animation/clip_199/end_frame=0 +animation/clip_199/loops=false +animation/clip_200/name="" +animation/clip_200/start_frame=0 +animation/clip_200/end_frame=0 +animation/clip_200/loops=false +animation/clip_201/name="" +animation/clip_201/start_frame=0 +animation/clip_201/end_frame=0 +animation/clip_201/loops=false +animation/clip_202/name="" +animation/clip_202/start_frame=0 +animation/clip_202/end_frame=0 +animation/clip_202/loops=false +animation/clip_203/name="" +animation/clip_203/start_frame=0 +animation/clip_203/end_frame=0 +animation/clip_203/loops=false +animation/clip_204/name="" +animation/clip_204/start_frame=0 +animation/clip_204/end_frame=0 +animation/clip_204/loops=false +animation/clip_205/name="" +animation/clip_205/start_frame=0 +animation/clip_205/end_frame=0 +animation/clip_205/loops=false +animation/clip_206/name="" +animation/clip_206/start_frame=0 +animation/clip_206/end_frame=0 +animation/clip_206/loops=false +animation/clip_207/name="" +animation/clip_207/start_frame=0 +animation/clip_207/end_frame=0 +animation/clip_207/loops=false +animation/clip_208/name="" +animation/clip_208/start_frame=0 +animation/clip_208/end_frame=0 +animation/clip_208/loops=false +animation/clip_209/name="" +animation/clip_209/start_frame=0 +animation/clip_209/end_frame=0 +animation/clip_209/loops=false +animation/clip_210/name="" +animation/clip_210/start_frame=0 +animation/clip_210/end_frame=0 +animation/clip_210/loops=false +animation/clip_211/name="" +animation/clip_211/start_frame=0 +animation/clip_211/end_frame=0 +animation/clip_211/loops=false +animation/clip_212/name="" +animation/clip_212/start_frame=0 +animation/clip_212/end_frame=0 +animation/clip_212/loops=false +animation/clip_213/name="" +animation/clip_213/start_frame=0 +animation/clip_213/end_frame=0 +animation/clip_213/loops=false +animation/clip_214/name="" +animation/clip_214/start_frame=0 +animation/clip_214/end_frame=0 +animation/clip_214/loops=false +animation/clip_215/name="" +animation/clip_215/start_frame=0 +animation/clip_215/end_frame=0 +animation/clip_215/loops=false +animation/clip_216/name="" +animation/clip_216/start_frame=0 +animation/clip_216/end_frame=0 +animation/clip_216/loops=false +animation/clip_217/name="" +animation/clip_217/start_frame=0 +animation/clip_217/end_frame=0 +animation/clip_217/loops=false +animation/clip_218/name="" +animation/clip_218/start_frame=0 +animation/clip_218/end_frame=0 +animation/clip_218/loops=false +animation/clip_219/name="" +animation/clip_219/start_frame=0 +animation/clip_219/end_frame=0 +animation/clip_219/loops=false +animation/clip_220/name="" +animation/clip_220/start_frame=0 +animation/clip_220/end_frame=0 +animation/clip_220/loops=false +animation/clip_221/name="" +animation/clip_221/start_frame=0 +animation/clip_221/end_frame=0 +animation/clip_221/loops=false +animation/clip_222/name="" +animation/clip_222/start_frame=0 +animation/clip_222/end_frame=0 +animation/clip_222/loops=false +animation/clip_223/name="" +animation/clip_223/start_frame=0 +animation/clip_223/end_frame=0 +animation/clip_223/loops=false +animation/clip_224/name="" +animation/clip_224/start_frame=0 +animation/clip_224/end_frame=0 +animation/clip_224/loops=false +animation/clip_225/name="" +animation/clip_225/start_frame=0 +animation/clip_225/end_frame=0 +animation/clip_225/loops=false +animation/clip_226/name="" +animation/clip_226/start_frame=0 +animation/clip_226/end_frame=0 +animation/clip_226/loops=false +animation/clip_227/name="" +animation/clip_227/start_frame=0 +animation/clip_227/end_frame=0 +animation/clip_227/loops=false +animation/clip_228/name="" +animation/clip_228/start_frame=0 +animation/clip_228/end_frame=0 +animation/clip_228/loops=false +animation/clip_229/name="" +animation/clip_229/start_frame=0 +animation/clip_229/end_frame=0 +animation/clip_229/loops=false +animation/clip_230/name="" +animation/clip_230/start_frame=0 +animation/clip_230/end_frame=0 +animation/clip_230/loops=false +animation/clip_231/name="" +animation/clip_231/start_frame=0 +animation/clip_231/end_frame=0 +animation/clip_231/loops=false +animation/clip_232/name="" +animation/clip_232/start_frame=0 +animation/clip_232/end_frame=0 +animation/clip_232/loops=false +animation/clip_233/name="" +animation/clip_233/start_frame=0 +animation/clip_233/end_frame=0 +animation/clip_233/loops=false +animation/clip_234/name="" +animation/clip_234/start_frame=0 +animation/clip_234/end_frame=0 +animation/clip_234/loops=false +animation/clip_235/name="" +animation/clip_235/start_frame=0 +animation/clip_235/end_frame=0 +animation/clip_235/loops=false +animation/clip_236/name="" +animation/clip_236/start_frame=0 +animation/clip_236/end_frame=0 +animation/clip_236/loops=false +animation/clip_237/name="" +animation/clip_237/start_frame=0 +animation/clip_237/end_frame=0 +animation/clip_237/loops=false +animation/clip_238/name="" +animation/clip_238/start_frame=0 +animation/clip_238/end_frame=0 +animation/clip_238/loops=false +animation/clip_239/name="" +animation/clip_239/start_frame=0 +animation/clip_239/end_frame=0 +animation/clip_239/loops=false +animation/clip_240/name="" +animation/clip_240/start_frame=0 +animation/clip_240/end_frame=0 +animation/clip_240/loops=false +animation/clip_241/name="" +animation/clip_241/start_frame=0 +animation/clip_241/end_frame=0 +animation/clip_241/loops=false +animation/clip_242/name="" +animation/clip_242/start_frame=0 +animation/clip_242/end_frame=0 +animation/clip_242/loops=false +animation/clip_243/name="" +animation/clip_243/start_frame=0 +animation/clip_243/end_frame=0 +animation/clip_243/loops=false +animation/clip_244/name="" +animation/clip_244/start_frame=0 +animation/clip_244/end_frame=0 +animation/clip_244/loops=false +animation/clip_245/name="" +animation/clip_245/start_frame=0 +animation/clip_245/end_frame=0 +animation/clip_245/loops=false +animation/clip_246/name="" +animation/clip_246/start_frame=0 +animation/clip_246/end_frame=0 +animation/clip_246/loops=false +animation/clip_247/name="" +animation/clip_247/start_frame=0 +animation/clip_247/end_frame=0 +animation/clip_247/loops=false +animation/clip_248/name="" +animation/clip_248/start_frame=0 +animation/clip_248/end_frame=0 +animation/clip_248/loops=false +animation/clip_249/name="" +animation/clip_249/start_frame=0 +animation/clip_249/end_frame=0 +animation/clip_249/loops=false +animation/clip_250/name="" +animation/clip_250/start_frame=0 +animation/clip_250/end_frame=0 +animation/clip_250/loops=false +animation/clip_251/name="" +animation/clip_251/start_frame=0 +animation/clip_251/end_frame=0 +animation/clip_251/loops=false +animation/clip_252/name="" +animation/clip_252/start_frame=0 +animation/clip_252/end_frame=0 +animation/clip_252/loops=false +animation/clip_253/name="" +animation/clip_253/start_frame=0 +animation/clip_253/end_frame=0 +animation/clip_253/loops=false +animation/clip_254/name="" +animation/clip_254/start_frame=0 +animation/clip_254/end_frame=0 +animation/clip_254/loops=false +animation/clip_255/name="" +animation/clip_255/start_frame=0 +animation/clip_255/end_frame=0 +animation/clip_255/loops=false +animation/clip_256/name="" +animation/clip_256/start_frame=0 +animation/clip_256/end_frame=0 +animation/clip_256/loops=false diff --git a/level/catalunya/map/dumb.material b/level/catalunya/map/dumb.material new file mode 100644 index 0000000..b4705f7 Binary files /dev/null and b/level/catalunya/map/dumb.material differ diff --git a/level/catalunya/scripts/football.gd b/level/catalunya/scripts/football.gd new file mode 100644 index 0000000..7358f26 --- /dev/null +++ b/level/catalunya/scripts/football.gd @@ -0,0 +1,5 @@ +extends RigidBody + +func hit(col): + apply_impulse(Vector3.ZERO, (global_transform.origin - col.position)*30) + diff --git a/level/catalunya/textures/1024px-Estelada_roja.webp b/level/catalunya/textures/1024px-Estelada_roja.webp new file mode 100644 index 0000000..01504c8 Binary files /dev/null and b/level/catalunya/textures/1024px-Estelada_roja.webp differ diff --git a/level/catalunya/textures/1024px-Estelada_roja.webp.import b/level/catalunya/textures/1024px-Estelada_roja.webp.import new file mode 100644 index 0000000..c57fba9 --- /dev/null +++ b/level/catalunya/textures/1024px-Estelada_roja.webp.import @@ -0,0 +1,36 @@ +[remap] + +importer="texture" +type="StreamTexture" +path.s3tc="res://.import/1024px-Estelada_roja.webp-26e9e001ca85b108c6811c2a38587354.s3tc.stex" +metadata={ +"imported_formats": [ "s3tc" ], +"vram_texture": true +} + +[deps] + +source_file="res://level/catalunya/textures/1024px-Estelada_roja.webp" +dest_files=[ "res://.import/1024px-Estelada_roja.webp-26e9e001ca85b108c6811c2a38587354.s3tc.stex" ] + +[params] + +compress/mode=2 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=true +flags/filter=true +flags/mipmaps=true +flags/anisotropic=false +flags/srgb=1 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/level/catalunya/textures/Berga_i_Serra_de_Queralt_des_de_la_Serra_de_Noet,_Catalunya,_Espanya_-_20110204.webp b/level/catalunya/textures/Berga_i_Serra_de_Queralt_des_de_la_Serra_de_Noet,_Catalunya,_Espanya_-_20110204.webp new file mode 100644 index 0000000..d51b919 Binary files /dev/null and b/level/catalunya/textures/Berga_i_Serra_de_Queralt_des_de_la_Serra_de_Noet,_Catalunya,_Espanya_-_20110204.webp differ diff --git a/level/catalunya/textures/Berga_i_Serra_de_Queralt_des_de_la_Serra_de_Noet,_Catalunya,_Espanya_-_20110204.webp.import b/level/catalunya/textures/Berga_i_Serra_de_Queralt_des_de_la_Serra_de_Noet,_Catalunya,_Espanya_-_20110204.webp.import new file mode 100644 index 0000000..f2751be --- /dev/null +++ b/level/catalunya/textures/Berga_i_Serra_de_Queralt_des_de_la_Serra_de_Noet,_Catalunya,_Espanya_-_20110204.webp.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/Berga_i_Serra_de_Queralt_des_de_la_Serra_de_Noet,_Catalunya,_Espanya_-_20110204.webp-466e280ac045f2b1566193ed8d92d7e6.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://level/catalunya/textures/Berga_i_Serra_de_Queralt_des_de_la_Serra_de_Noet,_Catalunya,_Espanya_-_20110204.webp" +dest_files=[ "res://.import/Berga_i_Serra_de_Queralt_des_de_la_Serra_de_Noet,_Catalunya,_Espanya_-_20110204.webp-466e280ac045f2b1566193ed8d92d7e6.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/level/catalunya/textures/Stone_panels_01_ambientocclusion.webp b/level/catalunya/textures/Stone_panels_01_ambientocclusion.webp new file mode 100644 index 0000000..36ef704 Binary files /dev/null and b/level/catalunya/textures/Stone_panels_01_ambientocclusion.webp differ diff --git a/level/catalunya/textures/Stone_panels_01_ambientocclusion.webp.import b/level/catalunya/textures/Stone_panels_01_ambientocclusion.webp.import new file mode 100644 index 0000000..ac2be5e --- /dev/null +++ b/level/catalunya/textures/Stone_panels_01_ambientocclusion.webp.import @@ -0,0 +1,36 @@ +[remap] + +importer="texture" +type="StreamTexture" +path.s3tc="res://.import/Stone_panels_01_ambientocclusion.webp-7ea9d046e9d1665c5eff45a09b19927d.s3tc.stex" +metadata={ +"imported_formats": [ "s3tc" ], +"vram_texture": true +} + +[deps] + +source_file="res://level/catalunya/textures/Stone_panels_01_ambientocclusion.webp" +dest_files=[ "res://.import/Stone_panels_01_ambientocclusion.webp-7ea9d046e9d1665c5eff45a09b19927d.s3tc.stex" ] + +[params] + +compress/mode=2 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=1 +flags/repeat=true +flags/filter=true +flags/mipmaps=true +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/level/catalunya/textures/Stone_panels_01_basecolor.webp b/level/catalunya/textures/Stone_panels_01_basecolor.webp new file mode 100644 index 0000000..499c9ab Binary files /dev/null and b/level/catalunya/textures/Stone_panels_01_basecolor.webp differ diff --git a/level/catalunya/textures/Stone_panels_01_basecolor.webp.import b/level/catalunya/textures/Stone_panels_01_basecolor.webp.import new file mode 100644 index 0000000..313b423 --- /dev/null +++ b/level/catalunya/textures/Stone_panels_01_basecolor.webp.import @@ -0,0 +1,36 @@ +[remap] + +importer="texture" +type="StreamTexture" +path.s3tc="res://.import/Stone_panels_01_basecolor.webp-d3c4652bd3d1606301579bffbb7e4957.s3tc.stex" +metadata={ +"imported_formats": [ "s3tc" ], +"vram_texture": true +} + +[deps] + +source_file="res://level/catalunya/textures/Stone_panels_01_basecolor.webp" +dest_files=[ "res://.import/Stone_panels_01_basecolor.webp-d3c4652bd3d1606301579bffbb7e4957.s3tc.stex" ] + +[params] + +compress/mode=2 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=true +flags/filter=true +flags/mipmaps=true +flags/anisotropic=false +flags/srgb=1 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/level/catalunya/textures/Stone_panels_01_normal.webp b/level/catalunya/textures/Stone_panels_01_normal.webp new file mode 100644 index 0000000..6b47cc1 Binary files /dev/null and b/level/catalunya/textures/Stone_panels_01_normal.webp differ diff --git a/level/catalunya/textures/Stone_panels_01_normal.webp.import b/level/catalunya/textures/Stone_panels_01_normal.webp.import new file mode 100644 index 0000000..91d3ba5 --- /dev/null +++ b/level/catalunya/textures/Stone_panels_01_normal.webp.import @@ -0,0 +1,36 @@ +[remap] + +importer="texture" +type="StreamTexture" +path.s3tc="res://.import/Stone_panels_01_normal.webp-2729858e0efb530bba4518ba8292ee0c.s3tc.stex" +metadata={ +"imported_formats": [ "s3tc" ], +"vram_texture": true +} + +[deps] + +source_file="res://level/catalunya/textures/Stone_panels_01_normal.webp" +dest_files=[ "res://.import/Stone_panels_01_normal.webp-2729858e0efb530bba4518ba8292ee0c.s3tc.stex" ] + +[params] + +compress/mode=2 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=1 +flags/repeat=true +flags/filter=true +flags/mipmaps=true +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/level/catalunya/textures/Stylized_13_RoofSquare_ambientocclusion.webp b/level/catalunya/textures/Stylized_13_RoofSquare_ambientocclusion.webp new file mode 100644 index 0000000..c577785 Binary files /dev/null and b/level/catalunya/textures/Stylized_13_RoofSquare_ambientocclusion.webp differ diff --git a/level/catalunya/textures/Stylized_13_RoofSquare_ambientocclusion.webp.import b/level/catalunya/textures/Stylized_13_RoofSquare_ambientocclusion.webp.import new file mode 100644 index 0000000..b7e4655 --- /dev/null +++ b/level/catalunya/textures/Stylized_13_RoofSquare_ambientocclusion.webp.import @@ -0,0 +1,36 @@ +[remap] + +importer="texture" +type="StreamTexture" +path.s3tc="res://.import/Stylized_13_RoofSquare_ambientocclusion.webp-36e9c69423b68b2e938359d612bae978.s3tc.stex" +metadata={ +"imported_formats": [ "s3tc" ], +"vram_texture": true +} + +[deps] + +source_file="res://level/catalunya/textures/Stylized_13_RoofSquare_ambientocclusion.webp" +dest_files=[ "res://.import/Stylized_13_RoofSquare_ambientocclusion.webp-36e9c69423b68b2e938359d612bae978.s3tc.stex" ] + +[params] + +compress/mode=2 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=1 +flags/repeat=true +flags/filter=true +flags/mipmaps=true +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/level/catalunya/textures/Stylized_13_RoofSquare_basecolor.webp b/level/catalunya/textures/Stylized_13_RoofSquare_basecolor.webp new file mode 100644 index 0000000..f9df7e2 Binary files /dev/null and b/level/catalunya/textures/Stylized_13_RoofSquare_basecolor.webp differ diff --git a/level/catalunya/textures/Stylized_13_RoofSquare_basecolor.webp.import b/level/catalunya/textures/Stylized_13_RoofSquare_basecolor.webp.import new file mode 100644 index 0000000..6b01df0 --- /dev/null +++ b/level/catalunya/textures/Stylized_13_RoofSquare_basecolor.webp.import @@ -0,0 +1,36 @@ +[remap] + +importer="texture" +type="StreamTexture" +path.s3tc="res://.import/Stylized_13_RoofSquare_basecolor.webp-5728cb8c27b6b20ee10f448297fb94f4.s3tc.stex" +metadata={ +"imported_formats": [ "s3tc" ], +"vram_texture": true +} + +[deps] + +source_file="res://level/catalunya/textures/Stylized_13_RoofSquare_basecolor.webp" +dest_files=[ "res://.import/Stylized_13_RoofSquare_basecolor.webp-5728cb8c27b6b20ee10f448297fb94f4.s3tc.stex" ] + +[params] + +compress/mode=2 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=true +flags/filter=true +flags/mipmaps=true +flags/anisotropic=false +flags/srgb=1 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/level/catalunya/textures/Stylized_13_RoofSquare_normal.webp b/level/catalunya/textures/Stylized_13_RoofSquare_normal.webp new file mode 100644 index 0000000..6482dd4 Binary files /dev/null and b/level/catalunya/textures/Stylized_13_RoofSquare_normal.webp differ diff --git a/level/catalunya/textures/Stylized_13_RoofSquare_normal.webp.import b/level/catalunya/textures/Stylized_13_RoofSquare_normal.webp.import new file mode 100644 index 0000000..1e55755 --- /dev/null +++ b/level/catalunya/textures/Stylized_13_RoofSquare_normal.webp.import @@ -0,0 +1,36 @@ +[remap] + +importer="texture" +type="StreamTexture" +path.s3tc="res://.import/Stylized_13_RoofSquare_normal.webp-eb581df5a82f509ecfb78009c00af94c.s3tc.stex" +metadata={ +"imported_formats": [ "s3tc" ], +"vram_texture": true +} + +[deps] + +source_file="res://level/catalunya/textures/Stylized_13_RoofSquare_normal.webp" +dest_files=[ "res://.import/Stylized_13_RoofSquare_normal.webp-eb581df5a82f509ecfb78009c00af94c.s3tc.stex" ] + +[params] + +compress/mode=2 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=1 +flags/repeat=true +flags/filter=true +flags/mipmaps=true +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/level/catalunya/textures/Stylized_13_RoofSquare_roughness.webp b/level/catalunya/textures/Stylized_13_RoofSquare_roughness.webp new file mode 100644 index 0000000..dde49b1 Binary files /dev/null and b/level/catalunya/textures/Stylized_13_RoofSquare_roughness.webp differ diff --git a/level/catalunya/textures/Stylized_13_RoofSquare_roughness.webp.import b/level/catalunya/textures/Stylized_13_RoofSquare_roughness.webp.import new file mode 100644 index 0000000..d36b898 --- /dev/null +++ b/level/catalunya/textures/Stylized_13_RoofSquare_roughness.webp.import @@ -0,0 +1,36 @@ +[remap] + +importer="texture" +type="StreamTexture" +path.s3tc="res://.import/Stylized_13_RoofSquare_roughness.webp-4096775bdff7b940f3e2d508eb8e515f.s3tc.stex" +metadata={ +"imported_formats": [ "s3tc" ], +"vram_texture": true +} + +[deps] + +source_file="res://level/catalunya/textures/Stylized_13_RoofSquare_roughness.webp" +dest_files=[ "res://.import/Stylized_13_RoofSquare_roughness.webp-4096775bdff7b940f3e2d508eb8e515f.s3tc.stex" ] + +[params] + +compress/mode=2 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=true +flags/filter=true +flags/mipmaps=true +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/level/catalunya/textures/Stylized_15_Grass_ambientocclusion.webp b/level/catalunya/textures/Stylized_15_Grass_ambientocclusion.webp new file mode 100644 index 0000000..4fa233b Binary files /dev/null and b/level/catalunya/textures/Stylized_15_Grass_ambientocclusion.webp differ diff --git a/level/catalunya/textures/Stylized_15_Grass_ambientocclusion.webp.import b/level/catalunya/textures/Stylized_15_Grass_ambientocclusion.webp.import new file mode 100644 index 0000000..4cfc7cc --- /dev/null +++ b/level/catalunya/textures/Stylized_15_Grass_ambientocclusion.webp.import @@ -0,0 +1,36 @@ +[remap] + +importer="texture" +type="StreamTexture" +path.s3tc="res://.import/Stylized_15_Grass_ambientocclusion.webp-e9f7b8e72594101fd54530268d2bbc0a.s3tc.stex" +metadata={ +"imported_formats": [ "s3tc" ], +"vram_texture": true +} + +[deps] + +source_file="res://level/catalunya/textures/Stylized_15_Grass_ambientocclusion.webp" +dest_files=[ "res://.import/Stylized_15_Grass_ambientocclusion.webp-e9f7b8e72594101fd54530268d2bbc0a.s3tc.stex" ] + +[params] + +compress/mode=2 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=true +flags/filter=true +flags/mipmaps=true +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/level/catalunya/textures/Stylized_15_Grass_basecolor.webp b/level/catalunya/textures/Stylized_15_Grass_basecolor.webp new file mode 100644 index 0000000..3b65610 Binary files /dev/null and b/level/catalunya/textures/Stylized_15_Grass_basecolor.webp differ diff --git a/level/catalunya/textures/Stylized_15_Grass_basecolor.webp.import b/level/catalunya/textures/Stylized_15_Grass_basecolor.webp.import new file mode 100644 index 0000000..508ce53 --- /dev/null +++ b/level/catalunya/textures/Stylized_15_Grass_basecolor.webp.import @@ -0,0 +1,36 @@ +[remap] + +importer="texture" +type="StreamTexture" +path.s3tc="res://.import/Stylized_15_Grass_basecolor.webp-be408046b20ceb8a2049d441255a06c5.s3tc.stex" +metadata={ +"imported_formats": [ "s3tc" ], +"vram_texture": true +} + +[deps] + +source_file="res://level/catalunya/textures/Stylized_15_Grass_basecolor.webp" +dest_files=[ "res://.import/Stylized_15_Grass_basecolor.webp-be408046b20ceb8a2049d441255a06c5.s3tc.stex" ] + +[params] + +compress/mode=2 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=true +flags/filter=true +flags/mipmaps=true +flags/anisotropic=false +flags/srgb=1 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/level/catalunya/textures/Stylized_15_Grass_height.webp b/level/catalunya/textures/Stylized_15_Grass_height.webp new file mode 100644 index 0000000..cc6bf9e Binary files /dev/null and b/level/catalunya/textures/Stylized_15_Grass_height.webp differ diff --git a/level/catalunya/textures/Stylized_15_Grass_height.webp.import b/level/catalunya/textures/Stylized_15_Grass_height.webp.import new file mode 100644 index 0000000..a24cb87 --- /dev/null +++ b/level/catalunya/textures/Stylized_15_Grass_height.webp.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/Stylized_15_Grass_height.webp-3c217b87f6a29cc24c5034ced4784b52.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://level/catalunya/textures/Stylized_15_Grass_height.webp" +dest_files=[ "res://.import/Stylized_15_Grass_height.webp-3c217b87f6a29cc24c5034ced4784b52.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/level/catalunya/textures/Stylized_15_Grass_normal.webp b/level/catalunya/textures/Stylized_15_Grass_normal.webp new file mode 100644 index 0000000..98bb5f5 Binary files /dev/null and b/level/catalunya/textures/Stylized_15_Grass_normal.webp differ diff --git a/level/catalunya/textures/Stylized_15_Grass_normal.webp.import b/level/catalunya/textures/Stylized_15_Grass_normal.webp.import new file mode 100644 index 0000000..379a9e5 --- /dev/null +++ b/level/catalunya/textures/Stylized_15_Grass_normal.webp.import @@ -0,0 +1,36 @@ +[remap] + +importer="texture" +type="StreamTexture" +path.s3tc="res://.import/Stylized_15_Grass_normal.webp-7ef8b95b4427d059bc81fd66454b524b.s3tc.stex" +metadata={ +"imported_formats": [ "s3tc" ], +"vram_texture": true +} + +[deps] + +source_file="res://level/catalunya/textures/Stylized_15_Grass_normal.webp" +dest_files=[ "res://.import/Stylized_15_Grass_normal.webp-7ef8b95b4427d059bc81fd66454b524b.s3tc.stex" ] + +[params] + +compress/mode=2 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=1 +flags/repeat=true +flags/filter=true +flags/mipmaps=true +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/level/catalunya/textures/grass_dry.tres b/level/catalunya/textures/grass_dry.tres new file mode 100644 index 0000000..9d9f6b1 --- /dev/null +++ b/level/catalunya/textures/grass_dry.tres @@ -0,0 +1,17 @@ +[gd_resource type="SpatialMaterial" load_steps=4 format=2] + +[ext_resource path="res://level/catalunya/textures/Stylized_15_Grass_normal.webp" type="Texture" id=1] +[ext_resource path="res://level/catalunya/textures/Stylized_15_Grass_basecolor.webp" type="Texture" id=2] +[ext_resource path="res://level/catalunya/textures/Stylized_15_Grass_ambientocclusion.webp" type="Texture" id=3] + +[resource] +albedo_color = Color( 0.443137, 0.447059, 0.427451, 1 ) +albedo_texture = ExtResource( 2 ) +normal_enabled = true +normal_scale = -7.23 +normal_texture = ExtResource( 1 ) +ao_enabled = true +ao_light_affect = 0.82 +ao_texture = ExtResource( 3 ) +ao_on_uv2 = false +ao_texture_channel = 0 diff --git a/level/catalunya/textures/ivy_leaves_base.webp b/level/catalunya/textures/ivy_leaves_base.webp new file mode 100644 index 0000000..fb294a7 Binary files /dev/null and b/level/catalunya/textures/ivy_leaves_base.webp differ diff --git a/level/catalunya/textures/ivy_leaves_base.webp.import b/level/catalunya/textures/ivy_leaves_base.webp.import new file mode 100644 index 0000000..810a752 --- /dev/null +++ b/level/catalunya/textures/ivy_leaves_base.webp.import @@ -0,0 +1,36 @@ +[remap] + +importer="texture" +type="StreamTexture" +path.s3tc="res://.import/ivy_leaves_base.webp-b3f2188739d00893f2cdb864d89db80b.s3tc.stex" +metadata={ +"imported_formats": [ "s3tc" ], +"vram_texture": true +} + +[deps] + +source_file="res://level/catalunya/textures/ivy_leaves_base.webp" +dest_files=[ "res://.import/ivy_leaves_base.webp-b3f2188739d00893f2cdb864d89db80b.s3tc.stex" ] + +[params] + +compress/mode=2 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=true +flags/filter=true +flags/mipmaps=true +flags/anisotropic=false +flags/srgb=1 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/level/catalunya/textures/ivy_leaves_n.webp b/level/catalunya/textures/ivy_leaves_n.webp new file mode 100644 index 0000000..9aefe9c Binary files /dev/null and b/level/catalunya/textures/ivy_leaves_n.webp differ diff --git a/level/catalunya/textures/ivy_leaves_n.webp.import b/level/catalunya/textures/ivy_leaves_n.webp.import new file mode 100644 index 0000000..52c8661 --- /dev/null +++ b/level/catalunya/textures/ivy_leaves_n.webp.import @@ -0,0 +1,36 @@ +[remap] + +importer="texture" +type="StreamTexture" +path.s3tc="res://.import/ivy_leaves_n.webp-8180780729939c6eb7870ef723dc21ff.s3tc.stex" +metadata={ +"imported_formats": [ "s3tc" ], +"vram_texture": true +} + +[deps] + +source_file="res://level/catalunya/textures/ivy_leaves_n.webp" +dest_files=[ "res://.import/ivy_leaves_n.webp-8180780729939c6eb7870ef723dc21ff.s3tc.stex" ] + +[params] + +compress/mode=2 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=1 +flags/repeat=true +flags/filter=true +flags/mipmaps=true +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/level/common/debug.gd b/level/common/debug.gd new file mode 100644 index 0000000..3882183 --- /dev/null +++ b/level/common/debug.gd @@ -0,0 +1,9 @@ +extends Label + +func _process(_delta): + if Input.is_action_just_pressed("toggle_debug"): + visible = !visible + + text = "FPS: " + str(Engine.get_frames_per_second()) + text += "\nVSync: " + ("on" if ProjectSettings.get_setting("display/window/vsync/use_vsync") else "off") + text += "\nMemory: " + "%3.2f" % (OS.get_static_memory_usage() / 1048576.0) + " MiB" diff --git a/level/common/houses_01/01.glb b/level/common/houses_01/01.glb new file mode 100644 index 0000000..1742e34 Binary files /dev/null and b/level/common/houses_01/01.glb differ diff --git a/level/common/houses_01/01.glb.import b/level/common/houses_01/01.glb.import new file mode 100644 index 0000000..4523cdc --- /dev/null +++ b/level/common/houses_01/01.glb.import @@ -0,0 +1,1065 @@ +[remap] + +importer="scene" +type="PackedScene" +path="res://.import/01.glb-91edf223b0b6da936be9beb0036a6b37.scn" + +[deps] + +source_file="res://level/common/houses_01/01.glb" +dest_files=[ "res://.import/01.glb-91edf223b0b6da936be9beb0036a6b37.scn" ] + +[params] + +nodes/root_type="Spatial" +nodes/root_name="Scene Root" +nodes/root_scale=1.0 +nodes/custom_script="" +nodes/storage=0 +nodes/use_legacy_names=false +materials/location=1 +materials/storage=1 +materials/keep_on_reimport=true +meshes/octahedral_compression=true +meshes/compress=4286 +meshes/ensure_tangents=true +meshes/storage=0 +meshes/light_baking=0 +meshes/lightmap_texel_size=0.1 +skins/use_named_skins=true +external_files/store_in_subdir=false +animation/import=true +animation/fps=15 +animation/filter_script="" +animation/storage=false +animation/keep_custom_tracks=false +animation/optimizer/enabled=true +animation/optimizer/max_linear_error=0.05 +animation/optimizer/max_angular_error=0.01 +animation/optimizer/max_angle=22 +animation/optimizer/remove_unused_tracks=true +animation/clips/amount=0 +animation/clip_1/name="" +animation/clip_1/start_frame=0 +animation/clip_1/end_frame=0 +animation/clip_1/loops=false +animation/clip_2/name="" +animation/clip_2/start_frame=0 +animation/clip_2/end_frame=0 +animation/clip_2/loops=false +animation/clip_3/name="" +animation/clip_3/start_frame=0 +animation/clip_3/end_frame=0 +animation/clip_3/loops=false +animation/clip_4/name="" +animation/clip_4/start_frame=0 +animation/clip_4/end_frame=0 +animation/clip_4/loops=false +animation/clip_5/name="" +animation/clip_5/start_frame=0 +animation/clip_5/end_frame=0 +animation/clip_5/loops=false +animation/clip_6/name="" +animation/clip_6/start_frame=0 +animation/clip_6/end_frame=0 +animation/clip_6/loops=false +animation/clip_7/name="" +animation/clip_7/start_frame=0 +animation/clip_7/end_frame=0 +animation/clip_7/loops=false +animation/clip_8/name="" +animation/clip_8/start_frame=0 +animation/clip_8/end_frame=0 +animation/clip_8/loops=false +animation/clip_9/name="" +animation/clip_9/start_frame=0 +animation/clip_9/end_frame=0 +animation/clip_9/loops=false +animation/clip_10/name="" +animation/clip_10/start_frame=0 +animation/clip_10/end_frame=0 +animation/clip_10/loops=false +animation/clip_11/name="" +animation/clip_11/start_frame=0 +animation/clip_11/end_frame=0 +animation/clip_11/loops=false +animation/clip_12/name="" +animation/clip_12/start_frame=0 +animation/clip_12/end_frame=0 +animation/clip_12/loops=false +animation/clip_13/name="" +animation/clip_13/start_frame=0 +animation/clip_13/end_frame=0 +animation/clip_13/loops=false +animation/clip_14/name="" +animation/clip_14/start_frame=0 +animation/clip_14/end_frame=0 +animation/clip_14/loops=false +animation/clip_15/name="" +animation/clip_15/start_frame=0 +animation/clip_15/end_frame=0 +animation/clip_15/loops=false +animation/clip_16/name="" +animation/clip_16/start_frame=0 +animation/clip_16/end_frame=0 +animation/clip_16/loops=false +animation/clip_17/name="" +animation/clip_17/start_frame=0 +animation/clip_17/end_frame=0 +animation/clip_17/loops=false +animation/clip_18/name="" +animation/clip_18/start_frame=0 +animation/clip_18/end_frame=0 +animation/clip_18/loops=false +animation/clip_19/name="" +animation/clip_19/start_frame=0 +animation/clip_19/end_frame=0 +animation/clip_19/loops=false +animation/clip_20/name="" +animation/clip_20/start_frame=0 +animation/clip_20/end_frame=0 +animation/clip_20/loops=false +animation/clip_21/name="" +animation/clip_21/start_frame=0 +animation/clip_21/end_frame=0 +animation/clip_21/loops=false +animation/clip_22/name="" +animation/clip_22/start_frame=0 +animation/clip_22/end_frame=0 +animation/clip_22/loops=false +animation/clip_23/name="" +animation/clip_23/start_frame=0 +animation/clip_23/end_frame=0 +animation/clip_23/loops=false +animation/clip_24/name="" +animation/clip_24/start_frame=0 +animation/clip_24/end_frame=0 +animation/clip_24/loops=false +animation/clip_25/name="" +animation/clip_25/start_frame=0 +animation/clip_25/end_frame=0 +animation/clip_25/loops=false +animation/clip_26/name="" +animation/clip_26/start_frame=0 +animation/clip_26/end_frame=0 +animation/clip_26/loops=false +animation/clip_27/name="" +animation/clip_27/start_frame=0 +animation/clip_27/end_frame=0 +animation/clip_27/loops=false +animation/clip_28/name="" +animation/clip_28/start_frame=0 +animation/clip_28/end_frame=0 +animation/clip_28/loops=false +animation/clip_29/name="" +animation/clip_29/start_frame=0 +animation/clip_29/end_frame=0 +animation/clip_29/loops=false +animation/clip_30/name="" +animation/clip_30/start_frame=0 +animation/clip_30/end_frame=0 +animation/clip_30/loops=false +animation/clip_31/name="" +animation/clip_31/start_frame=0 +animation/clip_31/end_frame=0 +animation/clip_31/loops=false +animation/clip_32/name="" +animation/clip_32/start_frame=0 +animation/clip_32/end_frame=0 +animation/clip_32/loops=false +animation/clip_33/name="" +animation/clip_33/start_frame=0 +animation/clip_33/end_frame=0 +animation/clip_33/loops=false +animation/clip_34/name="" +animation/clip_34/start_frame=0 +animation/clip_34/end_frame=0 +animation/clip_34/loops=false +animation/clip_35/name="" +animation/clip_35/start_frame=0 +animation/clip_35/end_frame=0 +animation/clip_35/loops=false +animation/clip_36/name="" +animation/clip_36/start_frame=0 +animation/clip_36/end_frame=0 +animation/clip_36/loops=false +animation/clip_37/name="" +animation/clip_37/start_frame=0 +animation/clip_37/end_frame=0 +animation/clip_37/loops=false +animation/clip_38/name="" +animation/clip_38/start_frame=0 +animation/clip_38/end_frame=0 +animation/clip_38/loops=false +animation/clip_39/name="" +animation/clip_39/start_frame=0 +animation/clip_39/end_frame=0 +animation/clip_39/loops=false +animation/clip_40/name="" +animation/clip_40/start_frame=0 +animation/clip_40/end_frame=0 +animation/clip_40/loops=false +animation/clip_41/name="" +animation/clip_41/start_frame=0 +animation/clip_41/end_frame=0 +animation/clip_41/loops=false +animation/clip_42/name="" +animation/clip_42/start_frame=0 +animation/clip_42/end_frame=0 +animation/clip_42/loops=false +animation/clip_43/name="" +animation/clip_43/start_frame=0 +animation/clip_43/end_frame=0 +animation/clip_43/loops=false +animation/clip_44/name="" +animation/clip_44/start_frame=0 +animation/clip_44/end_frame=0 +animation/clip_44/loops=false +animation/clip_45/name="" +animation/clip_45/start_frame=0 +animation/clip_45/end_frame=0 +animation/clip_45/loops=false +animation/clip_46/name="" +animation/clip_46/start_frame=0 +animation/clip_46/end_frame=0 +animation/clip_46/loops=false +animation/clip_47/name="" +animation/clip_47/start_frame=0 +animation/clip_47/end_frame=0 +animation/clip_47/loops=false +animation/clip_48/name="" +animation/clip_48/start_frame=0 +animation/clip_48/end_frame=0 +animation/clip_48/loops=false +animation/clip_49/name="" +animation/clip_49/start_frame=0 +animation/clip_49/end_frame=0 +animation/clip_49/loops=false +animation/clip_50/name="" +animation/clip_50/start_frame=0 +animation/clip_50/end_frame=0 +animation/clip_50/loops=false +animation/clip_51/name="" +animation/clip_51/start_frame=0 +animation/clip_51/end_frame=0 +animation/clip_51/loops=false +animation/clip_52/name="" +animation/clip_52/start_frame=0 +animation/clip_52/end_frame=0 +animation/clip_52/loops=false +animation/clip_53/name="" +animation/clip_53/start_frame=0 +animation/clip_53/end_frame=0 +animation/clip_53/loops=false +animation/clip_54/name="" +animation/clip_54/start_frame=0 +animation/clip_54/end_frame=0 +animation/clip_54/loops=false +animation/clip_55/name="" +animation/clip_55/start_frame=0 +animation/clip_55/end_frame=0 +animation/clip_55/loops=false +animation/clip_56/name="" +animation/clip_56/start_frame=0 +animation/clip_56/end_frame=0 +animation/clip_56/loops=false +animation/clip_57/name="" +animation/clip_57/start_frame=0 +animation/clip_57/end_frame=0 +animation/clip_57/loops=false +animation/clip_58/name="" +animation/clip_58/start_frame=0 +animation/clip_58/end_frame=0 +animation/clip_58/loops=false +animation/clip_59/name="" +animation/clip_59/start_frame=0 +animation/clip_59/end_frame=0 +animation/clip_59/loops=false +animation/clip_60/name="" +animation/clip_60/start_frame=0 +animation/clip_60/end_frame=0 +animation/clip_60/loops=false +animation/clip_61/name="" +animation/clip_61/start_frame=0 +animation/clip_61/end_frame=0 +animation/clip_61/loops=false +animation/clip_62/name="" +animation/clip_62/start_frame=0 +animation/clip_62/end_frame=0 +animation/clip_62/loops=false +animation/clip_63/name="" +animation/clip_63/start_frame=0 +animation/clip_63/end_frame=0 +animation/clip_63/loops=false +animation/clip_64/name="" +animation/clip_64/start_frame=0 +animation/clip_64/end_frame=0 +animation/clip_64/loops=false +animation/clip_65/name="" +animation/clip_65/start_frame=0 +animation/clip_65/end_frame=0 +animation/clip_65/loops=false +animation/clip_66/name="" +animation/clip_66/start_frame=0 +animation/clip_66/end_frame=0 +animation/clip_66/loops=false +animation/clip_67/name="" +animation/clip_67/start_frame=0 +animation/clip_67/end_frame=0 +animation/clip_67/loops=false +animation/clip_68/name="" +animation/clip_68/start_frame=0 +animation/clip_68/end_frame=0 +animation/clip_68/loops=false +animation/clip_69/name="" +animation/clip_69/start_frame=0 +animation/clip_69/end_frame=0 +animation/clip_69/loops=false +animation/clip_70/name="" +animation/clip_70/start_frame=0 +animation/clip_70/end_frame=0 +animation/clip_70/loops=false +animation/clip_71/name="" +animation/clip_71/start_frame=0 +animation/clip_71/end_frame=0 +animation/clip_71/loops=false +animation/clip_72/name="" +animation/clip_72/start_frame=0 +animation/clip_72/end_frame=0 +animation/clip_72/loops=false +animation/clip_73/name="" +animation/clip_73/start_frame=0 +animation/clip_73/end_frame=0 +animation/clip_73/loops=false +animation/clip_74/name="" +animation/clip_74/start_frame=0 +animation/clip_74/end_frame=0 +animation/clip_74/loops=false +animation/clip_75/name="" +animation/clip_75/start_frame=0 +animation/clip_75/end_frame=0 +animation/clip_75/loops=false +animation/clip_76/name="" +animation/clip_76/start_frame=0 +animation/clip_76/end_frame=0 +animation/clip_76/loops=false +animation/clip_77/name="" +animation/clip_77/start_frame=0 +animation/clip_77/end_frame=0 +animation/clip_77/loops=false +animation/clip_78/name="" +animation/clip_78/start_frame=0 +animation/clip_78/end_frame=0 +animation/clip_78/loops=false +animation/clip_79/name="" +animation/clip_79/start_frame=0 +animation/clip_79/end_frame=0 +animation/clip_79/loops=false +animation/clip_80/name="" +animation/clip_80/start_frame=0 +animation/clip_80/end_frame=0 +animation/clip_80/loops=false +animation/clip_81/name="" +animation/clip_81/start_frame=0 +animation/clip_81/end_frame=0 +animation/clip_81/loops=false +animation/clip_82/name="" +animation/clip_82/start_frame=0 +animation/clip_82/end_frame=0 +animation/clip_82/loops=false +animation/clip_83/name="" +animation/clip_83/start_frame=0 +animation/clip_83/end_frame=0 +animation/clip_83/loops=false +animation/clip_84/name="" +animation/clip_84/start_frame=0 +animation/clip_84/end_frame=0 +animation/clip_84/loops=false +animation/clip_85/name="" +animation/clip_85/start_frame=0 +animation/clip_85/end_frame=0 +animation/clip_85/loops=false +animation/clip_86/name="" +animation/clip_86/start_frame=0 +animation/clip_86/end_frame=0 +animation/clip_86/loops=false +animation/clip_87/name="" +animation/clip_87/start_frame=0 +animation/clip_87/end_frame=0 +animation/clip_87/loops=false +animation/clip_88/name="" +animation/clip_88/start_frame=0 +animation/clip_88/end_frame=0 +animation/clip_88/loops=false +animation/clip_89/name="" +animation/clip_89/start_frame=0 +animation/clip_89/end_frame=0 +animation/clip_89/loops=false +animation/clip_90/name="" +animation/clip_90/start_frame=0 +animation/clip_90/end_frame=0 +animation/clip_90/loops=false +animation/clip_91/name="" +animation/clip_91/start_frame=0 +animation/clip_91/end_frame=0 +animation/clip_91/loops=false +animation/clip_92/name="" +animation/clip_92/start_frame=0 +animation/clip_92/end_frame=0 +animation/clip_92/loops=false +animation/clip_93/name="" +animation/clip_93/start_frame=0 +animation/clip_93/end_frame=0 +animation/clip_93/loops=false +animation/clip_94/name="" +animation/clip_94/start_frame=0 +animation/clip_94/end_frame=0 +animation/clip_94/loops=false +animation/clip_95/name="" +animation/clip_95/start_frame=0 +animation/clip_95/end_frame=0 +animation/clip_95/loops=false +animation/clip_96/name="" +animation/clip_96/start_frame=0 +animation/clip_96/end_frame=0 +animation/clip_96/loops=false +animation/clip_97/name="" +animation/clip_97/start_frame=0 +animation/clip_97/end_frame=0 +animation/clip_97/loops=false +animation/clip_98/name="" +animation/clip_98/start_frame=0 +animation/clip_98/end_frame=0 +animation/clip_98/loops=false +animation/clip_99/name="" +animation/clip_99/start_frame=0 +animation/clip_99/end_frame=0 +animation/clip_99/loops=false +animation/clip_100/name="" +animation/clip_100/start_frame=0 +animation/clip_100/end_frame=0 +animation/clip_100/loops=false +animation/clip_101/name="" +animation/clip_101/start_frame=0 +animation/clip_101/end_frame=0 +animation/clip_101/loops=false +animation/clip_102/name="" +animation/clip_102/start_frame=0 +animation/clip_102/end_frame=0 +animation/clip_102/loops=false +animation/clip_103/name="" +animation/clip_103/start_frame=0 +animation/clip_103/end_frame=0 +animation/clip_103/loops=false +animation/clip_104/name="" +animation/clip_104/start_frame=0 +animation/clip_104/end_frame=0 +animation/clip_104/loops=false +animation/clip_105/name="" +animation/clip_105/start_frame=0 +animation/clip_105/end_frame=0 +animation/clip_105/loops=false +animation/clip_106/name="" +animation/clip_106/start_frame=0 +animation/clip_106/end_frame=0 +animation/clip_106/loops=false +animation/clip_107/name="" +animation/clip_107/start_frame=0 +animation/clip_107/end_frame=0 +animation/clip_107/loops=false +animation/clip_108/name="" +animation/clip_108/start_frame=0 +animation/clip_108/end_frame=0 +animation/clip_108/loops=false +animation/clip_109/name="" +animation/clip_109/start_frame=0 +animation/clip_109/end_frame=0 +animation/clip_109/loops=false +animation/clip_110/name="" +animation/clip_110/start_frame=0 +animation/clip_110/end_frame=0 +animation/clip_110/loops=false +animation/clip_111/name="" +animation/clip_111/start_frame=0 +animation/clip_111/end_frame=0 +animation/clip_111/loops=false +animation/clip_112/name="" +animation/clip_112/start_frame=0 +animation/clip_112/end_frame=0 +animation/clip_112/loops=false +animation/clip_113/name="" +animation/clip_113/start_frame=0 +animation/clip_113/end_frame=0 +animation/clip_113/loops=false +animation/clip_114/name="" +animation/clip_114/start_frame=0 +animation/clip_114/end_frame=0 +animation/clip_114/loops=false +animation/clip_115/name="" +animation/clip_115/start_frame=0 +animation/clip_115/end_frame=0 +animation/clip_115/loops=false +animation/clip_116/name="" +animation/clip_116/start_frame=0 +animation/clip_116/end_frame=0 +animation/clip_116/loops=false +animation/clip_117/name="" +animation/clip_117/start_frame=0 +animation/clip_117/end_frame=0 +animation/clip_117/loops=false +animation/clip_118/name="" +animation/clip_118/start_frame=0 +animation/clip_118/end_frame=0 +animation/clip_118/loops=false +animation/clip_119/name="" +animation/clip_119/start_frame=0 +animation/clip_119/end_frame=0 +animation/clip_119/loops=false +animation/clip_120/name="" +animation/clip_120/start_frame=0 +animation/clip_120/end_frame=0 +animation/clip_120/loops=false +animation/clip_121/name="" +animation/clip_121/start_frame=0 +animation/clip_121/end_frame=0 +animation/clip_121/loops=false +animation/clip_122/name="" +animation/clip_122/start_frame=0 +animation/clip_122/end_frame=0 +animation/clip_122/loops=false +animation/clip_123/name="" +animation/clip_123/start_frame=0 +animation/clip_123/end_frame=0 +animation/clip_123/loops=false +animation/clip_124/name="" +animation/clip_124/start_frame=0 +animation/clip_124/end_frame=0 +animation/clip_124/loops=false +animation/clip_125/name="" +animation/clip_125/start_frame=0 +animation/clip_125/end_frame=0 +animation/clip_125/loops=false +animation/clip_126/name="" +animation/clip_126/start_frame=0 +animation/clip_126/end_frame=0 +animation/clip_126/loops=false +animation/clip_127/name="" +animation/clip_127/start_frame=0 +animation/clip_127/end_frame=0 +animation/clip_127/loops=false +animation/clip_128/name="" +animation/clip_128/start_frame=0 +animation/clip_128/end_frame=0 +animation/clip_128/loops=false +animation/clip_129/name="" +animation/clip_129/start_frame=0 +animation/clip_129/end_frame=0 +animation/clip_129/loops=false +animation/clip_130/name="" +animation/clip_130/start_frame=0 +animation/clip_130/end_frame=0 +animation/clip_130/loops=false +animation/clip_131/name="" +animation/clip_131/start_frame=0 +animation/clip_131/end_frame=0 +animation/clip_131/loops=false +animation/clip_132/name="" +animation/clip_132/start_frame=0 +animation/clip_132/end_frame=0 +animation/clip_132/loops=false +animation/clip_133/name="" +animation/clip_133/start_frame=0 +animation/clip_133/end_frame=0 +animation/clip_133/loops=false +animation/clip_134/name="" +animation/clip_134/start_frame=0 +animation/clip_134/end_frame=0 +animation/clip_134/loops=false +animation/clip_135/name="" +animation/clip_135/start_frame=0 +animation/clip_135/end_frame=0 +animation/clip_135/loops=false +animation/clip_136/name="" +animation/clip_136/start_frame=0 +animation/clip_136/end_frame=0 +animation/clip_136/loops=false +animation/clip_137/name="" +animation/clip_137/start_frame=0 +animation/clip_137/end_frame=0 +animation/clip_137/loops=false +animation/clip_138/name="" +animation/clip_138/start_frame=0 +animation/clip_138/end_frame=0 +animation/clip_138/loops=false +animation/clip_139/name="" +animation/clip_139/start_frame=0 +animation/clip_139/end_frame=0 +animation/clip_139/loops=false +animation/clip_140/name="" +animation/clip_140/start_frame=0 +animation/clip_140/end_frame=0 +animation/clip_140/loops=false +animation/clip_141/name="" +animation/clip_141/start_frame=0 +animation/clip_141/end_frame=0 +animation/clip_141/loops=false +animation/clip_142/name="" +animation/clip_142/start_frame=0 +animation/clip_142/end_frame=0 +animation/clip_142/loops=false +animation/clip_143/name="" +animation/clip_143/start_frame=0 +animation/clip_143/end_frame=0 +animation/clip_143/loops=false +animation/clip_144/name="" +animation/clip_144/start_frame=0 +animation/clip_144/end_frame=0 +animation/clip_144/loops=false +animation/clip_145/name="" +animation/clip_145/start_frame=0 +animation/clip_145/end_frame=0 +animation/clip_145/loops=false +animation/clip_146/name="" +animation/clip_146/start_frame=0 +animation/clip_146/end_frame=0 +animation/clip_146/loops=false +animation/clip_147/name="" +animation/clip_147/start_frame=0 +animation/clip_147/end_frame=0 +animation/clip_147/loops=false +animation/clip_148/name="" +animation/clip_148/start_frame=0 +animation/clip_148/end_frame=0 +animation/clip_148/loops=false +animation/clip_149/name="" +animation/clip_149/start_frame=0 +animation/clip_149/end_frame=0 +animation/clip_149/loops=false +animation/clip_150/name="" +animation/clip_150/start_frame=0 +animation/clip_150/end_frame=0 +animation/clip_150/loops=false +animation/clip_151/name="" +animation/clip_151/start_frame=0 +animation/clip_151/end_frame=0 +animation/clip_151/loops=false +animation/clip_152/name="" +animation/clip_152/start_frame=0 +animation/clip_152/end_frame=0 +animation/clip_152/loops=false +animation/clip_153/name="" +animation/clip_153/start_frame=0 +animation/clip_153/end_frame=0 +animation/clip_153/loops=false +animation/clip_154/name="" +animation/clip_154/start_frame=0 +animation/clip_154/end_frame=0 +animation/clip_154/loops=false +animation/clip_155/name="" +animation/clip_155/start_frame=0 +animation/clip_155/end_frame=0 +animation/clip_155/loops=false +animation/clip_156/name="" +animation/clip_156/start_frame=0 +animation/clip_156/end_frame=0 +animation/clip_156/loops=false +animation/clip_157/name="" +animation/clip_157/start_frame=0 +animation/clip_157/end_frame=0 +animation/clip_157/loops=false +animation/clip_158/name="" +animation/clip_158/start_frame=0 +animation/clip_158/end_frame=0 +animation/clip_158/loops=false +animation/clip_159/name="" +animation/clip_159/start_frame=0 +animation/clip_159/end_frame=0 +animation/clip_159/loops=false +animation/clip_160/name="" +animation/clip_160/start_frame=0 +animation/clip_160/end_frame=0 +animation/clip_160/loops=false +animation/clip_161/name="" +animation/clip_161/start_frame=0 +animation/clip_161/end_frame=0 +animation/clip_161/loops=false +animation/clip_162/name="" +animation/clip_162/start_frame=0 +animation/clip_162/end_frame=0 +animation/clip_162/loops=false +animation/clip_163/name="" +animation/clip_163/start_frame=0 +animation/clip_163/end_frame=0 +animation/clip_163/loops=false +animation/clip_164/name="" +animation/clip_164/start_frame=0 +animation/clip_164/end_frame=0 +animation/clip_164/loops=false +animation/clip_165/name="" +animation/clip_165/start_frame=0 +animation/clip_165/end_frame=0 +animation/clip_165/loops=false +animation/clip_166/name="" +animation/clip_166/start_frame=0 +animation/clip_166/end_frame=0 +animation/clip_166/loops=false +animation/clip_167/name="" +animation/clip_167/start_frame=0 +animation/clip_167/end_frame=0 +animation/clip_167/loops=false +animation/clip_168/name="" +animation/clip_168/start_frame=0 +animation/clip_168/end_frame=0 +animation/clip_168/loops=false +animation/clip_169/name="" +animation/clip_169/start_frame=0 +animation/clip_169/end_frame=0 +animation/clip_169/loops=false +animation/clip_170/name="" +animation/clip_170/start_frame=0 +animation/clip_170/end_frame=0 +animation/clip_170/loops=false +animation/clip_171/name="" +animation/clip_171/start_frame=0 +animation/clip_171/end_frame=0 +animation/clip_171/loops=false +animation/clip_172/name="" +animation/clip_172/start_frame=0 +animation/clip_172/end_frame=0 +animation/clip_172/loops=false +animation/clip_173/name="" +animation/clip_173/start_frame=0 +animation/clip_173/end_frame=0 +animation/clip_173/loops=false +animation/clip_174/name="" +animation/clip_174/start_frame=0 +animation/clip_174/end_frame=0 +animation/clip_174/loops=false +animation/clip_175/name="" +animation/clip_175/start_frame=0 +animation/clip_175/end_frame=0 +animation/clip_175/loops=false +animation/clip_176/name="" +animation/clip_176/start_frame=0 +animation/clip_176/end_frame=0 +animation/clip_176/loops=false +animation/clip_177/name="" +animation/clip_177/start_frame=0 +animation/clip_177/end_frame=0 +animation/clip_177/loops=false +animation/clip_178/name="" +animation/clip_178/start_frame=0 +animation/clip_178/end_frame=0 +animation/clip_178/loops=false +animation/clip_179/name="" +animation/clip_179/start_frame=0 +animation/clip_179/end_frame=0 +animation/clip_179/loops=false +animation/clip_180/name="" +animation/clip_180/start_frame=0 +animation/clip_180/end_frame=0 +animation/clip_180/loops=false +animation/clip_181/name="" +animation/clip_181/start_frame=0 +animation/clip_181/end_frame=0 +animation/clip_181/loops=false +animation/clip_182/name="" +animation/clip_182/start_frame=0 +animation/clip_182/end_frame=0 +animation/clip_182/loops=false +animation/clip_183/name="" +animation/clip_183/start_frame=0 +animation/clip_183/end_frame=0 +animation/clip_183/loops=false +animation/clip_184/name="" +animation/clip_184/start_frame=0 +animation/clip_184/end_frame=0 +animation/clip_184/loops=false +animation/clip_185/name="" +animation/clip_185/start_frame=0 +animation/clip_185/end_frame=0 +animation/clip_185/loops=false +animation/clip_186/name="" +animation/clip_186/start_frame=0 +animation/clip_186/end_frame=0 +animation/clip_186/loops=false +animation/clip_187/name="" +animation/clip_187/start_frame=0 +animation/clip_187/end_frame=0 +animation/clip_187/loops=false +animation/clip_188/name="" +animation/clip_188/start_frame=0 +animation/clip_188/end_frame=0 +animation/clip_188/loops=false +animation/clip_189/name="" +animation/clip_189/start_frame=0 +animation/clip_189/end_frame=0 +animation/clip_189/loops=false +animation/clip_190/name="" +animation/clip_190/start_frame=0 +animation/clip_190/end_frame=0 +animation/clip_190/loops=false +animation/clip_191/name="" +animation/clip_191/start_frame=0 +animation/clip_191/end_frame=0 +animation/clip_191/loops=false +animation/clip_192/name="" +animation/clip_192/start_frame=0 +animation/clip_192/end_frame=0 +animation/clip_192/loops=false +animation/clip_193/name="" +animation/clip_193/start_frame=0 +animation/clip_193/end_frame=0 +animation/clip_193/loops=false +animation/clip_194/name="" +animation/clip_194/start_frame=0 +animation/clip_194/end_frame=0 +animation/clip_194/loops=false +animation/clip_195/name="" +animation/clip_195/start_frame=0 +animation/clip_195/end_frame=0 +animation/clip_195/loops=false +animation/clip_196/name="" +animation/clip_196/start_frame=0 +animation/clip_196/end_frame=0 +animation/clip_196/loops=false +animation/clip_197/name="" +animation/clip_197/start_frame=0 +animation/clip_197/end_frame=0 +animation/clip_197/loops=false +animation/clip_198/name="" +animation/clip_198/start_frame=0 +animation/clip_198/end_frame=0 +animation/clip_198/loops=false +animation/clip_199/name="" +animation/clip_199/start_frame=0 +animation/clip_199/end_frame=0 +animation/clip_199/loops=false +animation/clip_200/name="" +animation/clip_200/start_frame=0 +animation/clip_200/end_frame=0 +animation/clip_200/loops=false +animation/clip_201/name="" +animation/clip_201/start_frame=0 +animation/clip_201/end_frame=0 +animation/clip_201/loops=false +animation/clip_202/name="" +animation/clip_202/start_frame=0 +animation/clip_202/end_frame=0 +animation/clip_202/loops=false +animation/clip_203/name="" +animation/clip_203/start_frame=0 +animation/clip_203/end_frame=0 +animation/clip_203/loops=false +animation/clip_204/name="" +animation/clip_204/start_frame=0 +animation/clip_204/end_frame=0 +animation/clip_204/loops=false +animation/clip_205/name="" +animation/clip_205/start_frame=0 +animation/clip_205/end_frame=0 +animation/clip_205/loops=false +animation/clip_206/name="" +animation/clip_206/start_frame=0 +animation/clip_206/end_frame=0 +animation/clip_206/loops=false +animation/clip_207/name="" +animation/clip_207/start_frame=0 +animation/clip_207/end_frame=0 +animation/clip_207/loops=false +animation/clip_208/name="" +animation/clip_208/start_frame=0 +animation/clip_208/end_frame=0 +animation/clip_208/loops=false +animation/clip_209/name="" +animation/clip_209/start_frame=0 +animation/clip_209/end_frame=0 +animation/clip_209/loops=false +animation/clip_210/name="" +animation/clip_210/start_frame=0 +animation/clip_210/end_frame=0 +animation/clip_210/loops=false +animation/clip_211/name="" +animation/clip_211/start_frame=0 +animation/clip_211/end_frame=0 +animation/clip_211/loops=false +animation/clip_212/name="" +animation/clip_212/start_frame=0 +animation/clip_212/end_frame=0 +animation/clip_212/loops=false +animation/clip_213/name="" +animation/clip_213/start_frame=0 +animation/clip_213/end_frame=0 +animation/clip_213/loops=false +animation/clip_214/name="" +animation/clip_214/start_frame=0 +animation/clip_214/end_frame=0 +animation/clip_214/loops=false +animation/clip_215/name="" +animation/clip_215/start_frame=0 +animation/clip_215/end_frame=0 +animation/clip_215/loops=false +animation/clip_216/name="" +animation/clip_216/start_frame=0 +animation/clip_216/end_frame=0 +animation/clip_216/loops=false +animation/clip_217/name="" +animation/clip_217/start_frame=0 +animation/clip_217/end_frame=0 +animation/clip_217/loops=false +animation/clip_218/name="" +animation/clip_218/start_frame=0 +animation/clip_218/end_frame=0 +animation/clip_218/loops=false +animation/clip_219/name="" +animation/clip_219/start_frame=0 +animation/clip_219/end_frame=0 +animation/clip_219/loops=false +animation/clip_220/name="" +animation/clip_220/start_frame=0 +animation/clip_220/end_frame=0 +animation/clip_220/loops=false +animation/clip_221/name="" +animation/clip_221/start_frame=0 +animation/clip_221/end_frame=0 +animation/clip_221/loops=false +animation/clip_222/name="" +animation/clip_222/start_frame=0 +animation/clip_222/end_frame=0 +animation/clip_222/loops=false +animation/clip_223/name="" +animation/clip_223/start_frame=0 +animation/clip_223/end_frame=0 +animation/clip_223/loops=false +animation/clip_224/name="" +animation/clip_224/start_frame=0 +animation/clip_224/end_frame=0 +animation/clip_224/loops=false +animation/clip_225/name="" +animation/clip_225/start_frame=0 +animation/clip_225/end_frame=0 +animation/clip_225/loops=false +animation/clip_226/name="" +animation/clip_226/start_frame=0 +animation/clip_226/end_frame=0 +animation/clip_226/loops=false +animation/clip_227/name="" +animation/clip_227/start_frame=0 +animation/clip_227/end_frame=0 +animation/clip_227/loops=false +animation/clip_228/name="" +animation/clip_228/start_frame=0 +animation/clip_228/end_frame=0 +animation/clip_228/loops=false +animation/clip_229/name="" +animation/clip_229/start_frame=0 +animation/clip_229/end_frame=0 +animation/clip_229/loops=false +animation/clip_230/name="" +animation/clip_230/start_frame=0 +animation/clip_230/end_frame=0 +animation/clip_230/loops=false +animation/clip_231/name="" +animation/clip_231/start_frame=0 +animation/clip_231/end_frame=0 +animation/clip_231/loops=false +animation/clip_232/name="" +animation/clip_232/start_frame=0 +animation/clip_232/end_frame=0 +animation/clip_232/loops=false +animation/clip_233/name="" +animation/clip_233/start_frame=0 +animation/clip_233/end_frame=0 +animation/clip_233/loops=false +animation/clip_234/name="" +animation/clip_234/start_frame=0 +animation/clip_234/end_frame=0 +animation/clip_234/loops=false +animation/clip_235/name="" +animation/clip_235/start_frame=0 +animation/clip_235/end_frame=0 +animation/clip_235/loops=false +animation/clip_236/name="" +animation/clip_236/start_frame=0 +animation/clip_236/end_frame=0 +animation/clip_236/loops=false +animation/clip_237/name="" +animation/clip_237/start_frame=0 +animation/clip_237/end_frame=0 +animation/clip_237/loops=false +animation/clip_238/name="" +animation/clip_238/start_frame=0 +animation/clip_238/end_frame=0 +animation/clip_238/loops=false +animation/clip_239/name="" +animation/clip_239/start_frame=0 +animation/clip_239/end_frame=0 +animation/clip_239/loops=false +animation/clip_240/name="" +animation/clip_240/start_frame=0 +animation/clip_240/end_frame=0 +animation/clip_240/loops=false +animation/clip_241/name="" +animation/clip_241/start_frame=0 +animation/clip_241/end_frame=0 +animation/clip_241/loops=false +animation/clip_242/name="" +animation/clip_242/start_frame=0 +animation/clip_242/end_frame=0 +animation/clip_242/loops=false +animation/clip_243/name="" +animation/clip_243/start_frame=0 +animation/clip_243/end_frame=0 +animation/clip_243/loops=false +animation/clip_244/name="" +animation/clip_244/start_frame=0 +animation/clip_244/end_frame=0 +animation/clip_244/loops=false +animation/clip_245/name="" +animation/clip_245/start_frame=0 +animation/clip_245/end_frame=0 +animation/clip_245/loops=false +animation/clip_246/name="" +animation/clip_246/start_frame=0 +animation/clip_246/end_frame=0 +animation/clip_246/loops=false +animation/clip_247/name="" +animation/clip_247/start_frame=0 +animation/clip_247/end_frame=0 +animation/clip_247/loops=false +animation/clip_248/name="" +animation/clip_248/start_frame=0 +animation/clip_248/end_frame=0 +animation/clip_248/loops=false +animation/clip_249/name="" +animation/clip_249/start_frame=0 +animation/clip_249/end_frame=0 +animation/clip_249/loops=false +animation/clip_250/name="" +animation/clip_250/start_frame=0 +animation/clip_250/end_frame=0 +animation/clip_250/loops=false +animation/clip_251/name="" +animation/clip_251/start_frame=0 +animation/clip_251/end_frame=0 +animation/clip_251/loops=false +animation/clip_252/name="" +animation/clip_252/start_frame=0 +animation/clip_252/end_frame=0 +animation/clip_252/loops=false +animation/clip_253/name="" +animation/clip_253/start_frame=0 +animation/clip_253/end_frame=0 +animation/clip_253/loops=false +animation/clip_254/name="" +animation/clip_254/start_frame=0 +animation/clip_254/end_frame=0 +animation/clip_254/loops=false +animation/clip_255/name="" +animation/clip_255/start_frame=0 +animation/clip_255/end_frame=0 +animation/clip_255/loops=false +animation/clip_256/name="" +animation/clip_256/start_frame=0 +animation/clip_256/end_frame=0 +animation/clip_256/loops=false diff --git a/level/common/houses_01/02.glb b/level/common/houses_01/02.glb new file mode 100644 index 0000000..00b71b5 Binary files /dev/null and b/level/common/houses_01/02.glb differ diff --git a/level/common/houses_01/02.glb.import b/level/common/houses_01/02.glb.import new file mode 100644 index 0000000..9131fc7 --- /dev/null +++ b/level/common/houses_01/02.glb.import @@ -0,0 +1,1065 @@ +[remap] + +importer="scene" +type="PackedScene" +path="res://.import/02.glb-5c493cdfe9f85db66de6771ee2fd655d.scn" + +[deps] + +source_file="res://level/common/houses_01/02.glb" +dest_files=[ "res://.import/02.glb-5c493cdfe9f85db66de6771ee2fd655d.scn" ] + +[params] + +nodes/root_type="Spatial" +nodes/root_name="Scene Root" +nodes/root_scale=1.0 +nodes/custom_script="" +nodes/storage=0 +nodes/use_legacy_names=false +materials/location=1 +materials/storage=1 +materials/keep_on_reimport=true +meshes/octahedral_compression=true +meshes/compress=4286 +meshes/ensure_tangents=true +meshes/storage=0 +meshes/light_baking=0 +meshes/lightmap_texel_size=0.1 +skins/use_named_skins=true +external_files/store_in_subdir=false +animation/import=true +animation/fps=15 +animation/filter_script="" +animation/storage=false +animation/keep_custom_tracks=false +animation/optimizer/enabled=true +animation/optimizer/max_linear_error=0.05 +animation/optimizer/max_angular_error=0.01 +animation/optimizer/max_angle=22 +animation/optimizer/remove_unused_tracks=true +animation/clips/amount=0 +animation/clip_1/name="" +animation/clip_1/start_frame=0 +animation/clip_1/end_frame=0 +animation/clip_1/loops=false +animation/clip_2/name="" +animation/clip_2/start_frame=0 +animation/clip_2/end_frame=0 +animation/clip_2/loops=false +animation/clip_3/name="" +animation/clip_3/start_frame=0 +animation/clip_3/end_frame=0 +animation/clip_3/loops=false +animation/clip_4/name="" +animation/clip_4/start_frame=0 +animation/clip_4/end_frame=0 +animation/clip_4/loops=false +animation/clip_5/name="" +animation/clip_5/start_frame=0 +animation/clip_5/end_frame=0 +animation/clip_5/loops=false +animation/clip_6/name="" +animation/clip_6/start_frame=0 +animation/clip_6/end_frame=0 +animation/clip_6/loops=false +animation/clip_7/name="" +animation/clip_7/start_frame=0 +animation/clip_7/end_frame=0 +animation/clip_7/loops=false +animation/clip_8/name="" +animation/clip_8/start_frame=0 +animation/clip_8/end_frame=0 +animation/clip_8/loops=false +animation/clip_9/name="" +animation/clip_9/start_frame=0 +animation/clip_9/end_frame=0 +animation/clip_9/loops=false +animation/clip_10/name="" +animation/clip_10/start_frame=0 +animation/clip_10/end_frame=0 +animation/clip_10/loops=false +animation/clip_11/name="" +animation/clip_11/start_frame=0 +animation/clip_11/end_frame=0 +animation/clip_11/loops=false +animation/clip_12/name="" +animation/clip_12/start_frame=0 +animation/clip_12/end_frame=0 +animation/clip_12/loops=false +animation/clip_13/name="" +animation/clip_13/start_frame=0 +animation/clip_13/end_frame=0 +animation/clip_13/loops=false +animation/clip_14/name="" +animation/clip_14/start_frame=0 +animation/clip_14/end_frame=0 +animation/clip_14/loops=false +animation/clip_15/name="" +animation/clip_15/start_frame=0 +animation/clip_15/end_frame=0 +animation/clip_15/loops=false +animation/clip_16/name="" +animation/clip_16/start_frame=0 +animation/clip_16/end_frame=0 +animation/clip_16/loops=false +animation/clip_17/name="" +animation/clip_17/start_frame=0 +animation/clip_17/end_frame=0 +animation/clip_17/loops=false +animation/clip_18/name="" +animation/clip_18/start_frame=0 +animation/clip_18/end_frame=0 +animation/clip_18/loops=false +animation/clip_19/name="" +animation/clip_19/start_frame=0 +animation/clip_19/end_frame=0 +animation/clip_19/loops=false +animation/clip_20/name="" +animation/clip_20/start_frame=0 +animation/clip_20/end_frame=0 +animation/clip_20/loops=false +animation/clip_21/name="" +animation/clip_21/start_frame=0 +animation/clip_21/end_frame=0 +animation/clip_21/loops=false +animation/clip_22/name="" +animation/clip_22/start_frame=0 +animation/clip_22/end_frame=0 +animation/clip_22/loops=false +animation/clip_23/name="" +animation/clip_23/start_frame=0 +animation/clip_23/end_frame=0 +animation/clip_23/loops=false +animation/clip_24/name="" +animation/clip_24/start_frame=0 +animation/clip_24/end_frame=0 +animation/clip_24/loops=false +animation/clip_25/name="" +animation/clip_25/start_frame=0 +animation/clip_25/end_frame=0 +animation/clip_25/loops=false +animation/clip_26/name="" +animation/clip_26/start_frame=0 +animation/clip_26/end_frame=0 +animation/clip_26/loops=false +animation/clip_27/name="" +animation/clip_27/start_frame=0 +animation/clip_27/end_frame=0 +animation/clip_27/loops=false +animation/clip_28/name="" +animation/clip_28/start_frame=0 +animation/clip_28/end_frame=0 +animation/clip_28/loops=false +animation/clip_29/name="" +animation/clip_29/start_frame=0 +animation/clip_29/end_frame=0 +animation/clip_29/loops=false +animation/clip_30/name="" +animation/clip_30/start_frame=0 +animation/clip_30/end_frame=0 +animation/clip_30/loops=false +animation/clip_31/name="" +animation/clip_31/start_frame=0 +animation/clip_31/end_frame=0 +animation/clip_31/loops=false +animation/clip_32/name="" +animation/clip_32/start_frame=0 +animation/clip_32/end_frame=0 +animation/clip_32/loops=false +animation/clip_33/name="" +animation/clip_33/start_frame=0 +animation/clip_33/end_frame=0 +animation/clip_33/loops=false +animation/clip_34/name="" +animation/clip_34/start_frame=0 +animation/clip_34/end_frame=0 +animation/clip_34/loops=false +animation/clip_35/name="" +animation/clip_35/start_frame=0 +animation/clip_35/end_frame=0 +animation/clip_35/loops=false +animation/clip_36/name="" +animation/clip_36/start_frame=0 +animation/clip_36/end_frame=0 +animation/clip_36/loops=false +animation/clip_37/name="" +animation/clip_37/start_frame=0 +animation/clip_37/end_frame=0 +animation/clip_37/loops=false +animation/clip_38/name="" +animation/clip_38/start_frame=0 +animation/clip_38/end_frame=0 +animation/clip_38/loops=false +animation/clip_39/name="" +animation/clip_39/start_frame=0 +animation/clip_39/end_frame=0 +animation/clip_39/loops=false +animation/clip_40/name="" +animation/clip_40/start_frame=0 +animation/clip_40/end_frame=0 +animation/clip_40/loops=false +animation/clip_41/name="" +animation/clip_41/start_frame=0 +animation/clip_41/end_frame=0 +animation/clip_41/loops=false +animation/clip_42/name="" +animation/clip_42/start_frame=0 +animation/clip_42/end_frame=0 +animation/clip_42/loops=false +animation/clip_43/name="" +animation/clip_43/start_frame=0 +animation/clip_43/end_frame=0 +animation/clip_43/loops=false +animation/clip_44/name="" +animation/clip_44/start_frame=0 +animation/clip_44/end_frame=0 +animation/clip_44/loops=false +animation/clip_45/name="" +animation/clip_45/start_frame=0 +animation/clip_45/end_frame=0 +animation/clip_45/loops=false +animation/clip_46/name="" +animation/clip_46/start_frame=0 +animation/clip_46/end_frame=0 +animation/clip_46/loops=false +animation/clip_47/name="" +animation/clip_47/start_frame=0 +animation/clip_47/end_frame=0 +animation/clip_47/loops=false +animation/clip_48/name="" +animation/clip_48/start_frame=0 +animation/clip_48/end_frame=0 +animation/clip_48/loops=false +animation/clip_49/name="" +animation/clip_49/start_frame=0 +animation/clip_49/end_frame=0 +animation/clip_49/loops=false +animation/clip_50/name="" +animation/clip_50/start_frame=0 +animation/clip_50/end_frame=0 +animation/clip_50/loops=false +animation/clip_51/name="" +animation/clip_51/start_frame=0 +animation/clip_51/end_frame=0 +animation/clip_51/loops=false +animation/clip_52/name="" +animation/clip_52/start_frame=0 +animation/clip_52/end_frame=0 +animation/clip_52/loops=false +animation/clip_53/name="" +animation/clip_53/start_frame=0 +animation/clip_53/end_frame=0 +animation/clip_53/loops=false +animation/clip_54/name="" +animation/clip_54/start_frame=0 +animation/clip_54/end_frame=0 +animation/clip_54/loops=false +animation/clip_55/name="" +animation/clip_55/start_frame=0 +animation/clip_55/end_frame=0 +animation/clip_55/loops=false +animation/clip_56/name="" +animation/clip_56/start_frame=0 +animation/clip_56/end_frame=0 +animation/clip_56/loops=false +animation/clip_57/name="" +animation/clip_57/start_frame=0 +animation/clip_57/end_frame=0 +animation/clip_57/loops=false +animation/clip_58/name="" +animation/clip_58/start_frame=0 +animation/clip_58/end_frame=0 +animation/clip_58/loops=false +animation/clip_59/name="" +animation/clip_59/start_frame=0 +animation/clip_59/end_frame=0 +animation/clip_59/loops=false +animation/clip_60/name="" +animation/clip_60/start_frame=0 +animation/clip_60/end_frame=0 +animation/clip_60/loops=false +animation/clip_61/name="" +animation/clip_61/start_frame=0 +animation/clip_61/end_frame=0 +animation/clip_61/loops=false +animation/clip_62/name="" +animation/clip_62/start_frame=0 +animation/clip_62/end_frame=0 +animation/clip_62/loops=false +animation/clip_63/name="" +animation/clip_63/start_frame=0 +animation/clip_63/end_frame=0 +animation/clip_63/loops=false +animation/clip_64/name="" +animation/clip_64/start_frame=0 +animation/clip_64/end_frame=0 +animation/clip_64/loops=false +animation/clip_65/name="" +animation/clip_65/start_frame=0 +animation/clip_65/end_frame=0 +animation/clip_65/loops=false +animation/clip_66/name="" +animation/clip_66/start_frame=0 +animation/clip_66/end_frame=0 +animation/clip_66/loops=false +animation/clip_67/name="" +animation/clip_67/start_frame=0 +animation/clip_67/end_frame=0 +animation/clip_67/loops=false +animation/clip_68/name="" +animation/clip_68/start_frame=0 +animation/clip_68/end_frame=0 +animation/clip_68/loops=false +animation/clip_69/name="" +animation/clip_69/start_frame=0 +animation/clip_69/end_frame=0 +animation/clip_69/loops=false +animation/clip_70/name="" +animation/clip_70/start_frame=0 +animation/clip_70/end_frame=0 +animation/clip_70/loops=false +animation/clip_71/name="" +animation/clip_71/start_frame=0 +animation/clip_71/end_frame=0 +animation/clip_71/loops=false +animation/clip_72/name="" +animation/clip_72/start_frame=0 +animation/clip_72/end_frame=0 +animation/clip_72/loops=false +animation/clip_73/name="" +animation/clip_73/start_frame=0 +animation/clip_73/end_frame=0 +animation/clip_73/loops=false +animation/clip_74/name="" +animation/clip_74/start_frame=0 +animation/clip_74/end_frame=0 +animation/clip_74/loops=false +animation/clip_75/name="" +animation/clip_75/start_frame=0 +animation/clip_75/end_frame=0 +animation/clip_75/loops=false +animation/clip_76/name="" +animation/clip_76/start_frame=0 +animation/clip_76/end_frame=0 +animation/clip_76/loops=false +animation/clip_77/name="" +animation/clip_77/start_frame=0 +animation/clip_77/end_frame=0 +animation/clip_77/loops=false +animation/clip_78/name="" +animation/clip_78/start_frame=0 +animation/clip_78/end_frame=0 +animation/clip_78/loops=false +animation/clip_79/name="" +animation/clip_79/start_frame=0 +animation/clip_79/end_frame=0 +animation/clip_79/loops=false +animation/clip_80/name="" +animation/clip_80/start_frame=0 +animation/clip_80/end_frame=0 +animation/clip_80/loops=false +animation/clip_81/name="" +animation/clip_81/start_frame=0 +animation/clip_81/end_frame=0 +animation/clip_81/loops=false +animation/clip_82/name="" +animation/clip_82/start_frame=0 +animation/clip_82/end_frame=0 +animation/clip_82/loops=false +animation/clip_83/name="" +animation/clip_83/start_frame=0 +animation/clip_83/end_frame=0 +animation/clip_83/loops=false +animation/clip_84/name="" +animation/clip_84/start_frame=0 +animation/clip_84/end_frame=0 +animation/clip_84/loops=false +animation/clip_85/name="" +animation/clip_85/start_frame=0 +animation/clip_85/end_frame=0 +animation/clip_85/loops=false +animation/clip_86/name="" +animation/clip_86/start_frame=0 +animation/clip_86/end_frame=0 +animation/clip_86/loops=false +animation/clip_87/name="" +animation/clip_87/start_frame=0 +animation/clip_87/end_frame=0 +animation/clip_87/loops=false +animation/clip_88/name="" +animation/clip_88/start_frame=0 +animation/clip_88/end_frame=0 +animation/clip_88/loops=false +animation/clip_89/name="" +animation/clip_89/start_frame=0 +animation/clip_89/end_frame=0 +animation/clip_89/loops=false +animation/clip_90/name="" +animation/clip_90/start_frame=0 +animation/clip_90/end_frame=0 +animation/clip_90/loops=false +animation/clip_91/name="" +animation/clip_91/start_frame=0 +animation/clip_91/end_frame=0 +animation/clip_91/loops=false +animation/clip_92/name="" +animation/clip_92/start_frame=0 +animation/clip_92/end_frame=0 +animation/clip_92/loops=false +animation/clip_93/name="" +animation/clip_93/start_frame=0 +animation/clip_93/end_frame=0 +animation/clip_93/loops=false +animation/clip_94/name="" +animation/clip_94/start_frame=0 +animation/clip_94/end_frame=0 +animation/clip_94/loops=false +animation/clip_95/name="" +animation/clip_95/start_frame=0 +animation/clip_95/end_frame=0 +animation/clip_95/loops=false +animation/clip_96/name="" +animation/clip_96/start_frame=0 +animation/clip_96/end_frame=0 +animation/clip_96/loops=false +animation/clip_97/name="" +animation/clip_97/start_frame=0 +animation/clip_97/end_frame=0 +animation/clip_97/loops=false +animation/clip_98/name="" +animation/clip_98/start_frame=0 +animation/clip_98/end_frame=0 +animation/clip_98/loops=false +animation/clip_99/name="" +animation/clip_99/start_frame=0 +animation/clip_99/end_frame=0 +animation/clip_99/loops=false +animation/clip_100/name="" +animation/clip_100/start_frame=0 +animation/clip_100/end_frame=0 +animation/clip_100/loops=false +animation/clip_101/name="" +animation/clip_101/start_frame=0 +animation/clip_101/end_frame=0 +animation/clip_101/loops=false +animation/clip_102/name="" +animation/clip_102/start_frame=0 +animation/clip_102/end_frame=0 +animation/clip_102/loops=false +animation/clip_103/name="" +animation/clip_103/start_frame=0 +animation/clip_103/end_frame=0 +animation/clip_103/loops=false +animation/clip_104/name="" +animation/clip_104/start_frame=0 +animation/clip_104/end_frame=0 +animation/clip_104/loops=false +animation/clip_105/name="" +animation/clip_105/start_frame=0 +animation/clip_105/end_frame=0 +animation/clip_105/loops=false +animation/clip_106/name="" +animation/clip_106/start_frame=0 +animation/clip_106/end_frame=0 +animation/clip_106/loops=false +animation/clip_107/name="" +animation/clip_107/start_frame=0 +animation/clip_107/end_frame=0 +animation/clip_107/loops=false +animation/clip_108/name="" +animation/clip_108/start_frame=0 +animation/clip_108/end_frame=0 +animation/clip_108/loops=false +animation/clip_109/name="" +animation/clip_109/start_frame=0 +animation/clip_109/end_frame=0 +animation/clip_109/loops=false +animation/clip_110/name="" +animation/clip_110/start_frame=0 +animation/clip_110/end_frame=0 +animation/clip_110/loops=false +animation/clip_111/name="" +animation/clip_111/start_frame=0 +animation/clip_111/end_frame=0 +animation/clip_111/loops=false +animation/clip_112/name="" +animation/clip_112/start_frame=0 +animation/clip_112/end_frame=0 +animation/clip_112/loops=false +animation/clip_113/name="" +animation/clip_113/start_frame=0 +animation/clip_113/end_frame=0 +animation/clip_113/loops=false +animation/clip_114/name="" +animation/clip_114/start_frame=0 +animation/clip_114/end_frame=0 +animation/clip_114/loops=false +animation/clip_115/name="" +animation/clip_115/start_frame=0 +animation/clip_115/end_frame=0 +animation/clip_115/loops=false +animation/clip_116/name="" +animation/clip_116/start_frame=0 +animation/clip_116/end_frame=0 +animation/clip_116/loops=false +animation/clip_117/name="" +animation/clip_117/start_frame=0 +animation/clip_117/end_frame=0 +animation/clip_117/loops=false +animation/clip_118/name="" +animation/clip_118/start_frame=0 +animation/clip_118/end_frame=0 +animation/clip_118/loops=false +animation/clip_119/name="" +animation/clip_119/start_frame=0 +animation/clip_119/end_frame=0 +animation/clip_119/loops=false +animation/clip_120/name="" +animation/clip_120/start_frame=0 +animation/clip_120/end_frame=0 +animation/clip_120/loops=false +animation/clip_121/name="" +animation/clip_121/start_frame=0 +animation/clip_121/end_frame=0 +animation/clip_121/loops=false +animation/clip_122/name="" +animation/clip_122/start_frame=0 +animation/clip_122/end_frame=0 +animation/clip_122/loops=false +animation/clip_123/name="" +animation/clip_123/start_frame=0 +animation/clip_123/end_frame=0 +animation/clip_123/loops=false +animation/clip_124/name="" +animation/clip_124/start_frame=0 +animation/clip_124/end_frame=0 +animation/clip_124/loops=false +animation/clip_125/name="" +animation/clip_125/start_frame=0 +animation/clip_125/end_frame=0 +animation/clip_125/loops=false +animation/clip_126/name="" +animation/clip_126/start_frame=0 +animation/clip_126/end_frame=0 +animation/clip_126/loops=false +animation/clip_127/name="" +animation/clip_127/start_frame=0 +animation/clip_127/end_frame=0 +animation/clip_127/loops=false +animation/clip_128/name="" +animation/clip_128/start_frame=0 +animation/clip_128/end_frame=0 +animation/clip_128/loops=false +animation/clip_129/name="" +animation/clip_129/start_frame=0 +animation/clip_129/end_frame=0 +animation/clip_129/loops=false +animation/clip_130/name="" +animation/clip_130/start_frame=0 +animation/clip_130/end_frame=0 +animation/clip_130/loops=false +animation/clip_131/name="" +animation/clip_131/start_frame=0 +animation/clip_131/end_frame=0 +animation/clip_131/loops=false +animation/clip_132/name="" +animation/clip_132/start_frame=0 +animation/clip_132/end_frame=0 +animation/clip_132/loops=false +animation/clip_133/name="" +animation/clip_133/start_frame=0 +animation/clip_133/end_frame=0 +animation/clip_133/loops=false +animation/clip_134/name="" +animation/clip_134/start_frame=0 +animation/clip_134/end_frame=0 +animation/clip_134/loops=false +animation/clip_135/name="" +animation/clip_135/start_frame=0 +animation/clip_135/end_frame=0 +animation/clip_135/loops=false +animation/clip_136/name="" +animation/clip_136/start_frame=0 +animation/clip_136/end_frame=0 +animation/clip_136/loops=false +animation/clip_137/name="" +animation/clip_137/start_frame=0 +animation/clip_137/end_frame=0 +animation/clip_137/loops=false +animation/clip_138/name="" +animation/clip_138/start_frame=0 +animation/clip_138/end_frame=0 +animation/clip_138/loops=false +animation/clip_139/name="" +animation/clip_139/start_frame=0 +animation/clip_139/end_frame=0 +animation/clip_139/loops=false +animation/clip_140/name="" +animation/clip_140/start_frame=0 +animation/clip_140/end_frame=0 +animation/clip_140/loops=false +animation/clip_141/name="" +animation/clip_141/start_frame=0 +animation/clip_141/end_frame=0 +animation/clip_141/loops=false +animation/clip_142/name="" +animation/clip_142/start_frame=0 +animation/clip_142/end_frame=0 +animation/clip_142/loops=false +animation/clip_143/name="" +animation/clip_143/start_frame=0 +animation/clip_143/end_frame=0 +animation/clip_143/loops=false +animation/clip_144/name="" +animation/clip_144/start_frame=0 +animation/clip_144/end_frame=0 +animation/clip_144/loops=false +animation/clip_145/name="" +animation/clip_145/start_frame=0 +animation/clip_145/end_frame=0 +animation/clip_145/loops=false +animation/clip_146/name="" +animation/clip_146/start_frame=0 +animation/clip_146/end_frame=0 +animation/clip_146/loops=false +animation/clip_147/name="" +animation/clip_147/start_frame=0 +animation/clip_147/end_frame=0 +animation/clip_147/loops=false +animation/clip_148/name="" +animation/clip_148/start_frame=0 +animation/clip_148/end_frame=0 +animation/clip_148/loops=false +animation/clip_149/name="" +animation/clip_149/start_frame=0 +animation/clip_149/end_frame=0 +animation/clip_149/loops=false +animation/clip_150/name="" +animation/clip_150/start_frame=0 +animation/clip_150/end_frame=0 +animation/clip_150/loops=false +animation/clip_151/name="" +animation/clip_151/start_frame=0 +animation/clip_151/end_frame=0 +animation/clip_151/loops=false +animation/clip_152/name="" +animation/clip_152/start_frame=0 +animation/clip_152/end_frame=0 +animation/clip_152/loops=false +animation/clip_153/name="" +animation/clip_153/start_frame=0 +animation/clip_153/end_frame=0 +animation/clip_153/loops=false +animation/clip_154/name="" +animation/clip_154/start_frame=0 +animation/clip_154/end_frame=0 +animation/clip_154/loops=false +animation/clip_155/name="" +animation/clip_155/start_frame=0 +animation/clip_155/end_frame=0 +animation/clip_155/loops=false +animation/clip_156/name="" +animation/clip_156/start_frame=0 +animation/clip_156/end_frame=0 +animation/clip_156/loops=false +animation/clip_157/name="" +animation/clip_157/start_frame=0 +animation/clip_157/end_frame=0 +animation/clip_157/loops=false +animation/clip_158/name="" +animation/clip_158/start_frame=0 +animation/clip_158/end_frame=0 +animation/clip_158/loops=false +animation/clip_159/name="" +animation/clip_159/start_frame=0 +animation/clip_159/end_frame=0 +animation/clip_159/loops=false +animation/clip_160/name="" +animation/clip_160/start_frame=0 +animation/clip_160/end_frame=0 +animation/clip_160/loops=false +animation/clip_161/name="" +animation/clip_161/start_frame=0 +animation/clip_161/end_frame=0 +animation/clip_161/loops=false +animation/clip_162/name="" +animation/clip_162/start_frame=0 +animation/clip_162/end_frame=0 +animation/clip_162/loops=false +animation/clip_163/name="" +animation/clip_163/start_frame=0 +animation/clip_163/end_frame=0 +animation/clip_163/loops=false +animation/clip_164/name="" +animation/clip_164/start_frame=0 +animation/clip_164/end_frame=0 +animation/clip_164/loops=false +animation/clip_165/name="" +animation/clip_165/start_frame=0 +animation/clip_165/end_frame=0 +animation/clip_165/loops=false +animation/clip_166/name="" +animation/clip_166/start_frame=0 +animation/clip_166/end_frame=0 +animation/clip_166/loops=false +animation/clip_167/name="" +animation/clip_167/start_frame=0 +animation/clip_167/end_frame=0 +animation/clip_167/loops=false +animation/clip_168/name="" +animation/clip_168/start_frame=0 +animation/clip_168/end_frame=0 +animation/clip_168/loops=false +animation/clip_169/name="" +animation/clip_169/start_frame=0 +animation/clip_169/end_frame=0 +animation/clip_169/loops=false +animation/clip_170/name="" +animation/clip_170/start_frame=0 +animation/clip_170/end_frame=0 +animation/clip_170/loops=false +animation/clip_171/name="" +animation/clip_171/start_frame=0 +animation/clip_171/end_frame=0 +animation/clip_171/loops=false +animation/clip_172/name="" +animation/clip_172/start_frame=0 +animation/clip_172/end_frame=0 +animation/clip_172/loops=false +animation/clip_173/name="" +animation/clip_173/start_frame=0 +animation/clip_173/end_frame=0 +animation/clip_173/loops=false +animation/clip_174/name="" +animation/clip_174/start_frame=0 +animation/clip_174/end_frame=0 +animation/clip_174/loops=false +animation/clip_175/name="" +animation/clip_175/start_frame=0 +animation/clip_175/end_frame=0 +animation/clip_175/loops=false +animation/clip_176/name="" +animation/clip_176/start_frame=0 +animation/clip_176/end_frame=0 +animation/clip_176/loops=false +animation/clip_177/name="" +animation/clip_177/start_frame=0 +animation/clip_177/end_frame=0 +animation/clip_177/loops=false +animation/clip_178/name="" +animation/clip_178/start_frame=0 +animation/clip_178/end_frame=0 +animation/clip_178/loops=false +animation/clip_179/name="" +animation/clip_179/start_frame=0 +animation/clip_179/end_frame=0 +animation/clip_179/loops=false +animation/clip_180/name="" +animation/clip_180/start_frame=0 +animation/clip_180/end_frame=0 +animation/clip_180/loops=false +animation/clip_181/name="" +animation/clip_181/start_frame=0 +animation/clip_181/end_frame=0 +animation/clip_181/loops=false +animation/clip_182/name="" +animation/clip_182/start_frame=0 +animation/clip_182/end_frame=0 +animation/clip_182/loops=false +animation/clip_183/name="" +animation/clip_183/start_frame=0 +animation/clip_183/end_frame=0 +animation/clip_183/loops=false +animation/clip_184/name="" +animation/clip_184/start_frame=0 +animation/clip_184/end_frame=0 +animation/clip_184/loops=false +animation/clip_185/name="" +animation/clip_185/start_frame=0 +animation/clip_185/end_frame=0 +animation/clip_185/loops=false +animation/clip_186/name="" +animation/clip_186/start_frame=0 +animation/clip_186/end_frame=0 +animation/clip_186/loops=false +animation/clip_187/name="" +animation/clip_187/start_frame=0 +animation/clip_187/end_frame=0 +animation/clip_187/loops=false +animation/clip_188/name="" +animation/clip_188/start_frame=0 +animation/clip_188/end_frame=0 +animation/clip_188/loops=false +animation/clip_189/name="" +animation/clip_189/start_frame=0 +animation/clip_189/end_frame=0 +animation/clip_189/loops=false +animation/clip_190/name="" +animation/clip_190/start_frame=0 +animation/clip_190/end_frame=0 +animation/clip_190/loops=false +animation/clip_191/name="" +animation/clip_191/start_frame=0 +animation/clip_191/end_frame=0 +animation/clip_191/loops=false +animation/clip_192/name="" +animation/clip_192/start_frame=0 +animation/clip_192/end_frame=0 +animation/clip_192/loops=false +animation/clip_193/name="" +animation/clip_193/start_frame=0 +animation/clip_193/end_frame=0 +animation/clip_193/loops=false +animation/clip_194/name="" +animation/clip_194/start_frame=0 +animation/clip_194/end_frame=0 +animation/clip_194/loops=false +animation/clip_195/name="" +animation/clip_195/start_frame=0 +animation/clip_195/end_frame=0 +animation/clip_195/loops=false +animation/clip_196/name="" +animation/clip_196/start_frame=0 +animation/clip_196/end_frame=0 +animation/clip_196/loops=false +animation/clip_197/name="" +animation/clip_197/start_frame=0 +animation/clip_197/end_frame=0 +animation/clip_197/loops=false +animation/clip_198/name="" +animation/clip_198/start_frame=0 +animation/clip_198/end_frame=0 +animation/clip_198/loops=false +animation/clip_199/name="" +animation/clip_199/start_frame=0 +animation/clip_199/end_frame=0 +animation/clip_199/loops=false +animation/clip_200/name="" +animation/clip_200/start_frame=0 +animation/clip_200/end_frame=0 +animation/clip_200/loops=false +animation/clip_201/name="" +animation/clip_201/start_frame=0 +animation/clip_201/end_frame=0 +animation/clip_201/loops=false +animation/clip_202/name="" +animation/clip_202/start_frame=0 +animation/clip_202/end_frame=0 +animation/clip_202/loops=false +animation/clip_203/name="" +animation/clip_203/start_frame=0 +animation/clip_203/end_frame=0 +animation/clip_203/loops=false +animation/clip_204/name="" +animation/clip_204/start_frame=0 +animation/clip_204/end_frame=0 +animation/clip_204/loops=false +animation/clip_205/name="" +animation/clip_205/start_frame=0 +animation/clip_205/end_frame=0 +animation/clip_205/loops=false +animation/clip_206/name="" +animation/clip_206/start_frame=0 +animation/clip_206/end_frame=0 +animation/clip_206/loops=false +animation/clip_207/name="" +animation/clip_207/start_frame=0 +animation/clip_207/end_frame=0 +animation/clip_207/loops=false +animation/clip_208/name="" +animation/clip_208/start_frame=0 +animation/clip_208/end_frame=0 +animation/clip_208/loops=false +animation/clip_209/name="" +animation/clip_209/start_frame=0 +animation/clip_209/end_frame=0 +animation/clip_209/loops=false +animation/clip_210/name="" +animation/clip_210/start_frame=0 +animation/clip_210/end_frame=0 +animation/clip_210/loops=false +animation/clip_211/name="" +animation/clip_211/start_frame=0 +animation/clip_211/end_frame=0 +animation/clip_211/loops=false +animation/clip_212/name="" +animation/clip_212/start_frame=0 +animation/clip_212/end_frame=0 +animation/clip_212/loops=false +animation/clip_213/name="" +animation/clip_213/start_frame=0 +animation/clip_213/end_frame=0 +animation/clip_213/loops=false +animation/clip_214/name="" +animation/clip_214/start_frame=0 +animation/clip_214/end_frame=0 +animation/clip_214/loops=false +animation/clip_215/name="" +animation/clip_215/start_frame=0 +animation/clip_215/end_frame=0 +animation/clip_215/loops=false +animation/clip_216/name="" +animation/clip_216/start_frame=0 +animation/clip_216/end_frame=0 +animation/clip_216/loops=false +animation/clip_217/name="" +animation/clip_217/start_frame=0 +animation/clip_217/end_frame=0 +animation/clip_217/loops=false +animation/clip_218/name="" +animation/clip_218/start_frame=0 +animation/clip_218/end_frame=0 +animation/clip_218/loops=false +animation/clip_219/name="" +animation/clip_219/start_frame=0 +animation/clip_219/end_frame=0 +animation/clip_219/loops=false +animation/clip_220/name="" +animation/clip_220/start_frame=0 +animation/clip_220/end_frame=0 +animation/clip_220/loops=false +animation/clip_221/name="" +animation/clip_221/start_frame=0 +animation/clip_221/end_frame=0 +animation/clip_221/loops=false +animation/clip_222/name="" +animation/clip_222/start_frame=0 +animation/clip_222/end_frame=0 +animation/clip_222/loops=false +animation/clip_223/name="" +animation/clip_223/start_frame=0 +animation/clip_223/end_frame=0 +animation/clip_223/loops=false +animation/clip_224/name="" +animation/clip_224/start_frame=0 +animation/clip_224/end_frame=0 +animation/clip_224/loops=false +animation/clip_225/name="" +animation/clip_225/start_frame=0 +animation/clip_225/end_frame=0 +animation/clip_225/loops=false +animation/clip_226/name="" +animation/clip_226/start_frame=0 +animation/clip_226/end_frame=0 +animation/clip_226/loops=false +animation/clip_227/name="" +animation/clip_227/start_frame=0 +animation/clip_227/end_frame=0 +animation/clip_227/loops=false +animation/clip_228/name="" +animation/clip_228/start_frame=0 +animation/clip_228/end_frame=0 +animation/clip_228/loops=false +animation/clip_229/name="" +animation/clip_229/start_frame=0 +animation/clip_229/end_frame=0 +animation/clip_229/loops=false +animation/clip_230/name="" +animation/clip_230/start_frame=0 +animation/clip_230/end_frame=0 +animation/clip_230/loops=false +animation/clip_231/name="" +animation/clip_231/start_frame=0 +animation/clip_231/end_frame=0 +animation/clip_231/loops=false +animation/clip_232/name="" +animation/clip_232/start_frame=0 +animation/clip_232/end_frame=0 +animation/clip_232/loops=false +animation/clip_233/name="" +animation/clip_233/start_frame=0 +animation/clip_233/end_frame=0 +animation/clip_233/loops=false +animation/clip_234/name="" +animation/clip_234/start_frame=0 +animation/clip_234/end_frame=0 +animation/clip_234/loops=false +animation/clip_235/name="" +animation/clip_235/start_frame=0 +animation/clip_235/end_frame=0 +animation/clip_235/loops=false +animation/clip_236/name="" +animation/clip_236/start_frame=0 +animation/clip_236/end_frame=0 +animation/clip_236/loops=false +animation/clip_237/name="" +animation/clip_237/start_frame=0 +animation/clip_237/end_frame=0 +animation/clip_237/loops=false +animation/clip_238/name="" +animation/clip_238/start_frame=0 +animation/clip_238/end_frame=0 +animation/clip_238/loops=false +animation/clip_239/name="" +animation/clip_239/start_frame=0 +animation/clip_239/end_frame=0 +animation/clip_239/loops=false +animation/clip_240/name="" +animation/clip_240/start_frame=0 +animation/clip_240/end_frame=0 +animation/clip_240/loops=false +animation/clip_241/name="" +animation/clip_241/start_frame=0 +animation/clip_241/end_frame=0 +animation/clip_241/loops=false +animation/clip_242/name="" +animation/clip_242/start_frame=0 +animation/clip_242/end_frame=0 +animation/clip_242/loops=false +animation/clip_243/name="" +animation/clip_243/start_frame=0 +animation/clip_243/end_frame=0 +animation/clip_243/loops=false +animation/clip_244/name="" +animation/clip_244/start_frame=0 +animation/clip_244/end_frame=0 +animation/clip_244/loops=false +animation/clip_245/name="" +animation/clip_245/start_frame=0 +animation/clip_245/end_frame=0 +animation/clip_245/loops=false +animation/clip_246/name="" +animation/clip_246/start_frame=0 +animation/clip_246/end_frame=0 +animation/clip_246/loops=false +animation/clip_247/name="" +animation/clip_247/start_frame=0 +animation/clip_247/end_frame=0 +animation/clip_247/loops=false +animation/clip_248/name="" +animation/clip_248/start_frame=0 +animation/clip_248/end_frame=0 +animation/clip_248/loops=false +animation/clip_249/name="" +animation/clip_249/start_frame=0 +animation/clip_249/end_frame=0 +animation/clip_249/loops=false +animation/clip_250/name="" +animation/clip_250/start_frame=0 +animation/clip_250/end_frame=0 +animation/clip_250/loops=false +animation/clip_251/name="" +animation/clip_251/start_frame=0 +animation/clip_251/end_frame=0 +animation/clip_251/loops=false +animation/clip_252/name="" +animation/clip_252/start_frame=0 +animation/clip_252/end_frame=0 +animation/clip_252/loops=false +animation/clip_253/name="" +animation/clip_253/start_frame=0 +animation/clip_253/end_frame=0 +animation/clip_253/loops=false +animation/clip_254/name="" +animation/clip_254/start_frame=0 +animation/clip_254/end_frame=0 +animation/clip_254/loops=false +animation/clip_255/name="" +animation/clip_255/start_frame=0 +animation/clip_255/end_frame=0 +animation/clip_255/loops=false +animation/clip_256/name="" +animation/clip_256/start_frame=0 +animation/clip_256/end_frame=0 +animation/clip_256/loops=false diff --git a/level/common/houses_01/03 gutter.glb b/level/common/houses_01/03 gutter.glb new file mode 100644 index 0000000..0db7df1 Binary files /dev/null and b/level/common/houses_01/03 gutter.glb differ diff --git a/level/common/houses_01/03 gutter.glb.import b/level/common/houses_01/03 gutter.glb.import new file mode 100644 index 0000000..5f4242e --- /dev/null +++ b/level/common/houses_01/03 gutter.glb.import @@ -0,0 +1,1065 @@ +[remap] + +importer="scene" +type="PackedScene" +path="res://.import/03 gutter.glb-f18b82fa5502668efa04082821b175bb.scn" + +[deps] + +source_file="res://level/common/houses_01/03 gutter.glb" +dest_files=[ "res://.import/03 gutter.glb-f18b82fa5502668efa04082821b175bb.scn" ] + +[params] + +nodes/root_type="Spatial" +nodes/root_name="Scene Root" +nodes/root_scale=1.0 +nodes/custom_script="" +nodes/storage=0 +nodes/use_legacy_names=false +materials/location=1 +materials/storage=1 +materials/keep_on_reimport=true +meshes/octahedral_compression=true +meshes/compress=4286 +meshes/ensure_tangents=true +meshes/storage=0 +meshes/light_baking=0 +meshes/lightmap_texel_size=0.1 +skins/use_named_skins=true +external_files/store_in_subdir=false +animation/import=true +animation/fps=15 +animation/filter_script="" +animation/storage=false +animation/keep_custom_tracks=false +animation/optimizer/enabled=true +animation/optimizer/max_linear_error=0.05 +animation/optimizer/max_angular_error=0.01 +animation/optimizer/max_angle=22 +animation/optimizer/remove_unused_tracks=true +animation/clips/amount=0 +animation/clip_1/name="" +animation/clip_1/start_frame=0 +animation/clip_1/end_frame=0 +animation/clip_1/loops=false +animation/clip_2/name="" +animation/clip_2/start_frame=0 +animation/clip_2/end_frame=0 +animation/clip_2/loops=false +animation/clip_3/name="" +animation/clip_3/start_frame=0 +animation/clip_3/end_frame=0 +animation/clip_3/loops=false +animation/clip_4/name="" +animation/clip_4/start_frame=0 +animation/clip_4/end_frame=0 +animation/clip_4/loops=false +animation/clip_5/name="" +animation/clip_5/start_frame=0 +animation/clip_5/end_frame=0 +animation/clip_5/loops=false +animation/clip_6/name="" +animation/clip_6/start_frame=0 +animation/clip_6/end_frame=0 +animation/clip_6/loops=false +animation/clip_7/name="" +animation/clip_7/start_frame=0 +animation/clip_7/end_frame=0 +animation/clip_7/loops=false +animation/clip_8/name="" +animation/clip_8/start_frame=0 +animation/clip_8/end_frame=0 +animation/clip_8/loops=false +animation/clip_9/name="" +animation/clip_9/start_frame=0 +animation/clip_9/end_frame=0 +animation/clip_9/loops=false +animation/clip_10/name="" +animation/clip_10/start_frame=0 +animation/clip_10/end_frame=0 +animation/clip_10/loops=false +animation/clip_11/name="" +animation/clip_11/start_frame=0 +animation/clip_11/end_frame=0 +animation/clip_11/loops=false +animation/clip_12/name="" +animation/clip_12/start_frame=0 +animation/clip_12/end_frame=0 +animation/clip_12/loops=false +animation/clip_13/name="" +animation/clip_13/start_frame=0 +animation/clip_13/end_frame=0 +animation/clip_13/loops=false +animation/clip_14/name="" +animation/clip_14/start_frame=0 +animation/clip_14/end_frame=0 +animation/clip_14/loops=false +animation/clip_15/name="" +animation/clip_15/start_frame=0 +animation/clip_15/end_frame=0 +animation/clip_15/loops=false +animation/clip_16/name="" +animation/clip_16/start_frame=0 +animation/clip_16/end_frame=0 +animation/clip_16/loops=false +animation/clip_17/name="" +animation/clip_17/start_frame=0 +animation/clip_17/end_frame=0 +animation/clip_17/loops=false +animation/clip_18/name="" +animation/clip_18/start_frame=0 +animation/clip_18/end_frame=0 +animation/clip_18/loops=false +animation/clip_19/name="" +animation/clip_19/start_frame=0 +animation/clip_19/end_frame=0 +animation/clip_19/loops=false +animation/clip_20/name="" +animation/clip_20/start_frame=0 +animation/clip_20/end_frame=0 +animation/clip_20/loops=false +animation/clip_21/name="" +animation/clip_21/start_frame=0 +animation/clip_21/end_frame=0 +animation/clip_21/loops=false +animation/clip_22/name="" +animation/clip_22/start_frame=0 +animation/clip_22/end_frame=0 +animation/clip_22/loops=false +animation/clip_23/name="" +animation/clip_23/start_frame=0 +animation/clip_23/end_frame=0 +animation/clip_23/loops=false +animation/clip_24/name="" +animation/clip_24/start_frame=0 +animation/clip_24/end_frame=0 +animation/clip_24/loops=false +animation/clip_25/name="" +animation/clip_25/start_frame=0 +animation/clip_25/end_frame=0 +animation/clip_25/loops=false +animation/clip_26/name="" +animation/clip_26/start_frame=0 +animation/clip_26/end_frame=0 +animation/clip_26/loops=false +animation/clip_27/name="" +animation/clip_27/start_frame=0 +animation/clip_27/end_frame=0 +animation/clip_27/loops=false +animation/clip_28/name="" +animation/clip_28/start_frame=0 +animation/clip_28/end_frame=0 +animation/clip_28/loops=false +animation/clip_29/name="" +animation/clip_29/start_frame=0 +animation/clip_29/end_frame=0 +animation/clip_29/loops=false +animation/clip_30/name="" +animation/clip_30/start_frame=0 +animation/clip_30/end_frame=0 +animation/clip_30/loops=false +animation/clip_31/name="" +animation/clip_31/start_frame=0 +animation/clip_31/end_frame=0 +animation/clip_31/loops=false +animation/clip_32/name="" +animation/clip_32/start_frame=0 +animation/clip_32/end_frame=0 +animation/clip_32/loops=false +animation/clip_33/name="" +animation/clip_33/start_frame=0 +animation/clip_33/end_frame=0 +animation/clip_33/loops=false +animation/clip_34/name="" +animation/clip_34/start_frame=0 +animation/clip_34/end_frame=0 +animation/clip_34/loops=false +animation/clip_35/name="" +animation/clip_35/start_frame=0 +animation/clip_35/end_frame=0 +animation/clip_35/loops=false +animation/clip_36/name="" +animation/clip_36/start_frame=0 +animation/clip_36/end_frame=0 +animation/clip_36/loops=false +animation/clip_37/name="" +animation/clip_37/start_frame=0 +animation/clip_37/end_frame=0 +animation/clip_37/loops=false +animation/clip_38/name="" +animation/clip_38/start_frame=0 +animation/clip_38/end_frame=0 +animation/clip_38/loops=false +animation/clip_39/name="" +animation/clip_39/start_frame=0 +animation/clip_39/end_frame=0 +animation/clip_39/loops=false +animation/clip_40/name="" +animation/clip_40/start_frame=0 +animation/clip_40/end_frame=0 +animation/clip_40/loops=false +animation/clip_41/name="" +animation/clip_41/start_frame=0 +animation/clip_41/end_frame=0 +animation/clip_41/loops=false +animation/clip_42/name="" +animation/clip_42/start_frame=0 +animation/clip_42/end_frame=0 +animation/clip_42/loops=false +animation/clip_43/name="" +animation/clip_43/start_frame=0 +animation/clip_43/end_frame=0 +animation/clip_43/loops=false +animation/clip_44/name="" +animation/clip_44/start_frame=0 +animation/clip_44/end_frame=0 +animation/clip_44/loops=false +animation/clip_45/name="" +animation/clip_45/start_frame=0 +animation/clip_45/end_frame=0 +animation/clip_45/loops=false +animation/clip_46/name="" +animation/clip_46/start_frame=0 +animation/clip_46/end_frame=0 +animation/clip_46/loops=false +animation/clip_47/name="" +animation/clip_47/start_frame=0 +animation/clip_47/end_frame=0 +animation/clip_47/loops=false +animation/clip_48/name="" +animation/clip_48/start_frame=0 +animation/clip_48/end_frame=0 +animation/clip_48/loops=false +animation/clip_49/name="" +animation/clip_49/start_frame=0 +animation/clip_49/end_frame=0 +animation/clip_49/loops=false +animation/clip_50/name="" +animation/clip_50/start_frame=0 +animation/clip_50/end_frame=0 +animation/clip_50/loops=false +animation/clip_51/name="" +animation/clip_51/start_frame=0 +animation/clip_51/end_frame=0 +animation/clip_51/loops=false +animation/clip_52/name="" +animation/clip_52/start_frame=0 +animation/clip_52/end_frame=0 +animation/clip_52/loops=false +animation/clip_53/name="" +animation/clip_53/start_frame=0 +animation/clip_53/end_frame=0 +animation/clip_53/loops=false +animation/clip_54/name="" +animation/clip_54/start_frame=0 +animation/clip_54/end_frame=0 +animation/clip_54/loops=false +animation/clip_55/name="" +animation/clip_55/start_frame=0 +animation/clip_55/end_frame=0 +animation/clip_55/loops=false +animation/clip_56/name="" +animation/clip_56/start_frame=0 +animation/clip_56/end_frame=0 +animation/clip_56/loops=false +animation/clip_57/name="" +animation/clip_57/start_frame=0 +animation/clip_57/end_frame=0 +animation/clip_57/loops=false +animation/clip_58/name="" +animation/clip_58/start_frame=0 +animation/clip_58/end_frame=0 +animation/clip_58/loops=false +animation/clip_59/name="" +animation/clip_59/start_frame=0 +animation/clip_59/end_frame=0 +animation/clip_59/loops=false +animation/clip_60/name="" +animation/clip_60/start_frame=0 +animation/clip_60/end_frame=0 +animation/clip_60/loops=false +animation/clip_61/name="" +animation/clip_61/start_frame=0 +animation/clip_61/end_frame=0 +animation/clip_61/loops=false +animation/clip_62/name="" +animation/clip_62/start_frame=0 +animation/clip_62/end_frame=0 +animation/clip_62/loops=false +animation/clip_63/name="" +animation/clip_63/start_frame=0 +animation/clip_63/end_frame=0 +animation/clip_63/loops=false +animation/clip_64/name="" +animation/clip_64/start_frame=0 +animation/clip_64/end_frame=0 +animation/clip_64/loops=false +animation/clip_65/name="" +animation/clip_65/start_frame=0 +animation/clip_65/end_frame=0 +animation/clip_65/loops=false +animation/clip_66/name="" +animation/clip_66/start_frame=0 +animation/clip_66/end_frame=0 +animation/clip_66/loops=false +animation/clip_67/name="" +animation/clip_67/start_frame=0 +animation/clip_67/end_frame=0 +animation/clip_67/loops=false +animation/clip_68/name="" +animation/clip_68/start_frame=0 +animation/clip_68/end_frame=0 +animation/clip_68/loops=false +animation/clip_69/name="" +animation/clip_69/start_frame=0 +animation/clip_69/end_frame=0 +animation/clip_69/loops=false +animation/clip_70/name="" +animation/clip_70/start_frame=0 +animation/clip_70/end_frame=0 +animation/clip_70/loops=false +animation/clip_71/name="" +animation/clip_71/start_frame=0 +animation/clip_71/end_frame=0 +animation/clip_71/loops=false +animation/clip_72/name="" +animation/clip_72/start_frame=0 +animation/clip_72/end_frame=0 +animation/clip_72/loops=false +animation/clip_73/name="" +animation/clip_73/start_frame=0 +animation/clip_73/end_frame=0 +animation/clip_73/loops=false +animation/clip_74/name="" +animation/clip_74/start_frame=0 +animation/clip_74/end_frame=0 +animation/clip_74/loops=false +animation/clip_75/name="" +animation/clip_75/start_frame=0 +animation/clip_75/end_frame=0 +animation/clip_75/loops=false +animation/clip_76/name="" +animation/clip_76/start_frame=0 +animation/clip_76/end_frame=0 +animation/clip_76/loops=false +animation/clip_77/name="" +animation/clip_77/start_frame=0 +animation/clip_77/end_frame=0 +animation/clip_77/loops=false +animation/clip_78/name="" +animation/clip_78/start_frame=0 +animation/clip_78/end_frame=0 +animation/clip_78/loops=false +animation/clip_79/name="" +animation/clip_79/start_frame=0 +animation/clip_79/end_frame=0 +animation/clip_79/loops=false +animation/clip_80/name="" +animation/clip_80/start_frame=0 +animation/clip_80/end_frame=0 +animation/clip_80/loops=false +animation/clip_81/name="" +animation/clip_81/start_frame=0 +animation/clip_81/end_frame=0 +animation/clip_81/loops=false +animation/clip_82/name="" +animation/clip_82/start_frame=0 +animation/clip_82/end_frame=0 +animation/clip_82/loops=false +animation/clip_83/name="" +animation/clip_83/start_frame=0 +animation/clip_83/end_frame=0 +animation/clip_83/loops=false +animation/clip_84/name="" +animation/clip_84/start_frame=0 +animation/clip_84/end_frame=0 +animation/clip_84/loops=false +animation/clip_85/name="" +animation/clip_85/start_frame=0 +animation/clip_85/end_frame=0 +animation/clip_85/loops=false +animation/clip_86/name="" +animation/clip_86/start_frame=0 +animation/clip_86/end_frame=0 +animation/clip_86/loops=false +animation/clip_87/name="" +animation/clip_87/start_frame=0 +animation/clip_87/end_frame=0 +animation/clip_87/loops=false +animation/clip_88/name="" +animation/clip_88/start_frame=0 +animation/clip_88/end_frame=0 +animation/clip_88/loops=false +animation/clip_89/name="" +animation/clip_89/start_frame=0 +animation/clip_89/end_frame=0 +animation/clip_89/loops=false +animation/clip_90/name="" +animation/clip_90/start_frame=0 +animation/clip_90/end_frame=0 +animation/clip_90/loops=false +animation/clip_91/name="" +animation/clip_91/start_frame=0 +animation/clip_91/end_frame=0 +animation/clip_91/loops=false +animation/clip_92/name="" +animation/clip_92/start_frame=0 +animation/clip_92/end_frame=0 +animation/clip_92/loops=false +animation/clip_93/name="" +animation/clip_93/start_frame=0 +animation/clip_93/end_frame=0 +animation/clip_93/loops=false +animation/clip_94/name="" +animation/clip_94/start_frame=0 +animation/clip_94/end_frame=0 +animation/clip_94/loops=false +animation/clip_95/name="" +animation/clip_95/start_frame=0 +animation/clip_95/end_frame=0 +animation/clip_95/loops=false +animation/clip_96/name="" +animation/clip_96/start_frame=0 +animation/clip_96/end_frame=0 +animation/clip_96/loops=false +animation/clip_97/name="" +animation/clip_97/start_frame=0 +animation/clip_97/end_frame=0 +animation/clip_97/loops=false +animation/clip_98/name="" +animation/clip_98/start_frame=0 +animation/clip_98/end_frame=0 +animation/clip_98/loops=false +animation/clip_99/name="" +animation/clip_99/start_frame=0 +animation/clip_99/end_frame=0 +animation/clip_99/loops=false +animation/clip_100/name="" +animation/clip_100/start_frame=0 +animation/clip_100/end_frame=0 +animation/clip_100/loops=false +animation/clip_101/name="" +animation/clip_101/start_frame=0 +animation/clip_101/end_frame=0 +animation/clip_101/loops=false +animation/clip_102/name="" +animation/clip_102/start_frame=0 +animation/clip_102/end_frame=0 +animation/clip_102/loops=false +animation/clip_103/name="" +animation/clip_103/start_frame=0 +animation/clip_103/end_frame=0 +animation/clip_103/loops=false +animation/clip_104/name="" +animation/clip_104/start_frame=0 +animation/clip_104/end_frame=0 +animation/clip_104/loops=false +animation/clip_105/name="" +animation/clip_105/start_frame=0 +animation/clip_105/end_frame=0 +animation/clip_105/loops=false +animation/clip_106/name="" +animation/clip_106/start_frame=0 +animation/clip_106/end_frame=0 +animation/clip_106/loops=false +animation/clip_107/name="" +animation/clip_107/start_frame=0 +animation/clip_107/end_frame=0 +animation/clip_107/loops=false +animation/clip_108/name="" +animation/clip_108/start_frame=0 +animation/clip_108/end_frame=0 +animation/clip_108/loops=false +animation/clip_109/name="" +animation/clip_109/start_frame=0 +animation/clip_109/end_frame=0 +animation/clip_109/loops=false +animation/clip_110/name="" +animation/clip_110/start_frame=0 +animation/clip_110/end_frame=0 +animation/clip_110/loops=false +animation/clip_111/name="" +animation/clip_111/start_frame=0 +animation/clip_111/end_frame=0 +animation/clip_111/loops=false +animation/clip_112/name="" +animation/clip_112/start_frame=0 +animation/clip_112/end_frame=0 +animation/clip_112/loops=false +animation/clip_113/name="" +animation/clip_113/start_frame=0 +animation/clip_113/end_frame=0 +animation/clip_113/loops=false +animation/clip_114/name="" +animation/clip_114/start_frame=0 +animation/clip_114/end_frame=0 +animation/clip_114/loops=false +animation/clip_115/name="" +animation/clip_115/start_frame=0 +animation/clip_115/end_frame=0 +animation/clip_115/loops=false +animation/clip_116/name="" +animation/clip_116/start_frame=0 +animation/clip_116/end_frame=0 +animation/clip_116/loops=false +animation/clip_117/name="" +animation/clip_117/start_frame=0 +animation/clip_117/end_frame=0 +animation/clip_117/loops=false +animation/clip_118/name="" +animation/clip_118/start_frame=0 +animation/clip_118/end_frame=0 +animation/clip_118/loops=false +animation/clip_119/name="" +animation/clip_119/start_frame=0 +animation/clip_119/end_frame=0 +animation/clip_119/loops=false +animation/clip_120/name="" +animation/clip_120/start_frame=0 +animation/clip_120/end_frame=0 +animation/clip_120/loops=false +animation/clip_121/name="" +animation/clip_121/start_frame=0 +animation/clip_121/end_frame=0 +animation/clip_121/loops=false +animation/clip_122/name="" +animation/clip_122/start_frame=0 +animation/clip_122/end_frame=0 +animation/clip_122/loops=false +animation/clip_123/name="" +animation/clip_123/start_frame=0 +animation/clip_123/end_frame=0 +animation/clip_123/loops=false +animation/clip_124/name="" +animation/clip_124/start_frame=0 +animation/clip_124/end_frame=0 +animation/clip_124/loops=false +animation/clip_125/name="" +animation/clip_125/start_frame=0 +animation/clip_125/end_frame=0 +animation/clip_125/loops=false +animation/clip_126/name="" +animation/clip_126/start_frame=0 +animation/clip_126/end_frame=0 +animation/clip_126/loops=false +animation/clip_127/name="" +animation/clip_127/start_frame=0 +animation/clip_127/end_frame=0 +animation/clip_127/loops=false +animation/clip_128/name="" +animation/clip_128/start_frame=0 +animation/clip_128/end_frame=0 +animation/clip_128/loops=false +animation/clip_129/name="" +animation/clip_129/start_frame=0 +animation/clip_129/end_frame=0 +animation/clip_129/loops=false +animation/clip_130/name="" +animation/clip_130/start_frame=0 +animation/clip_130/end_frame=0 +animation/clip_130/loops=false +animation/clip_131/name="" +animation/clip_131/start_frame=0 +animation/clip_131/end_frame=0 +animation/clip_131/loops=false +animation/clip_132/name="" +animation/clip_132/start_frame=0 +animation/clip_132/end_frame=0 +animation/clip_132/loops=false +animation/clip_133/name="" +animation/clip_133/start_frame=0 +animation/clip_133/end_frame=0 +animation/clip_133/loops=false +animation/clip_134/name="" +animation/clip_134/start_frame=0 +animation/clip_134/end_frame=0 +animation/clip_134/loops=false +animation/clip_135/name="" +animation/clip_135/start_frame=0 +animation/clip_135/end_frame=0 +animation/clip_135/loops=false +animation/clip_136/name="" +animation/clip_136/start_frame=0 +animation/clip_136/end_frame=0 +animation/clip_136/loops=false +animation/clip_137/name="" +animation/clip_137/start_frame=0 +animation/clip_137/end_frame=0 +animation/clip_137/loops=false +animation/clip_138/name="" +animation/clip_138/start_frame=0 +animation/clip_138/end_frame=0 +animation/clip_138/loops=false +animation/clip_139/name="" +animation/clip_139/start_frame=0 +animation/clip_139/end_frame=0 +animation/clip_139/loops=false +animation/clip_140/name="" +animation/clip_140/start_frame=0 +animation/clip_140/end_frame=0 +animation/clip_140/loops=false +animation/clip_141/name="" +animation/clip_141/start_frame=0 +animation/clip_141/end_frame=0 +animation/clip_141/loops=false +animation/clip_142/name="" +animation/clip_142/start_frame=0 +animation/clip_142/end_frame=0 +animation/clip_142/loops=false +animation/clip_143/name="" +animation/clip_143/start_frame=0 +animation/clip_143/end_frame=0 +animation/clip_143/loops=false +animation/clip_144/name="" +animation/clip_144/start_frame=0 +animation/clip_144/end_frame=0 +animation/clip_144/loops=false +animation/clip_145/name="" +animation/clip_145/start_frame=0 +animation/clip_145/end_frame=0 +animation/clip_145/loops=false +animation/clip_146/name="" +animation/clip_146/start_frame=0 +animation/clip_146/end_frame=0 +animation/clip_146/loops=false +animation/clip_147/name="" +animation/clip_147/start_frame=0 +animation/clip_147/end_frame=0 +animation/clip_147/loops=false +animation/clip_148/name="" +animation/clip_148/start_frame=0 +animation/clip_148/end_frame=0 +animation/clip_148/loops=false +animation/clip_149/name="" +animation/clip_149/start_frame=0 +animation/clip_149/end_frame=0 +animation/clip_149/loops=false +animation/clip_150/name="" +animation/clip_150/start_frame=0 +animation/clip_150/end_frame=0 +animation/clip_150/loops=false +animation/clip_151/name="" +animation/clip_151/start_frame=0 +animation/clip_151/end_frame=0 +animation/clip_151/loops=false +animation/clip_152/name="" +animation/clip_152/start_frame=0 +animation/clip_152/end_frame=0 +animation/clip_152/loops=false +animation/clip_153/name="" +animation/clip_153/start_frame=0 +animation/clip_153/end_frame=0 +animation/clip_153/loops=false +animation/clip_154/name="" +animation/clip_154/start_frame=0 +animation/clip_154/end_frame=0 +animation/clip_154/loops=false +animation/clip_155/name="" +animation/clip_155/start_frame=0 +animation/clip_155/end_frame=0 +animation/clip_155/loops=false +animation/clip_156/name="" +animation/clip_156/start_frame=0 +animation/clip_156/end_frame=0 +animation/clip_156/loops=false +animation/clip_157/name="" +animation/clip_157/start_frame=0 +animation/clip_157/end_frame=0 +animation/clip_157/loops=false +animation/clip_158/name="" +animation/clip_158/start_frame=0 +animation/clip_158/end_frame=0 +animation/clip_158/loops=false +animation/clip_159/name="" +animation/clip_159/start_frame=0 +animation/clip_159/end_frame=0 +animation/clip_159/loops=false +animation/clip_160/name="" +animation/clip_160/start_frame=0 +animation/clip_160/end_frame=0 +animation/clip_160/loops=false +animation/clip_161/name="" +animation/clip_161/start_frame=0 +animation/clip_161/end_frame=0 +animation/clip_161/loops=false +animation/clip_162/name="" +animation/clip_162/start_frame=0 +animation/clip_162/end_frame=0 +animation/clip_162/loops=false +animation/clip_163/name="" +animation/clip_163/start_frame=0 +animation/clip_163/end_frame=0 +animation/clip_163/loops=false +animation/clip_164/name="" +animation/clip_164/start_frame=0 +animation/clip_164/end_frame=0 +animation/clip_164/loops=false +animation/clip_165/name="" +animation/clip_165/start_frame=0 +animation/clip_165/end_frame=0 +animation/clip_165/loops=false +animation/clip_166/name="" +animation/clip_166/start_frame=0 +animation/clip_166/end_frame=0 +animation/clip_166/loops=false +animation/clip_167/name="" +animation/clip_167/start_frame=0 +animation/clip_167/end_frame=0 +animation/clip_167/loops=false +animation/clip_168/name="" +animation/clip_168/start_frame=0 +animation/clip_168/end_frame=0 +animation/clip_168/loops=false +animation/clip_169/name="" +animation/clip_169/start_frame=0 +animation/clip_169/end_frame=0 +animation/clip_169/loops=false +animation/clip_170/name="" +animation/clip_170/start_frame=0 +animation/clip_170/end_frame=0 +animation/clip_170/loops=false +animation/clip_171/name="" +animation/clip_171/start_frame=0 +animation/clip_171/end_frame=0 +animation/clip_171/loops=false +animation/clip_172/name="" +animation/clip_172/start_frame=0 +animation/clip_172/end_frame=0 +animation/clip_172/loops=false +animation/clip_173/name="" +animation/clip_173/start_frame=0 +animation/clip_173/end_frame=0 +animation/clip_173/loops=false +animation/clip_174/name="" +animation/clip_174/start_frame=0 +animation/clip_174/end_frame=0 +animation/clip_174/loops=false +animation/clip_175/name="" +animation/clip_175/start_frame=0 +animation/clip_175/end_frame=0 +animation/clip_175/loops=false +animation/clip_176/name="" +animation/clip_176/start_frame=0 +animation/clip_176/end_frame=0 +animation/clip_176/loops=false +animation/clip_177/name="" +animation/clip_177/start_frame=0 +animation/clip_177/end_frame=0 +animation/clip_177/loops=false +animation/clip_178/name="" +animation/clip_178/start_frame=0 +animation/clip_178/end_frame=0 +animation/clip_178/loops=false +animation/clip_179/name="" +animation/clip_179/start_frame=0 +animation/clip_179/end_frame=0 +animation/clip_179/loops=false +animation/clip_180/name="" +animation/clip_180/start_frame=0 +animation/clip_180/end_frame=0 +animation/clip_180/loops=false +animation/clip_181/name="" +animation/clip_181/start_frame=0 +animation/clip_181/end_frame=0 +animation/clip_181/loops=false +animation/clip_182/name="" +animation/clip_182/start_frame=0 +animation/clip_182/end_frame=0 +animation/clip_182/loops=false +animation/clip_183/name="" +animation/clip_183/start_frame=0 +animation/clip_183/end_frame=0 +animation/clip_183/loops=false +animation/clip_184/name="" +animation/clip_184/start_frame=0 +animation/clip_184/end_frame=0 +animation/clip_184/loops=false +animation/clip_185/name="" +animation/clip_185/start_frame=0 +animation/clip_185/end_frame=0 +animation/clip_185/loops=false +animation/clip_186/name="" +animation/clip_186/start_frame=0 +animation/clip_186/end_frame=0 +animation/clip_186/loops=false +animation/clip_187/name="" +animation/clip_187/start_frame=0 +animation/clip_187/end_frame=0 +animation/clip_187/loops=false +animation/clip_188/name="" +animation/clip_188/start_frame=0 +animation/clip_188/end_frame=0 +animation/clip_188/loops=false +animation/clip_189/name="" +animation/clip_189/start_frame=0 +animation/clip_189/end_frame=0 +animation/clip_189/loops=false +animation/clip_190/name="" +animation/clip_190/start_frame=0 +animation/clip_190/end_frame=0 +animation/clip_190/loops=false +animation/clip_191/name="" +animation/clip_191/start_frame=0 +animation/clip_191/end_frame=0 +animation/clip_191/loops=false +animation/clip_192/name="" +animation/clip_192/start_frame=0 +animation/clip_192/end_frame=0 +animation/clip_192/loops=false +animation/clip_193/name="" +animation/clip_193/start_frame=0 +animation/clip_193/end_frame=0 +animation/clip_193/loops=false +animation/clip_194/name="" +animation/clip_194/start_frame=0 +animation/clip_194/end_frame=0 +animation/clip_194/loops=false +animation/clip_195/name="" +animation/clip_195/start_frame=0 +animation/clip_195/end_frame=0 +animation/clip_195/loops=false +animation/clip_196/name="" +animation/clip_196/start_frame=0 +animation/clip_196/end_frame=0 +animation/clip_196/loops=false +animation/clip_197/name="" +animation/clip_197/start_frame=0 +animation/clip_197/end_frame=0 +animation/clip_197/loops=false +animation/clip_198/name="" +animation/clip_198/start_frame=0 +animation/clip_198/end_frame=0 +animation/clip_198/loops=false +animation/clip_199/name="" +animation/clip_199/start_frame=0 +animation/clip_199/end_frame=0 +animation/clip_199/loops=false +animation/clip_200/name="" +animation/clip_200/start_frame=0 +animation/clip_200/end_frame=0 +animation/clip_200/loops=false +animation/clip_201/name="" +animation/clip_201/start_frame=0 +animation/clip_201/end_frame=0 +animation/clip_201/loops=false +animation/clip_202/name="" +animation/clip_202/start_frame=0 +animation/clip_202/end_frame=0 +animation/clip_202/loops=false +animation/clip_203/name="" +animation/clip_203/start_frame=0 +animation/clip_203/end_frame=0 +animation/clip_203/loops=false +animation/clip_204/name="" +animation/clip_204/start_frame=0 +animation/clip_204/end_frame=0 +animation/clip_204/loops=false +animation/clip_205/name="" +animation/clip_205/start_frame=0 +animation/clip_205/end_frame=0 +animation/clip_205/loops=false +animation/clip_206/name="" +animation/clip_206/start_frame=0 +animation/clip_206/end_frame=0 +animation/clip_206/loops=false +animation/clip_207/name="" +animation/clip_207/start_frame=0 +animation/clip_207/end_frame=0 +animation/clip_207/loops=false +animation/clip_208/name="" +animation/clip_208/start_frame=0 +animation/clip_208/end_frame=0 +animation/clip_208/loops=false +animation/clip_209/name="" +animation/clip_209/start_frame=0 +animation/clip_209/end_frame=0 +animation/clip_209/loops=false +animation/clip_210/name="" +animation/clip_210/start_frame=0 +animation/clip_210/end_frame=0 +animation/clip_210/loops=false +animation/clip_211/name="" +animation/clip_211/start_frame=0 +animation/clip_211/end_frame=0 +animation/clip_211/loops=false +animation/clip_212/name="" +animation/clip_212/start_frame=0 +animation/clip_212/end_frame=0 +animation/clip_212/loops=false +animation/clip_213/name="" +animation/clip_213/start_frame=0 +animation/clip_213/end_frame=0 +animation/clip_213/loops=false +animation/clip_214/name="" +animation/clip_214/start_frame=0 +animation/clip_214/end_frame=0 +animation/clip_214/loops=false +animation/clip_215/name="" +animation/clip_215/start_frame=0 +animation/clip_215/end_frame=0 +animation/clip_215/loops=false +animation/clip_216/name="" +animation/clip_216/start_frame=0 +animation/clip_216/end_frame=0 +animation/clip_216/loops=false +animation/clip_217/name="" +animation/clip_217/start_frame=0 +animation/clip_217/end_frame=0 +animation/clip_217/loops=false +animation/clip_218/name="" +animation/clip_218/start_frame=0 +animation/clip_218/end_frame=0 +animation/clip_218/loops=false +animation/clip_219/name="" +animation/clip_219/start_frame=0 +animation/clip_219/end_frame=0 +animation/clip_219/loops=false +animation/clip_220/name="" +animation/clip_220/start_frame=0 +animation/clip_220/end_frame=0 +animation/clip_220/loops=false +animation/clip_221/name="" +animation/clip_221/start_frame=0 +animation/clip_221/end_frame=0 +animation/clip_221/loops=false +animation/clip_222/name="" +animation/clip_222/start_frame=0 +animation/clip_222/end_frame=0 +animation/clip_222/loops=false +animation/clip_223/name="" +animation/clip_223/start_frame=0 +animation/clip_223/end_frame=0 +animation/clip_223/loops=false +animation/clip_224/name="" +animation/clip_224/start_frame=0 +animation/clip_224/end_frame=0 +animation/clip_224/loops=false +animation/clip_225/name="" +animation/clip_225/start_frame=0 +animation/clip_225/end_frame=0 +animation/clip_225/loops=false +animation/clip_226/name="" +animation/clip_226/start_frame=0 +animation/clip_226/end_frame=0 +animation/clip_226/loops=false +animation/clip_227/name="" +animation/clip_227/start_frame=0 +animation/clip_227/end_frame=0 +animation/clip_227/loops=false +animation/clip_228/name="" +animation/clip_228/start_frame=0 +animation/clip_228/end_frame=0 +animation/clip_228/loops=false +animation/clip_229/name="" +animation/clip_229/start_frame=0 +animation/clip_229/end_frame=0 +animation/clip_229/loops=false +animation/clip_230/name="" +animation/clip_230/start_frame=0 +animation/clip_230/end_frame=0 +animation/clip_230/loops=false +animation/clip_231/name="" +animation/clip_231/start_frame=0 +animation/clip_231/end_frame=0 +animation/clip_231/loops=false +animation/clip_232/name="" +animation/clip_232/start_frame=0 +animation/clip_232/end_frame=0 +animation/clip_232/loops=false +animation/clip_233/name="" +animation/clip_233/start_frame=0 +animation/clip_233/end_frame=0 +animation/clip_233/loops=false +animation/clip_234/name="" +animation/clip_234/start_frame=0 +animation/clip_234/end_frame=0 +animation/clip_234/loops=false +animation/clip_235/name="" +animation/clip_235/start_frame=0 +animation/clip_235/end_frame=0 +animation/clip_235/loops=false +animation/clip_236/name="" +animation/clip_236/start_frame=0 +animation/clip_236/end_frame=0 +animation/clip_236/loops=false +animation/clip_237/name="" +animation/clip_237/start_frame=0 +animation/clip_237/end_frame=0 +animation/clip_237/loops=false +animation/clip_238/name="" +animation/clip_238/start_frame=0 +animation/clip_238/end_frame=0 +animation/clip_238/loops=false +animation/clip_239/name="" +animation/clip_239/start_frame=0 +animation/clip_239/end_frame=0 +animation/clip_239/loops=false +animation/clip_240/name="" +animation/clip_240/start_frame=0 +animation/clip_240/end_frame=0 +animation/clip_240/loops=false +animation/clip_241/name="" +animation/clip_241/start_frame=0 +animation/clip_241/end_frame=0 +animation/clip_241/loops=false +animation/clip_242/name="" +animation/clip_242/start_frame=0 +animation/clip_242/end_frame=0 +animation/clip_242/loops=false +animation/clip_243/name="" +animation/clip_243/start_frame=0 +animation/clip_243/end_frame=0 +animation/clip_243/loops=false +animation/clip_244/name="" +animation/clip_244/start_frame=0 +animation/clip_244/end_frame=0 +animation/clip_244/loops=false +animation/clip_245/name="" +animation/clip_245/start_frame=0 +animation/clip_245/end_frame=0 +animation/clip_245/loops=false +animation/clip_246/name="" +animation/clip_246/start_frame=0 +animation/clip_246/end_frame=0 +animation/clip_246/loops=false +animation/clip_247/name="" +animation/clip_247/start_frame=0 +animation/clip_247/end_frame=0 +animation/clip_247/loops=false +animation/clip_248/name="" +animation/clip_248/start_frame=0 +animation/clip_248/end_frame=0 +animation/clip_248/loops=false +animation/clip_249/name="" +animation/clip_249/start_frame=0 +animation/clip_249/end_frame=0 +animation/clip_249/loops=false +animation/clip_250/name="" +animation/clip_250/start_frame=0 +animation/clip_250/end_frame=0 +animation/clip_250/loops=false +animation/clip_251/name="" +animation/clip_251/start_frame=0 +animation/clip_251/end_frame=0 +animation/clip_251/loops=false +animation/clip_252/name="" +animation/clip_252/start_frame=0 +animation/clip_252/end_frame=0 +animation/clip_252/loops=false +animation/clip_253/name="" +animation/clip_253/start_frame=0 +animation/clip_253/end_frame=0 +animation/clip_253/loops=false +animation/clip_254/name="" +animation/clip_254/start_frame=0 +animation/clip_254/end_frame=0 +animation/clip_254/loops=false +animation/clip_255/name="" +animation/clip_255/start_frame=0 +animation/clip_255/end_frame=0 +animation/clip_255/loops=false +animation/clip_256/name="" +animation/clip_256/start_frame=0 +animation/clip_256/end_frame=0 +animation/clip_256/loops=false diff --git a/level/common/houses_01/03.glb b/level/common/houses_01/03.glb new file mode 100644 index 0000000..4b3a812 Binary files /dev/null and b/level/common/houses_01/03.glb differ diff --git a/level/common/houses_01/03.glb.import b/level/common/houses_01/03.glb.import new file mode 100644 index 0000000..b2b5bec --- /dev/null +++ b/level/common/houses_01/03.glb.import @@ -0,0 +1,1065 @@ +[remap] + +importer="scene" +type="PackedScene" +path="res://.import/03.glb-2189fa69163b8a5a99194f5f3ff8d20e.scn" + +[deps] + +source_file="res://level/common/houses_01/03.glb" +dest_files=[ "res://.import/03.glb-2189fa69163b8a5a99194f5f3ff8d20e.scn" ] + +[params] + +nodes/root_type="Spatial" +nodes/root_name="Scene Root" +nodes/root_scale=1.0 +nodes/custom_script="" +nodes/storage=0 +nodes/use_legacy_names=false +materials/location=1 +materials/storage=1 +materials/keep_on_reimport=true +meshes/octahedral_compression=true +meshes/compress=4286 +meshes/ensure_tangents=true +meshes/storage=0 +meshes/light_baking=0 +meshes/lightmap_texel_size=0.1 +skins/use_named_skins=true +external_files/store_in_subdir=false +animation/import=true +animation/fps=15 +animation/filter_script="" +animation/storage=false +animation/keep_custom_tracks=false +animation/optimizer/enabled=true +animation/optimizer/max_linear_error=0.05 +animation/optimizer/max_angular_error=0.01 +animation/optimizer/max_angle=22 +animation/optimizer/remove_unused_tracks=true +animation/clips/amount=0 +animation/clip_1/name="" +animation/clip_1/start_frame=0 +animation/clip_1/end_frame=0 +animation/clip_1/loops=false +animation/clip_2/name="" +animation/clip_2/start_frame=0 +animation/clip_2/end_frame=0 +animation/clip_2/loops=false +animation/clip_3/name="" +animation/clip_3/start_frame=0 +animation/clip_3/end_frame=0 +animation/clip_3/loops=false +animation/clip_4/name="" +animation/clip_4/start_frame=0 +animation/clip_4/end_frame=0 +animation/clip_4/loops=false +animation/clip_5/name="" +animation/clip_5/start_frame=0 +animation/clip_5/end_frame=0 +animation/clip_5/loops=false +animation/clip_6/name="" +animation/clip_6/start_frame=0 +animation/clip_6/end_frame=0 +animation/clip_6/loops=false +animation/clip_7/name="" +animation/clip_7/start_frame=0 +animation/clip_7/end_frame=0 +animation/clip_7/loops=false +animation/clip_8/name="" +animation/clip_8/start_frame=0 +animation/clip_8/end_frame=0 +animation/clip_8/loops=false +animation/clip_9/name="" +animation/clip_9/start_frame=0 +animation/clip_9/end_frame=0 +animation/clip_9/loops=false +animation/clip_10/name="" +animation/clip_10/start_frame=0 +animation/clip_10/end_frame=0 +animation/clip_10/loops=false +animation/clip_11/name="" +animation/clip_11/start_frame=0 +animation/clip_11/end_frame=0 +animation/clip_11/loops=false +animation/clip_12/name="" +animation/clip_12/start_frame=0 +animation/clip_12/end_frame=0 +animation/clip_12/loops=false +animation/clip_13/name="" +animation/clip_13/start_frame=0 +animation/clip_13/end_frame=0 +animation/clip_13/loops=false +animation/clip_14/name="" +animation/clip_14/start_frame=0 +animation/clip_14/end_frame=0 +animation/clip_14/loops=false +animation/clip_15/name="" +animation/clip_15/start_frame=0 +animation/clip_15/end_frame=0 +animation/clip_15/loops=false +animation/clip_16/name="" +animation/clip_16/start_frame=0 +animation/clip_16/end_frame=0 +animation/clip_16/loops=false +animation/clip_17/name="" +animation/clip_17/start_frame=0 +animation/clip_17/end_frame=0 +animation/clip_17/loops=false +animation/clip_18/name="" +animation/clip_18/start_frame=0 +animation/clip_18/end_frame=0 +animation/clip_18/loops=false +animation/clip_19/name="" +animation/clip_19/start_frame=0 +animation/clip_19/end_frame=0 +animation/clip_19/loops=false +animation/clip_20/name="" +animation/clip_20/start_frame=0 +animation/clip_20/end_frame=0 +animation/clip_20/loops=false +animation/clip_21/name="" +animation/clip_21/start_frame=0 +animation/clip_21/end_frame=0 +animation/clip_21/loops=false +animation/clip_22/name="" +animation/clip_22/start_frame=0 +animation/clip_22/end_frame=0 +animation/clip_22/loops=false +animation/clip_23/name="" +animation/clip_23/start_frame=0 +animation/clip_23/end_frame=0 +animation/clip_23/loops=false +animation/clip_24/name="" +animation/clip_24/start_frame=0 +animation/clip_24/end_frame=0 +animation/clip_24/loops=false +animation/clip_25/name="" +animation/clip_25/start_frame=0 +animation/clip_25/end_frame=0 +animation/clip_25/loops=false +animation/clip_26/name="" +animation/clip_26/start_frame=0 +animation/clip_26/end_frame=0 +animation/clip_26/loops=false +animation/clip_27/name="" +animation/clip_27/start_frame=0 +animation/clip_27/end_frame=0 +animation/clip_27/loops=false +animation/clip_28/name="" +animation/clip_28/start_frame=0 +animation/clip_28/end_frame=0 +animation/clip_28/loops=false +animation/clip_29/name="" +animation/clip_29/start_frame=0 +animation/clip_29/end_frame=0 +animation/clip_29/loops=false +animation/clip_30/name="" +animation/clip_30/start_frame=0 +animation/clip_30/end_frame=0 +animation/clip_30/loops=false +animation/clip_31/name="" +animation/clip_31/start_frame=0 +animation/clip_31/end_frame=0 +animation/clip_31/loops=false +animation/clip_32/name="" +animation/clip_32/start_frame=0 +animation/clip_32/end_frame=0 +animation/clip_32/loops=false +animation/clip_33/name="" +animation/clip_33/start_frame=0 +animation/clip_33/end_frame=0 +animation/clip_33/loops=false +animation/clip_34/name="" +animation/clip_34/start_frame=0 +animation/clip_34/end_frame=0 +animation/clip_34/loops=false +animation/clip_35/name="" +animation/clip_35/start_frame=0 +animation/clip_35/end_frame=0 +animation/clip_35/loops=false +animation/clip_36/name="" +animation/clip_36/start_frame=0 +animation/clip_36/end_frame=0 +animation/clip_36/loops=false +animation/clip_37/name="" +animation/clip_37/start_frame=0 +animation/clip_37/end_frame=0 +animation/clip_37/loops=false +animation/clip_38/name="" +animation/clip_38/start_frame=0 +animation/clip_38/end_frame=0 +animation/clip_38/loops=false +animation/clip_39/name="" +animation/clip_39/start_frame=0 +animation/clip_39/end_frame=0 +animation/clip_39/loops=false +animation/clip_40/name="" +animation/clip_40/start_frame=0 +animation/clip_40/end_frame=0 +animation/clip_40/loops=false +animation/clip_41/name="" +animation/clip_41/start_frame=0 +animation/clip_41/end_frame=0 +animation/clip_41/loops=false +animation/clip_42/name="" +animation/clip_42/start_frame=0 +animation/clip_42/end_frame=0 +animation/clip_42/loops=false +animation/clip_43/name="" +animation/clip_43/start_frame=0 +animation/clip_43/end_frame=0 +animation/clip_43/loops=false +animation/clip_44/name="" +animation/clip_44/start_frame=0 +animation/clip_44/end_frame=0 +animation/clip_44/loops=false +animation/clip_45/name="" +animation/clip_45/start_frame=0 +animation/clip_45/end_frame=0 +animation/clip_45/loops=false +animation/clip_46/name="" +animation/clip_46/start_frame=0 +animation/clip_46/end_frame=0 +animation/clip_46/loops=false +animation/clip_47/name="" +animation/clip_47/start_frame=0 +animation/clip_47/end_frame=0 +animation/clip_47/loops=false +animation/clip_48/name="" +animation/clip_48/start_frame=0 +animation/clip_48/end_frame=0 +animation/clip_48/loops=false +animation/clip_49/name="" +animation/clip_49/start_frame=0 +animation/clip_49/end_frame=0 +animation/clip_49/loops=false +animation/clip_50/name="" +animation/clip_50/start_frame=0 +animation/clip_50/end_frame=0 +animation/clip_50/loops=false +animation/clip_51/name="" +animation/clip_51/start_frame=0 +animation/clip_51/end_frame=0 +animation/clip_51/loops=false +animation/clip_52/name="" +animation/clip_52/start_frame=0 +animation/clip_52/end_frame=0 +animation/clip_52/loops=false +animation/clip_53/name="" +animation/clip_53/start_frame=0 +animation/clip_53/end_frame=0 +animation/clip_53/loops=false +animation/clip_54/name="" +animation/clip_54/start_frame=0 +animation/clip_54/end_frame=0 +animation/clip_54/loops=false +animation/clip_55/name="" +animation/clip_55/start_frame=0 +animation/clip_55/end_frame=0 +animation/clip_55/loops=false +animation/clip_56/name="" +animation/clip_56/start_frame=0 +animation/clip_56/end_frame=0 +animation/clip_56/loops=false +animation/clip_57/name="" +animation/clip_57/start_frame=0 +animation/clip_57/end_frame=0 +animation/clip_57/loops=false +animation/clip_58/name="" +animation/clip_58/start_frame=0 +animation/clip_58/end_frame=0 +animation/clip_58/loops=false +animation/clip_59/name="" +animation/clip_59/start_frame=0 +animation/clip_59/end_frame=0 +animation/clip_59/loops=false +animation/clip_60/name="" +animation/clip_60/start_frame=0 +animation/clip_60/end_frame=0 +animation/clip_60/loops=false +animation/clip_61/name="" +animation/clip_61/start_frame=0 +animation/clip_61/end_frame=0 +animation/clip_61/loops=false +animation/clip_62/name="" +animation/clip_62/start_frame=0 +animation/clip_62/end_frame=0 +animation/clip_62/loops=false +animation/clip_63/name="" +animation/clip_63/start_frame=0 +animation/clip_63/end_frame=0 +animation/clip_63/loops=false +animation/clip_64/name="" +animation/clip_64/start_frame=0 +animation/clip_64/end_frame=0 +animation/clip_64/loops=false +animation/clip_65/name="" +animation/clip_65/start_frame=0 +animation/clip_65/end_frame=0 +animation/clip_65/loops=false +animation/clip_66/name="" +animation/clip_66/start_frame=0 +animation/clip_66/end_frame=0 +animation/clip_66/loops=false +animation/clip_67/name="" +animation/clip_67/start_frame=0 +animation/clip_67/end_frame=0 +animation/clip_67/loops=false +animation/clip_68/name="" +animation/clip_68/start_frame=0 +animation/clip_68/end_frame=0 +animation/clip_68/loops=false +animation/clip_69/name="" +animation/clip_69/start_frame=0 +animation/clip_69/end_frame=0 +animation/clip_69/loops=false +animation/clip_70/name="" +animation/clip_70/start_frame=0 +animation/clip_70/end_frame=0 +animation/clip_70/loops=false +animation/clip_71/name="" +animation/clip_71/start_frame=0 +animation/clip_71/end_frame=0 +animation/clip_71/loops=false +animation/clip_72/name="" +animation/clip_72/start_frame=0 +animation/clip_72/end_frame=0 +animation/clip_72/loops=false +animation/clip_73/name="" +animation/clip_73/start_frame=0 +animation/clip_73/end_frame=0 +animation/clip_73/loops=false +animation/clip_74/name="" +animation/clip_74/start_frame=0 +animation/clip_74/end_frame=0 +animation/clip_74/loops=false +animation/clip_75/name="" +animation/clip_75/start_frame=0 +animation/clip_75/end_frame=0 +animation/clip_75/loops=false +animation/clip_76/name="" +animation/clip_76/start_frame=0 +animation/clip_76/end_frame=0 +animation/clip_76/loops=false +animation/clip_77/name="" +animation/clip_77/start_frame=0 +animation/clip_77/end_frame=0 +animation/clip_77/loops=false +animation/clip_78/name="" +animation/clip_78/start_frame=0 +animation/clip_78/end_frame=0 +animation/clip_78/loops=false +animation/clip_79/name="" +animation/clip_79/start_frame=0 +animation/clip_79/end_frame=0 +animation/clip_79/loops=false +animation/clip_80/name="" +animation/clip_80/start_frame=0 +animation/clip_80/end_frame=0 +animation/clip_80/loops=false +animation/clip_81/name="" +animation/clip_81/start_frame=0 +animation/clip_81/end_frame=0 +animation/clip_81/loops=false +animation/clip_82/name="" +animation/clip_82/start_frame=0 +animation/clip_82/end_frame=0 +animation/clip_82/loops=false +animation/clip_83/name="" +animation/clip_83/start_frame=0 +animation/clip_83/end_frame=0 +animation/clip_83/loops=false +animation/clip_84/name="" +animation/clip_84/start_frame=0 +animation/clip_84/end_frame=0 +animation/clip_84/loops=false +animation/clip_85/name="" +animation/clip_85/start_frame=0 +animation/clip_85/end_frame=0 +animation/clip_85/loops=false +animation/clip_86/name="" +animation/clip_86/start_frame=0 +animation/clip_86/end_frame=0 +animation/clip_86/loops=false +animation/clip_87/name="" +animation/clip_87/start_frame=0 +animation/clip_87/end_frame=0 +animation/clip_87/loops=false +animation/clip_88/name="" +animation/clip_88/start_frame=0 +animation/clip_88/end_frame=0 +animation/clip_88/loops=false +animation/clip_89/name="" +animation/clip_89/start_frame=0 +animation/clip_89/end_frame=0 +animation/clip_89/loops=false +animation/clip_90/name="" +animation/clip_90/start_frame=0 +animation/clip_90/end_frame=0 +animation/clip_90/loops=false +animation/clip_91/name="" +animation/clip_91/start_frame=0 +animation/clip_91/end_frame=0 +animation/clip_91/loops=false +animation/clip_92/name="" +animation/clip_92/start_frame=0 +animation/clip_92/end_frame=0 +animation/clip_92/loops=false +animation/clip_93/name="" +animation/clip_93/start_frame=0 +animation/clip_93/end_frame=0 +animation/clip_93/loops=false +animation/clip_94/name="" +animation/clip_94/start_frame=0 +animation/clip_94/end_frame=0 +animation/clip_94/loops=false +animation/clip_95/name="" +animation/clip_95/start_frame=0 +animation/clip_95/end_frame=0 +animation/clip_95/loops=false +animation/clip_96/name="" +animation/clip_96/start_frame=0 +animation/clip_96/end_frame=0 +animation/clip_96/loops=false +animation/clip_97/name="" +animation/clip_97/start_frame=0 +animation/clip_97/end_frame=0 +animation/clip_97/loops=false +animation/clip_98/name="" +animation/clip_98/start_frame=0 +animation/clip_98/end_frame=0 +animation/clip_98/loops=false +animation/clip_99/name="" +animation/clip_99/start_frame=0 +animation/clip_99/end_frame=0 +animation/clip_99/loops=false +animation/clip_100/name="" +animation/clip_100/start_frame=0 +animation/clip_100/end_frame=0 +animation/clip_100/loops=false +animation/clip_101/name="" +animation/clip_101/start_frame=0 +animation/clip_101/end_frame=0 +animation/clip_101/loops=false +animation/clip_102/name="" +animation/clip_102/start_frame=0 +animation/clip_102/end_frame=0 +animation/clip_102/loops=false +animation/clip_103/name="" +animation/clip_103/start_frame=0 +animation/clip_103/end_frame=0 +animation/clip_103/loops=false +animation/clip_104/name="" +animation/clip_104/start_frame=0 +animation/clip_104/end_frame=0 +animation/clip_104/loops=false +animation/clip_105/name="" +animation/clip_105/start_frame=0 +animation/clip_105/end_frame=0 +animation/clip_105/loops=false +animation/clip_106/name="" +animation/clip_106/start_frame=0 +animation/clip_106/end_frame=0 +animation/clip_106/loops=false +animation/clip_107/name="" +animation/clip_107/start_frame=0 +animation/clip_107/end_frame=0 +animation/clip_107/loops=false +animation/clip_108/name="" +animation/clip_108/start_frame=0 +animation/clip_108/end_frame=0 +animation/clip_108/loops=false +animation/clip_109/name="" +animation/clip_109/start_frame=0 +animation/clip_109/end_frame=0 +animation/clip_109/loops=false +animation/clip_110/name="" +animation/clip_110/start_frame=0 +animation/clip_110/end_frame=0 +animation/clip_110/loops=false +animation/clip_111/name="" +animation/clip_111/start_frame=0 +animation/clip_111/end_frame=0 +animation/clip_111/loops=false +animation/clip_112/name="" +animation/clip_112/start_frame=0 +animation/clip_112/end_frame=0 +animation/clip_112/loops=false +animation/clip_113/name="" +animation/clip_113/start_frame=0 +animation/clip_113/end_frame=0 +animation/clip_113/loops=false +animation/clip_114/name="" +animation/clip_114/start_frame=0 +animation/clip_114/end_frame=0 +animation/clip_114/loops=false +animation/clip_115/name="" +animation/clip_115/start_frame=0 +animation/clip_115/end_frame=0 +animation/clip_115/loops=false +animation/clip_116/name="" +animation/clip_116/start_frame=0 +animation/clip_116/end_frame=0 +animation/clip_116/loops=false +animation/clip_117/name="" +animation/clip_117/start_frame=0 +animation/clip_117/end_frame=0 +animation/clip_117/loops=false +animation/clip_118/name="" +animation/clip_118/start_frame=0 +animation/clip_118/end_frame=0 +animation/clip_118/loops=false +animation/clip_119/name="" +animation/clip_119/start_frame=0 +animation/clip_119/end_frame=0 +animation/clip_119/loops=false +animation/clip_120/name="" +animation/clip_120/start_frame=0 +animation/clip_120/end_frame=0 +animation/clip_120/loops=false +animation/clip_121/name="" +animation/clip_121/start_frame=0 +animation/clip_121/end_frame=0 +animation/clip_121/loops=false +animation/clip_122/name="" +animation/clip_122/start_frame=0 +animation/clip_122/end_frame=0 +animation/clip_122/loops=false +animation/clip_123/name="" +animation/clip_123/start_frame=0 +animation/clip_123/end_frame=0 +animation/clip_123/loops=false +animation/clip_124/name="" +animation/clip_124/start_frame=0 +animation/clip_124/end_frame=0 +animation/clip_124/loops=false +animation/clip_125/name="" +animation/clip_125/start_frame=0 +animation/clip_125/end_frame=0 +animation/clip_125/loops=false +animation/clip_126/name="" +animation/clip_126/start_frame=0 +animation/clip_126/end_frame=0 +animation/clip_126/loops=false +animation/clip_127/name="" +animation/clip_127/start_frame=0 +animation/clip_127/end_frame=0 +animation/clip_127/loops=false +animation/clip_128/name="" +animation/clip_128/start_frame=0 +animation/clip_128/end_frame=0 +animation/clip_128/loops=false +animation/clip_129/name="" +animation/clip_129/start_frame=0 +animation/clip_129/end_frame=0 +animation/clip_129/loops=false +animation/clip_130/name="" +animation/clip_130/start_frame=0 +animation/clip_130/end_frame=0 +animation/clip_130/loops=false +animation/clip_131/name="" +animation/clip_131/start_frame=0 +animation/clip_131/end_frame=0 +animation/clip_131/loops=false +animation/clip_132/name="" +animation/clip_132/start_frame=0 +animation/clip_132/end_frame=0 +animation/clip_132/loops=false +animation/clip_133/name="" +animation/clip_133/start_frame=0 +animation/clip_133/end_frame=0 +animation/clip_133/loops=false +animation/clip_134/name="" +animation/clip_134/start_frame=0 +animation/clip_134/end_frame=0 +animation/clip_134/loops=false +animation/clip_135/name="" +animation/clip_135/start_frame=0 +animation/clip_135/end_frame=0 +animation/clip_135/loops=false +animation/clip_136/name="" +animation/clip_136/start_frame=0 +animation/clip_136/end_frame=0 +animation/clip_136/loops=false +animation/clip_137/name="" +animation/clip_137/start_frame=0 +animation/clip_137/end_frame=0 +animation/clip_137/loops=false +animation/clip_138/name="" +animation/clip_138/start_frame=0 +animation/clip_138/end_frame=0 +animation/clip_138/loops=false +animation/clip_139/name="" +animation/clip_139/start_frame=0 +animation/clip_139/end_frame=0 +animation/clip_139/loops=false +animation/clip_140/name="" +animation/clip_140/start_frame=0 +animation/clip_140/end_frame=0 +animation/clip_140/loops=false +animation/clip_141/name="" +animation/clip_141/start_frame=0 +animation/clip_141/end_frame=0 +animation/clip_141/loops=false +animation/clip_142/name="" +animation/clip_142/start_frame=0 +animation/clip_142/end_frame=0 +animation/clip_142/loops=false +animation/clip_143/name="" +animation/clip_143/start_frame=0 +animation/clip_143/end_frame=0 +animation/clip_143/loops=false +animation/clip_144/name="" +animation/clip_144/start_frame=0 +animation/clip_144/end_frame=0 +animation/clip_144/loops=false +animation/clip_145/name="" +animation/clip_145/start_frame=0 +animation/clip_145/end_frame=0 +animation/clip_145/loops=false +animation/clip_146/name="" +animation/clip_146/start_frame=0 +animation/clip_146/end_frame=0 +animation/clip_146/loops=false +animation/clip_147/name="" +animation/clip_147/start_frame=0 +animation/clip_147/end_frame=0 +animation/clip_147/loops=false +animation/clip_148/name="" +animation/clip_148/start_frame=0 +animation/clip_148/end_frame=0 +animation/clip_148/loops=false +animation/clip_149/name="" +animation/clip_149/start_frame=0 +animation/clip_149/end_frame=0 +animation/clip_149/loops=false +animation/clip_150/name="" +animation/clip_150/start_frame=0 +animation/clip_150/end_frame=0 +animation/clip_150/loops=false +animation/clip_151/name="" +animation/clip_151/start_frame=0 +animation/clip_151/end_frame=0 +animation/clip_151/loops=false +animation/clip_152/name="" +animation/clip_152/start_frame=0 +animation/clip_152/end_frame=0 +animation/clip_152/loops=false +animation/clip_153/name="" +animation/clip_153/start_frame=0 +animation/clip_153/end_frame=0 +animation/clip_153/loops=false +animation/clip_154/name="" +animation/clip_154/start_frame=0 +animation/clip_154/end_frame=0 +animation/clip_154/loops=false +animation/clip_155/name="" +animation/clip_155/start_frame=0 +animation/clip_155/end_frame=0 +animation/clip_155/loops=false +animation/clip_156/name="" +animation/clip_156/start_frame=0 +animation/clip_156/end_frame=0 +animation/clip_156/loops=false +animation/clip_157/name="" +animation/clip_157/start_frame=0 +animation/clip_157/end_frame=0 +animation/clip_157/loops=false +animation/clip_158/name="" +animation/clip_158/start_frame=0 +animation/clip_158/end_frame=0 +animation/clip_158/loops=false +animation/clip_159/name="" +animation/clip_159/start_frame=0 +animation/clip_159/end_frame=0 +animation/clip_159/loops=false +animation/clip_160/name="" +animation/clip_160/start_frame=0 +animation/clip_160/end_frame=0 +animation/clip_160/loops=false +animation/clip_161/name="" +animation/clip_161/start_frame=0 +animation/clip_161/end_frame=0 +animation/clip_161/loops=false +animation/clip_162/name="" +animation/clip_162/start_frame=0 +animation/clip_162/end_frame=0 +animation/clip_162/loops=false +animation/clip_163/name="" +animation/clip_163/start_frame=0 +animation/clip_163/end_frame=0 +animation/clip_163/loops=false +animation/clip_164/name="" +animation/clip_164/start_frame=0 +animation/clip_164/end_frame=0 +animation/clip_164/loops=false +animation/clip_165/name="" +animation/clip_165/start_frame=0 +animation/clip_165/end_frame=0 +animation/clip_165/loops=false +animation/clip_166/name="" +animation/clip_166/start_frame=0 +animation/clip_166/end_frame=0 +animation/clip_166/loops=false +animation/clip_167/name="" +animation/clip_167/start_frame=0 +animation/clip_167/end_frame=0 +animation/clip_167/loops=false +animation/clip_168/name="" +animation/clip_168/start_frame=0 +animation/clip_168/end_frame=0 +animation/clip_168/loops=false +animation/clip_169/name="" +animation/clip_169/start_frame=0 +animation/clip_169/end_frame=0 +animation/clip_169/loops=false +animation/clip_170/name="" +animation/clip_170/start_frame=0 +animation/clip_170/end_frame=0 +animation/clip_170/loops=false +animation/clip_171/name="" +animation/clip_171/start_frame=0 +animation/clip_171/end_frame=0 +animation/clip_171/loops=false +animation/clip_172/name="" +animation/clip_172/start_frame=0 +animation/clip_172/end_frame=0 +animation/clip_172/loops=false +animation/clip_173/name="" +animation/clip_173/start_frame=0 +animation/clip_173/end_frame=0 +animation/clip_173/loops=false +animation/clip_174/name="" +animation/clip_174/start_frame=0 +animation/clip_174/end_frame=0 +animation/clip_174/loops=false +animation/clip_175/name="" +animation/clip_175/start_frame=0 +animation/clip_175/end_frame=0 +animation/clip_175/loops=false +animation/clip_176/name="" +animation/clip_176/start_frame=0 +animation/clip_176/end_frame=0 +animation/clip_176/loops=false +animation/clip_177/name="" +animation/clip_177/start_frame=0 +animation/clip_177/end_frame=0 +animation/clip_177/loops=false +animation/clip_178/name="" +animation/clip_178/start_frame=0 +animation/clip_178/end_frame=0 +animation/clip_178/loops=false +animation/clip_179/name="" +animation/clip_179/start_frame=0 +animation/clip_179/end_frame=0 +animation/clip_179/loops=false +animation/clip_180/name="" +animation/clip_180/start_frame=0 +animation/clip_180/end_frame=0 +animation/clip_180/loops=false +animation/clip_181/name="" +animation/clip_181/start_frame=0 +animation/clip_181/end_frame=0 +animation/clip_181/loops=false +animation/clip_182/name="" +animation/clip_182/start_frame=0 +animation/clip_182/end_frame=0 +animation/clip_182/loops=false +animation/clip_183/name="" +animation/clip_183/start_frame=0 +animation/clip_183/end_frame=0 +animation/clip_183/loops=false +animation/clip_184/name="" +animation/clip_184/start_frame=0 +animation/clip_184/end_frame=0 +animation/clip_184/loops=false +animation/clip_185/name="" +animation/clip_185/start_frame=0 +animation/clip_185/end_frame=0 +animation/clip_185/loops=false +animation/clip_186/name="" +animation/clip_186/start_frame=0 +animation/clip_186/end_frame=0 +animation/clip_186/loops=false +animation/clip_187/name="" +animation/clip_187/start_frame=0 +animation/clip_187/end_frame=0 +animation/clip_187/loops=false +animation/clip_188/name="" +animation/clip_188/start_frame=0 +animation/clip_188/end_frame=0 +animation/clip_188/loops=false +animation/clip_189/name="" +animation/clip_189/start_frame=0 +animation/clip_189/end_frame=0 +animation/clip_189/loops=false +animation/clip_190/name="" +animation/clip_190/start_frame=0 +animation/clip_190/end_frame=0 +animation/clip_190/loops=false +animation/clip_191/name="" +animation/clip_191/start_frame=0 +animation/clip_191/end_frame=0 +animation/clip_191/loops=false +animation/clip_192/name="" +animation/clip_192/start_frame=0 +animation/clip_192/end_frame=0 +animation/clip_192/loops=false +animation/clip_193/name="" +animation/clip_193/start_frame=0 +animation/clip_193/end_frame=0 +animation/clip_193/loops=false +animation/clip_194/name="" +animation/clip_194/start_frame=0 +animation/clip_194/end_frame=0 +animation/clip_194/loops=false +animation/clip_195/name="" +animation/clip_195/start_frame=0 +animation/clip_195/end_frame=0 +animation/clip_195/loops=false +animation/clip_196/name="" +animation/clip_196/start_frame=0 +animation/clip_196/end_frame=0 +animation/clip_196/loops=false +animation/clip_197/name="" +animation/clip_197/start_frame=0 +animation/clip_197/end_frame=0 +animation/clip_197/loops=false +animation/clip_198/name="" +animation/clip_198/start_frame=0 +animation/clip_198/end_frame=0 +animation/clip_198/loops=false +animation/clip_199/name="" +animation/clip_199/start_frame=0 +animation/clip_199/end_frame=0 +animation/clip_199/loops=false +animation/clip_200/name="" +animation/clip_200/start_frame=0 +animation/clip_200/end_frame=0 +animation/clip_200/loops=false +animation/clip_201/name="" +animation/clip_201/start_frame=0 +animation/clip_201/end_frame=0 +animation/clip_201/loops=false +animation/clip_202/name="" +animation/clip_202/start_frame=0 +animation/clip_202/end_frame=0 +animation/clip_202/loops=false +animation/clip_203/name="" +animation/clip_203/start_frame=0 +animation/clip_203/end_frame=0 +animation/clip_203/loops=false +animation/clip_204/name="" +animation/clip_204/start_frame=0 +animation/clip_204/end_frame=0 +animation/clip_204/loops=false +animation/clip_205/name="" +animation/clip_205/start_frame=0 +animation/clip_205/end_frame=0 +animation/clip_205/loops=false +animation/clip_206/name="" +animation/clip_206/start_frame=0 +animation/clip_206/end_frame=0 +animation/clip_206/loops=false +animation/clip_207/name="" +animation/clip_207/start_frame=0 +animation/clip_207/end_frame=0 +animation/clip_207/loops=false +animation/clip_208/name="" +animation/clip_208/start_frame=0 +animation/clip_208/end_frame=0 +animation/clip_208/loops=false +animation/clip_209/name="" +animation/clip_209/start_frame=0 +animation/clip_209/end_frame=0 +animation/clip_209/loops=false +animation/clip_210/name="" +animation/clip_210/start_frame=0 +animation/clip_210/end_frame=0 +animation/clip_210/loops=false +animation/clip_211/name="" +animation/clip_211/start_frame=0 +animation/clip_211/end_frame=0 +animation/clip_211/loops=false +animation/clip_212/name="" +animation/clip_212/start_frame=0 +animation/clip_212/end_frame=0 +animation/clip_212/loops=false +animation/clip_213/name="" +animation/clip_213/start_frame=0 +animation/clip_213/end_frame=0 +animation/clip_213/loops=false +animation/clip_214/name="" +animation/clip_214/start_frame=0 +animation/clip_214/end_frame=0 +animation/clip_214/loops=false +animation/clip_215/name="" +animation/clip_215/start_frame=0 +animation/clip_215/end_frame=0 +animation/clip_215/loops=false +animation/clip_216/name="" +animation/clip_216/start_frame=0 +animation/clip_216/end_frame=0 +animation/clip_216/loops=false +animation/clip_217/name="" +animation/clip_217/start_frame=0 +animation/clip_217/end_frame=0 +animation/clip_217/loops=false +animation/clip_218/name="" +animation/clip_218/start_frame=0 +animation/clip_218/end_frame=0 +animation/clip_218/loops=false +animation/clip_219/name="" +animation/clip_219/start_frame=0 +animation/clip_219/end_frame=0 +animation/clip_219/loops=false +animation/clip_220/name="" +animation/clip_220/start_frame=0 +animation/clip_220/end_frame=0 +animation/clip_220/loops=false +animation/clip_221/name="" +animation/clip_221/start_frame=0 +animation/clip_221/end_frame=0 +animation/clip_221/loops=false +animation/clip_222/name="" +animation/clip_222/start_frame=0 +animation/clip_222/end_frame=0 +animation/clip_222/loops=false +animation/clip_223/name="" +animation/clip_223/start_frame=0 +animation/clip_223/end_frame=0 +animation/clip_223/loops=false +animation/clip_224/name="" +animation/clip_224/start_frame=0 +animation/clip_224/end_frame=0 +animation/clip_224/loops=false +animation/clip_225/name="" +animation/clip_225/start_frame=0 +animation/clip_225/end_frame=0 +animation/clip_225/loops=false +animation/clip_226/name="" +animation/clip_226/start_frame=0 +animation/clip_226/end_frame=0 +animation/clip_226/loops=false +animation/clip_227/name="" +animation/clip_227/start_frame=0 +animation/clip_227/end_frame=0 +animation/clip_227/loops=false +animation/clip_228/name="" +animation/clip_228/start_frame=0 +animation/clip_228/end_frame=0 +animation/clip_228/loops=false +animation/clip_229/name="" +animation/clip_229/start_frame=0 +animation/clip_229/end_frame=0 +animation/clip_229/loops=false +animation/clip_230/name="" +animation/clip_230/start_frame=0 +animation/clip_230/end_frame=0 +animation/clip_230/loops=false +animation/clip_231/name="" +animation/clip_231/start_frame=0 +animation/clip_231/end_frame=0 +animation/clip_231/loops=false +animation/clip_232/name="" +animation/clip_232/start_frame=0 +animation/clip_232/end_frame=0 +animation/clip_232/loops=false +animation/clip_233/name="" +animation/clip_233/start_frame=0 +animation/clip_233/end_frame=0 +animation/clip_233/loops=false +animation/clip_234/name="" +animation/clip_234/start_frame=0 +animation/clip_234/end_frame=0 +animation/clip_234/loops=false +animation/clip_235/name="" +animation/clip_235/start_frame=0 +animation/clip_235/end_frame=0 +animation/clip_235/loops=false +animation/clip_236/name="" +animation/clip_236/start_frame=0 +animation/clip_236/end_frame=0 +animation/clip_236/loops=false +animation/clip_237/name="" +animation/clip_237/start_frame=0 +animation/clip_237/end_frame=0 +animation/clip_237/loops=false +animation/clip_238/name="" +animation/clip_238/start_frame=0 +animation/clip_238/end_frame=0 +animation/clip_238/loops=false +animation/clip_239/name="" +animation/clip_239/start_frame=0 +animation/clip_239/end_frame=0 +animation/clip_239/loops=false +animation/clip_240/name="" +animation/clip_240/start_frame=0 +animation/clip_240/end_frame=0 +animation/clip_240/loops=false +animation/clip_241/name="" +animation/clip_241/start_frame=0 +animation/clip_241/end_frame=0 +animation/clip_241/loops=false +animation/clip_242/name="" +animation/clip_242/start_frame=0 +animation/clip_242/end_frame=0 +animation/clip_242/loops=false +animation/clip_243/name="" +animation/clip_243/start_frame=0 +animation/clip_243/end_frame=0 +animation/clip_243/loops=false +animation/clip_244/name="" +animation/clip_244/start_frame=0 +animation/clip_244/end_frame=0 +animation/clip_244/loops=false +animation/clip_245/name="" +animation/clip_245/start_frame=0 +animation/clip_245/end_frame=0 +animation/clip_245/loops=false +animation/clip_246/name="" +animation/clip_246/start_frame=0 +animation/clip_246/end_frame=0 +animation/clip_246/loops=false +animation/clip_247/name="" +animation/clip_247/start_frame=0 +animation/clip_247/end_frame=0 +animation/clip_247/loops=false +animation/clip_248/name="" +animation/clip_248/start_frame=0 +animation/clip_248/end_frame=0 +animation/clip_248/loops=false +animation/clip_249/name="" +animation/clip_249/start_frame=0 +animation/clip_249/end_frame=0 +animation/clip_249/loops=false +animation/clip_250/name="" +animation/clip_250/start_frame=0 +animation/clip_250/end_frame=0 +animation/clip_250/loops=false +animation/clip_251/name="" +animation/clip_251/start_frame=0 +animation/clip_251/end_frame=0 +animation/clip_251/loops=false +animation/clip_252/name="" +animation/clip_252/start_frame=0 +animation/clip_252/end_frame=0 +animation/clip_252/loops=false +animation/clip_253/name="" +animation/clip_253/start_frame=0 +animation/clip_253/end_frame=0 +animation/clip_253/loops=false +animation/clip_254/name="" +animation/clip_254/start_frame=0 +animation/clip_254/end_frame=0 +animation/clip_254/loops=false +animation/clip_255/name="" +animation/clip_255/start_frame=0 +animation/clip_255/end_frame=0 +animation/clip_255/loops=false +animation/clip_256/name="" +animation/clip_256/start_frame=0 +animation/clip_256/end_frame=0 +animation/clip_256/loops=false diff --git a/level/common/houses_01/04.glb b/level/common/houses_01/04.glb new file mode 100644 index 0000000..bf2cc85 Binary files /dev/null and b/level/common/houses_01/04.glb differ diff --git a/level/common/houses_01/04.glb.import b/level/common/houses_01/04.glb.import new file mode 100644 index 0000000..fb7ebb2 --- /dev/null +++ b/level/common/houses_01/04.glb.import @@ -0,0 +1,1065 @@ +[remap] + +importer="scene" +type="PackedScene" +path="res://.import/04.glb-6aa25a22dbfbef3c09ef66d47549b3a1.scn" + +[deps] + +source_file="res://level/common/houses_01/04.glb" +dest_files=[ "res://.import/04.glb-6aa25a22dbfbef3c09ef66d47549b3a1.scn" ] + +[params] + +nodes/root_type="Spatial" +nodes/root_name="Scene Root" +nodes/root_scale=1.0 +nodes/custom_script="" +nodes/storage=0 +nodes/use_legacy_names=false +materials/location=1 +materials/storage=1 +materials/keep_on_reimport=true +meshes/octahedral_compression=true +meshes/compress=4286 +meshes/ensure_tangents=true +meshes/storage=0 +meshes/light_baking=0 +meshes/lightmap_texel_size=0.1 +skins/use_named_skins=true +external_files/store_in_subdir=false +animation/import=true +animation/fps=15 +animation/filter_script="" +animation/storage=false +animation/keep_custom_tracks=false +animation/optimizer/enabled=true +animation/optimizer/max_linear_error=0.05 +animation/optimizer/max_angular_error=0.01 +animation/optimizer/max_angle=22 +animation/optimizer/remove_unused_tracks=true +animation/clips/amount=0 +animation/clip_1/name="" +animation/clip_1/start_frame=0 +animation/clip_1/end_frame=0 +animation/clip_1/loops=false +animation/clip_2/name="" +animation/clip_2/start_frame=0 +animation/clip_2/end_frame=0 +animation/clip_2/loops=false +animation/clip_3/name="" +animation/clip_3/start_frame=0 +animation/clip_3/end_frame=0 +animation/clip_3/loops=false +animation/clip_4/name="" +animation/clip_4/start_frame=0 +animation/clip_4/end_frame=0 +animation/clip_4/loops=false +animation/clip_5/name="" +animation/clip_5/start_frame=0 +animation/clip_5/end_frame=0 +animation/clip_5/loops=false +animation/clip_6/name="" +animation/clip_6/start_frame=0 +animation/clip_6/end_frame=0 +animation/clip_6/loops=false +animation/clip_7/name="" +animation/clip_7/start_frame=0 +animation/clip_7/end_frame=0 +animation/clip_7/loops=false +animation/clip_8/name="" +animation/clip_8/start_frame=0 +animation/clip_8/end_frame=0 +animation/clip_8/loops=false +animation/clip_9/name="" +animation/clip_9/start_frame=0 +animation/clip_9/end_frame=0 +animation/clip_9/loops=false +animation/clip_10/name="" +animation/clip_10/start_frame=0 +animation/clip_10/end_frame=0 +animation/clip_10/loops=false +animation/clip_11/name="" +animation/clip_11/start_frame=0 +animation/clip_11/end_frame=0 +animation/clip_11/loops=false +animation/clip_12/name="" +animation/clip_12/start_frame=0 +animation/clip_12/end_frame=0 +animation/clip_12/loops=false +animation/clip_13/name="" +animation/clip_13/start_frame=0 +animation/clip_13/end_frame=0 +animation/clip_13/loops=false +animation/clip_14/name="" +animation/clip_14/start_frame=0 +animation/clip_14/end_frame=0 +animation/clip_14/loops=false +animation/clip_15/name="" +animation/clip_15/start_frame=0 +animation/clip_15/end_frame=0 +animation/clip_15/loops=false +animation/clip_16/name="" +animation/clip_16/start_frame=0 +animation/clip_16/end_frame=0 +animation/clip_16/loops=false +animation/clip_17/name="" +animation/clip_17/start_frame=0 +animation/clip_17/end_frame=0 +animation/clip_17/loops=false +animation/clip_18/name="" +animation/clip_18/start_frame=0 +animation/clip_18/end_frame=0 +animation/clip_18/loops=false +animation/clip_19/name="" +animation/clip_19/start_frame=0 +animation/clip_19/end_frame=0 +animation/clip_19/loops=false +animation/clip_20/name="" +animation/clip_20/start_frame=0 +animation/clip_20/end_frame=0 +animation/clip_20/loops=false +animation/clip_21/name="" +animation/clip_21/start_frame=0 +animation/clip_21/end_frame=0 +animation/clip_21/loops=false +animation/clip_22/name="" +animation/clip_22/start_frame=0 +animation/clip_22/end_frame=0 +animation/clip_22/loops=false +animation/clip_23/name="" +animation/clip_23/start_frame=0 +animation/clip_23/end_frame=0 +animation/clip_23/loops=false +animation/clip_24/name="" +animation/clip_24/start_frame=0 +animation/clip_24/end_frame=0 +animation/clip_24/loops=false +animation/clip_25/name="" +animation/clip_25/start_frame=0 +animation/clip_25/end_frame=0 +animation/clip_25/loops=false +animation/clip_26/name="" +animation/clip_26/start_frame=0 +animation/clip_26/end_frame=0 +animation/clip_26/loops=false +animation/clip_27/name="" +animation/clip_27/start_frame=0 +animation/clip_27/end_frame=0 +animation/clip_27/loops=false +animation/clip_28/name="" +animation/clip_28/start_frame=0 +animation/clip_28/end_frame=0 +animation/clip_28/loops=false +animation/clip_29/name="" +animation/clip_29/start_frame=0 +animation/clip_29/end_frame=0 +animation/clip_29/loops=false +animation/clip_30/name="" +animation/clip_30/start_frame=0 +animation/clip_30/end_frame=0 +animation/clip_30/loops=false +animation/clip_31/name="" +animation/clip_31/start_frame=0 +animation/clip_31/end_frame=0 +animation/clip_31/loops=false +animation/clip_32/name="" +animation/clip_32/start_frame=0 +animation/clip_32/end_frame=0 +animation/clip_32/loops=false +animation/clip_33/name="" +animation/clip_33/start_frame=0 +animation/clip_33/end_frame=0 +animation/clip_33/loops=false +animation/clip_34/name="" +animation/clip_34/start_frame=0 +animation/clip_34/end_frame=0 +animation/clip_34/loops=false +animation/clip_35/name="" +animation/clip_35/start_frame=0 +animation/clip_35/end_frame=0 +animation/clip_35/loops=false +animation/clip_36/name="" +animation/clip_36/start_frame=0 +animation/clip_36/end_frame=0 +animation/clip_36/loops=false +animation/clip_37/name="" +animation/clip_37/start_frame=0 +animation/clip_37/end_frame=0 +animation/clip_37/loops=false +animation/clip_38/name="" +animation/clip_38/start_frame=0 +animation/clip_38/end_frame=0 +animation/clip_38/loops=false +animation/clip_39/name="" +animation/clip_39/start_frame=0 +animation/clip_39/end_frame=0 +animation/clip_39/loops=false +animation/clip_40/name="" +animation/clip_40/start_frame=0 +animation/clip_40/end_frame=0 +animation/clip_40/loops=false +animation/clip_41/name="" +animation/clip_41/start_frame=0 +animation/clip_41/end_frame=0 +animation/clip_41/loops=false +animation/clip_42/name="" +animation/clip_42/start_frame=0 +animation/clip_42/end_frame=0 +animation/clip_42/loops=false +animation/clip_43/name="" +animation/clip_43/start_frame=0 +animation/clip_43/end_frame=0 +animation/clip_43/loops=false +animation/clip_44/name="" +animation/clip_44/start_frame=0 +animation/clip_44/end_frame=0 +animation/clip_44/loops=false +animation/clip_45/name="" +animation/clip_45/start_frame=0 +animation/clip_45/end_frame=0 +animation/clip_45/loops=false +animation/clip_46/name="" +animation/clip_46/start_frame=0 +animation/clip_46/end_frame=0 +animation/clip_46/loops=false +animation/clip_47/name="" +animation/clip_47/start_frame=0 +animation/clip_47/end_frame=0 +animation/clip_47/loops=false +animation/clip_48/name="" +animation/clip_48/start_frame=0 +animation/clip_48/end_frame=0 +animation/clip_48/loops=false +animation/clip_49/name="" +animation/clip_49/start_frame=0 +animation/clip_49/end_frame=0 +animation/clip_49/loops=false +animation/clip_50/name="" +animation/clip_50/start_frame=0 +animation/clip_50/end_frame=0 +animation/clip_50/loops=false +animation/clip_51/name="" +animation/clip_51/start_frame=0 +animation/clip_51/end_frame=0 +animation/clip_51/loops=false +animation/clip_52/name="" +animation/clip_52/start_frame=0 +animation/clip_52/end_frame=0 +animation/clip_52/loops=false +animation/clip_53/name="" +animation/clip_53/start_frame=0 +animation/clip_53/end_frame=0 +animation/clip_53/loops=false +animation/clip_54/name="" +animation/clip_54/start_frame=0 +animation/clip_54/end_frame=0 +animation/clip_54/loops=false +animation/clip_55/name="" +animation/clip_55/start_frame=0 +animation/clip_55/end_frame=0 +animation/clip_55/loops=false +animation/clip_56/name="" +animation/clip_56/start_frame=0 +animation/clip_56/end_frame=0 +animation/clip_56/loops=false +animation/clip_57/name="" +animation/clip_57/start_frame=0 +animation/clip_57/end_frame=0 +animation/clip_57/loops=false +animation/clip_58/name="" +animation/clip_58/start_frame=0 +animation/clip_58/end_frame=0 +animation/clip_58/loops=false +animation/clip_59/name="" +animation/clip_59/start_frame=0 +animation/clip_59/end_frame=0 +animation/clip_59/loops=false +animation/clip_60/name="" +animation/clip_60/start_frame=0 +animation/clip_60/end_frame=0 +animation/clip_60/loops=false +animation/clip_61/name="" +animation/clip_61/start_frame=0 +animation/clip_61/end_frame=0 +animation/clip_61/loops=false +animation/clip_62/name="" +animation/clip_62/start_frame=0 +animation/clip_62/end_frame=0 +animation/clip_62/loops=false +animation/clip_63/name="" +animation/clip_63/start_frame=0 +animation/clip_63/end_frame=0 +animation/clip_63/loops=false +animation/clip_64/name="" +animation/clip_64/start_frame=0 +animation/clip_64/end_frame=0 +animation/clip_64/loops=false +animation/clip_65/name="" +animation/clip_65/start_frame=0 +animation/clip_65/end_frame=0 +animation/clip_65/loops=false +animation/clip_66/name="" +animation/clip_66/start_frame=0 +animation/clip_66/end_frame=0 +animation/clip_66/loops=false +animation/clip_67/name="" +animation/clip_67/start_frame=0 +animation/clip_67/end_frame=0 +animation/clip_67/loops=false +animation/clip_68/name="" +animation/clip_68/start_frame=0 +animation/clip_68/end_frame=0 +animation/clip_68/loops=false +animation/clip_69/name="" +animation/clip_69/start_frame=0 +animation/clip_69/end_frame=0 +animation/clip_69/loops=false +animation/clip_70/name="" +animation/clip_70/start_frame=0 +animation/clip_70/end_frame=0 +animation/clip_70/loops=false +animation/clip_71/name="" +animation/clip_71/start_frame=0 +animation/clip_71/end_frame=0 +animation/clip_71/loops=false +animation/clip_72/name="" +animation/clip_72/start_frame=0 +animation/clip_72/end_frame=0 +animation/clip_72/loops=false +animation/clip_73/name="" +animation/clip_73/start_frame=0 +animation/clip_73/end_frame=0 +animation/clip_73/loops=false +animation/clip_74/name="" +animation/clip_74/start_frame=0 +animation/clip_74/end_frame=0 +animation/clip_74/loops=false +animation/clip_75/name="" +animation/clip_75/start_frame=0 +animation/clip_75/end_frame=0 +animation/clip_75/loops=false +animation/clip_76/name="" +animation/clip_76/start_frame=0 +animation/clip_76/end_frame=0 +animation/clip_76/loops=false +animation/clip_77/name="" +animation/clip_77/start_frame=0 +animation/clip_77/end_frame=0 +animation/clip_77/loops=false +animation/clip_78/name="" +animation/clip_78/start_frame=0 +animation/clip_78/end_frame=0 +animation/clip_78/loops=false +animation/clip_79/name="" +animation/clip_79/start_frame=0 +animation/clip_79/end_frame=0 +animation/clip_79/loops=false +animation/clip_80/name="" +animation/clip_80/start_frame=0 +animation/clip_80/end_frame=0 +animation/clip_80/loops=false +animation/clip_81/name="" +animation/clip_81/start_frame=0 +animation/clip_81/end_frame=0 +animation/clip_81/loops=false +animation/clip_82/name="" +animation/clip_82/start_frame=0 +animation/clip_82/end_frame=0 +animation/clip_82/loops=false +animation/clip_83/name="" +animation/clip_83/start_frame=0 +animation/clip_83/end_frame=0 +animation/clip_83/loops=false +animation/clip_84/name="" +animation/clip_84/start_frame=0 +animation/clip_84/end_frame=0 +animation/clip_84/loops=false +animation/clip_85/name="" +animation/clip_85/start_frame=0 +animation/clip_85/end_frame=0 +animation/clip_85/loops=false +animation/clip_86/name="" +animation/clip_86/start_frame=0 +animation/clip_86/end_frame=0 +animation/clip_86/loops=false +animation/clip_87/name="" +animation/clip_87/start_frame=0 +animation/clip_87/end_frame=0 +animation/clip_87/loops=false +animation/clip_88/name="" +animation/clip_88/start_frame=0 +animation/clip_88/end_frame=0 +animation/clip_88/loops=false +animation/clip_89/name="" +animation/clip_89/start_frame=0 +animation/clip_89/end_frame=0 +animation/clip_89/loops=false +animation/clip_90/name="" +animation/clip_90/start_frame=0 +animation/clip_90/end_frame=0 +animation/clip_90/loops=false +animation/clip_91/name="" +animation/clip_91/start_frame=0 +animation/clip_91/end_frame=0 +animation/clip_91/loops=false +animation/clip_92/name="" +animation/clip_92/start_frame=0 +animation/clip_92/end_frame=0 +animation/clip_92/loops=false +animation/clip_93/name="" +animation/clip_93/start_frame=0 +animation/clip_93/end_frame=0 +animation/clip_93/loops=false +animation/clip_94/name="" +animation/clip_94/start_frame=0 +animation/clip_94/end_frame=0 +animation/clip_94/loops=false +animation/clip_95/name="" +animation/clip_95/start_frame=0 +animation/clip_95/end_frame=0 +animation/clip_95/loops=false +animation/clip_96/name="" +animation/clip_96/start_frame=0 +animation/clip_96/end_frame=0 +animation/clip_96/loops=false +animation/clip_97/name="" +animation/clip_97/start_frame=0 +animation/clip_97/end_frame=0 +animation/clip_97/loops=false +animation/clip_98/name="" +animation/clip_98/start_frame=0 +animation/clip_98/end_frame=0 +animation/clip_98/loops=false +animation/clip_99/name="" +animation/clip_99/start_frame=0 +animation/clip_99/end_frame=0 +animation/clip_99/loops=false +animation/clip_100/name="" +animation/clip_100/start_frame=0 +animation/clip_100/end_frame=0 +animation/clip_100/loops=false +animation/clip_101/name="" +animation/clip_101/start_frame=0 +animation/clip_101/end_frame=0 +animation/clip_101/loops=false +animation/clip_102/name="" +animation/clip_102/start_frame=0 +animation/clip_102/end_frame=0 +animation/clip_102/loops=false +animation/clip_103/name="" +animation/clip_103/start_frame=0 +animation/clip_103/end_frame=0 +animation/clip_103/loops=false +animation/clip_104/name="" +animation/clip_104/start_frame=0 +animation/clip_104/end_frame=0 +animation/clip_104/loops=false +animation/clip_105/name="" +animation/clip_105/start_frame=0 +animation/clip_105/end_frame=0 +animation/clip_105/loops=false +animation/clip_106/name="" +animation/clip_106/start_frame=0 +animation/clip_106/end_frame=0 +animation/clip_106/loops=false +animation/clip_107/name="" +animation/clip_107/start_frame=0 +animation/clip_107/end_frame=0 +animation/clip_107/loops=false +animation/clip_108/name="" +animation/clip_108/start_frame=0 +animation/clip_108/end_frame=0 +animation/clip_108/loops=false +animation/clip_109/name="" +animation/clip_109/start_frame=0 +animation/clip_109/end_frame=0 +animation/clip_109/loops=false +animation/clip_110/name="" +animation/clip_110/start_frame=0 +animation/clip_110/end_frame=0 +animation/clip_110/loops=false +animation/clip_111/name="" +animation/clip_111/start_frame=0 +animation/clip_111/end_frame=0 +animation/clip_111/loops=false +animation/clip_112/name="" +animation/clip_112/start_frame=0 +animation/clip_112/end_frame=0 +animation/clip_112/loops=false +animation/clip_113/name="" +animation/clip_113/start_frame=0 +animation/clip_113/end_frame=0 +animation/clip_113/loops=false +animation/clip_114/name="" +animation/clip_114/start_frame=0 +animation/clip_114/end_frame=0 +animation/clip_114/loops=false +animation/clip_115/name="" +animation/clip_115/start_frame=0 +animation/clip_115/end_frame=0 +animation/clip_115/loops=false +animation/clip_116/name="" +animation/clip_116/start_frame=0 +animation/clip_116/end_frame=0 +animation/clip_116/loops=false +animation/clip_117/name="" +animation/clip_117/start_frame=0 +animation/clip_117/end_frame=0 +animation/clip_117/loops=false +animation/clip_118/name="" +animation/clip_118/start_frame=0 +animation/clip_118/end_frame=0 +animation/clip_118/loops=false +animation/clip_119/name="" +animation/clip_119/start_frame=0 +animation/clip_119/end_frame=0 +animation/clip_119/loops=false +animation/clip_120/name="" +animation/clip_120/start_frame=0 +animation/clip_120/end_frame=0 +animation/clip_120/loops=false +animation/clip_121/name="" +animation/clip_121/start_frame=0 +animation/clip_121/end_frame=0 +animation/clip_121/loops=false +animation/clip_122/name="" +animation/clip_122/start_frame=0 +animation/clip_122/end_frame=0 +animation/clip_122/loops=false +animation/clip_123/name="" +animation/clip_123/start_frame=0 +animation/clip_123/end_frame=0 +animation/clip_123/loops=false +animation/clip_124/name="" +animation/clip_124/start_frame=0 +animation/clip_124/end_frame=0 +animation/clip_124/loops=false +animation/clip_125/name="" +animation/clip_125/start_frame=0 +animation/clip_125/end_frame=0 +animation/clip_125/loops=false +animation/clip_126/name="" +animation/clip_126/start_frame=0 +animation/clip_126/end_frame=0 +animation/clip_126/loops=false +animation/clip_127/name="" +animation/clip_127/start_frame=0 +animation/clip_127/end_frame=0 +animation/clip_127/loops=false +animation/clip_128/name="" +animation/clip_128/start_frame=0 +animation/clip_128/end_frame=0 +animation/clip_128/loops=false +animation/clip_129/name="" +animation/clip_129/start_frame=0 +animation/clip_129/end_frame=0 +animation/clip_129/loops=false +animation/clip_130/name="" +animation/clip_130/start_frame=0 +animation/clip_130/end_frame=0 +animation/clip_130/loops=false +animation/clip_131/name="" +animation/clip_131/start_frame=0 +animation/clip_131/end_frame=0 +animation/clip_131/loops=false +animation/clip_132/name="" +animation/clip_132/start_frame=0 +animation/clip_132/end_frame=0 +animation/clip_132/loops=false +animation/clip_133/name="" +animation/clip_133/start_frame=0 +animation/clip_133/end_frame=0 +animation/clip_133/loops=false +animation/clip_134/name="" +animation/clip_134/start_frame=0 +animation/clip_134/end_frame=0 +animation/clip_134/loops=false +animation/clip_135/name="" +animation/clip_135/start_frame=0 +animation/clip_135/end_frame=0 +animation/clip_135/loops=false +animation/clip_136/name="" +animation/clip_136/start_frame=0 +animation/clip_136/end_frame=0 +animation/clip_136/loops=false +animation/clip_137/name="" +animation/clip_137/start_frame=0 +animation/clip_137/end_frame=0 +animation/clip_137/loops=false +animation/clip_138/name="" +animation/clip_138/start_frame=0 +animation/clip_138/end_frame=0 +animation/clip_138/loops=false +animation/clip_139/name="" +animation/clip_139/start_frame=0 +animation/clip_139/end_frame=0 +animation/clip_139/loops=false +animation/clip_140/name="" +animation/clip_140/start_frame=0 +animation/clip_140/end_frame=0 +animation/clip_140/loops=false +animation/clip_141/name="" +animation/clip_141/start_frame=0 +animation/clip_141/end_frame=0 +animation/clip_141/loops=false +animation/clip_142/name="" +animation/clip_142/start_frame=0 +animation/clip_142/end_frame=0 +animation/clip_142/loops=false +animation/clip_143/name="" +animation/clip_143/start_frame=0 +animation/clip_143/end_frame=0 +animation/clip_143/loops=false +animation/clip_144/name="" +animation/clip_144/start_frame=0 +animation/clip_144/end_frame=0 +animation/clip_144/loops=false +animation/clip_145/name="" +animation/clip_145/start_frame=0 +animation/clip_145/end_frame=0 +animation/clip_145/loops=false +animation/clip_146/name="" +animation/clip_146/start_frame=0 +animation/clip_146/end_frame=0 +animation/clip_146/loops=false +animation/clip_147/name="" +animation/clip_147/start_frame=0 +animation/clip_147/end_frame=0 +animation/clip_147/loops=false +animation/clip_148/name="" +animation/clip_148/start_frame=0 +animation/clip_148/end_frame=0 +animation/clip_148/loops=false +animation/clip_149/name="" +animation/clip_149/start_frame=0 +animation/clip_149/end_frame=0 +animation/clip_149/loops=false +animation/clip_150/name="" +animation/clip_150/start_frame=0 +animation/clip_150/end_frame=0 +animation/clip_150/loops=false +animation/clip_151/name="" +animation/clip_151/start_frame=0 +animation/clip_151/end_frame=0 +animation/clip_151/loops=false +animation/clip_152/name="" +animation/clip_152/start_frame=0 +animation/clip_152/end_frame=0 +animation/clip_152/loops=false +animation/clip_153/name="" +animation/clip_153/start_frame=0 +animation/clip_153/end_frame=0 +animation/clip_153/loops=false +animation/clip_154/name="" +animation/clip_154/start_frame=0 +animation/clip_154/end_frame=0 +animation/clip_154/loops=false +animation/clip_155/name="" +animation/clip_155/start_frame=0 +animation/clip_155/end_frame=0 +animation/clip_155/loops=false +animation/clip_156/name="" +animation/clip_156/start_frame=0 +animation/clip_156/end_frame=0 +animation/clip_156/loops=false +animation/clip_157/name="" +animation/clip_157/start_frame=0 +animation/clip_157/end_frame=0 +animation/clip_157/loops=false +animation/clip_158/name="" +animation/clip_158/start_frame=0 +animation/clip_158/end_frame=0 +animation/clip_158/loops=false +animation/clip_159/name="" +animation/clip_159/start_frame=0 +animation/clip_159/end_frame=0 +animation/clip_159/loops=false +animation/clip_160/name="" +animation/clip_160/start_frame=0 +animation/clip_160/end_frame=0 +animation/clip_160/loops=false +animation/clip_161/name="" +animation/clip_161/start_frame=0 +animation/clip_161/end_frame=0 +animation/clip_161/loops=false +animation/clip_162/name="" +animation/clip_162/start_frame=0 +animation/clip_162/end_frame=0 +animation/clip_162/loops=false +animation/clip_163/name="" +animation/clip_163/start_frame=0 +animation/clip_163/end_frame=0 +animation/clip_163/loops=false +animation/clip_164/name="" +animation/clip_164/start_frame=0 +animation/clip_164/end_frame=0 +animation/clip_164/loops=false +animation/clip_165/name="" +animation/clip_165/start_frame=0 +animation/clip_165/end_frame=0 +animation/clip_165/loops=false +animation/clip_166/name="" +animation/clip_166/start_frame=0 +animation/clip_166/end_frame=0 +animation/clip_166/loops=false +animation/clip_167/name="" +animation/clip_167/start_frame=0 +animation/clip_167/end_frame=0 +animation/clip_167/loops=false +animation/clip_168/name="" +animation/clip_168/start_frame=0 +animation/clip_168/end_frame=0 +animation/clip_168/loops=false +animation/clip_169/name="" +animation/clip_169/start_frame=0 +animation/clip_169/end_frame=0 +animation/clip_169/loops=false +animation/clip_170/name="" +animation/clip_170/start_frame=0 +animation/clip_170/end_frame=0 +animation/clip_170/loops=false +animation/clip_171/name="" +animation/clip_171/start_frame=0 +animation/clip_171/end_frame=0 +animation/clip_171/loops=false +animation/clip_172/name="" +animation/clip_172/start_frame=0 +animation/clip_172/end_frame=0 +animation/clip_172/loops=false +animation/clip_173/name="" +animation/clip_173/start_frame=0 +animation/clip_173/end_frame=0 +animation/clip_173/loops=false +animation/clip_174/name="" +animation/clip_174/start_frame=0 +animation/clip_174/end_frame=0 +animation/clip_174/loops=false +animation/clip_175/name="" +animation/clip_175/start_frame=0 +animation/clip_175/end_frame=0 +animation/clip_175/loops=false +animation/clip_176/name="" +animation/clip_176/start_frame=0 +animation/clip_176/end_frame=0 +animation/clip_176/loops=false +animation/clip_177/name="" +animation/clip_177/start_frame=0 +animation/clip_177/end_frame=0 +animation/clip_177/loops=false +animation/clip_178/name="" +animation/clip_178/start_frame=0 +animation/clip_178/end_frame=0 +animation/clip_178/loops=false +animation/clip_179/name="" +animation/clip_179/start_frame=0 +animation/clip_179/end_frame=0 +animation/clip_179/loops=false +animation/clip_180/name="" +animation/clip_180/start_frame=0 +animation/clip_180/end_frame=0 +animation/clip_180/loops=false +animation/clip_181/name="" +animation/clip_181/start_frame=0 +animation/clip_181/end_frame=0 +animation/clip_181/loops=false +animation/clip_182/name="" +animation/clip_182/start_frame=0 +animation/clip_182/end_frame=0 +animation/clip_182/loops=false +animation/clip_183/name="" +animation/clip_183/start_frame=0 +animation/clip_183/end_frame=0 +animation/clip_183/loops=false +animation/clip_184/name="" +animation/clip_184/start_frame=0 +animation/clip_184/end_frame=0 +animation/clip_184/loops=false +animation/clip_185/name="" +animation/clip_185/start_frame=0 +animation/clip_185/end_frame=0 +animation/clip_185/loops=false +animation/clip_186/name="" +animation/clip_186/start_frame=0 +animation/clip_186/end_frame=0 +animation/clip_186/loops=false +animation/clip_187/name="" +animation/clip_187/start_frame=0 +animation/clip_187/end_frame=0 +animation/clip_187/loops=false +animation/clip_188/name="" +animation/clip_188/start_frame=0 +animation/clip_188/end_frame=0 +animation/clip_188/loops=false +animation/clip_189/name="" +animation/clip_189/start_frame=0 +animation/clip_189/end_frame=0 +animation/clip_189/loops=false +animation/clip_190/name="" +animation/clip_190/start_frame=0 +animation/clip_190/end_frame=0 +animation/clip_190/loops=false +animation/clip_191/name="" +animation/clip_191/start_frame=0 +animation/clip_191/end_frame=0 +animation/clip_191/loops=false +animation/clip_192/name="" +animation/clip_192/start_frame=0 +animation/clip_192/end_frame=0 +animation/clip_192/loops=false +animation/clip_193/name="" +animation/clip_193/start_frame=0 +animation/clip_193/end_frame=0 +animation/clip_193/loops=false +animation/clip_194/name="" +animation/clip_194/start_frame=0 +animation/clip_194/end_frame=0 +animation/clip_194/loops=false +animation/clip_195/name="" +animation/clip_195/start_frame=0 +animation/clip_195/end_frame=0 +animation/clip_195/loops=false +animation/clip_196/name="" +animation/clip_196/start_frame=0 +animation/clip_196/end_frame=0 +animation/clip_196/loops=false +animation/clip_197/name="" +animation/clip_197/start_frame=0 +animation/clip_197/end_frame=0 +animation/clip_197/loops=false +animation/clip_198/name="" +animation/clip_198/start_frame=0 +animation/clip_198/end_frame=0 +animation/clip_198/loops=false +animation/clip_199/name="" +animation/clip_199/start_frame=0 +animation/clip_199/end_frame=0 +animation/clip_199/loops=false +animation/clip_200/name="" +animation/clip_200/start_frame=0 +animation/clip_200/end_frame=0 +animation/clip_200/loops=false +animation/clip_201/name="" +animation/clip_201/start_frame=0 +animation/clip_201/end_frame=0 +animation/clip_201/loops=false +animation/clip_202/name="" +animation/clip_202/start_frame=0 +animation/clip_202/end_frame=0 +animation/clip_202/loops=false +animation/clip_203/name="" +animation/clip_203/start_frame=0 +animation/clip_203/end_frame=0 +animation/clip_203/loops=false +animation/clip_204/name="" +animation/clip_204/start_frame=0 +animation/clip_204/end_frame=0 +animation/clip_204/loops=false +animation/clip_205/name="" +animation/clip_205/start_frame=0 +animation/clip_205/end_frame=0 +animation/clip_205/loops=false +animation/clip_206/name="" +animation/clip_206/start_frame=0 +animation/clip_206/end_frame=0 +animation/clip_206/loops=false +animation/clip_207/name="" +animation/clip_207/start_frame=0 +animation/clip_207/end_frame=0 +animation/clip_207/loops=false +animation/clip_208/name="" +animation/clip_208/start_frame=0 +animation/clip_208/end_frame=0 +animation/clip_208/loops=false +animation/clip_209/name="" +animation/clip_209/start_frame=0 +animation/clip_209/end_frame=0 +animation/clip_209/loops=false +animation/clip_210/name="" +animation/clip_210/start_frame=0 +animation/clip_210/end_frame=0 +animation/clip_210/loops=false +animation/clip_211/name="" +animation/clip_211/start_frame=0 +animation/clip_211/end_frame=0 +animation/clip_211/loops=false +animation/clip_212/name="" +animation/clip_212/start_frame=0 +animation/clip_212/end_frame=0 +animation/clip_212/loops=false +animation/clip_213/name="" +animation/clip_213/start_frame=0 +animation/clip_213/end_frame=0 +animation/clip_213/loops=false +animation/clip_214/name="" +animation/clip_214/start_frame=0 +animation/clip_214/end_frame=0 +animation/clip_214/loops=false +animation/clip_215/name="" +animation/clip_215/start_frame=0 +animation/clip_215/end_frame=0 +animation/clip_215/loops=false +animation/clip_216/name="" +animation/clip_216/start_frame=0 +animation/clip_216/end_frame=0 +animation/clip_216/loops=false +animation/clip_217/name="" +animation/clip_217/start_frame=0 +animation/clip_217/end_frame=0 +animation/clip_217/loops=false +animation/clip_218/name="" +animation/clip_218/start_frame=0 +animation/clip_218/end_frame=0 +animation/clip_218/loops=false +animation/clip_219/name="" +animation/clip_219/start_frame=0 +animation/clip_219/end_frame=0 +animation/clip_219/loops=false +animation/clip_220/name="" +animation/clip_220/start_frame=0 +animation/clip_220/end_frame=0 +animation/clip_220/loops=false +animation/clip_221/name="" +animation/clip_221/start_frame=0 +animation/clip_221/end_frame=0 +animation/clip_221/loops=false +animation/clip_222/name="" +animation/clip_222/start_frame=0 +animation/clip_222/end_frame=0 +animation/clip_222/loops=false +animation/clip_223/name="" +animation/clip_223/start_frame=0 +animation/clip_223/end_frame=0 +animation/clip_223/loops=false +animation/clip_224/name="" +animation/clip_224/start_frame=0 +animation/clip_224/end_frame=0 +animation/clip_224/loops=false +animation/clip_225/name="" +animation/clip_225/start_frame=0 +animation/clip_225/end_frame=0 +animation/clip_225/loops=false +animation/clip_226/name="" +animation/clip_226/start_frame=0 +animation/clip_226/end_frame=0 +animation/clip_226/loops=false +animation/clip_227/name="" +animation/clip_227/start_frame=0 +animation/clip_227/end_frame=0 +animation/clip_227/loops=false +animation/clip_228/name="" +animation/clip_228/start_frame=0 +animation/clip_228/end_frame=0 +animation/clip_228/loops=false +animation/clip_229/name="" +animation/clip_229/start_frame=0 +animation/clip_229/end_frame=0 +animation/clip_229/loops=false +animation/clip_230/name="" +animation/clip_230/start_frame=0 +animation/clip_230/end_frame=0 +animation/clip_230/loops=false +animation/clip_231/name="" +animation/clip_231/start_frame=0 +animation/clip_231/end_frame=0 +animation/clip_231/loops=false +animation/clip_232/name="" +animation/clip_232/start_frame=0 +animation/clip_232/end_frame=0 +animation/clip_232/loops=false +animation/clip_233/name="" +animation/clip_233/start_frame=0 +animation/clip_233/end_frame=0 +animation/clip_233/loops=false +animation/clip_234/name="" +animation/clip_234/start_frame=0 +animation/clip_234/end_frame=0 +animation/clip_234/loops=false +animation/clip_235/name="" +animation/clip_235/start_frame=0 +animation/clip_235/end_frame=0 +animation/clip_235/loops=false +animation/clip_236/name="" +animation/clip_236/start_frame=0 +animation/clip_236/end_frame=0 +animation/clip_236/loops=false +animation/clip_237/name="" +animation/clip_237/start_frame=0 +animation/clip_237/end_frame=0 +animation/clip_237/loops=false +animation/clip_238/name="" +animation/clip_238/start_frame=0 +animation/clip_238/end_frame=0 +animation/clip_238/loops=false +animation/clip_239/name="" +animation/clip_239/start_frame=0 +animation/clip_239/end_frame=0 +animation/clip_239/loops=false +animation/clip_240/name="" +animation/clip_240/start_frame=0 +animation/clip_240/end_frame=0 +animation/clip_240/loops=false +animation/clip_241/name="" +animation/clip_241/start_frame=0 +animation/clip_241/end_frame=0 +animation/clip_241/loops=false +animation/clip_242/name="" +animation/clip_242/start_frame=0 +animation/clip_242/end_frame=0 +animation/clip_242/loops=false +animation/clip_243/name="" +animation/clip_243/start_frame=0 +animation/clip_243/end_frame=0 +animation/clip_243/loops=false +animation/clip_244/name="" +animation/clip_244/start_frame=0 +animation/clip_244/end_frame=0 +animation/clip_244/loops=false +animation/clip_245/name="" +animation/clip_245/start_frame=0 +animation/clip_245/end_frame=0 +animation/clip_245/loops=false +animation/clip_246/name="" +animation/clip_246/start_frame=0 +animation/clip_246/end_frame=0 +animation/clip_246/loops=false +animation/clip_247/name="" +animation/clip_247/start_frame=0 +animation/clip_247/end_frame=0 +animation/clip_247/loops=false +animation/clip_248/name="" +animation/clip_248/start_frame=0 +animation/clip_248/end_frame=0 +animation/clip_248/loops=false +animation/clip_249/name="" +animation/clip_249/start_frame=0 +animation/clip_249/end_frame=0 +animation/clip_249/loops=false +animation/clip_250/name="" +animation/clip_250/start_frame=0 +animation/clip_250/end_frame=0 +animation/clip_250/loops=false +animation/clip_251/name="" +animation/clip_251/start_frame=0 +animation/clip_251/end_frame=0 +animation/clip_251/loops=false +animation/clip_252/name="" +animation/clip_252/start_frame=0 +animation/clip_252/end_frame=0 +animation/clip_252/loops=false +animation/clip_253/name="" +animation/clip_253/start_frame=0 +animation/clip_253/end_frame=0 +animation/clip_253/loops=false +animation/clip_254/name="" +animation/clip_254/start_frame=0 +animation/clip_254/end_frame=0 +animation/clip_254/loops=false +animation/clip_255/name="" +animation/clip_255/start_frame=0 +animation/clip_255/end_frame=0 +animation/clip_255/loops=false +animation/clip_256/name="" +animation/clip_256/start_frame=0 +animation/clip_256/end_frame=0 +animation/clip_256/loops=false diff --git a/level/common/level.gd b/level/common/level.gd new file mode 100644 index 0000000..01a8cdc --- /dev/null +++ b/level/common/level.gd @@ -0,0 +1,74 @@ +extends Spatial + + +signal quit +#warning-ignore:unused_signal +signal replace_main_scene # Useless, but needed as there is no clean way to check if a node exposes a signal + +# The height at which a player automatically respawns +var out_of_bounds_y_start : float +var out_of_bounds_y_end : float + +onready var world_environment = $WorldEnvironment + +func _ready(): + if Settings.gi_quality == Settings.GIQuality.HIGH: + ProjectSettings["rendering/quality/voxel_cone_tracing/high_quality"] = true + elif Settings.gi_quality == Settings.GIQuality.LOW: + ProjectSettings["rendering/quality/voxel_cone_tracing/high_quality"] = false + else: + $GIProbe.hide() + $ReflectionProbes.show() + + if Settings.aa_quality == Settings.AAQuality.AA_8X: + get_viewport().msaa = Viewport.MSAA_8X + elif Settings.aa_quality == Settings.AAQuality.AA_4X: + get_viewport().msaa = Viewport.MSAA_4X + elif Settings.aa_quality == Settings.AAQuality.AA_2X: + get_viewport().msaa = Viewport.MSAA_2X + else: + get_viewport().msaa = Viewport.MSAA_DISABLED + + if Settings.ssao_quality == Settings.SSAOQuality.HIGH: + world_environment.environment.ssao_enabled = true + world_environment.environment.ssao_quality = world_environment.environment.SSAO_QUALITY_HIGH + elif Settings.ssao_quality == Settings.SSAOQuality.LOW: + world_environment.environment.ssao_enabled = true + world_environment.environment.ssao_quality = world_environment.environment.SSAO_QUALITY_LOW + else: + world_environment.environment.ssao_enabled = false + + if Settings.bloom_quality == Settings.BloomQuality.HIGH: + world_environment.environment.glow_enabled = true + world_environment.environment.glow_bicubic_upscale = true + elif Settings.bloom_quality == Settings.BloomQuality.LOW: + world_environment.environment.glow_enabled = true + world_environment.environment.glow_bicubic_upscale = false + else: + world_environment.environment.glow_enabled = false + world_environment.environment.glow_bicubic_upscale = false + + var window_size = OS.window_size + if Settings.resolution == Settings.Resolution.NATIVE: + pass + elif Settings.resolution == Settings.Resolution.RES_1080: + var minsize = Vector2(window_size.x * 1080 / window_size.y, 1080.0) + get_tree().set_screen_stretch(SceneTree.STRETCH_MODE_VIEWPORT, SceneTree.STRETCH_ASPECT_KEEP_HEIGHT, minsize) + elif Settings.resolution == Settings.Resolution.RES_720: + var minsize = Vector2(window_size.x * 720 / window_size.y, 720.0) + get_tree().set_screen_stretch(SceneTree.STRETCH_MODE_VIEWPORT, SceneTree.STRETCH_ASPECT_KEEP_HEIGHT, minsize) + elif Settings.resolution == Settings.Resolution.RES_540: + var minsize = Vector2(window_size.x * 540 / window_size.y, 540.0) + get_tree().set_screen_stretch(SceneTree.STRETCH_MODE_VIEWPORT, SceneTree.STRETCH_ASPECT_KEEP_HEIGHT, minsize) + + +func _input(event): + if event.is_action_pressed("quit"): + Input.set_mouse_mode(Input.MOUSE_MODE_VISIBLE) + emit_signal("quit") + +func get_out_of_bounds_y_start(): + return out_of_bounds_y_start + +func get_out_of_bounds_y_end(): + return out_of_bounds_y_end diff --git a/level/particle_cache.gd b/level/particle_cache.gd new file mode 100644 index 0000000..04c4bf8 --- /dev/null +++ b/level/particle_cache.gd @@ -0,0 +1,25 @@ +extends CanvasLayer + +# See https://travismaynard.com/writing/caching-particle-materials-in-godot +# Predicted to not be needed in Godot 4.0 with Vulkan + +var materials = [ + preload("res://effects_shared/bullet/effect/BlastMaterial.tres"), + preload("res://effects_shared/bullet/effect/BlastSparksParticles.tres"), + preload("res://effects_shared/bullet/effect/InnerBlastLightParticle.tres"), + preload("res://effects_shared/bullet/effect/LightParticle.tres"), + preload("res://effects_shared/bullet/effect/light_rays_material.tres"), + preload("res://effects_shared/bullet/effect/MainBodyParticle.tres"), + preload("res://effects_shared/bullet/effect/SmokeOverrideMaterial.tres"), + preload("res://effects_shared/bullet/effect/SmokeParticles.tres"), + preload("res://effects_shared/bullet/effect/TrailParticle.tres"), + #preload(), +] + +func _ready(): + for material in materials: + var particles_instance = Particles.new() + particles_instance.set_process_material(material) + particles_instance.set_one_shot(true) + particles_instance.set_emitting(true) + self.add_child(particles_instance) diff --git a/level/particle_cache.tscn b/level/particle_cache.tscn new file mode 100644 index 0000000..a04ece3 --- /dev/null +++ b/level/particle_cache.tscn @@ -0,0 +1,6 @@ +[gd_scene load_steps=2 format=2] + +[ext_resource path="res://level/particle_cache.gd" type="Script" id=1] + +[node name="Control" type="CanvasLayer"] +script = ExtResource( 1 ) diff --git a/level/test_map1/icon.webp b/level/test_map1/icon.webp new file mode 100644 index 0000000..88ac82b Binary files /dev/null and b/level/test_map1/icon.webp differ diff --git a/level/test_map1/icon.webp.import b/level/test_map1/icon.webp.import new file mode 100644 index 0000000..1161996 --- /dev/null +++ b/level/test_map1/icon.webp.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/icon.webp-c95a3b4d776bce1e11a6f9dedbb277ad.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://level/test_map1/icon.webp" +dest_files=[ "res://.import/icon.webp-c95a3b4d776bce1e11a6f9dedbb277ad.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=2 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=false +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/level/test_map1/scripts/bounce_ball.gd b/level/test_map1/scripts/bounce_ball.gd new file mode 100644 index 0000000..74c6102 --- /dev/null +++ b/level/test_map1/scripts/bounce_ball.gd @@ -0,0 +1,14 @@ +extends RigidBody + +var initpos : Transform + +# Called when the node enters the scene tree for the first time. +func _ready(): + initpos = self.global_transform + + +# Called every frame. 'delta' is the elapsed time since the previous frame. +func _physics_process(delta): + if self.global_transform.origin.y < -10: + self.global_transform = initpos + linear_velocity = Vector3.ZERO diff --git a/level/test_map1/test_map1.gd b/level/test_map1/test_map1.gd new file mode 100644 index 0000000..de607b3 --- /dev/null +++ b/level/test_map1/test_map1.gd @@ -0,0 +1,16 @@ +extends "res://level/common/level.gd" + +onready var player = $Player +onready var playerHitbox = player.get_main_hitbox() + +var won = false + +func _init(): + # Set these constants before they are read on player's ready + out_of_bounds_y_start = -5 + out_of_bounds_y_end = -10 + +func _ready(): + #$Music.play() + player.achievement("is just a test", "yay!") + diff --git a/level/test_map1/test_map1.tscn b/level/test_map1/test_map1.tscn new file mode 100644 index 0000000..28ecf77 --- /dev/null +++ b/level/test_map1/test_map1.tscn @@ -0,0 +1,261 @@ +[gd_scene load_steps=19 format=2] + +[ext_resource path="res://player/player.tscn" type="PackedScene" id=1] +[ext_resource path="res://level/catalunya/map/StoneTilesGrey.tres" type="Material" id=2] +[ext_resource path="res://level/test_map1/test_map1.gd" type="Script" id=3] +[ext_resource path="res://enemies/bad_cat/bad_cat.tscn" type="PackedScene" id=4] +[ext_resource path="res://level/catalunya/map/Water.material" type="Material" id=5] +[ext_resource path="res://level/test_map1/scripts/bounce_ball.gd" type="Script" id=6] +[ext_resource path="res://level/catalunya/scripts/football.gd" type="Script" id=7] +[ext_resource path="res://enemies/standard_merc/standard_merc1.tscn" type="PackedScene" id=8] + +[sub_resource type="CubeMesh" id=1] + +[sub_resource type="BoxShape" id=2] + +[sub_resource type="Environment" id=3] +background_mode = 1 +background_color = Color( 0.917647, 0.996078, 1, 1 ) +ambient_light_color = Color( 1, 1, 1, 1 ) + +[sub_resource type="PhysicsMaterial" id=6] +friction = 0.9 +bounce = 0.6 + +[sub_resource type="SphereShape" id=4] +radius = 0.3 + +[sub_resource type="SphereMesh" id=5] +radius = 0.3 +height = 0.6 + +[sub_resource type="PhysicsMaterial" id=7] +friction = 0.9 +bounce = 0.2 + +[sub_resource type="SphereShape" id=8] +radius = 0.25 + +[sub_resource type="SphereMesh" id=9] +radius = 0.25 +height = 0.5 +radial_segments = 8 +rings = 8 + +[sub_resource type="SpatialMaterial" id=10] +albedo_color = Color( 0.623529, 0.34902, 0.27451, 1 ) + +[node name="test_map1" type="Spatial"] +script = ExtResource( 3 ) + +[node name="BadCat" parent="." instance=ExtResource( 4 )] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 7.09006, 0, -2.68893 ) + +[node name="Floor" type="StaticBody" parent="."] +transform = Transform( 20, 0, 0, 0, 1, 0, 0, 0, 20, 0, -1, 0 ) + +[node name="MeshInstance" type="MeshInstance" parent="Floor"] +mesh = SubResource( 1 ) +skeleton = NodePath("../..") +material/0 = ExtResource( 2 ) + +[node name="CollisionShape" type="CollisionShape" parent="Floor"] +shape = SubResource( 2 ) + +[node name="Floor1" type="StaticBody" parent="."] +transform = Transform( 20, 0, 0, 0, 1, 0, 0, 0, 20, 0, -1, -40 ) + +[node name="MeshInstance" type="MeshInstance" parent="Floor1"] +mesh = SubResource( 1 ) +skeleton = NodePath("../..") +material/0 = ExtResource( 2 ) + +[node name="CollisionShape" type="CollisionShape" parent="Floor1"] +shape = SubResource( 2 ) + +[node name="Cube1" type="StaticBody" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.927768, -5.64043 ) + +[node name="MeshInstance" type="MeshInstance" parent="Cube1"] +mesh = SubResource( 1 ) +skeleton = NodePath("../..") +material/0 = ExtResource( 2 ) + +[node name="CollisionShape" type="CollisionShape" parent="Cube1"] +shape = SubResource( 2 ) + +[node name="Cube2" type="StaticBody" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.790343, -10.1126 ) + +[node name="MeshInstance" type="MeshInstance" parent="Cube2"] +mesh = SubResource( 1 ) +skeleton = NodePath("../..") +material/0 = ExtResource( 2 ) + +[node name="CollisionShape" type="CollisionShape" parent="Cube2"] +shape = SubResource( 2 ) + +[node name="Cube3" type="StaticBody" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.603661, -15.2456 ) + +[node name="MeshInstance" type="MeshInstance" parent="Cube3"] +mesh = SubResource( 1 ) +skeleton = NodePath("../..") +material/0 = ExtResource( 2 ) + +[node name="CollisionShape" type="CollisionShape" parent="Cube3"] +shape = SubResource( 2 ) + +[node name="Cube4" type="StaticBody" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.390682, -20.3983 ) + +[node name="MeshInstance" type="MeshInstance" parent="Cube4"] +mesh = SubResource( 1 ) +skeleton = NodePath("../..") +material/0 = ExtResource( 2 ) + +[node name="CollisionShape" type="CollisionShape" parent="Cube4"] +shape = SubResource( 2 ) + +[node name="Cube5" type="StaticBody" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.083955, -25.6438 ) + +[node name="MeshInstance" type="MeshInstance" parent="Cube5"] +mesh = SubResource( 1 ) +skeleton = NodePath("../..") +material/0 = ExtResource( 2 ) + +[node name="CollisionShape" type="CollisionShape" parent="Cube5"] +shape = SubResource( 2 ) + +[node name="Cube6" type="StaticBody" parent="."] +transform = Transform( 2, 0, 0, 0, 2, 0, 0, 0, 4, 8.12111, 1.80836, -25.6438 ) + +[node name="MeshInstance" type="MeshInstance" parent="Cube6"] +mesh = SubResource( 1 ) +skeleton = NodePath("../..") +material/0 = ExtResource( 2 ) + +[node name="CollisionShape" type="CollisionShape" parent="Cube6"] +shape = SubResource( 2 ) + +[node name="Cube7" type="StaticBody" parent="."] +transform = Transform( 2, 0, 0, 0, 2, 0, 0, 0, 4, 11.984, 1.80836, -33.5086 ) + +[node name="MeshInstance" type="MeshInstance" parent="Cube7"] +mesh = SubResource( 1 ) +skeleton = NodePath("../..") +material/0 = ExtResource( 2 ) + +[node name="CollisionShape" type="CollisionShape" parent="Cube7"] +shape = SubResource( 2 ) + +[node name="Cube8" type="StaticBody" parent="."] +transform = Transform( 2, 0, 0, 0, 2, 0, 0, 0, 4, 11.984, 3.20686, -41.073 ) + +[node name="MeshInstance" type="MeshInstance" parent="Cube8"] +mesh = SubResource( 1 ) +skeleton = NodePath("../..") +material/0 = ExtResource( 2 ) + +[node name="CollisionShape" type="CollisionShape" parent="Cube8"] +shape = SubResource( 2 ) + +[node name="Cube9" type="StaticBody" parent="."] +transform = Transform( 2, 0, 0, 0, 2, 0, 0, 0, 4, 9.56388, 5.59158, -41.073 ) + +[node name="MeshInstance" type="MeshInstance" parent="Cube9"] +mesh = SubResource( 1 ) +skeleton = NodePath("../..") +material/0 = ExtResource( 2 ) + +[node name="CollisionShape" type="CollisionShape" parent="Cube9"] +shape = SubResource( 2 ) + +[node name="Cube10" type="StaticBody" parent="."] +transform = Transform( 0.970594, 1.54347, -1.64396, -1.72886, 0.705772, -1.43237, -0.262639, 1.05811, 3.35347, -3.01689, -1.03669, -46.9288 ) + +[node name="MeshInstance" type="MeshInstance" parent="Cube10"] +mesh = SubResource( 1 ) +skeleton = NodePath("../..") +material/0 = ExtResource( 2 ) + +[node name="CollisionShape" type="CollisionShape" parent="Cube10"] +shape = SubResource( 2 ) + +[node name="Cube11" type="StaticBody" parent="."] +transform = Transform( 1.12629, 0.590272, -3.08743, -1.58831, 0.903021, -1.62706, 0.456902, 1.68408, 1.95459, -10.3751, -1.03669, -50.241 ) + +[node name="MeshInstance" type="MeshInstance" parent="Cube11"] +mesh = SubResource( 1 ) +skeleton = NodePath("../..") +material/0 = ExtResource( 2 ) + +[node name="CollisionShape" type="CollisionShape" parent="Cube11"] +shape = SubResource( 2 ) + +[node name="Ramp1" type="StaticBody" parent="."] +transform = Transform( 2.94, 0, 0, 0, 0.818661, -9.05118, 0, 0.574277, 12.9029, -16.9254, 8.04054, -36.1385 ) + +[node name="MeshInstance" type="MeshInstance" parent="Ramp1"] +mesh = SubResource( 1 ) +skeleton = NodePath("../..") +material/0 = ExtResource( 2 ) + +[node name="CollisionShape" type="CollisionShape" parent="Ramp1"] +shape = SubResource( 2 ) + +[node name="Ramp2" type="StaticBody" parent="."] +transform = Transform( 2.94, 0, 0, 0, 0.958417, -4.49773, 0, 0.285371, 15.1056, -11.7692, 2.07444, -33.5521 ) + +[node name="MeshInstance" type="MeshInstance" parent="Ramp2"] +mesh = SubResource( 1 ) +skeleton = NodePath("../..") +material/0 = ExtResource( 2 ) + +[node name="CollisionShape" type="CollisionShape" parent="Ramp2"] +shape = SubResource( 2 ) + +[node name="Ramp3" type="StaticBody" parent="."] +transform = Transform( 2.94, 0, 0, 0, 0.895199, -7.02415, 0, 0.445667, 14.1092, -14.1739, 4.07704, -33.5521 ) + +[node name="MeshInstance" type="MeshInstance" parent="Ramp3"] +mesh = SubResource( 1 ) +skeleton = NodePath("../..") +material/0 = ExtResource( 2 ) + +[node name="CollisionShape" type="CollisionShape" parent="Ramp3"] +shape = SubResource( 2 ) + +[node name="WorldEnvironment" type="WorldEnvironment" parent="."] +environment = SubResource( 3 ) + +[node name="Player" parent="." instance=ExtResource( 1 )] +transform = Transform( 0.635135, 0, 0.772401, 0, 1, 0, -0.772401, 0, 0.635135, -4.04131, 0.350183, -27.4315 ) + +[node name="RigidBody" type="RigidBody" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 7.43503, 12.3932, -38.5021 ) +physics_material_override = SubResource( 6 ) +script = ExtResource( 6 ) + +[node name="CollisionShape" type="CollisionShape" parent="RigidBody"] +shape = SubResource( 4 ) + +[node name="MeshInstance" type="MeshInstance" parent="RigidBody"] +mesh = SubResource( 5 ) +material/0 = ExtResource( 5 ) + +[node name="football" type="RigidBody" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -3.3992, 2.75736, -29.6419 ) +physics_material_override = SubResource( 7 ) +script = ExtResource( 7 ) + +[node name="Collision" type="CollisionShape" parent="football"] +shape = SubResource( 8 ) + +[node name="MeshInstance" type="MeshInstance" parent="football"] +mesh = SubResource( 9 ) +material/0 = SubResource( 10 ) + +[node name="merc_st_1" parent="." instance=ExtResource( 8 )] +transform = Transform( -0.998138, 0, -0.0609962, 0, 1, 0, 0.0609962, 0, -0.998138, -5.55122, 0.13746, 16.6914 ) diff --git a/main/main.gd b/main/main.gd new file mode 100644 index 0000000..5f5eab3 --- /dev/null +++ b/main/main.gd @@ -0,0 +1,26 @@ +extends Node + +func _ready(): + OS.window_fullscreen = Settings.fullscreen + go_to_main_menu() + + +func go_to_main_menu(): + var menu = ResourceLoader.load("res://menu/menu.tscn") + change_scene(menu) + + +func replace_main_scene(resource): + call_deferred("change_scene", resource) + + +func change_scene(resource : Resource): + var node = resource.instance() + + for child in get_children(): + remove_child(child) + child.queue_free() + add_child(node) + + node.connect("quit", self, "go_to_main_menu") + node.connect("replace_main_scene", self, "replace_main_scene") diff --git a/main/main.tscn b/main/main.tscn new file mode 100644 index 0000000..adf9f14 --- /dev/null +++ b/main/main.tscn @@ -0,0 +1,6 @@ +[gd_scene load_steps=2 format=2] + +[ext_resource path="res://main/main.gd" type="Script" id=1] + +[node name="main" type="Node"] +script = ExtResource( 1 ) diff --git a/menu/LevelList.gd b/menu/LevelList.gd new file mode 100644 index 0000000..5f0c462 --- /dev/null +++ b/menu/LevelList.gd @@ -0,0 +1,12 @@ +extends ItemList + +# Initiallize and manage level selection list + +func _ready(): + add_item("Home", load("res://level/catalunya/icon.webp")) + add_item("test_map1", load("res://level/test_map1/icon.webp")) + select(0) + + +func _on_LevelList_nothing_selected(): + select(0) diff --git a/menu/Nonstop.mp3.import b/menu/Nonstop.mp3.import new file mode 100644 index 0000000..3fe293b --- /dev/null +++ b/menu/Nonstop.mp3.import @@ -0,0 +1,15 @@ +[remap] + +importer="mp3" +type="AudioStreamMP3" +path="res://.import/Nonstop.mp3-e7ffd4b6ea9d9ba7490715f4497130fd.mp3str" + +[deps] + +source_file="res://menu/Nonstop.mp3" +dest_files=[ "res://.import/Nonstop.mp3-e7ffd4b6ea9d9ba7490715f4497130fd.mp3str" ] + +[params] + +loop=true +loop_offset=0 diff --git a/menu/Nonstop.ogg b/menu/Nonstop.ogg new file mode 100644 index 0000000..b354c49 Binary files /dev/null and b/menu/Nonstop.ogg differ diff --git a/menu/Nonstop.ogg.import b/menu/Nonstop.ogg.import new file mode 100644 index 0000000..04913d7 --- /dev/null +++ b/menu/Nonstop.ogg.import @@ -0,0 +1,15 @@ +[remap] + +importer="ogg_vorbis" +type="AudioStreamOGGVorbis" +path="res://.import/Nonstop.ogg-ab6030567ab79e5b2eff9a014b0415b9.oggstr" + +[deps] + +source_file="res://menu/Nonstop.ogg" +dest_files=[ "res://.import/Nonstop.ogg-ab6030567ab79e5b2eff9a014b0415b9.oggstr" ] + +[params] + +loop=true +loop_offset=0 diff --git a/menu/button_action_pressed.tres b/menu/button_action_pressed.tres new file mode 100644 index 0000000..acd658f --- /dev/null +++ b/menu/button_action_pressed.tres @@ -0,0 +1,16 @@ +[gd_resource type="StyleBoxFlat" format=2] + +[resource] +bg_color = Color( 0, 0, 0, 0 ) +border_width_left = 2 +border_width_top = 2 +border_width_right = 2 +border_width_bottom = 2 +border_color = Color( 1, 1, 1, 1 ) +corner_radius_top_left = 6 +corner_radius_top_right = 6 +corner_radius_bottom_right = 6 +corner_radius_bottom_left = 6 +shadow_color = Color( 1, 1, 1, 0.431373 ) +shadow_size = 10 +anti_aliasing = false diff --git a/menu/button_focus.tres b/menu/button_focus.tres new file mode 100644 index 0000000..6aaf43f --- /dev/null +++ b/menu/button_focus.tres @@ -0,0 +1,17 @@ +[gd_resource type="StyleBoxFlat" format=2] + +[resource] +bg_color = Color( 0, 0, 0, 0 ) +draw_center = false +border_width_left = 4 +border_width_top = 4 +border_width_right = 4 +border_width_bottom = 4 +border_color = Color( 0.890196, 0.321569, 0.321569, 0.752941 ) +border_blend = true +corner_radius_top_left = 6 +corner_radius_top_right = 6 +corner_radius_bottom_right = 6 +corner_radius_bottom_left = 6 +anti_aliasing = false +anti_aliasing_size = 2.0 diff --git a/menu/button_font.tres b/menu/button_font.tres new file mode 100644 index 0000000..4578c05 --- /dev/null +++ b/menu/button_font.tres @@ -0,0 +1,8 @@ +[gd_resource type="DynamicFont" load_steps=2 format=2] + +[ext_resource path="res://menu/font/PT_Sans-Web-Bold.ttf" type="DynamicFontData" id=1] + +[resource] +size = 40 +use_filter = true +font_data = ExtResource( 1 ) diff --git a/menu/button_hover.tres b/menu/button_hover.tres new file mode 100644 index 0000000..83035b9 --- /dev/null +++ b/menu/button_hover.tres @@ -0,0 +1,17 @@ +[gd_resource type="StyleBoxFlat" format=2] + +[resource] +bg_color = Color( 0, 0, 0, 0 ) +draw_center = false +border_width_left = 2 +border_width_top = 2 +border_width_right = 2 +border_width_bottom = 2 +border_color = Color( 1, 1, 1, 1 ) +corner_radius_top_left = 6 +corner_radius_top_right = 6 +corner_radius_bottom_right = 6 +corner_radius_bottom_left = 6 +shadow_color = Color( 1, 1, 1, 0.431373 ) +shadow_size = 10 +anti_aliasing = false diff --git a/menu/button_normal.tres b/menu/button_normal.tres new file mode 100644 index 0000000..93a69f7 --- /dev/null +++ b/menu/button_normal.tres @@ -0,0 +1,14 @@ +[gd_resource type="StyleBoxFlat" format=2] + +[resource] +bg_color = Color( 0, 0, 0, 0 ) +border_width_left = 2 +border_width_top = 2 +border_width_right = 2 +border_width_bottom = 2 +border_color = Color( 0.145098, 0.145098, 0.145098, 1 ) +corner_radius_top_left = 6 +corner_radius_top_right = 6 +corner_radius_bottom_right = 6 +corner_radius_bottom_left = 6 +shadow_color = Color( 1, 1, 1, 0.0901961 ) diff --git a/menu/button_pressed.tres b/menu/button_pressed.tres new file mode 100644 index 0000000..f5edab0 --- /dev/null +++ b/menu/button_pressed.tres @@ -0,0 +1,18 @@ +[gd_resource type="StyleBoxFlat" format=2] + +[resource] +bg_color = Color( 0, 0, 0, 0 ) +draw_center = false +border_width_left = 2 +border_width_top = 2 +border_width_right = 2 +border_width_bottom = 2 +border_blend = true +corner_radius_top_left = 6 +corner_radius_top_right = 6 +corner_radius_bottom_right = 6 +corner_radius_bottom_left = 6 +shadow_color = Color( 1, 1, 1, 0.6 ) +shadow_size = 10 +anti_aliasing = false +anti_aliasing_size = 2.0 diff --git a/menu/cache_scene.tscn b/menu/cache_scene.tscn new file mode 100644 index 0000000..19bd56d --- /dev/null +++ b/menu/cache_scene.tscn @@ -0,0 +1,3 @@ +[gd_scene format=2] + +[node name="Spatial" type="Spatial"] diff --git a/menu/floor.png b/menu/floor.png new file mode 100644 index 0000000..ea1bc8a Binary files /dev/null and b/menu/floor.png differ diff --git a/menu/floor.png.import b/menu/floor.png.import new file mode 100644 index 0000000..b98e985 --- /dev/null +++ b/menu/floor.png.import @@ -0,0 +1,36 @@ +[remap] + +importer="texture" +type="StreamTexture" +path.s3tc="res://.import/floor.png-cfea6a18452e506a975e8d6895f52a1e.s3tc.stex" +metadata={ +"imported_formats": [ "s3tc" ], +"vram_texture": true +} + +[deps] + +source_file="res://menu/floor.png" +dest_files=[ "res://.import/floor.png-cfea6a18452e506a975e8d6895f52a1e.s3tc.stex" ] + +[params] + +compress/mode=2 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=true +flags/filter=true +flags/mipmaps=true +flags/anisotropic=false +flags/srgb=1 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/menu/font/OFL.txt b/menu/font/OFL.txt new file mode 100644 index 0000000..1103b8b --- /dev/null +++ b/menu/font/OFL.txt @@ -0,0 +1,94 @@ +Copyright (c) 2010, ParaType Ltd. (http://www.paratype.com/public), +with Reserved Font Names "PT Sans" and "ParaType". + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +http://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/menu/font/PT_Sans-Web-Bold.ttf b/menu/font/PT_Sans-Web-Bold.ttf new file mode 100644 index 0000000..3d4e6fe Binary files /dev/null and b/menu/font/PT_Sans-Web-Bold.ttf differ diff --git a/menu/menu.gd b/menu/menu.gd new file mode 100644 index 0000000..34c9532 --- /dev/null +++ b/menu/menu.gd @@ -0,0 +1,250 @@ +extends Node + +var res_loader: ResourceInteractiveLoader = null +var loading_thread: Thread = null + +signal replace_main_scene +#warning-ignore:unused_signal +signal quit # Useless, but needed as there is no clean way to check if a node exposes a signal + +var level_path = [ + "res://level/catalunya/catalunya.tscn", # Home + "res://level/test_map1/test_map1.tscn", # test_map1 +] + +onready var ui = $UI +onready var background = ui.get_node(@"Background") +onready var title = ui.get_node(@"Title") +onready var main = ui.get_node(@"Main") +onready var main_buttons = main.get_node(@"MainButtons") +onready var begin_button = main_buttons.get_node(@"Begin") +onready var game_settings_button = main_buttons.get_node(@"GameSettings") +onready var graphics_settings_button = main_buttons.get_node(@"GraphicsSettings") +onready var credits_button = main_buttons.get_node(@"Credits") +onready var exit_button = main_buttons.get_node(@"Exit") +onready var level_list = main.get_node(@"LevelList") + +onready var graphics_settings_menu = ui.get_node(@"GraphicsSettings") +onready var graphics_settings_actions = graphics_settings_menu.get_node(@"Actions") +onready var graphics_settings_action_apply = graphics_settings_actions.get_node(@"ApplyGraphics") +onready var graphics_settings_action_cancel = graphics_settings_actions.get_node(@"CancelGraphics") + +onready var credits_menu = ui.get_node(@"Credits") +onready var credits_back_button = credits_menu.get_node(@"BackCredits") + +onready var gi_menu = graphics_settings_menu.get_node(@"GI") +onready var gi_high = gi_menu.get_node(@"High") +onready var gi_low = gi_menu.get_node(@"Low") +onready var gi_disabled = gi_menu.get_node(@"Disabled") + +onready var aa_menu = graphics_settings_menu.get_node(@"AA") +onready var aa_8x = aa_menu.get_node(@"8X") +onready var aa_4x = aa_menu.get_node(@"4X") +onready var aa_2x = aa_menu.get_node(@"2X") +onready var aa_disabled = aa_menu.get_node(@"Disabled") + +onready var ssao_menu = graphics_settings_menu.get_node(@"SSAO") +onready var ssao_high = ssao_menu.get_node(@"High") +onready var ssao_low = ssao_menu.get_node(@"Low") +onready var ssao_disabled = ssao_menu.get_node(@"Disabled") + +onready var bloom_menu = graphics_settings_menu.get_node(@"Bloom") +onready var bloom_high = bloom_menu.get_node(@"High") +onready var bloom_low = bloom_menu.get_node(@"Low") +onready var bloom_disabled = bloom_menu.get_node(@"Disabled") + +onready var resolution_menu = graphics_settings_menu.get_node(@"Resolution") +onready var resolution_native = resolution_menu.get_node(@"Native") +onready var resolution_1080 = resolution_menu.get_node(@"1080") +onready var resolution_720 = resolution_menu.get_node(@"720") +onready var resolution_540 = resolution_menu.get_node(@"540") + +onready var fullscreen_menu = graphics_settings_menu.get_node(@"Fullscreen") +onready var fullscreen_yes = fullscreen_menu.get_node(@"Yes") +onready var fullscreen_no = fullscreen_menu.get_node(@"No") + +onready var loading = ui.get_node(@"Loading") +onready var loading_progress = loading.get_node(@"Progress") +onready var loading_done_timer = loading.get_node(@"DoneTimer") + +func _ready(): + get_tree().set_screen_stretch(SceneTree.STRETCH_MODE_2D, SceneTree.STRETCH_ASPECT_KEEP, Vector2(1920, 1080)) + begin_button.grab_focus() + #var sound_effects = $BackgroundCache/RedRobot/SoundEffects + #for child in sound_effects.get_children(): + # child.unit_db = -200 + + +func interactive_load(loader): + while true: + var status = loader.poll() + if status == OK: + loading_progress.value = (loader.get_stage() * 100) / loader.get_stage_count() + continue + elif status == ERR_FILE_EOF: + loading_progress.value = 100 + loading_done_timer.start() + break + else: + print("Error while loading level: " + str(status)) + main.show() + title.show() + background.hide() + loading.hide() + break + + +func loading_done(loader): + loading_thread.wait_to_finish() + emit_signal("replace_main_scene", loader.get_resource()) + res_loader = null + # Weirdly, "res_loader = null" is needed as otherwise + # loading the resource again is not possible. + + +func _on_loading_done_timer_timeout(): + loading_done(res_loader) + + +func _on_begin_pressed(): + main.hide() + loading.show() + var path = level_path[level_list.get_selected_items()[0]] + if ResourceLoader.has_cached(path): + emit_signal("replace_main_scene", ResourceLoader.load(path)) + else: + res_loader = ResourceLoader.load_interactive(path) + loading_thread = Thread.new() + #warning-ignore:return_value_discarded + loading_thread.start(self, "interactive_load", res_loader) + +func _on_graphics_settings_pressed(): + main.hide() + title.hide() + background.show() + graphics_settings_menu.show() + graphics_settings_action_cancel.grab_focus() + + if Settings.gi_quality == Settings.GIQuality.HIGH: + gi_high.pressed = true + elif Settings.gi_quality == Settings.GIQuality.LOW: + gi_low.pressed = true + elif Settings.gi_quality == Settings.GIQuality.DISABLED: + gi_disabled.pressed = true + + if Settings.aa_quality == Settings.AAQuality.AA_8X: + aa_8x.pressed = true + elif Settings.aa_quality == Settings.AAQuality.AA_4X: + aa_4x.pressed = true + elif Settings.aa_quality == Settings.AAQuality.AA_2X: + aa_2x.pressed = true + elif Settings.aa_quality == Settings.AAQuality.DISABLED: + aa_disabled.pressed = true + + if Settings.ssao_quality == Settings.SSAOQuality.HIGH: + ssao_high.pressed = true + elif Settings.ssao_quality == Settings.SSAOQuality.LOW: + ssao_low.pressed = true + elif Settings.ssao_quality == Settings.SSAOQuality.DISABLED: + ssao_disabled.pressed = true + + if Settings.bloom_quality == Settings.BloomQuality.HIGH: + bloom_high.pressed = true + elif Settings.bloom_quality == Settings.BloomQuality.LOW: + bloom_low.pressed = true + elif Settings.bloom_quality == Settings.BloomQuality.DISABLED: + bloom_disabled.pressed = true + + if Settings.resolution == Settings.Resolution.NATIVE: + resolution_native.pressed = true + elif Settings.resolution == Settings.Resolution.RES_1080: + resolution_1080.pressed = true + elif Settings.resolution == Settings.Resolution.RES_720: + resolution_720.pressed = true + elif Settings.resolution == Settings.Resolution.RES_540: + resolution_540.pressed = true + + if Settings.fullscreen: + fullscreen_yes.pressed = true + else: + fullscreen_no.pressed = true + + +func _on_exit_pressed(): + get_tree().quit() + + +func _on_apply_graphics_pressed(): + main.show() + title.show() + background.hide() + begin_button.grab_focus() + graphics_settings_menu.hide() + + if gi_high.pressed: + Settings.gi_quality = Settings.GIQuality.HIGH + elif gi_low.pressed: + Settings.gi_quality = Settings.GIQuality.LOW + elif gi_disabled.pressed: + Settings.gi_quality = Settings.GIQuality.DISABLED + + if aa_8x.pressed: + Settings.aa_quality = Settings.AAQuality.AA_8X + elif aa_4x.pressed: + Settings.aa_quality = Settings.AAQuality.AA_4X + elif aa_2x.pressed: + Settings.aa_quality = Settings.AAQuality.AA_2X + elif aa_disabled.pressed: + Settings.aa_quality = Settings.AAQuality.DISABLED + + if ssao_high.pressed: + Settings.ssao_quality = Settings.SSAOQuality.HIGH + elif ssao_low.pressed: + Settings.ssao_quality = Settings.SSAOQuality.LOW + elif ssao_disabled.pressed: + Settings.ssao_quality = Settings.SSAOQuality.DISABLED + + if bloom_high.pressed: + Settings.bloom_quality = Settings.BloomQuality.HIGH + elif bloom_low.pressed: + Settings.bloom_quality = Settings.BloomQuality.LOW + elif bloom_disabled.pressed: + Settings.bloom_quality = Settings.BloomQuality.DISABLED + + if resolution_native.pressed: + Settings.resolution = Settings.Resolution.NATIVE + elif resolution_1080.pressed: + Settings.resolution = Settings.Resolution.RES_1080 + elif resolution_720.pressed: + Settings.resolution = Settings.Resolution.RES_720 + elif resolution_540.pressed: + Settings.resolution = Settings.Resolution.RES_540 + + Settings.fullscreen = fullscreen_yes.pressed + + # Apply the setting directly + OS.window_fullscreen = Settings.fullscreen + + Settings.save_settings() + + +func _on_cancel_graphics_pressed(): + main.show() + title.show() + background.hide() + begin_button.grab_focus() + graphics_settings_menu.hide() + + +func _on_back_credits_pressed(): + main.show() + background.hide() + begin_button.grab_focus() + credits_menu.hide() + + +func _on_credits_pressed(): + main.hide() + background.show() + credits_back_button.grab_focus() + credits_menu.show() diff --git a/menu/menu.tscn b/menu/menu.tscn new file mode 100644 index 0000000..511ca34 --- /dev/null +++ b/menu/menu.tscn @@ -0,0 +1,793 @@ +[gd_scene load_steps=36 format=2] + +[ext_resource path="res://menu/menu.gd" type="Script" id=1] +[ext_resource path="res://menu/font/PT_Sans-Web-Bold.ttf" type="DynamicFontData" id=2] +[ext_resource path="res://enemies/bad_cat/bad_cat.tscn" type="PackedScene" id=3] +[ext_resource path="res://menu/floor.png" type="Texture" id=4] +[ext_resource path="res://menu/Nonstop.ogg" type="AudioStream" id=5] +[ext_resource path="res://menu/menu_player.tscn" type="PackedScene" id=6] +[ext_resource path="res://enemies/bad_cat/bullet/bullet.tscn" type="PackedScene" id=7] +[ext_resource path="res://effects_shared/bullet/BlastMesh.glb" type="PackedScene" id=8] +[ext_resource path="res://menu/LevelList.gd" type="Script" id=9] +[ext_resource path="res://menu/button_font.tres" type="DynamicFont" id=13] +[ext_resource path="res://menu/button_pressed.tres" type="StyleBox" id=14] +[ext_resource path="res://menu/button_normal.tres" type="StyleBox" id=15] +[ext_resource path="res://menu/button_focus.tres" type="StyleBox" id=16] +[ext_resource path="res://menu/button_hover.tres" type="StyleBox" id=17] +[ext_resource path="res://menu/button_action_pressed.tres" type="StyleBox" id=18] +[ext_resource path="res://enemies/standard_merc/standard_merc1.tscn" type="PackedScene" id=19] +[ext_resource path="res://player/bullet/bullet.tscn" type="PackedScene" id=20] + +[sub_resource type="Environment" id=2] +background_mode = 1 +glow_enabled = true +glow_levels/7 = true +glow_intensity = 0.5 +glow_strength = 0.81 +glow_blend_mode = 1 +glow_hdr_threshold = 0.34 +glow_bicubic_upscale = true +adjustment_enabled = true +adjustment_brightness = 0.89 +adjustment_contrast = 1.09 + +[sub_resource type="QuadMesh" id=3] +size = Vector2( 15, 15 ) + +[sub_resource type="SpatialMaterial" id=4] +albedo_texture = ExtResource( 4 ) +metallic = 0.78 + +[sub_resource type="Theme" id=9] +Button/colors/font_color = Color( 1, 1, 1, 1 ) +Button/colors/font_color_disabled = Color( 0.9, 0.9, 0.9, 0.2 ) +Button/colors/font_color_hover = Color( 1, 1, 1, 1 ) +Button/colors/font_color_pressed = Color( 1, 1, 1, 1 ) +Button/constants/hseparation = 2 +Button/fonts/font = ExtResource( 13 ) +Button/styles/disabled = null +Button/styles/focus = ExtResource( 16 ) +Button/styles/hover = ExtResource( 17 ) +Button/styles/normal = ExtResource( 15 ) +Button/styles/pressed = ExtResource( 14 ) +Label/colors/font_color = Color( 1, 1, 1, 1 ) +Label/colors/font_color_shadow = Color( 0, 0, 0, 0 ) +Label/colors/font_outline_modulate = Color( 1, 1, 1, 1 ) +Label/constants/line_spacing = 3 +Label/constants/shadow_as_outline = 0 +Label/constants/shadow_offset_x = 1 +Label/constants/shadow_offset_y = 1 +Label/fonts/font = ExtResource( 13 ) +Label/styles/normal = null + +[sub_resource type="DynamicFont" id=22] +size = 120 +use_filter = true +font_data = ExtResource( 2 ) + +[sub_resource type="ButtonGroup" id=10] + +[sub_resource type="ButtonGroup" id=11] + +[sub_resource type="ButtonGroup" id=12] + +[sub_resource type="ButtonGroup" id=13] + +[sub_resource type="ButtonGroup" id=14] + +[sub_resource type="ButtonGroup" id=15] + +[sub_resource type="DynamicFontData" id=16] +font_path = "res://menu/font/PT_Sans-Web-Bold.ttf" + +[sub_resource type="DynamicFont" id=17] +size = 40 +font_data = SubResource( 16 ) + +[sub_resource type="StyleBoxFlat" id=18] +bg_color = Color( 0.278431, 0.278431, 0.360784, 1 ) +border_width_left = 5 +border_width_top = 5 +border_width_right = 5 +border_width_bottom = 5 +border_color = Color( 0, 0, 0, 1 ) +corner_radius_top_left = 10 +corner_radius_top_right = 10 +corner_radius_bottom_right = 10 +corner_radius_bottom_left = 10 + +[sub_resource type="StyleBoxFlat" id=19] +bg_color = Color( 0.0901961, 0.0784314, 0.117647, 1 ) +border_width_left = 3 +border_width_top = 3 +border_width_right = 3 +border_width_bottom = 3 +border_color = Color( 0, 0, 0, 1 ) +corner_radius_top_left = 10 +corner_radius_top_right = 10 +corner_radius_bottom_right = 10 +corner_radius_bottom_left = 10 + +[sub_resource type="DynamicFont" id=23] +size = 26 +use_filter = true +font_data = ExtResource( 2 ) + +[sub_resource type="BoxShape" id=20] +extents = Vector3( 2, 1, 2 ) + +[sub_resource type="BoxShape" id=21] +extents = Vector3( 5, 5, 1 ) + +[node name="Menu" type="Node"] +script = ExtResource( 1 ) + +[node name="Player" parent="." instance=ExtResource( 6 )] +transform = Transform( 0.888329, 0, -0.459208, 0, 1, 0, 0.459208, 0, 0.888329, 0.129027, 0, 0 ) + +[node name="WorldEnvironment" type="WorldEnvironment" parent="."] +environment = SubResource( 2 ) + +[node name="SoundEffects" type="Node" parent="."] +__meta__ = { +"_editor_description_": "There must be an AudioStreamPlayer node at the path \"SoundEffects/Step\" next to the player model, anywhere that the player model is instanced. This is to prevent the animation from deleting the step from the track." +} + +[node name="Step" type="AudioStreamPlayer" parent="SoundEffects"] +__meta__ = { +"_editor_description_": "There must be an AudioStreamPlayer node at the path \"SoundEffects/Step\" next to the player model, anywhere that the player model is instanced. This is to prevent the animation from deleting the step from the track." +} + +[node name="Floor" type="MeshInstance" parent="."] +transform = Transform( 1, 0, 0, 0, 0, 1, 0, -1, 0, 0, 0, 0 ) +mesh = SubResource( 3 ) +material/0 = SubResource( 4 ) + +[node name="SpotLight" type="SpotLight" parent="."] +transform = Transform( 0.967027, 2.01738e-07, 0.254675, -0.164134, 0.76462, 0.623231, -0.19473, -0.644482, 0.739408, 0.557445, 2.31204, 0.922098 ) +light_energy = 0.66 +shadow_enabled = true +shadow_bias = 0.01 + +[node name="Camera" type="Camera" parent="."] +transform = Transform( 0.871624, -0.0363083, 0.488828, 0, 0.997253, 0.0740721, -0.490175, -0.064563, 0.86923, 0.0702285, 1.22404, 2.09675 ) +current = true + +[node name="Music" type="AudioStreamPlayer" parent="."] +stream = ExtResource( 5 ) +autoplay = true + +[node name="UI" type="Control" parent="."] +anchor_left = 0.00106799 +anchor_right = 1.00107 +anchor_bottom = 1.0 +theme = SubResource( 9 ) +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Background" type="ColorRect" parent="UI"] +visible = false +anchor_right = 1.0 +anchor_bottom = 1.0 +mouse_filter = 2 +color = Color( 0, 0, 0, 0.909804 ) +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Title" type="Label" parent="UI"] +anchor_left = 0.5 +anchor_right = 0.5 +margin_left = -581.0 +margin_top = 64.0 +margin_right = 581.0 +margin_bottom = 221.0 +grow_horizontal = 2 +custom_colors/font_color = Color( 1, 0.435294, 0.435294, 1 ) +custom_fonts/font = SubResource( 22 ) +text = "Escape from Catalunya" +align = 1 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Main" type="Control" parent="UI"] +margin_right = 40.0 +margin_bottom = 40.0 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="MainButtons" type="VBoxContainer" parent="UI/Main"] +anchor_top = 0.5 +anchor_bottom = 0.5 +margin_left = 136.0 +margin_top = 208.0 +margin_right = 656.0 +margin_bottom = 946.0 +custom_constants/separation = 50 +alignment = 1 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Begin" type="Button" parent="UI/Main/MainButtons"] +margin_top = 126.0 +margin_right = 520.0 +margin_bottom = 183.0 +text = "BEGIN" +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="GameSettings" type="Button" parent="UI/Main/MainButtons"] +margin_top = 233.0 +margin_right = 520.0 +margin_bottom = 290.0 +disabled = true +text = "GAME SETTINGS" +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="GraphicsSettings" type="Button" parent="UI/Main/MainButtons"] +margin_top = 340.0 +margin_right = 520.0 +margin_bottom = 397.0 +text = "GRAPHICS SETTINGS" +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Credits" type="Button" parent="UI/Main/MainButtons"] +margin_top = 447.0 +margin_right = 520.0 +margin_bottom = 504.0 +text = "CREDITS" +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Exit" type="Button" parent="UI/Main/MainButtons"] +margin_top = 554.0 +margin_right = 520.0 +margin_bottom = 611.0 +text = "EXIT" + +[node name="LevelList" type="ItemList" parent="UI/Main"] +margin_left = 728.0 +margin_top = 353.0 +margin_right = 1170.0 +margin_bottom = 433.0 +auto_height = true +script = ExtResource( 9 ) +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="GraphicsSettings" type="VBoxContainer" parent="UI"] +visible = false +anchor_left = 0.109896 +anchor_top = 0.32037 +anchor_right = 0.808854 +anchor_bottom = 0.785185 +custom_constants/separation = 30 +__meta__ = { +"_edit_use_anchors_": true +} + +[node name="GI" type="HBoxContainer" parent="UI/GraphicsSettings"] +margin_right = 1342.0 +margin_bottom = 57.0 +custom_constants/separation = 30 +__meta__ = { +"_edit_group_": true, +"_edit_use_anchors_": false +} + +[node name="Label" type="Label" parent="UI/GraphicsSettings/GI"] +margin_top = 2.0 +margin_right = 400.0 +margin_bottom = 55.0 +rect_min_size = Vector2( 400, 0 ) +custom_colors/font_color = Color( 1, 1, 1, 1 ) +text = "Global Illumination:" + +[node name="High" type="Button" parent="UI/GraphicsSettings/GI"] +margin_left = 430.0 +margin_right = 714.0 +margin_bottom = 57.0 +size_flags_horizontal = 3 +toggle_mode = true +pressed = true +group = SubResource( 10 ) +text = "High" + +[node name="Low" type="Button" parent="UI/GraphicsSettings/GI"] +margin_left = 744.0 +margin_right = 1028.0 +margin_bottom = 57.0 +size_flags_horizontal = 3 +toggle_mode = true +group = SubResource( 10 ) +text = "Low" + +[node name="Disabled" type="Button" parent="UI/GraphicsSettings/GI"] +margin_left = 1058.0 +margin_right = 1342.0 +margin_bottom = 57.0 +size_flags_horizontal = 3 +toggle_mode = true +group = SubResource( 10 ) +text = "Disabled" + +[node name="AA" type="HBoxContainer" parent="UI/GraphicsSettings"] +margin_top = 87.0 +margin_right = 1342.0 +margin_bottom = 144.0 +custom_constants/separation = 30 +__meta__ = { +"_edit_group_": true, +"_edit_use_anchors_": false +} + +[node name="Label" type="Label" parent="UI/GraphicsSettings/AA"] +margin_right = 400.0 +margin_bottom = 57.0 +rect_min_size = Vector2( 400, 0 ) +size_flags_vertical = 1 +custom_colors/font_color = Color( 1, 1, 1, 1 ) +text = "Anti Aliasing:" + +[node name="8X" type="Button" parent="UI/GraphicsSettings/AA"] +margin_left = 430.0 +margin_right = 635.0 +margin_bottom = 57.0 +size_flags_horizontal = 3 +toggle_mode = true +pressed = true +group = SubResource( 11 ) +text = "8x" + +[node name="4X" type="Button" parent="UI/GraphicsSettings/AA"] +margin_left = 665.0 +margin_right = 871.0 +margin_bottom = 57.0 +size_flags_horizontal = 3 +toggle_mode = true +group = SubResource( 11 ) +text = "4x" + +[node name="2X" type="Button" parent="UI/GraphicsSettings/AA"] +margin_left = 901.0 +margin_right = 1106.0 +margin_bottom = 57.0 +size_flags_horizontal = 3 +toggle_mode = true +group = SubResource( 11 ) +text = "2x" + +[node name="Disabled" type="Button" parent="UI/GraphicsSettings/AA"] +margin_left = 1136.0 +margin_right = 1342.0 +margin_bottom = 57.0 +size_flags_horizontal = 3 +toggle_mode = true +group = SubResource( 11 ) +text = "Disabled" + +[node name="SSAO" type="HBoxContainer" parent="UI/GraphicsSettings"] +margin_top = 174.0 +margin_right = 1342.0 +margin_bottom = 231.0 +custom_constants/separation = 30 +__meta__ = { +"_edit_group_": true +} + +[node name="Label" type="Label" parent="UI/GraphicsSettings/SSAO"] +margin_right = 400.0 +margin_bottom = 57.0 +rect_min_size = Vector2( 400, 0 ) +size_flags_vertical = 1 +custom_colors/font_color = Color( 1, 1, 1, 1 ) +text = "SSAO:" +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="High" type="Button" parent="UI/GraphicsSettings/SSAO"] +margin_left = 430.0 +margin_right = 714.0 +margin_bottom = 57.0 +size_flags_horizontal = 3 +toggle_mode = true +pressed = true +group = SubResource( 12 ) +text = "High" + +[node name="Low" type="Button" parent="UI/GraphicsSettings/SSAO"] +margin_left = 744.0 +margin_right = 1028.0 +margin_bottom = 57.0 +size_flags_horizontal = 3 +toggle_mode = true +group = SubResource( 12 ) +text = "Low" + +[node name="Disabled" type="Button" parent="UI/GraphicsSettings/SSAO"] +margin_left = 1058.0 +margin_right = 1342.0 +margin_bottom = 57.0 +size_flags_horizontal = 3 +toggle_mode = true +group = SubResource( 12 ) +text = "Disabled" + +[node name="Bloom" type="HBoxContainer" parent="UI/GraphicsSettings"] +margin_top = 261.0 +margin_right = 1342.0 +margin_bottom = 318.0 +custom_constants/separation = 30 +__meta__ = { +"_edit_group_": true +} + +[node name="Label" type="Label" parent="UI/GraphicsSettings/Bloom"] +margin_right = 400.0 +margin_bottom = 57.0 +rect_min_size = Vector2( 400, 0 ) +size_flags_vertical = 1 +custom_colors/font_color = Color( 1, 1, 1, 1 ) +text = "Bloom:" +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="High" type="Button" parent="UI/GraphicsSettings/Bloom"] +margin_left = 430.0 +margin_right = 714.0 +margin_bottom = 57.0 +size_flags_horizontal = 3 +toggle_mode = true +pressed = true +group = SubResource( 13 ) +text = "High" + +[node name="Low" type="Button" parent="UI/GraphicsSettings/Bloom"] +margin_left = 744.0 +margin_right = 1028.0 +margin_bottom = 57.0 +size_flags_horizontal = 3 +toggle_mode = true +group = SubResource( 13 ) +text = "Low" + +[node name="Disabled" type="Button" parent="UI/GraphicsSettings/Bloom"] +margin_left = 1058.0 +margin_right = 1342.0 +margin_bottom = 57.0 +size_flags_horizontal = 3 +toggle_mode = true +group = SubResource( 13 ) +text = "Disabled" + +[node name="Resolution" type="HBoxContainer" parent="UI/GraphicsSettings"] +margin_top = 348.0 +margin_right = 1342.0 +margin_bottom = 405.0 +custom_constants/separation = 30 +__meta__ = { +"_edit_group_": true +} + +[node name="Label" type="Label" parent="UI/GraphicsSettings/Resolution"] +margin_top = 2.0 +margin_right = 400.0 +margin_bottom = 55.0 +rect_min_size = Vector2( 400, 0 ) +custom_colors/font_color = Color( 1, 1, 1, 1 ) +text = "Resolution:" +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Native" type="Button" parent="UI/GraphicsSettings/Resolution"] +margin_left = 430.0 +margin_right = 635.0 +margin_bottom = 57.0 +size_flags_horizontal = 3 +toggle_mode = true +pressed = true +group = SubResource( 14 ) +text = "Native" + +[node name="1080" type="Button" parent="UI/GraphicsSettings/Resolution"] +margin_left = 665.0 +margin_right = 871.0 +margin_bottom = 57.0 +size_flags_horizontal = 3 +toggle_mode = true +group = SubResource( 14 ) +text = "1080" + +[node name="720" type="Button" parent="UI/GraphicsSettings/Resolution"] +margin_left = 901.0 +margin_right = 1106.0 +margin_bottom = 57.0 +size_flags_horizontal = 3 +toggle_mode = true +group = SubResource( 14 ) +text = "720" + +[node name="540" type="Button" parent="UI/GraphicsSettings/Resolution"] +margin_left = 1136.0 +margin_right = 1342.0 +margin_bottom = 57.0 +size_flags_horizontal = 3 +toggle_mode = true +group = SubResource( 14 ) +text = "540" + +[node name="Fullscreen" type="HBoxContainer" parent="UI/GraphicsSettings"] +margin_top = 435.0 +margin_right = 1342.0 +margin_bottom = 492.0 +custom_constants/separation = 30 + +[node name="Label" type="Label" parent="UI/GraphicsSettings/Fullscreen"] +margin_top = 2.0 +margin_right = 400.0 +margin_bottom = 55.0 +rect_min_size = Vector2( 400, 0 ) +custom_colors/font_color = Color( 1, 1, 1, 1 ) +text = "Fullscreen" +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Yes" type="Button" parent="UI/GraphicsSettings/Fullscreen"] +margin_left = 430.0 +margin_right = 871.0 +margin_bottom = 57.0 +size_flags_horizontal = 3 +toggle_mode = true +pressed = true +group = SubResource( 15 ) +text = "Yes" + +[node name="No" type="Button" parent="UI/GraphicsSettings/Fullscreen"] +margin_left = 901.0 +margin_right = 1342.0 +margin_bottom = 57.0 +size_flags_horizontal = 3 +toggle_mode = true +group = SubResource( 15 ) +text = "No" + +[node name="HSeparator" type="HSeparator" parent="UI/GraphicsSettings"] +modulate = Color( 1, 1, 1, 0 ) +margin_top = 522.0 +margin_right = 1342.0 +margin_bottom = 542.0 +rect_min_size = Vector2( 0, 20 ) + +[node name="Actions" type="HBoxContainer" parent="UI/GraphicsSettings"] +margin_top = 572.0 +margin_right = 1342.0 +margin_bottom = 629.0 +custom_constants/separation = 50 + +[node name="ApplyGraphics" type="Button" parent="UI/GraphicsSettings/Actions"] +margin_right = 646.0 +margin_bottom = 57.0 +size_flags_horizontal = 3 +custom_colors/font_color = Color( 1, 1, 1, 1 ) +custom_colors/font_color_hover = Color( 1, 1, 1, 1 ) +custom_colors/font_color_pressed = Color( 1, 1, 1, 1 ) +custom_fonts/font = SubResource( 17 ) +custom_styles/hover = ExtResource( 18 ) +custom_styles/pressed = ExtResource( 18 ) +text = "Apply" +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="CancelGraphics" type="Button" parent="UI/GraphicsSettings/Actions"] +margin_left = 696.0 +margin_right = 1342.0 +margin_bottom = 57.0 +size_flags_horizontal = 3 +custom_colors/font_color = Color( 1, 1, 1, 1 ) +custom_colors/font_color_hover = Color( 1, 1, 1, 1 ) +custom_colors/font_color_pressed = Color( 1, 1, 1, 1 ) +custom_fonts/font = SubResource( 17 ) +custom_styles/hover = ExtResource( 18 ) +custom_styles/pressed = ExtResource( 18 ) +text = "Cancel" + +[node name="Loading" type="HBoxContainer" parent="UI"] +visible = false +anchor_top = 1.0 +anchor_right = 1.0 +anchor_bottom = 1.0 +margin_left = 100.0 +margin_top = -135.0 +margin_right = -130.0 +margin_bottom = -100.0 +custom_constants/separation = 100 +__meta__ = { +"_edit_group_": true, +"_edit_use_anchors_": false +} + +[node name="Label" type="Label" parent="UI/Loading"] +margin_right = 169.0 +margin_bottom = 53.0 +custom_fonts/font = ExtResource( 13 ) +text = "Loading..." + +[node name="Progress" type="ProgressBar" parent="UI/Loading"] +margin_left = 269.0 +margin_right = 1690.0 +margin_bottom = 53.0 +size_flags_horizontal = 3 +size_flags_vertical = 1 +custom_styles/fg = SubResource( 18 ) +custom_styles/bg = SubResource( 19 ) +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="DoneTimer" type="Timer" parent="UI/Loading"] +wait_time = 0.5 +one_shot = true + +[node name="Credits" type="Control" parent="UI"] +visible = false +margin_right = 1914.0 +margin_bottom = 1075.0 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="CreditText" type="RichTextLabel" parent="UI/Credits"] +anchor_left = 0.5 +anchor_right = 0.5 +margin_left = -759.0 +margin_top = 262.0 +margin_right = 760.0 +margin_bottom = 968.0 +grow_horizontal = 2 +focus_mode = 2 +mouse_default_cursor_shape = 1 +custom_fonts/normal_font = SubResource( 23 ) +text = "This game is Free and Open Source, with the possible dispute of Julio Sillet's pretty-much-free textures. DLC add-ons may contain different non-free assets. + +Concept/Code/Modelling/Animation: Discomrade (CC BY-SA 4.0/GPL3) + +Code base: Godot Third Person Shooter Demo (MIT License) +Supplimentary 3PS code: Johnny Rouddro (MIT License) + +Music: \"Nonstop\", \"Hot Pursuit\", \"Neon Laser Horizon\" by Kevin Macleod (CC BY 3.0) + +Alunya model based on \"Colette the Happy Farmer\" by poll (CC-BY-SA) +Eyes: \"AnimuEyes\" shader by Francesco149 (Unlicense License) +AK-47 model based on \"AK47\" by john95 (CC BY 3.0) + +Enemy mercinaries based on \"Rigged SWAT Officer\" by Xali (CC-0) + +Catalunya map: + Catalunya Buildings: + - Textures: Julio Sillet (\"Textures are free to use in any kind of commercial or non-commercial projects without attribution required, also can be shared freely. The only restriction at the moment is selling the textures on other markets/stores/pages, do not claim ownership of these textures. Textures are going to be released as CC0 once I reach the second [Patreon] Goal\") + - Models: \"La piazza\" by Comotempera (CC BY 3.0) + Catalunya Stairs: \"Medieval Modular Design: Stairs\" by Daniel74 (CC-0) + Catalunya bridge: \"Castle\" by Dimmyxv (CC-0) + Catalunya flag: + - Model: \"Flagpole with Seamless Looping Flag Animation\" by Geometricity (CC-0) + - Texture: \"Estelada_roja.svg\" by Huhsunqu (CC BY-SA 2.5) + Ivy: \"Low-poly foliege\" by EugeneKiver (CC-0) + + Skybox based on \"Berga i Serra de Queralt des de la Serra de Noet, Catalunya, Espanya - 20110204.png\" by Joancreus (CC BY-SA 3.0)" +selection_enabled = true +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="BackCredits" type="Button" parent="UI/Credits"] +anchor_left = 0.5 +anchor_top = 1.0 +anchor_right = 0.5 +anchor_bottom = 1.0 +margin_left = -323.0 +margin_top = -81.0 +margin_right = 323.0 +margin_bottom = -24.0 +size_flags_horizontal = 3 +custom_colors/font_color = Color( 1, 1, 1, 1 ) +custom_colors/font_color_hover = Color( 1, 1, 1, 1 ) +custom_colors/font_color_pressed = Color( 1, 1, 1, 1 ) +custom_fonts/font = SubResource( 17 ) +custom_styles/hover = ExtResource( 18 ) +custom_styles/pressed = ExtResource( 18 ) +text = "F" +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="BackgroundCache" type="Spatial" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -15, -10, -10 ) +__meta__ = { +"_editor_description_": "This section forces Godot to cache the models/materials/shaders by creating them on the menu. Everything is out of sight because it is behind the floor, but it's within the camera's view frustum." +} + +[node name="Floor" type="StaticBody" parent="BackgroundCache"] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -1, 0 ) +collision_layer = 2147483651 +collision_mask = 3 + +[node name="CollisionShape" type="CollisionShape" parent="BackgroundCache/Floor"] +shape = SubResource( 20 ) + +[node name="Floor2" type="StaticBody" parent="BackgroundCache"] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 52.5568, 8.94613, 8.03683 ) +collision_layer = 2147483651 +collision_mask = 3 + +[node name="CollisionShape" type="CollisionShape" parent="BackgroundCache/Floor2"] +shape = SubResource( 20 ) + +[node name="Floor4" type="StaticBody" parent="BackgroundCache"] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.175494, -20.0435, -486.053 ) +collision_layer = 2147483651 +collision_mask = 3 + +[node name="CollisionShape" type="CollisionShape" parent="BackgroundCache/Floor4"] +shape = SubResource( 20 ) + +[node name="Floor3" type="StaticBody" parent="BackgroundCache"] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 11.4217, 8.94613, -99.4579 ) +collision_layer = 2147483651 +collision_mask = 3 + +[node name="CollisionShape" type="CollisionShape" parent="BackgroundCache/Floor3"] +shape = SubResource( 20 ) + +[node name="Target" type="StaticBody" parent="BackgroundCache"] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 3 ) +collision_layer = 2147483650 +collision_mask = 2147483650 + +[node name="CollisionShape" type="CollisionShape" parent="BackgroundCache/Target"] +shape = SubResource( 21 ) + +[node name="BulletPlayer" parent="BackgroundCache" instance=ExtResource( 20 )] +transform = Transform( -1, 8.4334e-08, 3.14739e-07, 0, 0.965926, -0.258819, -3.25841e-07, -0.258819, -0.965926, 0, -20, -483.2 ) + +[node name="ExplosionAudio" parent="BackgroundCache/BulletPlayer" index="4"] +visible = false +unit_db = -80.0 + +[node name="BlastMesh" parent="BackgroundCache/BulletPlayer" instance=ExtResource( 8 )] + +[node name="BulletCat" parent="BackgroundCache" instance=ExtResource( 7 )] +transform = Transform( 1, 0, 0, 0, -0.997508, -0.0705572, 0, 0.0705572, -0.997508, 0, -19.3313, -482.709 ) + +[node name="merc1" parent="BackgroundCache" instance=ExtResource( 19 )] +transform = Transform( 0.22, 0, 0, 0, 0.22, 0, 0, 0, 0.22, 11.7154, 10.2469, -100.116 ) + +[node name="BadCat" parent="BackgroundCache" instance=ExtResource( 3 )] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 52.739, 10.2469, 8.24517 ) + +[connection signal="pressed" from="UI/Main/MainButtons/Begin" to="." method="_on_begin_pressed"] +[connection signal="pressed" from="UI/Main/MainButtons/GraphicsSettings" to="." method="_on_graphics_settings_pressed"] +[connection signal="pressed" from="UI/Main/MainButtons/Credits" to="." method="_on_credits_pressed"] +[connection signal="pressed" from="UI/Main/MainButtons/Exit" to="." method="_on_exit_pressed"] +[connection signal="nothing_selected" from="UI/Main/LevelList" to="UI/Main/LevelList" method="_on_LevelList_nothing_selected"] +[connection signal="pressed" from="UI/GraphicsSettings/Actions/ApplyGraphics" to="." method="_on_apply_graphics_pressed"] +[connection signal="pressed" from="UI/GraphicsSettings/Actions/CancelGraphics" to="." method="_on_cancel_graphics_pressed"] +[connection signal="timeout" from="UI/Loading/DoneTimer" to="." method="_on_loading_done_timer_timeout"] +[connection signal="pressed" from="UI/Credits/BackCredits" to="." method="_on_back_credits_pressed"] + +[editable path="BackgroundCache/BulletPlayer"] diff --git a/menu/menu_intro_music.ogg.import b/menu/menu_intro_music.ogg.import new file mode 100644 index 0000000..11e9807 --- /dev/null +++ b/menu/menu_intro_music.ogg.import @@ -0,0 +1,15 @@ +[remap] + +importer="ogg_vorbis" +type="AudioStreamOGGVorbis" +path="res://.import/menu_intro_music.ogg-790ed16894e4b5a52d74fb71b5f5de88.oggstr" + +[deps] + +source_file="res://menu/menu_intro_music.ogg" +dest_files=[ "res://.import/menu_intro_music.ogg-790ed16894e4b5a52d74fb71b5f5de88.oggstr" ] + +[params] + +loop=true +loop_offset=0 diff --git a/menu/menu_player.gd b/menu/menu_player.gd new file mode 100644 index 0000000..71fdbcf --- /dev/null +++ b/menu/menu_player.gd @@ -0,0 +1,4 @@ +extends Spatial + +func _ready(): + $AnimationTree["parameters/reload_oneshot/active"] = true diff --git a/menu/menu_player.tscn b/menu/menu_player.tscn new file mode 100644 index 0000000..6a3d00c --- /dev/null +++ b/menu/menu_player.tscn @@ -0,0 +1,95 @@ +[gd_scene load_steps=16 format=2] + +[ext_resource path="res://player/weapons/weapon.tscn" type="PackedScene" id=1] +[ext_resource path="res://player/model/materials/animu_alunya_shadermat.tres" type="Material" id=2] +[ext_resource path="res://menu/menu_player.gd" type="Script" id=3] +[ext_resource path="res://player/model/materials/bandana.tres" type="Material" id=4] +[ext_resource path="res://player/model/materials/face.tres" type="Material" id=5] +[ext_resource path="res://player/model/materials/body.tres" type="Material" id=6] +[ext_resource path="res://player/model/Alunya.glb" type="PackedScene" id=7] +[ext_resource path="res://player/model/materials/ear.tres" type="Material" id=8] + +[sub_resource type="Animation" id=69] +resource_name = "blink-loop" +length = 4.0 +loop = true +tracks/0/type = "bezier" +tracks/0/path = NodePath("Colette_Armature/Skeleton/Colette_Mesh:material/1:shader_param/topEllipse:y") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"points": PoolRealArray( 0.5, -0.25, 0, 0, 0, 0.8, 0, 0, 0, 0, 0.5, -0.25, 0, 0.25, 0 ), +"times": PoolRealArray( 3, 3.1, 3.3 ) +} + +[sub_resource type="AnimationNodeAnimation" id=66] +animation = "idle-loop" + +[sub_resource type="AnimationNodeBlend2" id=12] +resource_local_to_scene = true +filter_enabled = true +filters = [ "Colette_Armature/Skeleton/Colette_Mesh:material/0:shader_param/topEllipse:y", "Colette_Armature/Skeleton/Colette_Mesh:material/1:shader_param/topEllipse:y", "Robot_Skeleton/Skeleton:eyelid.d.L", "Robot_Skeleton/Skeleton:eyelid.d.R", "Robot_Skeleton/Skeleton:eyelid.u.L", "Robot_Skeleton/Skeleton:eyelid.u.R", "Robot_Skeleton/Skeleton:eyes" ] + +[sub_resource type="AnimationNodeAnimation" id=13] +resource_local_to_scene = true +animation = "blink-loop" + +[sub_resource type="AnimationNodeAnimation" id=64] +animation = "reload" + +[sub_resource type="AnimationNodeOneShot" id=65] + +[sub_resource type="AnimationNodeBlendTree" id=30] +resource_local_to_scene = true +graph_offset = Vector2( 91, 64 ) +nodes/Animation/node = SubResource( 66 ) +nodes/Animation/position = Vector2( 220, 100 ) +nodes/eye_blend/node = SubResource( 12 ) +nodes/eye_blend/position = Vector2( 801, 91 ) +nodes/eyes/node = SubResource( 13 ) +nodes/eyes/position = Vector2( 600, 200 ) +nodes/output/position = Vector2( 1005, 91 ) +nodes/reload/node = SubResource( 64 ) +nodes/reload/position = Vector2( 220, 220 ) +nodes/reload_oneshot/node = SubResource( 65 ) +nodes/reload_oneshot/position = Vector2( 389.11, 116.947 ) +node_connections = [ "output", 0, "eye_blend", "eye_blend", 0, "reload_oneshot", "eye_blend", 1, "eyes", "reload_oneshot", 0, "Animation", "reload_oneshot", 1, "reload" ] + +[node name="Menu_Player" type="Spatial"] +script = ExtResource( 3 ) + +[node name="Alunya" parent="." instance=ExtResource( 7 )] + +[node name="Skeleton" parent="Alunya/Colette_Armature" index="0"] +bones/94/bound_children = [ NodePath("GunBone") ] + +[node name="GunBone" type="BoneAttachment" parent="Alunya/Colette_Armature/Skeleton" index="0"] +transform = Transform( -0.023637, -0.185955, -0.982274, 0.00576981, -0.982524, 0.185864, -0.99967, -0.00127377, 0.0242972, -0.201716, 0.742111, -0.0339236 ) +bone_name = "Hand.R" + +[node name="Weapon" parent="Alunya/Colette_Armature/Skeleton/GunBone" instance=ExtResource( 1 )] + +[node name="Colette_Mesh" parent="Alunya/Colette_Armature/Skeleton" index="1"] +material/0 = ExtResource( 2 ) +material/1 = ExtResource( 2 ) +material/2 = ExtResource( 5 ) +material/3 = ExtResource( 6 ) +material/4 = ExtResource( 8 ) +material/5 = ExtResource( 8 ) +material/6 = ExtResource( 4 ) + +[node name="AnimationPlayer" parent="Alunya" index="1"] +anims/blink-loop = SubResource( 69 ) + +[node name="AnimationTree" type="AnimationTree" parent="."] +tree_root = SubResource( 30 ) +anim_player = NodePath("../Alunya/AnimationPlayer") +active = true +process_mode = 0 +root_motion_track = NodePath("Colette_Armature/Skeleton:Root") +parameters/eye_blend/blend_amount = 1.0 +parameters/reload_oneshot/active = false + +[editable path="Alunya"] diff --git a/menu/settings.gd b/menu/settings.gd new file mode 100644 index 0000000..fc6fe81 --- /dev/null +++ b/menu/settings.gd @@ -0,0 +1,88 @@ +extends Node + +enum GIQuality { + DISABLED = 0, + LOW = 1, + HIGH = 2, +} + +enum AAQuality { + DISABLED = 0, + AA_2X = 1, + AA_4X = 2, + AA_8X = 3, +} + +enum SSAOQuality { + DISABLED = 0, + LOW = 1, + HIGH = 2, +} + +enum BloomQuality { + DISABLED = 0, + LOW = 1, + HIGH = 2, +} + +enum Resolution { + RES_540 = 0, + RES_720 = 1, + RES_1080 = 2, + NATIVE = 3, +} + +var gi_quality = GIQuality.LOW +var aa_quality = AAQuality.AA_2X +var ssao_quality = SSAOQuality.DISABLED +var bloom_quality = BloomQuality.HIGH +var resolution = Resolution.NATIVE +var fullscreen = true + +func _ready(): + load_settings() + + +func _input(event): + if event.is_action_pressed("toggle_fullscreen"): + OS.window_fullscreen = !OS.window_fullscreen + get_tree().set_input_as_handled() + + +func load_settings(): + var f = File.new() + var error = f.open("user://settings.json", File.READ) + if error: + print("There are no settings to load.") + return + + var d = parse_json(f.get_as_text()) + if typeof(d) != TYPE_DICTIONARY: + return + + if "gi" in d: + gi_quality = int(d.gi) + + if "aa" in d: + aa_quality = int(d.aa) + + if "ssao" in d: + ssao_quality = int(d.ssao) + + if "bloom" in d: + bloom_quality = int(d.bloom) + + if "resolution" in d: + resolution = int(d.resolution) + + if "fullscreen" in d: + fullscreen = bool(d.fullscreen) + + +func save_settings(): + var f = File.new() + var error = f.open("user://settings.json", File.WRITE) + assert(not error) + + var d = { "gi":gi_quality, "aa":aa_quality, "ssao":ssao_quality, "bloom":bloom_quality, "resolution":resolution, "fullscreen":fullscreen } + f.store_line(to_json(d)) diff --git a/player/Hitbox.gd b/player/Hitbox.gd new file mode 100644 index 0000000..434b7df --- /dev/null +++ b/player/Hitbox.gd @@ -0,0 +1,6 @@ +extends KinematicBody + +export(NodePath) var node_with_hit + +func hit(col): + get_node(node_with_hit).hit(col) diff --git a/player/WeaponController.gd b/player/WeaponController.gd new file mode 100644 index 0000000..8620bb3 --- /dev/null +++ b/player/WeaponController.gd @@ -0,0 +1,112 @@ +extends Node + +onready var player = get_parent() +var weapons = [{"name": "AK-47", "available": true, + "spread": 18.0, "movement_spread": 5.5, "aim_spread": -7, "crouch_spread": -6, + "jump_spread": 12, "reload_speed": 0.8, "switch_speed": 1.2, "fire_rate": 8.0, "auto": true, + "mag": 40, "mag_size": 40, "ammo_backup": 80, "ammo_backup_max": 80, "recoil": 0.075}, + + {"name": "ShitPistol", "available": true, + "spread": 25.0, "movement_spread": 3.5, "aim_spread": -7, "crouch_spread": -5, + "jump_spread": 10, "reload_speed": 0.8, "switch_speed": 1.5, "fire_rate": 6.0, "auto": false, + "mag":15, "mag_size": 15, "ammo_backup": 30, "ammo_backup_max": 30, "recoil": 0.1}, + + {"name": "Pistol", "available": false, + "spread": 25.0, "movement_spread": 3.5, "aim_spread": -7, "crouch_spread": -5, + "jump_spread": 10, "reload_speed": 0.8, "switch_speed": 1.5, "fire_rate": 6.0, "auto": false, + "mag":15, "mag_size": 15, "ammo_backup": 30, "ammo_backup_max": 30, "recoil": 0.1}, + + {"name": "Laser", "available": true, + "spread": 18.0, "movement_spread": 5.5, "aim_spread": -7, "crouch_spread": -6, + "jump_spread": 12, "reload_speed": 0.8, "switch_speed": 1.2, "fire_rate": 3.0, "auto": true, + "mag": 9, "mag_size": 9, "ammo_backup": 999, "ammo_backup_max": 999, "recoil": 0.1}, + ] + +onready var ui_stats = $"../UI/WeaponStatUI" +onready var ui_ammo_loaded = ui_stats.get_node(@"ColorRect/AmmoLoaded") +onready var ui_ammo_extra = ui_stats.get_node(@"ColorRect/AmmoExtra") + +# setters +func update_ammo(): + ui_ammo_loaded.text = String(mag()) + ui_ammo_extra.text = String(ammo_backup()) + +func mag_decrement(): + weapons[weapon_index()]["mag"] -= 1 + update_ammo() + +func mag_fill(): + var empty_space = mag_size() - mag() + weapons[weapon_index()]["mag"] += min(empty_space, ammo_backup()) + weapons[weapon_index()]["ammo_backup"] -= min(empty_space, ammo_backup()) + update_ammo() + +func ammo_refill(ammo_type): + weapons[ammo_type]["ammo_backup"] = weapons[ammo_type]["ammo_backup_max"] + weapons[ammo_type]["mag"] = weapons[ammo_type]["mag_size"] + update_ammo() + + +# getters + +func weapon_index(): + return player.current_weapon + +func weapon_name(): + return weapons[weapon_index()]["name"] + +func spread(): + return weapons[weapon_index()]["spread"] + +func movement_spread(): + return weapons[weapon_index()]["movement_spread"] + +func aim_spread(): + return weapons[weapon_index()]["aim_spread"] + +func crouch_spread(): + return weapons[weapon_index()]["crouch_spread"] + +func jump_spread(): + return weapons[weapon_index()]["jump_spread"] + +func reload_speed(): + return weapons[weapon_index()]["reload_speed"] + +func fire_rate(): + return weapons[weapon_index()]["fire_rate"] + +func auto(): + return weapons[weapon_index()]["auto"] + +func recoil(): + return weapons[weapon_index()]["recoil"] + +func mag(): + return weapons[weapon_index()]["mag"] + +func mag_size(): + return weapons[weapon_index()]["mag_size"] + +func ammo_backup(): + return weapons[weapon_index()]["ammo_backup"] + +func switch_speed(): + return weapons[weapon_index()]["switch_speed"] + +func animation(): + return weapons[weapon_index()]["animation"] + + +# Actions +func shoot(shoot_origin, shoot_dir, col): + if mag() > 0: + player.weapon.get_node(weapon_name()).shoot(player, shoot_origin, shoot_dir, col) + mag_decrement() + return true + return false + +func play_shoot_sound(): + player.weapon.get_node(weapon_name()+"/Shoot").play() + return + diff --git a/player/audio/jump.wav b/player/audio/jump.wav new file mode 100644 index 0000000..935444a Binary files /dev/null and b/player/audio/jump.wav differ diff --git a/player/audio/jump.wav.import b/player/audio/jump.wav.import new file mode 100644 index 0000000..6ae0570 --- /dev/null +++ b/player/audio/jump.wav.import @@ -0,0 +1,21 @@ +[remap] + +importer="wav" +type="AudioStreamSample" +path="res://.import/jump.wav-2603877681c9e067c3a9a93e9a4fc8fc.sample" + +[deps] + +source_file="res://player/audio/jump.wav" +dest_files=[ "res://.import/jump.wav-2603877681c9e067c3a9a93e9a4fc8fc.sample" ] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=true +edit/normalize=true +edit/loop=false +compress/mode=0 diff --git a/player/audio/land.wav b/player/audio/land.wav new file mode 100644 index 0000000..c3b4926 Binary files /dev/null and b/player/audio/land.wav differ diff --git a/player/audio/land.wav.import b/player/audio/land.wav.import new file mode 100644 index 0000000..0dc59e2 --- /dev/null +++ b/player/audio/land.wav.import @@ -0,0 +1,21 @@ +[remap] + +importer="wav" +type="AudioStreamSample" +path="res://.import/land.wav-30873fe661744bdc60c0d00d7401aab3.sample" + +[deps] + +source_file="res://player/audio/land.wav" +dest_files=[ "res://.import/land.wav-30873fe661744bdc60c0d00d7401aab3.sample" ] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=true +edit/normalize=true +edit/loop=false +compress/mode=0 diff --git a/player/audio/shoot.wav b/player/audio/shoot.wav new file mode 100644 index 0000000..b0b7500 Binary files /dev/null and b/player/audio/shoot.wav differ diff --git a/player/audio/shoot.wav.import b/player/audio/shoot.wav.import new file mode 100644 index 0000000..0721dba --- /dev/null +++ b/player/audio/shoot.wav.import @@ -0,0 +1,21 @@ +[remap] + +importer="wav" +type="AudioStreamSample" +path="res://.import/shoot.wav-8244db64ae3703b75575788340a3a2e5.sample" + +[deps] + +source_file="res://player/audio/shoot.wav" +dest_files=[ "res://.import/shoot.wav-8244db64ae3703b75575788340a3a2e5.sample" ] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=true +edit/normalize=true +edit/loop=false +compress/mode=0 diff --git a/player/audio/step.wav b/player/audio/step.wav new file mode 100644 index 0000000..26551a8 Binary files /dev/null and b/player/audio/step.wav differ diff --git a/player/audio/step.wav.import b/player/audio/step.wav.import new file mode 100644 index 0000000..8b5608e --- /dev/null +++ b/player/audio/step.wav.import @@ -0,0 +1,21 @@ +[remap] + +importer="wav" +type="AudioStreamSample" +path="res://.import/step.wav-d0eb4ea2bd4432739110520bfa71a096.sample" + +[deps] + +source_file="res://player/audio/step.wav" +dest_files=[ "res://.import/step.wav-d0eb4ea2bd4432739110520bfa71a096.sample" ] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=true +edit/normalize=false +edit/loop=false +compress/mode=0 diff --git a/player/audio/step_random_pitch.tres b/player/audio/step_random_pitch.tres new file mode 100644 index 0000000..876edaa --- /dev/null +++ b/player/audio/step_random_pitch.tres @@ -0,0 +1,8 @@ +[gd_resource type="AudioStreamRandomPitch" load_steps=2 format=2] + +[ext_resource path="res://player/audio/step.wav" type="AudioStream" id=1] + +[resource] + +audio_stream = ExtResource( 1 ) +random_pitch = 1.1 diff --git a/player/bullet/blue_myst.png b/player/bullet/blue_myst.png new file mode 100644 index 0000000..bbb84a8 Binary files /dev/null and b/player/bullet/blue_myst.png differ diff --git a/player/bullet/blue_myst.png.import b/player/bullet/blue_myst.png.import new file mode 100644 index 0000000..ea8926e --- /dev/null +++ b/player/bullet/blue_myst.png.import @@ -0,0 +1,36 @@ +[remap] + +importer="texture" +type="StreamTexture" +path.s3tc="res://.import/blue_myst.png-08a82cdef0e5872c6ef849f237e9e756.s3tc.stex" +metadata={ +"imported_formats": [ "s3tc" ], +"vram_texture": true +} + +[deps] + +source_file="res://player/bullet/blue_myst.png" +dest_files=[ "res://.import/blue_myst.png-08a82cdef0e5872c6ef849f237e9e756.s3tc.stex" ] + +[params] + +compress/mode=2 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=true +flags/filter=true +flags/mipmaps=true +flags/anisotropic=false +flags/srgb=1 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/player/bullet/bullet.gd b/player/bullet/bullet.gd new file mode 100644 index 0000000..932be28 --- /dev/null +++ b/player/bullet/bullet.gd @@ -0,0 +1,24 @@ +extends KinematicBody + +const BULLET_VELOCITY = 20 + +var time_alive = 5 +var hit = false + +onready var animation_player = $AnimationPlayer +onready var collision_shape = $CollisionShape + +func _physics_process(delta): + if hit: + return + time_alive -= delta + if time_alive < 0: + hit = true + animation_player.play("explode") + var col = move_and_collide(-delta * BULLET_VELOCITY * transform.basis.z) + if col: + if col.collider and col.collider.has_method("hit"): + col.collider.hit(col) + collision_shape.disabled = true + animation_player.play("explode") + hit = true diff --git a/player/bullet/bullet.tscn b/player/bullet/bullet.tscn new file mode 100644 index 0000000..6251a50 --- /dev/null +++ b/player/bullet/bullet.tscn @@ -0,0 +1,405 @@ +[gd_scene load_steps=38 format=2] + +[ext_resource path="res://player/bullet/bullet.gd" type="Script" id=1] +[ext_resource path="res://effects_shared/bullet/BlastMesh_Sphere.mesh" type="ArrayMesh" id=2] +[ext_resource path="res://player/bullet/bullet_explode.wav" type="AudioStream" id=3] +[ext_resource path="res://effects_shared/bullet/effect/BlastMaterial.tres" type="Material" id=4] +[ext_resource path="res://effects_shared/bullet/effect/light_rays_material.tres" type="Material" id=5] +[ext_resource path="res://effects_shared/bullet/effect/LightParticle.tres" type="Material" id=6] +[ext_resource path="res://effects_shared/bullet/effect/SmokeParticles.tres" type="Material" id=7] +[ext_resource path="res://effects_shared/bullet/effect/SmokeOverrideMaterial.tres" type="Material" id=8] +[ext_resource path="res://player/bullet/bullet_material.tres" type="Material" id=9] +[ext_resource path="res://effects_shared/bullet/effect/MainBodyParticle.tres" type="Material" id=10] +[ext_resource path="res://effects_shared/bullet/effect/InnerBlastLightParticle.tres" type="Material" id=11] +[ext_resource path="res://effects_shared/bullet/effect/BlastSparksParticles.tres" type="Material" id=12] +[ext_resource path="res://effects_shared/bullet/effect/TrailParticle.tres" type="Material" id=13] + +[sub_resource type="SphereMesh" id=1] +radial_segments = 9 +rings = 5 + +[sub_resource type="SphereShape" id=2] +radius = 0.170413 + +[sub_resource type="Animation" id=3] +resource_name = "explode" +length = 3.0 +step = 0.05 +tracks/0/type = "value" +tracks/0/path = NodePath("OmniLight:light_energy") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0, 0.25, 0.85 ), +"transitions": PoolRealArray( 1, 1, 1 ), +"update": 0, +"values": [ 1.5, 3.0, 0.0 ] +} +tracks/1/type = "method" +tracks/1/path = NodePath(".") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 1.5 ), +"transitions": PoolRealArray( 1 ), +"values": [ { +"args": [ ], +"method": "queue_free" +} ] +} +tracks/2/type = "value" +tracks/2/path = NodePath("BulletBody/MainBody:emitting") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ false ] +} +tracks/3/type = "value" +tracks/3/path = NodePath("MeshInstance:visible") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ false ] +} +tracks/4/type = "value" +tracks/4/path = NodePath("ExplosionAudio:playing") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/keys = { +"times": PoolRealArray( 0.1 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ true ] +} +tracks/5/type = "value" +tracks/5/path = NodePath("Blast/BlastParticle:emitting") +tracks/5/interp = 1 +tracks/5/loop_wrap = false +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ true ] +} +tracks/6/type = "value" +tracks/6/path = NodePath("Blast/LightBlast:emitting") +tracks/6/interp = 1 +tracks/6/loop_wrap = false +tracks/6/imported = false +tracks/6/enabled = true +tracks/6/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ true ] +} +tracks/7/type = "value" +tracks/7/path = NodePath("Blast/BlastSparks:emitting") +tracks/7/interp = 1 +tracks/7/loop_wrap = true +tracks/7/imported = false +tracks/7/enabled = true +tracks/7/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ true ] +} +tracks/8/type = "value" +tracks/8/path = NodePath("Blast/Smoke:emitting") +tracks/8/interp = 1 +tracks/8/loop_wrap = true +tracks/8/imported = false +tracks/8/enabled = true +tracks/8/keys = { +"times": PoolRealArray( 0.2 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ true ] +} +tracks/9/type = "value" +tracks/9/path = NodePath("Blast/LightParticle:emitting") +tracks/9/interp = 1 +tracks/9/loop_wrap = true +tracks/9/imported = false +tracks/9/enabled = true +tracks/9/keys = { +"times": PoolRealArray( 0.05 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ true ] +} +tracks/10/type = "value" +tracks/10/path = NodePath("Blast/InnerBlastLight:emitting") +tracks/10/interp = 1 +tracks/10/loop_wrap = true +tracks/10/imported = false +tracks/10/enabled = true +tracks/10/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ true ] +} +tracks/11/type = "value" +tracks/11/path = NodePath("BulletBody/Trail:emitting") +tracks/11/interp = 1 +tracks/11/loop_wrap = true +tracks/11/imported = false +tracks/11/enabled = true +tracks/11/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ false ] +} + +[sub_resource type="Gradient" id=4] +offsets = PoolRealArray( 0, 0.318519, 1 ) +colors = PoolColorArray( 0.828125, 1, 1, 1, 0, 1, 1, 1, 0, 0.0829163, 0.964844, 0 ) + +[sub_resource type="GradientTexture" id=5] +gradient = SubResource( 4 ) +width = 128 + +[sub_resource type="Curve" id=6] +_data = [ Vector2( 0, 0 ), 0.0, 3.2107, 0, 0, Vector2( 0.575949, 1 ), 1.59619e-07, 0.0, 0, 0 ] + +[sub_resource type="CurveTexture" id=7] +width = 128 +curve = SubResource( 6 ) + +[sub_resource type="ParticlesMaterial" id=8] +spread = 0.0 +gravity = Vector3( 0, 0, 0 ) +scale = 0.7 +scale_curve = SubResource( 7 ) +color_ramp = SubResource( 5 ) + +[sub_resource type="Gradient" id=9] +offsets = PoolRealArray( 0, 0.703704 ) +colors = PoolColorArray( 1, 1, 1, 1, 1, 1, 1, 0 ) + +[sub_resource type="GradientTexture" id=10] +gradient = SubResource( 9 ) +width = 128 + +[sub_resource type="Curve" id=11] +_data = [ Vector2( 0, 0.236364 ), 0.0, 0.0, 0, 0, Vector2( 0.259494, 1 ), 0.0, 0.0, 0, 0, Vector2( 1, 0.763636 ), 0.0, 0.0, 0, 0 ] + +[sub_resource type="CurveTexture" id=12] +width = 128 +curve = SubResource( 11 ) + +[sub_resource type="ParticlesMaterial" id=13] +gravity = Vector3( 0, 0, 0 ) +scale = 0.8 +scale_curve = SubResource( 12 ) +color_ramp = SubResource( 10 ) + +[sub_resource type="QuadMesh" id=14] +size = Vector2( 2, 2 ) + +[sub_resource type="Shader" id=15] +code = "shader_type spatial; +render_mode blend_mix,depth_draw_alpha_prepass,cull_back,diffuse_burley,specular_schlick_ggx; +uniform vec4 albedo : hint_color; +uniform sampler2D texture_albedo : hint_albedo; +uniform float point_size : hint_range(0,128); +uniform float emission_energy = 2.0; + + +void fragment() { + vec2 base_uv = UV; + vec4 albedo_tex = texture(texture_albedo,base_uv); + albedo_tex *= COLOR; + ALBEDO = albedo.rgb * albedo_tex.rgb; + EMISSION = ALBEDO * emission_energy; +} +" + +[sub_resource type="ShaderMaterial" id=16] +shader = SubResource( 15 ) +shader_param/albedo = Color( 1, 1, 1, 1 ) +shader_param/point_size = 1.0 +shader_param/emission_energy = 7.34 + +[sub_resource type="SphereMesh" id=22] +radius = 0.03 +height = 0.06 + +[sub_resource type="QuadMesh" id=31] +size = Vector2( 2, 2 ) + +[sub_resource type="SpatialMaterial" id=32] +albedo_color = Color( 0.00784314, 0.988235, 0.988235, 1 ) +emission_enabled = true +emission = Color( 0, 0.486275, 1, 1 ) +emission_energy = 4.0 +emission_operator = 0 +emission_on_uv2 = false + +[sub_resource type="SphereMesh" id=38] +radius = 0.05 +height = 0.1 +radial_segments = 4 +rings = 4 + +[sub_resource type="SphereMesh" id=42] +radius = 0.3 +height = 0.6 + +[sub_resource type="SpatialMaterial" id=48] +flags_transparent = true +vertex_color_use_as_albedo = true +vertex_color_is_srgb = true +roughness = 0.0 +emission_enabled = true +emission = Color( 0, 0.929412, 1, 1 ) +emission_energy = 2.0 +emission_operator = 0 +emission_on_uv2 = false + +[sub_resource type="SphereMesh" id=49] +material = SubResource( 48 ) +radius = 0.1 +height = 0.2 +radial_segments = 5 +rings = 3 + +[sub_resource type="SphereMesh" id=55] +radius = 0.05 +height = 0.3 +radial_segments = 4 +rings = 4 + +[node name="Bullet" type="KinematicBody"] +collision_layer = 0 +collision_mask = 97 +script = ExtResource( 1 ) + +[node name="MeshInstance" type="MeshInstance" parent="."] +transform = Transform( 0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, 0, 0, 0 ) +visible = false +cast_shadow = 0 +mesh = SubResource( 1 ) +material/0 = null + +[node name="OmniLight" type="OmniLight" parent="."] +light_color = Color( 0, 1, 0.952941, 1 ) +light_energy = 0.778846 +light_bake_mode = 0 +shadow_enabled = true +omni_range = 3.0 +omni_attenuation = 2.0 +omni_shadow_mode = 0 + +[node name="CollisionShape" type="CollisionShape" parent="."] +shape = SubResource( 2 ) + +[node name="AnimationPlayer" type="AnimationPlayer" parent="."] +anims/explode = SubResource( 3 ) + +[node name="ExplosionAudio" type="AudioStreamPlayer3D" parent="."] +stream = ExtResource( 3 ) +unit_size = 20.0 + +[node name="Blast" type="Spatial" parent="."] + +[node name="BlastParticle" type="Particles" parent="Blast"] +material_override = ExtResource( 4 ) +emitting = false +amount = 1 +lifetime = 0.6 +one_shot = true +process_material = SubResource( 8 ) +draw_pass_1 = ExtResource( 2 ) + +[node name="LightBlast" type="Particles" parent="Blast"] +material_override = ExtResource( 5 ) +emitting = false +amount = 1 +lifetime = 0.15 +one_shot = true +process_material = SubResource( 13 ) +draw_pass_1 = SubResource( 14 ) + +[node name="BlastSparks" type="Particles" parent="Blast"] +material_override = SubResource( 16 ) +emitting = false +amount = 10 +lifetime = 0.3 +one_shot = true +explosiveness = 0.92 +process_material = ExtResource( 12 ) +draw_pass_1 = SubResource( 22 ) + +[node name="Smoke" type="Particles" parent="Blast"] +material_override = ExtResource( 8 ) +emitting = false +amount = 5 +lifetime = 1.5 +one_shot = true +explosiveness = 1.0 +process_material = ExtResource( 7 ) +draw_pass_1 = SubResource( 31 ) + +[node name="LightParticle" type="Particles" parent="Blast"] +material_override = SubResource( 32 ) +emitting = false +amount = 3 +lifetime = 0.8 +one_shot = true +explosiveness = 0.84 +process_material = ExtResource( 6 ) +draw_pass_1 = SubResource( 38 ) + +[node name="InnerBlastLight" type="Particles" parent="Blast"] +material_override = ExtResource( 9 ) +emitting = false +amount = 1 +lifetime = 0.2 +one_shot = true +process_material = ExtResource( 11 ) +draw_pass_1 = SubResource( 42 ) + +[node name="MeshInstance2" type="MeshInstance" parent="."] +visible = false +material_override = ExtResource( 4 ) +mesh = ExtResource( 2 ) +material/0 = null + +[node name="BulletBody" type="Spatial" parent="."] + +[node name="MainBody" type="Particles" parent="BulletBody"] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.00988865, 0, 0 ) +amount = 1 +lifetime = 0.1 +local_coords = false +process_material = ExtResource( 10 ) +draw_pass_1 = SubResource( 49 ) + +[node name="Trail" type="Particles" parent="BulletBody"] +material_override = ExtResource( 9 ) +amount = 10 +local_coords = false +process_material = ExtResource( 13 ) +draw_pass_1 = SubResource( 55 ) diff --git a/player/bullet/bullet_explode.wav b/player/bullet/bullet_explode.wav new file mode 100644 index 0000000..7bcebd6 Binary files /dev/null and b/player/bullet/bullet_explode.wav differ diff --git a/player/bullet/bullet_explode.wav.import b/player/bullet/bullet_explode.wav.import new file mode 100644 index 0000000..c9b93cd --- /dev/null +++ b/player/bullet/bullet_explode.wav.import @@ -0,0 +1,21 @@ +[remap] + +importer="wav" +type="AudioStreamSample" +path="res://.import/bullet_explode.wav-cb1cff5a50e4c409ec7fc505de7bc81f.sample" + +[deps] + +source_file="res://player/bullet/bullet_explode.wav" +dest_files=[ "res://.import/bullet_explode.wav-cb1cff5a50e4c409ec7fc505de7bc81f.sample" ] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=true +edit/normalize=true +edit/loop=false +compress/mode=0 diff --git a/player/bullet/bullet_material.tres b/player/bullet/bullet_material.tres new file mode 100644 index 0000000..ce798e3 --- /dev/null +++ b/player/bullet/bullet_material.tres @@ -0,0 +1,11 @@ +[gd_resource type="SpatialMaterial" format=2] + +[resource] +vertex_color_use_as_albedo = true +albedo_color = Color( 0, 0, 0, 1 ) +roughness = 0.0 +emission_enabled = true +emission = Color( 0.109804, 0.894118, 1, 1 ) +emission_energy = 7.34 +emission_operator = 0 +emission_on_uv2 = false diff --git a/player/camera_noise_shake_effect.gd b/player/camera_noise_shake_effect.gd new file mode 100644 index 0000000..de26b6e --- /dev/null +++ b/player/camera_noise_shake_effect.gd @@ -0,0 +1,76 @@ +extends Camera + +# Constant values of the effect. +const SPEED = 1.0 +const TRAUMA_DECAY_RATE = 1.5 +const RECOIL_DECAY_RATE = 0.5 +const MAX_YAW = 0.05 +const MAX_PITCH = 0.05 +const MAX_ROLL = 0.1 +const MAX_TRAUMA = 1.2 +const MAX_RECOIL = 0.2 + +# Default values. +var start_rotation = rotation +var trauma = 0.0 +var recoil = 0 +var time = 0.0 +var noise = OpenSimplexNoise.new() +var noise_seed = randi() + + +func _ready(): + noise.seed = noise_seed + noise.octaves = 1 + noise.period = 256.0 + noise.persistence = 0.5 + noise.lacunarity = 1.0 + + # This variable is reset if the camera position is changed by other scripts, + # such as when zooming in/out or focusing on a different position. + # This should NOT be done when the camera shake is happening. + start_rotation = rotation + + +func _process(delta): + if trauma > 0.0: + decay_trauma(delta) + apply_shake(delta) + if recoil > 0.0: + decay_recoil(delta) + apply_shake(delta) + +# Add trauma to start/continue the shake. +func add_trauma(amount): + trauma = min(trauma + amount, MAX_TRAUMA) + + +# Decay the trauma effect over time. +func decay_trauma(delta): + var change = TRAUMA_DECAY_RATE * delta + trauma = max(trauma - change, 0.0) + +# Add recoil to start/continue the shake. +func add_recoil(amount): + recoil = min(recoil + amount, MAX_RECOIL) + +# Decay the recoil effect over time. +func decay_recoil(delta): + var change = RECOIL_DECAY_RATE * delta + recoil = max(recoil - change, 0.0) + +# Apply the random shake accoring to delta time. +func apply_shake(delta): + # Using a magic number here to get a pleasing effect at SPEED 1.0. + time += delta * SPEED * 5000.0 + var shake = trauma * trauma + var yaw = MAX_YAW * shake * get_noise_value(noise_seed, time) + recoil/2 * get_noise_value(noise_seed, time) + var pitch = MAX_PITCH * shake * get_noise_value(noise_seed + 1, time) + recoil * (get_noise_value(noise_seed, time) + 1) + var roll = MAX_ROLL * shake * get_noise_value(noise_seed + 2, time) + rotation = start_rotation + Vector3(pitch, yaw, roll) + + +# Return a random float in range(-1, 1) using OpenSimplex noise. +func get_noise_value(seed_value, t): + noise.seed = seed_value + return noise.get_noise_1d(t) diff --git a/player/crosshair.png b/player/crosshair.png new file mode 100644 index 0000000..8ff355d Binary files /dev/null and b/player/crosshair.png differ diff --git a/player/crosshair.png.import b/player/crosshair.png.import new file mode 100644 index 0000000..2a348aa --- /dev/null +++ b/player/crosshair.png.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/crosshair.png-297ebeb4b4366d1105121af24ebea38c.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://player/crosshair.png" +dest_files=[ "res://.import/crosshair.png-297ebeb4b4366d1105121af24ebea38c.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/player/model/Alunya.glb b/player/model/Alunya.glb new file mode 100644 index 0000000..155c274 Binary files /dev/null and b/player/model/Alunya.glb differ diff --git a/player/model/Alunya.glb.import b/player/model/Alunya.glb.import new file mode 100644 index 0000000..63e4f7b --- /dev/null +++ b/player/model/Alunya.glb.import @@ -0,0 +1,1065 @@ +[remap] + +importer="scene" +type="PackedScene" +path="res://.import/Alunya.glb-fef62981d7a8c8343c341b3bc749ddad.scn" + +[deps] + +source_file="res://player/model/Alunya.glb" +dest_files=[ "res://.import/Alunya.glb-fef62981d7a8c8343c341b3bc749ddad.scn" ] + +[params] + +nodes/root_type="Spatial" +nodes/root_name="Scene Root" +nodes/root_scale=1.0 +nodes/custom_script="" +nodes/storage=0 +nodes/use_legacy_names=false +materials/location=1 +materials/storage=1 +materials/keep_on_reimport=true +meshes/octahedral_compression=true +meshes/compress=4286 +meshes/ensure_tangents=true +meshes/storage=0 +meshes/light_baking=0 +meshes/lightmap_texel_size=0.1 +skins/use_named_skins=true +external_files/store_in_subdir=false +animation/import=true +animation/fps=15 +animation/filter_script="" +animation/storage=false +animation/keep_custom_tracks=false +animation/optimizer/enabled=true +animation/optimizer/max_linear_error=0.05 +animation/optimizer/max_angular_error=0.01 +animation/optimizer/max_angle=22 +animation/optimizer/remove_unused_tracks=true +animation/clips/amount=0 +animation/clip_1/name="" +animation/clip_1/start_frame=0 +animation/clip_1/end_frame=0 +animation/clip_1/loops=false +animation/clip_2/name="" +animation/clip_2/start_frame=0 +animation/clip_2/end_frame=0 +animation/clip_2/loops=false +animation/clip_3/name="" +animation/clip_3/start_frame=0 +animation/clip_3/end_frame=0 +animation/clip_3/loops=false +animation/clip_4/name="" +animation/clip_4/start_frame=0 +animation/clip_4/end_frame=0 +animation/clip_4/loops=false +animation/clip_5/name="" +animation/clip_5/start_frame=0 +animation/clip_5/end_frame=0 +animation/clip_5/loops=false +animation/clip_6/name="" +animation/clip_6/start_frame=0 +animation/clip_6/end_frame=0 +animation/clip_6/loops=false +animation/clip_7/name="" +animation/clip_7/start_frame=0 +animation/clip_7/end_frame=0 +animation/clip_7/loops=false +animation/clip_8/name="" +animation/clip_8/start_frame=0 +animation/clip_8/end_frame=0 +animation/clip_8/loops=false +animation/clip_9/name="" +animation/clip_9/start_frame=0 +animation/clip_9/end_frame=0 +animation/clip_9/loops=false +animation/clip_10/name="" +animation/clip_10/start_frame=0 +animation/clip_10/end_frame=0 +animation/clip_10/loops=false +animation/clip_11/name="" +animation/clip_11/start_frame=0 +animation/clip_11/end_frame=0 +animation/clip_11/loops=false +animation/clip_12/name="" +animation/clip_12/start_frame=0 +animation/clip_12/end_frame=0 +animation/clip_12/loops=false +animation/clip_13/name="" +animation/clip_13/start_frame=0 +animation/clip_13/end_frame=0 +animation/clip_13/loops=false +animation/clip_14/name="" +animation/clip_14/start_frame=0 +animation/clip_14/end_frame=0 +animation/clip_14/loops=false +animation/clip_15/name="" +animation/clip_15/start_frame=0 +animation/clip_15/end_frame=0 +animation/clip_15/loops=false +animation/clip_16/name="" +animation/clip_16/start_frame=0 +animation/clip_16/end_frame=0 +animation/clip_16/loops=false +animation/clip_17/name="" +animation/clip_17/start_frame=0 +animation/clip_17/end_frame=0 +animation/clip_17/loops=false +animation/clip_18/name="" +animation/clip_18/start_frame=0 +animation/clip_18/end_frame=0 +animation/clip_18/loops=false +animation/clip_19/name="" +animation/clip_19/start_frame=0 +animation/clip_19/end_frame=0 +animation/clip_19/loops=false +animation/clip_20/name="" +animation/clip_20/start_frame=0 +animation/clip_20/end_frame=0 +animation/clip_20/loops=false +animation/clip_21/name="" +animation/clip_21/start_frame=0 +animation/clip_21/end_frame=0 +animation/clip_21/loops=false +animation/clip_22/name="" +animation/clip_22/start_frame=0 +animation/clip_22/end_frame=0 +animation/clip_22/loops=false +animation/clip_23/name="" +animation/clip_23/start_frame=0 +animation/clip_23/end_frame=0 +animation/clip_23/loops=false +animation/clip_24/name="" +animation/clip_24/start_frame=0 +animation/clip_24/end_frame=0 +animation/clip_24/loops=false +animation/clip_25/name="" +animation/clip_25/start_frame=0 +animation/clip_25/end_frame=0 +animation/clip_25/loops=false +animation/clip_26/name="" +animation/clip_26/start_frame=0 +animation/clip_26/end_frame=0 +animation/clip_26/loops=false +animation/clip_27/name="" +animation/clip_27/start_frame=0 +animation/clip_27/end_frame=0 +animation/clip_27/loops=false +animation/clip_28/name="" +animation/clip_28/start_frame=0 +animation/clip_28/end_frame=0 +animation/clip_28/loops=false +animation/clip_29/name="" +animation/clip_29/start_frame=0 +animation/clip_29/end_frame=0 +animation/clip_29/loops=false +animation/clip_30/name="" +animation/clip_30/start_frame=0 +animation/clip_30/end_frame=0 +animation/clip_30/loops=false +animation/clip_31/name="" +animation/clip_31/start_frame=0 +animation/clip_31/end_frame=0 +animation/clip_31/loops=false +animation/clip_32/name="" +animation/clip_32/start_frame=0 +animation/clip_32/end_frame=0 +animation/clip_32/loops=false +animation/clip_33/name="" +animation/clip_33/start_frame=0 +animation/clip_33/end_frame=0 +animation/clip_33/loops=false +animation/clip_34/name="" +animation/clip_34/start_frame=0 +animation/clip_34/end_frame=0 +animation/clip_34/loops=false +animation/clip_35/name="" +animation/clip_35/start_frame=0 +animation/clip_35/end_frame=0 +animation/clip_35/loops=false +animation/clip_36/name="" +animation/clip_36/start_frame=0 +animation/clip_36/end_frame=0 +animation/clip_36/loops=false +animation/clip_37/name="" +animation/clip_37/start_frame=0 +animation/clip_37/end_frame=0 +animation/clip_37/loops=false +animation/clip_38/name="" +animation/clip_38/start_frame=0 +animation/clip_38/end_frame=0 +animation/clip_38/loops=false +animation/clip_39/name="" +animation/clip_39/start_frame=0 +animation/clip_39/end_frame=0 +animation/clip_39/loops=false +animation/clip_40/name="" +animation/clip_40/start_frame=0 +animation/clip_40/end_frame=0 +animation/clip_40/loops=false +animation/clip_41/name="" +animation/clip_41/start_frame=0 +animation/clip_41/end_frame=0 +animation/clip_41/loops=false +animation/clip_42/name="" +animation/clip_42/start_frame=0 +animation/clip_42/end_frame=0 +animation/clip_42/loops=false +animation/clip_43/name="" +animation/clip_43/start_frame=0 +animation/clip_43/end_frame=0 +animation/clip_43/loops=false +animation/clip_44/name="" +animation/clip_44/start_frame=0 +animation/clip_44/end_frame=0 +animation/clip_44/loops=false +animation/clip_45/name="" +animation/clip_45/start_frame=0 +animation/clip_45/end_frame=0 +animation/clip_45/loops=false +animation/clip_46/name="" +animation/clip_46/start_frame=0 +animation/clip_46/end_frame=0 +animation/clip_46/loops=false +animation/clip_47/name="" +animation/clip_47/start_frame=0 +animation/clip_47/end_frame=0 +animation/clip_47/loops=false +animation/clip_48/name="" +animation/clip_48/start_frame=0 +animation/clip_48/end_frame=0 +animation/clip_48/loops=false +animation/clip_49/name="" +animation/clip_49/start_frame=0 +animation/clip_49/end_frame=0 +animation/clip_49/loops=false +animation/clip_50/name="" +animation/clip_50/start_frame=0 +animation/clip_50/end_frame=0 +animation/clip_50/loops=false +animation/clip_51/name="" +animation/clip_51/start_frame=0 +animation/clip_51/end_frame=0 +animation/clip_51/loops=false +animation/clip_52/name="" +animation/clip_52/start_frame=0 +animation/clip_52/end_frame=0 +animation/clip_52/loops=false +animation/clip_53/name="" +animation/clip_53/start_frame=0 +animation/clip_53/end_frame=0 +animation/clip_53/loops=false +animation/clip_54/name="" +animation/clip_54/start_frame=0 +animation/clip_54/end_frame=0 +animation/clip_54/loops=false +animation/clip_55/name="" +animation/clip_55/start_frame=0 +animation/clip_55/end_frame=0 +animation/clip_55/loops=false +animation/clip_56/name="" +animation/clip_56/start_frame=0 +animation/clip_56/end_frame=0 +animation/clip_56/loops=false +animation/clip_57/name="" +animation/clip_57/start_frame=0 +animation/clip_57/end_frame=0 +animation/clip_57/loops=false +animation/clip_58/name="" +animation/clip_58/start_frame=0 +animation/clip_58/end_frame=0 +animation/clip_58/loops=false +animation/clip_59/name="" +animation/clip_59/start_frame=0 +animation/clip_59/end_frame=0 +animation/clip_59/loops=false +animation/clip_60/name="" +animation/clip_60/start_frame=0 +animation/clip_60/end_frame=0 +animation/clip_60/loops=false +animation/clip_61/name="" +animation/clip_61/start_frame=0 +animation/clip_61/end_frame=0 +animation/clip_61/loops=false +animation/clip_62/name="" +animation/clip_62/start_frame=0 +animation/clip_62/end_frame=0 +animation/clip_62/loops=false +animation/clip_63/name="" +animation/clip_63/start_frame=0 +animation/clip_63/end_frame=0 +animation/clip_63/loops=false +animation/clip_64/name="" +animation/clip_64/start_frame=0 +animation/clip_64/end_frame=0 +animation/clip_64/loops=false +animation/clip_65/name="" +animation/clip_65/start_frame=0 +animation/clip_65/end_frame=0 +animation/clip_65/loops=false +animation/clip_66/name="" +animation/clip_66/start_frame=0 +animation/clip_66/end_frame=0 +animation/clip_66/loops=false +animation/clip_67/name="" +animation/clip_67/start_frame=0 +animation/clip_67/end_frame=0 +animation/clip_67/loops=false +animation/clip_68/name="" +animation/clip_68/start_frame=0 +animation/clip_68/end_frame=0 +animation/clip_68/loops=false +animation/clip_69/name="" +animation/clip_69/start_frame=0 +animation/clip_69/end_frame=0 +animation/clip_69/loops=false +animation/clip_70/name="" +animation/clip_70/start_frame=0 +animation/clip_70/end_frame=0 +animation/clip_70/loops=false +animation/clip_71/name="" +animation/clip_71/start_frame=0 +animation/clip_71/end_frame=0 +animation/clip_71/loops=false +animation/clip_72/name="" +animation/clip_72/start_frame=0 +animation/clip_72/end_frame=0 +animation/clip_72/loops=false +animation/clip_73/name="" +animation/clip_73/start_frame=0 +animation/clip_73/end_frame=0 +animation/clip_73/loops=false +animation/clip_74/name="" +animation/clip_74/start_frame=0 +animation/clip_74/end_frame=0 +animation/clip_74/loops=false +animation/clip_75/name="" +animation/clip_75/start_frame=0 +animation/clip_75/end_frame=0 +animation/clip_75/loops=false +animation/clip_76/name="" +animation/clip_76/start_frame=0 +animation/clip_76/end_frame=0 +animation/clip_76/loops=false +animation/clip_77/name="" +animation/clip_77/start_frame=0 +animation/clip_77/end_frame=0 +animation/clip_77/loops=false +animation/clip_78/name="" +animation/clip_78/start_frame=0 +animation/clip_78/end_frame=0 +animation/clip_78/loops=false +animation/clip_79/name="" +animation/clip_79/start_frame=0 +animation/clip_79/end_frame=0 +animation/clip_79/loops=false +animation/clip_80/name="" +animation/clip_80/start_frame=0 +animation/clip_80/end_frame=0 +animation/clip_80/loops=false +animation/clip_81/name="" +animation/clip_81/start_frame=0 +animation/clip_81/end_frame=0 +animation/clip_81/loops=false +animation/clip_82/name="" +animation/clip_82/start_frame=0 +animation/clip_82/end_frame=0 +animation/clip_82/loops=false +animation/clip_83/name="" +animation/clip_83/start_frame=0 +animation/clip_83/end_frame=0 +animation/clip_83/loops=false +animation/clip_84/name="" +animation/clip_84/start_frame=0 +animation/clip_84/end_frame=0 +animation/clip_84/loops=false +animation/clip_85/name="" +animation/clip_85/start_frame=0 +animation/clip_85/end_frame=0 +animation/clip_85/loops=false +animation/clip_86/name="" +animation/clip_86/start_frame=0 +animation/clip_86/end_frame=0 +animation/clip_86/loops=false +animation/clip_87/name="" +animation/clip_87/start_frame=0 +animation/clip_87/end_frame=0 +animation/clip_87/loops=false +animation/clip_88/name="" +animation/clip_88/start_frame=0 +animation/clip_88/end_frame=0 +animation/clip_88/loops=false +animation/clip_89/name="" +animation/clip_89/start_frame=0 +animation/clip_89/end_frame=0 +animation/clip_89/loops=false +animation/clip_90/name="" +animation/clip_90/start_frame=0 +animation/clip_90/end_frame=0 +animation/clip_90/loops=false +animation/clip_91/name="" +animation/clip_91/start_frame=0 +animation/clip_91/end_frame=0 +animation/clip_91/loops=false +animation/clip_92/name="" +animation/clip_92/start_frame=0 +animation/clip_92/end_frame=0 +animation/clip_92/loops=false +animation/clip_93/name="" +animation/clip_93/start_frame=0 +animation/clip_93/end_frame=0 +animation/clip_93/loops=false +animation/clip_94/name="" +animation/clip_94/start_frame=0 +animation/clip_94/end_frame=0 +animation/clip_94/loops=false +animation/clip_95/name="" +animation/clip_95/start_frame=0 +animation/clip_95/end_frame=0 +animation/clip_95/loops=false +animation/clip_96/name="" +animation/clip_96/start_frame=0 +animation/clip_96/end_frame=0 +animation/clip_96/loops=false +animation/clip_97/name="" +animation/clip_97/start_frame=0 +animation/clip_97/end_frame=0 +animation/clip_97/loops=false +animation/clip_98/name="" +animation/clip_98/start_frame=0 +animation/clip_98/end_frame=0 +animation/clip_98/loops=false +animation/clip_99/name="" +animation/clip_99/start_frame=0 +animation/clip_99/end_frame=0 +animation/clip_99/loops=false +animation/clip_100/name="" +animation/clip_100/start_frame=0 +animation/clip_100/end_frame=0 +animation/clip_100/loops=false +animation/clip_101/name="" +animation/clip_101/start_frame=0 +animation/clip_101/end_frame=0 +animation/clip_101/loops=false +animation/clip_102/name="" +animation/clip_102/start_frame=0 +animation/clip_102/end_frame=0 +animation/clip_102/loops=false +animation/clip_103/name="" +animation/clip_103/start_frame=0 +animation/clip_103/end_frame=0 +animation/clip_103/loops=false +animation/clip_104/name="" +animation/clip_104/start_frame=0 +animation/clip_104/end_frame=0 +animation/clip_104/loops=false +animation/clip_105/name="" +animation/clip_105/start_frame=0 +animation/clip_105/end_frame=0 +animation/clip_105/loops=false +animation/clip_106/name="" +animation/clip_106/start_frame=0 +animation/clip_106/end_frame=0 +animation/clip_106/loops=false +animation/clip_107/name="" +animation/clip_107/start_frame=0 +animation/clip_107/end_frame=0 +animation/clip_107/loops=false +animation/clip_108/name="" +animation/clip_108/start_frame=0 +animation/clip_108/end_frame=0 +animation/clip_108/loops=false +animation/clip_109/name="" +animation/clip_109/start_frame=0 +animation/clip_109/end_frame=0 +animation/clip_109/loops=false +animation/clip_110/name="" +animation/clip_110/start_frame=0 +animation/clip_110/end_frame=0 +animation/clip_110/loops=false +animation/clip_111/name="" +animation/clip_111/start_frame=0 +animation/clip_111/end_frame=0 +animation/clip_111/loops=false +animation/clip_112/name="" +animation/clip_112/start_frame=0 +animation/clip_112/end_frame=0 +animation/clip_112/loops=false +animation/clip_113/name="" +animation/clip_113/start_frame=0 +animation/clip_113/end_frame=0 +animation/clip_113/loops=false +animation/clip_114/name="" +animation/clip_114/start_frame=0 +animation/clip_114/end_frame=0 +animation/clip_114/loops=false +animation/clip_115/name="" +animation/clip_115/start_frame=0 +animation/clip_115/end_frame=0 +animation/clip_115/loops=false +animation/clip_116/name="" +animation/clip_116/start_frame=0 +animation/clip_116/end_frame=0 +animation/clip_116/loops=false +animation/clip_117/name="" +animation/clip_117/start_frame=0 +animation/clip_117/end_frame=0 +animation/clip_117/loops=false +animation/clip_118/name="" +animation/clip_118/start_frame=0 +animation/clip_118/end_frame=0 +animation/clip_118/loops=false +animation/clip_119/name="" +animation/clip_119/start_frame=0 +animation/clip_119/end_frame=0 +animation/clip_119/loops=false +animation/clip_120/name="" +animation/clip_120/start_frame=0 +animation/clip_120/end_frame=0 +animation/clip_120/loops=false +animation/clip_121/name="" +animation/clip_121/start_frame=0 +animation/clip_121/end_frame=0 +animation/clip_121/loops=false +animation/clip_122/name="" +animation/clip_122/start_frame=0 +animation/clip_122/end_frame=0 +animation/clip_122/loops=false +animation/clip_123/name="" +animation/clip_123/start_frame=0 +animation/clip_123/end_frame=0 +animation/clip_123/loops=false +animation/clip_124/name="" +animation/clip_124/start_frame=0 +animation/clip_124/end_frame=0 +animation/clip_124/loops=false +animation/clip_125/name="" +animation/clip_125/start_frame=0 +animation/clip_125/end_frame=0 +animation/clip_125/loops=false +animation/clip_126/name="" +animation/clip_126/start_frame=0 +animation/clip_126/end_frame=0 +animation/clip_126/loops=false +animation/clip_127/name="" +animation/clip_127/start_frame=0 +animation/clip_127/end_frame=0 +animation/clip_127/loops=false +animation/clip_128/name="" +animation/clip_128/start_frame=0 +animation/clip_128/end_frame=0 +animation/clip_128/loops=false +animation/clip_129/name="" +animation/clip_129/start_frame=0 +animation/clip_129/end_frame=0 +animation/clip_129/loops=false +animation/clip_130/name="" +animation/clip_130/start_frame=0 +animation/clip_130/end_frame=0 +animation/clip_130/loops=false +animation/clip_131/name="" +animation/clip_131/start_frame=0 +animation/clip_131/end_frame=0 +animation/clip_131/loops=false +animation/clip_132/name="" +animation/clip_132/start_frame=0 +animation/clip_132/end_frame=0 +animation/clip_132/loops=false +animation/clip_133/name="" +animation/clip_133/start_frame=0 +animation/clip_133/end_frame=0 +animation/clip_133/loops=false +animation/clip_134/name="" +animation/clip_134/start_frame=0 +animation/clip_134/end_frame=0 +animation/clip_134/loops=false +animation/clip_135/name="" +animation/clip_135/start_frame=0 +animation/clip_135/end_frame=0 +animation/clip_135/loops=false +animation/clip_136/name="" +animation/clip_136/start_frame=0 +animation/clip_136/end_frame=0 +animation/clip_136/loops=false +animation/clip_137/name="" +animation/clip_137/start_frame=0 +animation/clip_137/end_frame=0 +animation/clip_137/loops=false +animation/clip_138/name="" +animation/clip_138/start_frame=0 +animation/clip_138/end_frame=0 +animation/clip_138/loops=false +animation/clip_139/name="" +animation/clip_139/start_frame=0 +animation/clip_139/end_frame=0 +animation/clip_139/loops=false +animation/clip_140/name="" +animation/clip_140/start_frame=0 +animation/clip_140/end_frame=0 +animation/clip_140/loops=false +animation/clip_141/name="" +animation/clip_141/start_frame=0 +animation/clip_141/end_frame=0 +animation/clip_141/loops=false +animation/clip_142/name="" +animation/clip_142/start_frame=0 +animation/clip_142/end_frame=0 +animation/clip_142/loops=false +animation/clip_143/name="" +animation/clip_143/start_frame=0 +animation/clip_143/end_frame=0 +animation/clip_143/loops=false +animation/clip_144/name="" +animation/clip_144/start_frame=0 +animation/clip_144/end_frame=0 +animation/clip_144/loops=false +animation/clip_145/name="" +animation/clip_145/start_frame=0 +animation/clip_145/end_frame=0 +animation/clip_145/loops=false +animation/clip_146/name="" +animation/clip_146/start_frame=0 +animation/clip_146/end_frame=0 +animation/clip_146/loops=false +animation/clip_147/name="" +animation/clip_147/start_frame=0 +animation/clip_147/end_frame=0 +animation/clip_147/loops=false +animation/clip_148/name="" +animation/clip_148/start_frame=0 +animation/clip_148/end_frame=0 +animation/clip_148/loops=false +animation/clip_149/name="" +animation/clip_149/start_frame=0 +animation/clip_149/end_frame=0 +animation/clip_149/loops=false +animation/clip_150/name="" +animation/clip_150/start_frame=0 +animation/clip_150/end_frame=0 +animation/clip_150/loops=false +animation/clip_151/name="" +animation/clip_151/start_frame=0 +animation/clip_151/end_frame=0 +animation/clip_151/loops=false +animation/clip_152/name="" +animation/clip_152/start_frame=0 +animation/clip_152/end_frame=0 +animation/clip_152/loops=false +animation/clip_153/name="" +animation/clip_153/start_frame=0 +animation/clip_153/end_frame=0 +animation/clip_153/loops=false +animation/clip_154/name="" +animation/clip_154/start_frame=0 +animation/clip_154/end_frame=0 +animation/clip_154/loops=false +animation/clip_155/name="" +animation/clip_155/start_frame=0 +animation/clip_155/end_frame=0 +animation/clip_155/loops=false +animation/clip_156/name="" +animation/clip_156/start_frame=0 +animation/clip_156/end_frame=0 +animation/clip_156/loops=false +animation/clip_157/name="" +animation/clip_157/start_frame=0 +animation/clip_157/end_frame=0 +animation/clip_157/loops=false +animation/clip_158/name="" +animation/clip_158/start_frame=0 +animation/clip_158/end_frame=0 +animation/clip_158/loops=false +animation/clip_159/name="" +animation/clip_159/start_frame=0 +animation/clip_159/end_frame=0 +animation/clip_159/loops=false +animation/clip_160/name="" +animation/clip_160/start_frame=0 +animation/clip_160/end_frame=0 +animation/clip_160/loops=false +animation/clip_161/name="" +animation/clip_161/start_frame=0 +animation/clip_161/end_frame=0 +animation/clip_161/loops=false +animation/clip_162/name="" +animation/clip_162/start_frame=0 +animation/clip_162/end_frame=0 +animation/clip_162/loops=false +animation/clip_163/name="" +animation/clip_163/start_frame=0 +animation/clip_163/end_frame=0 +animation/clip_163/loops=false +animation/clip_164/name="" +animation/clip_164/start_frame=0 +animation/clip_164/end_frame=0 +animation/clip_164/loops=false +animation/clip_165/name="" +animation/clip_165/start_frame=0 +animation/clip_165/end_frame=0 +animation/clip_165/loops=false +animation/clip_166/name="" +animation/clip_166/start_frame=0 +animation/clip_166/end_frame=0 +animation/clip_166/loops=false +animation/clip_167/name="" +animation/clip_167/start_frame=0 +animation/clip_167/end_frame=0 +animation/clip_167/loops=false +animation/clip_168/name="" +animation/clip_168/start_frame=0 +animation/clip_168/end_frame=0 +animation/clip_168/loops=false +animation/clip_169/name="" +animation/clip_169/start_frame=0 +animation/clip_169/end_frame=0 +animation/clip_169/loops=false +animation/clip_170/name="" +animation/clip_170/start_frame=0 +animation/clip_170/end_frame=0 +animation/clip_170/loops=false +animation/clip_171/name="" +animation/clip_171/start_frame=0 +animation/clip_171/end_frame=0 +animation/clip_171/loops=false +animation/clip_172/name="" +animation/clip_172/start_frame=0 +animation/clip_172/end_frame=0 +animation/clip_172/loops=false +animation/clip_173/name="" +animation/clip_173/start_frame=0 +animation/clip_173/end_frame=0 +animation/clip_173/loops=false +animation/clip_174/name="" +animation/clip_174/start_frame=0 +animation/clip_174/end_frame=0 +animation/clip_174/loops=false +animation/clip_175/name="" +animation/clip_175/start_frame=0 +animation/clip_175/end_frame=0 +animation/clip_175/loops=false +animation/clip_176/name="" +animation/clip_176/start_frame=0 +animation/clip_176/end_frame=0 +animation/clip_176/loops=false +animation/clip_177/name="" +animation/clip_177/start_frame=0 +animation/clip_177/end_frame=0 +animation/clip_177/loops=false +animation/clip_178/name="" +animation/clip_178/start_frame=0 +animation/clip_178/end_frame=0 +animation/clip_178/loops=false +animation/clip_179/name="" +animation/clip_179/start_frame=0 +animation/clip_179/end_frame=0 +animation/clip_179/loops=false +animation/clip_180/name="" +animation/clip_180/start_frame=0 +animation/clip_180/end_frame=0 +animation/clip_180/loops=false +animation/clip_181/name="" +animation/clip_181/start_frame=0 +animation/clip_181/end_frame=0 +animation/clip_181/loops=false +animation/clip_182/name="" +animation/clip_182/start_frame=0 +animation/clip_182/end_frame=0 +animation/clip_182/loops=false +animation/clip_183/name="" +animation/clip_183/start_frame=0 +animation/clip_183/end_frame=0 +animation/clip_183/loops=false +animation/clip_184/name="" +animation/clip_184/start_frame=0 +animation/clip_184/end_frame=0 +animation/clip_184/loops=false +animation/clip_185/name="" +animation/clip_185/start_frame=0 +animation/clip_185/end_frame=0 +animation/clip_185/loops=false +animation/clip_186/name="" +animation/clip_186/start_frame=0 +animation/clip_186/end_frame=0 +animation/clip_186/loops=false +animation/clip_187/name="" +animation/clip_187/start_frame=0 +animation/clip_187/end_frame=0 +animation/clip_187/loops=false +animation/clip_188/name="" +animation/clip_188/start_frame=0 +animation/clip_188/end_frame=0 +animation/clip_188/loops=false +animation/clip_189/name="" +animation/clip_189/start_frame=0 +animation/clip_189/end_frame=0 +animation/clip_189/loops=false +animation/clip_190/name="" +animation/clip_190/start_frame=0 +animation/clip_190/end_frame=0 +animation/clip_190/loops=false +animation/clip_191/name="" +animation/clip_191/start_frame=0 +animation/clip_191/end_frame=0 +animation/clip_191/loops=false +animation/clip_192/name="" +animation/clip_192/start_frame=0 +animation/clip_192/end_frame=0 +animation/clip_192/loops=false +animation/clip_193/name="" +animation/clip_193/start_frame=0 +animation/clip_193/end_frame=0 +animation/clip_193/loops=false +animation/clip_194/name="" +animation/clip_194/start_frame=0 +animation/clip_194/end_frame=0 +animation/clip_194/loops=false +animation/clip_195/name="" +animation/clip_195/start_frame=0 +animation/clip_195/end_frame=0 +animation/clip_195/loops=false +animation/clip_196/name="" +animation/clip_196/start_frame=0 +animation/clip_196/end_frame=0 +animation/clip_196/loops=false +animation/clip_197/name="" +animation/clip_197/start_frame=0 +animation/clip_197/end_frame=0 +animation/clip_197/loops=false +animation/clip_198/name="" +animation/clip_198/start_frame=0 +animation/clip_198/end_frame=0 +animation/clip_198/loops=false +animation/clip_199/name="" +animation/clip_199/start_frame=0 +animation/clip_199/end_frame=0 +animation/clip_199/loops=false +animation/clip_200/name="" +animation/clip_200/start_frame=0 +animation/clip_200/end_frame=0 +animation/clip_200/loops=false +animation/clip_201/name="" +animation/clip_201/start_frame=0 +animation/clip_201/end_frame=0 +animation/clip_201/loops=false +animation/clip_202/name="" +animation/clip_202/start_frame=0 +animation/clip_202/end_frame=0 +animation/clip_202/loops=false +animation/clip_203/name="" +animation/clip_203/start_frame=0 +animation/clip_203/end_frame=0 +animation/clip_203/loops=false +animation/clip_204/name="" +animation/clip_204/start_frame=0 +animation/clip_204/end_frame=0 +animation/clip_204/loops=false +animation/clip_205/name="" +animation/clip_205/start_frame=0 +animation/clip_205/end_frame=0 +animation/clip_205/loops=false +animation/clip_206/name="" +animation/clip_206/start_frame=0 +animation/clip_206/end_frame=0 +animation/clip_206/loops=false +animation/clip_207/name="" +animation/clip_207/start_frame=0 +animation/clip_207/end_frame=0 +animation/clip_207/loops=false +animation/clip_208/name="" +animation/clip_208/start_frame=0 +animation/clip_208/end_frame=0 +animation/clip_208/loops=false +animation/clip_209/name="" +animation/clip_209/start_frame=0 +animation/clip_209/end_frame=0 +animation/clip_209/loops=false +animation/clip_210/name="" +animation/clip_210/start_frame=0 +animation/clip_210/end_frame=0 +animation/clip_210/loops=false +animation/clip_211/name="" +animation/clip_211/start_frame=0 +animation/clip_211/end_frame=0 +animation/clip_211/loops=false +animation/clip_212/name="" +animation/clip_212/start_frame=0 +animation/clip_212/end_frame=0 +animation/clip_212/loops=false +animation/clip_213/name="" +animation/clip_213/start_frame=0 +animation/clip_213/end_frame=0 +animation/clip_213/loops=false +animation/clip_214/name="" +animation/clip_214/start_frame=0 +animation/clip_214/end_frame=0 +animation/clip_214/loops=false +animation/clip_215/name="" +animation/clip_215/start_frame=0 +animation/clip_215/end_frame=0 +animation/clip_215/loops=false +animation/clip_216/name="" +animation/clip_216/start_frame=0 +animation/clip_216/end_frame=0 +animation/clip_216/loops=false +animation/clip_217/name="" +animation/clip_217/start_frame=0 +animation/clip_217/end_frame=0 +animation/clip_217/loops=false +animation/clip_218/name="" +animation/clip_218/start_frame=0 +animation/clip_218/end_frame=0 +animation/clip_218/loops=false +animation/clip_219/name="" +animation/clip_219/start_frame=0 +animation/clip_219/end_frame=0 +animation/clip_219/loops=false +animation/clip_220/name="" +animation/clip_220/start_frame=0 +animation/clip_220/end_frame=0 +animation/clip_220/loops=false +animation/clip_221/name="" +animation/clip_221/start_frame=0 +animation/clip_221/end_frame=0 +animation/clip_221/loops=false +animation/clip_222/name="" +animation/clip_222/start_frame=0 +animation/clip_222/end_frame=0 +animation/clip_222/loops=false +animation/clip_223/name="" +animation/clip_223/start_frame=0 +animation/clip_223/end_frame=0 +animation/clip_223/loops=false +animation/clip_224/name="" +animation/clip_224/start_frame=0 +animation/clip_224/end_frame=0 +animation/clip_224/loops=false +animation/clip_225/name="" +animation/clip_225/start_frame=0 +animation/clip_225/end_frame=0 +animation/clip_225/loops=false +animation/clip_226/name="" +animation/clip_226/start_frame=0 +animation/clip_226/end_frame=0 +animation/clip_226/loops=false +animation/clip_227/name="" +animation/clip_227/start_frame=0 +animation/clip_227/end_frame=0 +animation/clip_227/loops=false +animation/clip_228/name="" +animation/clip_228/start_frame=0 +animation/clip_228/end_frame=0 +animation/clip_228/loops=false +animation/clip_229/name="" +animation/clip_229/start_frame=0 +animation/clip_229/end_frame=0 +animation/clip_229/loops=false +animation/clip_230/name="" +animation/clip_230/start_frame=0 +animation/clip_230/end_frame=0 +animation/clip_230/loops=false +animation/clip_231/name="" +animation/clip_231/start_frame=0 +animation/clip_231/end_frame=0 +animation/clip_231/loops=false +animation/clip_232/name="" +animation/clip_232/start_frame=0 +animation/clip_232/end_frame=0 +animation/clip_232/loops=false +animation/clip_233/name="" +animation/clip_233/start_frame=0 +animation/clip_233/end_frame=0 +animation/clip_233/loops=false +animation/clip_234/name="" +animation/clip_234/start_frame=0 +animation/clip_234/end_frame=0 +animation/clip_234/loops=false +animation/clip_235/name="" +animation/clip_235/start_frame=0 +animation/clip_235/end_frame=0 +animation/clip_235/loops=false +animation/clip_236/name="" +animation/clip_236/start_frame=0 +animation/clip_236/end_frame=0 +animation/clip_236/loops=false +animation/clip_237/name="" +animation/clip_237/start_frame=0 +animation/clip_237/end_frame=0 +animation/clip_237/loops=false +animation/clip_238/name="" +animation/clip_238/start_frame=0 +animation/clip_238/end_frame=0 +animation/clip_238/loops=false +animation/clip_239/name="" +animation/clip_239/start_frame=0 +animation/clip_239/end_frame=0 +animation/clip_239/loops=false +animation/clip_240/name="" +animation/clip_240/start_frame=0 +animation/clip_240/end_frame=0 +animation/clip_240/loops=false +animation/clip_241/name="" +animation/clip_241/start_frame=0 +animation/clip_241/end_frame=0 +animation/clip_241/loops=false +animation/clip_242/name="" +animation/clip_242/start_frame=0 +animation/clip_242/end_frame=0 +animation/clip_242/loops=false +animation/clip_243/name="" +animation/clip_243/start_frame=0 +animation/clip_243/end_frame=0 +animation/clip_243/loops=false +animation/clip_244/name="" +animation/clip_244/start_frame=0 +animation/clip_244/end_frame=0 +animation/clip_244/loops=false +animation/clip_245/name="" +animation/clip_245/start_frame=0 +animation/clip_245/end_frame=0 +animation/clip_245/loops=false +animation/clip_246/name="" +animation/clip_246/start_frame=0 +animation/clip_246/end_frame=0 +animation/clip_246/loops=false +animation/clip_247/name="" +animation/clip_247/start_frame=0 +animation/clip_247/end_frame=0 +animation/clip_247/loops=false +animation/clip_248/name="" +animation/clip_248/start_frame=0 +animation/clip_248/end_frame=0 +animation/clip_248/loops=false +animation/clip_249/name="" +animation/clip_249/start_frame=0 +animation/clip_249/end_frame=0 +animation/clip_249/loops=false +animation/clip_250/name="" +animation/clip_250/start_frame=0 +animation/clip_250/end_frame=0 +animation/clip_250/loops=false +animation/clip_251/name="" +animation/clip_251/start_frame=0 +animation/clip_251/end_frame=0 +animation/clip_251/loops=false +animation/clip_252/name="" +animation/clip_252/start_frame=0 +animation/clip_252/end_frame=0 +animation/clip_252/loops=false +animation/clip_253/name="" +animation/clip_253/start_frame=0 +animation/clip_253/end_frame=0 +animation/clip_253/loops=false +animation/clip_254/name="" +animation/clip_254/start_frame=0 +animation/clip_254/end_frame=0 +animation/clip_254/loops=false +animation/clip_255/name="" +animation/clip_255/start_frame=0 +animation/clip_255/end_frame=0 +animation/clip_255/loops=false +animation/clip_256/name="" +animation/clip_256/start_frame=0 +animation/clip_256/end_frame=0 +animation/clip_256/loops=false diff --git a/player/model/materials/animu_alunya_shadermat.tres b/player/model/materials/animu_alunya_shadermat.tres new file mode 100644 index 0000000..c233b84 --- /dev/null +++ b/player/model/materials/animu_alunya_shadermat.tres @@ -0,0 +1,58 @@ +[gd_resource type="ShaderMaterial" load_steps=2 format=2] + +[ext_resource path="res://effects_shared/animu.shader" type="Shader" id=1] + +[resource] +shader = ExtResource( 1 ) +shader_param/lookAt = Vector3( 0, 0, 5 ) +shader_param/maxLook = Plane( -0.4, -0.2, 0.4, 0.2 ) +shader_param/lookSens = Vector2( 0.2, 0.2 ) +shader_param/irisScale = 0.841 +shader_param/eyebrowOffset = 0.0 +shader_param/eyebrowRotationOffsetDegrees = 0.0 +shader_param/open = 0.0 +shader_param/uvArea = Plane( 0.102, 0.514, 1, 1 ) +shader_param/position = 0.125 +shader_param/dist = 0.048 +shader_param/depthOffset = 0.0 +shader_param/color = Color( 0.835294, 0, 0, 1 ) +shader_param/whiteColor = Color( 1, 1, 1, 1 ) +shader_param/rimColor = Color( 1, 1, 1, 1 ) +shader_param/eyebrowColor = Color( 0, 0, 0, 1 ) +shader_param/border1Color = Color( 0, 0, 0, 1 ) +shader_param/border2Color = Color( 0, 0, 0, 1 ) +shader_param/shapeSquare = 0.554 +shader_param/irisSquare = 0.111 +shader_param/border1Square = 0.5 +shader_param/border2Square = 1.0 +shader_param/eyebrowSquare = 0.5 +shader_param/topEllipse = Plane( 0.489, 0.5, 0.454, 0.481 ) +shader_param/bottomEllipse = Plane( 0.49, 0.396, 0.3, 0.33 ) +shader_param/irisEllipse = Plane( 0.53, 0.388, 0.144, 0.236 ) +shader_param/pupilEllipse = Plane( 0, -0.023, 0.055, 0.114 ) +shader_param/eyebrowPosition = 0.0 +shader_param/eyebrow = Plane( 0.037, -0.369, 1.1, 1.1 ) +shader_param/eyebrowFalloffEllipse = Plane( 0.5, -0.315, 0.028, 0.039 ) +shader_param/eyebrowFalloff = 0.5 +shader_param/eyebrowRotationDegrees = -10.0 +shader_param/eyebrowThickness = 0.025 +shader_param/border1 = Plane( 0.025, 0.016, 1.1, 1.1 ) +shader_param/border1FalloffEllipse = Plane( 0.125, -0.018, 0.297, 0.305 ) +shader_param/border1Falloff = 0.222 +shader_param/border1RotationDegrees = -3.0 +shader_param/border1Thickness = 0.009 +shader_param/border2 = Plane( -0.043, 0.057, 0.916, 1 ) +shader_param/border2FalloffEllipse = Plane( 0.5, 0.861, 0.03, 0.049 ) +shader_param/border2Falloff = 0.0 +shader_param/border2RotationDegrees = 0.0 +shader_param/border2Thickness = 0.0 +shader_param/sharpness = 200.0 +shader_param/scale = Vector2( 0.088, 0.081 ) +shader_param/attenuation = 1.0 +shader_param/irisAttenuation = 0.163 +shader_param/highlightEllipse = Plane( 0.608, 0.36, 0.489, 0.3 ) +shader_param/irisGradientOffset = Vector2( -0.007, -0.095 ) +shader_param/rim1Ellipse = Plane( 0.128, -0.034, 0.067, 0.043 ) +shader_param/rim1RotationDegrees = 10.0 +shader_param/rim2Ellipse = Plane( -0.276, 0.162, 0.081, 0.007 ) +shader_param/rim2RotationDegrees = 0.0 diff --git a/player/model/materials/bandana.tres b/player/model/materials/bandana.tres new file mode 100644 index 0000000..824ce64 --- /dev/null +++ b/player/model/materials/bandana.tres @@ -0,0 +1,6 @@ +[gd_resource type="SpatialMaterial" load_steps=2 format=2] + +[ext_resource path="res://player/model/materials/textures/Bandana.webp" type="Texture" id=1] + +[resource] +albedo_texture = ExtResource( 1 ) diff --git a/player/model/materials/body.tres b/player/model/materials/body.tres new file mode 100644 index 0000000..ffbefb7 --- /dev/null +++ b/player/model/materials/body.tres @@ -0,0 +1,7 @@ +[gd_resource type="SpatialMaterial" load_steps=2 format=2] + +[ext_resource path="res://player/model/materials/textures/Colette_body_green_boots.webp" type="Texture" id=1] + +[resource] +flags_unshaded = true +albedo_texture = ExtResource( 1 ) diff --git a/player/model/materials/ear.tres b/player/model/materials/ear.tres new file mode 100644 index 0000000..a65bf09 --- /dev/null +++ b/player/model/materials/ear.tres @@ -0,0 +1,7 @@ +[gd_resource type="SpatialMaterial" load_steps=2 format=2] + +[ext_resource path="res://player/model/materials/textures/Colette_hair.webp" type="Texture" id=1] + +[resource] +flags_unshaded = true +albedo_texture = ExtResource( 1 ) diff --git a/player/model/materials/face.tres b/player/model/materials/face.tres new file mode 100644 index 0000000..69f511a --- /dev/null +++ b/player/model/materials/face.tres @@ -0,0 +1,7 @@ +[gd_resource type="SpatialMaterial" load_steps=2 format=2] + +[ext_resource path="res://player/model/materials/textures/Colette_face.webp" type="Texture" id=1] + +[resource] +flags_unshaded = true +albedo_texture = ExtResource( 1 ) diff --git a/player/model/materials/textures/Bandana.webp b/player/model/materials/textures/Bandana.webp new file mode 100644 index 0000000..9b0f976 Binary files /dev/null and b/player/model/materials/textures/Bandana.webp differ diff --git a/player/model/materials/textures/Bandana.webp.import b/player/model/materials/textures/Bandana.webp.import new file mode 100644 index 0000000..ea46108 --- /dev/null +++ b/player/model/materials/textures/Bandana.webp.import @@ -0,0 +1,36 @@ +[remap] + +importer="texture" +type="StreamTexture" +path.s3tc="res://.import/Bandana.webp-2ff892254bc7e918a902cec9484bc916.s3tc.stex" +metadata={ +"imported_formats": [ "s3tc" ], +"vram_texture": true +} + +[deps] + +source_file="res://player/model/materials/textures/Bandana.webp" +dest_files=[ "res://.import/Bandana.webp-2ff892254bc7e918a902cec9484bc916.s3tc.stex" ] + +[params] + +compress/mode=2 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=true +flags/filter=true +flags/mipmaps=true +flags/anisotropic=false +flags/srgb=1 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/player/model/materials/textures/Colette_body_green_boots.webp b/player/model/materials/textures/Colette_body_green_boots.webp new file mode 100644 index 0000000..3585363 Binary files /dev/null and b/player/model/materials/textures/Colette_body_green_boots.webp differ diff --git a/player/model/materials/textures/Colette_body_green_boots.webp.import b/player/model/materials/textures/Colette_body_green_boots.webp.import new file mode 100644 index 0000000..783166d --- /dev/null +++ b/player/model/materials/textures/Colette_body_green_boots.webp.import @@ -0,0 +1,36 @@ +[remap] + +importer="texture" +type="StreamTexture" +path.s3tc="res://.import/Colette_body_green_boots.webp-ac49fbaeaff0bb9a5fd70fc655e86be3.s3tc.stex" +metadata={ +"imported_formats": [ "s3tc" ], +"vram_texture": true +} + +[deps] + +source_file="res://player/model/materials/textures/Colette_body_green_boots.webp" +dest_files=[ "res://.import/Colette_body_green_boots.webp-ac49fbaeaff0bb9a5fd70fc655e86be3.s3tc.stex" ] + +[params] + +compress/mode=2 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=true +flags/filter=true +flags/mipmaps=true +flags/anisotropic=false +flags/srgb=1 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/player/model/materials/textures/Colette_face.webp b/player/model/materials/textures/Colette_face.webp new file mode 100644 index 0000000..c7de2d4 Binary files /dev/null and b/player/model/materials/textures/Colette_face.webp differ diff --git a/player/model/materials/textures/Colette_face.webp.import b/player/model/materials/textures/Colette_face.webp.import new file mode 100644 index 0000000..62b0054 --- /dev/null +++ b/player/model/materials/textures/Colette_face.webp.import @@ -0,0 +1,36 @@ +[remap] + +importer="texture" +type="StreamTexture" +path.s3tc="res://.import/Colette_face.webp-2a0c51616bfb2dfcdc8acba48127860f.s3tc.stex" +metadata={ +"imported_formats": [ "s3tc" ], +"vram_texture": true +} + +[deps] + +source_file="res://player/model/materials/textures/Colette_face.webp" +dest_files=[ "res://.import/Colette_face.webp-2a0c51616bfb2dfcdc8acba48127860f.s3tc.stex" ] + +[params] + +compress/mode=2 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=true +flags/filter=true +flags/mipmaps=true +flags/anisotropic=false +flags/srgb=1 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/player/model/materials/textures/Colette_hair.webp b/player/model/materials/textures/Colette_hair.webp new file mode 100644 index 0000000..04155d6 Binary files /dev/null and b/player/model/materials/textures/Colette_hair.webp differ diff --git a/player/model/materials/textures/Colette_hair.webp.import b/player/model/materials/textures/Colette_hair.webp.import new file mode 100644 index 0000000..fafba0b --- /dev/null +++ b/player/model/materials/textures/Colette_hair.webp.import @@ -0,0 +1,36 @@ +[remap] + +importer="texture" +type="StreamTexture" +path.s3tc="res://.import/Colette_hair.webp-6bb1901c299c2a61b75c4835fe834bb6.s3tc.stex" +metadata={ +"imported_formats": [ "s3tc" ], +"vram_texture": true +} + +[deps] + +source_file="res://player/model/materials/textures/Colette_hair.webp" +dest_files=[ "res://.import/Colette_hair.webp-6bb1901c299c2a61b75c4835fe834bb6.s3tc.stex" ] + +[params] + +compress/mode=2 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=true +flags/filter=true +flags/mipmaps=true +flags/anisotropic=false +flags/srgb=1 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/player/model/muzzle_flash_particle_mesh_Cone.mesh b/player/model/muzzle_flash_particle_mesh_Cone.mesh new file mode 100644 index 0000000..4aab5ed Binary files /dev/null and b/player/model/muzzle_flash_particle_mesh_Cone.mesh differ diff --git a/player/player.gd b/player/player.gd new file mode 100644 index 0000000..a06c2e5 --- /dev/null +++ b/player/player.gd @@ -0,0 +1,445 @@ +extends KinematicBody + +# Movement +var velocity = Vector3.ZERO +var strafe_dir = Vector3.ZERO +var strafe = Vector3.ZERO + +# Vertical movement +const GRAVITY = 9.8 +const TERMINAL_VELOCITY = -56 +const MIN_AIRBORNE_TIME = 0.1 # minimum time to be considered off-ground +var velocity_y = 0 +var weight = 2 +var airborne_time = 0 + +# Special movement +var aim_turn = 0 + +var movement_speed = 0 +var walk_speed = 2.0 +var crouch_walk_speed = 1 +var run_speed = 9 +var acceleration = 5 +var air_drag = 0.2 +var angular_acceleration = 7 + +var jump_magnitude = 7 +var roll_magnitude = 20 + +var walk_toggle = false # TODO +var walking = false + +var aiming = false +var aim_speed = 10 + +var final_velocity = Vector3.ZERO +var model_local_final_velocity = Vector3.ZERO +var cumulative_x = 0 +var cumulative_z = 0 + +# Camera +const CAMERA_MOUSE_ROTATION_SPEED = 0.001 +const CAMERA_CONTROLLER_ROTATION_SPEED = 3.0 +# A minimum angle lower than or equal to -90 breaks movement if the player is looking upward. +const CAMERA_X_ROT_MIN = -89.9 +const CAMERA_X_ROT_MAX = 70 +var camera_x_rot = 0.0 + +onready var initial_position = transform.origin + +# Model movement towards velocity +const ROTATION_INTERPOLATE_SPEED = 0.1 + +onready var camera_base = $CameraBase +onready var camera_animation = camera_base.get_node(@"Animation") +onready var camera_rot = camera_base.get_node(@"CameraRot") +onready var camera_spring_arm = camera_rot.get_node(@"SpringArm") +onready var camera_camera = camera_spring_arm.get_node(@"Camera") + +# Animation +onready var model = $CenterOfMass/Alunya +var wheel_rotation = 0 + +export(int) var health = 9 + +var current_weapon = 0 +var fired_once = false # for non-auto weapons +var ForwardCollisionZOffset = 0 + +# Nodes +onready var animation_tree = $AnimationTree +onready var weapon_contoller = $WeaponController +onready var weapon = model.get_node(@"Colette_Armature/Skeleton/GunBone/Weapon") +onready var shoot_from = model.get_node(@"Colette_Armature/Skeleton/GunBone/ShootFrom") + +onready var ui = $UI +onready var color_rect = ui.get_node(@"ColorRect") +onready var crosshair = ui.get_node(@"Crosshair") +onready var ui_health = ui.get_node(@"WeaponStatUI/ColorRect/Health") +onready var fire_cooldown = $FireCooldown + +onready var sound_effect_land = $SoundEffects/Land +onready var sound_effect_jump = $SoundEffects/Jump +onready var sound_effect_step = $SoundEffects/Step + +var achievements = [] +onready var level = get_parent() +# Fading to black when falling +onready var out_of_bounds_y_start : float = level.get_out_of_bounds_y_start() +onready var out_of_bounds_y_end : float = level.get_out_of_bounds_y_end() +onready var out_of_bounds_y_fade = out_of_bounds_y_start - out_of_bounds_y_end + +func _init(): + Input.set_mouse_mode(Input.MOUSE_MODE_CAPTURED) + + +func _ready(): + ForwardCollisionZOffset = $ForwardCollision.transform.origin.z - $BodyCollision.transform.origin.z + $GlobalShootParticle.speed_scale = weapon_contoller.fire_rate() #/2 + + weapon_contoller.update_ammo() + update_health() + + +func _physics_process(delta): + # Order of operations: + # - Process camera + # - Process physical movement + # - Process movement-based rotation + # - Process inventory commands + # - Process shooting + # - Process animation + + + # Process camera + var camera_move = Vector2( + Input.get_action_strength("view_right") - Input.get_action_strength("view_left"), + Input.get_action_strength("view_up") - Input.get_action_strength("view_down")) + var camera_speed_this_frame = delta * CAMERA_CONTROLLER_ROTATION_SPEED + if aiming: + camera_speed_this_frame *= 0.5 + rotate_camera(camera_move * camera_speed_this_frame) + + # Get camera_rot relative to player, countering any rotation of the player base transform + var camera_basis = camera_rot.global_transform.basis + var camera_z = camera_basis.z + var camera_x = camera_basis.x + + camera_z.y = 0 + camera_z = camera_z.normalized() + camera_x.y = 0 + camera_x = camera_x.normalized() + + # Aiming camera + var current_aim = Input.is_action_pressed("aim") + var changed_aim = (aiming != current_aim) + # Trigger animation if we changed aim this frame + if changed_aim: + aiming = current_aim + if aiming: + camera_animation.play("shoot") + else: + camera_animation.play("far") + + + # Process movement + var orientation = global_transform + var input_target = Vector3.ZERO + # Try to move in input direction + if ( + ( + Input.is_action_pressed("move_forward") + or Input.is_action_pressed("move_back") + or Input.is_action_pressed("move_left") + or Input.is_action_pressed("move_right") + ) + and is_on_floor() + ): + + var direction = Vector3(Input.get_action_strength("move_left") - Input.get_action_strength("move_right"), + 0, + Input.get_action_strength("move_forward") - Input.get_action_strength("move_back")) + # Enforce a top ammount of 1 + if direction.length() > 1: + direction = direction.normalized() + + strafe_dir = direction + + # Convert orientation to quaternions for interpolating rotation. + input_target = camera_x * direction.x + camera_z * direction.z + if input_target.length() > 0.001: + #var q_from = orientation.basis.get_rotation_quat() + var q_to = global_transform.looking_at(global_transform.origin - input_target, Vector3.UP).basis.get_rotation_quat() + # Interpolate current rotation with desired one. + #orientation.basis = Basis(q_from.slerp(q_to, delta * ROTATION_INTERPOLATE_SPEED)) + orientation.basis = Basis(q_to) + + var target_velocity + var model_local_delta_velocity = model_local_final_velocity + + if aiming: + movement_speed = walk_speed + else: + movement_speed = run_speed + + movement_speed *= input_target.length() + target_velocity = orientation.basis.z * movement_speed + + # Calculate y velocity independently of input motion + velocity_y -= GRAVITY * 2 * delta + airborne_time += delta + if is_on_floor(): + # If just landed after a non-trivial drop, play landing sound + if airborne_time > 0.5: + sound_effect_land.play() + airborne_time = 0 + + var on_air = airborne_time > MIN_AIRBORNE_TIME + + if not on_air: + # Token down velocity to keep contact with ground + velocity_y = -1 + # Jump logic + if Input.is_action_just_pressed("jump"): + velocity_y = jump_magnitude + on_air = true + # Increase airborne time so next frame on_air is certainly true + airborne_time = MIN_AIRBORNE_TIME + sound_effect_jump.play() + # Terminal velocity check + if velocity_y < TERMINAL_VELOCITY: + velocity_y = TERMINAL_VELOCITY + + # Momentum dampener: sharply reduces recorded velocity after being stopped by a wall. + # Otherwise, requires a full deceleration before able to move the other direction. + # Making it equal to final_velocity seriously reduces ability to walk up a slope. + if get_slide_count() > 1: + velocity = lerp(velocity, Vector3(final_velocity.x, 0, final_velocity.z), 1) + + var slide_y = Vector3.ZERO + if is_on_floor(): + # Calculate movement velocity + velocity = lerp(velocity, target_velocity, delta * acceleration) + # Calculate vertical sliding + #slide_y = get_floor_normal() * GRAVITY * delta + + else: + velocity = lerp(velocity, Vector3(0, velocity.y, 0), delta * air_drag) + + # As of 3.4.0, I don't trust move_and_slide to give true velocity (or at least what I want). + # I was running into a corner and it said I was reaching 2 m/s while vibrating. + # TODO test in 3.4 and report + var position_before = global_transform.origin + move_and_slide(velocity + Vector3.UP * velocity_y - slide_y, Vector3.UP) + var position_after = global_transform.origin + final_velocity = (position_after - position_before) / delta + model_local_final_velocity = (model.to_local(position_after) - model.to_local(position_before)) / delta + + var velocity_length = Vector3(final_velocity.x, 0, final_velocity.z).length() + + # Rotate model towards actual moved velocity + if velocity_length > 0.001: + var q_from = model.global_transform.basis.get_rotation_quat() + var q_to = Transform().looking_at(Vector3(-final_velocity.x, 0, -final_velocity.z), Vector3.UP).basis.get_rotation_quat() + # Interpolate current rotation with desired one. + model.global_transform.basis = Basis(q_from.slerp(q_to, ROTATION_INTERPOLATE_SPEED)) + + # Add acceleration tilt + model_local_delta_velocity = model_local_delta_velocity - model_local_final_velocity + # Determine total cumulative acceleration. Should always balance out to 0 when stopped. + cumulative_x += model_local_delta_velocity.x + cumulative_z += model_local_delta_velocity.z + model.rotate_object_local(Vector3.BACK, cumulative_x/250) + model.rotate_object_local(Vector3.RIGHT, -cumulative_z/500) + + # Process inventory commands + + # Reload + if Input.is_action_pressed("reload"): + reload() + + # Switch weapon keys + for i in weapon_contoller.weapons.size(): + if Input.is_action_pressed("switch_weapon"+str(i+1)): + switch_weapon(i) + + # Process shooting + + # Checking: not reloading, not too soon after last fire, and + # not a manual fire weapon firing twice without release + if Input.is_action_pressed("shoot") && $ReloadTimer.is_stopped() and fire_cooldown.time_left == 0 and \ + (!fired_once or weapon_contoller.auto()): + fired_once = true + + var shoot_origin = shoot_from.global_transform.origin + + # Get what crosshair is aiming at + var ch_pos = crosshair.get_global_rect().position + crosshair.rect_size * 0.5 + var ray_from = camera_camera.project_ray_origin(ch_pos) + var ray_dir = camera_camera.project_ray_normal(ch_pos) + + var shoot_target + var col = get_world().direct_space_state.intersect_ray(ray_from, ray_from + ray_dir * 1000, [self], 0b1000001) + if col.empty(): + shoot_target = ray_from + ray_dir * 1000 + else: + shoot_target = col.position + var shoot_dir = (shoot_target - shoot_origin).normalized() + + # Check if (cosine of) angle of shooting too large (like standing against a wall) + if shoot_dir.dot(ray_dir) < 0.5: + shoot_dir = ray_dir + + # Raycast from 'shoot from', rather than the camera + #col = get_world().direct_space_state.intersect_ray(shoot_origin, shoot_target, [self], 0b111) + + if weapon_contoller.shoot(shoot_origin, shoot_dir, col): + fire_cooldown.start(1 / weapon_contoller.fire_rate()) + weapon_contoller.play_shoot_sound() + camera_camera.add_recoil(weapon_contoller.recoil()) + else: + # Attempt auto-reload + reload() + + + # Process animation + + # Add procedural animation and stride wheel + var amount_to_turn = velocity_length * PI / 4 * delta + wheel_rotation += amount_to_turn + $"CenterOfMass/Alunya/stride wheel".rotate(Vector3(1, 0, 0), amount_to_turn) + + var seconds = wheel_rotation / PI # was * (6.25/5) / PI. it's magic number, i aint gotta explain shit [not sure why it's 6.25/5] + + $AnimationTree["parameters/run_seek/seek_position"] = seconds + + $AnimationTree["parameters/walk_seek/seek_position"] = seconds * 4 + + $AnimationTree["parameters/blend_moving/blend_amount"] = clamp(velocity_length / (walk_speed),0,2) - 1 + + # DISABLED UNTIL ANIMATIONS EXIST + #if on_air: + # if (final_velocity.y > 0): + # animation_tree["parameters/state/current"] = 2 + # else: + # animation_tree["parameters/state/current"] = 3 + #if aiming: + # Change state to strafe. + # animation_tree["parameters/state/current"] = 0 + + # Trigger aiming weapon animation if we changed aim this frame + if changed_aim: + if aiming: + $AnimationTree["parameters/hold_weapon_blend/blend_amount"] = 1 + else: + $AnimationTree["parameters/hold_weapon_blend/blend_amount"] = 0 + + # Fade out to black if falling out of the map. out_of_bounds_y_start is lower than + # the lowest valid position on the map. + # At out_of_bounds_y_fade units below out_of_bounds_y_start, the screen turns fully black. + if transform.origin.y < out_of_bounds_y_start: + color_rect.modulate.a = min((out_of_bounds_y_start - transform.origin.y) / out_of_bounds_y_fade, 1) + # If we're below (out_of_bounds_y_end - 5), respawn. + if transform.origin.y < out_of_bounds_y_end - 5: + color_rect.modulate.a = 0 + respawn() + #TODO make it a parameter received from the map + + +func _input(event): + if event is InputEventMouseMotion: + var camera_speed_this_frame = CAMERA_MOUSE_ROTATION_SPEED + if aiming: + camera_speed_this_frame *= 0.75 + rotate_camera(event.relative * camera_speed_this_frame) + + if event.is_action_released("shoot"): + fired_once = false + +func rotate_camera(move): + camera_base.rotate_y(-move.x) + # After relative transforms, camera needs to be renormalized. + camera_base.orthonormalize() + camera_x_rot += move.y + camera_x_rot = clamp(camera_x_rot, deg2rad(CAMERA_X_ROT_MIN), deg2rad(CAMERA_X_ROT_MAX)) + camera_rot.rotation.x = camera_x_rot + +func add_camera_shake_trauma(amount): + camera_camera.add_trauma(amount) + +func switch_weapon(to): + if to < weapon_contoller.weapons.size() && (to != current_weapon): + # Check if they're allowed to use it + if !weapon_contoller.weapons[to]["available"]: + # TODO Play error noise or something + print_debug("tried to select unavailable weapon") + return + + abort_reload() + + # Switch + weapon.get_node(weapon_contoller.weapons[current_weapon]["name"]).hide() + current_weapon = to + weapon.get_node(weapon_contoller.weapons[current_weapon]["name"]).show() + + # Set animations + animation_tree.set("parameters/hold_weapon/current", weapon_contoller.weapon_index()) + + # Set animation fire rate + var speed_scale = weapon_contoller.fire_rate() + $GlobalShootParticle.speed_scale = speed_scale + + # Refresh UI stats + weapon_contoller.update_ammo() + +func reload(): + if (weapon_contoller.mag() != weapon_contoller.mag_size() + and weapon_contoller.ammo_backup() != 0 + and $ReloadTimer.is_stopped() + ): + animation_tree.set("parameters/reload_switch/active", true) + animation_tree.set("parameters/reload_scale/scale", weapon_contoller.reload_speed()) + $ReloadTimer.start(1 / weapon_contoller.reload_speed()) + +func abort_reload(): + $ReloadTimer.stop() + animation_tree.set("parameters/reload_switch/active", false) + +func update_health(): + ui_health.text = str(health) + +func decrement_health(amount): + health -= amount + if health <= 0: + health = 9 + respawn() + achievement("Achievement: Vendetta", "Alunya is an idea, and ideas cannot be killed.") + update_health() + +func hit(col): + decrement_health(1) + self.add_camera_shake_trauma(13) + +func respawn(): + transform.origin = initial_position + # be nice (only does current weapon) + if weapon_contoller.ammo_backup() < weapon_contoller.mag_size() / 2: + weapon_contoller.weapons[current_weapon].ammo_backup = weapon_contoller.mag_size() + weapon_contoller.update_ammo() + +func get_main_hitbox(): + return model.get_node("Colette_Armature/Skeleton/ChestBone/Hitbox") + +func _on_FireCooldown_timeout(): + $GlobalShootParticle.emitting = false + +func _on_ReloadTimer_timeout(): + weapon_contoller.mag_fill() + +func achievement(title, desc): + if !achievements.has(title): + achievements.append(title) + var message = preload("res://player/ui/HUDMessage.tscn").instance() + message.label(title, desc) + ui.add_child(message) diff --git a/player/player.tscn b/player/player.tscn new file mode 100644 index 0000000..3dfbf9c --- /dev/null +++ b/player/player.tscn @@ -0,0 +1,587 @@ +[gd_scene load_steps=65 format=2] + +[ext_resource path="res://player/crosshair.png" type="Texture" id=1] +[ext_resource path="res://player/WeaponController.gd" type="Script" id=2] +[ext_resource path="res://player/player.gd" type="Script" id=3] +[ext_resource path="res://menu/font/PT_Sans-Web-Bold.ttf" type="DynamicFontData" id=4] +[ext_resource path="res://player/model/Alunya.glb" type="PackedScene" id=5] +[ext_resource path="res://player/weapons/weapon.tscn" type="PackedScene" id=6] +[ext_resource path="res://player/model/materials/animu_alunya_shadermat.tres" type="Material" id=7] +[ext_resource path="res://player/Hitbox.gd" type="Script" id=8] +[ext_resource path="res://player/model/materials/ear.tres" type="Material" id=9] +[ext_resource path="res://player/model/materials/bandana.tres" type="Material" id=10] +[ext_resource path="res://player/model/materials/face.tres" type="Material" id=11] +[ext_resource path="res://player/camera_noise_shake_effect.gd" type="Script" id=12] +[ext_resource path="res://player/model/muzzle_flash_particle_mesh_Cone.mesh" type="ArrayMesh" id=13] +[ext_resource path="res://effects_shared/bullet/effect/FlarePolar.png" type="Texture" id=14] +[ext_resource path="res://player/audio/step.wav" type="AudioStream" id=15] +[ext_resource path="res://player/bullet/bullet_material.tres" type="Material" id=16] +[ext_resource path="res://player/audio/jump.wav" type="AudioStream" id=17] +[ext_resource path="res://player/model/materials/body.tres" type="Material" id=18] + +[sub_resource type="ParticlesMaterial" id=49] +flag_align_y = true +direction = Vector3( 0, 0, -1 ) +spread = 15.0 +gravity = Vector3( 0, -3, 0 ) +initial_velocity = 3.0 + +[sub_resource type="SphereMesh" id=50] +radius = 0.003 +height = 0.02 + +[sub_resource type="SpatialMaterial" id=51] +flags_transparent = true +flags_unshaded = true +vertex_color_use_as_albedo = true +params_cull_mode = 2 +albedo_texture = ExtResource( 14 ) + +[sub_resource type="Gradient" id=52] +offsets = PoolRealArray( 0.325926, 1 ) +colors = PoolColorArray( 0.0507812, 0.955505, 1, 1, 0.875, 0.888672, 1, 0.305882 ) + +[sub_resource type="GradientTexture" id=47] +gradient = SubResource( 52 ) +width = 32 + +[sub_resource type="Curve" id=53] +_data = [ Vector2( 0, 0 ), 0.0, 0.0, 0, 0, Vector2( 0.791139, 0.990909 ), 0.0, 0.0, 0, 0, Vector2( 1, 0 ), 0.0, 0.0, 0, 0 ] + +[sub_resource type="CurveTexture" id=48] +width = 64 +curve = SubResource( 53 ) + +[sub_resource type="ParticlesMaterial" id=54] +gravity = Vector3( 0, 0, 0 ) +angle = -4.0 +angle_random = 1.0 +scale = 0.3 +scale_curve = SubResource( 48 ) +color_ramp = SubResource( 47 ) + +[sub_resource type="CapsuleShape" id=56] +radius = 0.253575 +height = 0.81 + +[sub_resource type="Animation" id=69] +resource_name = "blink-loop" +length = 4.0 +loop = true +tracks/0/type = "bezier" +tracks/0/path = NodePath("Colette_Armature/Skeleton/Colette_Mesh:material/1:shader_param/topEllipse:y") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"points": PoolRealArray( 0.5, -0.25, 0, 0, 0, 0.8, 0, 0, 0, 0, 0.5, -0.25, 0, 0.25, 0 ), +"times": PoolRealArray( 3, 3.1, 3.3 ) +} + +[sub_resource type="PrismMesh" id=10] + +[sub_resource type="SpatialMaterial" id=11] +emission_enabled = true +emission = Color( 0.266667, 1, 0, 1 ) +emission_energy = 1.0 +emission_operator = 0 +emission_on_uv2 = false + +[sub_resource type="CylinderMesh" id=15] +top_radius = 0.65 +bottom_radius = 0.65 +height = 0.01 + +[sub_resource type="CubeMesh" id=16] +size = Vector3( 0.01, 0.01, 1.3 ) + +[sub_resource type="SpatialMaterial" id=17] +flags_transparent = true +albedo_color = Color( 0.639216, 1, 0, 0.490196 ) + +[sub_resource type="AnimationNodeBlend3" id=75] + +[sub_resource type="AnimationNodeAnimation" id=70] +animation = "blink-loop" + +[sub_resource type="AnimationNodeAdd2" id=71] + +[sub_resource type="AnimationNodeAnimation" id=67] +animation = "aim_pistol-loop" + +[sub_resource type="AnimationNodeAnimation" id=64] +animation = "aim_pistol-loop" + +[sub_resource type="AnimationNodeAnimation" id=62] +animation = "aim_rifle-loop" + +[sub_resource type="AnimationNodeTransition" id=61] +input_count = 4 +xfade_time = 0.15 +input_0/name = "rifle" +input_0/auto_advance = false +input_1/name = "pistol" +input_1/auto_advance = false +input_2/name = "shit pistol" +input_2/auto_advance = false +input_3/name = "laser" +input_3/auto_advance = false + +[sub_resource type="AnimationNodeBlend2" id=63] +filter_enabled = true +filters = [ "Colette_Armature/Skeleton:ElbowF.L", "Colette_Armature/Skeleton:ElbowF.R", "Colette_Armature/Skeleton:ElbowM.L", "Colette_Armature/Skeleton:ElbowM.R", "Colette_Armature/Skeleton:ElbowU.L", "Colette_Armature/Skeleton:ElbowU.R", "Colette_Armature/Skeleton:F_Index_1.L", "Colette_Armature/Skeleton:F_Index_1.R", "Colette_Armature/Skeleton:F_Index_2.L", "Colette_Armature/Skeleton:F_Index_2.R", "Colette_Armature/Skeleton:F_Index_3.L", "Colette_Armature/Skeleton:F_Index_3.R", "Colette_Armature/Skeleton:F_Index_4.L", "Colette_Armature/Skeleton:F_Index_4.R", "Colette_Armature/Skeleton:F_Middle_1.L", "Colette_Armature/Skeleton:F_Middle_1.R", "Colette_Armature/Skeleton:F_Middle_2.L", "Colette_Armature/Skeleton:F_Middle_2.R", "Colette_Armature/Skeleton:F_Middle_3.L", "Colette_Armature/Skeleton:F_Middle_3.R", "Colette_Armature/Skeleton:F_Middle_4.L", "Colette_Armature/Skeleton:F_Middle_4.R", "Colette_Armature/Skeleton:F_Pinky_1.L", "Colette_Armature/Skeleton:F_Pinky_1.R", "Colette_Armature/Skeleton:F_Pinky_2.L", "Colette_Armature/Skeleton:F_Pinky_2.R", "Colette_Armature/Skeleton:F_Pinky_3.L", "Colette_Armature/Skeleton:F_Pinky_3.R", "Colette_Armature/Skeleton:F_Pinky_4.L", "Colette_Armature/Skeleton:F_Pinky_4.R", "Colette_Armature/Skeleton:F_Ring_1.L", "Colette_Armature/Skeleton:F_Ring_1.R", "Colette_Armature/Skeleton:F_Ring_2.L", "Colette_Armature/Skeleton:F_Ring_2.R", "Colette_Armature/Skeleton:F_Ring_3.L", "Colette_Armature/Skeleton:F_Ring_3.R", "Colette_Armature/Skeleton:F_Ring_4.L", "Colette_Armature/Skeleton:F_Ring_4.R", "Colette_Armature/Skeleton:F_Thumb_1.L", "Colette_Armature/Skeleton:F_Thumb_1.R", "Colette_Armature/Skeleton:F_Thumb_2.L", "Colette_Armature/Skeleton:F_Thumb_2.R", "Colette_Armature/Skeleton:F_Thumb_3.L", "Colette_Armature/Skeleton:F_Thumb_3.R", "Colette_Armature/Skeleton:ForeArm.L", "Colette_Armature/Skeleton:ForeArm.R", "Colette_Armature/Skeleton:Hand.L", "Colette_Armature/Skeleton:Hand.R", "Colette_Armature/Skeleton:HandMark_IK_FK.L", "Colette_Armature/Skeleton:HandMark_IK_FK.R", "Colette_Armature/Skeleton:Shoulder.L", "Colette_Armature/Skeleton:Shoulder.R", "Colette_Armature/Skeleton:UpperArm.L", "Colette_Armature/Skeleton:UpperArm.R", "Colette_Armature/Skeleton:UpperArmSkin1.L", "Colette_Armature/Skeleton:UpperArmSkin1.R", "Colette_Armature/Skeleton:UpperArmSkin2.L", "Colette_Armature/Skeleton:UpperArmSkin2.R", "Colette_Armature/Skeleton:UpperArmSkin3.L", "Colette_Armature/Skeleton:UpperArmSkin3.R" ] + +[sub_resource type="AnimationNodeAnimation" id=65] +animation = "idle-loop" + +[sub_resource type="AnimationNodeAnimation" id=72] +animation = "reload" + +[sub_resource type="AnimationNodeTimeScale" id=73] + +[sub_resource type="AnimationNodeOneShot" id=74] +filter_enabled = true +filters = [ "Colette_Armature/Skeleton:ElbowF.L", "Colette_Armature/Skeleton:ElbowF.R", "Colette_Armature/Skeleton:ElbowM.L", "Colette_Armature/Skeleton:ElbowM.R", "Colette_Armature/Skeleton:ElbowU.L", "Colette_Armature/Skeleton:ElbowU.R", "Colette_Armature/Skeleton:F_Index_1.L", "Colette_Armature/Skeleton:F_Index_1.R", "Colette_Armature/Skeleton:F_Index_2.L", "Colette_Armature/Skeleton:F_Index_2.R", "Colette_Armature/Skeleton:F_Index_3.L", "Colette_Armature/Skeleton:F_Index_3.R", "Colette_Armature/Skeleton:F_Index_4.L", "Colette_Armature/Skeleton:F_Index_4.R", "Colette_Armature/Skeleton:F_Middle_1.L", "Colette_Armature/Skeleton:F_Middle_1.R", "Colette_Armature/Skeleton:F_Middle_2.L", "Colette_Armature/Skeleton:F_Middle_2.R", "Colette_Armature/Skeleton:F_Middle_3.L", "Colette_Armature/Skeleton:F_Middle_3.R", "Colette_Armature/Skeleton:F_Middle_4.L", "Colette_Armature/Skeleton:F_Middle_4.R", "Colette_Armature/Skeleton:F_Pinky_1.L", "Colette_Armature/Skeleton:F_Pinky_1.R", "Colette_Armature/Skeleton:F_Pinky_2.L", "Colette_Armature/Skeleton:F_Pinky_2.R", "Colette_Armature/Skeleton:F_Pinky_3.L", "Colette_Armature/Skeleton:F_Pinky_3.R", "Colette_Armature/Skeleton:F_Pinky_4.L", "Colette_Armature/Skeleton:F_Pinky_4.R", "Colette_Armature/Skeleton:F_Ring_1.L", "Colette_Armature/Skeleton:F_Ring_1.R", "Colette_Armature/Skeleton:F_Ring_2.L", "Colette_Armature/Skeleton:F_Ring_2.R", "Colette_Armature/Skeleton:F_Ring_3.L", "Colette_Armature/Skeleton:F_Ring_3.R", "Colette_Armature/Skeleton:F_Ring_4.L", "Colette_Armature/Skeleton:F_Ring_4.R", "Colette_Armature/Skeleton:F_Thumb_1.L", "Colette_Armature/Skeleton:F_Thumb_1.R", "Colette_Armature/Skeleton:F_Thumb_2.L", "Colette_Armature/Skeleton:F_Thumb_2.R", "Colette_Armature/Skeleton:F_Thumb_3.L", "Colette_Armature/Skeleton:F_Thumb_3.R", "Colette_Armature/Skeleton:ForeArm.L", "Colette_Armature/Skeleton:ForeArm.R", "Colette_Armature/Skeleton:ForeArmSkin1.L", "Colette_Armature/Skeleton:ForeArmSkin1.R", "Colette_Armature/Skeleton:ForeArmSkin2.L", "Colette_Armature/Skeleton:ForeArmSkin2.R", "Colette_Armature/Skeleton:ForeArmSkin3.L", "Colette_Armature/Skeleton:ForeArmSkin3.R", "Colette_Armature/Skeleton:Hand.L", "Colette_Armature/Skeleton:Hand.R", "Colette_Armature/Skeleton:HandMark_IK_FK.L", "Colette_Armature/Skeleton:HandMark_IK_FK.R", "Colette_Armature/Skeleton:Shoulder.L", "Colette_Armature/Skeleton:Shoulder.R", "Colette_Armature/Skeleton:UpperArm.L", "Colette_Armature/Skeleton:UpperArm.R", "Colette_Armature/Skeleton:UpperArmSkin1.L", "Colette_Armature/Skeleton:UpperArmSkin1.R", "Colette_Armature/Skeleton:UpperArmSkin2.L", "Colette_Armature/Skeleton:UpperArmSkin2.R", "Colette_Armature/Skeleton:UpperArmSkin3.L", "Colette_Armature/Skeleton:UpperArmSkin3.R" ] + +[sub_resource type="AnimationNodeAnimation" id=18] +animation = "run-cycle-loop" + +[sub_resource type="AnimationNodeTimeScale" id=20] + +[sub_resource type="AnimationNodeTimeSeek" id=21] + +[sub_resource type="AnimationNodeAnimation" id=76] +animation = "walking-cycle-loop" + +[sub_resource type="AnimationNodeTimeScale" id=77] + +[sub_resource type="AnimationNodeTimeSeek" id=78] + +[sub_resource type="AnimationNodeBlendTree" id=19] +graph_offset = Vector2( -273, 12 ) +nodes/blend_moving/node = SubResource( 75 ) +nodes/blend_moving/position = Vector2( 360, -60 ) +nodes/blink_loop/node = SubResource( 70 ) +nodes/blink_loop/position = Vector2( 1160, 380 ) +nodes/eye_blink/node = SubResource( 71 ) +nodes/eye_blink/position = Vector2( 1360, 120 ) +nodes/hold_laser/node = SubResource( 67 ) +nodes/hold_laser/position = Vector2( 100, 560 ) +nodes/hold_pistol/node = SubResource( 64 ) +nodes/hold_pistol/position = Vector2( 100, 440 ) +nodes/hold_rifle/node = SubResource( 62 ) +nodes/hold_rifle/position = Vector2( 100, 300 ) +nodes/hold_weapon/node = SubResource( 61 ) +nodes/hold_weapon/position = Vector2( 360, 360 ) +nodes/hold_weapon_blend/node = SubResource( 63 ) +nodes/hold_weapon_blend/position = Vector2( 720, 140 ) +nodes/idle_loop/node = SubResource( 65 ) +nodes/idle_loop/position = Vector2( 20, -160 ) +nodes/output/position = Vector2( 1680, 120 ) +nodes/reload/node = SubResource( 72 ) +nodes/reload/position = Vector2( 680, 480 ) +nodes/reload_scale/node = SubResource( 73 ) +nodes/reload_scale/position = Vector2( 880, 340 ) +nodes/reload_switch/node = SubResource( 74 ) +nodes/reload_switch/position = Vector2( 1080, 140 ) +nodes/run_loop/node = SubResource( 18 ) +nodes/run_loop/position = Vector2( -440, 140 ) +nodes/run_scale/node = SubResource( 20 ) +nodes/run_scale/position = Vector2( 20, 120 ) +nodes/run_seek/node = SubResource( 21 ) +nodes/run_seek/position = Vector2( -220, 120 ) +nodes/walk_loop/node = SubResource( 76 ) +nodes/walk_loop/position = Vector2( -480, 0 ) +nodes/walk_scale/node = SubResource( 77 ) +nodes/walk_scale/position = Vector2( 20, 0 ) +nodes/walk_seek/node = SubResource( 78 ) +nodes/walk_seek/position = Vector2( -220, 0 ) +node_connections = [ "output", 0, "eye_blink", "run_scale", 0, "run_seek", "walk_scale", 0, "walk_seek", "blend_moving", 0, "idle_loop", "blend_moving", 1, "walk_scale", "blend_moving", 2, "run_scale", "walk_seek", 0, "walk_loop", "run_seek", 0, "run_loop", "eye_blink", 0, "reload_switch", "eye_blink", 1, "blink_loop", "reload_switch", 0, "hold_weapon_blend", "reload_switch", 1, "reload_scale", "reload_scale", 0, "reload", "hold_weapon_blend", 0, "blend_moving", "hold_weapon_blend", 1, "hold_weapon", "hold_weapon", 0, "hold_rifle", "hold_weapon", 1, "hold_pistol", "hold_weapon", 3, "hold_laser" ] + +[sub_resource type="CapsuleShape" id=13] +radius = 0.4 +height = 0.5 + +[sub_resource type="CapsuleMesh" id=14] +radius = 0.5 +mid_height = 0.4 + +[sub_resource type="SpatialMaterial" id=2] +flags_transparent = true +params_diffuse_mode = 4 +params_specular_mode = 3 +albedo_color = Color( 0.0784314, 1, 0, 0.521569 ) + +[sub_resource type="CapsuleShape" id=57] +radius = 0.134913 +height = 0.349327 + +[sub_resource type="Animation" id=6] +tracks/0/type = "value" +tracks/0/path = NodePath("CameraRot/SpringArm:translation") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0, 1 ), +"transitions": PoolRealArray( 0.287175, 1 ), +"update": 3, +"values": [ Vector3( 0, 0, 0 ), Vector3( 0, 0, 0 ) ] +} +tracks/1/type = "value" +tracks/1/path = NodePath("../UI/Crosshair:self_modulate") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0.2 ), +"transitions": PoolRealArray( 1 ), +"update": 3, +"values": [ Color( 1, 1, 1, 0 ) ] +} + +[sub_resource type="Animation" id=7] +tracks/0/type = "value" +tracks/0/path = NodePath("CameraRot/SpringArm:translation") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0, 1 ), +"transitions": PoolRealArray( 0.233259, 1 ), +"update": 3, +"values": [ Vector3( -0.6, -0.3, 1.1 ), Vector3( -0.6, -0.3, 1.1 ) ] +} +tracks/1/type = "value" +tracks/1/path = NodePath("../UI/Crosshair:self_modulate") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0.2 ), +"transitions": PoolRealArray( 1 ), +"update": 3, +"values": [ Color( 1, 1, 1, 1 ) ] +} + +[sub_resource type="DynamicFont" id=8] +size = 64 +use_filter = true +font_data = ExtResource( 4 ) + +[sub_resource type="DynamicFont" id=9] +size = 32 +use_filter = true +font_data = ExtResource( 4 ) + +[sub_resource type="SpatialMaterial" id=12] +albedo_color = Color( 0.47451, 0.654902, 1, 0.545098 ) + +[sub_resource type="SpatialMaterial" id=58] +vertex_color_use_as_albedo = true +albedo_color = Color( 0, 0, 0, 1 ) +roughness = 0.0 +emission_enabled = true +emission = Color( 0.976471, 0.792157, 0.305882, 1 ) +emission_energy = 6.49 +emission_operator = 0 +emission_on_uv2 = false + +[sub_resource type="ParticlesMaterial" id=59] +flag_align_y = true +direction = Vector3( 0, 0, -1 ) +spread = 0.0 +gravity = Vector3( 0, 0, 0 ) +initial_velocity = 50.0 + +[sub_resource type="SphereMesh" id=60] +radius = 0.01 +height = 1.0 + +[node name="Player" type="KinematicBody"] +collision_layer = 2 +collision_mask = 21 +script = ExtResource( 3 ) + +[node name="CenterOfMass" type="Spatial" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.65, 0 ) + +[node name="Alunya" parent="CenterOfMass" instance=ExtResource( 5 )] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.65, 0 ) + +[node name="Colette_Mesh" parent="CenterOfMass/Alunya/Colette_Armature/Skeleton" index="0"] +material/0 = ExtResource( 7 ) +material/1 = ExtResource( 7 ) +material/2 = ExtResource( 11 ) +material/3 = ExtResource( 18 ) +material/4 = ExtResource( 9 ) +material/5 = ExtResource( 9 ) +material/6 = ExtResource( 10 ) + +[node name="GunBone" type="BoneAttachment" parent="CenterOfMass/Alunya/Colette_Armature/Skeleton" index="1"] +transform = Transform( -0.0218075, -0.185726, -0.982359, 0.00932966, -0.982524, 0.185551, -0.999653, -0.00511819, 0.0231594, -0.20156, 0.742102, -0.0365517 ) +bone_name = "Hand.R" + +[node name="Weapon" parent="CenterOfMass/Alunya/Colette_Armature/Skeleton/GunBone" instance=ExtResource( 6 )] + +[node name="ShootFrom" type="Position3D" parent="CenterOfMass/Alunya/Colette_Armature/Skeleton/GunBone"] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.4, 0 ) + +[node name="ShootParticle" type="Particles" parent="CenterOfMass/Alunya/Colette_Armature/Skeleton/GunBone/ShootFrom"] +transform = Transform( 1, 2.04891e-08, 0, 3.21306e-08, 1, 5.58794e-09, 0, 0, 1, -0.0632257, 0.1192, 0 ) +material_override = ExtResource( 16 ) +emitting = false +amount = 10 +lifetime = 0.3 +one_shot = true +explosiveness = 0.79 +local_coords = false +process_material = SubResource( 49 ) +draw_pass_1 = SubResource( 50 ) + +[node name="MuzzleFlash" type="Particles" parent="CenterOfMass/Alunya/Colette_Armature/Skeleton/GunBone/ShootFrom"] +transform = Transform( 1, 0, -2.00234e-08, 1.21072e-08, -4.37722e-08, -1, -2.98023e-08, 1, -4.74975e-08, -0.0632257, 0.1192, 0 ) +material_override = SubResource( 51 ) +emitting = false +amount = 1 +lifetime = 0.1 +one_shot = true +explosiveness = 1.0 +process_material = SubResource( 54 ) +draw_pass_1 = ExtResource( 13 ) + +[node name="ChestBone" type="BoneAttachment" parent="CenterOfMass/Alunya/Colette_Armature/Skeleton" index="2"] +transform = Transform( 1, 8.44443e-08, -3.9431e-07, -1.08001e-07, 0.998296, -0.0572337, 3.44282e-07, 0.0572337, 0.998296, 1.8397e-09, 1.00079, 0.038102 ) +bone_name = "Chest" + +[node name="Hitbox" type="KinematicBody" parent="CenterOfMass/Alunya/Colette_Armature/Skeleton/ChestBone"] +transform = Transform( 0.697, 4.07329e-05, 0.000196172, -2.55566e-05, 1.19195, 0.00618148, -0.000195948, -0.0105715, 0.696972, 0, 0.069, -0.031 ) +collision_layer = 32 +collision_mask = 0 +script = ExtResource( 8 ) +node_with_hit = NodePath("../../../../../..") + +[node name="CollisionShape" type="CollisionShape" parent="CenterOfMass/Alunya/Colette_Armature/Skeleton/ChestBone/Hitbox"] +transform = Transform( 1, 0, -3.63798e-12, -1.81899e-12, -4.09782e-08, -1, 2.91038e-11, 1, -3.72529e-08, 7.7864e-06, -0.240094, 0.0223458 ) +shape = SubResource( 56 ) + +[node name="AnimationPlayer" parent="CenterOfMass/Alunya" index="1"] +anims/blink-loop = SubResource( 69 ) + +[node name="DEBUG_direction" type="MeshInstance" parent="CenterOfMass/Alunya"] +transform = Transform( 0.1, 0, 0, 0, -8.74228e-09, -0.05, 0, 0.2, -2.18557e-09, 0, 0.653579, 1 ) +visible = false +mesh = SubResource( 10 ) +skeleton = NodePath("../../..") +material/0 = SubResource( 11 ) + +[node name="stride wheel" type="Spatial" parent="CenterOfMass/Alunya"] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.65, 0 ) +visible = false + +[node name="MeshInstance" type="MeshInstance" parent="CenterOfMass/Alunya/stride wheel"] +transform = Transform( -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0, 0, 1, 0, 0, 0 ) +visible = false +mesh = SubResource( 15 ) +material/0 = null + +[node name="line1" type="MeshInstance" parent="CenterOfMass/Alunya/stride wheel"] +transform = Transform( 1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0, 0 ) +mesh = SubResource( 16 ) +material/0 = SubResource( 17 ) + +[node name="line2" type="MeshInstance" parent="CenterOfMass/Alunya/stride wheel"] +mesh = SubResource( 16 ) +material/0 = SubResource( 17 ) + +[node name="AnimationTree" type="AnimationTree" parent="."] +tree_root = SubResource( 19 ) +anim_player = NodePath("../CenterOfMass/Alunya/AnimationPlayer") +active = true +parameters/blend_moving/blend_amount = -1.0 +parameters/eye_blink/add_amount = 1.0 +parameters/hold_weapon/current = 0 +parameters/hold_weapon_blend/blend_amount = 0.0 +parameters/reload_scale/scale = 1.0 +parameters/reload_switch/active = false +parameters/run_scale/scale = 0.0 +parameters/run_seek/seek_position = -1.0 +parameters/walk_scale/scale = 0.0 +parameters/walk_seek/seek_position = -1.0 + +[node name="BodyCollision" type="CollisionShape" parent="."] +transform = Transform( 1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0.7, 0 ) +shape = SubResource( 13 ) + +[node name="MeshInstance" type="MeshInstance" parent="BodyCollision"] +visible = false +mesh = SubResource( 14 ) +skeleton = NodePath("../..") +material/0 = SubResource( 2 ) + +[node name="ForwardCollision" type="CollisionShape" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.945, 0.347662 ) +shape = SubResource( 57 ) + +[node name="CameraBase" type="Spatial" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.6, 0 ) +__meta__ = { +"_editor_description_": "Handles Y rotation (yaw)." +} + +[node name="CameraRot" type="Spatial" parent="CameraBase"] +__meta__ = { +"_editor_description_": "Handles X rotation (pitch)." +} + +[node name="SpringArm" type="SpringArm" parent="CameraBase/CameraRot"] +transform = Transform( -1, -1.11444e-07, 3.06191e-07, 0, 0.939693, 0.34202, -3.25841e-07, 0.34202, -0.939693, 0, 0, 0 ) +spring_length = 2.4 + +[node name="Camera" type="Camera" parent="CameraBase/CameraRot/SpringArm"] +transform = Transform( 1, 1.42109e-14, -2.84217e-14, 0, 1, 0, 0, 0, 1, 0, 0, 0 ) +current = true +far = 300.0 +script = ExtResource( 12 ) +__meta__ = { +"_editor_description_": "Translated when aiming." +} + +[node name="Animation" type="AnimationPlayer" parent="CameraBase"] +anims/far = SubResource( 6 ) +anims/shoot = SubResource( 7 ) + +[node name="WeaponController" type="Node" parent="."] +script = ExtResource( 2 ) + +[node name="UI" type="Node" parent="."] + +[node name="ColorRect" type="ColorRect" parent="UI"] +modulate = Color( 1, 1, 1, 0 ) +margin_right = 4000.0 +margin_bottom = 4000.0 +grow_horizontal = 2 +grow_vertical = 2 +color = Color( 0, 0, 0, 1 ) +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Crosshair" type="TextureRect" parent="UI"] +self_modulate = Color( 1, 1, 1, 0 ) +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +margin_left = -12.0 +margin_top = -12.0 +margin_right = 12.0 +margin_bottom = 12.0 +texture = ExtResource( 1 ) +expand = true +stretch_mode = 1 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="WeaponStatUI" type="Node" parent="UI"] + +[node name="ColorRect" type="ColorRect" parent="UI/WeaponStatUI"] +anchor_top = 1.0 +anchor_bottom = 1.0 +margin_left = 20.0 +margin_top = -97.9998 +margin_right = 287.999 +margin_bottom = -20.0 +color = Color( 1, 0, 0, 1 ) +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Health" type="Label" parent="UI/WeaponStatUI/ColorRect"] +anchor_bottom = 1.0 +margin_left = 272.0 +margin_right = 354.0 +margin_bottom = 16.0002 +custom_fonts/font = SubResource( 8 ) +text = "99" +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="AmmoLoaded" type="Label" parent="UI/WeaponStatUI/ColorRect"] +anchor_bottom = 1.0 +margin_left = 16.0 +margin_right = 98.0 +margin_bottom = 16.0002 +custom_fonts/font = SubResource( 8 ) +text = "99" +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="AmmoExtra" type="Label" parent="UI/WeaponStatUI/ColorRect"] +anchor_left = 0.366 +anchor_top = 1.0 +anchor_right = 1.0 +anchor_bottom = 1.0 +margin_left = 0.912361 +margin_top = -43.9998 +margin_right = -83.999 +margin_bottom = 0.000183105 +grow_vertical = 0 +custom_fonts/font = SubResource( 9 ) +text = "99" +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="SoundEffects" type="Node" parent="."] + +[node name="Step" type="AudioStreamPlayer" parent="SoundEffects"] +stream = ExtResource( 15 ) + +[node name="Jump" type="AudioStreamPlayer" parent="SoundEffects"] +stream = ExtResource( 17 ) + +[node name="Land" type="AudioStreamPlayer" parent="SoundEffects"] +stream = ExtResource( 17 ) + +[node name="FireCooldown" type="Timer" parent="."] +wait_time = 0.4 +one_shot = true +autostart = true + +[node name="ReloadTimer" type="Timer" parent="."] +wait_time = 0.05 +one_shot = true + +[node name="DEBUG_forward" type="Spatial" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1 ) +visible = false + +[node name="DB_forward_mesh" type="MeshInstance" parent="DEBUG_forward"] +transform = Transform( 0.1, 0, 0, 0, -8.74228e-09, -0.05, 0, 0.2, -2.18557e-09, 0, 0, 0 ) +visible = false +mesh = SubResource( 10 ) +skeleton = NodePath("../..") +material/0 = SubResource( 12 ) + +[node name="GlobalShootParticle" type="Particles" parent="."] +transform = Transform( 1, 0, 0, 0, -1, 8.74228e-08, 0, -8.74228e-08, -1, -0.0962614, 0.976735, 0.491067 ) +material_override = SubResource( 58 ) +emitting = false +amount = 1 +local_coords = false +process_material = SubResource( 59 ) +draw_pass_1 = SubResource( 60 ) + +[connection signal="timeout" from="FireCooldown" to="." method="_on_FireCooldown_timeout"] +[connection signal="timeout" from="ReloadTimer" to="." method="_on_ReloadTimer_timeout"] + +[editable path="CenterOfMass/Alunya"] diff --git a/player/ui/HUDMessage.gd b/player/ui/HUDMessage.gd new file mode 100644 index 0000000..44b0305 --- /dev/null +++ b/player/ui/HUDMessage.gd @@ -0,0 +1,8 @@ +extends ColorRect + +func label(title, desc): + $Title.text = title + $Desc.text = desc + +func _on_Timer_timeout(): + self.queue_free() diff --git a/player/ui/HUDMessage.tscn b/player/ui/HUDMessage.tscn new file mode 100644 index 0000000..1eddea3 --- /dev/null +++ b/player/ui/HUDMessage.tscn @@ -0,0 +1,67 @@ +[gd_scene load_steps=5 format=2] + +[ext_resource path="res://menu/font/PT_Sans-Web-Bold.ttf" type="DynamicFontData" id=1] +[ext_resource path="res://player/ui/HUDMessage.gd" type="Script" id=2] + +[sub_resource type="DynamicFont" id=59] +size = 21 +use_filter = true +font_data = ExtResource( 1 ) + +[sub_resource type="DynamicFont" id=60] +size = 15 +use_filter = true +extra_spacing_bottom = -6 +font_data = ExtResource( 1 ) + +[node name="Achievement" type="ColorRect"] +anchor_left = 0.5 +anchor_right = 0.5 +margin_left = -146.5 +margin_right = 146.5 +margin_bottom = 65.0 +grow_horizontal = 2 +mouse_filter = 2 +color = Color( 0, 0, 0, 0.25 ) +script = ExtResource( 2 ) +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Title" type="Label" parent="."] +anchor_left = 0.5 +anchor_right = 0.5 +margin_left = -146.5 +margin_top = -2.0 +margin_right = 146.5 +margin_bottom = 27.0 +custom_colors/font_color = Color( 1, 1, 1, 1 ) +custom_fonts/font = SubResource( 59 ) +text = "Achievement: " +align = 1 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Desc" type="Label" parent="."] +anchor_left = 0.5 +anchor_right = 0.5 +margin_left = -146.5 +margin_top = 24.0 +margin_right = 146.5 +margin_bottom = 65.0 +custom_colors/font_color = Color( 1, 1, 1, 1 ) +custom_fonts/font = SubResource( 60 ) +text = "This is the description. It describes the thing. +Here is an example." +align = 1 +autowrap = true +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Timer" type="Timer" parent="."] +wait_time = 5.0 +autostart = true + +[connection signal="timeout" from="Timer" to="." method="_on_Timer_timeout"] diff --git a/player/weapons/AK-47/AK-47.gd b/player/weapons/AK-47/AK-47.gd new file mode 100644 index 0000000..f0957fa --- /dev/null +++ b/player/weapons/AK-47/AK-47.gd @@ -0,0 +1,13 @@ +extends Spatial + +func shoot(player, shoot_origin, shoot_dir, col): + if col: + if col.collider and col.collider.has_method("hit"): + col.collider.hit(col) + var shoot_particle = player.get_node("GlobalShootParticle") # Don't want it as child of player model + shoot_particle.global_transform.origin = shoot_origin + shoot_dir # An attempt to put it further forward than shoot_origin + shoot_particle.look_at(shoot_origin + 2*shoot_dir, Vector3.UP) # ^ + shoot_particle.emitting = true + var muzzle_particle = $MuzzleFlash + muzzle_particle.restart() + muzzle_particle.emitting = true diff --git a/player/weapons/AK-47/AK-47.glb b/player/weapons/AK-47/AK-47.glb new file mode 100644 index 0000000..fedf428 Binary files /dev/null and b/player/weapons/AK-47/AK-47.glb differ diff --git a/player/weapons/AK-47/AK-47.glb.import b/player/weapons/AK-47/AK-47.glb.import new file mode 100644 index 0000000..01a8a03 --- /dev/null +++ b/player/weapons/AK-47/AK-47.glb.import @@ -0,0 +1,1065 @@ +[remap] + +importer="scene" +type="PackedScene" +path="res://.import/AK-47.glb-9d75b90bea77a86edfc4d71c864b8dd1.scn" + +[deps] + +source_file="res://player/weapons/AK-47/AK-47.glb" +dest_files=[ "res://.import/AK-47.glb-9d75b90bea77a86edfc4d71c864b8dd1.scn" ] + +[params] + +nodes/root_type="Spatial" +nodes/root_name="Scene Root" +nodes/root_scale=1.0 +nodes/custom_script="" +nodes/storage=0 +nodes/use_legacy_names=false +materials/location=1 +materials/storage=1 +materials/keep_on_reimport=true +meshes/octahedral_compression=true +meshes/compress=4286 +meshes/ensure_tangents=true +meshes/storage=0 +meshes/light_baking=0 +meshes/lightmap_texel_size=0.1 +skins/use_named_skins=true +external_files/store_in_subdir=false +animation/import=true +animation/fps=15 +animation/filter_script="" +animation/storage=false +animation/keep_custom_tracks=false +animation/optimizer/enabled=true +animation/optimizer/max_linear_error=0.05 +animation/optimizer/max_angular_error=0.01 +animation/optimizer/max_angle=22 +animation/optimizer/remove_unused_tracks=true +animation/clips/amount=0 +animation/clip_1/name="" +animation/clip_1/start_frame=0 +animation/clip_1/end_frame=0 +animation/clip_1/loops=false +animation/clip_2/name="" +animation/clip_2/start_frame=0 +animation/clip_2/end_frame=0 +animation/clip_2/loops=false +animation/clip_3/name="" +animation/clip_3/start_frame=0 +animation/clip_3/end_frame=0 +animation/clip_3/loops=false +animation/clip_4/name="" +animation/clip_4/start_frame=0 +animation/clip_4/end_frame=0 +animation/clip_4/loops=false +animation/clip_5/name="" +animation/clip_5/start_frame=0 +animation/clip_5/end_frame=0 +animation/clip_5/loops=false +animation/clip_6/name="" +animation/clip_6/start_frame=0 +animation/clip_6/end_frame=0 +animation/clip_6/loops=false +animation/clip_7/name="" +animation/clip_7/start_frame=0 +animation/clip_7/end_frame=0 +animation/clip_7/loops=false +animation/clip_8/name="" +animation/clip_8/start_frame=0 +animation/clip_8/end_frame=0 +animation/clip_8/loops=false +animation/clip_9/name="" +animation/clip_9/start_frame=0 +animation/clip_9/end_frame=0 +animation/clip_9/loops=false +animation/clip_10/name="" +animation/clip_10/start_frame=0 +animation/clip_10/end_frame=0 +animation/clip_10/loops=false +animation/clip_11/name="" +animation/clip_11/start_frame=0 +animation/clip_11/end_frame=0 +animation/clip_11/loops=false +animation/clip_12/name="" +animation/clip_12/start_frame=0 +animation/clip_12/end_frame=0 +animation/clip_12/loops=false +animation/clip_13/name="" +animation/clip_13/start_frame=0 +animation/clip_13/end_frame=0 +animation/clip_13/loops=false +animation/clip_14/name="" +animation/clip_14/start_frame=0 +animation/clip_14/end_frame=0 +animation/clip_14/loops=false +animation/clip_15/name="" +animation/clip_15/start_frame=0 +animation/clip_15/end_frame=0 +animation/clip_15/loops=false +animation/clip_16/name="" +animation/clip_16/start_frame=0 +animation/clip_16/end_frame=0 +animation/clip_16/loops=false +animation/clip_17/name="" +animation/clip_17/start_frame=0 +animation/clip_17/end_frame=0 +animation/clip_17/loops=false +animation/clip_18/name="" +animation/clip_18/start_frame=0 +animation/clip_18/end_frame=0 +animation/clip_18/loops=false +animation/clip_19/name="" +animation/clip_19/start_frame=0 +animation/clip_19/end_frame=0 +animation/clip_19/loops=false +animation/clip_20/name="" +animation/clip_20/start_frame=0 +animation/clip_20/end_frame=0 +animation/clip_20/loops=false +animation/clip_21/name="" +animation/clip_21/start_frame=0 +animation/clip_21/end_frame=0 +animation/clip_21/loops=false +animation/clip_22/name="" +animation/clip_22/start_frame=0 +animation/clip_22/end_frame=0 +animation/clip_22/loops=false +animation/clip_23/name="" +animation/clip_23/start_frame=0 +animation/clip_23/end_frame=0 +animation/clip_23/loops=false +animation/clip_24/name="" +animation/clip_24/start_frame=0 +animation/clip_24/end_frame=0 +animation/clip_24/loops=false +animation/clip_25/name="" +animation/clip_25/start_frame=0 +animation/clip_25/end_frame=0 +animation/clip_25/loops=false +animation/clip_26/name="" +animation/clip_26/start_frame=0 +animation/clip_26/end_frame=0 +animation/clip_26/loops=false +animation/clip_27/name="" +animation/clip_27/start_frame=0 +animation/clip_27/end_frame=0 +animation/clip_27/loops=false +animation/clip_28/name="" +animation/clip_28/start_frame=0 +animation/clip_28/end_frame=0 +animation/clip_28/loops=false +animation/clip_29/name="" +animation/clip_29/start_frame=0 +animation/clip_29/end_frame=0 +animation/clip_29/loops=false +animation/clip_30/name="" +animation/clip_30/start_frame=0 +animation/clip_30/end_frame=0 +animation/clip_30/loops=false +animation/clip_31/name="" +animation/clip_31/start_frame=0 +animation/clip_31/end_frame=0 +animation/clip_31/loops=false +animation/clip_32/name="" +animation/clip_32/start_frame=0 +animation/clip_32/end_frame=0 +animation/clip_32/loops=false +animation/clip_33/name="" +animation/clip_33/start_frame=0 +animation/clip_33/end_frame=0 +animation/clip_33/loops=false +animation/clip_34/name="" +animation/clip_34/start_frame=0 +animation/clip_34/end_frame=0 +animation/clip_34/loops=false +animation/clip_35/name="" +animation/clip_35/start_frame=0 +animation/clip_35/end_frame=0 +animation/clip_35/loops=false +animation/clip_36/name="" +animation/clip_36/start_frame=0 +animation/clip_36/end_frame=0 +animation/clip_36/loops=false +animation/clip_37/name="" +animation/clip_37/start_frame=0 +animation/clip_37/end_frame=0 +animation/clip_37/loops=false +animation/clip_38/name="" +animation/clip_38/start_frame=0 +animation/clip_38/end_frame=0 +animation/clip_38/loops=false +animation/clip_39/name="" +animation/clip_39/start_frame=0 +animation/clip_39/end_frame=0 +animation/clip_39/loops=false +animation/clip_40/name="" +animation/clip_40/start_frame=0 +animation/clip_40/end_frame=0 +animation/clip_40/loops=false +animation/clip_41/name="" +animation/clip_41/start_frame=0 +animation/clip_41/end_frame=0 +animation/clip_41/loops=false +animation/clip_42/name="" +animation/clip_42/start_frame=0 +animation/clip_42/end_frame=0 +animation/clip_42/loops=false +animation/clip_43/name="" +animation/clip_43/start_frame=0 +animation/clip_43/end_frame=0 +animation/clip_43/loops=false +animation/clip_44/name="" +animation/clip_44/start_frame=0 +animation/clip_44/end_frame=0 +animation/clip_44/loops=false +animation/clip_45/name="" +animation/clip_45/start_frame=0 +animation/clip_45/end_frame=0 +animation/clip_45/loops=false +animation/clip_46/name="" +animation/clip_46/start_frame=0 +animation/clip_46/end_frame=0 +animation/clip_46/loops=false +animation/clip_47/name="" +animation/clip_47/start_frame=0 +animation/clip_47/end_frame=0 +animation/clip_47/loops=false +animation/clip_48/name="" +animation/clip_48/start_frame=0 +animation/clip_48/end_frame=0 +animation/clip_48/loops=false +animation/clip_49/name="" +animation/clip_49/start_frame=0 +animation/clip_49/end_frame=0 +animation/clip_49/loops=false +animation/clip_50/name="" +animation/clip_50/start_frame=0 +animation/clip_50/end_frame=0 +animation/clip_50/loops=false +animation/clip_51/name="" +animation/clip_51/start_frame=0 +animation/clip_51/end_frame=0 +animation/clip_51/loops=false +animation/clip_52/name="" +animation/clip_52/start_frame=0 +animation/clip_52/end_frame=0 +animation/clip_52/loops=false +animation/clip_53/name="" +animation/clip_53/start_frame=0 +animation/clip_53/end_frame=0 +animation/clip_53/loops=false +animation/clip_54/name="" +animation/clip_54/start_frame=0 +animation/clip_54/end_frame=0 +animation/clip_54/loops=false +animation/clip_55/name="" +animation/clip_55/start_frame=0 +animation/clip_55/end_frame=0 +animation/clip_55/loops=false +animation/clip_56/name="" +animation/clip_56/start_frame=0 +animation/clip_56/end_frame=0 +animation/clip_56/loops=false +animation/clip_57/name="" +animation/clip_57/start_frame=0 +animation/clip_57/end_frame=0 +animation/clip_57/loops=false +animation/clip_58/name="" +animation/clip_58/start_frame=0 +animation/clip_58/end_frame=0 +animation/clip_58/loops=false +animation/clip_59/name="" +animation/clip_59/start_frame=0 +animation/clip_59/end_frame=0 +animation/clip_59/loops=false +animation/clip_60/name="" +animation/clip_60/start_frame=0 +animation/clip_60/end_frame=0 +animation/clip_60/loops=false +animation/clip_61/name="" +animation/clip_61/start_frame=0 +animation/clip_61/end_frame=0 +animation/clip_61/loops=false +animation/clip_62/name="" +animation/clip_62/start_frame=0 +animation/clip_62/end_frame=0 +animation/clip_62/loops=false +animation/clip_63/name="" +animation/clip_63/start_frame=0 +animation/clip_63/end_frame=0 +animation/clip_63/loops=false +animation/clip_64/name="" +animation/clip_64/start_frame=0 +animation/clip_64/end_frame=0 +animation/clip_64/loops=false +animation/clip_65/name="" +animation/clip_65/start_frame=0 +animation/clip_65/end_frame=0 +animation/clip_65/loops=false +animation/clip_66/name="" +animation/clip_66/start_frame=0 +animation/clip_66/end_frame=0 +animation/clip_66/loops=false +animation/clip_67/name="" +animation/clip_67/start_frame=0 +animation/clip_67/end_frame=0 +animation/clip_67/loops=false +animation/clip_68/name="" +animation/clip_68/start_frame=0 +animation/clip_68/end_frame=0 +animation/clip_68/loops=false +animation/clip_69/name="" +animation/clip_69/start_frame=0 +animation/clip_69/end_frame=0 +animation/clip_69/loops=false +animation/clip_70/name="" +animation/clip_70/start_frame=0 +animation/clip_70/end_frame=0 +animation/clip_70/loops=false +animation/clip_71/name="" +animation/clip_71/start_frame=0 +animation/clip_71/end_frame=0 +animation/clip_71/loops=false +animation/clip_72/name="" +animation/clip_72/start_frame=0 +animation/clip_72/end_frame=0 +animation/clip_72/loops=false +animation/clip_73/name="" +animation/clip_73/start_frame=0 +animation/clip_73/end_frame=0 +animation/clip_73/loops=false +animation/clip_74/name="" +animation/clip_74/start_frame=0 +animation/clip_74/end_frame=0 +animation/clip_74/loops=false +animation/clip_75/name="" +animation/clip_75/start_frame=0 +animation/clip_75/end_frame=0 +animation/clip_75/loops=false +animation/clip_76/name="" +animation/clip_76/start_frame=0 +animation/clip_76/end_frame=0 +animation/clip_76/loops=false +animation/clip_77/name="" +animation/clip_77/start_frame=0 +animation/clip_77/end_frame=0 +animation/clip_77/loops=false +animation/clip_78/name="" +animation/clip_78/start_frame=0 +animation/clip_78/end_frame=0 +animation/clip_78/loops=false +animation/clip_79/name="" +animation/clip_79/start_frame=0 +animation/clip_79/end_frame=0 +animation/clip_79/loops=false +animation/clip_80/name="" +animation/clip_80/start_frame=0 +animation/clip_80/end_frame=0 +animation/clip_80/loops=false +animation/clip_81/name="" +animation/clip_81/start_frame=0 +animation/clip_81/end_frame=0 +animation/clip_81/loops=false +animation/clip_82/name="" +animation/clip_82/start_frame=0 +animation/clip_82/end_frame=0 +animation/clip_82/loops=false +animation/clip_83/name="" +animation/clip_83/start_frame=0 +animation/clip_83/end_frame=0 +animation/clip_83/loops=false +animation/clip_84/name="" +animation/clip_84/start_frame=0 +animation/clip_84/end_frame=0 +animation/clip_84/loops=false +animation/clip_85/name="" +animation/clip_85/start_frame=0 +animation/clip_85/end_frame=0 +animation/clip_85/loops=false +animation/clip_86/name="" +animation/clip_86/start_frame=0 +animation/clip_86/end_frame=0 +animation/clip_86/loops=false +animation/clip_87/name="" +animation/clip_87/start_frame=0 +animation/clip_87/end_frame=0 +animation/clip_87/loops=false +animation/clip_88/name="" +animation/clip_88/start_frame=0 +animation/clip_88/end_frame=0 +animation/clip_88/loops=false +animation/clip_89/name="" +animation/clip_89/start_frame=0 +animation/clip_89/end_frame=0 +animation/clip_89/loops=false +animation/clip_90/name="" +animation/clip_90/start_frame=0 +animation/clip_90/end_frame=0 +animation/clip_90/loops=false +animation/clip_91/name="" +animation/clip_91/start_frame=0 +animation/clip_91/end_frame=0 +animation/clip_91/loops=false +animation/clip_92/name="" +animation/clip_92/start_frame=0 +animation/clip_92/end_frame=0 +animation/clip_92/loops=false +animation/clip_93/name="" +animation/clip_93/start_frame=0 +animation/clip_93/end_frame=0 +animation/clip_93/loops=false +animation/clip_94/name="" +animation/clip_94/start_frame=0 +animation/clip_94/end_frame=0 +animation/clip_94/loops=false +animation/clip_95/name="" +animation/clip_95/start_frame=0 +animation/clip_95/end_frame=0 +animation/clip_95/loops=false +animation/clip_96/name="" +animation/clip_96/start_frame=0 +animation/clip_96/end_frame=0 +animation/clip_96/loops=false +animation/clip_97/name="" +animation/clip_97/start_frame=0 +animation/clip_97/end_frame=0 +animation/clip_97/loops=false +animation/clip_98/name="" +animation/clip_98/start_frame=0 +animation/clip_98/end_frame=0 +animation/clip_98/loops=false +animation/clip_99/name="" +animation/clip_99/start_frame=0 +animation/clip_99/end_frame=0 +animation/clip_99/loops=false +animation/clip_100/name="" +animation/clip_100/start_frame=0 +animation/clip_100/end_frame=0 +animation/clip_100/loops=false +animation/clip_101/name="" +animation/clip_101/start_frame=0 +animation/clip_101/end_frame=0 +animation/clip_101/loops=false +animation/clip_102/name="" +animation/clip_102/start_frame=0 +animation/clip_102/end_frame=0 +animation/clip_102/loops=false +animation/clip_103/name="" +animation/clip_103/start_frame=0 +animation/clip_103/end_frame=0 +animation/clip_103/loops=false +animation/clip_104/name="" +animation/clip_104/start_frame=0 +animation/clip_104/end_frame=0 +animation/clip_104/loops=false +animation/clip_105/name="" +animation/clip_105/start_frame=0 +animation/clip_105/end_frame=0 +animation/clip_105/loops=false +animation/clip_106/name="" +animation/clip_106/start_frame=0 +animation/clip_106/end_frame=0 +animation/clip_106/loops=false +animation/clip_107/name="" +animation/clip_107/start_frame=0 +animation/clip_107/end_frame=0 +animation/clip_107/loops=false +animation/clip_108/name="" +animation/clip_108/start_frame=0 +animation/clip_108/end_frame=0 +animation/clip_108/loops=false +animation/clip_109/name="" +animation/clip_109/start_frame=0 +animation/clip_109/end_frame=0 +animation/clip_109/loops=false +animation/clip_110/name="" +animation/clip_110/start_frame=0 +animation/clip_110/end_frame=0 +animation/clip_110/loops=false +animation/clip_111/name="" +animation/clip_111/start_frame=0 +animation/clip_111/end_frame=0 +animation/clip_111/loops=false +animation/clip_112/name="" +animation/clip_112/start_frame=0 +animation/clip_112/end_frame=0 +animation/clip_112/loops=false +animation/clip_113/name="" +animation/clip_113/start_frame=0 +animation/clip_113/end_frame=0 +animation/clip_113/loops=false +animation/clip_114/name="" +animation/clip_114/start_frame=0 +animation/clip_114/end_frame=0 +animation/clip_114/loops=false +animation/clip_115/name="" +animation/clip_115/start_frame=0 +animation/clip_115/end_frame=0 +animation/clip_115/loops=false +animation/clip_116/name="" +animation/clip_116/start_frame=0 +animation/clip_116/end_frame=0 +animation/clip_116/loops=false +animation/clip_117/name="" +animation/clip_117/start_frame=0 +animation/clip_117/end_frame=0 +animation/clip_117/loops=false +animation/clip_118/name="" +animation/clip_118/start_frame=0 +animation/clip_118/end_frame=0 +animation/clip_118/loops=false +animation/clip_119/name="" +animation/clip_119/start_frame=0 +animation/clip_119/end_frame=0 +animation/clip_119/loops=false +animation/clip_120/name="" +animation/clip_120/start_frame=0 +animation/clip_120/end_frame=0 +animation/clip_120/loops=false +animation/clip_121/name="" +animation/clip_121/start_frame=0 +animation/clip_121/end_frame=0 +animation/clip_121/loops=false +animation/clip_122/name="" +animation/clip_122/start_frame=0 +animation/clip_122/end_frame=0 +animation/clip_122/loops=false +animation/clip_123/name="" +animation/clip_123/start_frame=0 +animation/clip_123/end_frame=0 +animation/clip_123/loops=false +animation/clip_124/name="" +animation/clip_124/start_frame=0 +animation/clip_124/end_frame=0 +animation/clip_124/loops=false +animation/clip_125/name="" +animation/clip_125/start_frame=0 +animation/clip_125/end_frame=0 +animation/clip_125/loops=false +animation/clip_126/name="" +animation/clip_126/start_frame=0 +animation/clip_126/end_frame=0 +animation/clip_126/loops=false +animation/clip_127/name="" +animation/clip_127/start_frame=0 +animation/clip_127/end_frame=0 +animation/clip_127/loops=false +animation/clip_128/name="" +animation/clip_128/start_frame=0 +animation/clip_128/end_frame=0 +animation/clip_128/loops=false +animation/clip_129/name="" +animation/clip_129/start_frame=0 +animation/clip_129/end_frame=0 +animation/clip_129/loops=false +animation/clip_130/name="" +animation/clip_130/start_frame=0 +animation/clip_130/end_frame=0 +animation/clip_130/loops=false +animation/clip_131/name="" +animation/clip_131/start_frame=0 +animation/clip_131/end_frame=0 +animation/clip_131/loops=false +animation/clip_132/name="" +animation/clip_132/start_frame=0 +animation/clip_132/end_frame=0 +animation/clip_132/loops=false +animation/clip_133/name="" +animation/clip_133/start_frame=0 +animation/clip_133/end_frame=0 +animation/clip_133/loops=false +animation/clip_134/name="" +animation/clip_134/start_frame=0 +animation/clip_134/end_frame=0 +animation/clip_134/loops=false +animation/clip_135/name="" +animation/clip_135/start_frame=0 +animation/clip_135/end_frame=0 +animation/clip_135/loops=false +animation/clip_136/name="" +animation/clip_136/start_frame=0 +animation/clip_136/end_frame=0 +animation/clip_136/loops=false +animation/clip_137/name="" +animation/clip_137/start_frame=0 +animation/clip_137/end_frame=0 +animation/clip_137/loops=false +animation/clip_138/name="" +animation/clip_138/start_frame=0 +animation/clip_138/end_frame=0 +animation/clip_138/loops=false +animation/clip_139/name="" +animation/clip_139/start_frame=0 +animation/clip_139/end_frame=0 +animation/clip_139/loops=false +animation/clip_140/name="" +animation/clip_140/start_frame=0 +animation/clip_140/end_frame=0 +animation/clip_140/loops=false +animation/clip_141/name="" +animation/clip_141/start_frame=0 +animation/clip_141/end_frame=0 +animation/clip_141/loops=false +animation/clip_142/name="" +animation/clip_142/start_frame=0 +animation/clip_142/end_frame=0 +animation/clip_142/loops=false +animation/clip_143/name="" +animation/clip_143/start_frame=0 +animation/clip_143/end_frame=0 +animation/clip_143/loops=false +animation/clip_144/name="" +animation/clip_144/start_frame=0 +animation/clip_144/end_frame=0 +animation/clip_144/loops=false +animation/clip_145/name="" +animation/clip_145/start_frame=0 +animation/clip_145/end_frame=0 +animation/clip_145/loops=false +animation/clip_146/name="" +animation/clip_146/start_frame=0 +animation/clip_146/end_frame=0 +animation/clip_146/loops=false +animation/clip_147/name="" +animation/clip_147/start_frame=0 +animation/clip_147/end_frame=0 +animation/clip_147/loops=false +animation/clip_148/name="" +animation/clip_148/start_frame=0 +animation/clip_148/end_frame=0 +animation/clip_148/loops=false +animation/clip_149/name="" +animation/clip_149/start_frame=0 +animation/clip_149/end_frame=0 +animation/clip_149/loops=false +animation/clip_150/name="" +animation/clip_150/start_frame=0 +animation/clip_150/end_frame=0 +animation/clip_150/loops=false +animation/clip_151/name="" +animation/clip_151/start_frame=0 +animation/clip_151/end_frame=0 +animation/clip_151/loops=false +animation/clip_152/name="" +animation/clip_152/start_frame=0 +animation/clip_152/end_frame=0 +animation/clip_152/loops=false +animation/clip_153/name="" +animation/clip_153/start_frame=0 +animation/clip_153/end_frame=0 +animation/clip_153/loops=false +animation/clip_154/name="" +animation/clip_154/start_frame=0 +animation/clip_154/end_frame=0 +animation/clip_154/loops=false +animation/clip_155/name="" +animation/clip_155/start_frame=0 +animation/clip_155/end_frame=0 +animation/clip_155/loops=false +animation/clip_156/name="" +animation/clip_156/start_frame=0 +animation/clip_156/end_frame=0 +animation/clip_156/loops=false +animation/clip_157/name="" +animation/clip_157/start_frame=0 +animation/clip_157/end_frame=0 +animation/clip_157/loops=false +animation/clip_158/name="" +animation/clip_158/start_frame=0 +animation/clip_158/end_frame=0 +animation/clip_158/loops=false +animation/clip_159/name="" +animation/clip_159/start_frame=0 +animation/clip_159/end_frame=0 +animation/clip_159/loops=false +animation/clip_160/name="" +animation/clip_160/start_frame=0 +animation/clip_160/end_frame=0 +animation/clip_160/loops=false +animation/clip_161/name="" +animation/clip_161/start_frame=0 +animation/clip_161/end_frame=0 +animation/clip_161/loops=false +animation/clip_162/name="" +animation/clip_162/start_frame=0 +animation/clip_162/end_frame=0 +animation/clip_162/loops=false +animation/clip_163/name="" +animation/clip_163/start_frame=0 +animation/clip_163/end_frame=0 +animation/clip_163/loops=false +animation/clip_164/name="" +animation/clip_164/start_frame=0 +animation/clip_164/end_frame=0 +animation/clip_164/loops=false +animation/clip_165/name="" +animation/clip_165/start_frame=0 +animation/clip_165/end_frame=0 +animation/clip_165/loops=false +animation/clip_166/name="" +animation/clip_166/start_frame=0 +animation/clip_166/end_frame=0 +animation/clip_166/loops=false +animation/clip_167/name="" +animation/clip_167/start_frame=0 +animation/clip_167/end_frame=0 +animation/clip_167/loops=false +animation/clip_168/name="" +animation/clip_168/start_frame=0 +animation/clip_168/end_frame=0 +animation/clip_168/loops=false +animation/clip_169/name="" +animation/clip_169/start_frame=0 +animation/clip_169/end_frame=0 +animation/clip_169/loops=false +animation/clip_170/name="" +animation/clip_170/start_frame=0 +animation/clip_170/end_frame=0 +animation/clip_170/loops=false +animation/clip_171/name="" +animation/clip_171/start_frame=0 +animation/clip_171/end_frame=0 +animation/clip_171/loops=false +animation/clip_172/name="" +animation/clip_172/start_frame=0 +animation/clip_172/end_frame=0 +animation/clip_172/loops=false +animation/clip_173/name="" +animation/clip_173/start_frame=0 +animation/clip_173/end_frame=0 +animation/clip_173/loops=false +animation/clip_174/name="" +animation/clip_174/start_frame=0 +animation/clip_174/end_frame=0 +animation/clip_174/loops=false +animation/clip_175/name="" +animation/clip_175/start_frame=0 +animation/clip_175/end_frame=0 +animation/clip_175/loops=false +animation/clip_176/name="" +animation/clip_176/start_frame=0 +animation/clip_176/end_frame=0 +animation/clip_176/loops=false +animation/clip_177/name="" +animation/clip_177/start_frame=0 +animation/clip_177/end_frame=0 +animation/clip_177/loops=false +animation/clip_178/name="" +animation/clip_178/start_frame=0 +animation/clip_178/end_frame=0 +animation/clip_178/loops=false +animation/clip_179/name="" +animation/clip_179/start_frame=0 +animation/clip_179/end_frame=0 +animation/clip_179/loops=false +animation/clip_180/name="" +animation/clip_180/start_frame=0 +animation/clip_180/end_frame=0 +animation/clip_180/loops=false +animation/clip_181/name="" +animation/clip_181/start_frame=0 +animation/clip_181/end_frame=0 +animation/clip_181/loops=false +animation/clip_182/name="" +animation/clip_182/start_frame=0 +animation/clip_182/end_frame=0 +animation/clip_182/loops=false +animation/clip_183/name="" +animation/clip_183/start_frame=0 +animation/clip_183/end_frame=0 +animation/clip_183/loops=false +animation/clip_184/name="" +animation/clip_184/start_frame=0 +animation/clip_184/end_frame=0 +animation/clip_184/loops=false +animation/clip_185/name="" +animation/clip_185/start_frame=0 +animation/clip_185/end_frame=0 +animation/clip_185/loops=false +animation/clip_186/name="" +animation/clip_186/start_frame=0 +animation/clip_186/end_frame=0 +animation/clip_186/loops=false +animation/clip_187/name="" +animation/clip_187/start_frame=0 +animation/clip_187/end_frame=0 +animation/clip_187/loops=false +animation/clip_188/name="" +animation/clip_188/start_frame=0 +animation/clip_188/end_frame=0 +animation/clip_188/loops=false +animation/clip_189/name="" +animation/clip_189/start_frame=0 +animation/clip_189/end_frame=0 +animation/clip_189/loops=false +animation/clip_190/name="" +animation/clip_190/start_frame=0 +animation/clip_190/end_frame=0 +animation/clip_190/loops=false +animation/clip_191/name="" +animation/clip_191/start_frame=0 +animation/clip_191/end_frame=0 +animation/clip_191/loops=false +animation/clip_192/name="" +animation/clip_192/start_frame=0 +animation/clip_192/end_frame=0 +animation/clip_192/loops=false +animation/clip_193/name="" +animation/clip_193/start_frame=0 +animation/clip_193/end_frame=0 +animation/clip_193/loops=false +animation/clip_194/name="" +animation/clip_194/start_frame=0 +animation/clip_194/end_frame=0 +animation/clip_194/loops=false +animation/clip_195/name="" +animation/clip_195/start_frame=0 +animation/clip_195/end_frame=0 +animation/clip_195/loops=false +animation/clip_196/name="" +animation/clip_196/start_frame=0 +animation/clip_196/end_frame=0 +animation/clip_196/loops=false +animation/clip_197/name="" +animation/clip_197/start_frame=0 +animation/clip_197/end_frame=0 +animation/clip_197/loops=false +animation/clip_198/name="" +animation/clip_198/start_frame=0 +animation/clip_198/end_frame=0 +animation/clip_198/loops=false +animation/clip_199/name="" +animation/clip_199/start_frame=0 +animation/clip_199/end_frame=0 +animation/clip_199/loops=false +animation/clip_200/name="" +animation/clip_200/start_frame=0 +animation/clip_200/end_frame=0 +animation/clip_200/loops=false +animation/clip_201/name="" +animation/clip_201/start_frame=0 +animation/clip_201/end_frame=0 +animation/clip_201/loops=false +animation/clip_202/name="" +animation/clip_202/start_frame=0 +animation/clip_202/end_frame=0 +animation/clip_202/loops=false +animation/clip_203/name="" +animation/clip_203/start_frame=0 +animation/clip_203/end_frame=0 +animation/clip_203/loops=false +animation/clip_204/name="" +animation/clip_204/start_frame=0 +animation/clip_204/end_frame=0 +animation/clip_204/loops=false +animation/clip_205/name="" +animation/clip_205/start_frame=0 +animation/clip_205/end_frame=0 +animation/clip_205/loops=false +animation/clip_206/name="" +animation/clip_206/start_frame=0 +animation/clip_206/end_frame=0 +animation/clip_206/loops=false +animation/clip_207/name="" +animation/clip_207/start_frame=0 +animation/clip_207/end_frame=0 +animation/clip_207/loops=false +animation/clip_208/name="" +animation/clip_208/start_frame=0 +animation/clip_208/end_frame=0 +animation/clip_208/loops=false +animation/clip_209/name="" +animation/clip_209/start_frame=0 +animation/clip_209/end_frame=0 +animation/clip_209/loops=false +animation/clip_210/name="" +animation/clip_210/start_frame=0 +animation/clip_210/end_frame=0 +animation/clip_210/loops=false +animation/clip_211/name="" +animation/clip_211/start_frame=0 +animation/clip_211/end_frame=0 +animation/clip_211/loops=false +animation/clip_212/name="" +animation/clip_212/start_frame=0 +animation/clip_212/end_frame=0 +animation/clip_212/loops=false +animation/clip_213/name="" +animation/clip_213/start_frame=0 +animation/clip_213/end_frame=0 +animation/clip_213/loops=false +animation/clip_214/name="" +animation/clip_214/start_frame=0 +animation/clip_214/end_frame=0 +animation/clip_214/loops=false +animation/clip_215/name="" +animation/clip_215/start_frame=0 +animation/clip_215/end_frame=0 +animation/clip_215/loops=false +animation/clip_216/name="" +animation/clip_216/start_frame=0 +animation/clip_216/end_frame=0 +animation/clip_216/loops=false +animation/clip_217/name="" +animation/clip_217/start_frame=0 +animation/clip_217/end_frame=0 +animation/clip_217/loops=false +animation/clip_218/name="" +animation/clip_218/start_frame=0 +animation/clip_218/end_frame=0 +animation/clip_218/loops=false +animation/clip_219/name="" +animation/clip_219/start_frame=0 +animation/clip_219/end_frame=0 +animation/clip_219/loops=false +animation/clip_220/name="" +animation/clip_220/start_frame=0 +animation/clip_220/end_frame=0 +animation/clip_220/loops=false +animation/clip_221/name="" +animation/clip_221/start_frame=0 +animation/clip_221/end_frame=0 +animation/clip_221/loops=false +animation/clip_222/name="" +animation/clip_222/start_frame=0 +animation/clip_222/end_frame=0 +animation/clip_222/loops=false +animation/clip_223/name="" +animation/clip_223/start_frame=0 +animation/clip_223/end_frame=0 +animation/clip_223/loops=false +animation/clip_224/name="" +animation/clip_224/start_frame=0 +animation/clip_224/end_frame=0 +animation/clip_224/loops=false +animation/clip_225/name="" +animation/clip_225/start_frame=0 +animation/clip_225/end_frame=0 +animation/clip_225/loops=false +animation/clip_226/name="" +animation/clip_226/start_frame=0 +animation/clip_226/end_frame=0 +animation/clip_226/loops=false +animation/clip_227/name="" +animation/clip_227/start_frame=0 +animation/clip_227/end_frame=0 +animation/clip_227/loops=false +animation/clip_228/name="" +animation/clip_228/start_frame=0 +animation/clip_228/end_frame=0 +animation/clip_228/loops=false +animation/clip_229/name="" +animation/clip_229/start_frame=0 +animation/clip_229/end_frame=0 +animation/clip_229/loops=false +animation/clip_230/name="" +animation/clip_230/start_frame=0 +animation/clip_230/end_frame=0 +animation/clip_230/loops=false +animation/clip_231/name="" +animation/clip_231/start_frame=0 +animation/clip_231/end_frame=0 +animation/clip_231/loops=false +animation/clip_232/name="" +animation/clip_232/start_frame=0 +animation/clip_232/end_frame=0 +animation/clip_232/loops=false +animation/clip_233/name="" +animation/clip_233/start_frame=0 +animation/clip_233/end_frame=0 +animation/clip_233/loops=false +animation/clip_234/name="" +animation/clip_234/start_frame=0 +animation/clip_234/end_frame=0 +animation/clip_234/loops=false +animation/clip_235/name="" +animation/clip_235/start_frame=0 +animation/clip_235/end_frame=0 +animation/clip_235/loops=false +animation/clip_236/name="" +animation/clip_236/start_frame=0 +animation/clip_236/end_frame=0 +animation/clip_236/loops=false +animation/clip_237/name="" +animation/clip_237/start_frame=0 +animation/clip_237/end_frame=0 +animation/clip_237/loops=false +animation/clip_238/name="" +animation/clip_238/start_frame=0 +animation/clip_238/end_frame=0 +animation/clip_238/loops=false +animation/clip_239/name="" +animation/clip_239/start_frame=0 +animation/clip_239/end_frame=0 +animation/clip_239/loops=false +animation/clip_240/name="" +animation/clip_240/start_frame=0 +animation/clip_240/end_frame=0 +animation/clip_240/loops=false +animation/clip_241/name="" +animation/clip_241/start_frame=0 +animation/clip_241/end_frame=0 +animation/clip_241/loops=false +animation/clip_242/name="" +animation/clip_242/start_frame=0 +animation/clip_242/end_frame=0 +animation/clip_242/loops=false +animation/clip_243/name="" +animation/clip_243/start_frame=0 +animation/clip_243/end_frame=0 +animation/clip_243/loops=false +animation/clip_244/name="" +animation/clip_244/start_frame=0 +animation/clip_244/end_frame=0 +animation/clip_244/loops=false +animation/clip_245/name="" +animation/clip_245/start_frame=0 +animation/clip_245/end_frame=0 +animation/clip_245/loops=false +animation/clip_246/name="" +animation/clip_246/start_frame=0 +animation/clip_246/end_frame=0 +animation/clip_246/loops=false +animation/clip_247/name="" +animation/clip_247/start_frame=0 +animation/clip_247/end_frame=0 +animation/clip_247/loops=false +animation/clip_248/name="" +animation/clip_248/start_frame=0 +animation/clip_248/end_frame=0 +animation/clip_248/loops=false +animation/clip_249/name="" +animation/clip_249/start_frame=0 +animation/clip_249/end_frame=0 +animation/clip_249/loops=false +animation/clip_250/name="" +animation/clip_250/start_frame=0 +animation/clip_250/end_frame=0 +animation/clip_250/loops=false +animation/clip_251/name="" +animation/clip_251/start_frame=0 +animation/clip_251/end_frame=0 +animation/clip_251/loops=false +animation/clip_252/name="" +animation/clip_252/start_frame=0 +animation/clip_252/end_frame=0 +animation/clip_252/loops=false +animation/clip_253/name="" +animation/clip_253/start_frame=0 +animation/clip_253/end_frame=0 +animation/clip_253/loops=false +animation/clip_254/name="" +animation/clip_254/start_frame=0 +animation/clip_254/end_frame=0 +animation/clip_254/loops=false +animation/clip_255/name="" +animation/clip_255/start_frame=0 +animation/clip_255/end_frame=0 +animation/clip_255/loops=false +animation/clip_256/name="" +animation/clip_256/start_frame=0 +animation/clip_256/end_frame=0 +animation/clip_256/loops=false diff --git a/player/weapons/AK-47/AK47_BARREL.material b/player/weapons/AK-47/AK47_BARREL.material new file mode 100644 index 0000000..d3da762 Binary files /dev/null and b/player/weapons/AK-47/AK47_BARREL.material differ diff --git a/player/weapons/AK-47/AK47_BODY.material b/player/weapons/AK-47/AK47_BODY.material new file mode 100644 index 0000000..6677760 Binary files /dev/null and b/player/weapons/AK-47/AK47_BODY.material differ diff --git a/player/weapons/AK-47/AK47_BOLT.material b/player/weapons/AK-47/AK47_BOLT.material new file mode 100644 index 0000000..109715c Binary files /dev/null and b/player/weapons/AK-47/AK47_BOLT.material differ diff --git a/player/weapons/AK-47/AK47_FSIGHT.material b/player/weapons/AK-47/AK47_FSIGHT.material new file mode 100644 index 0000000..73abf67 Binary files /dev/null and b/player/weapons/AK-47/AK47_FSIGHT.material differ diff --git a/player/weapons/AK-47/AK47_MAG.material b/player/weapons/AK-47/AK47_MAG.material new file mode 100644 index 0000000..95e5b41 Binary files /dev/null and b/player/weapons/AK-47/AK47_MAG.material differ diff --git a/player/weapons/Laser/Laser.gd b/player/weapons/Laser/Laser.gd new file mode 100644 index 0000000..995656a --- /dev/null +++ b/player/weapons/Laser/Laser.gd @@ -0,0 +1,16 @@ +extends Spatial + +func shoot(player, shoot_origin, shoot_dir, col): + # Shoot a projectile + var bullet = preload("res://player/bullet/bullet.tscn").instance() + player.get_parent().add_child(bullet) # Not a child of our player + bullet.global_transform.origin = shoot_origin + # If we don't rotate the bullets there is no useful way to control the particles .. + bullet.look_at(shoot_origin + shoot_dir, Vector3.UP) + bullet.add_collision_exception_with(player) + var shoot_particle = $ShootParticle + shoot_particle.restart() + shoot_particle.emitting = true + var muzzle_particle = $MuzzleFlash + muzzle_particle.restart() + muzzle_particle.emitting = true diff --git a/player/weapons/Pistol/ShitPistol.gd b/player/weapons/Pistol/ShitPistol.gd new file mode 100644 index 0000000..f0957fa --- /dev/null +++ b/player/weapons/Pistol/ShitPistol.gd @@ -0,0 +1,13 @@ +extends Spatial + +func shoot(player, shoot_origin, shoot_dir, col): + if col: + if col.collider and col.collider.has_method("hit"): + col.collider.hit(col) + var shoot_particle = player.get_node("GlobalShootParticle") # Don't want it as child of player model + shoot_particle.global_transform.origin = shoot_origin + shoot_dir # An attempt to put it further forward than shoot_origin + shoot_particle.look_at(shoot_origin + 2*shoot_dir, Vector3.UP) # ^ + shoot_particle.emitting = true + var muzzle_particle = $MuzzleFlash + muzzle_particle.restart() + muzzle_particle.emitting = true diff --git a/player/weapons/weapon.tscn b/player/weapons/weapon.tscn new file mode 100644 index 0000000..a19e5c8 --- /dev/null +++ b/player/weapons/weapon.tscn @@ -0,0 +1,175 @@ +[gd_scene load_steps=24 format=2] + +[ext_resource path="res://player/weapons/AK-47/AK-47.glb" type="PackedScene" id=1] +[ext_resource path="res://player/audio/shoot.wav" type="AudioStream" id=2] +[ext_resource path="res://player/weapons/Pistol/ShitPistol.gd" type="Script" id=3] +[ext_resource path="res://player/audio/land.wav" type="AudioStream" id=4] +[ext_resource path="res://effects_shared/bullet/effect/FlarePolar.png" type="Texture" id=5] +[ext_resource path="res://player/bullet/bullet_material.tres" type="Material" id=6] +[ext_resource path="res://player/weapons/Laser/Laser.gd" type="Script" id=7] +[ext_resource path="res://player/model/muzzle_flash_particle_mesh_Cone.mesh" type="ArrayMesh" id=8] +[ext_resource path="res://player/weapons/AK-47/AK-47.gd" type="Script" id=9] + +[sub_resource type="SpatialMaterial" id=8] +flags_transparent = true +flags_unshaded = true +vertex_color_use_as_albedo = true +params_cull_mode = 2 +albedo_texture = ExtResource( 5 ) + +[sub_resource type="Gradient" id=17] +offsets = PoolRealArray( 0.453416, 1 ) +colors = PoolColorArray( 1, 0.578387, 0.0234375, 1, 0.875, 0.888672, 1, 0.305882 ) + +[sub_resource type="GradientTexture" id=58] +gradient = SubResource( 17 ) +width = 32 + +[sub_resource type="Curve" id=18] +_data = [ Vector2( 0, 0 ), 0.0, 0.0, 0, 0, Vector2( 0.791139, 0.990909 ), 0.0, 0.0, 0, 0, Vector2( 1, 0 ), 0.0, 0.0, 0, 0 ] + +[sub_resource type="CurveTexture" id=59] +width = 64 +curve = SubResource( 18 ) + +[sub_resource type="ParticlesMaterial" id=46] +gravity = Vector3( 0, 0, 0 ) +angle = -4.0 +angle_random = 1.0 +scale = 0.15 +scale_curve = SubResource( 59 ) +color_ramp = SubResource( 58 ) + +[sub_resource type="ParticlesMaterial" id=50] +flag_align_y = true +direction = Vector3( 0, 0, -1 ) +spread = 15.0 +gravity = Vector3( 0, -3, 0 ) +initial_velocity = 3.0 + +[sub_resource type="SphereMesh" id=51] +radius = 0.003 +height = 0.02 + +[sub_resource type="SpatialMaterial" id=52] +flags_transparent = true +flags_unshaded = true +vertex_color_use_as_albedo = true +params_cull_mode = 2 +albedo_texture = ExtResource( 5 ) + +[sub_resource type="Gradient" id=53] +offsets = PoolRealArray( 0.325926, 1 ) +colors = PoolColorArray( 0.0507812, 0.955505, 1, 1, 0.875, 0.888672, 1, 0.305882 ) + +[sub_resource type="GradientTexture" id=43] +gradient = SubResource( 53 ) +width = 32 + +[sub_resource type="Curve" id=54] +_data = [ Vector2( 0, 0 ), 0.0, 0.0, 0, 0, Vector2( 0.791139, 0.990909 ), 0.0, 0.0, 0, 0, Vector2( 1, 0 ), 0.0, 0.0, 0, 0 ] + +[sub_resource type="CurveTexture" id=45] +width = 64 +curve = SubResource( 54 ) + +[sub_resource type="ParticlesMaterial" id=55] +gravity = Vector3( 0, 0, 0 ) +angle = -4.0 +angle_random = 1.0 +scale = 0.3 +scale_curve = SubResource( 45 ) +color_ramp = SubResource( 43 ) + +[node name="Weapon" type="Spatial"] + +[node name="AK-47" type="Spatial" parent="."] +script = ExtResource( 9 ) + +[node name="model" parent="AK-47" instance=ExtResource( 1 )] +transform = Transform( 0.00174151, -0.024939, -0.000128363, 0.0014002, 0.000226249, -0.0249598, 0.0249, 0.0017315, 0.00141253, 0.0113227, 0.209498, -0.0320063 ) + +[node name="Shoot" type="AudioStreamPlayer" parent="AK-47"] +stream = ExtResource( 4 ) + +[node name="MuzzleFlash" type="Particles" parent="AK-47"] +transform = Transform( -1, 8.74228e-08, 0, -8.74228e-08, -1, 0, 0, 0, 1, -0.101477, 0.629052, -0.0833533 ) +material_override = SubResource( 8 ) +emitting = false +amount = 1 +lifetime = 0.1 +one_shot = true +explosiveness = 1.0 +process_material = SubResource( 46 ) +draw_pass_1 = ExtResource( 8 ) + +[node name="Laser" type="Spatial" parent="."] +visible = false +script = ExtResource( 7 ) + +[node name="Shoot" type="AudioStreamPlayer" parent="Laser"] +stream = ExtResource( 2 ) + +[node name="ShootParticle" type="Particles" parent="Laser"] +transform = Transform( 1, 2.04891e-08, 0, -1.40447e-15, -4.37114e-08, -1, 3.21306e-08, 1, -3.81234e-08, -0.0632257, 0.1192, 0 ) +material_override = ExtResource( 6 ) +emitting = false +amount = 10 +lifetime = 0.3 +one_shot = true +explosiveness = 0.79 +local_coords = false +process_material = SubResource( 50 ) +draw_pass_1 = SubResource( 51 ) + +[node name="MuzzleFlash" type="Particles" parent="Laser"] +transform = Transform( 1, 0, -2.00234e-08, 2.98023e-08, -1, 9.12089e-08, 1.21072e-08, -8.74836e-08, -1, -0.0632257, 0.1192, 0 ) +material_override = SubResource( 52 ) +emitting = false +amount = 1 +lifetime = 0.1 +one_shot = true +explosiveness = 1.0 +process_material = SubResource( 55 ) +draw_pass_1 = ExtResource( 8 ) + +[node name="Pistol" type="Spatial" parent="."] +visible = false + +[node name="model" parent="Pistol" instance=ExtResource( 1 )] +transform = Transform( 0.00285472, -0.024759, -0.00423278, 0.0213734, 0.0034537, -0.027, 0.0126502, -0.00024799, 0.0465734, -0.0260041, 0.209498, -0.0660405 ) + +[node name="Shoot" type="AudioStreamPlayer" parent="Pistol"] +stream = ExtResource( 4 ) + +[node name="MuzzleFlash" type="Particles" parent="Pistol"] +transform = Transform( -1, 8.74228e-08, 0, -8.74228e-08, -1, 0, 0, 0, 1, -0.101477, 0.629052, -0.0833533 ) +material_override = SubResource( 8 ) +emitting = false +amount = 1 +lifetime = 0.1 +one_shot = true +explosiveness = 1.0 +process_material = SubResource( 46 ) +draw_pass_1 = ExtResource( 8 ) + +[node name="ShitPistol" type="Spatial" parent="."] +visible = false +script = ExtResource( 3 ) + +[node name="model" parent="ShitPistol" instance=ExtResource( 1 )] +transform = Transform( 0.000906627, -0.0195994, 0.00271674, 0.00204239, -0.00987641, -0.00533895, 0.0248999, 0.00152373, 0.000339003, -0.0260041, 0.209498, -0.0660405 ) + +[node name="Shoot" type="AudioStreamPlayer" parent="ShitPistol"] +stream = ExtResource( 4 ) + +[node name="MuzzleFlash" type="Particles" parent="ShitPistol"] +transform = Transform( -1, 8.74228e-08, 0, -8.74228e-08, -1, 0, 0, 0, 1, -0.101477, 0.284348, -0.0833533 ) +material_override = SubResource( 8 ) +emitting = false +amount = 1 +lifetime = 0.1 +one_shot = true +explosiveness = 1.0 +process_material = SubResource( 46 ) +draw_pass_1 = ExtResource( 8 ) diff --git a/project.godot b/project.godot new file mode 100644 index 0000000..b5d5710 --- /dev/null +++ b/project.godot @@ -0,0 +1,288 @@ +; Engine configuration file. +; It's best edited using the editor UI and not directly, +; since the parameters that go here are not all obvious. +; +; Format: +; [section] ; section goes between [] +; param=value ; assign values to parameters + +config_version=4 + +_global_script_classes=[ { +"base": "", +"class": "GitAPI", +"language": "NativeScript", +"path": "res://addons/godot-git-plugin/git_api.gdns" +} ] +_global_script_class_icons={ +"GitAPI": "" +} + +[application] + +config/name="Escape from Catalunya" +config/description="Escape from Catalunya" +run/main_scene="res://main/main.tscn" +config/icon="res://icon.png" +config/windows_native_icon="res://icon.ico" + +[autoload] + +Settings="*res://menu/settings.gd" +ParticleCache="*res://level/particle_cache.tscn" + +[display] + +window/size/width=1920 +window/size/height=1080 +window/size/fullscreen=true +window/stretch/mode="2d" +window/stretch/aspect="keep_width" + +[gdnative] + +singletons=[ "res://addons/godot-git-plugin/git_api.gdnlib" ] + +[global] + +animation=false + +[input] + +ui_accept={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777221,"physical_scancode":0,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777222,"physical_scancode":0,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":32,"physical_scancode":0,"unicode":0,"echo":false,"script":null) +, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":0,"pressure":0.0,"pressed":false,"script":null) + ] +} +ui_select={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":32,"physical_scancode":0,"unicode":0,"echo":false,"script":null) +, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":3,"pressure":0.0,"pressed":false,"script":null) + ] +} +ui_cancel={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777217,"physical_scancode":0,"unicode":0,"echo":false,"script":null) +, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":1,"pressure":0.0,"pressed":false,"script":null) + ] +} +ui_focus_next={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777218,"physical_scancode":0,"unicode":0,"echo":false,"script":null) + ] +} +ui_focus_prev={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":true,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777218,"physical_scancode":0,"unicode":0,"echo":false,"script":null) + ] +} +ui_left={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777231,"physical_scancode":0,"unicode":0,"echo":false,"script":null) +, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":14,"pressure":0.0,"pressed":false,"script":null) +, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":-1.0,"script":null) + ] +} +ui_right={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777233,"physical_scancode":0,"unicode":0,"echo":false,"script":null) +, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":15,"pressure":0.0,"pressed":false,"script":null) +, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":1.0,"script":null) + ] +} +ui_up={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777232,"physical_scancode":0,"unicode":0,"echo":false,"script":null) +, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":12,"pressure":0.0,"pressed":false,"script":null) +, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":1,"axis_value":-1.0,"script":null) + ] +} +ui_down={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777234,"physical_scancode":0,"unicode":0,"echo":false,"script":null) +, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":13,"pressure":0.0,"pressed":false,"script":null) +, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":1,"axis_value":1.0,"script":null) + ] +} +ui_page_up={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777235,"physical_scancode":0,"unicode":0,"echo":false,"script":null) + ] +} +ui_page_down={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777236,"physical_scancode":0,"unicode":0,"echo":false,"script":null) + ] +} +ui_home={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777229,"physical_scancode":0,"unicode":0,"echo":false,"script":null) + ] +} +ui_end={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777230,"physical_scancode":0,"unicode":0,"echo":false,"script":null) + ] +} +move_left={ +"deadzone": 0.5, +"events": [ Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":-1.0,"script":null) +, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":14,"pressure":0.0,"pressed":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777231,"physical_scancode":0,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":0,"physical_scancode":65,"unicode":0,"echo":false,"script":null) + ] +} +move_right={ +"deadzone": 0.5, +"events": [ Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":1.0,"script":null) +, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":15,"pressure":0.0,"pressed":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777233,"physical_scancode":0,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":0,"physical_scancode":68,"unicode":0,"echo":false,"script":null) + ] +} +move_forward={ +"deadzone": 0.5, +"events": [ Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":1,"axis_value":-1.0,"script":null) +, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":12,"pressure":0.0,"pressed":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777232,"physical_scancode":0,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":0,"physical_scancode":87,"unicode":0,"echo":false,"script":null) + ] +} +move_back={ +"deadzone": 0.5, +"events": [ Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":1,"axis_value":1.0,"script":null) +, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":13,"pressure":0.0,"pressed":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777234,"physical_scancode":0,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":0,"physical_scancode":83,"unicode":0,"echo":false,"script":null) + ] +} +jump={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":32,"physical_scancode":0,"unicode":0,"echo":false,"script":null) +, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":0,"pressure":0.0,"pressed":false,"script":null) + ] +} +aim={ +"deadzone": 0.5, +"events": [ Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"button_mask":0,"position":Vector2( 0, 0 ),"global_position":Vector2( 0, 0 ),"factor":1.0,"button_index":2,"pressed":false,"doubleclick":false,"script":null) +, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":6,"pressure":0.0,"pressed":false,"script":null) + ] +} +shoot={ +"deadzone": 0.5, +"events": [ Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"button_mask":0,"position":Vector2( 0, 0 ),"global_position":Vector2( 0, 0 ),"factor":1.0,"button_index":1,"pressed":false,"doubleclick":false,"script":null) +, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":7,"pressure":0.0,"pressed":false,"script":null) + ] +} +reload={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":0,"physical_scancode":82,"unicode":0,"echo":false,"script":null) + ] +} +quit={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777217,"physical_scancode":0,"unicode":0,"echo":false,"script":null) +, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":11,"pressure":0.0,"pressed":false,"script":null) + ] +} +view_left={ +"deadzone": 0.2, +"events": [ Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":2,"axis_value":-1.0,"script":null) + ] +} +view_right={ +"deadzone": 0.2, +"events": [ Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":2,"axis_value":1.0,"script":null) + ] +} +view_up={ +"deadzone": 0.2, +"events": [ Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":3,"axis_value":1.0,"script":null) + ] +} +view_down={ +"deadzone": 0.2, +"events": [ Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":3,"axis_value":-1.0,"script":null) + ] +} +toggle_fullscreen={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":true,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777221,"physical_scancode":0,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777254,"physical_scancode":0,"unicode":0,"echo":false,"script":null) + ] +} +toggle_debug={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777246,"physical_scancode":0,"unicode":0,"echo":false,"script":null) + ] +} +switch_weapon1={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":0,"physical_scancode":49,"unicode":0,"echo":false,"script":null) + ] +} +switch_weapon2={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":0,"physical_scancode":50,"unicode":0,"echo":false,"script":null) + ] +} +switch_weapon3={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":0,"physical_scancode":51,"unicode":0,"echo":false,"script":null) + ] +} +switch_weapon4={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":0,"physical_scancode":52,"unicode":0,"echo":false,"script":null) + ] +} +switch_weapon5={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":0,"physical_scancode":53,"unicode":0,"echo":false,"script":null) + ] +} +switch_weapon6={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":0,"physical_scancode":54,"unicode":0,"echo":false,"script":null) + ] +} +switch_weapon7={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":0,"physical_scancode":55,"unicode":0,"echo":false,"script":null) + ] +} +switch_weapon8={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":0,"physical_scancode":56,"unicode":0,"echo":false,"script":null) + ] +} +switch_weapon9={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":0,"physical_scancode":57,"unicode":0,"echo":false,"script":null) + ] +} +switch_weapon10={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":0,"physical_scancode":48,"unicode":0,"echo":false,"script":null) + ] +} + +[layer_names] + +3d_physics/layer_1="Terrain" +3d_physics/layer_2="Player Bound" +3d_physics/layer_3="Enemies Bound" +3d_physics/layer_5="Blocking Just Movement" +3d_physics/layer_6="Player Hitbox" +3d_physics/layer_7="Enemies Hitbox" + +[rendering] + +vram_compression/import_etc2=false +quality/shadow_atlas/size=2048 +quality/filters/msaa=2 +environment/default_environment="res://default_env.tres" +quality/dynamic_fonts/use_oversampling=false