Compare commits

..
Author SHA1 Message Date
apion 6d67256632 Added delta functions and some cleanup 2024-11-03 01:55:44 -04:00
apion be0753109c Merge branch 'refs/heads/implement_pokemon' into action-effects-improved 2024-11-02 03:48:43 -04:00
apion 0ee36b705e Merge remote-tracking branch 'refs/remotes/origin/move-effects' into action-effects-improved 2024-11-02 03:48:34 -04:00
apion 396a827b37 Added molang query for distance between entities 2024-11-02 03:01:56 -04:00
apion b146892b50 Exposed entity info in action effect 2024-11-02 00:17:09 -04:00
apion 5797838711 Moved to molang for pose conditions in charmander 2024-11-01 21:27:53 -04:00
Tyzillion e048e8a58d Updated particles for Status Effects, Stat buffs/debuffs, Protect, Sand Attack, Quick Attack, and Gastly.
Added the "top" universal locator.
2024-10-31 10:02:34 -04:00
Tyzillion 3656513255 Merge branch 'main' of https://gitlab.com/cable-mc/cobblemon into move-effects
# Conflicts:
#	common/src/main/resources/assets/cobblemon/sounds.json
2024-10-31 07:52:01 -04:00
Wi2tert 2734f1d00c Update Bulbasaur Ivysaur Venusaur Animation 2024-10-31 12:20:53 +08:00
tmetcalfe89 e66069b270 swapped smeargle colors right way around 2024-10-30 01:49:28 -07:00
tmetcalfe89 a661575451 de-dyed smeargle 2024-10-29 23:16:22 -07:00
Carmendar a23017cd1f Updated scaling of a handful of pokemon, gave pory line dummy sleep cries, fixed mantine antennae, and onix has math.mod now.
- Removed Herobrine.
2024-10-29 22:13:20 -05:00
tmetcalfe89 0df19ce18a integrated retro's changes
Fixed Bellsprout's GEO ("arns" to "arms", "foor" to "foot", etcetera).
Altered Weepinbell's Scale and Hitbox
Altered Victreebel's Walk Speed and Hitbox.
2024-10-29 15:22:53 -07:00
Wi2ter 5a751546ec Update Changelog 2024-10-29 18:38:25 +08:00
Carmendar ee9e1cabc1 remodeled Poliwhirl, Poliwrath, Riolu & Lucario. Added animations for Bagon line, Shellder line, Kecleon, Furret & Spinda. Updated changelog.
- Removed Herobrine.
2024-10-29 01:44:02 -05:00
Wi2ter d78b46155f Update Klink Line animation 2024-10-28 17:26:14 +08:00
Wi2ter 1afd61d517 Update Dreepy Drakloak Animation 2024-10-28 16:27:57 +08:00
Carmendar 97a5083ff5 Updated swim speeds for some water mons & merged main into implement. 2024-10-27 19:43:51 -05:00
Carmendar 0d31e74790 Merge branch 'main' into implement_pokemon 2024-10-27 17:42:35 -05:00
Carmendar 02214196f4 Merge remote-tracking branch 'origin/main' 2024-10-27 17:40:11 -05:00
Carmendar aae268cfc5 New water pokemon can actually water now. 2024-10-27 17:05:46 -05:00
Carmendar 20f37d8799 Third coming of Klawf. (fixed the cry for real this time. 2024-10-27 15:52:46 -05:00
Carmendar 0b825bcda3 The second coming of Klawf (its cry), animation updates for a handful of mons, Portrait/Picture & scale fixes for a handful of mons, added species feature for three-segment dudunsparce, added dummy animation file for sleep cries, and added cries for Magikarp & Gyarados.
- Removed Herobrine.
2024-10-27 15:48:29 -05:00
GenotypeXD-Dev aba3bd22c7 Merge remote-tracking branch 'origin/implement_pokemon' into implement_pokemon 2024-10-26 22:02:04 -06:00
GenotypeXD-Dev b1fc33f5a1 Added Klawf 2024-10-26 22:01:39 -06:00
tmetcalfe89 f2033f5e33 fix alakazam json poser 2024-10-25 12:51:57 -07:00
tmetcalfe89 6c600b7bdb alakazam - kt->json 2024-10-25 12:27:33 -07:00
Wi2ter e93bfb7f0f Update Kleavor Animation 2024-10-25 18:25:09 +08:00
Wi2ter 8976909742 Update Alomomola Animation 2024-10-25 18:23:06 +08:00
Wi2ter 30a9c2f53e Update Mantyke Mantine Animation 2024-10-25 18:18:58 +08:00
Wi2ter ea60790865 I forgot to change the poser! 😭 2024-10-25 11:36:38 +08:00
Wi2ter f906fac8f3 Update Buneary and Lopunny animation 2024-10-25 11:28:57 +08:00
Wi2ter 05b324a3cb Remodel Swinub Piloswine Mamoswine [big guy] 2024-10-25 09:40:37 +08:00
Carmendar 8ce1c7ccf5 Merge remote-tracking branch 'origin/implement_pokemon' into implement_pokemon 2024-10-24 19:06:09 -05:00
Carmendar a37f93241f Slowed Numel, and fixed shiny Staryu emissive texture. 2024-10-24 19:05:14 -05:00
Wi2ter 6689663ca9 remodel Snivy Servin Serperior 🌿 🐍 2024-10-24 19:10:37 +08:00
Carmendar 959b81a58f flashy new models for ✨ Dwebble & Crustle ✨ 2024-10-24 01:27:11 -05:00
Carmendar 62e607b44e Forgot to remove magby line & onix from the kotlin model repository. 2024-10-23 23:22:19 -05:00
Carmendar 407bb6b977 Merge remote-tracking branch 'origin/main' 2024-10-23 20:07:59 -05:00
Carmendar a9efd327b8 Magby line & Onix are now beautiful. 2024-10-23 19:58:34 -05:00
Carmendar 64cb4d2ff8 Removed Herobrine 2024-10-23 00:36:52 -05:00
FrankTheFarmer 54786fa82e I forgot the changelog again 😔 2024-10-23 15:06:56 +10:00
FrankTheFarmer ecab1b7825 Porygon line poser fixes 🖥🦆 2024-10-23 14:57:22 +10:00
FrankTheFarmer 75d7106f46 Merge remote-tracking branch 'origin/implement_pokemon' into implement_pokemon 2024-10-23 14:37:28 +10:00
Carmendar 6f82c09afa angry crying 😠😢 2024-10-22 23:21:40 -05:00
Carmendar 778e5e219c Everyone is crying 😢 so sad. 2024-10-22 22:05:42 -05:00
FrankTheFarmer f4682e0bd2 Merge remote-tracking branch 'origin/implement_pokemon' into implement_pokemon 2024-10-23 11:07:21 +10:00
Tyzillion 906d487ffc Added rootBone to all existing json posers. 2024-10-22 08:08:31 -04:00
Tyzillion 817b801bf7 Merge branch 'main' of https://gitlab.com/cable-mc/cobblemon into implement_pokemon
# Conflicts:
#	common/src/main/resources/assets/cobblemon/bedrock/pokemon/animations/0006_charizard/charizard.animation.json
#	common/src/main/resources/assets/cobblemon/bedrock/pokemon/posers/0595_joltik/joltik.json
2024-10-22 07:44:07 -04:00
Sterrezo e401b11ab9 Added a sound keyframe to absol.animation.json 2024-10-22 10:21:08 +02:00
Carmendar 165f70e01d Updated changelog 2024-10-22 02:05:50 -05:00
GenotypeXD-Dev fddfbfb4ed Merge remote-tracking branch 'origin/implement_pokemon' into implement_pokemon 2024-10-21 20:03:46 -06:00
GenotypeXD-Dev 03e229c511 Implemented Absol and Veluza. Fixed Charizard sleep crash 2024-10-21 20:02:26 -06:00
Sterrezo 0b08372407 Pushed an updated cry checker script. Corrected cries for Smearlge, Ledyba, Ledian, Sunkern, Sunflora, Smeargle.
Thanks to Polymeta for saving the script
2024-10-21 00:43:33 +02:00
Carmendar 6d26b5de20 Joltik can now blink while walking without blowing up your game. 2024-10-20 02:16:00 -05:00
Carmendar ef179410f9 Joltik can now blink while walking without blowing up your game. 2024-10-20 02:08:30 -05:00
FrankTheFarmer 194f6e019a Bellsprout line remodeled and animated 2024-10-18 16:29:15 +10:00
FrankTheFarmer 1f933827b9 Merge branch 'main' into implement_pokemon 2024-10-18 16:08:20 +10:00
FrankTheFarmer 28765bb2ce Merge branch 'main' into implement_pokemon 2024-10-18 13:29:35 +10:00
FrankTheFarmer 136391db04 👨‍🌾🔫🐲 2024-10-18 13:27:26 +10:00
Wi2ter 0cc39e71fc revamp Klink Klang and Klingklang 2024-10-18 10:11:53 +08:00
FrankTheFarmer d65cc08793 Several data fixes for posers and hitboxes 2024-10-17 23:11:43 +10:00
GenotypeXD-Dev a1729a0266 Merge remote-tracking branch 'origin/implement_pokemon' into implement_pokemon 2024-10-17 01:43:17 -06:00
GenotypeXD-Dev 8505634df3 Implement Charmander, Charmeleon, And Charizard Remodels + Gyarados Poser Fixes 2024-10-17 01:42:40 -06:00
FrankTheFarmer 02047c1ec0 Like a bajillion data fixes for posers and hitboxes 2024-10-17 17:24:39 +10:00
FrankTheFarmer 068fa4b2ef Updated Firefox. Make sure to update yours too! 2024-10-17 09:48:45 +10:00
Carmendar bfd266a40e Updated Toxapex, revamped Porygon line, remodeled Gastly and Haunter, updated portraits & pictures for many pokemon. 2024-10-15 23:54:34 -05:00
FrankTheFarmer 6367d4e2aa Tweaked Regional Pokédex orders to allow for proper ordering of the National Pokédex. 2024-10-16 12:59:16 +10:00
FrankTheFarmer f8a680f381 :*: **:** *:*:* :: :***: :;: 2024-10-15 22:32:01 +10:00
GenotypeXD-Dev 81750e6eb9 Added Implemented tag to Finizen and Palafin 2024-10-14 02:17:18 -06:00
GenotypeXD-Dev 818cf682bf Merge remote-tracking branch 'origin/implement_pokemon' into implement_pokemon 2024-10-14 02:15:11 -06:00
GenotypeXD-Dev 3112a0650f Implemented Finizen and Palafin (+Hero form) 2024-10-14 02:14:51 -06:00
FrankTheFarmer 747ef94f04 Fixed baltoy and claydol exploding the game when scanned. 2024-10-14 15:56:38 +10:00
FrankTheFarmer dbacada48c Merge remote-tracking branch 'origin/implement_pokemon' into implement_pokemon 2024-10-14 15:16:12 +10:00
FrankTheFarmer 26db8a40cc Un deleted female oinkolognes. This will affect the oinkologne population. 2024-10-14 15:15:30 +10:00
GenotypeXD-Dev 6e5feda00e Merge remote-tracking branch 'origin/implement_pokemon' into implement_pokemon 2024-10-13 23:12:07 -06:00
GenotypeXD-Dev f04330074b Added implemented tag to all currently implemented 1.6 pokemon 2024-10-13 23:11:46 -06:00
FrankTheFarmer 80d733d329 Merge branch 'main' into implement_pokemon 2024-10-14 14:18:08 +10:00
FrankTheFarmer 0099dcf5c5 Alolan Exeggutor will now appear in front of all pokemon in the dex no matter what lol 2024-10-14 14:16:42 +10:00
GenotypeXD-Dev 0a30551b7d Merge remote-tracking branch 'origin/implement_pokemon' into implement_pokemon 2024-10-13 19:23:49 -06:00
GenotypeXD-Dev e4ee0227fd Reapply "Implement Magikarp and Gyarados Remodels + Jump Variants"
This reverts commit 4ec7168499.
2024-10-13 19:22:35 -06:00
GenotypeXD-Dev 4ec7168499 Revert "Implement Magikarp and Gyarados Remodels + Jump Variants"
This reverts commit 650647e94b.
2024-10-13 19:20:46 -06:00
GenotypeXD-Dev 650647e94b Implement Magikarp and Gyarados Remodels + Jump Variants 2024-10-13 19:19:46 -06:00
Carmendar a5371f4b5d Updated Tepig line & Baltoy line. 2024-10-13 16:03:10 -05:00
Wi2ter d47e7fb3c4 Implemented Corphish Crawdaunt 2024-10-13 12:32:27 +08:00
Carmendar ef983e17fe Implemented Palossand, updated Bulbasaur texture, Ivysaur model & texture, Mudkip model & texture. Fixed portraits, pictures & scales for many Pokemon. 2024-10-12 22:42:41 -05:00
GenotypeXD-Dev d78975be6e Merge remote-tracking branch 'origin/implement_pokemon' into implement_pokemon 2024-10-12 01:15:01 -06:00
GenotypeXD-Dev 19a264870c Implemented Scraggy, Scrafty, Hatenna, Hattrem, Hatterene, Wattrel, Kilowattrel, Alola_bias cubone. Fixed Resolver typo from last Push 2024-10-12 01:14:11 -06:00
Carmendar ee1753de67 Merge remote-tracking branch 'origin/implement_pokemon' into implement_pokemon 2024-10-11 01:28:24 -05:00
Carmendar 742354b2cb Implemented Slakoth, Vigoroth, Slaking. Adjusted Larvitar scale. 2024-10-11 01:24:30 -05:00
GenotypeXD-Dev e2f6aaa4de Shelgon Basescale adjustment 2024-10-10 18:53:12 -06:00
GenotypeXD-Dev abc2911059 Implemented Bagon, Shelgon, Salamence, Pikipek, Trumbeak, Toucannon, Dondozo, Alolan Marowak 2024-10-10 17:46:09 -06:00
FrankTheFarmer d76caf7093 i forgot to write implemented 😩 2024-10-10 10:37:38 +10:00
FrankTheFarmer bf859f8435 Sand castle :) 2024-10-10 10:06:19 +10:00
FrankTheFarmer b31c10cc52 Took Venusaurs foot off the pedal (bone name changes) 2024-10-04 09:30:45 +10:00
FrankTheFarmer 89e3c7d8b0 Sealeo zfight fix 2024-10-04 08:52:20 +10:00
FrankTheFarmer 167b09f24f Fixed Diggersby using its walk animation in its battle portrait 2024-10-01 21:18:09 +10:00
FrankTheFarmer 39165266d5 🎬🔴👗 👠 2024-10-01 20:35:01 +10:00
FrankTheFarmer 7405f2de75 💍⚡🕶️⚡🧋 2024-10-01 20:34:20 +10:00
FrankTheFarmer 762fe87454 ✨🎡🧣 2024-10-01 20:33:41 +10:00
FrankTheFarmer ebbc81b605 💋🎙️🇫🇷 🎩 2024-10-01 20:33:01 +10:00
FrankTheFarmer 12d41aada1 👁️🍧👁️ 2024-10-01 20:32:20 +10:00
FrankTheFarmer 61fe9c23ce 💅 🪨 👜 🐩 2024-10-01 20:31:20 +10:00
FrankTheFarmer 945c9c60a9 Mmm monkey 2024-10-01 20:30:10 +10:00
FrankTheFarmer 8413b0392e Venusaur scaling stuff for Jazz 😈 2024-10-01 16:26:55 +10:00
FrankTheFarmer 868edcd392 Looped Walreins temp idle animation 2024-10-01 16:21:43 +10:00
FrankTheFarmer a3b2f9b6fc Rotom assets for future implementation 2024-10-01 16:07:26 +10:00
FrankTheFarmer 12b444bb41 Kecleon Assets for future implementation 2024-10-01 16:06:57 +10:00
FrankTheFarmer 0e814fd567 Added Flamigo 🔫🦩 2024-10-01 16:05:42 +10:00
FrankTheFarmer 7b083aa038 Added Walrein 🗡️ 🦭 2024-10-01 15:56:16 +10:00
FrankTheFarmer 4e0a4c84b5 Added Sealeo 🦭 2024-10-01 15:54:30 +10:00
FrankTheFarmer 2d9b47e645 Added Spheal 🪩 2024-10-01 15:53:38 +10:00
FrankTheFarmer 39a2182736 Added Toxapex ☂️ 2024-10-01 15:51:23 +10:00
FrankTheFarmer 5a996abbf3 Added Mareanie ☂️ 2024-10-01 15:50:31 +10:00
FrankTheFarmer a20def5161 Snail textures woops 2024-10-01 15:09:31 +10:00
FrankTheFarmer 030f370290 Added Gastrodon 🐌 2024-10-01 11:15:43 +10:00
FrankTheFarmer f3ade3cb82 Added Shellos 🐌 2024-10-01 11:14:14 +10:00
FrankTheFarmer 315cb6a1ac Added Lumineon 🐠 2024-10-01 10:48:35 +10:00
FrankTheFarmer 60615d32f5 Added Finneon 🐟 2024-10-01 10:48:18 +10:00
FrankTheFarmer 1d27d9cf5b Added Clawitzer 🔫🦞 2024-10-01 10:40:21 +10:00
FrankTheFarmer 2ba760d0f9 Added Clauncher 🦞 2024-10-01 10:38:35 +10:00
FrankTheFarmer c31ec3b418 Added Bruxish 🪥🐟🌈 2024-10-01 10:30:52 +10:00
FrankTheFarmer d0afab9604 Added Wugtrio 🪱🪱🪱 2024-10-01 10:16:39 +10:00
FrankTheFarmer 4e9f8fe1c0 Added Wiglett 🪱 2024-10-01 10:16:18 +10:00
FrankTheFarmer 803f93aa73 Added Corsola 🪸 2024-09-30 17:21:31 +10:00
FrankTheFarmer 853940d009 Added Pincurchin 🦔 2024-09-30 17:16:38 +10:00
FrankTheFarmer 6ddb746d49 Fired for not using indents of 2 again 2024-09-30 17:05:47 +10:00
FrankTheFarmer 2b86b15132 Added Liepard 🐆 2024-09-30 17:05:34 +10:00
FrankTheFarmer 5f0f5d0aa5 Added Purrloin 🐈 2024-09-30 17:02:17 +10:00
FrankTheFarmer 136aab872a Added Mantine 🌊🥞 2024-09-30 17:00:04 +10:00
FrankTheFarmer a1d4702af0 Added Mantyke 🥞 2024-09-30 16:59:33 +10:00
FrankTheFarmer b2777c13b8 Added Milotic 🐍 2024-09-30 16:55:33 +10:00
FrankTheFarmer 26cb473b9d Added Feebas 🎣 2024-09-30 16:55:09 +10:00
FrankTheFarmer 907c639e28 Added Octillery 🐙 2024-09-30 16:52:21 +10:00
FrankTheFarmer 80d2eafed7 Added Remoraid 🐟 2024-09-30 16:51:40 +10:00
FrankTheFarmer 519122e5be Little bit of Rhyhorn line resizing 2024-09-29 22:45:59 +10:00
FrankTheFarmer c211768d5c Forgor to remove Rhyhorn line kotlin posers 2024-09-29 22:45:35 +10:00
FrankTheFarmer 908f318eeb Carvanha remodel 2024-09-29 22:40:27 +10:00
FrankTheFarmer 0143f93577 Rhyperior remodel 🌤🦏 2024-09-29 22:31:46 +10:00
FrankTheFarmer f8615aeb82 Rhyhorn remodel 🦏 2024-09-29 22:26:06 +10:00
FrankTheFarmer b113448a9c Rhydon remodel 🦏 2024-09-29 22:23:56 +10:00
FrankTheFarmer 2930a11c75 Garchomp remodel ✈ 2024-09-29 22:13:00 +10:00
FrankTheFarmer 982de7f5c7 Gabite remodel 🦈 2024-09-29 22:12:08 +10:00
FrankTheFarmer bfdb5e9787 Gible remodel 🐟 2024-09-29 22:11:27 +10:00
FrankTheFarmer d5ea945c6b Krookodile remodel 2024-09-29 22:00:52 +10:00
FrankTheFarmer 5a18d038a2 Wigglytuff remodel 🍎 2024-09-29 21:51:56 +10:00
FrankTheFarmer d0389d6c9c Jigglypuff remodel 🎤 2024-09-29 21:51:32 +10:00
FrankTheFarmer c9bc6e24fe Igglybuff remodel 2024-09-29 21:50:39 +10:00
FrankTheFarmer 8b4a8e9534 oop. Tatsugiri resolver fix 2024-09-29 21:46:25 +10:00
FrankTheFarmer 5adfd00509 Tatsugiri model update 🍙🐟 2024-09-29 21:26:31 +10:00
FrankTheFarmer 4090e038ae Cloyster model update 2024-09-29 21:25:33 +10:00
FrankTheFarmer f3ab282fd1 Shellder model update 2024-09-29 21:25:16 +10:00
FrankTheFarmer 40b97d3c1e Merge branch 'main' into implement_pokemon 2024-09-29 21:17:27 +10:00
FrankTheFarmer 829b97270d Seaking model update 2024-09-29 21:16:49 +10:00
FrankTheFarmer 61111c8038 Goldeen model update 2024-09-29 21:16:34 +10:00
FrankTheFarmer 1f4fbaa177 oop. relicanth resolver update 2024-09-29 21:16:16 +10:00
FrankTheFarmer 9e8ef7e875 Relicanth remodel 2024-09-29 21:15:35 +10:00
FrankTheFarmer 190d90a966 Empoleon remodel 2024-09-29 20:56:38 +10:00
FrankTheFarmer 5a07c82a5d Prinplup remodel 2024-09-29 20:55:57 +10:00
FrankTheFarmer 9c2e56ee8b Cinderace remodel 2024-09-29 20:52:27 +10:00
FrankTheFarmer c83f194dc9 Scorbunny remodel 2024-09-29 20:52:06 +10:00
FrankTheFarmer b9bcb66d2a Swampert remodel 2024-09-29 20:47:43 +10:00
FrankTheFarmer b72050da1d Marshtomp remodel 2024-09-29 20:46:36 +10:00
FrankTheFarmer 82522ad6ab Mudkip remodel 💙 2024-09-29 20:46:02 +10:00
FrankTheFarmer d40e2e6103 Changelog for incoming implementation 2024-09-29 11:41:52 +10:00
FrankTheFarmer 96715770a7 Incineroar Remodel 🔥🧍‍♂️ 2024-09-29 11:41:09 +10:00
FrankTheFarmer 48fa67c2e4 Torracat Remodel 🔥🐆 2024-09-29 11:40:31 +10:00
FrankTheFarmer 9a6217f755 Litten Remodel 🔥🐈 2024-09-29 11:39:38 +10:00
FrankTheFarmer f1f035b5f9 Fired for not using double spaced (2)JSON indents 2024-09-29 11:31:44 +10:00
FrankTheFarmer 19aa53effc Horsea Remodel 2024-09-29 11:24:46 +10:00
FrankTheFarmer be7cb4583c Seadra Remodel 2024-09-29 11:24:36 +10:00
FrankTheFarmer 887891f74d Kingdra Remodel 2024-09-29 11:24:19 +10:00
FrankTheFarmer d83cd34bf4 Removed several pokemon from PokemonModelRepository as they have JSON posers now! 2024-09-28 20:08:54 +10:00
FrankTheFarmer bee41a90f9 Venusaur remodel 2024-09-28 19:59:28 +10:00
FrankTheFarmer 79afe9d812 Ivysaur remodel 2024-09-28 19:59:07 +10:00
FrankTheFarmer 9fe55c5692 Bulbasaur remodel 2024-09-28 19:58:44 +10:00
FrankTheFarmer feddce2575 Merge branch 'main' into implement_pokemon 2024-09-28 19:39:36 +10:00
FrankTheFarmer 4ddc5e3a93 Cetitan can now cry and walk/sleep at the same time! Unfortunately relatable! 2024-09-28 06:43:47 +10:00
FrankTheFarmer f63f1764ab Merge branch 'main' into implement_pokemon 2024-09-28 06:35:49 +10:00
FrankTheFarmer 7c694e9733 Corrected Dachsbun's resolver name. Was using Fidough 2024-09-25 21:19:58 +10:00
FrankTheFarmer 21b6977387 Merge branch 'main' into implement_pokemon 2024-09-25 21:09:08 +10:00
FrankTheFarmer 408735399c Merge branch 'main' into implement_pokemon 2024-09-24 21:13:15 +10:00
FrankTheFarmer f6c856d161 Merge branch 'main' into implement_pokemon 2024-09-24 08:23:07 +10:00
FrankTheFarmer 8173cf13a8 data updates for walking wake and iron leaves 2024-09-17 22:28:39 +10:00
FrankTheFarmer 7d0becf1bd Fixed that one elekid thing that was breaking the thingy™ 2024-09-17 09:45:15 +10:00
FrankTheFarmer 9b4a87ce68 Merge branch 'main' into implement_pokemon 2024-09-16 14:51:53 +10:00
Hiroku 464c4d349d Update CHANGELOG.md 2024-09-15 09:31:47 +00:00
Hiroku a35d3131f8 Update CHANGELOG.md 2024-09-15 09:30:28 +00:00
FrankTheFarmer 9d99d3c331 Merge branch 'main' into implement_pokemon 2024-09-14 19:49:29 +10:00
Paul b100516b24 Fixed JSON posed mons having _issues_ when evolved 2024-09-14 12:31:40 +10:00
FrankTheFarmer 8da5396443 Merge branch 'main' into implement_pokemon 2024-09-13 20:58:59 +10:00
FrankTheFarmer 5d2a727311 Chest Gimmighoul quirk fixes 2024-09-13 20:01:19 +10:00
FrankTheFarmer d7f03215e2 Merge branch 'main' into implement_pokemon 2024-09-13 15:18:46 +10:00
FrankTheFarmer d366471e71 Merge branch 'main' into implement_pokemon 2024-09-12 20:17:22 +10:00
FrankTheFarmer e5163f154a The "true".asExpressionLike fix for the bird wing visibility 2024-09-12 20:16:20 +10:00
FrankTheFarmer cfc497d8ed Consistency update for the first few json posers 2024-09-11 18:39:58 +10:00
FrankTheFarmer 35f8ab0257 Removed life ending comma 2024-09-11 17:35:25 +10:00
FrankTheFarmer e890743c86 Merge branch 'main' into implement_pokemon 2024-09-11 17:34:19 +10:00
FrankTheFarmer ffec6e307d Move over poser! 2024-09-11 16:16:01 +10:00
FrankTheFarmer 7c35db7eaa Temp horse data 2024-09-11 16:15:38 +10:00
FrankTheFarmer 9f0c2296bc Fixed the wing flap placeholder animation 2024-09-09 10:32:27 +10:00
FrankTheFarmer 6b0a06c64d I have restored the named animations. i think they got lost. 2024-09-08 15:18:12 +10:00
FrankTheFarmer 160186931f Merge branch 'main' into implement_pokemon 2024-09-08 14:23:54 +10:00
FrankTheFarmer 22c4a14fbe Changelog and maybe added fortnite 2024-09-08 14:22:14 +10:00
FrankTheFarmer 241a82764b Removal of Kingler kotlin poser. im too lazy to do krabby rn lol 2024-09-08 14:18:58 +10:00
FrankTheFarmer 6e4d48bb07 Cramorant remodel 🐟 2024-09-08 14:16:55 +10:00
FrankTheFarmer 7a383f419a 🦀🦀 Krabby & Kingler updates 🦀🦀 2024-09-08 13:30:16 +10:00
FrankTheFarmer 933b99d349 Wobbuffet! 💁‍♀️ 2024-09-08 11:03:30 +10:00
FrankTheFarmer 72d78084f6 Merge branch 'main' into implement_pokemon 2024-09-08 10:21:30 +10:00
FrankTheFarmer fcee4d2774 Merge branch 'main' into implement_pokemon 2024-09-08 07:47:04 +10:00
FrankTheFarmer 61c7f3bc13 sunkern line look animation fixes 2024-09-08 07:45:15 +10:00
FrankTheFarmer 3830637f3c Stupid ass dinosaur crying in his sleep 2024-09-08 07:45:14 +10:00
FrankTheFarmer 45f8049521 💖🌱Sunkern & Sunflora🌻✨ given Retro's placeholder assets and data 2024-09-06 16:47:43 +10:00
FrankTheFarmer 823774bcfe Merge branch 'main' into implement_pokemon 2024-09-06 10:48:03 +10:00
FrankTheFarmer 920e5211c0 Somebody forgot the changelog again 2024-09-06 10:47:02 +10:00
FrankTheFarmer 7da61e3d8d Fixed the look animations for the ledyba line 2024-09-06 10:41:34 +10:00
FrankTheFarmer 754b60b15c fixed Maushold faints not playing 2024-09-03 21:29:09 +10:00
FrankTheFarmer 839454bfd6 Fixed Slowking battle idle not playing properly 2024-09-03 20:31:41 +10:00
FrankTheFarmer 3b6a0667d6 Adjusted Grafaiai walk speed to reduce feet sliding 2024-09-03 20:05:56 +10:00
FrankTheFarmer f298adaea8 Vivillon will stop being naked when removing Vivillon addons 2024-09-03 09:36:53 +10:00
FrankTheFarmer 641206b811 Merge branch 'main' into implement_pokemon 2024-09-02 14:52:59 +10:00
Tyzillion 117f13b056 Added sounds to mud sport and water sport. 2024-08-10 14:54:26 -04:00
Tyzillion 93a94b4900 Updated model for Beedrill and Kingler.
Implement Cramorant.
2024-08-05 17:43:24 -04:00
Tyzillion 40363c2ea1 Merge remote-tracking branch 'origin/implement_pokemon' into implement_pokemon 2024-08-04 14:09:00 -04:00
Tyzillion 056252d2bb Implemented particles for psychic, mudsport, watersport, and updated confusion attack particles. 2024-08-04 13:58:04 -04:00
FrankTheFarmer 6f15d65d90 Unbiases your hisuian starter evolution methods 2024-07-15 16:37:53 +10:00
FrankTheFarmer 02f9b21cff Small changelog tweak. I didn't forget i promise. 2024-07-15 12:56:41 +10:00
FrankTheFarmer 79cf154304 What if we take bikini bottom and push it somewhere else?! 2024-07-15 12:19:29 +10:00
FrankTheFarmer a650683d45 Merge remote-tracking branch 'origin/main' into implement_pokemon 2024-07-15 10:54:23 +10:00
Apion 311dc3dc9c Merge branch 'json-poser-conversion' into 'implement_pokemon'
Json poser conversion

See merge request cable-mc/cobblemon!1081
2024-06-27 23:50:31 +00:00
FrankTheFarmer bda1f80ecc Corrected Zangoose's egg moves being in its leveled move list. 2024-06-26 14:28:03 +10:00
FrankTheFarmer 817796bf40 Corrected Klevin's stats to match current databases post S/V patch 2024-06-26 10:22:02 +10:00
FrankTheFarmer 8a48eeab8b Merge branch 'main' into implement_pokemon 2024-06-23 20:48:59 +10:00
FrankTheFarmer 0061104c0d I did not forget the changelog this time 2024-06-23 20:47:37 +10:00
FrankTheFarmer 5110a1be17 Removed Chikorita's ability to look due to some awkward pivots and head structure 2024-06-23 20:28:37 +10:00
FrankTheFarmer 4cbb998106 Adjusted Shroomish's Yaw range for looks. Yeehaw 2024-06-23 20:24:20 +10:00
FrankTheFarmer 17de3f496c Adjusted Bellossom shoulder pose to clip a lot less than before. 2024-06-23 20:08:22 +10:00
FrankTheFarmer b54181e93a Glimmet and Tatsugiri are now shoulder mountable 2024-06-23 20:05:21 +10:00
FrankTheFarmer eaf7edcd94 Fletchling, Skrelp, Klefki, Fomantis, Morelull and Shroodle are now shoulder mountable 2024-06-23 19:46:16 +10:00
FrankTheFarmer cdf1631e2b ZORUA 2 STOP FLOATING 2024-06-23 18:51:40 +10:00
FrankTheFarmer 841f49553e Pidove, Petilil, Hisui Bias Petilil, Zorua, Zorua 2 and Elgyem are now shoulder mountable 2024-06-23 18:51:22 +10:00
FrankTheFarmer 57d7d5a1b9 Minun, Beldum, Starly, Buneary, Combee and Pachirisu are now shoulder mountable 2024-06-23 17:46:41 +10:00
FrankTheFarmer b1f2ab2ed7 Merge branch 'main' into implement_pokemon 2024-06-23 17:26:01 +10:00
FrankTheFarmer f629d95844 Spearow, Murkrow, Mew, Larvitar, Taillow and Plusleare now shoulder mountable 2024-06-23 16:58:37 +10:00
FrankTheFarmer 30904fbdda Caterpie, Weedle, and Smoochum are now shoulder mountable 2024-06-23 16:00:14 +10:00
FrankTheFarmer 9a3be6a85a Roaming Gimmighoul is now shoulder mountable 2024-06-23 15:01:17 +10:00
FrankTheFarmer 88c91d9bdd Reverted Hisuian Zoroark stats to be different from base Zoroark 2024-06-23 09:50:05 +10:00
FrankTheFarmer 5d2efe3e6b Merge branch 'main' into implement_pokemon 2024-06-23 09:41:59 +10:00
FrankTheFarmer d6354d3d94 Fixed Duskull and Dusclops spawn data 2024-06-14 11:51:33 +10:00
FrankTheFarmer 4ddfdd828c Merge branch 'main' into implement_pokemon 2024-06-14 11:30:43 +10:00
FrankTheFarmer 06b70c6204 After nearly 2 years, the Magby line received their placeholder walks 2024-06-12 14:05:54 +10:00
FrankTheFarmer 2dc9d11f79 Merge branch 'main' into implement_pokemon 2024-06-12 14:00:10 +10:00
FrankTheFarmer fbb161c511 I FORGOT THE CHANGELOG 2024-06-04 14:36:35 +10:00
FrankTheFarmer f84bc62d61 Dreepy can now float on your shoulders 2024-06-04 14:17:39 +10:00
FrankTheFarmer 2e20554d1e Fixed Chimchar and Monferno sleeping T pose 2024-06-04 13:55:16 +10:00
apion bb9fcc64ed Started working on Aerodactyl JSON poser 2024-05-24 21:52:16 -04:00
apion 2d908468ea Fixed issue where singular conditions not met, abra is now completely working with a JSON poser 2024-05-24 11:21:01 -04:00
apion c9ae148d86 Moved Abra to JSON poser, pose conditions not properly working 2024-05-24 10:24:50 -04:00
251 changed files with 7982 additions and 71511 deletions
+1 -29
View File
@@ -1,10 +1,9 @@
image: amazoncorretto:21-alpine
image: amazoncorretto:21
before_script:
- export GRADLE_USER_HOME=`pwd`/.gradle
stages:
- merge
- build
- deploy
@@ -65,30 +64,3 @@ deploy:
- ./*.jar
# - neoforge/build/libs/*+*.jar
# - fabric/build/libs/*+*.jar
merge_on_lang_change:
stage: merge
script:
# Check for changes in the specified file or directory
- |
apk add git
if git diff --name-only "$CI_COMMIT_BEFORE_SHA" "$CI_COMMIT_SHA" | grep -q "common/src/main/resources/assets/cobblemon/lang/en_us.json"; then
echo "US locale changed! Updating lang branch..."
# Configure Git user for the merge commit
git config --global user.email "noreply@weblate.org"
git config --global user.name "Weblate"
git remote set-url origin https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/cable-mc/cobblemon.git
# Fetch the target branch and merge main into it
git fetch origin lang-updates
git checkout lang-updates
git merge origin/ci-test
# Push the merged branch back to the repository
git push origin lang-updates:lang-updates-test
else
echo "No need to update lang"
fi
only:
- ci-test
+2 -14
View File
@@ -30,12 +30,12 @@
- New config setting `displayEntityNameLabel` and `displayEntityLabelsWhenCrouchingOnly` to control what and when is displayed for the pokemon label
- `/freezepokemon` command to pause a Pokémon's animation at a specific point in time.
- Added `no_ai` and `freeze_frame` options to the `/spawnpokemon` command.
- Added shiny Pokémon particles with sound effects.
- Added animation for trading.
- Added shiny Pokémon effects.
- Added effects for the burn status effect.
- Added effects for the moves: Psychic, Water Sport, and Mud Sport.
- Added a new universal locator called "top".
- Added shiny Pokémon particles with sound effects.
- Added animation for trading.
### Pokémon Added
#### Gen 1
@@ -208,7 +208,6 @@
- Buneary
- Combee
- Pachirisu
- Tepig
- Pidove
- Petilil, Hisui Bias Petilil
- Zorua, Hisui Bias Zorua
@@ -216,11 +215,9 @@
- Fletchling
- Skrelp
- Klefki
- Litten
- Fomantis
- Morelull
- Dreepy
- Sprigatito
- Shroodle
- Tatsugiri
- Glimmet
@@ -233,29 +230,20 @@
- Furret
- Swinub, Piloswine, Mamoswine
- Skarmory
- Tyrogue
- Spinda
- Torkoal
- Nincada, Ninjask
- Lunatone
- Solrock
- Buneary, Lopunny
- Magnezone
- Alomomola
- Tepig, Pignite, Emboar
- Flabebe, Floette, Florges
- Litten, Torracat, Incineroar
- Fomantis, Lurantis
- Dreepy, Drakloak
- Kleavor
- Scorbunny
- Gimmighoul [Roaming]
### Model updates for the following Pokémon
- Bulbasaur, Ivysaur, Venusaur
- Charmander, Charmeleon, Charizard
- Kakuna, Beedrill
- Lapras
- Porygon, Porygon2, Porygon-Z
- Igglybuff, Jigglypuff, Wigglytuff
- Poliwhirl, Poliwrath
@@ -43,7 +43,6 @@ import com.cobblemon.mod.common.api.spawning.prospecting.SpawningProspector
import com.cobblemon.mod.common.api.starter.StarterHandler
import com.cobblemon.mod.common.api.storage.PokemonStoreManager
import com.cobblemon.mod.common.api.storage.adapter.conversions.ReforgedConversion
import com.cobblemon.mod.common.api.storage.adapter.database.MongoDBStoreAdapter
import com.cobblemon.mod.common.api.storage.adapter.flatfile.FileStoreAdapter
import com.cobblemon.mod.common.api.storage.adapter.flatfile.JSONStoreAdapter
import com.cobblemon.mod.common.api.storage.adapter.flatfile.NBTStoreAdapter
@@ -53,7 +52,8 @@ import com.cobblemon.mod.common.api.storage.pc.PCStore
import com.cobblemon.mod.common.api.storage.pc.link.PCLinkManager
import com.cobblemon.mod.common.api.storage.player.PlayerInstancedDataStoreManager
import com.cobblemon.mod.common.api.storage.player.PlayerInstancedDataStoreTypes
import com.cobblemon.mod.common.api.storage.player.adapter.*
import com.cobblemon.mod.common.api.storage.player.adapter.DexDataNbtBackend
import com.cobblemon.mod.common.api.storage.player.adapter.PlayerDataJsonBackend
import com.cobblemon.mod.common.api.storage.player.factory.CachedPlayerDataStoreFactory
import com.cobblemon.mod.common.api.tags.CobblemonEntityTypeTags
import com.cobblemon.mod.common.api.tags.CobblemonItemTags
@@ -106,10 +106,7 @@ import com.cobblemon.mod.common.util.*
import com.cobblemon.mod.common.world.feature.CobblemonPlacedFeatures
import com.cobblemon.mod.common.world.feature.ore.CobblemonOrePlacedFeatures
import com.cobblemon.mod.common.world.gamerules.CobblemonGameRules
import com.mongodb.ConnectionString
import com.mongodb.MongoClientSettings
import com.mongodb.client.MongoClient
import com.mongodb.client.MongoClients
import java.io.File
import java.io.FileReader
import java.io.FileWriter
@@ -325,7 +322,9 @@ object Cobblemon {
}
}
/*
"mongodb" -> {
/*
try {
Class.forName("com.mongodb.client.MongoClient")
@@ -333,22 +332,18 @@ object Cobblemon {
.applyConnectionString(ConnectionString(config.mongoDBConnectionString))
.build()
mongoClient = MongoClients.create(mongoClientSettings)
val generalMongoFactory = CachedPlayerDataStoreFactory(PlayerDataMongoBackend(mongoClient, config.mongoDBDatabaseName, "PlayerDataCollection"))
generalMongoFactory.setup(server)
val pokedexMongoFactory = CachedPlayerDataStoreFactory(DexDataMongoBackend(mongoClient, config.mongoDBDatabaseName, "PokeDexCollection"))
pokedexMongoFactory.setup(server)
playerDataManager.setFactory(generalMongoFactory, PlayerInstancedDataStoreTypes.GENERAL)
playerDataManager.setFactory(pokedexMongoFactory, PlayerInstancedDataStoreTypes.POKEDEX)
val mongoFactory = MongoPlayerDataStoreFactory(mongoClient, config.mongoDBDatabaseName)
playerData.setFactory(mongoFactory, PlayerInstancedDataStoreType.GENERAL)
MongoDBStoreAdapter(mongoClient, config.mongoDBDatabaseName)
} catch (e: ClassNotFoundException) {
LOGGER.error("MongoDB driver not found.")
throw e
}
*/
}
*/
else -> throw IllegalArgumentException("Unsupported storageFormat: ${config.storageFormat}")
}
@@ -277,6 +277,7 @@ object CobblemonNetwork {
list.add(PacketRegisterInfo(BattleChallengeExpiredPacket.ID, BattleChallengeExpiredPacket::decode, BattleChallengeExpiredHandler))
list.add(PacketRegisterInfo(BattleReplacePokemonPacket.ID, BattleReplacePokemonPacket::decode, BattleReplacePokemonHandler))
list.add(PacketRegisterInfo(BattleTransformPokemonPacket.ID, BattleTransformPokemonPacket::decode, BattleTransformPokemonHandler))
list.add(PacketRegisterInfo(BattleAppendTargetedEntityPacket.ID, BattleAppendTargetedEntityPacket::decode, BattleSetTargetedEntityHandler))
// MultiBattleTeam Packets
list.add(PacketRegisterInfo(TeamRequestNotificationPacket.ID, TeamRequestNotificationPacket::decode, TeamRequestNotificationHandler))
@@ -11,7 +11,6 @@ package com.cobblemon.mod.common.api.storage.player.adapter
import com.cobblemon.mod.common.api.pokedex.PokedexManager
import com.cobblemon.mod.common.api.storage.player.PlayerInstancedDataStoreType
import com.cobblemon.mod.common.api.storage.player.PlayerInstancedDataStoreTypes
import com.cobblemon.mod.common.util.adapters.CodecBackedAdapter
import com.cobblemon.mod.common.util.adapters.IdentifierAdapter
import com.google.gson.GsonBuilder
import com.google.gson.reflect.TypeToken
@@ -28,7 +27,7 @@ class DexDataJsonBackend: JsonBackedPlayerDataStoreBackend<PokedexManager>("poke
override val gson = GsonBuilder()
.setPrettyPrinting()
.disableHtmlEscaping()
.registerTypeAdapter(PokedexManager::class.java, CodecBackedAdapter(PokedexManager.CODEC))
.registerTypeAdapter(ResourceLocation::class.java, IdentifierAdapter)
.create()
override val classToken = TypeToken.get(PokedexManager::class.java)
override val defaultData = defaultDataFunc
@@ -1,44 +0,0 @@
/*
* Copyright (C) 2023 Cobblemon Contributors
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
package com.cobblemon.mod.common.api.storage.player.adapter
import com.cobblemon.mod.common.api.pokedex.PokedexManager
import com.cobblemon.mod.common.api.storage.player.PlayerInstancedDataStoreTypes
import com.cobblemon.mod.common.util.adapters.CodecBackedAdapter
import com.google.gson.GsonBuilder
import com.google.gson.reflect.TypeToken
import com.mongodb.client.MongoClient
import java.util.UUID
/**
* A [PlayerDataStoreBackend] for [PokedexManager]
*
* @author Pebbles
* @since October 26, 2024
*/
class DexDataMongoBackend(mongoClient: MongoClient, databaseName: String, collectionName: String) :
MongoBackedPlayerDataStoreBackend<PokedexManager>(mongoClient, databaseName, collectionName, PlayerInstancedDataStoreTypes.POKEDEX) {
override val gson = GsonBuilder()
.registerTypeAdapter(PokedexManager::class.java, CodecBackedAdapter(PokedexManager.CODEC))
.create()
override val classToken = TypeToken.get(PokedexManager::class.java)
override val defaultData = defaultDataFunc
override fun initialize(store: PokedexManager) {
store.initialize()
}
companion object {
val defaultDataFunc = { uuid: UUID ->
PokedexManager(uuid, mutableMapOf())
}
}
}
@@ -1,59 +0,0 @@
/*
* Copyright (C) 2023 Cobblemon Contributors
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
package com.cobblemon.mod.common.api.storage.player.adapter
import com.cobblemon.mod.common.api.storage.player.InstancedPlayerData
import com.cobblemon.mod.common.api.storage.player.PlayerInstancedDataStoreType
import com.google.gson.Gson
import com.google.gson.reflect.TypeToken
import com.mongodb.client.MongoClient
import com.mongodb.client.model.ReplaceOptions
import org.bson.Document
import java.io.BufferedReader
import java.io.FileReader
import java.io.PrintWriter
import java.util.UUID
import kotlin.reflect.KMutableProperty
import kotlin.reflect.full.memberProperties
abstract class MongoBackedPlayerDataStoreBackend<T : InstancedPlayerData>(
mongoClient: MongoClient, databaseName: String, collectionName: String, type: PlayerInstancedDataStoreType
) : MongoBasedPlayerDataStoreBackend<T>(mongoClient, type, databaseName, collectionName) {
abstract val gson: Gson
//The class GSON needs to deserialize to
abstract val classToken: TypeToken<T>
override fun save(playerData: T) {
collection.replaceOne(
Document("uuid", playerData.uuid.toString()),
Document.parse(gson.toJson(playerData)),
ReplaceOptions().upsert(true)
)
}
override fun load(uuid: UUID): T {
val filter = Document("uuid", uuid.toString())
val document = collection.find(filter).first()
return if (document != null) {
val jsonStr = document.toJson()
gson.fromJson(jsonStr, classToken).also {
val newProps = it::class.memberProperties.filterIsInstance<KMutableProperty<*>>()
.filter { member -> member.getter.call(it) == null }
if (newProps.isNotEmpty()) {
val defaultData = defaultData(uuid)
newProps.forEach { member -> member.setter.call(it, member.getter.call(defaultData)) }
}
}
} else {
defaultData(uuid).also(::save)
}
}
}
@@ -1,36 +0,0 @@
/*
* Copyright (C) 2023 Cobblemon Contributors
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
package com.cobblemon.mod.common.api.storage.player.adapter
import com.cobblemon.mod.common.api.storage.player.InstancedPlayerData
import com.cobblemon.mod.common.api.storage.player.PlayerInstancedDataStoreType
import com.mongodb.client.MongoClient
import net.minecraft.server.MinecraftServer
import java.util.UUID
/**
* A [PlayerDataStoreBackend] that stores the [InstancedPlayerData] in a file.
*
* @author Pebbles
* @since October 27, 2024
*/
abstract class MongoBasedPlayerDataStoreBackend<T : InstancedPlayerData>(
val mongoClient: MongoClient, val type: PlayerInstancedDataStoreType, databaseName: String, collectionName: String
) : PlayerDataStoreBackend<T>(type) {
abstract val defaultData: (UUID) -> (T)
val collection by lazy {
mongoClient.getDatabase(databaseName).getCollection(collectionName)
}
override fun setup(server: MinecraftServer) {
// Ping the database to ensure it's connected
mongoClient.listDatabaseNames().first()
}
}
@@ -0,0 +1,67 @@
/*
* Copyright (C) 2023 Cobblemon Contributors
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
/*
package com.cobblemon.mod.common.api.storage.player.adapter
import com.cobblemon.mod.common.api.storage.player.PlayerData
import com.cobblemon.mod.common.api.storage.player.PlayerDataExtension
import com.cobblemon.mod.common.util.adapters.IdentifierAdapter
import com.google.gson.GsonBuilder
import com.mongodb.client.MongoClient
import com.mongodb.client.model.ReplaceOptions
import net.minecraft.resources.ResourceLocation
import org.bson.Document
import java.util.UUID
import kotlin.reflect.KMutableProperty
import kotlin.reflect.full.memberProperties
class MongoPlayerDataAdapter(
mongoClient: MongoClient,
databaseName: String
) : PlayerDataStoreAdapter {
companion object {
val gson = GsonBuilder()
.disableHtmlEscaping()
.registerTypeAdapter(PlayerDataExtension::class.java, PlayerDataExtensionAdapter)
.registerTypeAdapter(ResourceLocation::class.java, IdentifierAdapter)
.create()
}
private val collection = mongoClient.getDatabase(databaseName).getCollection("PlayerDataCollection")
override fun load(uuid: UUID): PlayerData {
val filter = Document("uuid", uuid.toString())
val document = collection.find(filter).first()
return if (document != null) {
val jsonStr = document.toJson()
gson.fromJson(jsonStr, PlayerData::class.java).also {
val newProps = it::class.memberProperties.filterIsInstance<KMutableProperty<*>>().filter { member -> member.getter.call(it) == null }
if (newProps.isNotEmpty()) {
val defaultData = PlayerData.defaultData(uuid)
newProps.forEach { member -> member.setter.call(it, member.getter.call(defaultData)) }
}
}
} else {
PlayerData.defaultData(uuid).also(::save)
}
}
override fun save(playerData: PlayerData) {
val jsonStr = gson.toJson(playerData)
val document = Document.parse(jsonStr)
document.put("uuid", playerData.uuid.toString())
val filter = Document("uuid", playerData.uuid.toString())
collection.replaceOne(filter, document, ReplaceOptions().upsert(true))
}
}
*/
@@ -1,49 +0,0 @@
/*
* Copyright (C) 2023 Cobblemon Contributors
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
package com.cobblemon.mod.common.api.storage.player.adapter
import com.cobblemon.mod.common.Cobblemon
import com.cobblemon.mod.common.CobblemonSounds
import com.cobblemon.mod.common.api.storage.player.GeneralPlayerData
import com.cobblemon.mod.common.api.storage.player.PlayerDataExtension
import com.cobblemon.mod.common.api.storage.player.PlayerInstancedDataStoreTypes
import com.cobblemon.mod.common.util.adapters.IdentifierAdapter
import com.google.gson.GsonBuilder
import com.google.gson.reflect.TypeToken
import com.mongodb.client.MongoClient
import net.minecraft.resources.ResourceLocation
import java.util.UUID
/**
* A [PlayerDataStoreBackend] for [GeneralPlayerData]
*
* @author Apion
* @since February 21, 2024
*/
class PlayerDataMongoBackend(mongoClient: MongoClient, databaseName: String, collectionName: String): MongoBackedPlayerDataStoreBackend<GeneralPlayerData>(
mongoClient, databaseName, collectionName, PlayerInstancedDataStoreTypes.GENERAL
){
override val defaultData = { forPlayer: UUID -> GeneralPlayerData(
uuid = forPlayer,
starterPrompted = false,
starterLocked = !Cobblemon.starterConfig.allowStarterOnJoin,
starterSelected = false,
starterUUID = null,
keyItems = mutableSetOf(),
extraData = mutableMapOf(),
battleTheme = CobblemonSounds.PVP_BATTLE.location
)}
override val gson = GsonBuilder()
.registerTypeAdapter(PlayerDataExtension::class.java, PlayerDataExtensionAdapter)
.registerTypeAdapter(ResourceLocation::class.java, IdentifierAdapter)
.create()
override val classToken = TypeToken.get(GeneralPlayerData::class.java)
}
@@ -35,12 +35,6 @@ interface Targetable {
}
}
fun getOppositeOpponent() : Targetable {
val digit = getDigit()
val sideSize = getFormat().battleType.pokemonPerSide
return getAllActivePokemon().first { pokemon -> !pokemon.isAllied(this) && (sideSize - pokemon.getDigit() + 1) - digit == 0 }
}
fun getAdjacentAllies() = getAdjacent().filter { it.isAllied(this) }
fun getAdjacentOpponents() = getAdjacent().filterNot { it.isAllied(this) }
@@ -148,74 +148,59 @@ object ShowdownInterpreter {
*/
fun getSendoutPosition(battle: PokemonBattle, activePokemon: ActiveBattlePokemon, battleActor: BattleActor): Vec3? {
val pnx = activePokemon.getPNX()
val actorEntityPosList = battleActor.getSide().actors.mapNotNull { if (it is EntityBackedBattleActor<*>) it.initialPos else null }
val actorEntityPos = if (actorEntityPosList.size == 1)
actorEntityPosList[0]
else if (actorEntityPosList.size > 1)
actorEntityPosList.fold(Vec3(0.0, 0.0, 0.0)) { acc, vec3 -> acc.add(vec3.scale(1.0 / actorEntityPosList.size)) }
val entityPosList = battleActor.getSide().actors.mapNotNull { if (it is EntityBackedBattleActor<*>) it.initialPos else null }
var entityPos = if (entityPosList.size == 1)
entityPosList[0]
else if (entityPosList.size > 1)
entityPosList.fold(Vec3(0.0, 0.0, 0.0)) { acc, vec3 -> acc.add(vec3.scale(1.0 / entityPosList.size)) }
else
null
val opposingActorEntityList = battleActor.getSide().getOppositeSide().actors.mapNotNull { if (it is EntityBackedBattleActor<*>) it.initialPos else null }
val opposingEntityPos = if (opposingActorEntityList.size == 1)
opposingActorEntityList[0]
else if (opposingActorEntityList.size > 1) {
// If multiple actors per side, avg their position
opposingActorEntityList.fold(Vec3(0.0, 0.0, 0.0)) { acc, vec3 -> acc.add(vec3.scale(1.0 / opposingActorEntityList.size)) }
}
val opposingEntityList = battleActor.getSide().getOppositeSide().actors.mapNotNull { if (it is EntityBackedBattleActor<*>) it.initialPos else null }
val opposingEntityPos = if (opposingEntityList.size == 1)
opposingEntityList[0]
else if (opposingEntityList.size > 1)
opposingEntityList.fold(Vec3(0.0, 0.0, 0.0)) { acc, vec3 -> acc.add(vec3.scale(1.0 / opposingEntityList.size)) }
else null
var actorOffset = actorEntityPos?.let { opposingEntityPos?.subtract(it) }
var result = actorEntityPos
if (actorOffset != null) {
var widthSum = 4.0 // Leave a constant to allow double/triples alignment to be consistent
if (battle.format.battleType.pokemonPerSide == 1) {
activePokemon.battlePokemon?.let { battlePokemon ->
// sum of the hitbox widths of both pokemon
val opposingActivePokemon = (activePokemon.getOppositeOpponent() as ActiveBattlePokemon)
val pokemonWidth = battlePokemon.originalPokemon.form.hitbox.width * battlePokemon.originalPokemon.form.baseScale
val opposingPokemonWidth = opposingActivePokemon.battlePokemon?.let {
it.originalPokemon.form.hitbox.width * it.originalPokemon.form.baseScale
} ?: pokemonWidth
widthSum = (pokemonWidth + opposingPokemonWidth) / 2.0 // Only care about the front half of each hitbox
}
}
var baseOffset = entityPos?.let { opposingEntityPos?.subtract(it) }
val minDistance = 4.0 + widthSum
val actorDistance = actorOffset.length()
if (actorDistance < minDistance) {
val temp = actorOffset.scale(minDistance / actorDistance) ?: actorOffset
result = actorEntityPos?.subtract(temp.subtract(actorOffset))
actorOffset = temp
if (baseOffset != null) {
val minDistance = if (battle.isPvW) 8.0 else 5.0
val length = baseOffset.length()
if (length < minDistance) {
val temp = baseOffset.scale(minDistance / length) ?: baseOffset
entityPos = entityPos?.subtract(temp.subtract(baseOffset))
baseOffset = temp
}
var vector = Vec3(actorOffset.x, 0.0, actorOffset.z).normalize()
var vector = Vec3(baseOffset.x, 0.0, baseOffset.z).normalize()
vector = vector.cross(Vec3(0.0, 1.0, 0.0))
if (battle.format.battleType.pokemonPerSide == 1) { // Singles
result = result?.add(actorOffset.scale(if (battle.isPvW) 0.4 else 0.3))
entityPos = entityPos?.add(baseOffset.scale(if (battle.isPvW) 0.4 else 0.3))
activePokemon.battlePokemon?.let { battlePokemon ->
val hitbox = battlePokemon.originalPokemon.form.hitbox
val scale = battlePokemon.originalPokemon.form.baseScale
activePokemon.getAdjacentOpponents()
result = result?.add(vector.scale(-0.3 - hitbox.width * scale ))
if (hitbox.height * scale > 1.1) {
entityPos = entityPos?.add(vector.scale(-1.5 - hitbox.width * scale / 2))
}
}
} else if (battle.format.battleType.pokemonPerSide == 2) { // Doubles/Multi
} else if (battle.format.battleType.pokemonPerSide == 2) { // Doubles
if (battle.actors.first() !== battle.actors.last()) {
val offsetB = if (pnx[2] == 'a') vector.scale(-1.0) else vector
result = result?.add(actorOffset.scale(0.33))?.add(offsetB.scale(2.5))
entityPos = entityPos?.add(baseOffset.scale(0.33))?.add(offsetB.scale(2.5))
}
} else if (battle.format.battleType.pokemonPerSide == 3) { // Triples
if (battle.actors.first() !== battle.actors.last()) {
result = when (pnx[2]) {
'a' -> result?.add(actorOffset.scale(0.15))?.add(vector.scale(-3.5))
'b' -> result?.add(actorOffset.scale(0.3))
'c' -> result?.add(actorOffset.scale(0.15))?.add(vector.scale(3.5))
else -> result
entityPos = when (pnx[2]) {
'a' -> entityPos?.add(baseOffset.scale(0.15))?.add(vector.scale(-3.5))
'b' -> entityPos?.add(baseOffset.scale(0.3))
'c' -> entityPos?.add(baseOffset.scale(0.15))?.add(vector.scale(3.5))
else -> entityPos
}
}
}
}
return result
return entityPos
}
@@ -9,11 +9,16 @@
package com.cobblemon.mod.common.battles.interpreter.instructions
import com.bedrockk.molang.runtime.MoLangRuntime
import com.bedrockk.molang.runtime.struct.QueryStruct
import com.bedrockk.molang.runtime.value.DoubleValue
import com.bedrockk.molang.runtime.value.StringValue
import com.cobblemon.mod.common.CobblemonNetwork.sendPacket
import com.cobblemon.mod.common.api.battles.interpreter.BattleMessage
import com.cobblemon.mod.common.api.battles.interpreter.Effect
import com.cobblemon.mod.common.api.battles.model.PokemonBattle
import com.cobblemon.mod.common.api.molang.MoLangFunctions.addEntityFunctions
import com.cobblemon.mod.common.api.molang.MoLangFunctions.addPokemonEntityFunctions
import com.cobblemon.mod.common.api.molang.MoLangFunctions.addPokemonFunctions
import com.cobblemon.mod.common.api.molang.MoLangFunctions.addStandardFunctions
import com.cobblemon.mod.common.api.moves.Moves
import com.cobblemon.mod.common.api.moves.animations.ActionEffectContext
@@ -26,9 +31,14 @@ import com.cobblemon.mod.common.battles.dispatch.InstructionSet
import com.cobblemon.mod.common.battles.dispatch.InterpreterInstruction
import com.cobblemon.mod.common.battles.dispatch.UntilDispatch
import com.cobblemon.mod.common.battles.pokemon.BattlePokemon
import com.cobblemon.mod.common.net.messages.client.battle.BattleAppendTargetedEntityPacket
import com.cobblemon.mod.common.pokemon.evolution.progress.UseMoveEvolutionProgress
import com.cobblemon.mod.common.util.battleLang
import com.cobblemon.mod.common.util.cobblemonResource
import net.minecraft.server.level.ServerLevel
import net.minecraft.server.level.ServerPlayer
import net.minecraft.world.entity.ai.targeting.TargetingConditions
import net.minecraft.world.phys.AABB
import java.util.concurrent.CompletableFuture
/**
@@ -97,6 +107,13 @@ class MoveInstruction(
val runtime = MoLangRuntime().also {
battle.addQueryFunctions(it.environment.query).addStandardFunctions()
}
userPokemon.effectedPokemon.entity?.let {
val queryStruct = QueryStruct(hashMapOf())
queryStruct.addEntityFunctions(it)
queryStruct.addPokemonEntityFunctions(it)
queryStruct.addPokemonFunctions(it.pokemon)
runtime.environment.variable.setDirectly("user", queryStruct)
}
actionEffect ?: return@dispatch GO
val context = ActionEffectContext(
@@ -130,6 +147,17 @@ class MoveInstruction(
runtime.environment.query.addFunction("move") { move.struct }
runtime.environment.query.addFunction("instruction_id") { StringValue(cobblemonResource("move").toString()) }
if (userPokemon.entity != null && targetPokemon?.entity != null) {
//Not the most elegant solution, maybe we should just make the targeted entity a piece of SyncedData
val serverLevel = userPokemon.entity!!.level() as? ServerLevel
serverLevel?.getNearbyPlayers(
TargetingConditions.forNonCombat(),
userPokemon.entity!!,
AABB.ofSize(userPokemon.entity!!.position(), 128.0, 128.0, 128.0)
)?.mapNotNull { it as? ServerPlayer }?.forEach { it.sendPacket(BattleAppendTargetedEntityPacket(userPokemon.entity!!.id, targetPokemon.entity!!.id)) }
battle.sendUpdate(BattleAppendTargetedEntityPacket(userPokemon.entity!!.id, targetPokemon.entity!!.id))
}
this.future = actionEffect.run(context)
holds = context.holds // Reference so future things can check on this action effect's holds
future.thenApply { holds.clear() }
@@ -14,6 +14,7 @@ import com.bedrockk.molang.runtime.value.StringValue
import com.cobblemon.mod.common.Cobblemon
import com.cobblemon.mod.common.CobblemonSounds
import com.cobblemon.mod.common.api.entity.PokemonSideDelegate
import com.cobblemon.mod.common.api.molang.MoLangFunctions.addEntityFunctions
import com.cobblemon.mod.common.api.molang.MoLangFunctions.addFunctions
import com.cobblemon.mod.common.api.pokemon.PokemonSpecies
import com.cobblemon.mod.common.api.scheduling.ScheduledTask
@@ -45,8 +46,6 @@ import net.minecraft.world.InteractionHand
import net.minecraft.world.entity.Entity
import net.minecraft.world.entity.player.Player
import net.minecraft.world.phys.Vec3
import java.util.UUID
import java.util.concurrent.ConcurrentHashMap
class PokemonClientDelegate : PosableState(), PokemonSideDelegate {
companion object {
@@ -94,6 +93,8 @@ class PokemonClientDelegate : PosableState(), PokemonSideDelegate {
private var scaleAnimTask: ScheduledTask? = null
private var cryAnimation: ActiveAnimation? = null
var targetedEntityId: Int? = null
override fun onSyncedDataUpdated(data: EntityDataAccessor<*>) {
super.onSyncedDataUpdated(data)
if (this::currentEntity.isInitialized) {
@@ -339,6 +340,7 @@ class PokemonClientDelegate : PosableState(), PokemonSideDelegate {
struct.addFunctions(functions.functions)
struct.addFunctions(ClientMoLangFunctions.clientFunctions)
runtime.environment.query = struct
addEnemyFunctions(struct)
}
override fun initialize(entity: PokemonEntity) {
@@ -348,10 +348,7 @@ class PokedexGUI private constructor(
if (entries.isNotEmpty()) {
if (init && initSpecies != null) {
var entry = entries.firstOrNull { it.speciesId == initSpecies }
if (entry == null) {
entry = entries.first()
}
val entry = entries.first { it.speciesId == initSpecies }
setSelectedEntry(entry)
scrollScreen.scrollAmount = (entries.indexOf(entry).toDouble() / entries.size.toDouble()) * scrollScreen.maxScroll
} else {
@@ -0,0 +1,18 @@
package com.cobblemon.mod.common.client.net.battle
import com.cobblemon.mod.common.api.net.ClientNetworkPacketHandler
import com.cobblemon.mod.common.client.entity.PokemonClientDelegate
import com.cobblemon.mod.common.entity.pokemon.PokemonEntity
import com.cobblemon.mod.common.net.messages.client.battle.BattleAppendTargetedEntityPacket
import net.minecraft.client.Minecraft
object BattleSetTargetedEntityHandler : ClientNetworkPacketHandler<BattleAppendTargetedEntityPacket> {
override fun handle(packet: BattleAppendTargetedEntityPacket, client: Minecraft) {
val sourceEntity = Minecraft.getInstance().level?.getEntity(packet.sourceEntityId)
val sourcePokemon = sourceEntity as? PokemonEntity
if (sourcePokemon != null) {
(sourcePokemon.delegate as PokemonClientDelegate).targetedEntityId = packet.targetedEntityId
}
}
}
@@ -16,12 +16,10 @@ import com.cobblemon.mod.common.client.particle.BedrockParticleOptionsRepository
import com.cobblemon.mod.common.client.particle.ParticleStorm
import com.cobblemon.mod.common.client.render.models.blockbench.PosableState
import com.cobblemon.mod.common.entity.PosableEntity
import com.cobblemon.mod.common.entity.pokemon.PokemonEntity
import com.cobblemon.mod.common.net.messages.client.effect.SpawnSnowstormEntityParticlePacket
import com.cobblemon.mod.common.pokemon.Pokemon
import net.minecraft.client.Minecraft
import net.minecraft.world.entity.Entity
import kotlin.text.get
import kotlin.math.pow
object SpawnSnowstormEntityParticleHandler : ClientNetworkPacketHandler<SpawnSnowstormEntityParticlePacket> {
override fun handle(packet: SpawnSnowstormEntityParticlePacket, client: Minecraft) {
@@ -35,6 +33,55 @@ object SpawnSnowstormEntityParticleHandler : ClientNetworkPacketHandler<SpawnSno
val particleRuntime = MoLangRuntime().setup().setupClient()
particleRuntime.environment.query.addFunction("entity") { state.runtime.environment.query }
particleRuntime.environment.query.addFunction("point_on_curve") {
//All this just finds a curve that goes through the given points + 0, 0
//And calcs where we are on it at t
val t = it.getDouble(0)
val x1 = it.getDouble(1)
val y1 = it.getDouble(2)
val x2 = it.getDouble(3)
val y2 = it.getDouble(4)
val a0 = 0.0
val a1 = x1.pow(2)
val a2 = x2.pow(2)
val b0 = 0.0
val b1 = x1
val b2 = x2
val c0 = 1.0
val c1 = 1.0
val c2 = 1.0
val d0 = 0.0
val d1 = y1
val d2 = y2
val matrix = arrayOf(
arrayOf(a2, b2, c2, d2),
arrayOf(a1, b1, c1, d1),
arrayOf(a0, b0, c0, d0)
)
for (i in 0 until 3) {
var pivot = matrix[i][i]
if (pivot != 0.0) {
for (j in 0 until 4) {
matrix[i][j] /= pivot
}
}
// Make other elements in the current column 0
for (k in 0 until 3) {
if (k != i) {
val factor = matrix[k][i]
for (j in 0 until 4) {
matrix[k][j] -= factor * matrix[i][j]
}
}
}
}
return@addFunction matrix[0][3] * t.pow(2) + matrix[1][3] * t + matrix[2][3]
}
val storm = ParticleStorm(
effect = effect,
@@ -15,6 +15,7 @@ import com.cobblemon.mod.common.api.snowstorm.BedrockParticleOptions
import com.cobblemon.mod.common.api.snowstorm.ParticleEmitterAction
import com.cobblemon.mod.common.client.render.MatrixWrapper
import com.cobblemon.mod.common.client.render.SnowstormParticle
import com.cobblemon.mod.common.entity.AttackingEntity
import com.cobblemon.mod.common.entity.PosableEntity
import com.cobblemon.mod.common.entity.pokemon.PokemonEntity
import com.cobblemon.mod.common.particle.SnowstormParticleOptions
@@ -62,6 +63,9 @@ class ParticleStorm(
}
if (entity is PosableEntity) {
runtime.environment.query.addFunction("entity") { entity.struct }
if (entity is AttackingEntity) {
addAttackingFunctions()
}
} else if (entity is Player) {
runtime.environment.query.addFunction("entity") { entity.asMoLangValue() }
}
@@ -76,6 +80,33 @@ class ParticleStorm(
Minecraft.getInstance().particleEngine.add(this)
}
fun addAttackingFunctions(attackingEntity: AttackingEntity) {
attackingEntity as Entity
runtime.environment.query.addFunction("target_deltax") {
val targetedEntity = getEntityById(attackingEntity.getAttackingEntityId())?: return@addFunction 1.0
matrixWrapper.transformWorldToParticle(attackingEntity.position()).x - matrixWrapper.transformWorldToParticle(targetedEntity.position()).x
}
runtime.environment.query.addFunction("target_deltay") {
val targetedEntity = getEntityById(attackingEntity.getAttackingEntityId())?: return@addFunction 1.0
matrixWrapper.transformWorldToParticle(attackingEntity.position()).y - matrixWrapper.transformWorldToParticle(targetedEntity.position()).y
}
runtime.environment.query.addFunction("target_deltaz") {
val targetedEntity = getEntityById(attackingEntity.getAttackingEntityId())?: return@addFunction 1.0
matrixWrapper.transformWorldToParticle(attackingEntity.position()).z - matrixWrapper.transformWorldToParticle(targetedEntity.position()).z
}
runtime.environment.query.addFunction("target_distance") {
val targetedEntity = getEntityById(attackingEntity.getAttackingEntityId())?: return@addFunction 2.0
targetedEntity.position().distanceTo(attackingEntity.position())
}
}
private fun getEntityById(entityId: Int?): Entity? {
if (entityId != null) {
Minecraft.getInstance().level?.getEntity(entityId)
}
return null
}
fun getX() = x
fun getY() = y
fun getZ() = z
@@ -33,4 +33,5 @@ class MatrixWrapper {
fun getOrigin() = position.add(matrix.getOrigin())
fun transformPosition(position: Vec3) = this.position.add(matrix.transformPosition(position))
fun transformWorldToParticle(position: Vec3) = Matrix4f(matrix).invertAffine().transformPosition(position.subtract(this.position))
}
@@ -0,0 +1,119 @@
/*
* Copyright (C) 2023 Cobblemon Contributors
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
package com.cobblemon.mod.common.client.render.models.blockbench.pokemon.gen1
import com.cobblemon.mod.common.client.render.models.blockbench.animation.QuadrupedWalkAnimation
import com.cobblemon.mod.common.client.render.models.blockbench.frame.HeadedFrame
import com.cobblemon.mod.common.client.render.models.blockbench.frame.QuadrupedFrame
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.CryProvider
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.PokemonPosableModel
import com.cobblemon.mod.common.client.render.models.blockbench.pose.CobblemonPose
import com.cobblemon.mod.common.entity.PoseType
import com.cobblemon.mod.common.entity.PoseType.Companion.UI_POSES
import com.cobblemon.mod.common.util.isInWater
import net.minecraft.client.model.geom.ModelPart
import net.minecraft.world.phys.Vec3
class LaprasModel(root: ModelPart) : PokemonPosableModel(root), HeadedFrame, QuadrupedFrame {
override val rootPart = root.registerChildWithAllChildren("lapras")
override val head = getPart("head_ai")
override val foreLeftLeg = getPart("leg_front_left")
override val foreRightLeg = getPart("leg_front_right")
override val hindLeftLeg = getPart("leg_back_left")
override val hindRightLeg = getPart("leg_back_right")
override var portraitScale = 1.14F
override var portraitTranslation = Vec3(-0.66, 1.91, 0.0)
override var profileScale = 0.48F
override var profileTranslation = Vec3(-0.01, 0.99, 0.0)
lateinit var landIdle: CobblemonPose
lateinit var landMove: CobblemonPose
lateinit var surfaceIdle: CobblemonPose
lateinit var surfaceMove: CobblemonPose
lateinit var underwaterIdle: CobblemonPose
lateinit var underwaterMove: CobblemonPose
override val cryAnimation = CryProvider { bedrockStateful("lapras", "cry") }
override fun registerPoses() {
val blink = quirk { bedrockStateful("lapras", "blink") }
landIdle = registerPose(
poseName = "land_idle",
poseTypes = UI_POSES + PoseType.STAND,
condition = { !it.isInWater },
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("lapras", "ground_idle")
)
)
landMove = registerPose(
poseName = "land_move",
poseTypes = setOf(PoseType.WALK),
condition = { !it.isInWater },
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("lapras", "ground_idle"),
QuadrupedWalkAnimation(this, 2.5F, 0.25F )
)
)
surfaceIdle = registerPose(
poseName = "surface_idle",
poseTypes = setOf(PoseType.STAND),
condition = { it.isInWater },
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("lapras", "surfacewater_idle")
)
)
surfaceMove = registerPose(
poseName = "surface_move",
poseTypes = setOf(PoseType.WALK),
condition = { it.isInWater },
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("lapras", "surfacewater_swim")
)
)
underwaterIdle = registerPose(
poseName = "underwater_idle",
poseTypes = setOf(PoseType.FLOAT),
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("lapras", "surfacewater_idle")
)
)
underwaterMove = registerPose(
poseName = "underwater_move",
poseTypes = setOf(PoseType.SWIM),
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("lapras", "surfacewater_swim")
)
)
}
// override fun getFaintAnimation(
// pokemonEntity: PokemonEntity,
// state: PosableState<PokemonEntity>
// ) = if (state.isPosedIn(landIdle, landMove)) bedrockStateful("lapras", "faint") else null
}
@@ -0,0 +1,63 @@
/*
* Copyright (C) 2023 Cobblemon Contributors
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
package com.cobblemon.mod.common.client.render.models.blockbench.pokemon.gen2
import com.cobblemon.mod.common.client.render.models.blockbench.animation.BipedWalkAnimation
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.CryProvider
import com.cobblemon.mod.common.client.render.models.blockbench.frame.BipedFrame
import com.cobblemon.mod.common.client.render.models.blockbench.frame.HeadedFrame
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.PokemonPosableModel
import com.cobblemon.mod.common.client.render.models.blockbench.pose.Pose
import com.cobblemon.mod.common.entity.PoseType
import net.minecraft.client.model.geom.ModelPart
import net.minecraft.world.phys.Vec3
class SmeargleModel(root: ModelPart) : PokemonPosableModel(root), HeadedFrame, BipedFrame {
override val rootPart = root.registerChildWithAllChildren("smeargle")
override val head = getPart("head")
/* No arm swinging because it's holding its tail */
override val leftLeg = getPart("leg_left")
override val rightLeg = getPart("leg_right")
override var portraitScale = 1.29F
override var portraitTranslation = Vec3(-0.03, 0.96, 0.0)
override var profileScale = 0.67F
override var profileTranslation = Vec3(0.05, 0.8, 0.0)
lateinit var standing: Pose
lateinit var walk: Pose
override val cryAnimation = CryProvider { bedrockStateful("smeargle", "cry") }
override fun registerPoses() {
val blink = quirk { bedrockStateful("smeargle", "blink") }
standing = registerPose(
poseName = "standing",
poseTypes = PoseType.STATIONARY_POSES + PoseType.UI_POSES + PoseType.SLEEP,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("smeargle", "ground_idle")
)
)
walk = registerPose(
poseName = "walk",
poseTypes = PoseType.MOVING_POSES,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("smeargle", "ground_idle"),
BipedWalkAnimation(this, periodMultiplier = 0.6F, amplitudeMultiplier = 0.9F)
)
)
}
}
@@ -0,0 +1,112 @@
/*
* Copyright (C) 2023 Cobblemon Contributors
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
package com.cobblemon.mod.common.client.render.models.blockbench.pokemon.gen2
import com.cobblemon.mod.common.client.render.models.blockbench.PosableState
import com.cobblemon.mod.common.client.render.models.blockbench.createTransformation
import com.cobblemon.mod.common.client.render.models.blockbench.frame.HeadedFrame
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.PokemonPosableModel
import com.cobblemon.mod.common.client.render.models.blockbench.pose.ModelPartTransformation.Companion.X_AXIS
import com.cobblemon.mod.common.client.render.models.blockbench.pose.Pose
import com.cobblemon.mod.common.entity.PoseType
import com.cobblemon.mod.common.util.isBattling
import net.minecraft.client.model.geom.ModelPart
import net.minecraft.world.phys.Vec3
class TyrogueModel (root: ModelPart) : PokemonPosableModel(root), HeadedFrame {
override val rootPart = root.registerChildWithAllChildren("tyrogue")
override val head = getPart("head")
override var portraitScale = 2.56F
override var portraitTranslation = Vec3(-0.24, 0.1, 0.0)
override var profileScale = 0.73F
override var profileTranslation = Vec3(-0.03, 0.7, 0.0)
lateinit var sleep: Pose
lateinit var standing: Pose
lateinit var walk: Pose
lateinit var shoulderLeft: Pose
lateinit var shoulderRight: Pose
lateinit var battleidle: Pose
val shoulderOffset = 3
// override val cryAnimation = CryProvider { bedrockStateful("tyrogue", "cry") }
override fun registerPoses() {
val blink = quirk { bedrockStateful("tyrogue", "blink") }
sleep = registerPose(
poseType = PoseType.SLEEP,
animations = arrayOf(bedrock("tyrogue", "sleep"))
)
standing = registerPose(
poseName = "standing",
poseTypes = PoseType.STATIONARY_POSES + PoseType.UI_POSES,
transformTicks = 10,
condition = { !it.isBattling },
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("tyrogue", "ground_idle")
)
)
walk = registerPose(
poseName = "walk",
poseTypes = PoseType.MOVING_POSES,
transformTicks = 10,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("tyrogue", "ground_walk")
)
)
battleidle = registerPose(
poseName = "battle_idle",
poseTypes = PoseType.STATIONARY_POSES,
transformTicks = 10,
quirks = arrayOf(blink),
condition = { it.isBattling },
animations = arrayOf(
singleBoneLook(),
bedrock("tyrogue", "battle_idle")
)
)
shoulderLeft = registerPose(
poseType = PoseType.SHOULDER_LEFT,
quirks = arrayOf(blink),
condition = { !it.isBattling },
animations = arrayOf(
singleBoneLook(),
bedrock("tyrogue", "shoulder_left")
),
transformedParts = arrayOf(
rootPart.createTransformation().addPosition(X_AXIS, shoulderOffset)
)
)
shoulderRight = registerPose(
poseType = PoseType.SHOULDER_RIGHT,
quirks = arrayOf(blink),
condition = { !it.isBattling },
animations = arrayOf(
singleBoneLook(),
bedrock("tyrogue", "shoulder_right")
),
transformedParts = arrayOf(
rootPart.createTransformation().addPosition(X_AXIS, -shoulderOffset)
)
)
}
override fun getFaintAnimation(state: PosableState) = if (state.isPosedIn(standing, walk, battleidle, sleep)) bedrockStateful("tyrogue", "faint") else null
}
@@ -0,0 +1,67 @@
/*
* Copyright (C) 2023 Cobblemon Contributors
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
package com.cobblemon.mod.common.client.render.models.blockbench.pokemon.gen4
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.CryProvider
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.PokemonPosableModel
import com.cobblemon.mod.common.client.render.models.blockbench.pose.Pose
import com.cobblemon.mod.common.entity.PoseType
import net.minecraft.client.model.geom.ModelPart
import net.minecraft.world.phys.Vec3
class MagnezoneModel(root: ModelPart) : PokemonPosableModel(root) {
override val rootPart = root.registerChildWithAllChildren("magnezone")
override var portraitScale = 1.4F
override var portraitTranslation = Vec3(-0.35, -0.28, 0.0)
override var profileScale = 0.6F
override var profileTranslation = Vec3(-0.1, 0.6, 0.0)
lateinit var standing: Pose
lateinit var walk: Pose
lateinit var sleep: Pose
override val cryAnimation = CryProvider { bedrockStateful("magnezone", "cry") }
override fun registerPoses() {
val blink = quirk { bedrockStateful("magnezone", "blink") }
// sleep = registerPose(
// poseType = PoseType.SLEEP,
// animations = arrayOf(bedrock("magnezone", "sleep"))
// )
registerPose(
poseName = "hover",
poseTypes = PoseType.ALL_POSES - PoseType.FLY - PoseType.SLEEP - PoseType.SWIM,
transformTicks = 10,
quirks = arrayOf(blink),
animations = arrayOf(
bedrock("magnezone", "ground_idle")
)
)
registerPose(
poseName = "fly",
poseTypes = setOf(PoseType.FLY, PoseType.SWIM),
transformTicks = 10,
quirks = arrayOf(blink),
animations = arrayOf(
bedrock("magnezone", "ground_idle")
)
)
}
// override fun getFaintAnimation(
// pokemonEntity: PokemonEntity,
// state: PosableState<PokemonEntity>
// ) = if (state.isPosedIn(standing, walk)) bedrockStateful("magnezone", "faint") else null
}
@@ -10,7 +10,6 @@ package com.cobblemon.mod.common.client.render.models.blockbench.pokemon.gen4
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.PokemonPosableModel
import com.cobblemon.mod.common.client.render.models.blockbench.frame.HeadedFrame
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.CryProvider
import com.cobblemon.mod.common.client.render.models.blockbench.pose.Pose
import com.cobblemon.mod.common.entity.PoseType.Companion.MOVING_POSES
import com.cobblemon.mod.common.entity.PoseType.Companion.STATIONARY_POSES
@@ -31,8 +30,6 @@ class MunchlaxModel(root: ModelPart) : PokemonPosableModel(root), HeadedFrame {
lateinit var standing: Pose
lateinit var walk: Pose
override val cryAnimation = CryProvider { bedrockStateful("munchlax", "cry") }
override fun registerPoses() {
val blink = quirk { bedrockStateful("munchlax", "blink") }
standing = registerPose(
@@ -0,0 +1,118 @@
/*
* Copyright (C) 2023 Cobblemon Contributors
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
package com.cobblemon.mod.common.client.render.models.blockbench.pokemon.gen5
import com.cobblemon.mod.common.client.render.models.blockbench.frame.BiWingedFrame
import com.cobblemon.mod.common.client.render.models.blockbench.frame.HeadedFrame
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.CryProvider
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.PokemonPosableModel
import com.cobblemon.mod.common.client.render.models.blockbench.pose.CobblemonPose
import com.cobblemon.mod.common.client.render.models.blockbench.pose.ModelPartTransformation
import com.cobblemon.mod.common.client.render.models.blockbench.wavefunction.cosineFunction
import com.cobblemon.mod.common.client.render.models.blockbench.wavefunction.sineFunction
import com.cobblemon.mod.common.entity.PoseType
import com.cobblemon.mod.common.util.math.geometry.toRadians
import net.minecraft.client.model.geom.ModelPart
import net.minecraft.world.phys.Vec3
class HydreigonModel (root: ModelPart) : PokemonPosableModel(root), HeadedFrame {
override val rootPart = root.registerChildWithAllChildren("hydreigon")
override val head = getPart("neck")
override var portraitScale = 1.57F
override var portraitTranslation = Vec3(-1.04, 1.93, 0.0)
override var profileScale = 0.58F
override var profileTranslation = Vec3(-0.06, 1.2, 0.0)
lateinit var standing: CobblemonPose
lateinit var walk: CobblemonPose
override val cryAnimation = CryProvider { bedrockStateful("hydreigon", "cry") }
override fun registerPoses() {
val blink = quirk { bedrockStateful("hydreigon", "blink") }
val wingFrame1 = object : BiWingedFrame {
override val rootPart = this@HydreigonModel.rootPart
override val leftWing = getPart("wing_top_left")
override val rightWing = getPart("wing_top_right")
}
val wingFrame2 = object : BiWingedFrame {
override val rootPart = this@HydreigonModel.rootPart
override val leftWing = getPart("wing_middle_left")
override val rightWing = getPart("wing_middle_right")
}
val wingFrame3 = object : BiWingedFrame {
override val rootPart = this@HydreigonModel.rootPart
override val leftWing = getPart("wing_bottom_left")
override val rightWing = getPart("wing_bottom_right")
}
standing = registerPose (
poseName = "standing",
quirks = arrayOf(blink),
transformTicks = 10,
poseTypes = PoseType.UI_POSES + PoseType.STATIONARY_POSES,
animations = arrayOf(
singleBoneLook(),
bedrock("hydreigon", "air_idle"),
wingFrame1.wingFlap(
flapFunction = sineFunction(verticalShift = -25F.toRadians(), period = 1.5F, amplitude = 0.8F),
timeVariable = { state, _, _ -> state.animationSeconds },
axis = ModelPartTransformation.Y_AXIS
),
wingFrame2.wingFlap(
flapFunction = cosineFunction(verticalShift = -25F.toRadians(), period = 2F, amplitude = 0.65F),
timeVariable = { state, _, _ -> 0.01F + state.animationSeconds },
axis = ModelPartTransformation.Y_AXIS
),
wingFrame3.wingFlap(
flapFunction = sineFunction(verticalShift = -25F.toRadians(), period = 2F, amplitude = 0.5F),
timeVariable = { state, _, _ -> 0.01F + state.animationSeconds },
axis = ModelPartTransformation.Y_AXIS
)
)
)
walk = registerPose(
poseName = "walk",
quirks = arrayOf(blink),
transformTicks = 10,
poseTypes = PoseType.MOVING_POSES,
animations = arrayOf(
singleBoneLook(),
bedrock("hydreigon", "air_fly"),
wingFrame1.wingFlap(
flapFunction = sineFunction(verticalShift = -25F.toRadians(), period = 2F, amplitude = 0.5F),
timeVariable = { state, _, _ -> state.animationSeconds },
axis = ModelPartTransformation.Y_AXIS
),
wingFrame2.wingFlap(
flapFunction = cosineFunction(verticalShift = -25F.toRadians(), period = 2F, amplitude = 0.65F),
timeVariable = { state, _, _ -> 0.01F + state.animationSeconds },
axis = ModelPartTransformation.Y_AXIS
),
wingFrame3.wingFlap(
flapFunction = sineFunction(verticalShift = -25F.toRadians(), period = 1.5F, amplitude = 0.8F),
timeVariable = { state, _, _ -> 0.01F + state.animationSeconds },
axis = ModelPartTransformation.Y_AXIS
)
//bedrock("hydreigon", "ground_walk")
)
)
}
// override fun getFaintAnimation(
// pokemonEntity: PokemonEntity,
// state: PosableState<PokemonEntity>
// ) = if (state.isPosedIn(standing, walk)) bedrockStateful("hydreigon", "faint") else null
}
@@ -0,0 +1,85 @@
/*
* Copyright (C) 2023 Cobblemon Contributors
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
package com.cobblemon.mod.common.client.render.models.blockbench.pokemon.gen6
import com.cobblemon.mod.common.client.render.models.blockbench.createTransformation
import com.cobblemon.mod.common.client.render.models.blockbench.frame.HeadedFrame
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.CryProvider
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.PokemonPosableModel
import com.cobblemon.mod.common.client.render.models.blockbench.pose.CobblemonPose
import com.cobblemon.mod.common.entity.PoseType
import net.minecraft.client.model.geom.ModelPart
import net.minecraft.world.phys.Vec3
class FlabebeModel (root: ModelPart) : PokemonPosableModel(root), HeadedFrame {
override val rootPart = root.registerChildWithAllChildren("flabebe")
override val head = getPart("head")
override var portraitScale = 2.26F
override var portraitTranslation = Vec3(0.0, -0.14, 0.0)
override var profileScale = 0.81F
override var profileTranslation = Vec3(0.0, 0.63, 0.0)
lateinit var standing: CobblemonPose
lateinit var walk: CobblemonPose
lateinit var shoulderLeft: CobblemonPose
lateinit var shoulderRight: CobblemonPose
override val cryAnimation = CryProvider { bedrockStateful("flabebe", "cry") }
val shoulderOffset = 10.5
override fun registerPoses() {
val blink = quirk { bedrockStateful("flabebe", "blink") }
standing = registerPose(
poseName = "standing",
poseTypes = PoseType.STATIONARY_POSES + PoseType.UI_POSES + PoseType.SLEEP,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("flabebe", "ground_idle")
)
)
walk = registerPose(
poseName = "walk",
poseTypes = PoseType.MOVING_POSES,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("flabebe", "ground_idle"),
)
)
shoulderLeft = registerPose(
poseType = PoseType.SHOULDER_LEFT,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("flabebe", "ground_idle")
),
transformedParts = arrayOf(
rootPart.createTransformation().addPosition(shoulderOffset, -2, 0)
)
)
shoulderRight = registerPose(
poseType = PoseType.SHOULDER_RIGHT,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("flabebe", "ground_idle")
),
transformedParts = arrayOf(
rootPart.createTransformation().addPosition(-shoulderOffset, -2, 0)
)
)
}
}
@@ -0,0 +1,57 @@
/*
* Copyright (C) 2023 Cobblemon Contributors
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
package com.cobblemon.mod.common.client.render.models.blockbench.pokemon.gen6
import com.cobblemon.mod.common.client.render.models.blockbench.frame.HeadedFrame
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.CryProvider
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.PokemonPosableModel
import com.cobblemon.mod.common.client.render.models.blockbench.pose.CobblemonPose
import com.cobblemon.mod.common.entity.PoseType
import net.minecraft.client.model.geom.ModelPart
import net.minecraft.world.phys.Vec3
class FloetteModel (root: ModelPart) : PokemonPosableModel(root), HeadedFrame {
override val rootPart = root.registerChildWithAllChildren("floette")
override val head = getPart("head")
override var portraitScale = 1.8F
override var portraitTranslation = Vec3(-0.11, -0.11, 0.0)
override var profileScale = 0.73F
override var profileTranslation = Vec3(0.0, 0.68, 0.0)
lateinit var standing: CobblemonPose
lateinit var walk: CobblemonPose
override val cryAnimation = CryProvider { bedrockStateful("floette", "cry") }
override fun registerPoses() {
val blink = quirk { bedrockStateful("floette", "blink") }
standing = registerPose(
poseName = "standing",
poseTypes = PoseType.STATIONARY_POSES + PoseType.UI_POSES + PoseType.SLEEP,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(maxYaw = 10F),
bedrock("floette", "ground_idle")
)
)
walk = registerPose(
poseName = "walk",
poseTypes = PoseType.MOVING_POSES,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(maxYaw = 10F),
bedrock("floette", "ground_idle"),
)
)
}
}
@@ -0,0 +1,57 @@
/*
* Copyright (C) 2023 Cobblemon Contributors
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
package com.cobblemon.mod.common.client.render.models.blockbench.pokemon.gen6
import com.cobblemon.mod.common.client.render.models.blockbench.frame.HeadedFrame
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.CryProvider
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.PokemonPosableModel
import com.cobblemon.mod.common.client.render.models.blockbench.pose.CobblemonPose
import com.cobblemon.mod.common.entity.PoseType
import net.minecraft.client.model.geom.ModelPart
import net.minecraft.world.phys.Vec3
class FlorgesModel (root: ModelPart) : PokemonPosableModel(root), HeadedFrame {
override val rootPart = root.registerChildWithAllChildren("florges")
override val head = getPart("head")
override var portraitScale = 1.8F
override var portraitTranslation = Vec3(-0.28, 2.31, 0.0)
override var profileScale = 0.54F
override var profileTranslation = Vec3(0.0, 1.04, 0.0)
lateinit var standing: CobblemonPose
lateinit var walk: CobblemonPose
override val cryAnimation = CryProvider { bedrockStateful("florges", "cry") }
override fun registerPoses() {
val blink = quirk { bedrockStateful("florges", "blink") }
standing = registerPose(
poseName = "standing",
poseTypes = PoseType.STATIONARY_POSES + PoseType.UI_POSES + PoseType.SLEEP,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("florges", "ground_idle")
)
)
walk = registerPose(
poseName = "walk",
poseTypes = PoseType.MOVING_POSES,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("florges", "ground_idle"),
)
)
}
}
@@ -0,0 +1,104 @@
/*
* Copyright (C) 2023 Cobblemon Contributors
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
package com.cobblemon.mod.common.client.render.models.blockbench.pokemon.gen7
import com.cobblemon.mod.common.client.render.models.blockbench.PosableState
import com.cobblemon.mod.common.client.render.models.blockbench.frame.HeadedFrame
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.CryProvider
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.PokemonPosableModel
import com.cobblemon.mod.common.client.render.models.blockbench.pose.Pose
import com.cobblemon.mod.common.entity.PoseType
import com.cobblemon.mod.common.entity.PoseType.Companion.UI_POSES
import com.cobblemon.mod.common.util.isBattling
import net.minecraft.client.model.geom.ModelPart
import net.minecraft.world.phys.Vec3
class BrionneModel(root: ModelPart) : PokemonPosableModel(root), HeadedFrame {
override val rootPart = root.registerChildWithAllChildren("brionne")
override val head = getPart("head")
override var portraitScale = 2.1F
override var portraitTranslation = Vec3(-0.4, -0.3, 0.0)
override var profileScale = 0.7F
override var profileTranslation = Vec3(0.0, 0.7, 0.0)
lateinit var standing: Pose
lateinit var walk: Pose
lateinit var float: Pose
lateinit var swim: Pose
lateinit var battleidle: Pose
// lateinit var sleep: Pose
override val cryAnimation = CryProvider { bedrockStateful("brionne", "cry") }
override fun registerPoses() {
val blink = quirk { bedrockStateful("brionne", "blink") }
// sleep = registerPose(
// poseType = PoseType.SLEEP,
// animations = arrayOf(bedrock("brionne", "sleep"))
// )
standing = registerPose(
poseName = "standing",
poseTypes = UI_POSES + PoseType.STAND,
quirks = arrayOf(blink),
condition = { !it.isBattling },
animations = arrayOf(
singleBoneLook(),
bedrock("brionne", "ground_idle")
)
)
walk = registerPose(
poseName = "walk",
poseType = PoseType.WALK,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("brionne", "ground_walk")
)
)
float = registerPose(
poseName = "float",
poseType = PoseType.FLOAT,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("brionne", "water_idle")
)
)
swim = registerPose(
poseName = "swim",
poseType = PoseType.SWIM,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("brionne", "water_swim")
)
)
battleidle = registerPose(
poseName = "battle_idle",
poseTypes = PoseType.STATIONARY_POSES,
transformTicks = 10,
quirks = arrayOf(blink),
condition = { it.isBattling },
animations = arrayOf(
singleBoneLook(),
bedrock("brionne", "battle_idle")
)
)
}
override fun getFaintAnimation(state: PosableState) = if (state.isPosedIn(standing, walk, battleidle, swim, float)) bedrockStateful("brionne", "faint") else null
}
@@ -0,0 +1,73 @@
/*
* Copyright (C) 2023 Cobblemon Contributors
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
package com.cobblemon.mod.common.client.render.models.blockbench.pokemon.gen7
import com.cobblemon.mod.common.client.render.models.blockbench.animation.BimanualSwingAnimation
import com.cobblemon.mod.common.client.render.models.blockbench.animation.BipedWalkAnimation
import com.cobblemon.mod.common.client.render.models.blockbench.frame.BimanualFrame
import com.cobblemon.mod.common.client.render.models.blockbench.frame.BipedFrame
import com.cobblemon.mod.common.client.render.models.blockbench.frame.HeadedFrame
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.CryProvider
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.PokemonPosableModel
import com.cobblemon.mod.common.client.render.models.blockbench.pose.CobblemonPose
import com.cobblemon.mod.common.entity.PoseType
import net.minecraft.client.model.geom.ModelPart
import net.minecraft.world.phys.Vec3
class FomantisModel (root: ModelPart) : PokemonPosableModel(root), HeadedFrame, BipedFrame, BimanualFrame {
override val rootPart = root.registerChildWithAllChildren("fomantis")
override val head = getPart("head")
override val leftArm = getPart("left_front_arm")
override val rightArm = getPart("right_front_arm")
override val leftLeg = getPart("left_leg")
override val rightLeg = getPart("right_leg")
override var portraitScale = 2.6F
override var portraitTranslation = Vec3(-0.22, -1.6, 0.0)
override var profileScale = 0.75F
override var profileTranslation = Vec3(0.0, 0.67, 0.0)
lateinit var standing: CobblemonPose
lateinit var walk: CobblemonPose
override val cryAnimation = CryProvider { bedrockStateful("fomantis", "cry") }
override fun registerPoses() {
val blink = quirk { bedrockStateful("fomantis", "blink") }
standing = registerPose(
poseName = "standing",
poseTypes = PoseType.STATIONARY_POSES + PoseType.UI_POSES,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("fomantis", "ground_idle")
)
)
walk = registerPose(
poseName = "walk",
poseTypes = PoseType.MOVING_POSES,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("fomantis", "ground_idle"),
BipedWalkAnimation(this, periodMultiplier = 0.6F, amplitudeMultiplier = 0.9F),
BimanualSwingAnimation(this, swingPeriodMultiplier = 0.6F, amplitudeMultiplier = 0.9F)
//bedrock("fomantis", "ground_walk")
)
)
}
// override fun getFaintAnimation(
// pokemonEntity: PokemonEntity,
// state: PosableState<PokemonEntity>
// ) = if (state.isPosedIn(standing, walk)) bedrockStateful("fomantis", "faint") else null
}
@@ -0,0 +1,73 @@
/*
* Copyright (C) 2023 Cobblemon Contributors
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
package com.cobblemon.mod.common.client.render.models.blockbench.pokemon.gen7
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.PokemonPosableModel
import com.cobblemon.mod.common.client.render.models.blockbench.animation.BimanualSwingAnimation
import com.cobblemon.mod.common.client.render.models.blockbench.animation.BipedWalkAnimation
import com.cobblemon.mod.common.client.render.models.blockbench.frame.BimanualFrame
import com.cobblemon.mod.common.client.render.models.blockbench.frame.BipedFrame
import com.cobblemon.mod.common.client.render.models.blockbench.frame.HeadedFrame
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.CryProvider
import com.cobblemon.mod.common.client.render.models.blockbench.pose.CobblemonPose
import com.cobblemon.mod.common.entity.PoseType
import net.minecraft.client.model.geom.ModelPart
import net.minecraft.world.phys.Vec3
class LurantisModel (root: ModelPart) : PokemonPosableModel(root), HeadedFrame, BipedFrame, BimanualFrame {
override val rootPart = root.registerChildWithAllChildren("lurantis")
override val head = getPart("head")
override val leftArm = getPart("left_arm")
override val rightArm = getPart("right_arm")
override val leftLeg = getPart("left_leg")
override val rightLeg = getPart("right_leg")
override var portraitScale = 2.57F
override var portraitTranslation = Vec3(-0.18, 0.35, 0.0)
override var profileScale = 0.71F
override var profileTranslation = Vec3(0.0, 0.69, 0.0)
lateinit var standing: CobblemonPose
lateinit var walk: CobblemonPose
override val cryAnimation = CryProvider { bedrockStateful("lurantis", "cry") }
override fun registerPoses() {
val blink = quirk { bedrockStateful("lurantis", "blink") }
standing = registerPose(
poseName = "standing",
poseTypes = PoseType.STATIONARY_POSES + PoseType.UI_POSES,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("lurantis", "ground_idle")
)
)
walk = registerPose(
poseName = "walk",
poseTypes = PoseType.MOVING_POSES,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("lurantis", "ground_idle"),
BipedWalkAnimation(this, periodMultiplier = 0.6F, amplitudeMultiplier = 0.9F),
BimanualSwingAnimation(this, swingPeriodMultiplier = 0.6F, amplitudeMultiplier = 0.9F)
//bedrock("lurantis", "ground_walk")
)
)
}
// override fun getFaintAnimation(
// pokemonEntity: PokemonEntity,
// state: PosableState<PokemonEntity>
// ) = if (state.isPosedIn(standing, walk)) bedrockStateful("lurantis", "faint") else null
}
@@ -0,0 +1,134 @@
/*
* Copyright (C) 2023 Cobblemon Contributors
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
package com.cobblemon.mod.common.client.render.models.blockbench.pokemon.gen7
import com.cobblemon.mod.common.client.render.models.blockbench.PosableState
import com.cobblemon.mod.common.client.render.models.blockbench.createTransformation
import com.cobblemon.mod.common.client.render.models.blockbench.frame.HeadedFrame
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.CryProvider
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.PokemonPosableModel
import com.cobblemon.mod.common.client.render.models.blockbench.pose.ModelPartTransformation
import com.cobblemon.mod.common.client.render.models.blockbench.pose.Pose
import com.cobblemon.mod.common.entity.PoseType
import com.cobblemon.mod.common.entity.PoseType.Companion.UI_POSES
import com.cobblemon.mod.common.util.isBattling
import net.minecraft.client.model.geom.ModelPart
import net.minecraft.world.phys.Vec3
class PopplioModel(root: ModelPart) : PokemonPosableModel(root), HeadedFrame {
override val rootPart = root.registerChildWithAllChildren("popplio")
override val head = getPart("head")
override var portraitScale = 2.6F
override var portraitTranslation = Vec3(-0.25, -1.5, 0.0)
override var profileScale = 1.0F
override var profileTranslation = Vec3(0.0, 0.2, 0.0)
lateinit var standing: Pose
lateinit var walk: Pose
lateinit var battleidle: Pose
lateinit var sleep: Pose
lateinit var float: Pose
lateinit var swim: Pose
lateinit var shoulderLeft: Pose
lateinit var shoulderRight: Pose
val shoulderOffset = 1
override val cryAnimation = CryProvider { bedrockStateful("popplio", "cry") }
override fun registerPoses() {
val blink = quirk { bedrockStateful("popplio", "blink") }
sleep = registerPose(
poseType = PoseType.SLEEP,
animations = arrayOf(bedrock("popplio", "sleep"))
)
standing = registerPose(
poseName = "standing",
poseTypes = UI_POSES + PoseType.STAND,
quirks = arrayOf(blink),
condition = { !it.isBattling },
animations = arrayOf(
singleBoneLook(),
bedrock("popplio", "ground_idle")
)
)
walk = registerPose(
poseName = "walk",
poseType = PoseType.WALK,
quirks = arrayOf(blink),
condition = { !it.isBattling },
animations = arrayOf(
singleBoneLook(),
bedrock("popplio", "ground_walk")
)
)
float = registerPose(
poseName = "float",
poseType = PoseType.FLOAT,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("popplio", "water_idle")
)
)
swim = registerPose(
poseName = "swim",
poseType = PoseType.SWIM,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("popplio", "water_swim")
)
)
battleidle = registerPose(
poseName = "battle_idle",
poseTypes = PoseType.STATIONARY_POSES,
transformTicks = 10,
quirks = arrayOf(blink),
condition = { it.isBattling },
animations = arrayOf(
singleBoneLook(),
bedrock("popplio", "battle_idle")
)
)
shoulderLeft = registerPose(
poseType = PoseType.SHOULDER_LEFT,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("popplio", "shoulder_left")
),
transformedParts = arrayOf(
rootPart.createTransformation().addPosition(ModelPartTransformation.X_AXIS, shoulderOffset)
)
)
shoulderRight = registerPose(
poseType = PoseType.SHOULDER_RIGHT,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("popplio", "shoulder_right")
),
transformedParts = arrayOf(
rootPart.createTransformation().addPosition(ModelPartTransformation.X_AXIS, -shoulderOffset)
)
)
}
override fun getFaintAnimation(state: PosableState) = if (state.isPosedIn(standing, walk, sleep, battleidle, swim, float)) bedrockStateful("popplio", "faint") else null
}
@@ -0,0 +1,106 @@
/*
* Copyright (C) 2023 Cobblemon Contributors
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
package com.cobblemon.mod.common.client.render.models.blockbench.pokemon.gen7
import com.cobblemon.mod.common.client.render.models.blockbench.PosableState
import com.cobblemon.mod.common.client.render.models.blockbench.frame.HeadedFrame
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.CryProvider
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.PokemonPosableModel
import com.cobblemon.mod.common.client.render.models.blockbench.pose.Pose
import com.cobblemon.mod.common.entity.PoseType
import com.cobblemon.mod.common.entity.PoseType.Companion.UI_POSES
import com.cobblemon.mod.common.util.isBattling
import com.cobblemon.mod.common.util.isInWater
import net.minecraft.client.model.geom.ModelPart
import net.minecraft.world.phys.Vec3
class PrimarinaModel(root: ModelPart) : PokemonPosableModel(root), HeadedFrame {
override val rootPart = root.registerChildWithAllChildren("primarina")
override val head = getPart("head")
override var portraitScale = 2.0F
override var portraitTranslation = Vec3(-0.7, 0.6, 0.0)
override var profileScale = 0.55F
override var profileTranslation = Vec3(0.0, 0.8, 0.0)
lateinit var standing: Pose
lateinit var walk: Pose
lateinit var float: Pose
lateinit var swim: Pose
lateinit var sleep: Pose
lateinit var battleidle: Pose
override val cryAnimation = CryProvider { bedrockStateful("primarina", "cry") }
override fun registerPoses() {
val blink = quirk { bedrockStateful("primarina", "blink") }
sleep = registerPose(
poseType = PoseType.SLEEP,
animations = arrayOf(bedrock("primarina", "sleep"))
)
standing = registerPose(
poseName = "standing",
poseTypes = UI_POSES + PoseType.STAND,
condition = { !it.isBattling },
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("primarina", "ground_idle")
)
)
walk = registerPose(
poseName = "walk",
poseType = PoseType.WALK,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("primarina", "ground_walk")
)
)
float = registerPose(
poseName = "float",
poseType = PoseType.FLOAT,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("primarina", "water_idle")
)
)
swim = registerPose(
poseName = "swim",
poseType = PoseType.SWIM,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("primarina", "water_swim")
)
)
battleidle = registerPose(
poseName = "battle_idle",
poseTypes = PoseType.STATIONARY_POSES,
transformTicks = 10,
quirks = arrayOf(blink),
condition = { it.isBattling && !it.isInWater },
animations = arrayOf(
singleBoneLook(),
bedrock("primarina", "battle_idle")
)
)
}
override fun getFaintAnimation(state: PosableState) = if (state.isPosedIn(standing, walk, battleidle, sleep)) bedrockStateful("primarina", "faint") else null
}
@@ -0,0 +1,116 @@
/*
* Copyright (C) 2023 Cobblemon Contributors
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
package com.cobblemon.mod.common.client.render.models.blockbench.pokemon.gen9
import com.cobblemon.mod.common.client.render.models.blockbench.PosableState
import com.cobblemon.mod.common.client.render.models.blockbench.createTransformation
import com.cobblemon.mod.common.client.render.models.blockbench.frame.HeadedFrame
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.CryProvider
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.PokemonPosableModel
import com.cobblemon.mod.common.client.render.models.blockbench.pose.CobblemonPose
import com.cobblemon.mod.common.client.render.models.blockbench.pose.ModelPartTransformation
import com.cobblemon.mod.common.client.render.models.blockbench.pose.Pose
import com.cobblemon.mod.common.entity.PoseType
import com.cobblemon.mod.common.util.isBattling
import net.minecraft.client.model.geom.ModelPart
import net.minecraft.world.phys.Vec3
class GimmighoulRoamingModel (root: ModelPart) : PokemonPosableModel(root), HeadedFrame {
override val rootPart = root.registerChildWithAllChildren("gimmighoul_roaming")
override val head = getPart("head")
override var portraitScale = 2.5F
override var portraitTranslation = Vec3(0.0, -1.3, 0.0)
override var profileScale = 0.7F
override var profileTranslation = Vec3(0.0, 0.76, 0.0)
lateinit var standing: CobblemonPose
lateinit var walk: CobblemonPose
lateinit var battleIdle: CobblemonPose
lateinit var sleep: CobblemonPose
lateinit var shoulderLeft: CobblemonPose
lateinit var shoulderRight: CobblemonPose
val shoulderOffset = 1
override val cryAnimation = CryProvider { bedrockStateful("gimmighoul_roaming", "cry") }
override fun registerPoses() {
val blink = quirk { bedrockStateful("gimmighoul_roaming", "blink") }
val quirk = quirk(secondsBetweenOccurrences = 30F to 120F) { bedrockStateful("gimmighoul_roaming", "idle_quirk") }
val sleepQuirk = quirk (secondsBetweenOccurrences = 30F to 60F) { bedrockStateful("gimmighoul_roaming", "sleep_quirk") }
sleep = registerPose(
poseName = "sleep",
poseType = PoseType.SLEEP,
quirks = arrayOf(sleepQuirk),
animations = arrayOf(bedrock("gimmighoul_roaming", "sleep"))
)
standing = registerPose(
poseName = "standing",
poseTypes = PoseType.STATIONARY_POSES + PoseType.UI_POSES,
condition = { !it.isBattling },
quirks = arrayOf(blink,quirk),
animations = arrayOf(
singleBoneLook(),
bedrock("gimmighoul_roaming", "ground_idle")
)
)
walk = registerPose(
poseName = "walk",
poseTypes = PoseType.MOVING_POSES,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("gimmighoul_roaming", "ground_walk")
)
)
battleIdle = registerPose(
poseName = "battle_idle",
poseTypes = PoseType.STATIONARY_POSES,
transformTicks = 10,
condition = { it.isBattling },
animations = arrayOf(
singleBoneLook(),
bedrock("gimmighoul_roaming", "battle_idle")
)
)
shoulderLeft = registerPose(
poseType = PoseType.SHOULDER_LEFT,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("gimmighoul_roaming", "ground_idle")
),
transformedParts = arrayOf(
rootPart.createTransformation().addPosition(ModelPartTransformation.X_AXIS, shoulderOffset)
)
)
shoulderRight = registerPose(
poseType = PoseType.SHOULDER_RIGHT,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("gimmighoul_roaming", "ground_idle")
),
transformedParts = arrayOf(
rootPart.createTransformation().addPosition(ModelPartTransformation.X_AXIS, -shoulderOffset)
)
)
}
override fun getFaintAnimation(state: PosableState) = bedrockStateful("gimmighoul_roaming", "faint")
}
@@ -0,0 +1,86 @@
/*
* Copyright (C) 2023 Cobblemon Contributors
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
package com.cobblemon.mod.common.client.render.models.blockbench.pokemon.gen9
import com.cobblemon.mod.common.client.render.models.blockbench.frame.HeadedFrame
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.CryProvider
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.PokemonPosableModel
import com.cobblemon.mod.common.client.render.models.blockbench.pose.Pose
import com.cobblemon.mod.common.entity.PoseType
import com.cobblemon.mod.common.util.isBattling
import net.minecraft.client.model.geom.ModelPart
import net.minecraft.world.phys.Vec3
class SprigatitoModel (root: ModelPart) : PokemonPosableModel(root), HeadedFrame {
override val rootPart = root.registerChildWithAllChildren("sprigatito")
override val head = getPart("head")
override var portraitScale = 2.1F
override var portraitTranslation = Vec3(-0.35, -0.7, 0.0)
override var profileScale = 0.8F
override var profileTranslation = Vec3(0.0, 0.53, 0.0)
lateinit var standing: Pose
lateinit var walking: Pose
lateinit var sleep: Pose
lateinit var battleidle: Pose
override val cryAnimation = CryProvider { bedrockStateful("sprigatito", "cry") }
override fun registerPoses() {
val blink = quirk { bedrockStateful("sprigatito", "blink") }
val earTwitchRight = quirk(secondsBetweenOccurrences = 60F to 120F) { bedrockStateful("sprigatito", "quirk_ear-twitch-left") }
val earTwitchLeft = quirk(secondsBetweenOccurrences = 60F to 120F) { bedrockStateful("sprigatito", "quirk_ear-twitch-right") }
sleep = registerPose(
poseType = PoseType.SLEEP,
quirks = arrayOf(earTwitchRight, earTwitchLeft),
animations = arrayOf(bedrock("sprigatito", "sleep"))
)
standing = registerPose(
poseName = "standing",
poseTypes = PoseType.STATIONARY_POSES + PoseType.UI_POSES,
transformTicks = 10,
condition = { !it.isBattling },
quirks = arrayOf(blink, earTwitchRight, earTwitchLeft),
animations = arrayOf(
singleBoneLook(),
bedrock("sprigatito", "ground_idle")
)
)
walking = registerPose(
poseName = "walking",
poseTypes = PoseType.MOVING_POSES,
transformTicks = 10,
quirks = arrayOf(blink, earTwitchRight, earTwitchLeft),
animations = arrayOf(
singleBoneLook(),
bedrock("sprigatito", "ground_walk")
)
)
battleidle = registerPose(
poseName = "battle_idle",
poseTypes = PoseType.STATIONARY_POSES,
transformTicks = 10,
quirks = arrayOf(blink, earTwitchRight, earTwitchLeft),
condition = { it.isBattling },
animations = arrayOf(
singleBoneLook(),
bedrock("sprigatito", "battle_idle")
)
)
}
// override fun getFaintAnimation(
// pokemonEntity: PokemonEntity,
// state: PosableState<PokemonEntity>
// ) = if (state.isPosedIn(standing, walking, battleidle, sleep)) bedrockStateful("sprigatito", "faint") else null
}
@@ -69,6 +69,7 @@ object PokemonModelRepository : VaryingModelRepository<PokemonPosableModel>() {
inbuilt("bellossom", ::BellossomModel)
inbuilt("voltorb", ::VoltorbModel)
inbuilt("electrode", ::ElectrodeModel)
inbuilt("lapras", ::LaprasModel)
inbuilt("ekans", ::EkansModel)
inbuilt("machop", ::MachopModel)
inbuilt("machoke", ::MachokeModel)
@@ -166,12 +167,14 @@ object PokemonModelRepository : VaryingModelRepository<PokemonPosableModel>() {
inbuilt("elekid", ::ElekidModel)
inbuilt("pichu", ::PichuModel)
inbuilt("smoochum", ::SmoochumModel)
inbuilt("tyrogue", ::TyrogueModel)
inbuilt("hitmontop", ::HitmontopModel)
inbuilt("electivire", ::ElectivireModel)
inbuilt("glaceon", ::GlaceonModel)
inbuilt("happiny", ::HappinyModel)
inbuilt("leafeon", ::LeafeonModel)
inbuilt("lickilicky", ::LickilickyModel)
inbuilt("magnezone", ::MagnezoneModel)
inbuilt("mimejr", ::MimejrModel)
inbuilt("scizor", ::ScizorModel)
inbuilt("tangrowth", ::TangrowthModel)
@@ -282,6 +285,9 @@ object PokemonModelRepository : VaryingModelRepository<PokemonPosableModel>() {
inbuilt("chimchar", :: ChimcharModel)
inbuilt("monferno", :: MonfernoModel)
inbuilt("infernape", :: InfernapeModel)
inbuilt("popplio", :: PopplioModel)
inbuilt("brionne", :: BrionneModel)
inbuilt("primarina", ::PrimarinaModel)
inbuilt("seedot", ::SeedotModel)
inbuilt("nuzleaf", ::NuzleafModel)
inbuilt("shiftry", ::ShiftryModel)
@@ -343,6 +349,7 @@ object PokemonModelRepository : VaryingModelRepository<PokemonPosableModel>() {
inbuilt("gliscor", ::GliscorModel)
inbuilt("poochyena", ::PoochyenaModel)
inbuilt("mightyena", ::MightyenaModel)
inbuilt("sprigatito", ::SprigatitoModel)
inbuilt("floragato", ::FloragatoModel)
inbuilt("meowscarada", ::MeowscaradaModel)
inbuilt("shroomish", ::ShroomishModel)
@@ -504,6 +511,7 @@ object PokemonModelRepository : VaryingModelRepository<PokemonPosableModel>() {
inbuilt("litwick", ::LitwickModel)
inbuilt("lampent", ::LampentModel)
inbuilt("chandelure", ::ChandelureModel)
inbuilt("gimmighoulroaming", ::GimmighoulRoamingModel)
inbuilt("gimmighoulchest", ::GimmighoulChestModel)
inbuilt("gholdengo", ::GholdengoModel)
inbuilt("drifloon", ::DrifloonModel)
@@ -573,8 +581,11 @@ object PokemonModelRepository : VaryingModelRepository<PokemonPosableModel>() {
inbuilt("beartic", ::BearticModel)
inbuilt("deino", ::DeinoModel)
inbuilt("zweilous", ::ZweilousModel)
inbuilt("hydreigon", ::HydreigonModel)
inbuilt("larvesta", ::LarvestaModel)
inbuilt("volcarona", ::VolcaronaModel)
inbuilt("fomantis", ::FomantisModel)
inbuilt("lurantis", ::LurantisModel)
inbuilt("dreepy", ::DreepyModel)
inbuilt("drakloak", ::DrakloakModel)
inbuilt("dragapult", ::DragapultModel)
@@ -585,6 +596,9 @@ object PokemonModelRepository : VaryingModelRepository<PokemonPosableModel>() {
inbuilt("alomomola", ::AlomomolaModel)
inbuilt("ferroseed", ::FerroseedModel)
inbuilt("ferrothorn", ::FerrothornModel)
inbuilt("flabebe", ::FlabebeModel)
inbuilt("floette", ::FloetteModel)
inbuilt("florges", ::FlorgesModel)
inbuilt("carbink", ::CarbinkModel)
inbuilt("goomy", ::GoomyModel)
inbuilt("goomy_hisui_bias", ::GoomyHisuiBiasModel)
@@ -617,6 +631,7 @@ object PokemonModelRepository : VaryingModelRepository<PokemonPosableModel>() {
inbuilt("rowlet_hisui_bias", ::RowletHisuiBiasModel)
inbuilt("dartrix_hisui_bias", ::DartrixHisuiBiasModel)
inbuilt("decidueye_hisuian", ::DecidueyeHisuianModel)
inbuilt("smeargle", ::SmeargleModel)
}
override fun conditionParser(json: JsonObject): List<(PosableState) -> Boolean> {
@@ -0,0 +1,5 @@
package com.cobblemon.mod.common.entity
interface AttackingEntity {
fun getAttackingEntityId(): Int?
}
@@ -34,7 +34,7 @@ class NPCBattleActor(
) : AIBattleActor(
gameId = npc.uuid,
pokemonList = party.toBattleTeam(),
battleAI = StrongBattleAI(skill)
battleAI = RandomBattleAI()
), EntityBackedBattleActor<NPCEntity> {
override val entity = npc
override val type = ActorType.NPC
@@ -45,6 +45,7 @@ import com.cobblemon.mod.common.battles.BattleBuilder
import com.cobblemon.mod.common.battles.BattleRegistry
import com.cobblemon.mod.common.block.entity.PokemonPastureBlockEntity
import com.cobblemon.mod.common.client.entity.PokemonClientDelegate
import com.cobblemon.mod.common.entity.AttackingEntity
import com.cobblemon.mod.common.entity.PosableEntity
import com.cobblemon.mod.common.entity.PoseType
import com.cobblemon.mod.common.entity.generic.GenericBedrockEntity
@@ -131,7 +132,7 @@ open class PokemonEntity(
world: Level,
pokemon: Pokemon = Pokemon().apply { isClient = world.isClientSide },
type: EntityType<out PokemonEntity> = CobblemonEntities.POKEMON,
) : ShoulderRidingEntity(type, world), PosableEntity, Shearable, Schedulable, ScannableEntity {
) : ShoulderRidingEntity(type, world), PosableEntity, Shearable, Schedulable, ScannableEntity, AttackingEntity {
companion object {
@JvmStatic val SPECIES = SynchedEntityData.defineId(PokemonEntity::class.java, EntityDataSerializers.STRING)
@JvmStatic val NICKNAME = SynchedEntityData.defineId(PokemonEntity::class.java, EntityDataSerializers.COMPONENT)
@@ -1429,4 +1430,13 @@ open class PokemonEntity(
override fun resolveEntityScan(): LivingEntity {
return this
}
override fun getAttackingEntityId(): Int? {
if (pokemon.isClient) {
return (delegate as PokemonClientDelegate).targetedEntityId
}
else {
TODO("Currently there is nothing that needs to know this on the server")
}
}
}
@@ -0,0 +1,19 @@
package com.cobblemon.mod.common.net.messages.client.battle
import com.cobblemon.mod.common.api.net.NetworkPacket
import com.cobblemon.mod.common.util.cobblemonResource
import net.minecraft.network.RegistryFriendlyByteBuf
class BattleAppendTargetedEntityPacket(val sourceEntityId: Int, val targetedEntityId: Int) : NetworkPacket<BattleAppendTargetedEntityPacket> {
override val id = ID
override fun encode(buffer: RegistryFriendlyByteBuf) {
buffer.writeVarInt(sourceEntityId)
buffer.writeVarInt(targetedEntityId)
}
companion object {
val ID = cobblemonResource("battle_append_targeted")
fun decode(buffer: RegistryFriendlyByteBuf) = BattleAppendTargetedEntityPacket(buffer.readVarInt(), buffer.readVarInt())
}
}
@@ -120,17 +120,9 @@ class Species : ClientDataSynchronizer<Species>, ShowdownIdentifiable {
} else if (it.maleRatio == 1F) {
setOf(Gender.MALE)
} else {
setOf(Gender.FEMALE, Gender.MALE)
setOf(Gender.FEMALE)
}
}.toSet() + (if (maleRatio == -1F) {
setOf(Gender.GENDERLESS)
} else if (maleRatio == 0F) {
setOf(Gender.FEMALE)
} else if (maleRatio == 1F) {
setOf(Gender.MALE)
} else {
setOf(Gender.FEMALE, Gender.MALE)
})
}.toSet()
/**
* Contains the evolutions of this species.
@@ -2,7 +2,7 @@
"format_version": "1.8.0",
"animations": {
"animation.quickattack.actor": {
"animation_length": 2.5833,
"animation_length": 1.75,
"bones": {
"root_part": {
"position": {
@@ -16,7 +16,7 @@
"lerp_mode": "catmullrom"
},
"1.2083": {
"post": [0, 0, -35],
"post": [0, 0, -30],
"lerp_mode": "catmullrom"
},
"1.375": {
@@ -40,16 +40,11 @@
"1.0833": [1, 1, 1],
"1.125": {"pre": [1, 1, 1], "post": [0, 0, 0]},
"1.1667": {"pre": [0, 0, 0], "post": [1, 1, 1]},
"1.2083": {"pre": [1, 1, 1.8], "post": [0, 0, 0]},
"1.2083": {"pre": [1, 1, 1], "post": [0, 0, 0]},
"1.6667": {"pre": [0, 0, 0], "post": [1, 1, 1]}
}
}
},
"sound_effects": {
"0.75": {
"effect": "move.quickattack.actor"
}
},
"particle_effects": {
"0.75": {
"effect": "cobblemon:quickattack_dust"
@@ -46,11 +46,6 @@
"effect": "cobblemon:confused_bird6",
"type": "particle"
}
},
"event_sound": {
"sound_effect": {
"event_name": "status.nonvolatile.confused.actor"
}
}
},
"components": {
@@ -61,7 +56,7 @@
"active_time": 1.5
},
"minecraft:emitter_lifetime_events": {
"creation_event": ["event_bird2", "event_bird3", "event_bird4", "event_bird5", "event_bird6", "event_sound"]
"creation_event": ["event_bird2", "event_bird3", "event_bird4", "event_bird5", "event_bird6"]
},
"minecraft:emitter_shape_point": {},
"minecraft:particle_lifetime_expression": {
@@ -0,0 +1,58 @@
{
"format_version": "1.10.0",
"particle_effect": {
"description": {
"identifier": "cobblemon:sleep_bubbles",
"basic_render_parameters": {
"material": "particles_blend",
"texture": "textures/particles/bubble"
}
},
"components": {
"minecraft:emitter_rate_steady": {
"spawn_rate": 4,
"max_particles": 16
},
"minecraft:emitter_lifetime_once": {
"active_time": 1.5
},
"minecraft:emitter_shape_point": {
"direction": ["math.random(-0.55,0.55)", "math.random(0.8,1)", "math.random(-0.55,0.55)"]
},
"minecraft:particle_lifetime_expression": {
"max_lifetime": 4
},
"minecraft:particle_initial_speed": "1/3",
"minecraft:particle_motion_dynamic": {
"linear_acceleration": [0, 0.45, 0],
"linear_drag_coefficient": 0.85
},
"minecraft:particle_appearance_billboard": {
"size": ["math.clamp(v.particle_age*0.33/2, 0, 0.15)", "math.clamp(v.particle_age*0.33/2, 0, 0.15)"],
"facing_camera_mode": "rotate_xyz",
"uv": {
"texture_width": 16,
"texture_height": 48,
"flipbook": {
"base_UV": [0, 0],
"size_UV": [16, 16],
"step_UV": [0, 16],
"frames_per_second": 2,
"max_frame": 3,
"loop": true
}
}
},
"minecraft:particle_appearance_tinting": {
"color": {
"interpolant": "v.particle_age / v.particle_lifetime",
"gradient": {
"0.0": "#ffffffff",
"0.5": "#CCFFFFFF",
"1.0": "#00FFFFFF"
}
}
}
}
}
}
@@ -0,0 +1,58 @@
{
"format_version": "1.10.0",
"particle_effect": {
"description": {
"identifier": "cobblemon:sleep_passive",
"basic_render_parameters": {
"material": "particles_blend",
"texture": "textures/particles/sleep_passive"
}
},
"components": {
"minecraft:emitter_rate_steady": {
"spawn_rate": 1.9,
"max_particles": 6
},
"minecraft:emitter_lifetime_looping": {
"active_time": 2.25
},
"minecraft:emitter_shape_point": {
"offset": [0, "q.entity_height*0.5", 0],
"direction": ["math.random(-2,-0.5)", 1, "math.random(-2,-0.5)"]
},
"minecraft:particle_lifetime_expression": {
"max_lifetime": 1.25
},
"minecraft:particle_initial_speed": 0.5,
"minecraft:particle_motion_dynamic": {
"linear_acceleration": [0, 0.55, 0],
"linear_drag_coefficient": 0.5
},
"minecraft:particle_appearance_billboard": {
"size": ["0.075+(v.particle_age*0.075)", "0.075+(v.particle_age*0.075)"],
"facing_camera_mode": "rotate_xyz",
"uv": {
"texture_width": 48,
"texture_height": 8,
"flipbook": {
"base_UV": [0, 0],
"size_UV": [8, 8],
"step_UV": [8, 0],
"frames_per_second": 5,
"max_frame": 6
}
}
},
"minecraft:particle_appearance_tinting": {
"color": {
"interpolant": "v.particle_age / v.particle_lifetime",
"gradient": {
"0.0": "#ffffffff",
"0.61": "#ffffffff",
"1.0": "#00FFFFFF"
}
}
}
}
}
}
@@ -0,0 +1,57 @@
{
"format_version": "1.10.0",
"particle_effect": {
"description": {
"identifier": "cobblemon:sleep_zzz",
"basic_render_parameters": {
"material": "particles_blend",
"texture": "textures/particles/sleep_zzz"
}
},
"components": {
"minecraft:emitter_rate_steady": {
"spawn_rate": 2,
"max_particles": 9
},
"minecraft:emitter_lifetime_once": {
"active_time": 1.5
},
"minecraft:emitter_shape_point": {
"direction": ["math.random(-0.25,0.25)", "math.random(0.8,1)", "math.random(-0.25,0.25)"]
},
"minecraft:particle_lifetime_expression": {
"max_lifetime": 4
},
"minecraft:particle_initial_speed": "1/3",
"minecraft:particle_motion_dynamic": {
"linear_acceleration": [0, 0.45, 0],
"linear_drag_coefficient": 0.85
},
"minecraft:particle_appearance_billboard": {
"size": ["math.clamp(v.particle_age*0.33/2, 0, 0.25)", "math.clamp(v.particle_age*0.66/2, 0, 0.25)"],
"facing_camera_mode": "rotate_xyz",
"uv": {
"texture_width": 8,
"texture_height": 24,
"flipbook": {
"base_UV": [0, 0],
"size_UV": [8, 8],
"step_UV": [0, 8],
"frames_per_second": 1,
"max_frame": 3
}
}
},
"minecraft:particle_appearance_tinting": {
"color": {
"interpolant": "v.particle_age / v.particle_lifetime",
"gradient": {
"0.0": "#ffffffff",
"0.5": "#CCFFFFFF",
"1.0": "#00FFFFFF"
}
}
}
}
}
}
@@ -16,24 +16,14 @@
"nodes": [0, 0.75, 0.94, 1, 1, 1, 1, 1, 0.93, 0.7, 0]
}
},
"events": {
"event_sound": {
"sound_effect": {
"event_name": "stat.debuff"
}
}
},
"components": {
"minecraft:emitter_rate_steady": {
"spawn_rate": 30,
"max_particles": 100
},
"minecraft:emitter_lifetime_once": {
"minecraft:emitter_lifetime_looping": {
"active_time": 1
},
"minecraft:emitter_lifetime_events": {
"creation_event": "event_sound"
},
"minecraft:emitter_shape_point": {},
"minecraft:particle_lifetime_expression": {
"max_lifetime": "math.random(0.48,0.52)"
@@ -16,24 +16,14 @@
"nodes": [0, 0.75, 0.94, 1, 1, 1, 1, 1, 0.93, 0.7, 0]
}
},
"events": {
"event_sound": {
"sound_effect": {
"event_name": "stat.buff"
}
}
},
"components": {
"minecraft:emitter_rate_steady": {
"spawn_rate": 30,
"max_particles": 100
},
"minecraft:emitter_lifetime_once": {
"minecraft:emitter_lifetime_looping": {
"active_time": 1
},
"minecraft:emitter_lifetime_events": {
"creation_event": "event_sound"
},
"minecraft:emitter_shape_point": {},
"minecraft:particle_lifetime_expression": {
"max_lifetime": "math.random(0.48,0.52)"
@@ -1,54 +0,0 @@
{
"format_version": "1.10.0",
"particle_effect": {
"description": {
"identifier": "cobblemon:heavy_collapse_lines",
"basic_render_parameters": {
"material": "particles_alpha",
"texture": "textures/particles/speedlines"
}
},
"curves": {
"variable.grow": {
"type": "linear",
"input": "v.particle_age",
"horizontal_range": "v.particle_lifetime",
"nodes": [1, 0]
}
},
"components": {
"minecraft:emitter_rate_instant": {
"num_particles": 15
},
"minecraft:emitter_lifetime_once": {
"active_time": 2
},
"minecraft:emitter_shape_disc": {
"radius": 1.5,
"surface_only": true,
"direction": "outwards"
},
"minecraft:particle_lifetime_expression": {
"max_lifetime": 0.2
},
"minecraft:particle_initial_speed": "math.random(0.5, 3)",
"minecraft:particle_motion_dynamic": {},
"minecraft:particle_appearance_billboard": {
"size": [0.2, "0.6 * variable.grow"],
"facing_camera_mode": "direction_y",
"uv": {
"texture_width": 16,
"texture_height": 64,
"flipbook": {
"base_UV": [0, 48],
"size_UV": [16, 16],
"step_UV": [0, -16],
"frames_per_second": 5,
"max_frame": 3,
"stretch_to_lifetime": true
}
}
}
}
}
}
@@ -1,57 +0,0 @@
{
"format_version": "1.10.0",
"particle_effect": {
"description": {
"identifier": "cobblemon:heavy_collapse_smoke",
"basic_render_parameters": {
"material": "particles_alpha",
"texture": "textures/particles/smoke"
}
},
"curves": {
"variable.grow": {
"type": "linear",
"input": "v.particle_age",
"horizontal_range": "v.particle_lifetime",
"nodes": [0.5, 1]
}
},
"components": {
"minecraft:emitter_rate_instant": {
"num_particles": 15
},
"minecraft:emitter_lifetime_once": {
"active_time": 2
},
"minecraft:emitter_shape_disc": {
"radius": 0.1,
"direction": "outwards"
},
"minecraft:particle_lifetime_expression": {
"max_lifetime": "math.random(1,1.4)"
},
"minecraft:particle_initial_spin": {
"rotation": "math.random(0,360)"
},
"minecraft:particle_initial_speed": 10,
"minecraft:particle_motion_dynamic": {
"linear_drag_coefficient": 5
},
"minecraft:particle_appearance_billboard": {
"size": ["0.3 * variable.grow", "0.3 * variable.grow"],
"facing_camera_mode": "rotate_xyz",
"uv": {
"texture_width": 16,
"texture_height": 96,
"flipbook": {
"base_UV": [0, 0],
"size_UV": [16, 16],
"step_UV": [0, 16],
"frames_per_second": 6,
"max_frame": 6
}
}
}
}
}
}
@@ -8,13 +8,6 @@
"texture": "textures/particles/psyring1"
}
},
"events": {
"event_sound": {
"sound_effect": {
"event_name": "move.confusion.actor"
}
}
},
"components": {
"minecraft:emitter_rate_steady": {
"spawn_rate": 8.5,
@@ -23,9 +16,6 @@
"minecraft:emitter_lifetime_looping": {
"active_time": 1.25
},
"minecraft:emitter_lifetime_events": {
"creation_event": "event_sound"
},
"minecraft:emitter_shape_point": {
"offset": ["math.random(-0.03,0.03)", "math.random(-0.03,0.03)", -0.3],
"direction": ["math.random(-1,1)", "math.random(-1,1)", -10]
@@ -8,13 +8,6 @@
"texture": "textures/particles/psyswirl"
}
},
"events": {
"event_sound": {
"sound_effect": {
"event_name": "move.confusion.target"
}
}
},
"components": {
"minecraft:emitter_rate_steady": {
"spawn_rate": 9,
@@ -23,9 +16,6 @@
"minecraft:emitter_lifetime_looping": {
"active_time": 0.6
},
"minecraft:emitter_lifetime_events": {
"creation_event": "event_sound"
},
"minecraft:emitter_shape_point": {
"offset": ["math.sin(v.emitter_age*1080)*0.03", "0.1+math.cos(v.emitter_age*1080)*0.03", -0.5],
"direction": [0, 0, -10]
@@ -8,13 +8,6 @@
"texture": "textures/particles/cotton"
}
},
"events": {
"event_sound": {
"sound_effect": {
"event_name": "move.cottonguard.actor"
}
}
},
"components": {
"minecraft:emitter_rate_steady": {
"spawn_rate": "math.clamp(350 * math.clamp(q.entity_size,0.5,3), 10, 100)",
@@ -23,9 +16,6 @@
"minecraft:emitter_lifetime_once": {
"active_time": 2
},
"minecraft:emitter_lifetime_events": {
"creation_event": "event_sound"
},
"minecraft:emitter_shape_sphere": {
"radius": "math.clamp(q.entity_scale,0.9,1) + (1.8 / math.clamp(q.entity_size,1,1.2))",
"surface_only": true,
@@ -2,7 +2,7 @@
"format_version": "1.10.0",
"particle_effect": {
"description": {
"identifier": "cobblemon:ember_froth",
"identifier": "cobblemon:ember_actor",
"basic_render_parameters": {
"material": "particles_alpha",
"texture": "textures/particles/ember"
@@ -10,20 +10,20 @@
},
"components": {
"minecraft:emitter_rate_steady": {
"spawn_rate": 50,
"max_particles": 25
"spawn_rate": "50*math.clamp(q.entity.entity_distance*0.3,1,2)",
"max_particles": 500
},
"minecraft:emitter_lifetime_once": {
"active_time": 0.45
},
"minecraft:emitter_shape_point": {
"offset": ["math.random(-0.41,0.41)*(v.emitter_age*3.5)", "math.random(-0.41,0.41)*(v.emitter_age*3.5)", "math.random(-0.35,0.35)-v.emitter_age*7"],
"offset": ["(math.random(-0.41,0.41)*2)*(0.2+(v.emitter_age*0.5))", "(math.random(-0.41,0.41)*2)*(0.2+(v.emitter_age*0.5))", "(q.entity.entity_distance*0.1)+math.random(-0.25,0.25)-v.emitter_age*(q.entity.entity_distance*2.25)"],
"direction": ["math.random(-0.45,0.45)*(v.emitter_age*3)", "math.random(-0.45,0.45)*(v.emitter_age*3)", "math.random(-2.05,-0.55)"]
},
"minecraft:particle_lifetime_expression": {
"max_lifetime": "math.random(22,32)/100"
},
"minecraft:particle_initial_speed": "math.random(2.75,4.25)*1.95",
"minecraft:particle_initial_speed": "math.random(2.75,4.25)*(q.entity.entity_distance/2.5)",
"minecraft:particle_motion_dynamic": {
"linear_acceleration": [0, 4, 0],
"linear_drag_coefficient": 3
@@ -10,14 +10,14 @@
},
"components": {
"minecraft:emitter_rate_steady": {
"spawn_rate": 20,
"max_particles": 10
"spawn_rate": "20*math.clamp(q.entity.entity_distance*0.2,1,2)",
"max_particles": 1000
},
"minecraft:emitter_lifetime_once": {
"active_time": 0.4
"active_time": 0.45
},
"minecraft:emitter_shape_point": {
"offset": ["math.random(-0.31,0.31)*(v.emitter_age*3)", "math.random(-0.31,0.31)*(v.emitter_age*3)", "math.random(-0.35,0.35)-v.emitter_age*9"],
"offset": ["math.random(-0.31,0.31)*(v.emitter_age*3)", "math.random(-0.31,0.31)*(v.emitter_age*3)", "(q.entity.entity_distance*0.15)+math.random(-0.35,0.35)-v.emitter_age*(q.entity.entity_distance*2.25)"],
"direction": ["math.random(-0.25,0.25)*(v.emitter_age*2)", "math.random(-0.25,0.25)*(v.emitter_age*2)", "math.random(-2.05,-0.55)"]
},
"minecraft:particle_lifetime_expression": {
@@ -26,7 +26,7 @@
"minecraft:particle_initial_spin": {
"rotation": "math.random_integer(0,3)*90"
},
"minecraft:particle_initial_speed": "math.random(2.75,4.25)*0.75",
"minecraft:particle_initial_speed": "math.random(2.75,4.25)*(q.entity.entity_distance/5)",
"minecraft:particle_motion_dynamic": {
"linear_acceleration": [0, 3, 0],
"linear_drag_coefficient": 2
@@ -2,7 +2,7 @@
"format_version": "1.10.0",
"particle_effect": {
"description": {
"identifier": "cobblemon:ember_impact",
"identifier": "cobblemon:ember_target",
"basic_render_parameters": {
"material": "particles_alpha",
"texture": "textures/particles/ember"
@@ -2,7 +2,7 @@
"format_version": "1.10.0",
"particle_effect": {
"description": {
"identifier": "cobblemon:ember_impactlinger",
"identifier": "cobblemon:ember_targetlinger",
"basic_render_parameters": {
"material": "particles_alpha",
"texture": "textures/particles/ember"
@@ -16,6 +16,14 @@
"nodes": [0.2, 0.69, 0.26, 0.78, 0.26, 0.8, 0]
}
},
"events": {
"event_ambient": {
"sound_effect": {
"event_name": "q.sound"
},
"expression": "q.sound('particle.shiny_ambient',0.05,q.random(0.8,1.2))"
}
},
"components": {
"minecraft:emitter_rate_steady": {
"spawn_rate": 30,
@@ -16,6 +16,13 @@
"nodes": [1, 1, 1, 1, 1, 1, 0.5, 0]
}
},
"events": {
"event_sound": {
"sound_effect": {
"event_name": "cobblemon:move.watersport.actor"
}
}
},
"components": {
"minecraft:emitter_rate_steady": {
"spawn_rate": 500,
@@ -345,8 +345,8 @@
"rotation": [0, 0, -45]
},
"tail": {
"rotation": ["-110.125+math.sin(q.anim_time*90*1-60)*3", -3.73722, -2.61318],
"position": [-0.0336, -0.53986, -1.30727]
"rotation": ["-113+math.sin(q.anim_time*90*1-60)*3", -9, -20],
"position": [0, -1, -1.5]
},
"tail2": {
"rotation": ["-0.5+math.sin(q.anim_time*90*1-150)*4", 48, 8]
@@ -405,7 +405,7 @@
]
},
"neck": {
"rotation": ["-4+math.sin(q.anim_time*90*4-140)*1", "math.sin(q.anim_time*90*2-90)*1", "math.cos(q.anim_time*90*2+30)*-3"]
"rotation": ["-4+math.sin(q.anim_time*90*4-140)*1", "math.sin(q.anim_time*90*2-90)", "math.cos(q.anim_time*90*2+30)*-3"]
},
"head": {
"rotation": [
@@ -1048,12 +1048,7 @@
"0.8333": [-10, 0, 0],
"1.1667": [0, 0, 0]
}
},
"sound_effects": {
"0.04": {
"effect": "pokemon.gyarados.cry"
}
},
}
}
},
"animation.gyarados.hawk_tuah": {
@@ -1184,8 +1184,7 @@
"post": [-299.46977, 66.96124, -26.23303],
"lerp_mode": "catmullrom"
},
"1.5833": [-275.63512, 68.99015, -14.01453],
"1.6667": [-275.64, 68.99, -14.01]
"1.5833": [-275.63512, 68.99015, -14.01453]
},
"position": {
"0.0": [0, 0, 0],
@@ -1760,54 +1759,30 @@
"mouth_closed": {
"position": {
"0.0": [0, 0, 0],
"0.0833": {
"pre": [0, 0, 0],
"post": [0, 0, 1]
},
"0.25": {
"pre": [0, 0, 1],
"post": [0, 0, 0]
},
"0.4167": {
"pre": [0, 0, 0],
"post": [0, 0, 1]
},
"0.8333": {
"pre": [0, 0, 1],
"post": [0, 0, 0]
}
"0.0833": {"pre": [0, 0, 0], "post": [0, 0, 1]},
"0.25": {"pre": [0, 0, 1], "post": [0, 0, 0]},
"0.4167": {"pre": [0, 0, 0], "post": [0, 0, 1]},
"0.8333": {"pre": [0, 0, 1], "post": [0, 0, 0]}
}
},
"mouth_open": {
"position": {
"0.0": [0, 0, 0],
"0.0833": {
"pre": [0, 0, 0],
"post": [0, 0, -0.1]
},
"0.25": {
"pre": [0, 0, -0.1],
"post": [0, 0, 0]
},
"0.4167": {
"pre": [0, 0, 0],
"post": [0, 0, -0.1]
},
"0.8333": {
"pre": [0, 0, -0.1],
"post": [0, 0, 0]
}
"0.0833": {"pre": [0, 0, 0], "post": [0, 0, -0.1]},
"0.25": {"pre": [0, 0, -0.1], "post": [0, 0, 0]},
"0.4167": {"pre": [0, 0, 0], "post": [0, 0, -0.1]},
"0.8333": {"pre": [0, 0, -0.1], "post": [0, 0, 0]}
}
}
},
"sound_effects": {
"0.0": {
"effect": "tyrogue_ambient"
"effect": "pokemon.tyrogue.cry"
}
}
},
"animation.tyrogue.blink": {
"animation_length": 0.1667,
"animation_length": 0.16667,
"bones": {
"eyelid_right": {
"position": {
@@ -2015,794 +1990,6 @@
"rotation": [30, 0, 0]
}
}
},
"animation.tyrogue.physical": {
"animation_length": 3,
"bones": {
"torso": {
"rotation": {
"0.0": [5.9139, 35.7328, 0.2853],
"0.0833": [-16.5861, 35.7328, -7.2147],
"0.25": [-21.59, 33.23, -14.71],
"0.4167": [-14.8, 33.23, -9.64],
"0.5417": [3.41, 33.23, 0.29],
"0.625": [1.95, 29.99, 0.17],
"0.7917": [0, 0, 0],
"1.0": [22.75, 0, 0],
"1.1667": {
"pre": [27.5, -27.5, -7.5],
"post": [27.5, -27.5, -7.5],
"lerp_mode": "catmullrom"
},
"1.2083": {
"post": [15.92, -20.25, -8.25],
"lerp_mode": "catmullrom"
},
"1.25": {
"post": [-22.5, 5.5, -17.5],
"lerp_mode": "catmullrom"
},
"1.375": {
"post": [-32.09, 20.73, -18.49],
"lerp_mode": "catmullrom"
},
"1.5833": {
"post": [-30, 20, -17.5],
"lerp_mode": "catmullrom"
},
"1.9583": {
"post": [-17.5, 20, -9.5],
"lerp_mode": "catmullrom"
},
"2.0833": {
"post": [0, 20, -2.5],
"lerp_mode": "catmullrom"
},
"2.2083": {
"post": [35, 20, -2.5],
"lerp_mode": "catmullrom"
},
"2.4583": {
"post": [12.5, 32.25, -2.5],
"lerp_mode": "catmullrom"
},
"2.625": {
"post": [7.8, 34.76, -1.11],
"lerp_mode": "catmullrom"
},
"2.75": {
"post": [10.9139, 35.7328, 0.2853],
"lerp_mode": "catmullrom"
},
"2.875": [6.91, 35.73, 0.29],
"2.9583": [5.91, 35.73, 0.29]
},
"position": {
"0.0": [0, -0.75, 0.25],
"1.1667": [0, -0.75, 0.25],
"1.2083": [0, -2.75, 0.25],
"1.2917": [0, 0, 0],
"1.875": [0, 0, 0],
"2.0833": [0, 1, 0],
"2.1667": {
"pre": [0, -1, 0],
"post": [0, -1, 0],
"lerp_mode": "catmullrom"
},
"2.2917": {
"post": [0, -2, 0],
"lerp_mode": "catmullrom"
},
"2.5833": {
"post": [0, 0.5, 0],
"lerp_mode": "catmullrom"
},
"2.75": {
"post": [0, -0.25, 0],
"lerp_mode": "catmullrom"
},
"2.875": [0, -0.05, 0],
"3.0": [0, 0, 0]
},
"scale": {
"2.0": [1, 1, 1],
"2.0833": [0.9, 1.2, 0.9],
"2.1667": [1.1, 0.9, 1.1],
"2.25": [1, 1, 1]
}
},
"head": {
"rotation": {
"0.0": [-5.65274, -0.4703, 9.87528],
"0.0833": [36.85, -0.47, 4.88],
"0.3333": [4.35, -0.47, 9.88],
"0.4583": [-8.15, -0.47, 9.88],
"0.625": {
"pre": [-23.15, -0.47, 4.88],
"post": [-23.15, -0.47, 4.88],
"lerp_mode": "catmullrom"
},
"0.75": {
"post": [-47.15, -0.47, 4.88],
"lerp_mode": "catmullrom"
},
"0.8333": {
"post": [-21.65, -0.47, 4.88],
"lerp_mode": "catmullrom"
},
"0.9167": {
"post": [6.85, -0.47, 4.88],
"lerp_mode": "catmullrom"
},
"1.125": {
"post": [6.85, -0.47, 4.88],
"lerp_mode": "catmullrom"
},
"1.2083": {
"post": [0.35, -0.47, 4.88],
"lerp_mode": "catmullrom"
},
"1.2917": {
"post": [-1.32, -8.05, 5.8],
"lerp_mode": "catmullrom"
},
"1.4583": [10.35, -12.72, 7.63],
"1.75": [15.35, -15.47, 9.88],
"1.9583": [7.85, -15.47, 9.88],
"2.0833": [-14.65, -15.47, 9.88],
"2.25": [2.85, -7.97, 9.88],
"2.5417": {
"pre": [-5.65274, -0.4703, 9.87528],
"post": [-5.65274, -0.4703, 9.87528],
"lerp_mode": "catmullrom"
},
"2.7083": {
"post": [-1.15, -0.47, 9.88],
"lerp_mode": "catmullrom"
},
"2.9167": [-5.65274, -0.4703, 9.87528],
"3.0": [-5.65, -0.47, 9.88]
}
},
"arm_left": {
"rotation": {
"0.0": [-19.36442, 18.8106, 15.0684],
"0.0833": [-19.36, -6.19, 55.07],
"0.2917": [-19.36, -6.19, -0.68],
"0.4167": [-16.11, -6.19, 12.32],
"0.5833": {
"pre": [10.64, -6.19, 18.82],
"post": [10.64, -6.19, 18.82],
"lerp_mode": "catmullrom"
},
"0.6667": {
"post": [4.89, -0.94, 13.57],
"lerp_mode": "catmullrom"
},
"0.75": {
"post": [-29.36, 41.31, -12.43],
"lerp_mode": "catmullrom"
},
"0.8333": {
"post": [-74.36, 36.31, -29.93],
"lerp_mode": "catmullrom"
},
"0.9583": {
"post": [37.5, 0, 40],
"lerp_mode": "catmullrom"
},
"1.1667": [-4.09791, -49.48244, 56.12957],
"1.2083": {
"pre": [-55.00248, 38.28835, 27.36186],
"post": [-55.00248, 38.28835, 27.36186],
"lerp_mode": "catmullrom"
},
"1.3333": {
"post": [-119.91783, 53.71277, -12.17203],
"lerp_mode": "catmullrom"
},
"1.5": {
"post": [-136.68852, 47.89655, -28.56183],
"lerp_mode": "catmullrom"
},
"1.7083": {
"post": [-134.98, 36.53, -29.7],
"lerp_mode": "catmullrom"
},
"1.9583": [-103.69, 22.9, -31.06],
"2.125": {
"pre": [-64.19, 22.9, -31.06],
"post": [-64.19, 22.9, -31.06],
"lerp_mode": "catmullrom"
},
"2.25": {
"post": [0, 0, 35.75],
"lerp_mode": "catmullrom"
},
"2.5": {
"post": [0, 0, 12.5],
"lerp_mode": "catmullrom"
},
"2.75": {
"post": [-19.36442, 18.8106, 24.8184],
"lerp_mode": "catmullrom"
},
"2.9167": [-19.36442, 18.8106, 15.0684],
"3.0": [-19.36, 18.81, 15.07]
},
"position": {
"0.0": [1, 0.25, 0],
"1.2083": [1, 0.25, 0],
"1.25": [1, -1.75, 0],
"1.375": [1.75, 0.75, -2],
"1.75": [1.5, 0.5, -1.75],
"2.0": [1, 0.25, 0]
},
"scale": {
"1.2083": [1, 1, 1],
"1.25": [1.1, 0.6, 2.1],
"1.3333": [1, 1, 1]
}
},
"arm_left2": {
"rotation": {
"0.0": [-3.80513, 47.3481, -3.9579],
"0.125": [-2.63905, 12.39857, 38.27576],
"0.375": [-15.20866, 14.6292, -41.18869],
"0.625": [0, 25, 27.5],
"0.8333": [-36.47, 33.6, 15.4],
"0.9583": [-2.35, 78.76, 8.14],
"1.1667": [-3.81, 47.35, -3.96],
"1.2083": [-3.81, -7.65, -3.96],
"1.25": [-3.81, 7.35, -3.96],
"1.2917": [-3.81, 64.85, -3.96],
"1.4583": [-3.81, 49.85, -3.96],
"1.625": [-3.81, 32.35, -3.96],
"2.0833": [-3.81, 4.85, -3.96],
"2.1667": [-3.81, 4.85, -26.46],
"2.25": [0, 27.5, 15],
"2.5": [0, 27.5, -12.5],
"2.7083": [-3.80513, 47.3481, -3.9579]
}
},
"hand_left": {
"rotation": [3.4786, 7.85247, 7.14539],
"scale": {
"0.0": [1, 1, 1],
"1.2083": [1, 1, 1],
"1.25": [1.3, 1, 1],
"1.2917": [1, 1, 1]
}
},
"finger_left": {
"rotation": [0, 0, 62.5]
},
"finger_left2": {
"rotation": [0, 0, 87.5]
},
"finger_left3": {
"rotation": [0, 5, 62.5]
},
"finger_left4": {
"rotation": [0, 0, 90]
},
"thumb_left": {
"rotation": [62.5, -22.5, 0]
},
"thumb_left2": {
"rotation": [85, 0, 0]
},
"arm_right": {
"rotation": {
"0.0": [-6.18433, 8.6995, -38.77726],
"0.0417": [14.82, -8.05, -38.78],
"0.1667": [23.82, -11.3, -38.78],
"0.375": [-11.18, -13.8, 33.72],
"0.5417": [-11.18, 6.24, -24.21],
"0.6667": [-11.18, 11.2, -38.78],
"0.7917": [-28.68, -33.8, 13.72],
"1.0": [0, 0, -67.5],
"1.2083": [0, 0, -67.5],
"1.3333": [0, 42.5, -22.5],
"1.6667": [0, 31.25, -22.5],
"1.9167": [0, 5, 10],
"2.125": {
"pre": [0, 42.5, 35],
"post": [0, 42.5, 35],
"lerp_mode": "catmullrom"
},
"2.25": {
"post": [0, -5, -47.5],
"lerp_mode": "catmullrom"
},
"2.5": {
"post": [0, -5, 0],
"lerp_mode": "catmullrom"
},
"2.75": [-6.18433, 14.1995, -41.52726],
"2.8333": [-6.18, 8.7, -38.78]
},
"position": [-1, 0.5, 0.25]
},
"arm_right2": {
"rotation": {
"0.0": [-26.00932, -74.4271, 26.44392],
"0.125": [0, -37.5, -55],
"0.4167": [0, -32.5, 30],
"0.625": [0, -32.5, -32.5],
"0.75": [0, -82.5, 0],
"1.2083": [0, -82.5, 0],
"1.3333": {
"pre": [0, -59, 0],
"post": [0, -59, 0],
"lerp_mode": "catmullrom"
},
"1.4167": {
"post": [0, -37.7, 0],
"lerp_mode": "catmullrom"
},
"1.5417": {
"post": [0, -19, 0],
"lerp_mode": "catmullrom"
},
"1.75": [0, -12.5, 0],
"1.875": [0, -12.5, 0],
"2.0417": [-3.63, -14.89, 26.04],
"2.125": [-5.44536, -16.07844, 20.31224],
"2.2917": [-5.45, -16.08, -39.69],
"2.5417": [-5.45, -63.58, 17.81],
"2.75": [-26.00932, -74.4271, 26.44392]
}
},
"hand_right": {
"rotation": {
"0.0": [-1.2365, -11.28131, 3.66924],
"0.125": [-1.24, -11.28, -18.83],
"0.3333": [-1.24, -11.28, -46.33],
"0.5": [-1.24, -11.28, 23.67],
"0.7083": [-1.24, -33.78, -21.33],
"1.2083": [-1.24, -33.78, -21.33],
"1.3333": [-1.24, 3.97, 13.67],
"1.4583": [-1.24, 11.22, 21.17]
}
},
"finger_right": {
"rotation": [0, 0, -52.5]
},
"finger_right2": {
"rotation": [0, 0, -87.5]
},
"finger_right3": {
"rotation": [0, -7.5, -62.5]
},
"finger_right4": {
"rotation": [0, 0, -75]
},
"thumb_right": {
"rotation": [50, 22.5, 0]
},
"thumb_right2": {
"rotation": [70, 0, 0]
},
"leg_left": {
"rotation": {
"0.0": [-22.5, -17.5, 0],
"0.0417": [-17.5, -17.5, -20],
"0.0833": [-37.5, 0, 0],
"0.3333": [-67.5, 0, -27.5],
"0.5": [-60, 0, -27.5],
"0.5833": [-73.75, 0, -27.5],
"0.6667": [-62.5, 0, -27.5],
"0.7083": [-10, 0, -7.5],
"0.8333": [22.5, 0, -7.5],
"0.9583": [-52.5, 0, -7.5],
"1.0833": [-17.5, 0, -7.5],
"1.125": [-42.5, 0, -7.5],
"1.1667": [-50, 0, -7.5],
"1.2083": [0, 0, 0],
"1.3333": [-70, 0, 0],
"1.75": [-70, 0, 0],
"2.0417": [-22.5, 0, 0],
"2.125": [-55, 0, 0],
"2.2083": [-55, 0, 0],
"2.625": [-22.5, -17.5, 0],
"2.6667": [-27.5, -17.5, 0],
"2.8333": [-22.5, -17.5, 0]
},
"position": {
"0.0": [-0.5, -1.25, -1.75],
"0.5": [-0.5, -1.25, -1.75],
"0.6667": [0, -1, 0],
"1.0": [0, -1, 0],
"1.125": [0, 0.25, 0],
"1.1667": [0, 0.62, 0],
"1.2083": [0, -1, 0],
"1.2917": [0, -1, -1],
"1.5": [0, -0.5, -1.69],
"1.9583": [0, -0.5, -1.69],
"2.125": [0, -1.5, 0.25],
"2.625": [-0.5, -1.25, -1.75]
},
"scale": {
"1.2083": [1, 1, 1],
"1.25": [1, 1.4, 1],
"1.3333": [1, 1, 1]
}
},
"leg_right": {
"rotation": {
"0.0": [21.2486, 54.7128, 34.40719],
"0.0417": [13.75, 34.71, 49.41],
"0.0833": [-35, 35, -15],
"0.3333": [-10, 10, 5],
"0.4583": [-22.5, 30, 2.5],
"0.5833": [-32.5, 30, 2.5],
"0.6667": [-20, 30, 2.5],
"0.75": [0, 0, 12.5],
"0.9167": [-72.5, 0, 12.5],
"1.0833": [-72.5, 0, 12.5],
"1.1667": [-76.67, 0, 4.17],
"1.2083": [-30, 0, 0],
"1.25": [7.25, 0, 0],
"1.4167": [15, 0, 0],
"1.6667": [21, 0, 0],
"1.8333": [14.25, 0, 0],
"2.0": [-30, 0, 0],
"2.0833": [-30, 0, 0],
"2.125": [-17.5, 0, 0],
"2.1667": [-30, 0, 0],
"2.2083": [-31.11437, 15.44046, -3.36049],
"2.4583": [-53.61437, 40.44046, -3.36049],
"2.5417": [-13.96, 46.21, 13.57],
"2.5833": [21.2486, 54.7128, 34.40719],
"2.6667": [18.75, 54.71, 34.41],
"2.8333": [21.2486, 54.7128, 34.40719]
},
"position": {
"0.0": [0.25, -1.25, 1],
"0.4583": [0.25, -1.25, 1],
"0.5833": [0.25, -0.5, 1],
"0.75": [0, -1, 0],
"1.1667": [0, -1, 0],
"1.25": [0, -2.75, 0],
"1.875": [0, -2.75, 0],
"2.0833": [0, 0, 0],
"2.2917": [0.25, -1.25, 1]
},
"scale": {
"1.2083": [1, 1, 1],
"1.25": [1, 1.4, 1],
"1.3333": [1, 1, 1]
}
},
"neck": {
"rotation": {
"0.0": [14.78517, -32.75343, -8.18855],
"0.5833": [14.79, -32.75, -8.19],
"0.7917": [0, 0, 0],
"0.9167": [77.5, 0, 0],
"1.0": [73, 0, 0],
"1.125": [40, 0, 0],
"1.25": [17.5, 0, 0],
"1.5417": [7.5, 0, 0],
"1.7917": [5, 0, 0],
"2.2083": [17.5, 0, 0],
"2.3333": [27.5, -5.5, 3.25],
"2.5417": [17.14, -26.38, -7.34],
"2.75": [14.78517, -32.75343, -8.18855]
}
},
"leg_left3": {
"rotation": {
"0.0": [52.5193, -2.30959, -0.9572],
"0.0417": [80.02, -2.31, -0.96],
"0.0833": [-4.98, -2.31, -0.96],
"0.3333": [92.52, -2.31, -0.96],
"0.5": [45.02, -2.31, -0.96],
"0.5833": [63.77, -2.31, -0.96],
"0.6667": [62.52, -2.31, -0.96],
"0.7083": [15.02, -2.31, -0.96],
"0.8333": [40.02, -2.31, -0.96],
"0.9583": [80.02, -2.31, -0.96],
"1.1667": [75.02, -2.31, -0.96],
"1.2083": [0, 0, 0],
"1.3333": [85, 0, 0],
"1.75": [85, 0, 0],
"1.9583": [40, 0, 0],
"2.0833": [60, 0, 0],
"2.125": [80, 0, 0],
"2.2083": [2.5, 0, 0],
"2.625": [52.5193, -2.30959, -0.9572],
"2.6667": [65.02, -2.31, -0.96],
"2.8333": [52.5193, -2.30959, -0.9572]
},
"position": {
"0.0": [0, 0, 0],
"1.1667": [0, 0, 0],
"1.3333": [0, 0, 1.25],
"1.75": [0, 0, 1.25],
"1.9583": [0, 0, 0]
}
},
"foot_left": {
"rotation": {
"0.0": [-25, 0, 0],
"0.0417": [-40, 0, 0],
"0.0833": [72.5, 0, 0],
"0.2917": [68.75, 0, 0],
"0.5": [12.5, 0, 25],
"0.5833": [1.25, 0, 25],
"0.6667": [-20, 0, 25],
"0.7083": [30, 0, 0],
"0.8333": [55, 0, 0],
"1.0": [-27.5, 0, 0],
"1.0833": [-23.75, 0, 0],
"1.1667": [-35, 0, 0],
"1.2083": [-2.5, 0, 0],
"1.25": [52.5, 0, 0],
"1.7917": [52.5, 0, 0],
"2.0833": [27.5, 0, 0],
"2.125": [-17.5, 0, 0],
"2.2083": [80, 0, 0],
"2.625": [-25, 0, 0],
"2.6667": [-32.5, 0, 0]
},
"position": [0, 0, 0]
},
"leg_right3": {
"rotation": {
"0.0": [47.2578, 4.81281, -5.7589],
"0.0417": [79.76, 4.81, -5.76],
"0.0833": [0, 0, 0],
"0.3333": [47.5, 0, 0],
"0.4583": [60, 0, 0],
"0.5833": [67.5, 0, 0],
"0.6667": [57.5, 0, 0],
"0.75": [17.5, 0, 0],
"0.875": [65, 0, 0],
"1.0833": [65, 0, 0],
"1.1667": [95, 0, 0],
"1.2083": [50, 0, 0],
"1.25": [15, 0, 0],
"1.8333": [25, 0, 0],
"2.0833": [77.5, 0, 0],
"2.125": [62.5, 0, 0],
"2.1667": [47.5, 0, 0],
"2.2083": [5, 0, 0],
"2.3333": [46.25, 0, 0],
"2.4583": [50, 0, 0],
"2.5833": [47.2578, 4.81281, -5.7589],
"2.6667": [67.26, 4.81, -5.76],
"2.8333": [47.2578, 4.81281, -5.7589]
},
"position": {
"1.1667": [0, 0, 0],
"1.25": [0, -0.5, 0]
}
},
"foot_right": {
"rotation": {
"0.0": [-26, -6.2127, -10.86815],
"0.0417": [-38.5, 11.29, -35.87],
"0.0833": [47.5, 0, 0],
"0.3333": [17.5, 0, 0],
"0.4583": [-42.5, 0, 0],
"0.5833": [-45, 0, 0],
"0.6667": [-35, 0, -7.5],
"0.7083": [55, 0, -7.5],
"0.75": [60, 0, -7.5],
"1.0833": [0, 0, -7.5],
"1.1667": [-27.5, 0, -7.5],
"1.2083": [-27.5, 0, 0],
"1.25": [-10, 0, 0],
"1.2917": [64.53, 0, 0],
"1.9167": [62.5, 0, 0],
"2.0833": [2.5, 0, 0],
"2.125": [-35, 0, 0],
"2.1667": [-12.5, 0, 0],
"2.2083": [47.5, 0, 0],
"2.4583": [20, 0, 0],
"2.5833": [-26, -6.2127, -10.86815],
"2.6667": [-46, -6.21, -10.87],
"2.8333": [-26, -6.2127, -10.86815]
},
"position": [0, 0, 0]
},
"body": {
"rotation": {
"0.0": [0, 0, 0],
"0.0833": [-14.25, 0, 0],
"0.1667": {
"pre": [-20, 0, 0],
"post": [-20, 0, 0],
"lerp_mode": "catmullrom"
},
"0.4167": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"0.5833": [9, 0, 0],
"0.7083": [25.5, 0, 0],
"0.8333": {
"pre": [87, 0, 0],
"post": [87, 0, 0],
"lerp_mode": "catmullrom"
},
"1.0": {
"post": [245.48, 0, 0],
"lerp_mode": "catmullrom"
},
"1.125": {
"post": [349.11, 0, 0],
"lerp_mode": "catmullrom"
},
"1.2083": {
"post": [369.65, 0, 0],
"lerp_mode": "catmullrom"
},
"1.2917": {
"post": [367.595, 0, 0],
"lerp_mode": "catmullrom"
},
"1.375": {
"post": [353.72, 0, 0],
"lerp_mode": "catmullrom"
},
"1.4583": {
"post": [348.125, 0, 0],
"lerp_mode": "catmullrom"
},
"1.5833": {
"post": [344.35, 0, 0],
"lerp_mode": "catmullrom"
},
"1.7083": {
"post": [342.5, 0, 0],
"lerp_mode": "catmullrom"
},
"2.125": [352.25, 0, 0],
"2.2917": [360, 0, 0],
"2.3333": {"pre": [360, 0, 0], "post": [0, 0, 0]}
},
"position": {
"0.0": [0, 0, 0],
"0.0417": [0, -1.45, -1.33],
"0.125": [0, 4.65, 9.27],
"0.2083": {
"pre": [0, 6, 17.18],
"post": [0, 6, 17.18],
"lerp_mode": "catmullrom"
},
"0.3333": {
"post": [0, 4.15, 21.82],
"lerp_mode": "catmullrom"
},
"0.4167": {
"post": [0, 0, 24.25],
"lerp_mode": "catmullrom"
},
"0.5": {
"post": [0, -1.3, 25.65],
"lerp_mode": "catmullrom"
},
"0.5833": {
"post": [0, -2, 25.25],
"lerp_mode": "catmullrom"
},
"0.6667": {
"post": [0, -1.25, 22.03],
"lerp_mode": "catmullrom"
},
"0.75": {
"post": [0, 4.75, 14.08],
"lerp_mode": "catmullrom"
},
"0.875": {
"post": [0, 3.76, 2.46],
"lerp_mode": "catmullrom"
},
"0.9167": {
"post": [0, 0.25, -2.59],
"lerp_mode": "catmullrom"
},
"1.0": {
"post": [0, -7.75, -8.85],
"lerp_mode": "catmullrom"
},
"1.0833": {
"post": [0, -3, -13],
"lerp_mode": "catmullrom"
},
"1.1667": {
"post": [0, -3.25, -15.75],
"lerp_mode": "catmullrom"
},
"1.25": {
"post": [0, 5.07, -19.03],
"lerp_mode": "catmullrom"
},
"1.2917": {
"post": [0, 11.25, -19.25],
"lerp_mode": "catmullrom"
},
"1.3333": {
"post": [0, 16, -17.65],
"lerp_mode": "catmullrom"
},
"1.4583": {
"post": [0, 20, -15.25],
"lerp_mode": "catmullrom"
},
"1.625": {
"post": [0, 21, -13.5],
"lerp_mode": "catmullrom"
},
"1.875": {
"post": [0, 19.75, -12.25],
"lerp_mode": "catmullrom"
},
"2.0": {
"post": [0, 14.75, -12.25],
"lerp_mode": "catmullrom"
},
"2.125": {
"post": [0, -1.5, -12],
"lerp_mode": "catmullrom"
},
"2.25": {
"post": [0, 5.95, -5.4],
"lerp_mode": "catmullrom"
},
"2.375": {
"post": [0, 7.83, -2.25],
"lerp_mode": "catmullrom"
},
"2.5": {
"post": [0, 6.32, -0.73],
"lerp_mode": "catmullrom"
},
"2.5833": [0, 0.05, 0.05],
"2.6667": [0, -0.72, 0.03],
"2.8333": [0, 0, 0]
}
},
"eyelid_right": {
"position": {
"0.0": [0, 0, 0],
"0.0417": {"pre": [0, 0, 0], "post": [0, 0, -0.1]},
"0.1667": {"pre": [0, 0, -0.1], "post": [0, 0, 0]},
"0.75": {"pre": [0, 0, 0], "post": [0, 0, -0.1]},
"1.9583": {"pre": [0, 0, -0.1], "post": [0, 0, 0]},
"2.1667": {"pre": [0, 0, 0], "post": [0, 0, -0.1]},
"2.3333": {"pre": [0, 0, -0.1], "post": [0, 0, 0]}
}
},
"eyelid_left": {
"position": {
"0.0": [0, 0, 0],
"0.0417": {"pre": [0, 0, 0], "post": [0, 0, -0.1]},
"0.1667": {"pre": [0, 0, -0.1], "post": [0, 0, 0]},
"0.75": {"pre": [0, 0, 0], "post": [0, 0, -0.1]},
"1.9583": {"pre": [0, 0, -0.1], "post": [0, 0, 0]},
"2.1667": {"pre": [0, 0, 0], "post": [0, 0, -0.1]},
"2.3333": {"pre": [0, 0, -0.1], "post": [0, 0, 0]}
}
},
"mouth_closed": {
"position": {
"0.0": [0, 0, 0],
"1.2083": {"pre": [0, 0, 0], "post": [0, 0, 0.1]},
"1.9583": {"pre": [0, 0, 0.1], "post": [0, 0, 0]}
}
},
"mouth_open": {
"position": {
"0.0": [0, 0, 0],
"1.2083": {"pre": [0, 0, 0], "post": [0, 0, -0.1]},
"1.9583": {"pre": [0, 0, -0.1], "post": [0, 0, 0]}
}
}
}
}
}
}
@@ -33,14 +33,6 @@
}
}
}
},
"animation.trapinch.cry": {
"animation_length": 1.2,
"sound_effects": {
"0.04": {
"effect": "pokemon.trapinch.cry"
}
}
}
}
}
@@ -66,7 +66,7 @@
"loop": true,
"bones": {
"arm_left": {
"rotation": [4.73109, 44.7383, 5.4642]
"rotation": [4.73109, "44.7383", 5.4642]
},
"arm_left2": {
"rotation": [14.26042, 43.07872, 13.16954]
@@ -78,7 +78,11 @@
"rotation": [-16.47474, 42.42028, -18.9149]
},
"body": {
"rotation": ["Math.cos((query.anim_time + 0) * 90 * 6) * 3.0", "-math.mod(q.anim_time*2, 1)*360", "Math.sin((query.anim_time + 0) * 90 * 6) * 3.6"]
"rotation": [
"Math.cos((query.anim_time + 0) * 90 * 6) * 3.0",
"Math.abs((query.anim_time + 0) * 90 * 12) * -0.5",
"Math.sin((query.anim_time + 0) * 90 * 6) * 3.6"
]
},
"arm_left3": {
"rotation": [4.30963, 29.7174, 8.64388]
@@ -92,7 +96,7 @@
"loop": true,
"bones": {
"arm_left": {
"rotation": [4.73109, 34.7383, 5.4642]
"rotation": [4.73109, "34.7383+math.abs(query)", 5.4642]
},
"arm_left2": {
"rotation": [14.26042, 33.0787, 13.16954]
@@ -104,7 +108,11 @@
"rotation": [-16.47474, 32.4203, -18.9149]
},
"body": {
"rotation": ["Math.cos((query.anim_time + 0) * 90 * 3) * 3.0", "-math.mod(q.anim_time*1, 1)*360", "Math.sin((query.anim_time + 0) * 90 * 3) * 3.6"],
"rotation": [
"Math.cos((query.anim_time + 0) * 90 * 3) * 3.0",
"Math.abs((query.anim_time + 0) * 90 * 6) * -0.5",
"Math.sin((query.anim_time + 0) * 90 * 3) * 3.6"
],
"position": [0, "0.25 + Math.cos((query.anim_time + 10.0) * 180) * 0.2", 0]
},
"arm_left3": {
@@ -20,10 +20,13 @@
"rotation": [-25.32307, -13.66763, -4.61603]
},
"hair": {
"rotation": [0, 0, 45]
"rotation": [0, 0, 40]
},
"hair1": {
"rotation": [0.00122, -0.33931, 37.52313]
},
"hair2": {
"rotation": [1.95155, 7.24305, 27.62353]
"rotation": [0.6574, 7.4713, 17.54292]
},
"hair3": {
"rotation": [8.61775, 34.05444, 17.64371]
@@ -117,13 +120,16 @@
"rotation": [-17.5, 0, 0]
},
"hair": {
"rotation": [0, 0, 47]
"rotation": [0, 0, 45]
},
"hair1": {
"rotation": [0.01602, -0.33893, 35.02308]
},
"hair2": {
"rotation": [0, 8.5, 38]
"rotation": [0.6574, 7.4713, 17.54292]
},
"hair3": {
"rotation": [9.69368, 25.60466, 13.24197]
"rotation": [8.61775, 34.05444, 17.64371]
},
"neck_fur_right2": {
"rotation": [0, 0, -30]
@@ -163,6 +169,14 @@
"0.25": {"pre": [0, 0, 0.17], "post": [0, 0, -1]},
"1.7917": {"pre": [0, 0, -1], "post": [0, 0, 0.17]}
}
},
"head_angle": {
"rotation": {
"0.0": [0, 0, 0],
"0.25": [-15, 0, 0],
"1.75": [-15, 0, 0],
"2.0": [0, 0, 0]
}
}
},
"sound_effects": {
@@ -172,7 +186,6 @@
}
},
"animation.absol.blink": {
"loop": true,
"animation_length": 0.1667,
"bones": {
"eyes_open": {
@@ -1,44 +1,26 @@
{
"format_version": "1.8.0",
"animations": {
"animation.lumineon.blink": {
"animation_length": 0.5,
"bones": {
"eyelid_right": {
"position": {
"0.0": [-1, 0, 0],
"0.125": {"pre": [-1, 0, 0], "post": [0, 0, 0]}
}
},
"eyelid_left": {
"position": {
"0.0": [1, 0, 0],
"0.125": {"pre": [1, 0, 0], "post": [0, 0, 0]}
}
}
}
},
"animation.lumineon.water_idle": {
"loop": true,
"bones": {
"torso": {
"rotation": [0, "(math.cos(q.anim_time*90)*-2)", 0],
"position": ["(math.cos(q.anim_time*90-70)*-0.2)", "0.2+(math.cos(q.anim_time*90-30)*0.2)", "(math.cos(q.anim_time*90-90)*-0.3)"]
"position": ["(math.cos(q.anim_time*90)*0.1)", "0.25+(math.cos(q.anim_time*45)*0.25)", 0]
},
"torso_back": {
"rotation": [0, "(math.cos(q.anim_time*90)*4)", 0]
"rotation": [0, "(math.cos(q.anim_time*90)*7.5)", 0]
},
"tail": {
"rotation": ["(math.cos(q.anim_time*90)*-2)", "(math.cos(q.anim_time*90-90)*-3)", 0]
"rotation": ["(math.cos(q.anim_time*90)*-5)", 0, 0]
},
"tail2": {
"rotation": ["(math.cos(q.anim_time*90-60)*-2)", "(math.cos(q.anim_time*90-150)*-3)", 0]
"rotation": ["(math.cos(q.anim_time*180)*5)", 0, 0]
},
"flap_right": {
"rotation": ["17.7936+(math.cos(q.anim_time*90)*-5)", 12.19908, "2.7472+(math.cos(q.anim_time*90-80)*-3)"]
"rotation": ["15+(math.cos(q.anim_time*90)*5)", 0, 0]
},
"flap_left": {
"rotation": ["12.6801+(math.cos(q.anim_time*90-10)*-5)", -12.39135, "-1.6575+(math.cos(q.anim_time*90-60)*-3)"]
"rotation": ["15+(math.cos(q.anim_time*90)*5)", 0, 0]
},
"fin_right": {
"rotation": [0, "67.5+math.clamp(math.sin(q.anim_time*90)*5,-5,5)", 0]
@@ -47,536 +29,23 @@
"rotation": [0, "-67.5-math.clamp(math.sin(q.anim_time*90)*5,-5,5)", 0]
},
"fin_right2": {
"rotation": ["(math.sin(q.anim_time*90-80)*-8)", "45+(math.sin(q.anim_time*90-20)*7.5)", 0]
"rotation": [0, "45+(math.sin(q.anim_time*90)*7.5)", 0]
},
"fin_left2": {
"rotation": ["(math.sin(q.anim_time*90-100)*-8)", "-45+(math.sin(q.anim_time*90-40)*-7.5)", 0]
}
}
},
"animation.lumineon.water_swim": {
"loop": true,
"bones": {
"torso": {
"rotation": ["math.sin(q.anim_time*90*4*(1/1.5)-45)*-1.25", "math.sin(q.anim_time*90*2*(1/1.5)-90)*5", "math.sin(q.anim_time*90*2*(1/1.5)-35)*1.25"]
"rotation": [0, "-45+(math.sin(q.anim_time*90)*-7.5)", 0]
},
"torso_back": {
"rotation": [0, "math.sin(q.anim_time*90*2*(1/1.5)-150)*8", 0]
"fin_left3": {
"rotation": [0, -25, 0]
},
"tail": {
"rotation": ["math.sin(q.anim_time*90*4*(1/1.5)+25)*2", "math.sin(q.anim_time*90*2*(1/1.5)-210)*8", 0]
},
"tail2": {
"rotation": ["math.sin(q.anim_time*90*4*(1/1.5)-35)*2", "math.sin(q.anim_time*90*2*(1/1.5)-270)*8", 0]
},
"flap_right": {
"rotation": ["32.6639+math.sin(q.anim_time*90*4*(1/1.5)-80)*12", 16.2842, "11.0304+math.sin(q.anim_time*90*2*(1/1.5)-20)*10"]
},
"flap_left": {
"rotation": ["32.6639+math.sin(q.anim_time*90*4*(1/1.5)-100)*12", -16.2842, "-11.0304+math.sin(q.anim_time*90*2*(1/1.5)-10)*10"]
},
"fin_right": {
"rotation": ["9.9811+math.sin(q.anim_time*90*4*(1/1.5)-190)*5", "44.7824+math.sin(q.anim_time*90*4*(1/1.5)-100)*12", 7.05323]
},
"fin_left": {
"rotation": ["9.9811+math.sin(q.anim_time*90*4*(1/1.5)-190)*5", "-44.7824+math.sin(q.anim_time*90*4*(1/1.5)-100)*-12", -7.05323]
},
"fin_right2": {
"rotation": [
"-12.6636+math.sin(q.anim_time*90*4*(1/1.5)-180)*-8",
"29.94+math.sin(q.anim_time*90*4*(1/1.5)-90)*12",
"-0.5686+math.sin(q.anim_time*90*4*(1/1.5)-180)*1"
]
},
"fin_left2": {
"rotation": [
"-12.6636+math.sin(q.anim_time*90*4*(1/1.5)-180)*-8",
"-29.94+math.sin(q.anim_time*90*4*(1/1.5)-90)*-12",
"0.5686+math.sin(q.anim_time*90*4*(1/1.5)-180)*-1"
]
},
"body": {
"rotation": [0, 0, 0],
"position": ["math.sin(q.anim_time*90*2*(1/1.5))*1.3", "math.sin(q.anim_time*90*4*(1/1.5)+45)*-0.5", "math.sin(q.anim_time*90*4*(1/1.5)-90)*0.2"]
},
"tail3": {
"rotation": ["math.sin(q.anim_time*90*4*(1/1.5)-95)*2", "math.sin(q.anim_time*90*2*(1/1.5)-330)*8", 0]
}
}
},
"animation.lumineon.seafloor_idle": {
"loop": true,
"animation_length": 2,
"bones": {
"body": {
"rotation": ["-22.5+math.sin(q.anim_time*90*2)*1", 0, 0],
"position": [0, 1.875, 0]
},
"lip": {
"rotation": ["math.sin(q.anim_time*90*2-60)*3", 0, 0]
},
"torso_back": {
"rotation": ["12.5+math.sin(q.anim_time*90*2)*-3", 0, 0]
},
"tail": {
"rotation": [-22.5, 0, 0]
},
"tail2": {
"rotation": [15, 0, 0]
},
"tail3": {
"rotation": [10, 0, 0]
},
"flap_right": {
"rotation": ["-78.7512+math.sin(q.anim_time*90*2)*-1", "23.0673-math.sin(q.anim_time*90*2)*0.25", "-9.4585-math.sin(q.anim_time*90*2)*-0.05"]
},
"flap_left": {
"rotation": ["-78.7512+math.sin(q.anim_time*90*2)*-1", "-23.0673+math.sin(q.anim_time*90*2)*0.25", "9.4585+math.sin(q.anim_time*90*2)*-0.05"]
},
"fin_right": {
"rotation": {
"0.0": {
"post": [2.35048, 52.83865, 12.37047],
"lerp_mode": "catmullrom"
},
"0.5": {
"post": [2.35048, 52.83865, 11.3705],
"lerp_mode": "catmullrom"
},
"1.5": {
"post": [2.35048, 56.8387, 16.3705],
"lerp_mode": "catmullrom"
},
"2.0": {
"post": [2.35048, 52.83865, 12.37047],
"lerp_mode": "catmullrom"
}
}
},
"fin_left": {
"rotation": {
"0.0": {
"post": [2.35048, -52.83865, -12.37047],
"lerp_mode": "catmullrom"
},
"0.5": {
"post": [2.35048, -52.83865, -11.3705],
"lerp_mode": "catmullrom"
},
"1.5": {
"post": [-1.47815, -56.85774, -11.79822],
"lerp_mode": "catmullrom"
},
"2.0": {
"post": [2.35048, -52.83865, -12.37047],
"lerp_mode": "catmullrom"
}
}
},
"fin_right2": {
"rotation": [10.51385, "24.8984+math.sin(q.anim_time*90*2-60)*-4", 2.3273]
},
"fin_left2": {
"rotation": [5, "-27.5+math.sin(q.anim_time*90*2-60)*4", 0]
},
"torso": {
"rotation": [19, 0, 0]
}
}
},
"animation.lumineon.seafloor_walk": {
"loop": true,
"animation_length": 1.5,
"bones": {
"body": {
"rotation": {
"0.0": {
"post": [-21.85, 2.2, 0],
"lerp_mode": "catmullrom"
},
"0.1875": {
"post": [-22.5, 1.3, 0],
"lerp_mode": "catmullrom"
},
"0.5": {
"post": [-20, -2.2, 0],
"lerp_mode": "catmullrom"
},
"0.875": {
"post": [-22.5, -2.2, 0],
"lerp_mode": "catmullrom"
},
"1.25": {
"post": [-20, 1.9, 0],
"lerp_mode": "catmullrom"
},
"1.5": {
"post": [-21.85, 2.2, 0],
"lerp_mode": "catmullrom"
}
},
"position": {
"0.0": {
"post": [0, 2, 0],
"lerp_mode": "catmullrom"
},
"0.375": {
"post": [0, 2.5, 0],
"lerp_mode": "catmullrom"
},
"0.75": {
"post": [0, 2, 0],
"lerp_mode": "catmullrom"
},
"1.125": {
"post": [0, 2.5, 0],
"lerp_mode": "catmullrom"
},
"1.5": {
"post": [0, 2, 0],
"lerp_mode": "catmullrom"
}
}
},
"torso_back": {
"rotation": ["2.5+math.sin(q.anim_time*90*8*(1/1.5)-200)*3", 0, 0]
},
"tail": {
"rotation": ["-10+math.sin(q.anim_time*90*8*(1/1.5)-260)*3", 0, 0]
},
"tail2": {
"rotation": ["2.5+math.sin(q.anim_time*90*8*(1/1.5)-320)*3", 0, 0]
},
"tail3": {
"rotation": ["5+math.sin(q.anim_time*90*8*(1/1.5)-380)*6", 0, 0]
},
"flap_right": {
"rotation": {
"0.0": {
"post": [-63.46725, 38.7556, -1.05484],
"lerp_mode": "catmullrom"
},
"0.375": {
"post": [-73.12933, 13.5283, -0.67602],
"lerp_mode": "catmullrom"
},
"0.75": {
"post": [-73.46599, 5.0578, -12.73513],
"lerp_mode": "catmullrom"
},
"1.125": {
"post": [-67.58456, 24.83057, -9.18708],
"lerp_mode": "catmullrom"
},
"1.5": {
"post": [-63.46725, 38.7556, -1.05484],
"lerp_mode": "catmullrom"
}
}
},
"flap_left": {
"rotation": {
"0.0": {
"post": [-73.46599, -5.0578, 12.73513],
"lerp_mode": "catmullrom"
},
"0.375": {
"post": [-67.58456, -24.83057, 9.18708],
"lerp_mode": "catmullrom"
},
"0.75": {
"post": [-63.46725, -38.7556, 1.05484],
"lerp_mode": "catmullrom"
},
"1.125": {
"post": [-73.12933, -13.5283, 0.67602],
"lerp_mode": "catmullrom"
},
"1.5": {
"post": [-73.46599, -5.0578, 12.73513],
"lerp_mode": "catmullrom"
}
}
},
"fin_right": {
"rotation": [2.35048, "52.8387+math.sin(q.anim_time*90*8*(1/1.5)-90)*3", "12.3705+math.sin(q.anim_time*90*8*(1/1.5)-190)*3"]
},
"fin_left": {
"rotation": [2.35048, "-52.8387+math.sin(q.anim_time*90*8*(1/1.5)-90)*-3", "-12.3705+math.sin(q.anim_time*90*8*(1/1.5)-190)*-3"]
},
"fin_right2": {
"rotation": [-10, "27.5+math.sin(q.anim_time*90*8*(1/1.5)-110)*3", "-(math.sin(q.anim_time*90*8*(1/1.5)-210)*-3)"]
},
"fin_left2": {
"rotation": [-10, "-27.5+math.sin(q.anim_time*90*8*(1/1.5)-110)*-3", "math.sin(q.anim_time*90*8*(1/1.5)-210)*-3"]
},
"torso": {
"rotation": [15, 0, 0]
}
}
},
"animation.lumineon.ground_idle": {
"loop": true,
"animation_length": 1,
"bones": {
"flap_right": {
"rotation": ["92.5+math.sin(q.anim_time*90*8-50)*-5", 0, 0]
},
"flap_left": {
"rotation": ["92.5+math.sin(q.anim_time*90*8-50)*-5", 0, 0]
},
"torso_back": {
"rotation": ["-10+math.sin(q.anim_time*90*8-30)*-2", 0, 0]
},
"tail": {
"rotation": ["8.06+math.sin(q.anim_time*90*8-90)*-2", 0, 0]
},
"tail2": {
"rotation": ["22.86+math.sin(q.anim_time*90*8-150)*-2", 0, 0]
},
"tail3": {
"rotation": ["11+math.sin(q.anim_time*90*8-210)*-8", 0, 0]
},
"fin_right": {
"rotation": [-7.74, "57.7+math.sin(q.anim_time*90*4-40)*-5", "1.89+math.sin(q.anim_time*90*8-30)*-2"]
},
"fin_left": {
"rotation": [-7.74, "-57.7+math.sin(q.anim_time*90*4-40)*-5", "-1.89+math.sin(q.anim_time*90*8-30)*2"]
},
"fin_right2": {
"rotation": [-10.86503, "24.9532+math.sin(q.anim_time*90*4-50)*-5", "-11.1834+math.sin(q.anim_time*90*8-50)*-3"]
},
"fin_left2": {
"rotation": [-10.86503, "-24.9532+math.sin(q.anim_time*90*4-50)*-5", "11.1834+math.sin(q.anim_time*90*8-50)*3"]
},
"body": {
"rotation": ["math.sin(q.anim_time*90*8-30)*-2", "math.sin(q.anim_time*90*4-50)*1.5", "math.sin(q.anim_time*90*4-50)*1"],
"position": [0, "math.sqrt(math.pow(math.sin(q.anim_time*90*4), 2))*0.7", 0]
}
}
},
"animation.lumineon.ground_walk": {
"loop": true,
"animation_length": 0.5417,
"bones": {
"flap_right": {
"rotation": {
"0.0": {
"post": [95, 0, 0],
"lerp_mode": "catmullrom"
},
"0.125": {
"post": [75, 0, 0],
"lerp_mode": "catmullrom"
},
"0.4167": {
"post": [97.5, 0, 0],
"lerp_mode": "catmullrom"
},
"0.5417": {
"post": [95, 0, 0],
"lerp_mode": "catmullrom"
}
}
},
"flap_left": {
"rotation": {
"0.0": {
"post": [95, 0, 0],
"lerp_mode": "catmullrom"
},
"0.125": {
"post": [75, 0, 0],
"lerp_mode": "catmullrom"
},
"0.4167": {
"post": [97.5, 0, 0],
"lerp_mode": "catmullrom"
},
"0.5417": {
"post": [95, 0, 0],
"lerp_mode": "catmullrom"
}
}
},
"torso_back": {
"rotation": {
"0.0": {
"post": [-10, 0, 0],
"lerp_mode": "catmullrom"
},
"0.125": {
"post": [-12.5, 0, 0],
"lerp_mode": "catmullrom"
},
"0.4167": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"0.5417": {
"post": [-10, 0, 0],
"lerp_mode": "catmullrom"
}
}
},
"tail": {
"rotation": {
"0.0": {
"post": [-4.44, 0, 0],
"lerp_mode": "catmullrom"
},
"0.0833": {
"post": [-15, 0, 0],
"lerp_mode": "catmullrom"
},
"0.2083": {
"post": [-22.5, 0, 0],
"lerp_mode": "catmullrom"
},
"0.5": {
"post": [-2.5, 0, 0],
"lerp_mode": "catmullrom"
},
"0.5417": {
"post": [-4.44, 0, 0],
"lerp_mode": "catmullrom"
}
}
},
"tail2": {
"rotation": ["7.86+math.sin(q.anim_time*90*4*(1/0.54)-60)*-10", 0, 0]
},
"tail3": {
"rotation": ["math.sin(q.anim_time*90*4*(1/0.54)-90)*-10", 0, 0]
},
"fin_right": {
"rotation": {
"0.0": {
"post": [-7.5, 57.5, 0],
"lerp_mode": "catmullrom"
},
"0.125": {
"post": [-14.63636, 55.13038, -17.56084],
"lerp_mode": "catmullrom"
},
"0.4167": {
"post": [5.52853, 56.79177, 18.46626],
"lerp_mode": "catmullrom"
},
"0.5417": {
"post": [-7.5, 57.5, 0],
"lerp_mode": "catmullrom"
}
}
},
"fin_left": {
"rotation": {
"0.0": {
"post": [-7.5, -57.5, 0],
"lerp_mode": "catmullrom"
},
"0.125": {
"post": [-14.63636, -55.13038, 17.56084],
"lerp_mode": "catmullrom"
},
"0.4167": {
"post": [5.52853, -56.79177, -18.46626],
"lerp_mode": "catmullrom"
},
"0.5417": {
"post": [-7.5, -57.5, 0],
"lerp_mode": "catmullrom"
}
}
},
"fin_right2": {
"rotation": {
"0.0": {
"post": [-6.24039, 26.06542, -4.43672],
"lerp_mode": "catmullrom"
},
"0.1667": {
"post": [-24.22809, 26.43772, -16.57841],
"lerp_mode": "catmullrom"
},
"0.4167": {
"post": [0.95196, 31.82595, -0.20334],
"lerp_mode": "catmullrom"
},
"0.5417": {
"post": [-6.24039, 26.06542, -4.43672],
"lerp_mode": "catmullrom"
}
}
},
"fin_left2": {
"rotation": {
"0.0": {
"post": [-6.24039, -26.06542, 4.43672],
"lerp_mode": "catmullrom"
},
"0.1667": {
"post": [-24.22809, -26.43772, 16.57841],
"lerp_mode": "catmullrom"
},
"0.4167": {
"post": [0.95196, -31.82595, 0.20334],
"lerp_mode": "catmullrom"
},
"0.5417": {
"post": [-6.24039, -26.06542, 4.43672],
"lerp_mode": "catmullrom"
}
}
},
"body": {
"rotation": {
"0.0": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"0.125": {
"post": [7.45, 0, 2],
"lerp_mode": "catmullrom"
},
"0.4167": {
"post": [0, 0, -2],
"lerp_mode": "catmullrom"
},
"0.5417": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
}
},
"position": {
"0.0": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"0.1667": {
"post": [0, 3, -1],
"lerp_mode": "catmullrom"
},
"0.3333": {
"post": [0, 3, -1.025],
"lerp_mode": "catmullrom"
},
"0.5": {
"post": [0, 0, -0.2],
"lerp_mode": "catmullrom"
},
"0.5417": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
}
}
"fin_right3": {
"rotation": [0, 25, 0]
}
}
},
"animation.lumineon.cry": {
"animation_length": 2.5,
"animation_length": 1.2,
"sound_effects": {
"0.0": {
"0.04": {
"effect": "pokemon.lumineon.cry"
}
}
@@ -1,340 +1,26 @@
{
"format_version": "1.8.0",
"animations": {
"animation.magnezone.air_idle": {
"animation.magnezone.ground_idle": {
"loop": true,
"bones": {
"body": {
"rotation": [0, "0 - Math.Sin(((q.anim_time + 0.1) * 180 * 0.5) * 1) * 5", "Math.Sin(((q.anim_time + 0.4) * 180 * 0.5) * 1) * 5"],
"position": ["Math.Sin((q.anim_time * 180 * 0.5) * 1) * 1.5", "7+Math.Sin((q.anim_time * 90 * 0.5) * 1) * 1.5", 0]
"rotation": [5, 0, 0],
"position": [0, 1, 0]
},
"magnet_back_rotation": {
"rotation": [0, 0, "0 - 150 + math.mod(q.anim_time*0.5, 1)*360"],
"position": [-0.1105, -3.26306, -1.09075]
"rotation": [-42.5, 0, 0]
},
"magnet_left": {
"rotation": [30, 0, 0]
},
"magnet_right": {
"rotation": [30, 0, 0]
},
"antenna": {
"rotation": [0, 0, "Math.Cos(((q.anim_time + 0.4) * 180 * 0.5) * 1) * 5"]
},
"magnet_left_rotation": {
"rotation": [0, 0, "150 - math.mod(q.anim_time*0.5, 1)*360"],
"position": [0.31051, -2.99661, -0.96119]
},
"nail_left_rotation": {
"rotation": [0, "150 - math.mod(q.anim_time*0.5, 1)*360", 0]
},
"magnet_right_rotation": {
"rotation": [0, 0, "0 - 150 + math.mod(q.anim_time*0.5, 1)*360"],
"position": [-0.53151, -2.99661, -0.96119]
},
"nail_right_rotation": {
"rotation": [0, "0 - 150 + math.mod(q.anim_time*0.5, 1)*360", 0]
},
"magnet_back": {
"rotation": [-42.5, 0, 0],
"position": [0, -0.99619, -0.08716]
}
}
},
"animation.magnezone.air_fly": {
"loop": true,
"bones": {
"body": {
"rotation": [15, "0 - Math.Sin(((q.anim_time + 0.1) * 180 * 0.5) * 1) * 5", "Math.Sin(((q.anim_time + 0.4) * 180 * 0.5) * 1) * 5"],
"position": ["Math.Sin((q.anim_time * 180 * 0.5) * 1) * 1.5", "7+Math.Sin((q.anim_time * 90 * 0.5) * 1) * 1.5", 0]
},
"magnet_back_rotation": {
"rotation": [0, 0, "0 - 150 + math.mod(q.anim_time*0.75, 1)*360"],
"position": [-0.1105, -3.26306, -1.09075]
},
"magnet_left": {
"rotation": [30, 0, 0]
},
"magnet_right": {
"rotation": [30, 0, 0]
},
"magnet_left_rotation": {
"rotation": [0, 0, "150 - math.mod(q.anim_time*0.75, 1)*360"],
"position": [0.31051, -2.99661, -0.96119]
},
"nail_left_rotation": {
"rotation": [0, "150 - math.mod(q.anim_time*0.75, 1)*360", 0]
},
"magnet_right_rotation": {
"rotation": [0, 0, "0 - 150 + math.mod(q.anim_time*0.75, 1)*360"],
"position": [-0.53151, -2.99661, -0.96119]
},
"nail_right_rotation": {
"rotation": [0, "0 - 150 + math.mod(q.anim_time*0.75, 1)*360", 0]
},
"magnet_back": {
"rotation": [-42.5, 0, 0],
"position": [0, -0.99619, -0.08716]
},
"antenna": {
"rotation": [0, 0, "Math.Cos(((q.anim_time + 0.4) * 180 * 0.5) * 1) * 5"]
}
}
},
"animation.magnezone.faint": {
"loop": true,
"animation_length": 3,
"bones": {
"body": {
"rotation": {
"0.0": [0, 0, 0],
"0.0833": [6, 0, -1],
"0.4167": [-7.5, 0, -5],
"0.5833": [-7.5, 0, -7.5],
"0.7083": [-3.75, 0, -10],
"0.9167": [0, 0, -7.5],
"1.125": [2.5, 0, 2.5],
"1.3333": [-5, 0, 5],
"1.5": [-10, 0, 2.5],
"1.75": [-10, 2.5, -5],
"2.0": [-10, 2.5, -7.5],
"2.0417": [-10, 2.5, -7.5],
"2.0833": [-10, 2.5, -7.5],
"2.125": [15, 2.5, 0],
"2.1667": [-7.5, 2.5, 0],
"2.2083": [0, 2.5, 0]
},
"position": {
"0.0": [0, 1, 0],
"0.0417": [0, 0, 0],
"0.0833": [0, 2, 0],
"0.125": [0, 2.33, 0],
"0.1667": [0, 1.17, 0],
"0.2083": [0, 2, 0],
"0.2917": [0, 2.5, 0],
"0.3333": [0, 1.75, 0],
"0.4167": [0, 3, 0],
"0.5833": [0, 6, 0],
"0.7083": [0, 7, 0],
"1.125": [0, 9, 0],
"1.1667": [0, 9, 0],
"1.2083": [0, 10, 0],
"1.9583": [0, 10, 0],
"2.0417": [0, 7, 0],
"2.0833": [0, 5, 0],
"2.125": [0, -3, -3],
"2.1667": [0, -4, -3]
}
},
"magnet_back_rotation": {
"rotation": {
"0.0": [0, 0, 0],
"0.7083": [0, 0, 400],
"0.75": [0, 0, 420],
"0.7917": [0, 0, 395],
"1.2083": [0, 0, -215],
"1.5": [0, 0, -317.5],
"1.7083": [0, 0, -340],
"2.0": [0, 0, -350],
"2.125": [-5, 0, -357.5],
"2.1667": [37.5, 0, -357.5],
"2.2083": [27.5, 0, -360]
},
"position": [-0.1105, -3.26306, -1.09075]
},
"magnet_left": {
"rotation": [30, 0, 0],
"position": [0, 0, 0]
},
"magnet_right": {
"rotation": {
"0.0": [30, 0, 0],
"0.1667": [7.5, 0, 0],
"1.0": [30, 0, 0],
"2.0833": [30, 0, 0]
},
"position": {
"0.0": [0, 0, 0],
"2.0833": [0, 0, 0],
"2.125": [0, 0.96593, 0.25882]
}
},
"antenna": {
"rotation": {
"0.0": [0, 0, 0],
"0.0417": [-7.5, 0, 0],
"0.125": [10, 0, 0],
"0.2083": [0, 0, 0],
"2.0833": [0, 0, 0],
"2.125": [-27.5, 0, 0],
"2.1667": [32.5, 0, 0],
"2.2083": [-20, 0, 0],
"2.25": [17.5, 0, 0],
"2.2917": [-5, 0, 0],
"2.3333": [0, 0, 0]
}
},
"magnet_left_rotation": {
"rotation": {
"0.0": [0, 0, 0],
"0.5": [0, 0, 295],
"0.6667": [0, 0, 315],
"0.75": [0, 0, 325],
"0.875": [0, 0, 325],
"0.9583": [0, 0, 315],
"1.0417": [0, 0, 270],
"1.3333": [0, 0, 142.5],
"1.375": [0, 0, 127.5],
"1.4167": [0, 0, 142.5],
"1.4583": [0, 0, 140],
"1.75": [0, 0, 167.5],
"2.0": [0, 0, 172.5],
"2.0417": [0, 0, 172.5],
"2.0833": [0, 0, 172.5],
"2.125": [40, 0, 187.5],
"2.1667": [10, 0, 180],
"2.2083": [27.5, 0, 180]
},
"position": {
"0.0": [0.31051, -2.99661, -0.96119],
"2.1667": [0.31, -2.13397, -0.46]
}
},
"nail_left_rotation": {
"rotation": {
"0.0": [0, 0, 0],
"1.5": [0, 832.5, 0],
"1.5417": [0, 847.5, 0],
"1.5833": [0, 840, 0],
"1.625": [0, 860, 0],
"1.6667": [0, 852.5, 0]
},
"position": {
"0.0": [0, 0, 0],
"1.5833": [0, -3, 0]
}
},
"magnet_right_rotation": {
"rotation": {
"0.0": [0, 0, 0],
"2.0": [0, 0, -175],
"2.0417": [0, 0, -175],
"2.0833": [0, 0, -175],
"2.125": [45, 5, -180],
"2.1667": [17.5, -5, -182.5],
"2.2083": [30, -5, -182.5]
},
"position": {
"0.0": [-0.53151, -2.99661, -0.96119],
"2.125": [-0.56683, -3.90222, -1.38969],
"2.1667": [-0.57, -3.46699, -1.14]
}
},
"nail_right_rotation": {
"rotation": {
"0.0": [0, 0, 0],
"1.7917": [0, -840, 0]
},
"position": {
"0.0": [0, 0, 0],
"1.7917": [0, -3, 0]
}
},
"magnet_back": {
"rotation": {
"0.0": [-42.5, 0, 0],
"0.0833": [-10, 0, 0],
"1.25": [-30, 0, 0]
},
"position": {
"0.0": [0, -0.99619, -0.08716],
"0.1667": [0.0349, -0.00166, -0.04423]
}
},
"red_light": {
"position": {
"0.0": [0, 0, 0],
"0.4583": [0, 0, 0],
"0.5": [2, 0, 0],
"1.1667": [2, 0, 0],
"1.2083": [-2, 0, 0.015],
"2.0833": [-2, 0, 0.015],
"2.125": [0, -1.5, 0.015],
"2.1667": [0, -0.5, 0.015]
}
},
"pupil_left": {
"position": {
"0.0": [0, 0, 0],
"0.5": {"pre": [0, 0, 0], "post": [0, 0, 0]},
"0.5417": {"pre": [0, 0, 0], "post": [0, 0, 0.1]},
"1.75": {"pre": [0, 0, 0.1], "post": [0, 0, 0.1]},
"1.7917": {"pre": [0, 0, 0.1], "post": [0, 0, 0]},
"2.0833": {"pre": [0, 0, 0], "post": [0, 0, 0]},
"2.125": {"pre": [0, 0, 0], "post": [0, 0, 0.1]}
}
},
"pupil_closed_left": {
"position": {
"0.0": [0, 0, 0],
"0.5": {"pre": [0, 0, 0], "post": [0, 0, 0]},
"0.5417": {"pre": [0, 0, 0], "post": [0, 0, -0.1]},
"1.75": {"pre": [0, 0, -0.1], "post": [0, 0, -0.1]},
"1.7917": {"pre": [0, 0, -0.1], "post": [0, 0, 0]},
"2.0833": {"pre": [0, 0, 0], "post": [0, 0, 0]},
"2.125": {"pre": [0, 0, 0], "post": [0, 0, -0.1]}
}
},
"pupil_right": {
"position": {
"0.0": [0, 0, 0],
"0.2083": {"pre": [0, 0, 0], "post": [0, 0, 0]},
"0.25": {"pre": [0, 0, 0], "post": [0, 0, 0.1]},
"0.5": {"pre": [0, 0, 0.1], "post": [0, 0, 0.1]},
"0.5417": {"pre": [0, 0, 0.1], "post": [0, 0, 0]},
"1.9583": {"pre": [0, 0, 0], "post": [0, 0, 0]},
"2.0": {"pre": [0, 0, 0], "post": [0, 0, 0.1]}
}
},
"pupil_closed_right": {
"position": {
"0.0": [0, 0, 0],
"0.2083": {"pre": [0, 0, 0], "post": [0, 0, 0]},
"0.25": {"pre": [0, 0, 0], "post": [0, 0, -0.1]},
"0.5": {"pre": [0, 0, -0.1], "post": [0, 0, -0.1]},
"0.5417": {"pre": [0, 0, -0.1], "post": [0, 0, 0]},
"1.9583": {"pre": [0, 0, 0], "post": [0, 0, 0]},
"2.0": {"pre": [0, 0, 0], "post": [0, 0, -0.1]}
}
}
},
"particle_effects": {
"0.5": {
"effect": "metal_sparks",
"locator": "sparks1"
},
"0.75": {
"effect": "metal_sparks",
"locator": "sparks2"
},
"1.5": {
"effect": "metal_sparks",
"locator": "sparks3"
},
"2.125": [
{
"effect": "heavy_collapse_smoke",
"locator": "collapse"
},
{
"effect": "heavy_collapse_lines",
"locator": "collapse"
}
]
}
},
"animation.magnezone.blink": {
"animation_length": 0.2083,
"animation_length": 0.20833,
"bones": {
"pupil_left": {
"position": {
@@ -366,110 +52,6 @@
}
}
},
"animation.magnezone.sleep": {
"loop": true,
"bones": {
"pupil_left": {
"position": [0, 0, 0.1]
},
"pupil_closed_left": {
"position": [0, 0, -0.1]
},
"pupil_right": {
"position": [0, 0, 0.1]
},
"pupil_closed_right": {
"position": [0, 0, -0.1]
},
"body": {
"rotation": [
"-15+math.sin((q.anim_time - 0.2) * 90) * 3",
"math.sin((q.anim_time - 0.5) * 90) * 3",
"Math.Sin(((q.anim_time + 0.4) * 90 * 0.5) * 1) * 2"
],
"position": ["Math.Sin((q.anim_time * 180 * 0.5) * 1) * 0", "1+Math.Sin((q.anim_time * 90 * 0.5) * 1) * 0", 0]
},
"magnet_left": {
"rotation": [30, 0, 0]
},
"magnet_left_rotation": {
"rotation": [0, 0, "math.sin(q.anim_time * 90) * 20"],
"position": [0.31051, -2.99661, -0.96119]
},
"nail_left_rotation": {
"rotation": [0, "150 - math.mod(q.anim_time*0.25, 1)*360", 0]
},
"magnet_right": {
"rotation": [30, 0, 0]
},
"magnet_right_rotation": {
"rotation": [0, 0, "0 - math.sin(q.anim_time * 90) * 20"],
"position": [-0.53151, -2.99661, -0.96119]
},
"nail_right_rotation": {
"rotation": [0, "0 - 150 + math.mod(q.anim_time*0.25, 1)*360", 0]
},
"magnet_back": {
"rotation": [-42.5, 0, 0],
"position": [0, -0.99619, -0.08716]
},
"magnet_back_rotation": {
"rotation": [0, 0, "0 - math.sin(q.anim_time * 90) * 20"]
}
}
},
"animation.magnezone.sleep2": {
"loop": true,
"bones": {
"pupil_left": {
"position": [0, 0, 0.1]
},
"pupil_closed_left": {
"position": [0, 0, -0.1]
},
"pupil_right": {
"position": [0, 0, 0.1]
},
"pupil_closed_right": {
"position": [0, 0, -0.1]
},
"body": {
"rotation": [
"-15+math.sin((q.anim_time - 0.2) * 90) * 3",
"math.sin((q.anim_time - 0.5) * 90) * 3",
"Math.Sin(((q.anim_time + 0.4) * 90 * 0.5) * 1) * 2"
],
"position": ["Math.Sin((q.anim_time * 180 * 0.5) * 1) * 0", "1+Math.Sin((q.anim_time * 90 * 0.5) * 1) * 0", 0]
},
"magnet_left": {
"rotation": [30, 0, 0]
},
"magnet_left_rotation": {
"rotation": [0, 0, "math.sin(q.anim_time * 90) * 20"],
"position": [0.31051, -2.99661, -0.96119]
},
"nail_left_rotation": {
"rotation": [0, "150 + q.anim_time * - 90", 0]
},
"magnet_right": {
"rotation": [30, 0, 0]
},
"magnet_right_rotation": {
"rotation": [0, 0, "0 - math.sin(q.anim_time * 90) * 20"],
"position": [-0.53151, -2.99661, -0.96119]
},
"nail_right_rotation": {
"rotation": [0, "0 - 150 + q.anim_time * 90", 0]
},
"magnet_back": {
"rotation": [-42.5, 0, 0],
"position": [0, -0.99619, -0.08716]
},
"magnet_back_rotation": {
"rotation": [0, 0, "0 - math.sin(q.anim_time * 90) * 20"]
}
}
},
"animation.magnezone.cry": {
"animation_length": 1.2,
"sound_effects": {
@@ -5,7 +5,7 @@
"loop": true,
"bones": {
"body": {
"position": [0, -5, -6]
"position": [0, -5, 0]
},
"neck": {
"rotation": [37.5, 10, 0.00001]
@@ -120,200 +120,14 @@
},
"vine_right": {
"scale": 0
},
"vines": {
"scale": 0
}
}
},
"animation.serperior.ground_walk": {
"loop": true,
"bones": {
"body": {
"position": [0, -3, "-13+Math.cos((query.anim_time) * 90 * 2) * 1"]
},
"neck": {
"rotation": [17.5, 0, 0]
},
"neck2": {
"rotation": [-35, 0, 0]
},
"arm_left": {
"rotation": [24.51604, -45.05075, 57.20219]
},
"arm_left2": {
"rotation": [-0.21865, -4.99523, 12.50954]
},
"arm_left3": {
"rotation": [0, 0, 52.5]
},
"arm_right": {
"rotation": [24.51604, 45.05075, -57.20219]
},
"arm_right2": {
"rotation": [-0.21865, 4.99523, -12.50954]
},
"arm_right3": {
"rotation": [0, 0, -52.5]
},
"neck3": {
"rotation": [-2.5, 0, 0]
},
"neck_leaves": {
"rotation": [-7.5, 0, 0]
},
"neck4": {
"rotation": [20, 0, 0]
},
"head_angle": {
"rotation": [17.5, 0, 0]
},
"ear_left": {
"rotation": [-5, 0, 7.5]
},
"ear_left2": {
"rotation": [-7.5, 0, 0]
},
"ear_left3": {
"rotation": [-7.5, 0, 0]
},
"ear_right": {
"rotation": [-5, 0, -7.5]
},
"ear_right2": {
"rotation": [-7.5, 0, 0]
},
"ear_right3": {
"rotation": [-7.5, 0, 0]
},
"vines": {
"scale": 0
},
"segment1": {
"rotation": [70, 0, "math.sin(q.anim_time*90*4+50)*2"]
},
"segment2": {
"rotation": [20, 0, "math.sin(q.anim_time*90*4)*3"]
},
"segment3": {
"rotation": [-2.5, 0, "math.sin(q.anim_time*90*4-60)*4"]
},
"segment4": {
"rotation": [0, 0, "math.sin(q.anim_time*90*4-120)*6"]
},
"segment5": {
"rotation": [0, 0, "math.sin(q.anim_time*90*4-180)*10"]
},
"segment6": {
"rotation": [0, 0, "math.sin(q.anim_time*90*4-240)*10"]
},
"segment7": {
"rotation": [0, 0, "math.sin(q.anim_time*90*4-360)*8"]
},
"segment8": {
"rotation": [0, 0, "math.sin(q.anim_time*90*4-420)*5"]
},
"segment9": {
"rotation": [0, 0, "math.sin(q.anim_time*90*4-460)*5"]
}
}
},
"animation.serperior.sleep": {
"loop": true,
"bones": {
"body": {
"rotation": [90, 50, 0],
"position": [-4, 0, 9]
},
"neck": {
"rotation": [-7.5, 0, 30]
},
"neck2": {
"rotation": [5, 0, 47.5]
},
"arm_left": {
"rotation": [0, 10, 67.5]
},
"arm_left2": {
"rotation": [0, 0, -25]
},
"arm_right": {
"rotation": [-10, -25, -85]
},
"arm_right2": {
"rotation": [7.5, 0, 0]
},
"neck3": {
"rotation": [-11.57518, 4.75113, 22.01816]
},
"neck_leave_left": {
"rotation": [0, 0, 17.5]
},
"neck4": {
"rotation": [0, 0, 20]
},
"head_angle": {
"rotation": [-73.59513, -11.73845, 4.25916]
},
"eyelid_left": {
"position": [0.1, 0, -0.1]
},
"eyelid_right": {
"position": [-0.1, 0, -0.1]
},
"ear_left": {
"rotation": [22.5, 0, 12.5]
},
"ear_left2": {
"rotation": [15, 0, 0]
},
"ear_left3": {
"rotation": [17.5, 0, 0]
},
"ear_right": {
"rotation": [0, 0, -20]
},
"ear_right2": {
"rotation": [-5, 0, 0]
},
"ear_right3": {
"rotation": [-10, 0, 0]
},
"vines": {
"scale": 0
},
"segment1": {
"rotation": [-12.5, 0, -15]
},
"segment2": {
"rotation": [2.30991, 0.95645, -52.48072]
},
"segment3": {
"rotation": [0, 10, -45]
},
"segment4": {
"rotation": [0, 0, -47.5]
},
"segment5": {
"rotation": [0, 0, -47.5]
},
"segment6": {
"rotation": [0, 0, -32.5]
},
"segment7": {
"rotation": [0, 0, -17.5]
},
"segment8": {
"rotation": [0, 0, -35]
},
"tail_leaf2": {
"rotation": [0, -12.5, 0]
},
"segment9": {
"rotation": [0, 0, -42.5]
},
"tail_leaf3": {
"rotation": [0, -10, 0]
"animation.serperior.cry": {
"animation_length": 1.2,
"sound_effects": {
"0.04": {
"effect": "pokemon.serperior.cry"
}
}
},
@@ -397,7 +211,7 @@
}
}
},
"animation.serperior.hurt": {
"animation.serperior.recoil": {
"loop": true,
"bones": {
"eyelid_recoil_left": {
@@ -430,14 +244,6 @@
"position": [0, 0, 2.5]
}
}
},
"animation.serperior.cry": {
"animation_length": 1.2,
"sound_effects": {
"0.04": {
"effect": "pokemon.serperior.cry"
}
}
}
}
}
@@ -1,67 +1,6 @@
{
"format_version": "1.8.0",
"animations": {
"animation.liepard.ground_idle": {
"loop": true,
"bones": {
"mouth_closed_emote2": {
"position": [0, 0, -0.1]
},
"leg_front_left": {
"rotation": [-10, 0, 0],
"position": [0, -1, 0]
},
"leg_front_left2": {
"rotation": [-10, 0, 0]
},
"foot_front_left": {
"rotation": [20, 0, 0]
},
"leg_front_right": {
"rotation": [-10, 0, 0],
"position": [0, -1, 0]
},
"leg_front_right2": {
"rotation": [-10, 0, 0]
},
"foot_front_right": {
"rotation": [20, 0, 0]
},
"leg_back_left": {
"rotation": [10.04065, -7.35819, -1.95581]
},
"leg_back_left2": {
"rotation": [-4.95744, -0.0287, 0.6518]
},
"foot_back_left": {
"rotation": [-4.83501, -0.49682, 1.19453]
},
"leg_back_right": {
"rotation": [10.04065, 7.35819, 1.95581]
},
"leg_back_right2": {
"rotation": [-4.95744, 0.0287, -0.6518]
},
"foot_back_right": {
"rotation": [-4.83501, 0.49682, -1.19453]
},
"tail": {
"rotation": [22.5, 0, 0]
},
"tail2": {
"rotation": [50, 0, 0]
},
"tail3": {
"rotation": [80, 0, 0]
},
"tail5": {
"rotation": [-5, 0, 0]
},
"tail4": {
"rotation": [-102.5, 0, 0]
}
}
},
"animation.liepard.pose": {
"loop": true,
"bones": {
@@ -221,231 +160,45 @@
"mouth_closed": {
"position": {
"0.125": [0, 0, 0],
"0.1667": {
"pre": [0, 0, 0],
"post": [0, 0, 0.1]
},
"0.625": {
"pre": [0, 0, 0.1],
"post": [0, 0, 0.1]
},
"0.6667": {
"pre": [0, 0, 0.1],
"post": [0, 0, 0]
}
"0.1667": {"pre": [0, 0, 0], "post": [0, 0, 0.1]},
"0.625": {"pre": [0, 0, 0.1], "post": [0, 0, 0.1]},
"0.6667": {"pre": [0, 0, 0.1], "post": [0, 0, 0]}
}
},
"mouth_open": {
"position": {
"0.125": [0, 0, 0],
"0.1667": {
"pre": [0, 0, 0],
"post": [0, 0, -0.1]
},
"0.625": {
"pre": [0, 0, -0.1],
"post": [0, 0, -0.1]
},
"0.6667": {
"pre": [0, 0, -0.1],
"post": [0, 0, 0]
}
"0.1667": {"pre": [0, 0, 0], "post": [0, 0, -0.1]},
"0.625": {"pre": [0, 0, -0.1], "post": [0, 0, -0.1]},
"0.6667": {"pre": [0, 0, -0.1], "post": [0, 0, 0]}
}
},
"mouth_open_emote": {
"rotation": {
"0.125": [0, 0, 0],
"0.1667": {
"pre": [0, 0, 0],
"post": [0, 0, 0]
},
"0.625": {
"pre": [0, 0, 0],
"post": [0, 0, 0]
},
"0.6667": {
"pre": [0, 0, 0],
"post": [0, 0, 0]
}
"0.1667": {"pre": [0, 0, 0], "post": [0, 0, 0]},
"0.625": {"pre": [0, 0, 0], "post": [0, 0, 0]},
"0.6667": {"pre": [0, 0, 0], "post": [0, 0, 0]}
},
"position": {
"0.125": [0, 0, 0],
"0.1667": {
"pre": [0, 0, 0],
"post": [0, -0.1, 0]
},
"0.625": {
"pre": [0, -0.1, 0],
"post": [0, -0.1, 0]
},
"0.6667": {
"pre": [0, -0.1, 0],
"post": [0, 0, 0]
}
"0.1667": {"pre": [0, 0, 0], "post": [0, -0.1, 0]},
"0.625": {"pre": [0, -0.1, 0], "post": [0, -0.1, 0]},
"0.6667": {"pre": [0, -0.1, 0], "post": [0, 0, 0]}
}
},
"mouth_open_emote2": {
"position": {
"0.125": [0, 0, 0],
"0.1667": {
"pre": [0, 0, 0],
"post": [0, 0, -0.1]
},
"0.625": {
"pre": [0, 0, -0.1],
"post": [0, 0, -0.1]
},
"0.6667": {
"pre": [0, 0, -0.1],
"post": [0, 0, 0]
}
"0.1667": {"pre": [0, 0, 0], "post": [0, 0, -0.1]},
"0.625": {"pre": [0, 0, -0.1], "post": [0, 0, -0.1]},
"0.6667": {"pre": [0, 0, -0.1], "post": [0, 0, 0]}
}
}
},
"sound_effects": {
"0.0": {
"effect": "pokemon.purrloin.cry"
}
}
},
"animation.liepard.mouth_open": {
"loop": true,
"bones": {
"mouth_closed": {
"position": [0, 0, 0.1]
},
"mouth_open": {
"position": [0, 0, -0.1]
},
"mouth_open_emote": {
"position": [0, -0.1, 0]
}
}
},
"animation.liepard.smile": {
"loop": true,
"bones": {
"mouth_closed_emote2": {
"position": [0, 0, -0.1]
}
}
},
"animation.liepard.happy": {
"loop": true,
"bones": {
"mouth_closed": {
"position": [0, 0, 0.1]
},
"mouth_open": {
"position": [0, 0, -0.1]
},
"mouth_open_emote": {
"position": [0, -0.1, 0]
},
"mouth_open_emote2": {
"position": [0, 0, -0.1]
},
"eyelid_happy_left": {
"position": [0, 0, -0.1]
},
"eyelid_happy_right": {
"position": [0, 0, -0.1]
}
}
},
"animation.liepard.sad": {
"loop": true,
"bones": {
"mouth_closed": {
"position": [0, 0.3, 0]
},
"mouth_closed_emote": {
"position": [0, -0.5, 0]
},
"eye_emote_left": {
"position": [0, 0.5, 0],
"scale": [1, 2, 1]
},
"eye_emote_left2": {
"position": [0, -1, 0]
},
"eye_emote_right": {
"position": [0, 0.5, 0],
"scale": [1, 2, 1]
},
"eye_emote_right2": {
"position": [0, -1, 0]
}
}
},
"animation.liepard.shocked": {
"loop": true,
"bones": {
"mouth_closed": {
"position": [0, 0, 0.1]
},
"mouth_open": {
"position": [0, 0, -0.1]
},
"mouth_open_emote": {
"position": [0, -0.1, 0]
},
"mouth_open_emote2": {
"position": [0, -0.5, -0.14]
},
"eye_emote_left": {
"position": [0.5, 0.5, 0],
"scale": [2, 2, 1]
},
"eye_emote_left2": {
"position": [0, -0.5, 0],
"scale": [1, 2, 1]
},
"iris_left": {
"position": [-0.25, 0, 0],
"scale": [0.5, 0.6, 1]
},
"pupil_left": {
"scale": [1, 0.7, 1]
},
"eye_emote_right": {
"position": [-0.5, 0.5, 0],
"scale": [2, 2, 1]
},
"eye_emote_right2": {
"position": [0, -0.5, 0],
"scale": [1, 2, 1]
},
"iris_right": {
"position": [0.25, 0, 0],
"scale": [0.5, 0.6, 1]
},
"pupil_right": {
"scale": [1, 0.7, 1]
}
}
},
"animation.liepard.hurt": {
"loop": true,
"bones": {
"mouth_closed": {
"position": [0, 0, 0.1]
},
"mouth_open": {
"position": [0, 0, -0.1]
},
"mouth_open_emote": {
"position": [0, -0.1, 0]
},
"eye_emote_left": {
"position": [0, 0.5, 0],
"scale": [1, 2, 1]
},
"eye_emote_left2": {
"position": [0, -1, 0]
},
"eyelid_right": {
"position": [0, 0, -0.1]
"effect": "pokemon.liepard.cry"
}
}
}
@@ -6,10 +6,10 @@
"bones": {
"body": {
"rotation": [37.5, 0, 0],
"position": [0, "12+0.6*Math.cos((query.anim_time) * 90 * 2) * 1", "2+0.3*Math.cos((query.anim_time) * 90 * 1-40) * 1"]
"position": [0, 12, 2]
},
"arm_left": {
"rotation": [-21.76583, -1.03023, "24.3726+Math.cos((query.anim_time) * 90 * 2-40) * 1"]
"rotation": [-21.76583, -1.03023, 24.37258]
},
"arm_left2": {
"rotation": [-7.2592, 84.87405, -22.21684]
@@ -33,7 +33,7 @@
"rotation": [-24.75386, 5.29571, 5.31847]
},
"arm_right": {
"rotation": [-14.50305, -13.03018, "-18.4844-Math.cos((query.anim_time) * 90 * 2-40) * 1"]
"rotation": [-14.50305, -13.03018, -18.48439]
},
"arm_right2": {
"rotation": [-13.03635, -71.92693, 16.3083]
@@ -41,6 +41,9 @@
"head_rotation": {
"rotation": [-12.5, 0, 0]
},
"jaw": {
"rotation": [20, 0, 0]
},
"lower_hand_left": {
"rotation": [0, 0, 10]
},
@@ -53,33 +56,6 @@
"leg_right2": {
"rotation": [5, 0, 0]
},
"wing_bototm_left": {
"rotation": [0, -7.5, 0]
},
"wing_bototm_left2": {
"rotation": [0, 25, 0]
},
"wing_bototm_left3": {
"rotation": [0, 25, 0]
},
"wing_bototm_left4": {
"rotation": [0, 22.5, 0]
},
"wing_bototm_right": {
"rotation": [0, 7.5, 0]
},
"wing_bototm_right2": {
"rotation": [0, -25, 0]
},
"wing_bototm_right3": {
"rotation": [0, -25, 0]
},
"wing_bototm_right4": {
"rotation": [0, -22.5, 0]
},
"jaw": {
"rotation": [20, 0, 0]
},
"head_fur_top": {
"rotation": [5, 0, 0]
},
@@ -94,6 +70,96 @@
},
"head_fur_bottom": {
"rotation": [40, 0, 0]
},
"wing_top_left": {
"rotation": [0, 2.5, 0]
},
"wing_top_left2": {
"rotation": [0, 25, 0]
},
"wing_top_left3": {
"rotation": [0, 37.5, 0]
},
"wing_top_left4": {
"rotation": [0, 25, 0]
},
"wing_middle_left2": {
"rotation": [0, 20, 0]
},
"wing_middle_left3": {
"rotation": [0, 32.5, 0]
},
"wing_middle_left4": {
"rotation": [0, 20, 0]
},
"wing_bototm_left": {
"rotation": [0, -7.5, 0]
},
"wing_bototm_left2": {
"rotation": [0, 25, 0]
},
"wing_bototm_left3": {
"rotation": [0, 25, 0]
},
"wing_bototm_left4": {
"rotation": [0, 22.5, 0]
},
"wing_top_right": {
"rotation": [0, -2.5, 0]
},
"wing_top_right2": {
"rotation": [0, -25, 0]
},
"wing_top_right3": {
"rotation": [0, -37.5, 0]
},
"wing_top_right4": {
"rotation": [0, -25, 0]
},
"wing_middle_right2": {
"rotation": [0, -20, 0]
},
"wing_middle_right3": {
"rotation": [0, -32.5, 0]
},
"wing_middle_right4": {
"rotation": [0, -20, 0]
},
"wing_bototm_right": {
"rotation": [0, 7.5, 0]
},
"wing_bototm_right2": {
"rotation": [0, -25, 0]
},
"wing_bototm_right3": {
"rotation": [0, -25, 0]
},
"wing_bototm_right4": {
"rotation": [0, -22.5, 0]
},
"wing_bottom_left": {
"rotation": [0, -10, 0]
},
"wing_bottom_left2": {
"rotation": [0, 25, 0]
},
"wing_bottom_left3": {
"rotation": [0, 30, 0]
},
"wing_bottom_left4": {
"rotation": [0, 22.5, 0]
},
"wing_bottom_right": {
"rotation": [0, 10, 0]
},
"wing_bottom_right2": {
"rotation": [0, -25, 0]
},
"wing_bottom_right3": {
"rotation": [0, -30, 0]
},
"wing_bottom_right4": {
"rotation": [0, -22.5, 0]
}
}
},
@@ -102,10 +168,10 @@
"bones": {
"body": {
"rotation": [57.5, 0, 0],
"position": [0, "10+0.3*Math.cos((query.anim_time) * 90 * 4) * 1", "1*Math.cos((query.anim_time) * 90 * 2-40) * 1"]
"position": [0, 10, 0]
},
"arm_left": {
"rotation": [-42.54899, 21.9027, "6.329+Math.cos((query.anim_time) * 90 * 4-40) * 1"]
"rotation": [-42.54899, 21.9027, 6.32905]
},
"arm_left2": {
"rotation": [-30.808, 78.8418, -30.94683]
@@ -129,7 +195,7 @@
"rotation": [-7.25386, 5.29571, 5.31847]
},
"arm_right": {
"rotation": [-42.54899, -21.9027, "-6.329-Math.cos((query.anim_time) * 90 * 4-40) * 1"]
"rotation": [-42.54899, -21.9027, -6.32905]
},
"arm_right2": {
"rotation": [-30.808, -78.8418, 30.94683]
@@ -137,6 +203,9 @@
"head_rotation": {
"rotation": [-7.5, 0, 0]
},
"jaw": {
"rotation": [17.5, 0, 0]
},
"lower_hand_left": {
"rotation": [0, 0, 20]
},
@@ -149,45 +218,6 @@
"leg_right2": {
"rotation": [5, 0, 0]
},
"wing_bototm_left": {
"rotation": [0, -7.5, 0]
},
"wing_bototm_left2": {
"rotation": [0, 25, 0]
},
"wing_bototm_left3": {
"rotation": [0, 25, 0]
},
"wing_bototm_left4": {
"rotation": [0, 22.5, 0]
},
"wing_bototm_right": {
"rotation": [0, 7.5, 0]
},
"wing_bototm_right2": {
"rotation": [0, -25, 0]
},
"wing_bototm_right3": {
"rotation": [0, -25, 0]
},
"wing_bototm_right4": {
"rotation": [0, -22.5, 0]
},
"wrist_left": {
"rotation": [0, 7.5, -10]
},
"wrist_right": {
"rotation": [0, -7.5, 10]
},
"neck": {
"rotation": [-15, 0, 0]
},
"tail5": {
"rotation": [12.5, 0, 0]
},
"jaw": {
"rotation": [17.5, 0, 0]
},
"head_fur_top": {
"rotation": [10, 0, 0]
},
@@ -203,6 +233,105 @@
"head_fur_bottom": {
"rotation": [40, 0, 0]
},
"wing_top_left": {
"rotation": [0, 2.5, 0]
},
"wing_top_left2": {
"rotation": [0, 25, 0]
},
"wing_top_left3": {
"rotation": [0, 37.5, 0]
},
"wing_top_left4": {
"rotation": [0, 25, 0]
},
"wing_middle_left2": {
"rotation": [0, 20, 0]
},
"wing_middle_left3": {
"rotation": [0, 32.5, 0]
},
"wing_middle_left4": {
"rotation": [0, 20, 0]
},
"wing_bototm_left": {
"rotation": [0, -7.5, 0]
},
"wing_bototm_left2": {
"rotation": [0, 25, 0]
},
"wing_bototm_left3": {
"rotation": [0, 25, 0]
},
"wing_bototm_left4": {
"rotation": [0, 22.5, 0]
},
"wing_top_right": {
"rotation": [0, -2.5, 0]
},
"wing_top_right2": {
"rotation": [0, -25, 0]
},
"wing_top_right3": {
"rotation": [0, -37.5, 0]
},
"wing_top_right4": {
"rotation": [0, -25, 0]
},
"wing_middle_right2": {
"rotation": [0, -20, 0]
},
"wing_middle_right3": {
"rotation": [0, -32.5, 0]
},
"wing_middle_right4": {
"rotation": [0, -20, 0]
},
"wing_bototm_right": {
"rotation": [0, 7.5, 0]
},
"wing_bototm_right2": {
"rotation": [0, -25, 0]
},
"wing_bototm_right3": {
"rotation": [0, -25, 0]
},
"wing_bototm_right4": {
"rotation": [0, -22.5, 0]
},
"wing_bottom_left": {
"rotation": [0, -10, 0]
},
"wing_bottom_left2": {
"rotation": [0, 25, 0]
},
"wing_bottom_left3": {
"rotation": [0, 30, 0]
},
"wing_bottom_left4": {
"rotation": [0, 22.5, 0]
},
"wing_bottom_right": {
"rotation": [0, 10, 0]
},
"wing_bottom_right2": {
"rotation": [0, -25, 0]
},
"wing_bottom_right3": {
"rotation": [0, -30, 0]
},
"wing_bottom_right4": {
"rotation": [0, -22.5, 0]
},
"wrist_left": {
"rotation": [0, 7.5, -10]
},
"wrist_right": {
"rotation": [0, -7.5, 10]
},
"neck": {
"rotation": [-15, 0, 0]
},
"neck2": {
"rotation": [-12.5, 0, 0]
},
@@ -220,299 +349,9 @@
},
"head_fur_top_right": {
"rotation": [7.5, 0, 0]
}
}
},
"animation.hydreigon.sleep": {
"loop": true,
"bones": {
"body": {
"rotation": [37.5, 0, 0],
"position": [0, "12+0.4*Math.cos((query.anim_time) * 90 * 1) * 1", "2+0.2*Math.cos((query.anim_time) * 90 * 1-40) * 1"]
},
"arm_left": {
"rotation": [45.73398, 49.61222, "47.6554-Math.cos((query.anim_time) * 90 * 1-40) * 1"]
},
"arm_left2": {
"rotation": [-4.42112, 24.79844, -5.75209]
},
"tail": {
"rotation": [2.5, 0, 0]
},
"tail2": {
"rotation": [-20, 0, 0]
},
"tail3": {
"rotation": [-40, 0, 0]
},
"tail4": {
"rotation": [-22.5, 0, 0]
},
"leg_left": {
"rotation": [-24.75386, -5.29571, -5.31847]
},
"leg_right": {
"rotation": [-24.75386, 5.29571, 5.31847]
},
"arm_right": {
"rotation": [45.73398, -49.61222, "-47.6554-Math.cos((query.anim_time) * 90 * 1-40) * 1"]
},
"arm_right2": {
"rotation": [-4.42112, -24.79844, 5.75209]
},
"head_rotation": {
"rotation": [-12.5, 0, 0]
},
"lower_hand_left": {
"rotation": [0, 0, 10]
},
"lower_hand_right": {
"rotation": [0, 0, -10]
},
"leg_left2": {
"rotation": [30, 0, 0]
},
"leg_right2": {
"rotation": [30, 0, 0]
},
"wing_top_left": {
"rotation": [0, 0, 0]
},
"wing_top_left2": {
"rotation": [0, 5, 0]
},
"wing_top_left3": {
"rotation": [0, 5, 0]
},
"wing_top_left4": {
"rotation": [0, 7.5, 0]
},
"wing_middle_left2": {
"rotation": [0, 5, 0]
},
"wing_middle_left3": {
"rotation": [0, 5, 0]
},
"wing_middle_left4": {
"rotation": [0, 7.5, 0]
},
"wing_bototm_left": {
"rotation": [0, -7.5, 0]
},
"wing_bototm_left2": {
"rotation": [0, 25, 0]
},
"wing_bototm_left3": {
"rotation": [0, 25, 0]
},
"wing_bototm_left4": {
"rotation": [0, 22.5, 0]
},
"wing_top_right": {
"rotation": [0, 0, 0]
},
"wing_top_right2": {
"rotation": [0, -5, 0]
},
"wing_top_right3": {
"rotation": [0, -5, 0]
},
"wing_top_right4": {
"rotation": [0, -7.5, 0]
},
"wing_middle_right2": {
"rotation": [0, -5, 0]
},
"wing_middle_right3": {
"rotation": [0, -5, 0]
},
"wing_middle_right4": {
"rotation": [0, -7.5, 0]
},
"wing_bototm_right": {
"rotation": [0, 7.5, 0]
},
"wing_bototm_right2": {
"rotation": [0, -25, 0]
},
"wing_bototm_right3": {
"rotation": [0, -25, 0]
},
"wing_bototm_right4": {
"rotation": [0, -22.5, 0]
},
"wing_bottom_left": {
"rotation": [0, 0, 0]
},
"wing_bottom_left2": {
"rotation": [0, 5, 0]
},
"wing_bottom_left3": {
"rotation": [0, 5, 0]
},
"wing_bottom_left4": {
"rotation": [0, 7.5, 0]
},
"wing_bottom_right": {
"rotation": [0, 0, 0]
},
"wing_bottom_right2": {
"rotation": [0, -5, 0]
},
"wing_bottom_right3": {
"rotation": [0, -5, 0]
},
"wing_bottom_right4": {
"rotation": [0, -7.5, 0]
},
"jaw": {
"rotation": [10, 0, 0]
},
"head_fur_top": {
"rotation": [22.5, 0, 0]
},
"head_fur_top2": {
"rotation": [7.5, 0, 0]
},
"head_fur_top_left2": {
"rotation": [7.5, 0, 0]
},
"head_fur_top_right2": {
"rotation": [7.5, 0, 0]
},
"head_fur_bottom": {
"rotation": [40, 0, 0]
},
"neck2": {
"rotation": [10, 0, 0]
},
"neck3": {
"rotation": [10, 0, 0]
},
"neck": {
"rotation": [5, 0, 0]
},
"head_fur_left": {
"rotation": [0, 12.5, 0]
},
"head_fur_top_left": {
"rotation": [22.5, 0, 0]
},
"head_fur_bottom_left": {
"rotation": [0, 15, 0]
},
"head_fur_right": {
"rotation": [0, -12.5, 0]
},
"head_fur_top_right": {
"rotation": [22.5, 0, 0]
},
"head_fur_bottom_right": {
"rotation": [0, -15, 0]
},
"eyelid_left": {
"position": [0.1, 0, 0]
},
"eyelid_right": {
"position": [-0.1, 0, 0]
},
"hand_left": {
"rotation": [0, 0, 20]
},
"hand_right": {
"rotation": [0, 0, -20]
},
"wing_middle_left": {
"rotation": [0, 0, 0]
},
"wing_middle_right": {
"rotation": [0, 0, 0]
},
"head_angle": {
"rotation": [7.5, 0, 0]
},
"pupil_left": {
"position": [-0.1, 0, 0]
},
"pupil_right": {
"position": [0.1, 0, 0]
}
}
},
"animation.hydreigon.wing_motion": {
"loop": true,
"bones": {
"wing_top_left": {
"rotation": [0, "-12.5+math.sin(q.anim_time*90*2)*20", 0]
},
"wing_top_left2": {
"rotation": [0, "25+math.sin(q.anim_time*90*2-40)*7", 0]
},
"wing_top_left3": {
"rotation": [0, "30+math.sin(q.anim_time*90*2-80)*6", 0]
},
"wing_top_left4": {
"rotation": [0, "25+math.sin(q.anim_time*90*2-120)*6", 0]
},
"wing_middle_left": {
"rotation": [0, "-12.5+math.sin(q.anim_time*90*2-80)*20", 0]
},
"wing_middle_left2": {
"rotation": [0, "25+math.sin(q.anim_time*90*2-120)*7", 0]
},
"wing_middle_left3": {
"rotation": [0, "30+math.sin(q.anim_time*90*2-160)*6", 0]
},
"wing_middle_left4": {
"rotation": [0, "25+math.sin(q.anim_time*90*2-200)*6", 0]
},
"wing_bottom_left": {
"rotation": [0, "-12.5+math.sin(q.anim_time*90*2-160)*20", 0]
},
"wing_bottom_left2": {
"rotation": [0, "25+math.sin(q.anim_time*90*2-200)*7", 0]
},
"wing_bottom_left3": {
"rotation": [0, "30+math.sin(q.anim_time*90*2-240)*6", 0]
},
"wing_bottom_left4": {
"rotation": [0, "25+math.sin(q.anim_time*90*2-280)*6", 0]
},
"wing_top_right": {
"rotation": [0, "12.5-math.sin(q.anim_time*90*2)*20", 0]
},
"wing_top_right2": {
"rotation": [0, "-25-math.sin(q.anim_time*90*2-40)*7", 0]
},
"wing_top_right3": {
"rotation": [0, "-30-math.sin(q.anim_time*90*2-80)*6", 0]
},
"wing_top_right4": {
"rotation": [0, "-25-math.sin(q.anim_time*90*2-120)*6", 0]
},
"wing_middle_right": {
"rotation": [0, "12.5-math.sin(q.anim_time*90*2-80)*20", 0]
},
"wing_middle_right2": {
"rotation": [0, "-25-math.sin(q.anim_time*90*2-120)*7", 0]
},
"wing_middle_right3": {
"rotation": [0, "-30-math.sin(q.anim_time*90*2-160)*6", 0]
},
"wing_middle_right4": {
"rotation": [0, "-25-math.sin(q.anim_time*90*2-200)*6", 0]
},
"wing_bottom_right": {
"rotation": [0, "12.5-math.sin(q.anim_time*90*2-160)*20", 0]
},
"wing_bottom_right2": {
"rotation": [0, "-25-math.sin(q.anim_time*90*2-200)*7", 0]
},
"wing_bottom_right3": {
"rotation": [0, "-30-math.sin(q.anim_time*90*2-240)*6", 0]
},
"wing_bottom_right4": {
"rotation": [0, "-25-math.sin(q.anim_time*90*2-280)*6", 0]
"tail5": {
"rotation": [12.5, 0, 0]
}
}
},
@@ -526,6 +365,13 @@
"0.1667": [0, 0, 0]
}
},
"eyelid_right": {
"position": {
"0.0": [-0.1, 0, 0],
"0.125": [-0.1, 0, 0],
"0.1667": [0, 0, 0]
}
},
"pupil_left": {
"position": {
"0.0": [-0.1, 0, 0],
@@ -539,113 +385,14 @@
"0.125": [0.1, 0, 0],
"0.1667": [0, 0, 0]
}
},
"eyelid_right": {
"position": {
"0.0": [-0.1, 0, 0],
"0.125": [-0.1, 0, 0],
"0.1667": [0, 0, 0]
}
}
}
},
"animation.hydreigon.shock": {
"loop": true,
"bones": {
"head_fur_bottom": {
"rotation": [15, 0, 0]
},
"pupil_left": {
"scale": [1, 0.7, 0.7]
},
"pupil_right": {
"scale": [1, 0.7, 0.7]
},
"jaw": {
"rotation": [20, 0, 0]
}
}
},
"animation.hydreigon.angry": {
"loop": true,
"bones": {
"eye_angry_left": {
"position": [0.1, 0, 0]
},
"eye_angry_right": {
"position": [-0.1, 0, 0]
}
}
},
"animation.hydreigon.sad": {
"loop": true,
"bones": {
"eye_sad_left": {
"position": [0.1, 0, 0]
},
"eye_sad_right": {
"position": [-0.1, 0, 0]
}
}
},
"animation.hydreigon.unamused": {
"loop": true,
"bones": {
"eye_unamused_left": {
"position": [0.1, 0, 0]
},
"eye_unamused_right": {
"position": [-0.1, 0, 0]
}
}
},
"animation.hydreigon.happy": {
"loop": true,
"bones": {
"head_fur_bottom": {
"rotation": [15, 0, 0]
},
"jaw": {
"rotation": [20, 0, 0]
},
"eyelid_happy_left": {
"position": [0.1, 0, 0]
},
"eyelid_happy_right": {
"position": [-0.1, 0, 0]
}
}
},
"animation.hydreigon.blush": {
"loop": true,
"bones": {
"blush_left": {
"position": [0.1, 0, 0]
},
"blush_right": {
"position": [-0.1, 0, 0]
}
}
},
"animation.hydreigon.hurt": {
"loop": true,
"bones": {
"eyelid_recoil_left": {
"position": [0.1, 0, 0]
},
"eyelid_recoil_right": {
"position": [-0.1, 0, 0]
}
}
},
"animation.hydreigon.worried": {
"loop": true,
"bones": {
"eyelid_worried_left": {
"position": [0.1, 0, 0]
},
"eyelid_worried_right": {
"position": [-0.1, 0, 0]
"animation.hydreigon.cry": {
"animation_length": 1.2,
"sound_effects": {
"0.04": {
"effect": "pokemon.hydreigon.cry"
}
}
}
@@ -4,9 +4,13 @@
"animation.brionne.ground_idle": {
"loop": true,
"bones": {
"brionne": {
"rotation": [-37.5, 0, 0],
"position": [0, 2, -6]
},
"body": {
"rotation": ["31.5-2*math.sin(q.anim_time*90*2)", 0, "1*math.sin(q.anim_time*90*2)"],
"position": [0, -6.6, -2.3]
"rotation": ["67.5-2*math.sin(q.anim_time*90*2)", 0, "1*math.sin(q.anim_time*90*2)"],
"position": [0, -6, 0]
},
"head": {
"rotation": ["-25+3*math.sin(q.anim_time*90*2-70)", "1*math.sin(q.anim_time*90*2-70)", "1*math.sin(q.anim_time*90*2-70)"],
@@ -36,7 +40,7 @@
"rotation": [0, 0, 0]
},
"tail": {
"rotation": ["22.5+2*math.sin(q.anim_time*90*2)", "10*math.sin(q.anim_time*90*1)", "-10*math.sin(q.anim_time*90*1)"]
"rotation": ["12.5+2*math.sin(q.anim_time*90*2)", 0, "-10*math.sin(q.anim_time*90*1)"]
},
"tail2": {
"rotation": [37.41159, 0.9339, "-0.0383-5*math.sin(q.anim_time*90*1)"]
@@ -45,24 +49,24 @@
"rotation": [-5, 0, "-10*math.sin(q.anim_time*90*1)"]
},
"arm_right": {
"rotation": ["54.4744-1*math.sin(q.anim_time*90*2-20)", "-62.619-2*math.sin(q.anim_time*90*2)", -60.57546],
"rotation": ["40.4753-1*math.sin(q.anim_time*90*2-20)", "-62.9692-2*math.sin(q.anim_time*90*2)", -45.10039],
"position": [0, 0.25, -0.5]
},
"arm_right2": {
"rotation": [0, 0, "-25-4*math.sin(q.anim_time*90*2)"]
},
"arm_right3": {
"rotation": [0, 0, "65-2*math.sin(q.anim_time*90*2)"]
"rotation": [0, 0, "57.5-2*math.sin(q.anim_time*90*2)"]
},
"arm_left": {
"rotation": ["54.0636-2*math.sin(q.anim_time*90*2)", "62.6869-2*math.sin(q.anim_time*90*2)", 60.60008],
"rotation": ["40.4753-2*math.sin(q.anim_time*90*2)", "62.9692-2*math.sin(q.anim_time*90*2)", 45.10039],
"position": [0, 0.25, -0.5]
},
"arm_left2": {
"rotation": [0, 0, 25]
},
"arm_left3": {
"rotation": [0, 0, "-62.5+2*math.sin(q.anim_time*90*2)"]
"rotation": [0, 0, "-55+2*math.sin(q.anim_time*90*2)"]
},
"ruff_right": {
"rotation": ["132.5-4*math.sin(q.anim_time*90*2-50)", 0, 120]
@@ -122,9 +126,13 @@
"loop": true,
"animation_length": 4,
"bones": {
"brionne": {
"rotation": [-37.5, 0, 0],
"position": [0, 2, -6]
},
"body": {
"rotation": ["32.5+10*math.sin(q.anim_time*90*3-40)+2*math.sin(q.anim_time*90*6-20)", "1*math.sin(q.anim_time*90*5)", "1*math.sin(q.anim_time*90*3)"],
"position": [0, "-6.45-1*math.sin(q.anim_time*90*3)+0.3*math.sin(q.anim_time*90*4)", "2*math.sin(q.anim_time*90*3)"]
"rotation": ["67.5+10*math.sin(q.anim_time*90*3-40)+2*math.sin(q.anim_time*90*6-20)", "1*math.sin(q.anim_time*90*5)", "1*math.sin(q.anim_time*90*3)"],
"position": [0, "-6-1*math.sin(q.anim_time*90*3)+0.3*math.sin(q.anim_time*90*4)", "2*math.sin(q.anim_time*90*3)"]
},
"head": {
"rotation": ["-25-10*math.sin(q.anim_time*90*3-70)", "1*math.sin(q.anim_time*90*3-70)", "1*math.sin(q.anim_time*90*3-70)"],
@@ -155,13 +163,17 @@
"rotation": ["22.5+10*math.sin(q.anim_time*90*3)", 0, "-10*math.sin(q.anim_time*90*3)"]
},
"tail2": {
"rotation": ["32.4116-5*math.sin(q.anim_time*90*3-50)", 0.9339, "-0.0383-5*math.sin(q.anim_time*90*3)"]
"rotation": ["37.4116-5*math.sin(q.anim_time*90*3-50)", 0.9339, "-0.0383-5*math.sin(q.anim_time*90*3)"]
},
"tail3": {
"rotation": ["17.5+10*math.sin(q.anim_time*90*3-50)", "-2*math.sin(q.anim_time*90*3)", "-10*math.sin(q.anim_time*90*1)"]
},
"arm_right": {
"rotation": ["15.5445+2*math.sin(q.anim_time*90*3)", "-51.6588-40*math.sin(q.anim_time*90*3+60)", "-19.6149+25*math.sin(q.anim_time*90*3+40)"],
"rotation": [
"15.5445+2*math.sin(q.anim_time*90*3)",
"-51.6588-40*math.sin(q.anim_time*90*3+60)",
"-19.6149+25*math.sin(q.anim_time*90*3+40)"
],
"position": [0, "1+0.9*math.sin(q.anim_time*90*3+40)", -0.5]
},
"arm_right2": {
@@ -241,9 +253,13 @@
"loop": true,
"animation_length": 4,
"bones": {
"brionne": {
"rotation": [-37.5, 0, 0],
"position": [0, 2, -6]
},
"body": {
"rotation": ["8.5+2*math.sin(q.anim_time*90*2+50)", 0, "2*math.sin(q.anim_time*90*1)"],
"position": [0, "-6.25-0.1*math.sin(q.anim_time*90*4)", "-2.85-0.3*math.sin(q.anim_time*90*2)"]
"rotation": ["47.5+2*math.sin(q.anim_time*90*2+50)", 0, "2*math.sin(q.anim_time*90*1)"],
"position": [0, "-7.25-0.1*math.sin(q.anim_time*90*4)", "-1.75-0.3*math.sin(q.anim_time*90*2)"]
},
"head": {
"rotation": ["-7.5+4*math.sin(q.anim_time*90*2)", "0-5*math.sin(q.anim_time*90*1-120)", "0+10*math.sin(q.anim_time*90*1-20)"],
@@ -274,7 +290,7 @@
"rotation": ["47.5+2*math.sin(q.anim_time*90*2)", 0, "-10*math.sin(q.anim_time*90*1)"]
},
"tail2": {
"rotation": [19.91159, "5*math.sin(q.anim_time*90*1)", "-0.0383-5*math.sin(q.anim_time*90*1)"],
"rotation": [19.91159, 0.9339, "-0.0383-5*math.sin(q.anim_time*90*1)"],
"position": [0, -0.5, 0.75]
},
"tail3": {
@@ -767,8 +783,8 @@
"animation_length": 4,
"bones": {
"brionne": {
"rotation": [-38, 0, 0],
"position": [0, 4.7, -5]
"rotation": [-37.5, 0, 0],
"position": [0, 3, -9]
},
"body": {
"rotation": ["67.5+5*math.sin(q.anim_time*90*3-80)", "2*math.cos(q.anim_time*90*3-80)", 0],
@@ -889,7 +905,7 @@
"2.2917": [120, 0, -360]
},
"position": {
"0.0": [0, -5, 0],
"0.0": [0, -6, 0],
"0.375": {
"pre": [0, -4.21495, -2.86971],
"post": [0, -4.21495, -2.86971],
@@ -1262,7 +1278,7 @@
},
"arm_right": {
"rotation": {
"0.0": [52.43798, -55.65395, -58.57],
"0.0": [40.81732, -62.9692, -45.10039],
"0.2083": {
"pre": [-0.73524, -43.64642, -39.21896],
"post": [-0.73524, -43.64642, -39.21896],
@@ -1313,7 +1329,7 @@
},
"arm_left": {
"rotation": {
"0.0": [52.16998, 55.69027, 58.65333],
"0.0": [40.4753, 62.9692, 45.10039],
"0.5417": [-45.76649, 66.62741, 22.12736],
"1.0833": [30.83793, 6.79399, -18.87541],
"1.625": [-56.33212, -10.39883, -29.14854],
@@ -1432,18 +1448,6 @@
"1.8333": [0, -0.1, 0],
"2.0": [0, 0, 0]
}
},
"hand_left": {
"rotation": {
"0.0": [0, 0, -15],
"1.5833": [0, 0, 0]
}
},
"hand_right": {
"rotation": {
"0.0": [0, 0, 15],
"1.5833": [0, 0, 0]
}
}
}
}
@@ -18,56 +18,6 @@
}
}
},
"animation.mareanie.ground_walk": {
"loop": true,
"bones": {
"head": {
"rotation": [-7.5, 0, 0]
},
"hair_dread_front_angle": {
"rotation": [0, 0, -2.5]
},
"hair_dread_front2": {
"rotation": [0, 0, 2.5]
},
"hair_dread_back2": {
"rotation": [0, 0, -5]
},
"body": {
"position": [0, 0, "Math.cos((query.anim_time) * 90 * 2) * 0.6"]
},
"torso": {
"rotation": [2.5, 0, 0]
},
"neck": {
"rotation": [10, 0, 0]
},
"hair_dread_left_angle": {
"rotation": [0, -5, 0]
},
"hair_dread_right_angle": {
"rotation": [0, 5, 0]
},
"hair_dread_front_left2": {
"rotation": [0, 0, -2.5]
},
"hair_dread_front_left3": {
"rotation": [0, 0, -10]
},
"hair_dread_front_right2": {
"rotation": [0, 0, 2.5]
},
"hair_dread_front_right3": {
"rotation": [0, 0, 10]
},
"hair_dread_back_left2": {
"rotation": [0, 0, -5]
},
"hair_dread_back_right2": {
"rotation": [0, 0, 5]
}
}
},
"animation.mareanie.blink": {
"animation_length": 0.1667,
"bones": {
@@ -87,72 +37,11 @@
}
}
},
"animation.mareanie.shock": {
"loop": true,
"bones": {
"pupil_left": {
"position": [0, -0.5, 0],
"scale": [1, 0.7, 1]
},
"pupil_right": {
"position": [0, -0.5, 0],
"scale": [1, 0.7, 1]
},
"mouth_closed": {
"position": [0, 0, 1]
},
"mouth_open": {
"position": [0, 0, -1]
}
}
},
"animation.mareanie.angry": {
"loop": true,
"bones": {
"eye_angry_left": {
"position": [0.1, 0, -0.1]
},
"eye_angry_right": {
"position": [-0.1, 0, -0.1]
}
}
},
"animation.mareanie.sad": {
"loop": true,
"bones": {
"eye_sad_left": {
"position": [0.1, 0, -0.1]
},
"eye_sad_right": {
"position": [-0.1, 0, -0.1]
}
}
},
"animation.mareanie.happy": {
"loop": true,
"bones": {
"mouth_closed": {
"position": [0, 0, 1]
},
"mouth_open": {
"position": [0, 0, -1]
},
"eyelid_happy_left": {
"position": [0.1, 0, -0.1]
},
"eyelid_happy_right": {
"position": [-0.1, 0, -0.1]
}
}
},
"animation.mareanie.hurt": {
"loop": true,
"bones": {
"eyelid_recoil_left": {
"position": [0.1, 0, -0.1]
},
"eyelid_recoil_right": {
"position": [-0.1, 0, -0.1]
"animation.mareanie.cry": {
"animation_length": 1.2,
"sound_effects": {
"0.04": {
"effect": "pokemon.mareanie.cry"
}
}
}
@@ -36,217 +36,6 @@
}
}
},
"animation.toxapex.ground_walk": {
"loop": true,
"bones": {
"leg_front_left1_rotation": {
"rotation": [-3.73063, -13.65324, 4.97001]
},
"leg_front_left1_2": {
"rotation": [-17.5, 0, 0]
},
"leg_front_left1_3": {
"rotation": [-10, 0, 0]
},
"leg_front_left1_4": {
"rotation": [-15, 0, 0]
},
"leg_front_left1_5": {
"rotation": [-12.5, 0, 0]
},
"leg_front_right1_rotation": {
"rotation": [0, 15, -0.00001]
},
"leg_front_right1_2": {
"rotation": [-25, 0, 0]
},
"leg_front_right1_3": {
"rotation": [-10, 0, 0]
},
"leg_front_right1_4": {
"rotation": [-15, 0, 0]
},
"leg_front_right1_5": {
"rotation": [-12.5, 0, 0]
},
"body": {
"position": [0, -1.25, "Math.cos((query.anim_time) * 90 * 1) * 0.8"]
},
"leg_front_left2_rotation": {
"rotation": [-7.5, 0, 0]
},
"leg_front_left2_2": {
"rotation": [-12.5, 0, 0]
},
"leg_front_left2_3": {
"rotation": [5, 0, 0]
},
"leg_front_left2_4": {
"rotation": [12.5, 0, 0]
},
"leg_front_left3_rotation": {
"rotation": [-7.5, 0, 0]
},
"leg_front_left3_2": {
"rotation": [-15, 0, 0]
},
"leg_front_left3_3": {
"rotation": [7.5, 0, 0]
},
"leg_front_left3_4": {
"rotation": [20, 0, 0]
},
"leg_back_left1_rotation": {
"rotation": [7.5, 0, 0]
},
"leg_back_left1_4": {
"rotation": [-2.5, 0, 0]
},
"leg_back_left1_5": {
"rotation": [-5, 0, 0]
},
"leg_back_left2_rotation": {
"rotation": [7.5, -5, 0]
},
"leg_back_left2_2": {
"rotation": [2.5, 0, 0]
},
"leg_back_left2_4": {
"rotation": [-10, 0, 0]
},
"leg_back_left2_5": {
"rotation": [0, 0, 0]
},
"leg_back_left3_rotation": {
"rotation": [0, -5, 0]
},
"leg_back_left3_2": {
"rotation": [15, 0, 0]
},
"leg_back_left3_3": {
"rotation": [-5, 0, 0]
},
"leg_back_left3_4": {
"rotation": [-7.5, 0, 0]
},
"leg_front_right2_rotation": {
"rotation": [-7.5, 0, 0]
},
"leg_front_right2_2": {
"rotation": [-12.5, 0, 0]
},
"leg_front_right2_3": {
"rotation": [5, 0, 0]
},
"leg_front_right2_4": {
"rotation": [12.5, 0, 0]
},
"leg_front_right3_rotation": {
"rotation": [-7.5, 0, 0]
},
"leg_front_right3_2": {
"rotation": [-15, 0, 0]
},
"leg_front_right3_3": {
"rotation": [7.5, 0, 0]
},
"leg_front_right3_4": {
"rotation": [20, 0, 0]
},
"leg_back_right1_rotation": {
"rotation": [7.5, 0, 0]
},
"leg_back_right1_4": {
"rotation": [-2.5, 0, 0]
},
"leg_back_right1_5": {
"rotation": [-5, 0, 0]
},
"leg_back_right2_rotation": {
"rotation": [7.5, 5, 0]
},
"leg_back_right2_2": {
"rotation": [2.5, 0, 0]
},
"leg_back_right2_4": {
"rotation": [-10, 0, 0]
},
"leg_back_right2_5": {
"rotation": [0, 0, 0]
},
"leg_back_right3_rotation": {
"rotation": [0, 5, 0]
},
"leg_back_right3_2": {
"rotation": [15, 0, 0]
},
"leg_back_right3_3": {
"rotation": [-5, 0, 0]
},
"leg_back_right3_4": {
"rotation": [-7.5, 0, 0]
},
"head_connection": {
"rotation": [5, 0, 0]
},
"head": {
"rotation": [7.5, 0, 0]
}
}
},
"animation.toxapex.sleep": {
"loop": true,
"bones": {
"leg_front_left1_rotation": {
"rotation": [50, 0, 0]
},
"leg_front_left1_2": {
"rotation": [-15, 0, 0]
},
"fingers_front_left1": {
"rotation": [-90, 0, 0]
},
"leg_front_right1_rotation": {
"rotation": [50, 0, 0]
},
"leg_front_right1_2": {
"rotation": [-15, 0, 0]
},
"fingers_front_right1": {
"rotation": [-90, 0, 0]
},
"leg_front_right1_5_rotation": {
"rotation": [23, 0, 0]
},
"leg_front_left1_4_rotation": {
"rotation": [17.5, 0, 0]
},
"leg_front_left1_5_rotation": {
"rotation": [23, 0, 0]
},
"leg_front_right1_4_rotation": {
"rotation": [17.5, 0, 0]
},
"leg_front_right1_3_rotation": {
"rotation": [15, 0, 0]
},
"leg_front_left1_3_rotation": {
"rotation": [15, 0, 0]
},
"head_connection": {
"rotation": [7.5, 0, 0]
},
"head": {
"rotation": [19.71975, -3.40487, 9.40804]
},
"eyelid_left": {
"position": [0.1, 0, -0.1]
},
"eyelid_right": {
"position": [-0.1, 0, -0.1]
}
}
},
"animation.toxapex.blink": {
"animation_length": 0.1667,
"bones": {
@@ -411,6 +200,14 @@
"rotation": [-20, 0, 0]
}
}
},
"animation.toxapex.cry": {
"animation_length": 1.2,
"sound_effects": {
"0.04": {
"effect": "pokemon.toxapex.cry"
}
}
}
}
}
@@ -3,362 +3,22 @@
"animations": {
"animation.fomantis.ground_idle": {
"loop": true,
"animation_length": 8,
"bones": {
"left_back_arm_flowering": {
"scale": 0
},
"right_back_arm_flowering": {
"scale": 0
},
"torso": {
"rotation": ["0+math.sin(q.anim_time*90*3+90)*0.5", "0+math.sin(q.anim_time*90*1.5+0)*5", "0+math.sin(q.anim_time*90*1.5+90)*2.5"],
"position": [0, "0+math.sin(q.anim_time*90*3+60)*0.05", 0]
},
"scarf": {
"rotation": [0, "0+math.sin(q.anim_time*90*1.5-60)*3", 0]
},
"left_front_arm": {
"rotation": ["0+math.sin(q.anim_time*90*1.5-30)*3", 0, "0+math.sin(q.anim_time*90*1.5-30)*5"]
},
"right_front_arm": {
"rotation": ["0+math.sin(q.anim_time*90*1.5+150)*3", 0, "0+math.sin(q.anim_time*90*1.5-30)*5"]
},
"right_back_arm": {
"rotation": ["0+math.sin(q.anim_time*90*1.5-30)*2", 0, "0+math.sin(q.anim_time*90*1.5+150)*3"]
},
"left_back_arm": {
"rotation": ["0+math.sin(q.anim_time*90*1.5+150)*2", 0, "0+math.sin(q.anim_time*90*1.5+150)*3"]
},
"tail": {
"rotation": [0, "0+math.sin(q.anim_time*90*1.5-35)*7.5", 0]
},
"head": {
"rotation": ["0+math.sin(q.anim_time*90*3+60)*0.5", "0+math.sin(q.anim_time*90*1.5+150)*3", "0+math.sin(q.anim_time*90*1.5+60)*1.5"]
},
"bang_right": {
"rotation": [0, "0+math.sin(q.anim_time*90*1.5+0)*3", "0+math.sin(q.anim_time*90*1.5+30)*3"]
},
"bang_left": {
"rotation": [0, "0+math.sin(q.anim_time*90*1.5+0)*3", "0+math.sin(q.anim_time*90*1.5+30)*3"]
},
"bang_middle": {
"rotation": ["0+math.sin(q.anim_time*90*3+30)*0.5", 0, "0+math.sin(q.anim_time*90*1.5+30)*3"]
},
"bang_bend": {
"rotation": ["0+math.sin(q.anim_time*90*3+0)*0.5", "0+math.sin(q.anim_time*90*1.5+0)*1.5", 0]
},
"hat": {
"rotation": [0, 0, "0+math.sin(q.anim_time*90*1.5+45)*0.3"]
},
"hat_petal_right": {
"rotation": [0, "0+math.sin(q.anim_time*90*1.5+215)*4", 0]
},
"hat_petal_right2": {
"rotation": [0, "0+math.sin(q.anim_time*90*1.5+25)*4", 0]
},
"hat_petal_left": {
"rotation": [0, "0+math.sin(q.anim_time*90*1.5+205)*4", 0]
},
"hat_petal_left2": {
"rotation": [0, "0+math.sin(q.anim_time*90*1.5+35)*4", 0]
},
"hat_petal_front": {
"rotation": [0, "0+math.sin(q.anim_time*90*1.5+210)*5", 0]
},
"hat_petal_back": {
"rotation": [0, "0+math.sin(q.anim_time*90*1.5+30)*5", 0]
},
"hat_bulb": {
"rotation": ["0+math.sin(q.anim_time*90*3+0)*1", 0, "0+math.sin(q.anim_time*90*1.5+0)*1.5"]
}
}
},
"animation.fomantis.ground_walk": {
"loop": true,
"bones": {
"left_back_arm_flowering": {
"scale": 0
},
"right_back_arm_flowering": {
"scale": 0
},
"torso": {
"rotation": ["0+math.sin(q.anim_time*90*6-20)*2.5", "0+math.sin(q.anim_time*90*3+120)*8", "0+math.sin(q.anim_time*90*3-20)*2"],
"position": [0, "0+math.sin(q.anim_time*90*6-35)*0.2", 0]
},
"scarf": {
"rotation": ["0+math.sin(q.anim_time*90*6-75)*2", "0+math.sin(q.anim_time*90*3+65)*3", "0+math.sin(q.anim_time*90*3-75)*1"]
},
"head": {
"rotation": ["0+math.sin(q.anim_time*90*6-50)*2", "0+math.sin(q.anim_time*90*3-90)*5", "0+math.sin(q.anim_time*90*3-50)*1.5"]
},
"bang": {
"rotation": ["-1+math.sin(q.anim_time*90*6-65)*1", 0, 0]
},
"bang_right": {
"rotation": [0, "0+math.sin(q.anim_time*90*3-115)*3", "0+math.sin(q.anim_time*90*3-115)*3"]
},
"bang_left": {
"rotation": [0, "0+math.sin(q.anim_time*90*3-125)*3", "0+math.sin(q.anim_time*90*3-125)*3"]
},
"bang_middle": {
"rotation": ["0+math.sin(q.anim_time*90*6-95)*2", 0, "0+math.sin(q.anim_time*90*3-90)*3"]
},
"bang_bend": {
"rotation": ["0+math.sin(q.anim_time*90*6-125)*1", "0+math.sin(q.anim_time*90*3-120)*1.5", 0]
},
"hat": {
"rotation": ["0+math.sin(q.anim_time*90*6-65)*1", 0, 0]
},
"hat_petal_right": {
"rotation": ["0+math.sin(q.anim_time*90*6-85)*2", 0, "0+math.sin(q.anim_time*90*6+95)*2"]
},
"hat_petal_left": {
"rotation": ["0+math.sin(q.anim_time*90*6-75)*2", 0, "0+math.sin(q.anim_time*90*6-75)*2"]
},
"left_front_arm": {
"rotation": ["0+math.sin(q.anim_time*90*3+105)*1", "0+math.sin(q.anim_time*90*6-50)*2", "0+math.sin(q.anim_time*90*3+90)*5"]
},
"left_front_arm_bend": {
"rotation": [0, 0, "0+math.sin(q.anim_time*90*6-80)*2.5"]
},
"left_front_arm_end": {
"rotation": [0, 0, "0+math.sin(q.anim_time*90*6-110)*3"]
},
"right_front_arm": {
"rotation": ["0+math.sin(q.anim_time*90*3-75)*1", "0+math.sin(q.anim_time*90*6+130)*2", "0+math.sin(q.anim_time*90*3+90)*5"]
},
"right_front_arm_bend": {
"rotation": [0, 0, "0+math.sin(q.anim_time*90*6+100)*2.5"]
},
"right_front_arm_end": {
"rotation": [0, 0, "0+math.sin(q.anim_time*90*6+70)*3"]
},
"right_back_arm": {
"rotation": [0, "-1+math.sin(q.anim_time*90*6-50)*3", "0+math.sin(q.anim_time*90*3+90)*4"]
},
"right_back_arm_bend2": {
"rotation": [0, 0, "2.5+math.sin(q.anim_time*90*6-80)*2.5"]
},
"right_back_arm_end2": {
"rotation": [0, 0, "0+math.sin(q.anim_time*90*6-110)*2.5"]
},
"left_back_arm": {
"rotation": [0, "1+math.sin(q.anim_time*90*6+130)*3", "0+math.sin(q.anim_time*90*3+90)*4"]
},
"left_back_arm_bend2": {
"rotation": [0, 0, "-2.5+math.sin(q.anim_time*90*6+100)*2.5"]
},
"left_back_arm_end2": {
"rotation": [0, 0, "0+math.sin(q.anim_time*90*6+70)*2.5"]
},
"tail": {
"rotation": ["0+math.sin(q.anim_time*90*6-50)*3", "0+math.sin(q.anim_time*90*3+90)*5", 0]
},
"right_leg": {
"rotation": ["0+math.clamp(math.sin(query.anim_time*90*3*1+180)*22.5,-20,0)+math.clamp(math.sin(query.anim_time*90*3*1+180)*22.5,0,20)", 0, 0],
"position": [0, "0+math.clamp(math.sin(query.anim_time*90*3*1+50)*0.75,-0.1,0.75)", "0+math.sin(q.anim_time*90*3-210)*0.9"]
},
"left_leg": {
"rotation": ["0+math.clamp(math.sin(query.anim_time*90*3*1+0)*22.5,-20,0)+math.clamp(math.sin(query.anim_time*90*3*1+0)*22.5,0,20)", 0, 0],
"position": [0, "0+math.clamp(math.sin(query.anim_time*90*3*1+230)*0.75,-0.1,0.75)", "0+math.sin(q.anim_time*90*3-30)*0.9"]
},
"hat_petal_front": {
"rotation": ["0+math.sin(q.anim_time*90*6-80)*3", 0, 0]
},
"hat_petal_back": {
"rotation": ["0+math.sin(q.anim_time*90*6-80)*3", 0, 0]
},
"hat_petal_right2": {
"rotation": ["0+math.sin(q.anim_time*90*6-75)*2", 0, "0+math.sin(q.anim_time*90*6+105)*2"]
},
"hat_petal_left2": {
"rotation": ["0+math.sin(q.anim_time*90*6-85)*2", 0, "0+math.sin(q.anim_time*90*6-85)*2"]
},
"hat_bulb": {
"rotation": ["0+math.sin(q.anim_time*90*6-100)*1.5", 0, "0+math.sin(q.anim_time*90*3-90)*2"]
}
}
},
"animation.fomantis.sleep": {
"loop": true,
"bones": {
"left_back_arm_flowering": {
"scale": 0
},
"right_back_arm_flowering": {
"scale": 0
},
"torso": {
"rotation": ["-7.5+math.sin(q.anim_time*90*1+30)*1", 0, "0+math.sin(q.anim_time*90*0.5+120)*0.5"],
"position": [0, -1.25, 0.5]
},
"scarf": {
"rotation": ["8.5+math.sin(q.anim_time*90*1-30)*1", 0, 0],
"position": [0, -0.65, 0]
},
"left_front_arm": {
"rotation": [28.3532, -0.8845, -1.7121],
"position": [0, -0.7, 0]
},
"left_front_arm_bend": {
"rotation": [0, 0, "0+math.sin(q.anim_time*90*1+210)*1"]
},
"left_front_arm_end": {
"rotation": [0, 0, "-47.5+math.sin(q.anim_time*90*1+180)*1"]
},
"right_front_arm": {
"rotation": [28.35323, 0.88453, 1.71214],
"position": [0, -0.7, 0]
},
"right_front_arm_bend": {
"rotation": [0, 0, "0+math.sin(q.anim_time*90*1+30)*1"]
},
"right_front_arm_end": {
"rotation": [0, 0, "47.5+math.sin(q.anim_time*90*1+0)*1"]
},
"right_back_arm_bend2": {
"rotation": [0, 0, "10+math.sin(q.anim_time*90*1+210)*1"]
},
"right_back_arm_end2": {
"rotation": [0, 0, "50+math.sin(q.anim_time*90*1+180)*1"]
},
"left_back_arm_bend2": {
"rotation": [0, 0, "-10+math.sin(q.anim_time*90*1+30)*1"]
},
"left_back_arm_end2": {
"rotation": [0, 0, "-50+math.sin(q.anim_time*90*1+0)*1"]
},
"head": {
"rotation": ["12.5+math.sin(q.anim_time*90*1+0)*1.5", 0, "0+math.sin(q.anim_time*90*0.5+90)*0.5"],
"position": [0, -0.5, 0]
},
"left_eye_closed": {
"position": [0, 0, -0.1]
},
"right_eye_closed": {
"position": [0, 0, -0.1]
},
"bang_middle": {
"rotation": ["0+math.sin(q.anim_time*90*1+150)*1", 0, 0]
},
"bang_bend": {
"rotation": ["0+math.sin(q.anim_time*90*1+120)*0.5", 0, 0]
},
"hat_petal_right": {
"rotation": ["0+math.sin(q.anim_time*90*1-35)*1.5", 0, 0]
},
"hat_petal_right2": {
"rotation": ["0+math.sin(q.anim_time*90*1-25)*1.5", 0, 0]
},
"hat_petal_left": {
"rotation": ["0+math.sin(q.anim_time*90*1-25)*1.5", 0, 0]
},
"hat_petal_left2": {
"rotation": ["0+math.sin(q.anim_time*90*1-35)*1.5", 0, 0]
},
"hat_petal_front": {
"rotation": ["0+math.sin(q.anim_time*90*1-30)*1.5", 0, 0]
},
"hat_petal_back": {
"rotation": ["0+math.sin(q.anim_time*90*1-30)*1.5", 0, 0]
},
"hat_bulb": {
"rotation": ["0+math.sin(q.anim_time*90*1-60)*2", 0, "0+math.sin(q.anim_time*90*0.5+60)*1"]
},
"right_leg": {
"rotation": [-95, 7.5, -0.5],
"position": [0, -0.5, -1.5]
},
"left_leg": {
"rotation": [-95, -7.5, 0.5],
"position": [0, -0.5, -1.5]
}
}
},
"animation.fomantis.wild_sleep": {
"loop": true,
"bones": {
"body": {
"position": [0, -2, 0],
"scale": 1
},
"scarf": {
"position": [0, -3, 0]
},
"left_front_arm": {
"rotation": [22.5, 0, 0],
"position": [0, -3, 0]
},
"left_front_arm_bend": {
"rotation": [0, 0, -67.5]
},
"left_front_arm_end": {
"rotation": [0, 0, -15]
},
"right_front_arm": {
"rotation": [22.5, 0, 0],
"position": [0, -3, 0]
},
"right_front_arm_bend": {
"rotation": [0, 0, 67.5]
},
"right_front_arm_end": {
"rotation": [0, 0, 15]
},
"right_back_arm": {
"scale": 0
},
"tail": {
"scale": 0
},
"left_back_arm": {
"scale": 0
},
"left_back_arm_flowering": {
"rotation": [-22.5, 0, 0],
"position": [0, -3, 0]
},
"left_back_arm_bend": {
"rotation": [0, 0, -67.5]
},
"left_back_arm_end": {
"rotation": [0, 0, -15]
},
"right_back_arm_flowering": {
"rotation": [-22.5, 0, 0],
"position": [0, -3, 0]
},
"right_back_arm_bend": {
"rotation": [0, 0, 67.5]
},
"right_back_arm_end": {
"rotation": [0, 0, 15]
},
"right_eye_closed": {
"position": [0, 0, -0.1]
},
"left_eye_closed": {
"position": [0, 0, -0.1]
},
"head": {
"rotation": ["0+math.sin(q.anim_time*90*1+0)*0.75", 0, "0+math.sin(q.anim_time*90*1+90)*0.5"],
"position": [0, "-3.01+math.sin(q.anim_time*90*1+30)*0.05", 0]
},
"bang_middle": {
"rotation": ["0+math.sin(q.anim_time*90*1-30)*0.5", 0, "0+math.sin(q.anim_time*90*1+60)*0.5"]
},
"bang_bend": {
"rotation": ["0+math.sin(q.anim_time*90*1-60)*0.25", "0+math.sin(q.anim_time*90*1+30)*0.25", 0]
},
"hat_bulb": {
"rotation": ["0+math.sin(q.anim_time*90*1-60)*1", 0, "0+math.sin(q.anim_time*90*1+30)*0.75"]
}
}
},
"animation.fomantis.cry": {
"animation_length": 1,
"sound_effects": {
"0.04": {
"effect": "pokemon.fomantis.cry"
}
},
"bones": {
"head": {
"rotation": {
@@ -368,15 +28,10 @@
"1.0": [0, 0, 0]
}
}
},
"sound_effects": {
"0.0": {
"effect": "pokemon.fomantis.cry"
}
}
},
"animation.fomantis.blink": {
"animation_length": 0.2083,
"animation_length": 0.20833,
"bones": {
"left_eye_closed": {
"position": {
@@ -398,15 +53,14 @@
"loop": true,
"bones": {
"body": {
"position": [0, -2, 0],
"scale": 1
},
"scarf": {
"position": [0, -3, 0]
"position": [0, -5, 0]
},
"left_front_arm": {
"rotation": [22.5, 0, 0],
"position": [0, -3, 0]
"position": [0, -5, 0]
},
"left_front_arm_bend": {
"rotation": [0, 0, -67.5]
@@ -416,7 +70,7 @@
},
"right_front_arm": {
"rotation": [22.5, 0, 0],
"position": [0, -3, 0]
"position": [0, -5, 0]
},
"right_front_arm_bend": {
"rotation": [0, 0, 67.5]
@@ -435,7 +89,7 @@
},
"left_back_arm_flowering": {
"rotation": [-22.5, 0, 0],
"position": [0, -3, 0]
"position": [0, -5, 0]
},
"left_back_arm_bend": {
"rotation": [0, 0, -67.5]
@@ -445,7 +99,7 @@
},
"right_back_arm_flowering": {
"rotation": [-22.5, 0, 0],
"position": [0, -3, 0]
"position": [0, -5, 0]
},
"right_back_arm_bend": {
"rotation": [0, 0, 67.5]
@@ -458,9 +112,6 @@
},
"left_eye_closed": {
"position": [0, 0, -0.1]
},
"head": {
"position": [0, -3.01, 0]
}
}
}
@@ -5,10 +5,10 @@
"loop": true,
"bones": {
"arm_left": {
"rotation": [10, 0, 5]
"rotation": [0, 0, 5]
},
"arm_right": {
"rotation": [10, 0, -5]
"rotation": [0, 0, -5]
},
"head": {
"rotation": [2.5, 0, 0]
@@ -16,37 +16,11 @@
"head2": {
"rotation": [-2.5, 0, 0]
},
"head3": {
"rotation": [2.5, 0, 0]
},
"shovel": {
"rotation": [4.26538, 0.0977, -1.4422]
}
}
},
"animation.sandygast.ground_walk": {
"loop": true,
"bones": {
"arm_left": {
"rotation": [7.5, 0, 5]
},
"arm_right": {
"rotation": [7.5, 0, -5]
},
"head": {
"rotation": [5, 0, 0]
},
"head2": {
"rotation": [0, 0, 0]
},
"head3": {
"rotation": [-2.5, 0, 0]
},
"shovel": {
"rotation": [4.26538, 0.0977, -1.4422]
},
"body": {
"position": [0, 0, "Math.cos((query.anim_time) * 90 * 2) * 0.8"]
}
}
},
@@ -111,7 +85,7 @@
}
}
},
"animation.sandygast.hurt": {
"animation.sandygast.recoil": {
"loop": true,
"bones": {
"eyelid_recoil_left": {
@@ -132,32 +106,6 @@
"position": [0, -13.25, 0]
}
}
},
"animation.sandygast.render": {
"loop": true,
"bones": {
"sandygast": {
"rotation": [0, -17.5, 0]
},
"arm_left": {
"rotation": [-12.5, 0, 0]
},
"arm_left2": {
"rotation": [7.5, 0, 0]
},
"arm_right": {
"rotation": [10, 0, -10]
},
"arm_right2": {
"rotation": [15, 0, 0]
},
"eye_right": {
"position": [-0.5, 0, 0]
},
"shovel": {
"rotation": [-5, 0, 0]
}
}
}
}
}
@@ -14,22 +14,22 @@
"rotation": [2.5, 0, 0]
},
"arm_left": {
"rotation": [2.49762, -0.10901, 2.49762]
"rotation": [12.5, 0, 7.5]
},
"arm_left2": {
"rotation": [4.98107, -0.43523, 4.98107]
"rotation": [0, 0, 2.5]
},
"arm_left3": {
"rotation": [5, 0, 0]
},
"finger_left_right": {
"rotation": [7.49294, -0.32621, 2.47864]
"rotation": [0, 0, -7.5]
},
"finger_left_front": {
"rotation": [25, 0, 0]
"rotation": [10, 0, 0]
},
"finger_left_back": {
"rotation": [7.5, 0, 0]
"rotation": [-12.5, 0, 0]
},
"arm_right": {
"rotation": [12.5, 0, -7.5]
@@ -54,78 +54,14 @@
},
"shovel": {
"rotation": [3.54002, 3.53329, 0.10922]
}
}
},
"animation.palossand.ground_walk": {
"loop": true,
"bones": {
"torso2": {
"rotation": [2.5, 0, 0]
},
"head": {
"rotation": [5, 0, 0]
},
"head2": {
"rotation": [2.5, 0, 0]
},
"arm_left": {
"rotation": [12.48146, -0.64975, 4.93851]
},
"arm_left2": {
"rotation": [4.98107, -0.43523, 4.98107]
},
"arm_left3": {
"rotation": [5, 0, 0]
},
"finger_left_right": {
"rotation": [7.49294, -0.32621, 2.47864]
},
"finger_left_front": {
"rotation": [25, 0, 0]
},
"finger_left_back": {
"rotation": [7.5, 0, 0]
},
"arm_right": {
"rotation": [12.48146, 0.64975, -4.93851]
},
"arm_right2": {
"rotation": [0, 0, -2.5]
},
"arm_right3": {
"rotation": [5, 0, 0]
},
"finger_right_right": {
"rotation": [0, 0, -12.5]
},
"finger_right_left": {
"rotation": [0, 0, 7.5]
},
"finger_right_front": {
"rotation": [10, 0, 0]
},
"finger_right_back": {
"rotation": [-12.5, 0, 0]
},
"shovel": {
"rotation": [3.54002, 3.53329, 0.10922]
},
"body": {
"position": [0, 0, "Math.cos((query.anim_time) * 90 * 2) * 1"]
}
}
},
"animation.palossand.shovel_spin": {
"loop": true,
"bones": {
"shovel": {
"rotation": [0, "-q.anim_time*90*1.5 ", 0]
"finger_left_left": {
"rotation": [0, 0, 12.5]
}
}
},
"animation.palossand.blink": {
"animation_length": 0.1667,
"animation_length": 0.16667,
"bones": {
"eyelid_left": {
"position": {
@@ -197,79 +133,6 @@
"position": [0, 0, -0.1]
}
}
},
"animation.palossand.hidden": {
"loop": true,
"bones": {
"arms": {
"position": [0, -22, 0]
},
"torso2": {
"position": [0, -2, 0]
},
"head": {
"position": [0, -25, 0]
}
}
},
"animation.palossand.render": {
"loop": true,
"bones": {
"torso2": {
"rotation": [2.5, 0, 0]
},
"head": {
"rotation": [0, 0, 2.5]
},
"head2": {
"rotation": [2.5, 0, 0]
},
"arm_left": {
"rotation": [17.34336, -2.3573, 9.65482]
},
"arm_left2": {
"rotation": [12.48107, -0.43523, 4.98107]
},
"arm_left3": {
"rotation": [5, 0, 0]
},
"finger_left_right": {
"rotation": [7.49294, -0.32621, 2.47864]
},
"finger_left_front": {
"rotation": [25, 0, 0]
},
"finger_left_back": {
"rotation": [7.5, 0, 0]
},
"arm_right": {
"rotation": [12.5, 0, -7.5]
},
"arm_right2": {
"rotation": [15, 0, -2.5]
},
"arm_right3": {
"rotation": [10, 0, 0]
},
"finger_right_right": {
"rotation": [0, 0, -12.5]
},
"finger_right_left": {
"rotation": [0, 0, 7.5]
},
"finger_right_front": {
"rotation": [17.5, 0, 0]
},
"finger_right_back": {
"rotation": [-2.5, 0, 0]
},
"shovel": {
"rotation": [3.54002, 3.53329, 0.10922]
},
"palossand": {
"rotation": [0, 15, 0]
}
}
}
}
}
@@ -333,63 +333,63 @@
"body": {
"position": {
"0.0": {
"post": [-5.25, 2, 0],
"post": [-0.25, 2, 0],
"lerp_mode": "catmullrom"
},
"0.0833": {
"post": ["0.3-5", 4, 0],
"post": [0.3, 4, 0],
"lerp_mode": "catmullrom"
},
"0.2083": {
"post": ["2.5-5", 12, 0],
"lerp_mode": "catmullrom"
},
"0.4167": {
"post": [0.5, 10.5, 0],
"lerp_mode": "catmullrom"
},
"0.5417": {
"post": [3.61, 1.81, 0],
"lerp_mode": "catmullrom"
},
"0.6667": {
"post": [5, -1, 0],
"lerp_mode": "catmullrom"
},
"0.75": {
"post": [5.3, 0.5, 0],
"lerp_mode": "catmullrom"
},
"0.8333": {
"post": [5.25, 2, 0],
"lerp_mode": "catmullrom"
},
"0.9167": {
"post": [4.7, 4, 0],
"lerp_mode": "catmullrom"
},
"1.0417": {
"post": [2.5, 12, 0],
"lerp_mode": "catmullrom"
},
"0.4167": {
"post": [5.5, 10.5, 0],
"lerp_mode": "catmullrom"
},
"0.5417": {
"post": [8.61, 1.81, 0],
"lerp_mode": "catmullrom"
},
"0.6667": {
"post": [10, -1, 0],
"lerp_mode": "catmullrom"
},
"0.75": {
"post": [10.3, 0.5, 0],
"lerp_mode": "catmullrom"
},
"0.8333": {
"post": [10.25, 2, 0],
"lerp_mode": "catmullrom"
},
"0.9167": {
"post": [9.7, 4, 0],
"lerp_mode": "catmullrom"
},
"1.0417": {
"post": [7.5, 12, 0],
"lerp_mode": "catmullrom"
},
"1.25": {
"post": ["3.5-5", 10.5, 0],
"post": [3.5, 10.5, 0],
"lerp_mode": "catmullrom"
},
"1.375": {
"post": ["1.39-5", 1.81, 0],
"post": [1.39, 1.81, 0],
"lerp_mode": "catmullrom"
},
"1.5": {
"post": [-5, -1, 0],
"post": [0, -1, 0],
"lerp_mode": "catmullrom"
},
"1.5833": {
"post": ["-0.3-5", 0.5, 0],
"post": [-0.3, 0.5, 0],
"lerp_mode": "catmullrom"
},
"1.6667": {
"post": ["-0.25-5", 2, 0],
"post": [-0.25, 2, 0],
"lerp_mode": "catmullrom"
}
}
@@ -1575,8 +1575,7 @@
"post": [-2.64, 0, 12.68],
"lerp_mode": "catmullrom"
}
},
"position": [0, -0.5, 0]
}
}
}
},
@@ -2317,27 +2316,132 @@
},
"mouth_closed": {
"position": {
"0.1667": [0, 0, 0],
"0.25": {"pre": [0, 0, 0], "post": [0, 0, 0.1]},
"1.4167": {"pre": [0, 0, 0.1], "post": [0, 0, 0.1]},
"1.5": {"pre": [0, 0, 0.1], "post": [0, 0, 0]}
"0.25": [0, 0, 0],
"0.3333": [0, 0, 0.1],
"1.1667": [0, 0, 0.1],
"1.25": [0, 0, 0]
}
},
"mouth_open": {
"position": {
"0.0": [0, 0, 0],
"0.25": {"pre": [0, 0, 0], "post": [0, 0, -0.1]},
"1.25": {"pre": [0, 0, -0.1], "post": [0, 0, -0.1]},
"1.5": {"pre": [0, 0, -0.1], "post": [0, 0, 0]}
"0.25": [0, 0, -0.1],
"1.25": [0, 0, -0.1],
"1.5": [0, 0, 0]
}
}
},
"sound_effects": {
"0.1667": {
"0.04": {
"effect": "pokemon.scorbunny.cry"
}
}
},
"animation.scorbunny.pose": {
"loop": true,
"animation_length": 8,
"bones": {
"body": {
"rotation": [0, "0-query.anim_time*90*0.5", 0],
"position": [0, 3.1, 0]
},
"torso": {
"rotation": [2.18559, 9.76061, 25.18663]
},
"neck": {
"rotation": [0, -15, -12.5],
"position": [-0.25, 0, 0]
},
"head": {
"rotation": [-7.46533, -15.91701, -4.50555],
"position": [0, 0.25, 0]
},
"ear_right": {
"rotation": [-10.76, -1.35, -21.02]
},
"ear_right2": {
"rotation": [-20, 0, 0]
},
"ear_left": {
"rotation": [-7.61238, -29.73789, -19.31617]
},
"ear_left2": {
"rotation": [-25, 0, 0]
},
"mouth_closed": {
"position": [0, 0, 0.1]
},
"mouth_open": {
"position": [0, 0, -0.1]
},
"arm_right": {
"rotation": [-29.67029, 20.23258, -6.37191],
"position": [0, -0.5, 0]
},
"arm_right2": {
"rotation": [0, -12.5, 0]
},
"leg_left": {
"rotation": [9.96271, -0.86717, 17.42442],
"position": [-0.25, -0.5, -0.65]
},
"leg_left2": {
"rotation": [15, 0, 0],
"position": [0, 0, 0]
},
"foot_left": {
"rotation": [33.51125, -16.29766, -3.02632],
"position": [0, -0.5, 0]
},
"arm_right3": {
"rotation": [0, 0, 0]
},
"toe_left": {
"rotation": [-45, 0, 0]
},
"tail": {
"rotation": [25, 27.5, 0],
"position": [0.65, 0.75, 0]
},
"arm_left": {
"rotation": [-19.42144, 2.67038, -30.42654],
"position": [0, 0, 0]
},
"arm_left2": {
"rotation": [0, 10, 0]
},
"arm_left3": {
"rotation": [0, 0, 0]
},
"mouth_closed_right": {
"position": [0, 0, 0.1]
},
"mouth_closed_left": {
"position": [0, 0, 0.1]
},
"leg_right": {
"rotation": [-118.80606, 18.62164, 10.7198],
"position": [-0.25, 1.5, -2.9]
},
"leg_right2": {
"rotation": [125, 0, 0],
"position": [0, 0, 1]
},
"foot_right": {
"rotation": [-55, 0, 0],
"position": [0, 0, -0.5]
},
"toe_right": {
"rotation": [-17.5, 0, 0]
},
"ear_right3": {
"rotation": [-20, 0, 0]
},
"ear_left3": {
"rotation": [-25, 0, 0]
}
}
},
"animation.scorbunny.shocked": {
"loop": true,
"bones": {
@@ -2480,6 +2584,419 @@
"position": [0, 0, 0]
}
}
},
"animation.scorbunny.open_mouth": {
"loop": true,
"bones": {
"neck": {
"rotation": [10, 0, 0]
},
"head": {
"rotation": [-15, 0, 0]
},
"mouth_closed": {
"position": [0, 0, 0.1]
},
"mouth_open": {
"position": [0, 0, -0.1]
}
}
},
"animation.scorbunny.walk_speed": {
"loop": true,
"bones": {
"body": {
"position": [0, 0, "-q.anim_time*40"]
}
}
},
"animation.scorbunny.ground_idle_UNUSED": {
"loop": true,
"animation_length": 1,
"bones": {
"body": {
"rotation": [5, 0, 0],
"position": {
"0.0": {
"post": [0, 0.59, 0],
"lerp_mode": "catmullrom"
},
"0.25": {
"post": [0, -0.15, 0],
"lerp_mode": "catmullrom"
},
"0.5": {
"post": [0, 0.59, 0],
"lerp_mode": "catmullrom"
},
"0.75": {
"post": [0, -0.15, 0],
"lerp_mode": "catmullrom"
},
"1.0": {
"post": [0, 0.59, 0],
"lerp_mode": "catmullrom"
}
}
},
"torso": {
"rotation": ["4.9668-Math.cos((query.anim_time-0.13) * 90 * 8) *1.5", -9.9519, "0.6566+Math.cos((query.anim_time-0.35) * 90 * 4) *2.5"],
"position": [0, "Math.cos((query.anim_time-0.15) * 90 * 8) *0.07", 0]
},
"neck": {
"rotation": ["-10.0743+Math.cos((query.anim_time+0.4) * 90 * 8) * 2", 4.77692, -1.52578],
"position": [0.14772, "0.0069-Math.cos((query.anim_time-0.15) * 90 * 8) *0.05", -0.02514]
},
"head": {
"rotation": ["-5.2437+Math.cos((query.anim_time+0.3) * 90 * 8) * 1", 4.92846, "1.043-Math.cos((query.anim_time-0.55) * 90 * 4) *2"],
"position": [0, "-Math.cos((query.anim_time-0.15) * 90 * 8) *0.1", 0]
},
"leg_right": {
"rotation": {
"0.0": [-9.07, 10.9, 9.25],
"0.0417": [-10.37, 11.04, 9.33],
"0.2917": {
"pre": [7.1515, 9.20214, 8.25],
"post": [7.1515, 9.20214, 8.25],
"lerp_mode": "catmullrom"
},
"0.5417": {
"post": [-15.37, 11.04, 9.33],
"lerp_mode": "catmullrom"
},
"0.7917": {
"post": [2.12863, 9.88405, 7.41673],
"lerp_mode": "catmullrom"
},
"1.0": [-9.07, 10.9, 9.25]
},
"position": {
"0.0": [-0.15, -0.52376, 0.01167],
"0.0417": [-0.15, -0.43414, 0.02039],
"0.1667": {
"pre": [-0.15, -0.34943, 0.03693],
"post": [-0.15, -0.34943, 0.03693],
"lerp_mode": "catmullrom"
},
"0.2917": {
"post": [-0.2, -0.59876, -0.01833],
"lerp_mode": "catmullrom"
},
"0.4167": [-0.15, -0.64829, 0.01078],
"0.5": [-0.15, -0.5549, 0.01782],
"0.5417": {
"pre": [-0.15, -0.45905, 0.01821],
"post": [-0.15, -0.45905, 0.01821],
"lerp_mode": "catmullrom"
},
"0.6667": {
"post": [-0.15, -0.34943, 0.03693],
"lerp_mode": "catmullrom"
},
"0.7917": [-0.2, -0.62149, -0.04541],
"0.8333": [-0.2, -0.6949, -0.04218],
"0.9167": [-0.175, -0.67319, 0.0086],
"1.0": [-0.15, -0.52376, 0.01167]
}
},
"leg_right2": {
"rotation": {
"0.0": [48.71, 0, 0],
"0.0417": [49.81, 0, 0],
"0.2917": {
"pre": [35, 0, 0],
"post": [35, 0, 0],
"lerp_mode": "catmullrom"
},
"0.5417": {
"post": [57.31, 0, 0],
"lerp_mode": "catmullrom"
},
"0.7917": {
"post": [44.75072, -1.36937, 1.63647],
"lerp_mode": "catmullrom"
},
"1.0": [48.71, 0, 0]
}
},
"foot_right": {
"rotation": {
"0.0": [-26.08, -5.23, -9.71],
"0.0417": [-24.91, -5.38, -9.69],
"0.2917": {
"pre": [-40.69398, -3.4, -10],
"post": [-40.69398, -3.4, -10],
"lerp_mode": "catmullrom"
},
"0.5417": {
"post": [-24.91, -5.38, -9.69],
"lerp_mode": "catmullrom"
},
"0.7917": {
"post": [-43.10259, -3.83176, -10.38223],
"lerp_mode": "catmullrom"
},
"1.0": [-26.08, -5.23, -9.71]
},
"position": {
"0.0": [-0.21, -0.22, -0.02],
"0.0417": [-0.22, -0.23, -0.01],
"0.2917": {
"pre": [-0.11931, -0.08719, -0.10718],
"post": [-0.11931, -0.08719, -0.10718],
"lerp_mode": "catmullrom"
},
"0.5417": {
"post": [-0.22, -0.23, -0.01],
"lerp_mode": "catmullrom"
},
"0.7917": {
"post": [-0.11931, -0.08719, -0.10718],
"lerp_mode": "catmullrom"
},
"1.0": [-0.21, -0.22, -0.02]
}
},
"toe_right": {
"rotation": {
"0.0": [-15.74, 0, 0],
"0.0417": [-16.66, 0, 0],
"0.2917": {
"pre": [-4.25, 0, 0],
"post": [-4.25, 0, 0],
"lerp_mode": "catmullrom"
},
"0.5417": {
"post": [-19.16, 0, 0],
"lerp_mode": "catmullrom"
},
"0.7917": {
"post": [-6.68233, -0.07875, -0.57073],
"lerp_mode": "catmullrom"
},
"1.0": [-15.74, 0, 0]
}
},
"hair_right_top": {
"rotation": [-25, 0, "2.5-Math.cos((query.anim_time-0.37) * 90 * 8) * 3"]
},
"hair_left_top": {
"rotation": [-25, 0, "2.5+Math.cos((query.anim_time-0.39) * 90 * 8) * 3.5"]
},
"arm_right": {
"rotation": [-7.42617, 2.55406, "-34.2396+Math.cos((query.anim_time-0.2) * 90 * 8) * 3 - Math.cos((query.anim_time-0.3) * 90 * 4) * 1"],
"position": [0.10329, -0.14355, 0.22469]
},
"arm_right2": {
"rotation": [0, -17.5, "Math.cos((query.anim_time-0.3) * 90 * 8) * 5"],
"position": [0.03155, 0.03569, 0.01519]
},
"arm_left": {
"rotation": [0, 20, "37.5-Math.cos((query.anim_time-0.2) * 90 * 8) * 3 + Math.cos((query.anim_time-0.3) * 90 * 4) * 1"]
},
"arm_left2": {
"rotation": [0, 17.5, "-(Math.cos((query.anim_time-0.3) * 90 * 8) * 5)"],
"position": [-0.03155, 0.03569, 0.01519]
},
"tail": {
"rotation": ["-22.5+Math.cos((query.anim_time-0.68) * 90 * 8) * 7", 7.5, -5]
},
"leg_left": {
"rotation": {
"0.0": {
"post": [-0.37, -11.04, -9.33],
"lerp_mode": "catmullrom"
},
"0.25": {
"post": [17.1515, -9.20214, -8.25],
"lerp_mode": "catmullrom"
},
"0.5": {
"post": [-0.37, -11.04, -9.33],
"lerp_mode": "catmullrom"
},
"0.75": {
"post": [17.1515, -9.20214, -8.25],
"lerp_mode": "catmullrom"
},
"1.0": {
"post": [-0.37, -11.04, -9.33],
"lerp_mode": "catmullrom"
}
},
"position": {
"0.0": {
"post": [0.4, -0.21, 0.04],
"lerp_mode": "catmullrom"
},
"0.125": {
"post": [0.4, -0.2, 0.05],
"lerp_mode": "catmullrom"
},
"0.25": {
"post": [0.4, -0.275, 0.01],
"lerp_mode": "catmullrom"
},
"0.375": {
"post": [0.4, -0.2, 0.05],
"lerp_mode": "catmullrom"
},
"0.5": {
"post": [0.4, -0.21, 0.04],
"lerp_mode": "catmullrom"
},
"0.625": {
"post": [0.4, -0.2, 0.05],
"lerp_mode": "catmullrom"
},
"0.75": {
"post": [0.4, -0.275, 0.01],
"lerp_mode": "catmullrom"
},
"0.875": {
"post": [0.4, -0.2, 0.05],
"lerp_mode": "catmullrom"
},
"1.0": {
"post": [0.4, -0.21, 0.04],
"lerp_mode": "catmullrom"
}
}
},
"leg_left2": {
"rotation": {
"0.0": {
"post": [49.81, 0, 0],
"lerp_mode": "catmullrom"
},
"0.25": {
"post": [35, 0, 0],
"lerp_mode": "catmullrom"
},
"0.5": {
"post": [49.81, 0, 0],
"lerp_mode": "catmullrom"
},
"0.75": {
"post": [35, 0, 0],
"lerp_mode": "catmullrom"
},
"1.0": {
"post": [49.81, 0, 0],
"lerp_mode": "catmullrom"
}
}
},
"foot_left": {
"rotation": {
"0.0": {
"post": [-24.91, 5.38, 9.69],
"lerp_mode": "catmullrom"
},
"0.25": {
"post": [-40.69398, 3.4, 10],
"lerp_mode": "catmullrom"
},
"0.5": {
"post": [-24.91, 5.38, 9.69],
"lerp_mode": "catmullrom"
},
"0.75": {
"post": [-40.69398, 3.4, 10],
"lerp_mode": "catmullrom"
},
"1.0": {
"post": [-24.91, 5.38, 9.69],
"lerp_mode": "catmullrom"
}
},
"position": {
"0.0": {
"post": [0.21213, -0.22046, -0.07151],
"lerp_mode": "catmullrom"
},
"0.25": {
"post": [0.12824, -0.15048, -0.09251],
"lerp_mode": "catmullrom"
},
"0.5": {
"post": [0.21213, -0.22046, -0.07151],
"lerp_mode": "catmullrom"
},
"0.75": {
"post": [0.12824, -0.15048, -0.09251],
"lerp_mode": "catmullrom"
},
"1.0": {
"post": [0.21213, -0.22046, -0.07151],
"lerp_mode": "catmullrom"
}
}
},
"toe_left": {
"rotation": {
"0.0": {
"post": [-26.66, 0, 0],
"lerp_mode": "catmullrom"
},
"0.25": {
"post": [-14.25, 0, 0],
"lerp_mode": "catmullrom"
},
"0.5": {
"post": [-26.66, 0, 0],
"lerp_mode": "catmullrom"
},
"0.75": {
"post": [-14.25, 0, 0],
"lerp_mode": "catmullrom"
},
"1.0": {
"post": [-26.66, 0, 0],
"lerp_mode": "catmullrom"
}
}
},
"hair_left_bottom": {
"rotation": [0, 0, "2.5+Math.cos((query.anim_time-0.44) * 90 * 8) * 3"]
},
"arm_right3": {
"rotation": [0, 0, "-3+Math.cos((query.anim_time-0.4) * 90 * 8) * 3"]
},
"arm_left3": {
"rotation": [0, 0, "3-Math.cos((query.anim_time-0.4) * 90 * 8) * 3"]
},
"ear_right": {
"rotation": ["-2.4967-Math.cos((query.anim_time-0.43) * 90 * 8) * 1.5", 0.15066, "2.4955+Math.cos((query.anim_time-0.45) * 90 * 4) * 2"],
"position": [-0.25, 0, 0]
},
"ear_right2": {
"rotation": ["-12.5-Math.cos((query.anim_time-0.56) * 90 * 8) * 3", 0, "Math.cos((query.anim_time-0.60) * 90 * 4) * 4"],
"position": [0, -0.2, 0]
},
"ear_right3": {
"rotation": ["-20-Math.cos((query.anim_time-0.63) * 90 * 8) * 5", 0, "Math.cos((query.anim_time-0.72) * 90 * 4) * 3"],
"position": [0, -0.25, 0]
},
"ear_left": {
"rotation": ["-4.4812-Math.cos((query.anim_time-0.40) * 90 * 8) * 1.5", 0.79579, "4.9306+Math.cos((query.anim_time-0.40) * 90 * 4) * 1.5"],
"position": [-0.25, 0, 0]
},
"ear_left2": {
"rotation": ["-10-Math.cos((query.anim_time-0.52) * 90 * 8) * 3", 0, "Math.cos((query.anim_time-0.50) * 90 * 4) * 3.5"],
"position": [0, -0.2, 0]
},
"ear_left3": {
"rotation": ["-15-Math.cos((query.anim_time-0.60) * 90 * 8) * 5", 0, "Math.cos((query.anim_time-0.60) * 90 * 4) * 3"],
"position": [0, -0.25, 0]
},
"ear_left4": {
"rotation": [0, 0, "Math.cos((query.anim_time-0.40)*90 * 4) * 3"]
},
"hair_right_bottom": {
"rotation": [0, 0, "2.5-Math.cos((query.anim_time-0.43) * 90 * 8) * 2.5 "]
}
}
}
}
}
@@ -3,69 +3,13 @@
"animations": {
"animation.regieleki.ground_idle": {
"loop": true,
"animation_length": 1.5,
"bones": {
"body": {
"rotation": {
"0.0": {
"post": [0, 0, -7.5],
"lerp_mode": "catmullrom"
},
"0.75": {
"post": [0, 0, 7.5],
"lerp_mode": "catmullrom"
},
"1.5": {
"post": [0, 0, -7.5],
"lerp_mode": "catmullrom"
}
},
"position": {
"0.0": {
"post": [0, -0.25, 0],
"lerp_mode": "catmullrom"
},
"0.2083": {
"post": [1, 3.78, 0],
"lerp_mode": "catmullrom"
},
"0.5": {
"post": [1, 3.78, 0],
"lerp_mode": "catmullrom"
},
"0.75": {
"post": [0, -0.25, 0],
"lerp_mode": "catmullrom"
},
"0.9583": {
"post": [-1, 3.78, 0],
"lerp_mode": "catmullrom"
},
"1.25": {
"post": [-1, 3.78, 0],
"lerp_mode": "catmullrom"
},
"1.5": {
"post": [0, -0.25, 0],
"lerp_mode": "catmullrom"
}
}
"rotation": [0, 0, -7.5],
"position": [0, 1, 0]
},
"head": {
"rotation": {
"0.0": {
"post": [0, 0, 2.5],
"lerp_mode": "catmullrom"
},
"0.75": {
"post": [0, 0, -2.5],
"lerp_mode": "catmullrom"
},
"1.5": {
"post": [0, 0, 2.5],
"lerp_mode": "catmullrom"
}
}
"rotation": [0, 0, 2.5]
},
"tendril_front_left_rotation": {
"rotation": [0, 0, 5]
@@ -149,58 +93,19 @@
"rotation": [0, -5, 7.5]
},
"torso_ring3": {
"rotation": {
"0.0": {
"post": [0, 0, 2.5],
"lerp_mode": "catmullrom"
},
"0.75": {
"post": [0, 0, -2.5],
"lerp_mode": "catmullrom"
},
"1.5": {
"post": [0, 0, 2.5],
"lerp_mode": "catmullrom"
}
}
"rotation": [0, 0, 2.5]
},
"torso_ring2": {
"rotation": {
"0.0": {
"post": [0, 0, 5],
"lerp_mode": "catmullrom"
},
"0.75": {
"post": [0, 0, -5],
"lerp_mode": "catmullrom"
},
"1.5": {
"post": [0, 0, 5],
"lerp_mode": "catmullrom"
}
}
"rotation": [0, 0, 5]
},
"torso_ring": {
"rotation": {
"0.0": {
"post": [0, 0, 2.5],
"lerp_mode": "catmullrom"
},
"0.75": {
"post": [0, 0, -2.5],
"lerp_mode": "catmullrom"
},
"1.5": {
"post": [0, 0, 2.5],
"lerp_mode": "catmullrom"
}
}
"rotation": [0, 0, 2.5]
},
"leg_left": {
"rotation": [0, 0, 17.5]
},
"leg_right": {
"rotation": [0, 0, -17.5]
"rotation": [0, 0, -7.5]
},
"shoulder_right": {
"rotation": [0, 0, 0]
@@ -305,45 +210,19 @@
"rotation": [0, 0, -10]
},
"arm_right3": {
"rotation": [0, -5, 2.5]
"rotation": [0, 5, -2.5]
},
"arm_right2": {
"rotation": [0.29869, -0.32866, -2.4611]
},
"arm_main_right": {
"rotation": {
"0.0": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"0.75": {
"post": [0, 0, 5],
"lerp_mode": "catmullrom"
},
"1.5": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
}
}
"rotation": [0, 0, -5]
},
"arm_right6": {
"rotation": [0, 5, -7.5]
},
"arm_right7": {
"rotation": [0, 0, -5]
},
"arm_main_left": {
"rotation": {
"0.0": {
"post": [0, 0, -5],
"lerp_mode": "catmullrom"
},
"0.75": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"1.5": {
"post": [0, 0, -5],
"lerp_mode": "catmullrom"
}
}
}
}
},
@@ -8,7 +8,7 @@
"rotation": [-7.5, 0, 0]
},
"torso": {
"rotation": [7.5, 0, 0]
"rotation": [2.5, 0, 0]
},
"arm_right": {
"rotation": [-6.94294, -1.45883, -54.63571],
@@ -20,32 +20,6 @@
}
}
},
"animation.regidrago.ground_walk": {
"loop": true,
"bones": {
"body": {
"rotation": [2.5, 0, 0],
"position": [0, 1, "Math.cos((query.anim_time) * 90 * 2) * 1"]
},
"torso": {
"rotation": [7.5, 0, 0]
},
"arm_right": {
"rotation": [-4.57926, 9.30005, -45.46198],
"position": [7, -1, 0]
},
"arm_left": {
"rotation": [-4.57926, -9.30005, 45.46198],
"position": [-8, -1, -1]
},
"leg_left": {
"rotation": [17.5, 0, 0]
},
"leg_right": {
"rotation": [17.5, 0, 0]
}
}
},
"animation.regidrago.blink": {
"animation_length": 0.1667,
"bones": {
@@ -22,7 +22,7 @@
},
"animation.sprigatito.ground_walk": {
"loop": true,
"animation_length": 0.6667,
"animation_length": 0.66667,
"bones": {
"neck": {
"rotation": ["12.5 - (math.sin((q.anim_time - 0.15) * 360 / (1/3)) * 1)", 0, 0]
@@ -1467,7 +1467,7 @@
},
"animation.sprigatito.faint(wip)": {
"loop": "hold_on_last_frame",
"animation_length": 2.9167,
"animation_length": 2.91667,
"bones": {
"body": {
"rotation": {
@@ -2296,198 +2296,6 @@
"position": [0, 0, "-q.anim_time*90*run"]
}
}
},
"animation.sprigatito.shoulder_right": {
"loop": true,
"bones": {
"body": {
"rotation": [0, 27.5, 0],
"position": [0, -5, 1]
},
"torso": {
"rotation": ["-10+math.sin(q.anim_time*90*2-90)*-0.5", 0, 0],
"position": [0, "math.sin(q.anim_time*90*2)*0.05", -0.5]
},
"neck": {
"rotation": ["27+math.sin(q.anim_time*90*2-180)*-1", -5, -14],
"position": [0, -0.25, -0.5]
},
"head": {
"rotation": ["-11+math.sin(q.anim_time*90*2-270)*-3", -12, "12+math.sin(q.anim_time*90*1-30)*3"],
"position": [-0.25, 0, 0]
},
"head_fur_right_main": {
"rotation": [0, "-(math.sin(q.anim_time*90*2-310)*-2)", "-(math.sin(q.anim_time*90*1-90)*4)"]
},
"head_fur_left_main": {
"rotation": [-15, "-75+math.sin(q.anim_time*90*2-310)*-2", "-(math.sin(q.anim_time*90*1-90)*4)"]
},
"ear_right": {
"rotation": ["math.sin(q.anim_time*90*2-290)*-5", 0, "7.5+math.sin(q.anim_time*90*1-90)*6"]
},
"ear_left": {
"rotation": ["math.sin(q.anim_time*90*2-300)*-5", 0, "-7.5+math.sin(q.anim_time*90*1-90)*6"]
},
"neck_fur_front": {
"rotation": ["-44+math.sin(q.anim_time*90*2-200)*-1", -9.57658, 11.59948],
"position": [0, 0, 0.3]
},
"tail": {
"rotation": ["19+math.sin(q.anim_time*90*1)*-4", "-24+math.sin(q.anim_time*90*1-80)*9", "-20+math.sin(q.anim_time*90*1-100)*13"],
"position": [-0.5, 0, 0]
},
"tail_fur2": {
"rotation": [0, "-(math.sin(q.anim_time*90*1-160)*12)", 0]
},
"leg_front_right_rot": {
"position": [0, 1.5, 0]
},
"leg_front_right": {
"rotation": ["-32+math.sin(q.anim_time*90*2)*1", -6, -10],
"position": [-0.25, 0, -0.5]
},
"leg_front_right2": {
"rotation": ["-26+math.sin(q.anim_time*90*2+50)*-1", -5, -14],
"position": [-0.2, 0, 0]
},
"leg_front_right3": {
"rotation": ["112.5+math.sin(q.anim_time*90*2)*-2", 0, 0],
"position": [0, 0, -0.25]
},
"leg_front_left_rot": {
"position": [0, 1.5, 0]
},
"leg_front_left": {
"rotation": ["-36+math.sin(q.anim_time*90*2)*1", -8, -13],
"position": [0, 1.75, 0.25]
},
"leg_front_left2": {
"rotation": ["-10+math.sin(q.anim_time*90*2+50)*-1", 0, 17.5],
"position": [0.2, 0, 0]
},
"leg_front_left3": {
"rotation": ["117.5+math.sin(q.anim_time*90*2)*-2", 0, 0],
"position": [0, -0.1, 0]
},
"leg_back_right": {
"rotation": ["-132+math.sin(q.anim_time*90*2)*-1", 19, -5],
"position": [-0.5, -0.5, 0]
},
"leg_back_right2": {
"rotation": ["46+math.sin(q.anim_time*90*2+50)*1", 14.26008, 10.25103],
"position": [0, 2.5, 0.25]
},
"leg_back_right3": {
"rotation": ["102.5+math.sin(q.anim_time*90*2)*2", 0, 0],
"position": [0, -0.75, 0]
},
"leg_back_left": {
"rotation": ["-132+math.sin(q.anim_time*90*2)*-1", -19, 5],
"position": [0.5, -0.5, 0]
},
"leg_back_left2": {
"rotation": ["46+math.sin(q.anim_time*90*2+50)*1", -14, -10],
"position": [0, 2.5, 0.25]
},
"leg_back_left3": {
"rotation": ["102.5+math.sin(q.anim_time*90*2)*2", 0, 0],
"position": [0, -0.75, 0]
}
}
},
"animation.sprigatito.shoulder_left": {
"loop": true,
"bones": {
"body": {
"rotation": [0, -27.5, 0],
"position": [0, -5, 1]
},
"torso": {
"rotation": ["-10+math.sin(q.anim_time*90*2-90)*-0.5", 0, 0],
"position": [0, "math.sin(q.anim_time*90*2)*0.05", -0.5]
},
"neck": {
"rotation": ["27+math.sin(q.anim_time*90*2-180)*-1", 5, 14],
"position": [0, -0.25, -0.5]
},
"head": {
"rotation": ["-11+math.sin(q.anim_time*90*2-270)*-3", 12, "-12+math.sin(q.anim_time*90*1-30)*3"],
"position": [0.25, 0, 0]
},
"head_fur_right_main": {
"rotation": [-15, "75+math.sin(q.anim_time*90*2-310)*-2", "math.sin(q.anim_time*90*1-90)*4"]
},
"head_fur_left_main": {
"rotation": [0, "math.sin(q.anim_time*90*2-310)*-2", "math.sin(q.anim_time*90*1-90)*4"]
},
"ear_right": {
"rotation": ["math.sin(q.anim_time*90*2-300)*-5", 0, "7.5+math.sin(q.anim_time*90*1-90)*6"]
},
"ear_left": {
"rotation": ["math.sin(q.anim_time*90*2-290)*-5", 0, "-7.5+math.sin(q.anim_time*90*1-90)*6"]
},
"neck_fur_front": {
"rotation": ["-44+math.sin(q.anim_time*90*2-200)*-1", 9.57658, -11.59948],
"position": [0, 0, 0.3]
},
"tail": {
"rotation": ["19+math.sin(q.anim_time*90*1)*-4", "24+math.sin(q.anim_time*90*1-80)*9", "20+math.sin(q.anim_time*90*1-100)*13"],
"position": [0.5, 0, 0]
},
"tail_fur2": {
"rotation": [0, "math.sin(q.anim_time*90*1-160)*12", 0]
},
"leg_front_right": {
"rotation": ["-36+math.sin(q.anim_time*90*2)*1", 8, 13],
"position": [0, 1.75, 0.25]
},
"leg_front_right2": {
"rotation": ["-10+math.sin(q.anim_time*90*2+50)*-1", 0, -17.5]
},
"leg_front_right3": {
"rotation": ["117.5+math.sin(q.anim_time*90*2)*-2", 0, 0],
"position": [0, -0.1, 0]
},
"leg_front_left_rot": {
"position": [0, 1.5, 0]
},
"leg_front_left": {
"rotation": ["-32+math.sin(q.anim_time*90*2)*1", 6, 10],
"position": [0.25, 0, -0.5]
},
"leg_front_left2": {
"rotation": ["-26+math.sin(q.anim_time*90*2+50)*-1", 5, 14],
"position": [0.2, 0, 0]
},
"leg_front_left3": {
"rotation": ["112.5+math.sin(q.anim_time*90*2)*-2", 0, 0],
"position": [0, 0, -0.25]
},
"leg_back_right": {
"rotation": ["-132+math.sin(q.anim_time*90*2)*-1", 19, -5],
"position": [-0.5, -0.5, 0]
},
"leg_back_right2": {
"rotation": ["46+math.sin(q.anim_time*90*2+50)*1", 14, 10],
"position": [0, 2.5, 0.25]
},
"leg_back_right3": {
"rotation": ["102.5+math.sin(q.anim_time*90*2)*2", 0, 0],
"position": [0, -0.75, 0]
},
"leg_back_left": {
"rotation": ["-132+math.sin(q.anim_time*90*2)*-1", -19, 5],
"position": [0.5, -0.5, 0]
},
"leg_back_left2": {
"rotation": ["46+math.sin(q.anim_time*90*2+50)*1", -14.26008, -10.25103],
"position": [0, 2.5, 0.25]
},
"leg_back_left3": {
"rotation": ["102.5+math.sin(q.anim_time*90*2)*2", 0, 0],
"position": [0, -0.75, 0]
}
}
}
}
}

Some files were not shown because too many files have changed in this diff Show More