Compare commits

..
Author SHA1 Message Date
whatsy 65bcd118a3 finalizing 2026-10-21 13:25:46 -04:00
whatsy bf6f97e740 auto fire aspect support 2026-10-21 12:25:24 -04:00
whatsy 4e48e2ff9b scraper updates 2026-10-20 18:43:01 -04:00
whatsy faa488b153 ported all pokemon over to loot tables 2026-10-19 17:09:20 -04:00
whatsy 93dbc015fb loot table drop entry type implementation 2026-10-19 13:49:34 -04:00
whatsy 7edf6669d8 Vanilla loot tables for pokemon drops: wip, pushing for review 2026-10-19 11:52:44 -04:00
2586 changed files with 92396 additions and 20197 deletions
+8 -89
View File
@@ -1,107 +1,26 @@
# Changelog
## [1.8.3 (October 25th, 2026)](#1-8-3)
## [1.8.4 (MONTH xth, 2026)](#1-8-4)
### Additions
- Added compatability with AppleSkin.
### New Rideable Pokémon
- Vikavolt
- Fearow
### Particles
## New Move Animations
- Water Shuriken
### Cries added/updated for the following Pokémon
- Hoppip
- Skiploom
- Jumpluff
- Houndour
- Houndoom
- Wurmple
- Silcoon
- Beautifly
- Cascoon
- Dustox
- Surskit
- Masquerain
- Torkoal
- Starly
- Staravia
- Staraptor
- Combee
- Vespiquen
- Dusknoir
- Helioptile
- Heliolisk
- Grubbin
- Charjabug
- Vikavolt
- Applin (updated)
- Flapple (updated)
- Appletun
- Runerigus
- Dipplin
### Model updates for the following Pokémon
### Animation updates for the following Pokémon
- Vikavolt
- Magby
- Magmar
- Ninetales (+ Alolan)
- Spearow
- Fearow
- Squawkabilly
- Mudkip
- Marshtomp
- Swampert
### Changes
- Changed the Misc icon in the Campfire Pot Recipe Book to Health Candy.
- Moved EXP Candies from the Medicine recipe book category to the Misc category.
- Removed Dynamic Lights data from the Magmarizer item for consistency with the block.
- Added `doPokemonPredation` game rule, which controls aggressiveness of Pokémon with the `hate_entity` brain task defined.
- Added `predation_chance` server config value, which controls the possibility of attacking the hated entity found in `hate_entity` brain tasks.
- Prehistoric Eroded Pillar generates slightly more frequently.
- Togekiss was changed from a jet-style mount to bird-style.
### Fixes
- Fixed datapacks with item interaction evolutions that don't specify an item crashing the world on load.
- Fixed the Pokédex evolution tree crashing when a datapack's dex entry is missing an evolution's form.
- Fixed the Pokédex evolution tree crashing with a stack overflow on evolutions that loop back on themselves.
- Fixed the Pokédex evolution tree crashing when looking at a dex that is not part of the "National Dex" aggregate.
- Fixed some display names in the Pokédex evolution tree having unintended font colours.
- Fixed evolution trees not building properly when a Pokémon has several Pokédex entries for different regions.
- Fixed form-changing evolutions sometimes resolving to the source form in the Pokédex evolution tree.
- Broken datapack evolutions are now logged and skipped in the Pokédex evolution tree instead of crashing.
- Fixed the `alpha` property having no tab completion in commands such as `/pokespawn`, `/pokegive` and `/pokeedit`, and added the missing `dmax_level`, `gmax_factor` and `tradable` aliases to tab completion.
- Fixed friendship booster items not being recognised as such.
- Fixed conflicts with other mods that would make use of recipe books in certain ways (Farmer's Delight Cooking Pot).
- Fixed Pokémon battles stalling when a sidemod cancels the `THROWN_POKEBALL_HIT` hit event.
- Fixed choice feature tab completion in `spawnpokemon/pokegive/pokeedit` commands.
- Fixed MoLang that's targeting players intermittedly failing when they have died, requiring them to relog.
- Fixed a NeoForge bug where none of the Cobblemon plants/berries could be placed into pots.
- Fixed party overlay not hiding when the player opens the Pokédex scanner.
- Fixed `hate_entity` task focusing on its own entity, therefore enabling deadly warfare between Zangoose and Seviper.
- Prehistoric Frozen Pond, Prehistoric Frozen Spike, and Prehistoric Lush Den now actually generate (oops).
- Fixed Frogadier floating in its `battle_idle` animation.
- Fixed absence or incorrect mergers in spawning conditions, causing the max height/depth of conditions to use the min value instead.
- Added stricter riding checks on server side to prevent possible packet forgery when a player tries to ride Pokémon.
- Fixed Pokémon cries and animation sounds played from GUIs, such as the starter selection screen and the Pokédex, being tied to the Master volume slider instead of Friendly Creatures.
- Fixed Archeops T-posing during its `air_cry` animation.
### Developer
- Bumped NeoForge to `21.1.195` to get access to MixinExtras `0.5` and the expressions annotation.
- New Platform Event `PLAYER_RESPAWN` which is fired when a player respawns (either through death or returning from the end).
- Platform Events `SERVER_PLAYER_TICK_PRE` and `SERVER_PLAYER_TICK_POST` no longer fire when the player is dead.
- It is now tied much closer to the actual entity rather than the player or their connection.
### Molang & Datapacks
- Fixed `q.pokemon.nature` returning class instance instead of proper string value (`cobblemon:adamant`).
- Fixed `q.entity.is_looking_at` result being always `1` for whatever entity passed as the target parameter.
- Added hate chance optional parameter to `hate_entity` task. `1.0` will make an entity always attack the target.
- Added a `loot_table` drop entry type.
- Accepts an `id` field, pointing to a vanilla loot table.
- Added the `cobblemon:biome` and `cobblemon:pokemon_properties` loot conditions.
- `cobblemon:biome` returns true if the biome of death matches the `biome` field.
- `cobblemon:pokemon_properties` returns true if the Pokémon matches the `properties` field.
### Localization
- Updated translations for:
- Russian
- Japanese
- Brazilian Portuguese
@@ -16,6 +16,7 @@ import com.cobblemon.mod.common.api.drop.CommandDropEntry
import com.cobblemon.mod.common.api.drop.DropEntry
import com.cobblemon.mod.common.api.drop.EvolutionItemDropEntry
import com.cobblemon.mod.common.api.drop.ItemDropEntry
import com.cobblemon.mod.common.api.drop.LootTableDropEntry
import com.cobblemon.mod.common.api.events.CobblemonEvents
import com.cobblemon.mod.common.api.events.CobblemonEvents.DATA_SYNCHRONIZED
import com.cobblemon.mod.common.api.habitats.HabitatPools
@@ -90,6 +91,7 @@ import com.cobblemon.mod.common.events.EntityCallbackHandler
import com.cobblemon.mod.common.events.PokedexHandler
import com.cobblemon.mod.common.events.ServerTickHandler
import com.cobblemon.mod.common.events.StatHandler
import com.cobblemon.mod.common.loot.CobblemonLootItemConditions
import com.cobblemon.mod.common.net.messages.client.settings.ServerSettingsPacket
import com.cobblemon.mod.common.permission.LaxPermissionValidator
import com.cobblemon.mod.common.platform.events.PlatformEvents
@@ -225,10 +227,12 @@ object Cobblemon {
implementation.registerEntitySubPredicates()
implementation.registerMobEffects()
DispenserBehaviorRegistry.registerDispenserBehaviors()
CobblemonLootItemConditions.touch()
DropEntry.register("command", CommandDropEntry::class.java)
DropEntry.register("item", ItemDropEntry::class.java, isDefault = true)
DropEntry.register("evolution", EvolutionItemDropEntry::class.java)
DropEntry.register("loot_table", LootTableDropEntry::class.java)
ExperienceGroups.registerDefaults()
CaptureCalculators.registerDefaults()
@@ -845,35 +845,54 @@ object CobblemonBlocks : PlatformRegistry<Registry<Block>, ResourceKey<Registry<
@JvmField
val PEP_UP_FLOWER = this.create("pep_up_flower", FlowerBlock(MobEffects.LEVITATION, 10F, BlockBehaviour.Properties.of().mapColor(MapColor.PLANT).noCollission().instabreak().sound(SoundType.GRASS).offsetType(BlockBehaviour.OffsetType.XZ).pushReaction(PushReaction.DESTROY)))
@JvmField
val POTTED_PEP_UP_FLOWER = this.create("potted_pep_up_flower", BlocksInvoker.createFlowerPotBlock(PEP_UP_FLOWER))
@JvmField
val HEARTY_GRAINS = this.create("hearty_grains", HeartyGrainsBlock(BlockBehaviour.Properties.of().pushReaction(PushReaction.DESTROY).ignitedByLava().mapColor(MapColor.PLANT).noCollission().randomTicks().instabreak()))
@JvmField
val GALARICA_NUT_BUSH = this.create("galarica_nut_bush", NutBushBlock(BlockBehaviour.Properties.of().mapColor(MapColor.PLANT).randomTicks().noCollission().sound(SoundType.SWEET_BERRY_BUSH).pushReaction(PushReaction.DESTROY)))
@JvmField
val POTTED_RED_APRICORN_SAPLING = this.create("potted_red_apricorn_sapling", BlocksInvoker.createFlowerPotBlock(RED_APRICORN_SAPLING))
@JvmField
val POTTED_YELLOW_APRICORN_SAPLING = this.create("potted_yellow_apricorn_sapling", BlocksInvoker.createFlowerPotBlock(YELLOW_APRICORN_SAPLING))
@JvmField
val POTTED_GREEN_APRICORN_SAPLING = this.create("potted_green_apricorn_sapling", BlocksInvoker.createFlowerPotBlock(GREEN_APRICORN_SAPLING))
@JvmField
val POTTED_BLUE_APRICORN_SAPLING = this.create("potted_blue_apricorn_sapling", BlocksInvoker.createFlowerPotBlock(BLUE_APRICORN_SAPLING))
@JvmField
val POTTED_PINK_APRICORN_SAPLING = this.create("potted_pink_apricorn_sapling", BlocksInvoker.createFlowerPotBlock(PINK_APRICORN_SAPLING))
@JvmField
val POTTED_BLACK_APRICORN_SAPLING = this.create("potted_black_apricorn_sapling", BlocksInvoker.createFlowerPotBlock(BLACK_APRICORN_SAPLING))
@JvmField
val POTTED_WHITE_APRICORN_SAPLING = this.create("potted_white_apricorn_sapling", BlocksInvoker.createFlowerPotBlock(WHITE_APRICORN_SAPLING))
@JvmField
val POTTED_SACCHARINE_SAPLING = this.create("potted_saccharine_sapling", BlocksInvoker.createFlowerPotBlock(SACCHARINE_SAPLING))
@JvmField
val RED_MINT_LEAF_LITTER = this.mintLitter("red_mint_leaf_litter", MapColor.COLOR_RED)
@JvmField
val POTTED_RED_MINT = this.flowerPot("potted_red_mint", RED_MINT_LEAF_LITTER)
val POTTED_RED_MINT = this.pottedPlant("potted_red_mint", RED_MINT_LEAF_LITTER)
@JvmField
val BLUE_MINT_LEAF_LITTER = this.mintLitter("blue_mint_leaf_litter", MapColor.COLOR_BLUE)
@JvmField
val POTTED_BLUE_MINT = this.flowerPot("potted_blue_mint", BLUE_MINT_LEAF_LITTER)
val POTTED_BLUE_MINT = this.pottedPlant("potted_blue_mint", BLUE_MINT_LEAF_LITTER)
@JvmField
val CYAN_MINT_LEAF_LITTER = this.mintLitter("cyan_mint_leaf_litter", MapColor.COLOR_CYAN)
@JvmField
val POTTED_CYAN_MINT = this.flowerPot("potted_cyan_mint", CYAN_MINT_LEAF_LITTER)
val POTTED_CYAN_MINT = this.pottedPlant("potted_cyan_mint", CYAN_MINT_LEAF_LITTER)
@JvmField
val PINK_MINT_LEAF_LITTER = this.mintLitter("pink_mint_leaf_litter", MapColor.COLOR_PINK)
@JvmField
val POTTED_PINK_MINT = this.flowerPot("potted_pink_mint", PINK_MINT_LEAF_LITTER)
val POTTED_PINK_MINT = this.pottedPlant("potted_pink_mint", PINK_MINT_LEAF_LITTER)
@JvmField
val GREEN_MINT_LEAF_LITTER = this.mintLitter("green_mint_leaf_litter", MapColor.COLOR_GREEN)
@JvmField
val POTTED_GREEN_MINT = this.flowerPot("potted_green_mint", GREEN_MINT_LEAF_LITTER)
val POTTED_GREEN_MINT = this.pottedPlant("potted_green_mint", GREEN_MINT_LEAF_LITTER)
@JvmField
val WHITE_MINT_LEAF_LITTER = this.mintLitter("white_mint_leaf_litter", MapColor.SNOW)
@JvmField
val POTTED_WHITE_MINT = this.flowerPot("potted_white_mint", WHITE_MINT_LEAF_LITTER)
val POTTED_WHITE_MINT = this.pottedPlant("potted_white_mint", WHITE_MINT_LEAF_LITTER)
@JvmField
val LOBAILA = this.create("lobaila", LobailaFlowerBlock(BlockBehaviour.Properties.of().mapColor(MapColor.PLANT).noCollission().instabreak().sound(SoundType.GRASS).offsetType(BlockBehaviour.OffsetType.XZ).ignitedByLava().pushReaction(PushReaction.DESTROY)))
@@ -1085,163 +1104,145 @@ object CobblemonBlocks : PlatformRegistry<Registry<Block>, ResourceKey<Registry<
//val BINDING_SOIL = this.create("binding_soil", BindingSoilBlock(BlockBehaviour.Properties.of()))
@JvmField
val POTTED_AGUAV_BERRY = this.flowerPot("potted_aguav_berry", AGUAV_BERRY)
val POTTED_AGUAV_BERRY = this.create("potted_aguav_berry", BlocksInvoker.createFlowerPotBlock(AGUAV_BERRY))
@JvmField
val POTTED_APICOT_BERRY = this.flowerPot("potted_apicot_berry", APICOT_BERRY)
val POTTED_APICOT_BERRY = this.create("potted_apicot_berry", BlocksInvoker.createFlowerPotBlock(APICOT_BERRY))
@JvmField
val POTTED_ASPEAR_BERRY = this.flowerPot("potted_aspear_berry", ASPEAR_BERRY)
val POTTED_ASPEAR_BERRY = this.create("potted_aspear_berry", BlocksInvoker.createFlowerPotBlock(ASPEAR_BERRY))
@JvmField
val POTTED_BABIRI_BERRY = this.flowerPot("potted_babiri_berry", BABIRI_BERRY)
val POTTED_BABIRI_BERRY = this.create("potted_babiri_berry", BlocksInvoker.createFlowerPotBlock(BABIRI_BERRY))
@JvmField
val POTTED_BELUE_BERRY = this.flowerPot("potted_belue_berry", BELUE_BERRY)
val POTTED_BELUE_BERRY = this.create("potted_belue_berry", BlocksInvoker.createFlowerPotBlock(BELUE_BERRY))
@JvmField
val POTTED_BLUK_BERRY = this.flowerPot("potted_bluk_berry", BLUK_BERRY)
val POTTED_BLUK_BERRY = this.create("potted_bluk_berry", BlocksInvoker.createFlowerPotBlock(BLUK_BERRY))
@JvmField
val POTTED_CHARTI_BERRY = this.flowerPot("potted_charti_berry", CHARTI_BERRY)
val POTTED_CHARTI_BERRY = this.create("potted_charti_berry", BlocksInvoker.createFlowerPotBlock(CHARTI_BERRY))
@JvmField
val POTTED_CHERI_BERRY = this.flowerPot("potted_cheri_berry", CHERI_BERRY)
val POTTED_CHERI_BERRY = this.create("potted_cheri_berry", BlocksInvoker.createFlowerPotBlock(CHERI_BERRY))
@JvmField
val POTTED_CHESTO_BERRY = this.flowerPot("potted_chesto_berry", CHESTO_BERRY)
val POTTED_CHESTO_BERRY = this.create("potted_chesto_berry", BlocksInvoker.createFlowerPotBlock(CHESTO_BERRY))
@JvmField
val POTTED_CHILAN_BERRY = this.flowerPot("potted_chilan_berry", CHILAN_BERRY)
val POTTED_CHILAN_BERRY = this.create("potted_chilan_berry", BlocksInvoker.createFlowerPotBlock(CHILAN_BERRY))
@JvmField
val POTTED_CHOPLE_BERRY = this.flowerPot("potted_chople_berry", CHOPLE_BERRY)
val POTTED_CHOPLE_BERRY = this.create("potted_chople_berry", BlocksInvoker.createFlowerPotBlock(CHOPLE_BERRY))
@JvmField
val POTTED_COBA_BERRY = this.flowerPot("potted_coba_berry", COBA_BERRY)
val POTTED_COBA_BERRY = this.create("potted_coba_berry", BlocksInvoker.createFlowerPotBlock(COBA_BERRY))
@JvmField
val POTTED_COLBUR_BERRY = this.flowerPot("potted_colbur_berry", COLBUR_BERRY)
val POTTED_COLBUR_BERRY = this.create("potted_colbur_berry", BlocksInvoker.createFlowerPotBlock(COLBUR_BERRY))
@JvmField
val POTTED_CORNN_BERRY = this.flowerPot("potted_cornn_berry", CORNN_BERRY)
val POTTED_CORNN_BERRY = this.create("potted_cornn_berry", BlocksInvoker.createFlowerPotBlock(CORNN_BERRY))
@JvmField
val POTTED_CUSTAP_BERRY = this.flowerPot("potted_custap_berry", CUSTAP_BERRY)
val POTTED_CUSTAP_BERRY = this.create("potted_custap_berry", BlocksInvoker.createFlowerPotBlock(CUSTAP_BERRY))
@JvmField
val POTTED_DURIN_BERRY = this.flowerPot("potted_durin_berry", DURIN_BERRY)
val POTTED_DURIN_BERRY = this.create("potted_durin_berry", BlocksInvoker.createFlowerPotBlock(DURIN_BERRY))
@JvmField
val POTTED_EGGANT_BERRY = this.flowerPot("potted_eggant_berry", EGGANT_BERRY)
val POTTED_EGGANT_BERRY = this.create("potted_eggant_berry", BlocksInvoker.createFlowerPotBlock(EGGANT_BERRY))
@JvmField
val POTTED_ENIGMA_BERRY = this.flowerPot("potted_enigma_berry", ENIGMA_BERRY)
val POTTED_ENIGMA_BERRY = this.create("potted_enigma_berry", BlocksInvoker.createFlowerPotBlock(ENIGMA_BERRY))
@JvmField
val POTTED_FIGY_BERRY = this.flowerPot("potted_figy_berry", FIGY_BERRY)
val POTTED_FIGY_BERRY = this.create("potted_figy_berry", BlocksInvoker.createFlowerPotBlock(FIGY_BERRY))
@JvmField
val POTTED_GANLON_BERRY = this.flowerPot("potted_ganlon_berry", GANLON_BERRY)
val POTTED_GANLON_BERRY = this.create("potted_ganlon_berry", BlocksInvoker.createFlowerPotBlock(GANLON_BERRY))
@JvmField
val POTTED_GREPA_BERRY = this.flowerPot("potted_grepa_berry", GREPA_BERRY)
val POTTED_GREPA_BERRY = this.create("potted_grepa_berry", BlocksInvoker.createFlowerPotBlock(GREPA_BERRY))
@JvmField
val POTTED_HABAN_BERRY = this.flowerPot("potted_haban_berry", HABAN_BERRY)
val POTTED_HABAN_BERRY = this.create("potted_haban_berry", BlocksInvoker.createFlowerPotBlock(HABAN_BERRY))
@JvmField
val POTTED_HONDEW_BERRY = this.flowerPot("potted_hondew_berry", HONDEW_BERRY)
val POTTED_HONDEW_BERRY = this.create("potted_hondew_berry", BlocksInvoker.createFlowerPotBlock(HONDEW_BERRY))
@JvmField
val POTTED_HOPO_BERRY = this.flowerPot("potted_hopo_berry", HOPO_BERRY)
val POTTED_HOPO_BERRY = this.create("potted_hopo_berry", BlocksInvoker.createFlowerPotBlock(HOPO_BERRY))
@JvmField
val POTTED_IAPAPA_BERRY = this.flowerPot("potted_iapapa_berry", IAPAPA_BERRY)
val POTTED_IAPAPA_BERRY = this.create("potted_iapapa_berry", BlocksInvoker.createFlowerPotBlock(IAPAPA_BERRY))
@JvmField
val POTTED_JABOCA_BERRY = this.flowerPot("potted_jaboca_berry", JABOCA_BERRY)
val POTTED_JABOCA_BERRY = this.create("potted_jaboca_berry", BlocksInvoker.createFlowerPotBlock(JABOCA_BERRY))
@JvmField
val POTTED_KASIB_BERRY = this.flowerPot("potted_kasib_berry", KASIB_BERRY)
val POTTED_KASIB_BERRY = this.create("potted_kasib_berry", BlocksInvoker.createFlowerPotBlock(KASIB_BERRY))
@JvmField
val POTTED_KEBIA_BERRY = this.flowerPot("potted_kebia_berry", KEBIA_BERRY)
val POTTED_KEBIA_BERRY = this.create("potted_kebia_berry", BlocksInvoker.createFlowerPotBlock(KEBIA_BERRY))
@JvmField
val POTTED_KEE_BERRY = this.flowerPot("potted_kee_berry", KEE_BERRY)
val POTTED_KEE_BERRY = this.create("potted_kee_berry", BlocksInvoker.createFlowerPotBlock(KEE_BERRY))
@JvmField
val POTTED_KELPSY_BERRY = this.flowerPot("potted_kelpsy_berry", KELPSY_BERRY)
val POTTED_KELPSY_BERRY = this.create("potted_kelpsy_berry", BlocksInvoker.createFlowerPotBlock(KELPSY_BERRY))
@JvmField
val POTTED_LANSAT_BERRY = this.flowerPot("potted_lansat_berry", LANSAT_BERRY)
val POTTED_LANSAT_BERRY = this.create("potted_lansat_berry", BlocksInvoker.createFlowerPotBlock(LANSAT_BERRY))
@JvmField
val POTTED_LEPPA_BERRY = this.flowerPot("potted_leppa_berry", LEPPA_BERRY)
val POTTED_LEPPA_BERRY = this.create("potted_leppa_berry", BlocksInvoker.createFlowerPotBlock(LEPPA_BERRY))
@JvmField
val POTTED_LIECHI_BERRY = this.flowerPot("potted_liechi_berry", LIECHI_BERRY)
val POTTED_LIECHI_BERRY = this.create("potted_liechi_berry", BlocksInvoker.createFlowerPotBlock(LIECHI_BERRY))
@JvmField
val POTTED_LUM_BERRY = this.flowerPot("potted_lum_berry", LUM_BERRY)
val POTTED_LUM_BERRY = this.create("potted_lum_berry", BlocksInvoker.createFlowerPotBlock(LUM_BERRY))
@JvmField
val POTTED_MAGO_BERRY = this.flowerPot("potted_mago_berry", MAGO_BERRY)
val POTTED_MAGO_BERRY = this.create("potted_mago_berry", BlocksInvoker.createFlowerPotBlock(MAGO_BERRY))
@JvmField
val POTTED_MAGOST_BERRY = this.flowerPot("potted_magost_berry", MAGOST_BERRY)
val POTTED_MAGOST_BERRY = this.create("potted_magost_berry", BlocksInvoker.createFlowerPotBlock(MAGOST_BERRY))
@JvmField
val POTTED_MARANGA_BERRY = this.flowerPot("potted_maranga_berry", MARANGA_BERRY)
val POTTED_MARANGA_BERRY = this.create("potted_maranga_berry", BlocksInvoker.createFlowerPotBlock(MARANGA_BERRY))
@JvmField
val POTTED_MICLE_BERRY = this.flowerPot("potted_micle_berry", MICLE_BERRY)
val POTTED_MICLE_BERRY = this.create("potted_micle_berry", BlocksInvoker.createFlowerPotBlock(MICLE_BERRY))
@JvmField
val POTTED_NANAB_BERRY = this.flowerPot("potted_nanab_berry", NANAB_BERRY)
val POTTED_NANAB_BERRY = this.create("potted_nanab_berry", BlocksInvoker.createFlowerPotBlock(NANAB_BERRY))
@JvmField
val POTTED_NOMEL_BERRY = this.flowerPot("potted_nomel_berry", NOMEL_BERRY)
val POTTED_NOMEL_BERRY = this.create("potted_nomel_berry", BlocksInvoker.createFlowerPotBlock(NOMEL_BERRY))
@JvmField
val POTTED_OCCA_BERRY = this.flowerPot("potted_occa_berry", OCCA_BERRY)
val POTTED_OCCA_BERRY = this.create("potted_occa_berry", BlocksInvoker.createFlowerPotBlock(OCCA_BERRY))
@JvmField
val POTTED_ORAN_BERRY = this.flowerPot("potted_oran_berry", ORAN_BERRY)
val POTTED_ORAN_BERRY = this.create("potted_oran_berry", BlocksInvoker.createFlowerPotBlock(ORAN_BERRY))
@JvmField
val POTTED_PAMTRE_BERRY = this.flowerPot("potted_pamtre_berry", PAMTRE_BERRY)
val POTTED_PAMTRE_BERRY = this.create("potted_pamtre_berry", BlocksInvoker.createFlowerPotBlock(PAMTRE_BERRY))
@JvmField
val POTTED_PASSHO_BERRY = this.flowerPot("potted_passho_berry", PASSHO_BERRY)
val POTTED_PASSHO_BERRY = this.create("potted_passho_berry", BlocksInvoker.createFlowerPotBlock(PASSHO_BERRY))
@JvmField
val POTTED_PAYAPA_BERRY = this.flowerPot("potted_payapa_berry", PAYAPA_BERRY)
val POTTED_PAYAPA_BERRY = this.create("potted_payapa_berry", BlocksInvoker.createFlowerPotBlock(PAYAPA_BERRY))
@JvmField
val POTTED_PECHA_BERRY = this.flowerPot("potted_pecha_berry", PECHA_BERRY)
val POTTED_PECHA_BERRY = this.create("potted_pecha_berry", BlocksInvoker.createFlowerPotBlock(PECHA_BERRY))
@JvmField
val POTTED_PERSIM_BERRY = this.flowerPot("potted_persim_berry", PERSIM_BERRY)
val POTTED_PERSIM_BERRY = this.create("potted_persim_berry", BlocksInvoker.createFlowerPotBlock(PERSIM_BERRY))
@JvmField
val POTTED_PETAYA_BERRY = this.flowerPot("potted_petaya_berry", PETAYA_BERRY)
val POTTED_PETAYA_BERRY = this.create("potted_petaya_berry", BlocksInvoker.createFlowerPotBlock(PETAYA_BERRY))
@JvmField
val POTTED_PINAP_BERRY = this.flowerPot("potted_pinap_berry", PINAP_BERRY)
val POTTED_PINAP_BERRY = this.create("potted_pinap_berry", BlocksInvoker.createFlowerPotBlock(PINAP_BERRY))
@JvmField
val POTTED_POMEG_BERRY = this.flowerPot("potted_pomeg_berry", POMEG_BERRY)
val POTTED_POMEG_BERRY = this.create("potted_pomeg_berry", BlocksInvoker.createFlowerPotBlock(POMEG_BERRY))
@JvmField
val POTTED_QUALOT_BERRY = this.flowerPot("potted_qualot_berry", QUALOT_BERRY)
val POTTED_QUALOT_BERRY = this.create("potted_qualot_berry", BlocksInvoker.createFlowerPotBlock(QUALOT_BERRY))
@JvmField
val POTTED_RABUTA_BERRY = this.flowerPot("potted_rabuta_berry", RABUTA_BERRY)
val POTTED_RABUTA_BERRY = this.create("potted_rabuta_berry", BlocksInvoker.createFlowerPotBlock(RABUTA_BERRY))
@JvmField
val POTTED_RAWST_BERRY = this.flowerPot("potted_rawst_berry", RAWST_BERRY)
val POTTED_RAWST_BERRY = this.create("potted_rawst_berry", BlocksInvoker.createFlowerPotBlock(RAWST_BERRY))
@JvmField
val POTTED_RAZZ_BERRY = this.flowerPot("potted_razz_berry", RAZZ_BERRY)
val POTTED_RAZZ_BERRY = this.create("potted_razz_berry", BlocksInvoker.createFlowerPotBlock(RAZZ_BERRY))
@JvmField
val POTTED_RINDO_BERRY = this.flowerPot("potted_rindo_berry", RINDO_BERRY)
val POTTED_RINDO_BERRY = this.create("potted_rindo_berry", BlocksInvoker.createFlowerPotBlock(RINDO_BERRY))
@JvmField
val POTTED_ROSELI_BERRY = this.flowerPot("potted_roseli_berry", ROSELI_BERRY)
val POTTED_ROSELI_BERRY = this.create("potted_roseli_berry", BlocksInvoker.createFlowerPotBlock(ROSELI_BERRY))
@JvmField
val POTTED_ROWAP_BERRY = this.flowerPot("potted_rowap_berry", ROWAP_BERRY)
val POTTED_ROWAP_BERRY = this.create("potted_rowap_berry", BlocksInvoker.createFlowerPotBlock(ROWAP_BERRY))
@JvmField
val POTTED_SALAC_BERRY = this.flowerPot("potted_salac_berry", SALAC_BERRY)
val POTTED_SALAC_BERRY = this.create("potted_salac_berry", BlocksInvoker.createFlowerPotBlock(SALAC_BERRY))
@JvmField
val POTTED_SHUCA_BERRY = this.flowerPot("potted_shuca_berry", SHUCA_BERRY)
val POTTED_SHUCA_BERRY = this.create("potted_shuca_berry", BlocksInvoker.createFlowerPotBlock(SHUCA_BERRY))
@JvmField
val POTTED_SITRUS_BERRY = this.flowerPot("potted_sitrus_berry", SITRUS_BERRY)
val POTTED_SITRUS_BERRY = this.create("potted_sitrus_berry", BlocksInvoker.createFlowerPotBlock(SITRUS_BERRY))
@JvmField
val POTTED_SPELON_BERRY = this.flowerPot("potted_spelon_berry", SPELON_BERRY)
val POTTED_SPELON_BERRY = this.create("potted_spelon_berry", BlocksInvoker.createFlowerPotBlock(SPELON_BERRY))
@JvmField
val POTTED_STARF_BERRY = this.flowerPot("potted_starf_berry", STARF_BERRY)
val POTTED_STARF_BERRY = this.create("potted_starf_berry", BlocksInvoker.createFlowerPotBlock(STARF_BERRY))
@JvmField
val POTTED_TAMATO_BERRY = this.flowerPot("potted_tamato_berry", TAMATO_BERRY)
val POTTED_TAMATO_BERRY = this.create("potted_tamato_berry", BlocksInvoker.createFlowerPotBlock(TAMATO_BERRY))
@JvmField
val POTTED_TANGA_BERRY = this.flowerPot("potted_tanga_berry", TANGA_BERRY)
val POTTED_TANGA_BERRY = this.create("potted_tanga_berry", BlocksInvoker.createFlowerPotBlock(TANGA_BERRY))
@JvmField
val POTTED_TOUGA_BERRY = this.flowerPot("potted_touga_berry", TOUGA_BERRY)
val POTTED_TOUGA_BERRY = this.create("potted_touga_berry", BlocksInvoker.createFlowerPotBlock(TOUGA_BERRY))
@JvmField
val POTTED_WACAN_BERRY = this.flowerPot("potted_wacan_berry", WACAN_BERRY)
val POTTED_WACAN_BERRY = this.create("potted_wacan_berry", BlocksInvoker.createFlowerPotBlock(WACAN_BERRY))
@JvmField
val POTTED_WATMEL_BERRY = this.flowerPot("potted_watmel_berry", WATMEL_BERRY)
val POTTED_WATMEL_BERRY = this.create("potted_watmel_berry", BlocksInvoker.createFlowerPotBlock(WATMEL_BERRY))
@JvmField
val POTTED_WEPEAR_BERRY = this.flowerPot("potted_wepear_berry", WEPEAR_BERRY)
val POTTED_WEPEAR_BERRY = this.create("potted_wepear_berry", BlocksInvoker.createFlowerPotBlock(WEPEAR_BERRY))
@JvmField
val POTTED_WIKI_BERRY = this.flowerPot("potted_wiki_berry", WIKI_BERRY)
val POTTED_WIKI_BERRY = this.create("potted_wiki_berry", BlocksInvoker.createFlowerPotBlock(WIKI_BERRY))
@JvmField
val POTTED_YACHE_BERRY = this.flowerPot("potted_yache_berry", YACHE_BERRY)
@JvmField
val POTTED_PEP_UP_FLOWER = this.flowerPot("potted_pep_up_flower", PEP_UP_FLOWER)
@JvmField
val POTTED_RED_APRICORN_SAPLING = this.flowerPot("potted_red_apricorn_sapling", RED_APRICORN_SAPLING)
@JvmField
val POTTED_YELLOW_APRICORN_SAPLING = this.flowerPot("potted_yellow_apricorn_sapling", YELLOW_APRICORN_SAPLING)
@JvmField
val POTTED_GREEN_APRICORN_SAPLING = this.flowerPot("potted_green_apricorn_sapling", GREEN_APRICORN_SAPLING)
@JvmField
val POTTED_BLUE_APRICORN_SAPLING = this.flowerPot("potted_blue_apricorn_sapling", BLUE_APRICORN_SAPLING)
@JvmField
val POTTED_PINK_APRICORN_SAPLING = this.flowerPot("potted_pink_apricorn_sapling", PINK_APRICORN_SAPLING)
@JvmField
val POTTED_BLACK_APRICORN_SAPLING = this.flowerPot("potted_black_apricorn_sapling", BLACK_APRICORN_SAPLING)
@JvmField
val POTTED_WHITE_APRICORN_SAPLING = this.flowerPot("potted_white_apricorn_sapling", WHITE_APRICORN_SAPLING)
@JvmField
val POTTED_SACCHARINE_SAPLING = this.flowerPot("potted_saccharine_sapling", SACCHARINE_SAPLING)
val POTTED_YACHE_BERRY = this.create("potted_yache_berry", BlocksInvoker.createFlowerPotBlock(YACHE_BERRY))
init {
/**
@@ -1345,16 +1346,7 @@ object CobblemonBlocks : PlatformRegistry<Registry<Block>, ResourceKey<Registry<
fun typeGemClusters() = typeGemClusters.toMap()
private fun flowerPot(name: String, flower: Block) = this.create(
name,
FlowerPotBlock(
flower,
BlockBehaviour.Properties.of()
.instabreak()
.noOcclusion()
.pushReaction(PushReaction.DESTROY)
)
)
private fun pottedPlant(name: String, flower: Block) = this.create(name, BlocksInvoker.createFlowerPotBlock(flower))
private fun mintLitter(name: String, color: MapColor) = this.create(
name,
@@ -9,7 +9,6 @@
package com.cobblemon.mod.common.api.ai.config.task
import com.bedrockk.molang.Expression
import com.cobblemon.mod.common.Cobblemon
import com.cobblemon.mod.common.api.ai.BehaviourConfigurationContext
import com.cobblemon.mod.common.api.ai.ExpressionOrEntityVariable
import com.cobblemon.mod.common.api.molang.MoLangFunctions.asMostSpecificMoLangValue
@@ -18,7 +17,6 @@ import com.cobblemon.mod.common.util.asExpression
import com.cobblemon.mod.common.util.mainThreadRuntime
import com.cobblemon.mod.common.util.resolveBoolean
import com.cobblemon.mod.common.util.withQueryValue
import com.cobblemon.mod.common.world.gamerules.CobblemonGameRules
import com.mojang.datafixers.util.Either
import net.minecraft.world.entity.LivingEntity
import net.minecraft.world.entity.ai.behavior.BehaviorControl
@@ -36,8 +34,6 @@ import net.minecraft.world.entity.ai.sensing.SensorType
class HateEntityTaskConfig : SingleTaskConfig {
val entityCondition: Expression = "true".asExpression()
val range: ExpressionOrEntityVariable = Either.left("24".asExpression())
val chance: Float = Cobblemon.config.predationChance
private val coercedChance = chance.coerceIn(0f, 1f)
override fun getVariables(entity: LivingEntity, behaviourConfigurationContext: BehaviourConfigurationContext) = emptyList<MoLangConfigVariable>()
override fun createTask(
@@ -47,44 +43,24 @@ class HateEntityTaskConfig : SingleTaskConfig {
val range = range.resolveFloat(behaviourConfigurationContext.runtime)
behaviourConfigurationContext.addMemories(
MemoryModuleType.NEAREST_VISIBLE_LIVING_ENTITIES,
MemoryModuleType.ANGRY_AT,
MemoryModuleType.ATTACK_TARGET
MemoryModuleType.ANGRY_AT
)
behaviourConfigurationContext.addSensors(SensorType.NEAREST_LIVING_ENTITIES)
return BehaviorBuilder.create { instance ->
instance.group(
instance.present(MemoryModuleType.NEAREST_VISIBLE_LIVING_ENTITIES),
instance.registered(MemoryModuleType.ANGRY_AT),
instance.registered(MemoryModuleType.ATTACK_TARGET),
).apply(instance) { entities, angryAt, attackTarget ->
instance.registered(MemoryModuleType.ANGRY_AT)
).apply(instance) { entities, angryAt ->
Trigger { world, entity, _ ->
// bail if gamerule is disabled
if (!world.gameRules.getBoolean(CobblemonGameRules.DO_POKEMON_PREDATION)) return@Trigger false
val target = instance.get(entities).findClosest { hated ->
mainThreadRuntime.withQueryValue("entity", hated.asMostSpecificMoLangValue())
val target = instance.get(entities).findClosest {
mainThreadRuntime.withQueryValue("entity", entity.asMostSpecificMoLangValue())
return@findClosest mainThreadRuntime.resolveBoolean(entityCondition)
}.orElse(null)
var shouldTrigger = false
if (target != null && target.distanceTo(entity) <= range) {
shouldTrigger = when {
// set always attacking if activity chance is equal to 1.0
coercedChance == 1f -> {
angryAt.set(target.uuid)
attackTarget.set(target)
true
}
// roll the dice in other way
coercedChance != 1f && world.random.nextFloat() < coercedChance -> {
angryAt.set(target.uuid)
attackTarget.set(target)
true
}
// fallback to peaceful behavior in unattended cases
else -> false
}
angryAt.set(target.uuid)
}
return@Trigger shouldTrigger
return@Trigger true
}
}
}
@@ -10,9 +10,14 @@ package com.cobblemon.mod.common.api.drop
import com.cobblemon.mod.common.api.events.CobblemonEvents.LOOT_DROPPED
import com.cobblemon.mod.common.api.events.drops.LootDroppedEvent
import com.cobblemon.mod.common.entity.pokemon.PokemonEntity
import com.cobblemon.mod.common.pokemon.Pokemon
import com.cobblemon.mod.common.util.cobblemonResource
import net.minecraft.core.registries.Registries
import kotlin.random.Random
import net.minecraft.network.RegistryFriendlyByteBuf
import net.minecraft.resources.ResourceKey
import net.minecraft.resources.ResourceLocation
import net.minecraft.server.level.ServerLevel
import net.minecraft.server.level.ServerPlayer
import net.minecraft.world.entity.LivingEntity
@@ -105,7 +110,11 @@ class DropTable {
) {
LOOT_DROPPED.postThen(
event = LootDroppedEvent(this, player, entity, drops),
ifSucceeded = { it.drops.forEach { it.drop(entity, world, pos, player) } }
ifSucceeded = {
val pokemon = (entity as? PokemonEntity)?.pokemon?.species?.resourceIdentifier ?: return@postThen
it.drops.forEach { it.drop(entity, world, pos, player) }
// val lootKey = ResourceKey.create(Registries.LOOT_TABLE, cobblemonResource("pokemon/${pokemon}"))
}
)
}
@@ -0,0 +1,64 @@
package com.cobblemon.mod.common.api.drop
import net.minecraft.core.registries.Registries
import net.minecraft.resources.ResourceKey
import net.minecraft.resources.ResourceLocation
import net.minecraft.server.level.ServerLevel
import net.minecraft.server.level.ServerPlayer
import net.minecraft.world.entity.LivingEntity
import net.minecraft.world.entity.item.ItemEntity
import net.minecraft.world.level.storage.loot.LootParams
import net.minecraft.world.level.storage.loot.parameters.LootContextParamSets
import net.minecraft.world.level.storage.loot.parameters.LootContextParams
import net.minecraft.world.phys.Vec3
/**
* A drop entry that points to a vanilla loot table.
*/
class LootTableDropEntry(
override val percentage: Float,
override val quantity: Int,
override val maxSelectableTimes: Int,
val id: ResourceLocation
) : DropEntry {
override fun drop(
entity: LivingEntity?,
world: ServerLevel,
pos: Vec3,
player: ServerPlayer?
) {
val key = ResourceKey.create(Registries.LOOT_TABLE, id)
val playerEntity = player as? LivingEntity
if (entity == null) return
if (playerEntity != null) {
val params = LootParams.Builder(world)
.withParameter(LootContextParams.ATTACKING_ENTITY, playerEntity)
.withParameter(LootContextParams.DAMAGE_SOURCE, playerEntity.damageSources().genericKill())
.withParameter(LootContextParams.ORIGIN, pos)
.withParameter(LootContextParams.THIS_ENTITY, entity)
.create(LootContextParamSets.ENTITY)
val drops = world.server.reloadableRegistries().getLootTable(key)
.getRandomItems(params)
for (stack in drops) {
if (stack.isEmpty) continue
val itemEntity = ItemEntity(world, pos.x, pos.y, pos.z, stack)
itemEntity.setDefaultPickUpDelay()
world.addFreshEntity(itemEntity)
}
} else {
val params = LootParams.Builder(world)
.create(LootContextParamSets.EMPTY)
val drops = world.server.reloadableRegistries().getLootTable(key)
.getRandomItems(params)
for (stack in drops) {
if (stack.isEmpty) continue
val itemEntity = ItemEntity(world, pos.x, pos.y, pos.z, stack)
itemEntity.setDefaultPickUpDelay()
world.addFreshEntity(itemEntity)
}
}
}
}
@@ -88,7 +88,7 @@ fun getToolTipHeaderIcon(tradeEvolution: TradeEvolution): CobblemonDexEvolutionR
lang("ui.pokedex.evolution.trade.tooltip.with_any_species")
} else {
PokemonSpecies.getByIdentifier(species.asIdentifierDefaultingNamespace())
?.let { lang("ui.pokedex.evolution.trade.tooltip.with_species", it.translatedName.plainCopy().green()) }
?.let { lang("ui.pokedex.evolution.trade.tooltip.with_species", it.translatedName.green()) }
?: lang("ui.pokedex.evolution.trade.tooltip.with_any_species")
}
return CobblemonDexEvolutionRequirementDisplay(CobblemonItems.LINK_CABLE, tooltip)
@@ -282,7 +282,7 @@ fun buildLevelRequirement(levelRequirement: LevelRequirement): DexEvolutionRequi
fun buildMoonPhaseRequirement(moonPhaseRequirement: MoonPhaseRequirement): DexEvolutionRequirementDisplay {
val icon = Items.CLOCK
val moonPhaseComponent = moonPhaseRequirement.moonPhase.displayName().plainCopy().green()
val moonPhaseComponent = moonPhaseRequirement.moonPhase.displayName().green()
val tooltip = lang("ui.pokedex.requirement.moon_phase.tooltip", moonPhaseComponent)
return CobblemonDexEvolutionRequirementDisplay(icon, tooltip)
@@ -290,7 +290,7 @@ fun buildMoonPhaseRequirement(moonPhaseRequirement: MoonPhaseRequirement): DexEv
fun buildMoveSetRequirement(moveSetRequirement: MoveSetRequirement): DexEvolutionRequirementDisplay {
val icon = CobblemonItems.TECHNICAL_MACHINE
val tooltip = lang("ui.pokedex.requirement.has_move.tooltip", moveSetRequirement.move.displayName.plainCopy().green())
val tooltip = lang("ui.pokedex.requirement.has_move.tooltip", moveSetRequirement.move.displayName.green())
return CobblemonDexEvolutionRequirementDisplay(icon, tooltip)
}
@@ -319,7 +319,7 @@ fun buildMoveTypeRequirement(moveTypeRequirement: MoveTypeRequirement): DexEvolu
else -> CobblemonItems.NORMAL_GEM
}
val tooltip = lang("ui.pokedex.requirement.has_move_type.tooltip", moveTypeRequirement.type.displayName.plainCopy().green())
val tooltip = lang("ui.pokedex.requirement.has_move_type.tooltip", moveTypeRequirement.type.displayName.green())
return CobblemonDexEvolutionRequirementDisplay(icon, tooltip)
}
@@ -437,7 +437,7 @@ fun buildStructureRequirement(structureRequirement: StructureRequirement, negate
fun buildTimeRangeRequirement(timeRangeRequirement: TimeRangeRequirement): DexEvolutionRequirementDisplay? {
val icon = Items.CLOCK
val timeRangeComponent = timeRangeRequirement.range.displayName()?.plainCopy() ?: return null
val timeRangeComponent = timeRangeRequirement.range.displayName() ?: return null
val tooltip = lang("ui.pokedex.requirement.time_range.tooltip", timeRangeComponent.green())
return CobblemonDexEvolutionRequirementDisplay(icon, tooltip)
@@ -445,7 +445,7 @@ fun buildTimeRangeRequirement(timeRangeRequirement: TimeRangeRequirement): DexEv
fun buildUseMoveRequirement(useMoveRequirement: UseMoveRequirement): DexEvolutionRequirementDisplay {
val icon = CobblemonItems.CHOICE_BAND
val tooltip = lang("ui.pokedex.requirement.use_move.tooltip", useMoveRequirement.move.displayName.plainCopy().green())
val tooltip = lang("ui.pokedex.requirement.use_move.tooltip", useMoveRequirement.move.displayName.green())
return CobblemonDexEvolutionRequirementDisplay(icon, tooltip)
}
@@ -42,8 +42,8 @@ abstract class AreaTypeSpawningCondition<T : AreaSpawnablePosition> : SpawningCo
override fun copyFrom(other: SpawningCondition<*>, merger: Merger) {
super.copyFrom(other, merger)
if (other is AreaTypeSpawningCondition) {
minHeight = merger.mergeSingle(minHeight, other.minHeight)
maxHeight = merger.mergeSingle(maxHeight, other.maxHeight)
merger.mergeSingle(minHeight, other.minHeight)
merger.mergeSingle(maxHeight, other.maxHeight)
neededNearbyBlocks = merger.merge(neededNearbyBlocks, other.neededNearbyBlocks)?.toMutableList()
}
}
@@ -46,7 +46,7 @@ abstract class SubmergedTypeSpawningCondition<T : SubmergedSpawnablePosition> :
super.copyFrom(other, merger)
if (other is SubmergedTypeSpawningCondition) {
minDepth = merger.mergeSingle(minDepth, other.minDepth)
maxDepth = merger.mergeSingle(maxDepth, other.maxDepth)
maxDepth = merger.mergeSingle(minDepth, other.minDepth)
fluidIsSource = merger.mergeSingle(fluidIsSource, other.fluidIsSource)
fluid = merger.mergeSingle(fluid, other.fluid)
}
@@ -39,7 +39,7 @@ abstract class SurfaceTypeSpawningCondition<T : SurfaceSpawnablePosition> : Area
super.copyFrom(other, merger)
if (other is SurfaceTypeSpawningCondition) {
minDepth = merger.mergeSingle(minDepth, other.minDepth)
maxDepth = merger.mergeSingle(maxDepth, other.maxDepth)
maxDepth = merger.mergeSingle(minDepth, other.minDepth)
fluid = merger.mergeSingle(fluid, other.fluid)
}
}
@@ -85,7 +85,6 @@ class PartyOverlay : Gui(Minecraft.getInstance()) {
if (HidePartyBinding.shouldHide) {
return false
}
return true
}
}
@@ -559,4 +558,4 @@ class PartyOverlay : Gui(Minecraft.getInstance()) {
}
}
}
}
}
@@ -34,7 +34,6 @@ import com.cobblemon.mod.common.client.render.models.blockbench.bedrock.animatio
import com.cobblemon.mod.common.client.render.models.blockbench.pose.Pose
import com.cobblemon.mod.common.client.render.models.blockbench.quirk.ModelQuirk
import com.cobblemon.mod.common.client.render.models.blockbench.quirk.QuirkData
import com.cobblemon.mod.common.client.sound.instances.UIEntitySoundInstance
import com.cobblemon.mod.common.entity.PosableEntity
import com.cobblemon.mod.common.entity.PoseType
import com.cobblemon.mod.common.entity.pokemon.PokemonEntity
@@ -45,6 +44,7 @@ import com.mojang.brigadier.exceptions.CommandSyntaxException
import java.util.concurrent.ConcurrentLinkedQueue
import net.minecraft.client.Minecraft
import net.minecraft.client.multiplayer.ClientLevel
import net.minecraft.client.resources.sounds.SimpleSoundInstance
import net.minecraft.commands.arguments.item.ItemParser
import net.minecraft.sounds.SoundEvent
import net.minecraft.world.entity.Entity
@@ -289,7 +289,7 @@ abstract class PosableState : Schedulable {
entity.level().playLocalSound(entity, soundEvent, entity.soundSource, volume, pitch)
}
} else {
Minecraft.getInstance().soundManager.play(UIEntitySoundInstance(soundEvent, volume, pitch))
Minecraft.getInstance().soundManager.play(SimpleSoundInstance.forUI(soundEvent, volume, pitch))
}
}
}
@@ -19,7 +19,6 @@ import com.cobblemon.mod.common.client.render.models.blockbench.PosableState
import com.cobblemon.mod.common.client.render.models.blockbench.pose.Bone
import com.cobblemon.mod.common.client.render.models.blockbench.repository.RenderContext
import com.cobblemon.mod.common.client.sound.instances.AlphaCrySoundInstance
import com.cobblemon.mod.common.client.sound.instances.UIEntitySoundInstance
import com.cobblemon.mod.common.entity.pokemon.PokemonEntity
import com.cobblemon.mod.common.util.effectiveName
import com.cobblemon.mod.common.util.genericRuntime
@@ -32,6 +31,7 @@ import net.minecraft.client.Minecraft
import net.minecraft.client.model.geom.ModelPart
import net.minecraft.client.multiplayer.ClientLevel
import net.minecraft.client.resources.sounds.EntityBoundSoundInstance
import net.minecraft.client.resources.sounds.SimpleSoundInstance
import net.minecraft.resources.ResourceLocation
import net.minecraft.sounds.SoundEvent
import net.minecraft.world.entity.Entity
@@ -121,7 +121,7 @@ class BedrockSoundKeyframe(
}
}
} else {
Minecraft.getInstance().soundManager.play(UIEntitySoundInstance(soundEvent))
Minecraft.getInstance().soundManager.play(SimpleSoundInstance.forUI(soundEvent, 1F, 1F))
}
}
}
@@ -0,0 +1,208 @@
/*
* 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.animation.WingFlapIdleAnimation
import com.cobblemon.mod.common.client.render.models.blockbench.createTransformation
import com.cobblemon.mod.common.client.render.models.blockbench.frame.BiWingedFrame
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.ModelPartTransformation
import com.cobblemon.mod.common.client.render.models.blockbench.pose.Pose
import com.cobblemon.mod.common.client.render.models.blockbench.wavefunction.parabolaFunction
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 SquawkabillyModel (root: ModelPart) : PokemonPosableModel(root), HeadedFrame, BipedFrame, BiWingedFrame {
override val rootPart = root.registerChildWithAllChildren("squawkabilly")
override val head = getPart("head")
override val leftWing = getPart("wing_left")
override val rightWing = getPart("wing_right")
override val leftLeg = getPart("leg_left")
override val rightLeg = getPart("leg_right")
private val tail = getPart("tail")
override var portraitScale = 2.0F
override var portraitTranslation = Vec3(-0.2, -0.2, 0.0)
override var profileScale = 0.85F
override var profileTranslation = Vec3(0.0, 0.51, 0.0)
lateinit var standing: Pose
lateinit var walk: Pose
lateinit var hovering: Pose
lateinit var flying: Pose
lateinit var shoulderLeft: Pose
lateinit var shoulderRight: Pose
override val cryAnimation = CryProvider { bedrockStateful("squawkabilly", "cry") }
val shoulderOffsetX = -1.0
val shoulderOffsetY = 0
override fun registerPoses() {
val blink = quirk { bedrockStateful("squawkabilly", "blink") }
standing = registerPose(
poseName = "standing",
quirks = arrayOf(blink),
poseTypes = PoseType.UI_POSES + PoseType.STAND,
transformTicks = 10,
animations = arrayOf(
singleBoneLook(),
bedrock("squawkabilly", "ground_idle")
)
)
walk = registerPose(
poseName = "walk",
quirks = arrayOf(blink),
poseType = PoseType.WALK,
transformTicks = 10,
animations = arrayOf(
singleBoneLook(),
bedrock("squawkabilly", "ground_idle"),
rootPart.translation(
function = parabolaFunction(
peak = -4F,
period = 0.4F
),
timeVariable = { state, _, _ -> state.animationSeconds },
axis = ModelPartTransformation.Y_AXIS
),
head.translation(
function = sineFunction(
amplitude = (-20F).toRadians(),
period = 1F,
verticalShift = (-10F).toRadians()
),
axis = ModelPartTransformation.X_AXIS,
timeVariable = { state, _, _ -> state.animationSeconds }
),
leftLeg.rotation(
function = parabolaFunction(
tightness = -20F,
phaseShift = 0F,
verticalShift = (30F).toRadians()
),
axis = ModelPartTransformation.X_AXIS,
timeVariable = { _, _, ageInTicks -> ageInTicks / 20 },
),
rightLeg.rotation(
function = parabolaFunction(
tightness = -20F,
phaseShift = 0F,
verticalShift = (30F).toRadians()
),
axis = ModelPartTransformation.X_AXIS,
timeVariable = { _, _, ageInTicks -> ageInTicks / 20 },
),
tail.rotation(
function = sineFunction(
amplitude = (-5F).toRadians(),
period = 1F
),
axis = ModelPartTransformation.X_AXIS,
timeVariable = { _, _, ageInTicks -> ageInTicks / 20 },
),
wingFlap(
flapFunction = sineFunction(
amplitude = (-5F).toRadians(),
period = 0.4F,
phaseShift = 0.00F,
verticalShift = (-20F).toRadians()
),
timeVariable = { state, _, _ -> state.animationSeconds },
axis = ModelPartTransformation.Z_AXIS
),
rightWing.translation(
function = parabolaFunction(
tightness = -10F,
phaseShift = 30F,
verticalShift = (25F).toRadians()
),
axis = ModelPartTransformation.Y_AXIS,
timeVariable = { _, _, ageInTicks -> ageInTicks / 20 },
),
leftWing.translation(
function = parabolaFunction(
tightness = -10F,
phaseShift = 30F,
verticalShift = (25F).toRadians()
),
axis = ModelPartTransformation.Y_AXIS,
timeVariable = { _, _, ageInTicks -> ageInTicks / 20 },
),
)
)
hovering = registerPose(
poseName = "hovering",
quirks = arrayOf(blink),
poseTypes = setOf(PoseType.FLOAT, PoseType.HOVER),
transformTicks = 10,
animations = arrayOf(
singleBoneLook(),
WingFlapIdleAnimation(this,
flapFunction = sineFunction(verticalShift = -10F.toRadians(), period = 0.9F, amplitude = 0.9F),
timeVariable = { state, _, _ -> state.animationSeconds },
axis = ModelPartTransformation.Z_AXIS
)
)
)
flying = registerPose(
poseName = "flying",
quirks = arrayOf(blink),
poseTypes = setOf(PoseType.FLY, PoseType.SWIM),
transformTicks = 10,
animations = arrayOf(
singleBoneLook(),
WingFlapIdleAnimation(this,
flapFunction = sineFunction(verticalShift = -14F.toRadians(), period = 0.9F, amplitude = 0.9F),
timeVariable = { state, _, _ -> state.animationSeconds },
axis = ModelPartTransformation.Z_AXIS
)
)
)
shoulderLeft = registerPose(
poseType = PoseType.SHOULDER_LEFT,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("squawkabilly", "ground_idle")
),
transformedParts = arrayOf(
rootPart.createTransformation().addPosition(shoulderOffsetX, shoulderOffsetY, 0.0)
)
)
shoulderRight = registerPose(
poseType = PoseType.SHOULDER_RIGHT,
quirks = arrayOf(blink),
animations = arrayOf(
singleBoneLook(),
bedrock("squawkabilly", "ground_idle")
),
transformedParts = arrayOf(
rootPart.createTransformation().addPosition(-shoulderOffsetX, shoulderOffsetY, 0.0)
)
)
}
// override fun getFaintAnimation(
// pokemonEntity: PokemonEntity,
// state: PosableState<PokemonEntity>
// ) = if (state.isNotPosedIn(sleep)) bedrockStateful("squawkabilly", "faint") else null
}
@@ -397,6 +397,7 @@ object VaryingModelRepository {
inbuilt("bunnelby", ::BunnelbyModel)
inbuilt("arrokuda", ::ArrokudaModel)
inbuilt("barraskewda", ::BarraskewdaModel)
inbuilt("squawkabilly", ::SquawkabillyModel)
inbuilt("ponyta_galarian", ::PonytaGalarianModel)
inbuilt("rapidash_galarian", ::RapidashGalarianModel)
inbuilt("volbeat", ::VolbeatModel)
@@ -1,22 +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.client.sound.instances
import net.minecraft.client.resources.sounds.SimpleSoundInstance
import net.minecraft.client.resources.sounds.SoundInstance
import net.minecraft.sounds.SoundEvent
import net.minecraft.sounds.SoundSource
/**
* Plays a sound for a Pokémon rendered in a GUI, where there is no entity to take the sound source from.
* Unlike [SimpleSoundInstance.forUI] this uses [SoundSource.NEUTRAL] so the Friendly Creatures slider applies.
*/
class UIEntitySoundInstance(sound: SoundEvent, volume: Float = 1F, pitch: Float = 1F) :
SimpleSoundInstance(sound.location, SoundSource.NEUTRAL, volume, pitch, SoundInstance.createUnseededRandom(),
false, 0, SoundInstance.Attenuation.NONE, 0.0, 0.0, 0.0, true)
@@ -164,9 +164,6 @@ class CobblemonConfig {
@CobblemonConfigField(Category.Pokemon, lang = "experience_multiplier", SERVER)
var experienceMultiplier = 2F
@CobblemonConfigField(Category.Pokemon, lang = "predation_chance", SERVER)
var predationChance = 0.05F
@CobblemonConfigField(Category.Spawning, lang = "pokemon_per_chunk", SERVER)
var pokemonPerChunk = 1F
@@ -117,6 +117,7 @@ import net.minecraft.core.BlockPos
import net.minecraft.core.Direction
import net.minecraft.core.component.DataComponents
import net.minecraft.core.registries.BuiltInRegistries
import net.minecraft.core.registries.Registries
import net.minecraft.nbt.CompoundTag
import net.minecraft.nbt.NbtOps
import net.minecraft.nbt.NbtUtils
@@ -132,6 +133,7 @@ import net.minecraft.network.protocol.game.DebugPackets
import net.minecraft.network.syncher.EntityDataAccessor
import net.minecraft.network.syncher.EntityDataSerializers
import net.minecraft.network.syncher.SynchedEntityData
import net.minecraft.resources.ResourceKey
import net.minecraft.resources.ResourceLocation
import net.minecraft.server.level.ServerEntity
import net.minecraft.server.level.ServerLevel
@@ -173,6 +175,7 @@ import net.minecraft.world.level.gameevent.GameEvent
import net.minecraft.world.level.material.EmptyFluid
import net.minecraft.world.level.material.FluidState
import net.minecraft.world.level.pathfinder.PathType
import net.minecraft.world.level.storage.loot.LootTable
import net.minecraft.world.phys.AABB
import net.minecraft.world.phys.Vec3
import java.util.*
@@ -242,6 +245,12 @@ open class PokemonEntity(
override val schedulingTracker = SchedulingTracker()
override fun getDefaultLootTable(): ResourceKey<LootTable?>? {
println(cobblemonResource("pokemon/${this.pokemon.species.resourceIdentifier.path}"))
// return ResourceKey.create(Registries.LOOT_TABLE, )
return super.getDefaultLootTable()
}
val form: FormData
get() = pokemon.form
val behaviour: FormPokemonBehaviour
@@ -1294,7 +1303,16 @@ open class PokemonEntity(
}
private fun showInteractionWheel(player: ServerPlayer, itemStack: ItemStack) {
val canRide = isRideableFor(player)
val canRide = ifRidingAvailableSupply(false) { behaviour, settings, state ->
if (platform != PlatformType.NONE) return@ifRidingAvailableSupply false
if (tethering != null) return@ifRidingAvailableSupply false;
if (seats.isEmpty()) return@ifRidingAvailableSupply false;
if ((owner as? ServerPlayer)?.isInBattle() == true) return@ifRidingAvailableSupply false;
if (this.owner != player && this.passengers.isEmpty()) return@ifRidingAvailableSupply false;
if(pokemon.effectiveScale < Cobblemon.config.minimumRidingScale) return@ifRidingAvailableSupply false;
if(beamMode == 3) return@ifRidingAvailableSupply false;
return@ifRidingAvailableSupply behaviour.isActive(settings, state, this);
}
if (pokemon.getOwnerPlayer() == player) {
val cosmeticItemDefinition = CobblemonCosmeticItems.findValidCosmeticForPokemonAndItem(
player.level().registryAccess(),
@@ -1316,18 +1334,6 @@ open class PokemonEntity(
}
}
fun isRideableFor(player: ServerPlayer): Boolean = ifRidingAvailableSupply(false) canRide@{ behaviour, settings, state ->
if (!player.canInteractWithEntity(this, player.entityInteractionRange())) return@canRide false
if (platform != PlatformType.NONE) return@canRide false
if (tethering != null) return@canRide false
if (seats.isEmpty()) return@canRide false
if ((owner as? ServerPlayer)?.isInBattle() == true) return@canRide false
if (this.owner != player && this.passengers.isEmpty()) return@canRide false
if (pokemon.effectiveScale < Cobblemon.config.minimumRidingScale) return@canRide false
if (beamMode == 3) return@canRide false
return@canRide behaviour.isActive(settings, state, this)
}
override fun getDimensions(pose: Pose): EntityDimensions {
val scale = effects.mockEffect?.scale ?: (form.baseScale * pokemon.effectiveScale)
var result = this.exposedForm.hitbox.scale(scale)
@@ -1609,8 +1615,9 @@ open class PokemonEntity(
|| stack.`is`(CobblemonItemTags.WHITELISTED_ITEMS_TO_HOLD)
fun tryRidingPokemon(player: ServerPlayer): Boolean {
if (!isRideableFor(player)) return false
if (pokemon.effectiveScale < Cobblemon.config.minimumRidingScale) {
return false
}
val event = RidePokemonEvent.Pre(player, this)
CobblemonEvents.RIDE_EVENT_PRE.post(event)
if (!event.isCanceled) {
@@ -0,0 +1,28 @@
package com.cobblemon.mod.common.loot
import com.cobblemon.mod.common.loot.conditions.BiomeLootItemCondition
import com.cobblemon.mod.common.loot.conditions.PokemonPropertiesLootItemCondition
import com.cobblemon.mod.common.util.cobblemonResource
import net.minecraft.core.Registry
import net.minecraft.core.registries.BuiltInRegistries
import net.minecraft.world.level.storage.loot.predicates.LootItemConditionType
object CobblemonLootItemConditions {
@JvmField
val POKEMON_PROPERTIES_CONDITION = Registry.register(
BuiltInRegistries.LOOT_CONDITION_TYPE,
cobblemonResource("pokemon_properties"),
LootItemConditionType(PokemonPropertiesLootItemCondition.CODEC)
)
@JvmField
val BIOME_CONDITION = Registry.register(
BuiltInRegistries.LOOT_CONDITION_TYPE,
cobblemonResource("biome"),
LootItemConditionType(BiomeLootItemCondition.CODEC)
)
fun touch() = Unit
}
@@ -0,0 +1,38 @@
package com.cobblemon.mod.common.loot.conditions
import com.cobblemon.mod.common.api.conditional.RegistryLikeCondition
import com.cobblemon.mod.common.api.conditional.makeCodecForRegistryLikeCondition
import com.cobblemon.mod.common.loot.CobblemonLootItemConditions
import com.cobblemon.mod.common.util.toBlockPos
import com.mojang.serialization.MapCodec
import com.mojang.serialization.codecs.RecordCodecBuilder
import net.minecraft.core.registries.Registries
import net.minecraft.world.level.biome.Biome
import net.minecraft.world.level.storage.loot.LootContext
import net.minecraft.world.level.storage.loot.parameters.LootContextParams
import net.minecraft.world.level.storage.loot.predicates.LootItemCondition
import net.minecraft.world.level.storage.loot.predicates.LootItemConditionType
class BiomeLootItemCondition(
val biome: RegistryLikeCondition<Biome>
) : LootItemCondition {
override fun getType(): LootItemConditionType {
return CobblemonLootItemConditions.BIOME_CONDITION
}
override fun test(t: LootContext): Boolean {
val temp = biome.fits(t.level.getBiome(t.getParam(LootContextParams.ORIGIN).toBlockPos()))
return temp
}
companion object {
private val BIOME_CODEC = makeCodecForRegistryLikeCondition("biome", Registries.BIOME)
val CODEC: MapCodec<BiomeLootItemCondition> = RecordCodecBuilder.mapCodec { instance ->
instance.group(
BIOME_CODEC.fieldOf("biome")
.forGetter(BiomeLootItemCondition::biome)
).apply(instance, ::BiomeLootItemCondition)
}
}
}
@@ -0,0 +1,33 @@
package com.cobblemon.mod.common.loot.conditions
import com.cobblemon.mod.common.api.pokemon.PokemonProperties
import com.cobblemon.mod.common.entity.pokemon.PokemonEntity
import com.cobblemon.mod.common.loot.CobblemonLootItemConditions
import com.mojang.serialization.MapCodec
import com.mojang.serialization.codecs.RecordCodecBuilder
import net.minecraft.world.level.storage.loot.LootContext
import net.minecraft.world.level.storage.loot.parameters.LootContextParams
import net.minecraft.world.level.storage.loot.predicates.LootItemCondition
import net.minecraft.world.level.storage.loot.predicates.LootItemConditionType
class PokemonPropertiesLootItemCondition(
val properties: PokemonProperties
) : LootItemCondition {
override fun getType(): LootItemConditionType {
return CobblemonLootItemConditions.POKEMON_PROPERTIES_CONDITION
}
override fun test(t: LootContext): Boolean {
val pokemon = t.getParamOrNull(LootContextParams.THIS_ENTITY) as? PokemonEntity ?: return false
return properties.matches(pokemon)
}
companion object {
val CODEC: MapCodec<PokemonPropertiesLootItemCondition> = RecordCodecBuilder.mapCodec { instance ->
instance.group(
PokemonProperties.CODEC.fieldOf("properties")
.forGetter(PokemonPropertiesLootItemCondition::properties)
).apply(instance, ::PokemonPropertiesLootItemCondition)
}
}
}
@@ -135,18 +135,17 @@ internal object PropertiesCompletionProvider : DataRegistry {
private fun addDefaults() {
this.inject(setOf("level", "lvl", "l"), setOf("1", "${Cobblemon.config.maxPokemonLevel}") )
this.inject(setOf("shiny", "s"), setOf("yes", "no"))
this.inject(setOf("alpha", "is_alpha"), setOf("yes", "no"))
this.inject(setOf("gender"), Gender.entries.map { it.name.lowercase() })
this.inject(setOf("friendship"), setOf("0", Cobblemon.config.maxPokemonFriendship.toString()))
this.inject(setOf("fullness"), setOf("0", "255"))
this.inject(setOf("pokeball"), PokeBalls.all().map { it.name.simplify() })
this.inject(setOf("nature"), Natures.all().map { it.name.simplify() })
this.inject(setOf("ability"), Abilities.all().map { if (it.name.asIdentifierDefaultingNamespace().namespace == Cobblemon.MODID) it.name.asIdentifierDefaultingNamespace().path else it.name })
this.inject(setOf("dmax_level", "dmax"), setOf("0", Cobblemon.config.maxDynamaxLevel.toString()))
this.inject(setOf("gmax_factor", "gmax"), setOf("yes", "no"))
this.inject(setOf("dmax"), setOf("0", Cobblemon.config.maxDynamaxLevel.toString()))
this.inject(setOf("gmax"), setOf("yes", "no"))
this.inject(setOf("type", "elemental_type"), ElementalTypes.all().map { it.name })
this.inject(setOf("tera_type", "tera"), TeraTypes.map { it.id.simplify() })
this.inject(setOf("tradeable", "tradable"), setOf("yes", "no"))
this.inject(setOf("tradeable"), setOf("yes", "no"))
this.inject(setOf("originaltrainer", "ot"), setOf(""))
this.inject(setOf("originaltrainertype", "ottype"), setOf("None", "Player", "NPC"))
this.inject(setOf("nickname", "nick"), setOf(""))
@@ -26,6 +26,5 @@ object CobblemonGameRules {
val SHINY_STARTERS: GameRules.Key<GameRules.BooleanValue> = Cobblemon.implementation.registerGameRule("doShinyStarters", GameRules.Category.MISC, BooleanRuleInvoker.`cobblemon$create`(false))
@JvmField
val HEALERS_HEAL_PC: GameRules.Key<GameRules.BooleanValue> = Cobblemon.implementation.registerGameRule("healersHealPC", GameRules.Category.MISC, BooleanRuleInvoker.`cobblemon$create`(false))
@JvmField
val DO_POKEMON_PREDATION: GameRules.Key<GameRules.BooleanValue> = Cobblemon.implementation.registerGameRule("doPokemonPredation", GameRules.Category.MOBS, BooleanRuleInvoker.`cobblemon$create`(true))
}
@@ -2,312 +2,6 @@
"format_version": "1.8.0",
"animations": {
"animation.ninetales.ground_idle": {
"loop": true,
"bones": {
"body": {
"position": [0, -0.3, 0]
},
"torso": {
"rotation": ["5+math.sin(q.anim_time*90*1-0)*0.5", 0, "0-math.sin(q.anim_time*90*0.5-30)*0.5"]
},
"chest": {
"rotation": ["-4.8+math.sin(q.anim_time*90*1-30)*0.5", 0, -1.2]
},
"neck": {
"rotation": ["-12.5+math.sin(q.anim_time*90*1-60)*1", 0, 0]
},
"neck_fur_left2": {
"rotation": [0, 0, "-7.5-math.sin(q.anim_time*90*1-90)*1"]
},
"neck_fur_right2": {
"rotation": [0, 0, "7.5+math.sin(q.anim_time*90*1-90)*1"]
},
"neck2": {
"rotation": ["-12.5+math.sin(q.anim_time*90*1-90)*0.5", 0, 0]
},
"head_rotation": {
"rotation": ["32.5+math.sin(q.anim_time*90*1-90)*-2", 0, "0-math.sin(q.anim_time*90*1-120)*-0.5"]
},
"hair2": {
"rotation": ["-2.5+math.sin(q.anim_time*90*1-210)*1", 0, 0]
},
"hair_back_top": {
"rotation": ["-2.5+math.sin(q.anim_time*90*1-300)*2", 0, 0]
},
"hair_back_top2": {
"rotation": ["-22.5+math.sin(q.anim_time*90*1-360)*4", 0, 0]
},
"hair_back_bottom2": {
"rotation": ["-20+math.sin(q.anim_time*90*1-380)*4", 0, 0]
},
"tail_middle": {
"rotation": ["42.5+math.sin(q.anim_time*90*1-60)*-0.5", 0, 0]
},
"tail_middle2": {
"rotation": ["7.5+math.sin(q.anim_time*90*1-120)*-1", 0, 0]
},
"tail_middle3": {
"rotation": ["17.5+math.sin(q.anim_time*90*1-180)*-1", 0, 0]
},
"tail_middle4": {
"rotation": ["-37.5+math.sin(q.anim_time*90*1-240)*-4", 0, 0]
},
"tail_middle5": {
"rotation": ["-35+math.sin(q.anim_time*90*1-300)*-6", 2.5, 0]
},
"tail_middle6": {
"rotation": ["-42.5+math.sin(q.anim_time*90*1-300)*-6", 0, 0]
},
"tail_middle7": {
"rotation": ["-25+math.sin(q.anim_time*90*1-400)*-6", 0, 0]
},
"tail_middle8": {
"rotation": ["35+math.sin(q.anim_time*90*1-460)*-12", 0, 0]
},
"tail_left1_rotation": {
"rotation": ["27.525638448+math.sin(q.anim_time*90*1-60)*-0.5", 2.04767, 1.43455]
},
"tail_left1_2": {
"rotation": ["15.013645339+math.sin(q.anim_time*90*1-120)*-1", 2.41476, 0.64743]
},
"tail_left1_3": {
"rotation": ["17.5+math.sin(q.anim_time*90*1-180)*-1", 0, 0]
},
"tail_left1_4": {
"rotation": ["-32.599068173+math.sin(q.anim_time*90*1-240)*-4", -4.21541, 2.69136]
},
"tail_left1_5": {
"rotation": ["-37.605552+math.sin(q.anim_time*90*1-300)*-6", -3.9649, 3.04868]
},
"tail_left1_6": {
"rotation": ["-40.107597848+math.sin(q.anim_time*90*1-360)*-4", 3.82821, -3.21873]
},
"tail_left1_7": {
"rotation": ["-27.702122918+math.sin(q.anim_time*90*1-400)*-6", 6.64851, -3.47875]
},
"tail_left1_8": {
"rotation": ["30.867477791+math.sin(q.anim_time*90*1-460)*-12", 12.95254, 7.63074]
},
"tail_left2_rotation": {
"rotation": ["22.577335588+math.sin(q.anim_time*90*1-60)*-0.5", 4.61854, 1.91757]
},
"tail_left2_2": {
"rotation": ["12.5+math.sin(q.anim_time*90*1-120)*-1", 0, 0]
},
"tail_left2_3": {
"rotation": ["15+math.sin(q.anim_time*90*1-180)*-1", 0, 0]
},
"tail_left2_4": {
"rotation": ["-20+math.sin(q.anim_time*90*1-240)*-4", 0, 0]
},
"tail_left2_5": {
"rotation": ["-56.265008831+math.sin(q.anim_time*90*1-300)*-6", -9.93191, 14.48174]
},
"tail_left2_6": {
"rotation": ["-37.158458405+math.sin(q.anim_time*90*1-300)*-6", 18.26883, -13.36473]
},
"tail_left2_7": {
"rotation": ["33.125975871+math.sin(q.anim_time*90*1-360)*-12", 10.51794, 6.79286]
},
"tail_left3_rotation": {
"rotation": ["10+math.sin(q.anim_time*90*1-60)*-0.5", 0, 0]
},
"tail_left3_2": {
"rotation": ["22.577335588+math.sin(q.anim_time*90*1-120)*-1", 4.61854, 1.91757]
},
"tail_left3_3": {
"rotation": ["10+math.sin(q.anim_time*90*1-180)*-1", 0, 0]
},
"tail_left3_4": {
"rotation": ["-30+math.sin(q.anim_time*90*1-240)*-4", 0, 0]
},
"tail_left3_5": {
"rotation": ["-27.860824367+math.sin(q.anim_time*90*1-300)*-6", -8.86042, 4.65468]
},
"tail_left3_6": {
"rotation": ["-43.1852829+math.sin(q.anim_time*90*1-300)*-6", 9.18229, -8.51814]
},
"tail_left3_7": {
"rotation": ["35.413183453+math.sin(q.anim_time*90*1-360)*-12", 8.17773, 5.77509]
},
"tail_right1_rotation": {
"rotation": ["27.525638448+math.sin(q.anim_time*90*1-60)*-0.5", -2.04767, -1.43455]
},
"tail_right1_2": {
"rotation": ["15.013645339+math.sin(q.anim_time*90*1-120)*-1", -2.41476, -0.64743]
},
"tail_right1_3": {
"rotation": ["17.5+math.sin(q.anim_time*90*1-180)*-1", 0, 0]
},
"tail_right1_4": {
"rotation": ["-32.599068173+math.sin(q.anim_time*90*1-240)*-4", 4.21541, -2.69136]
},
"tail_right1_5": {
"rotation": ["-37.605552+math.sin(q.anim_time*90*1-300)*-6", 3.9649, -3.04868]
},
"tail_right1_6": {
"rotation": ["-40.107597848+math.sin(q.anim_time*90*1-360)*-4", -3.82821, 3.21873]
},
"tail_right1_7": {
"rotation": ["-27.702122918+math.sin(q.anim_time*90*1-400)*-6", -6.64851, 3.47875]
},
"tail_right1_8": {
"rotation": ["30.867477791+math.sin(q.anim_time*90*1-460)*-12", -12.95254, -7.63074]
},
"tail_right2_rotation": {
"rotation": ["22.577335588+math.sin(q.anim_time*90*1-60)*-0.5", -4.61854, -1.91757]
},
"tail_right2_2": {
"rotation": ["12.5+math.sin(q.anim_time*90*1-120)*-1", 0, 0]
},
"tail_right2_3": {
"rotation": ["15+math.sin(q.anim_time*90*1-180)*-1", 0, 0]
},
"tail_right2_4": {
"rotation": ["-20+math.sin(q.anim_time*90*1-240)*-4", 0, 0]
},
"tail_right2_5": {
"rotation": ["-56.265008831+math.sin(q.anim_time*90*1-300)*-6", 9.93191, -14.48174]
},
"tail_right2_6": {
"rotation": ["-37.158458405+math.sin(q.anim_time*90*1-300)*-6", -18.26883, 13.36473]
},
"tail_right2_7": {
"rotation": ["33.125975871+math.sin(q.anim_time*90*1-360)*-12", -10.51794, -6.79286]
},
"leg_front_left": {
"rotation": ["-9.981069394+math.sin(q.anim_time*90*1-0)*-1", 0.43523, 4.98107],
"position": [0, "0-math.sin(q.anim_time*90*1-0)*0.025", "0-math.sin(q.anim_time*90*1-0)*-0.15"]
},
"leg_front_left2": {
"rotation": ["-2.5+math.sin(q.anim_time*90*1-0)*0.5", 0, 0]
},
"foot_front_left": {
"rotation": ["12.5+math.sin(q.anim_time*90*1-0)*0.5", 0, -5]
},
"leg_back_left": {
"rotation": ["10+math.sin(q.anim_time*90*1-0)*1", 0, -7.5],
"position": [0, "0-math.sin(q.anim_time*90*1-0)*0.2", "0-math.sin(q.anim_time*90*1-0)*0.25"]
},
"leg_back_left2": {
"rotation": ["-2.5+math.sin(q.anim_time*90*1-0)*1", 0, 0]
},
"leg_back_left3": {
"rotation": ["-2.5+math.sin(q.anim_time*90*1-0)*-1", 0, 0]
},
"foot_back_left": {
"rotation": ["-5+math.sin(q.anim_time*90*1-0)*-1", 0, 7.5]
},
"leg_front_right": {
"rotation": ["10.018930606+math.sin(q.anim_time*90*1-0)*-1", -0.43523, -4.98107],
"position": [0, "0-math.sin(q.anim_time*90*1-0)*0.025", "0-math.sin(q.anim_time*90*1-0)*-0.15"]
},
"leg_front_right2": {
"rotation": ["-10+math.sin(q.anim_time*90*1-0)*0.5", 0, 0]
},
"foot_front_right": {
"rotation": ["-0+math.sin(q.anim_time*90*1-0)*0.5", 0, 5]
},
"leg_back_right": {
"rotation": ["17.521361057+math.sin(q.anim_time*90*1-0)*1", 0.32621, 7.49294],
"position": [0, "0-math.sin(q.anim_time*90*1-0)*0.2", "0-math.sin(q.anim_time*90*1-0)*0.25"]
},
"leg_back_right2": {
"rotation": ["-5+math.sin(q.anim_time*90*1-0)*1", 0, 0]
},
"leg_back_right3": {
"rotation": ["2.5+math.sin(q.anim_time*90*1-0)*-1", 0, 0]
},
"foot_back_right": {
"rotation": ["-15+math.sin(q.anim_time*90*1-0)*-1", 0, -7.5]
},
"tail_right3_rotation": {
"rotation": ["10+math.sin(q.anim_time*90*1-60)*-0.5", 0, 0]
},
"tail_right3_2": {
"rotation": ["22.577335588+math.sin(q.anim_time*90*1-120)*-1", -4.61854, -1.91757]
},
"tail_right3_3": {
"rotation": ["10+math.sin(q.anim_time*90*1-180)*-1", 0, 0]
},
"tail_right3_4": {
"rotation": ["-30+math.sin(q.anim_time*90*1-240)*-4", 0, 0]
},
"tail_right3_5": {
"rotation": ["-27.860824367+math.sin(q.anim_time*90*1-300)*-6", 8.86042, -4.65468]
},
"tail_right3_6": {
"rotation": ["-43.1852829+math.sin(q.anim_time*90*1-300)*-6", -9.18229, 8.51814]
},
"tail_right3_7": {
"rotation": ["35.413183453+math.sin(q.anim_time*90*1-360)*-12", -8.17773, -5.77509]
},
"tail_left4_rotation": {
"rotation": ["-0+math.sin(q.anim_time*90*1-60)*-0.5", 10, 0]
},
"tail_left4_2": {
"rotation": ["17.5+math.sin(q.anim_time*90*1-120)*-1", 0, 0]
},
"tail_left4_3": {
"rotation": ["20.4458201+math.sin(q.anim_time*90*1-180)*-2", -11.73507, -4.3361]
},
"tail_left4_4": {
"rotation": ["-41.341977449+math.sin(q.anim_time*90*1-240)*-4", -13.31791, 11.45696]
},
"tail_left4_5": {
"rotation": ["-35.413183453+math.sin(q.anim_time*90*1-300)*-6", 8.17773, -5.77509]
},
"tail_left4_6": {
"rotation": ["39.711284319+math.sin(q.anim_time*90*1-360)*-12", 17.67415, 14.15251]
},
"tail_right4_rotation": {
"rotation": ["-0+math.sin(q.anim_time*90*1-60)*-0.5", -10, 0]
},
"tail_right4_2": {
"rotation": ["17.5+math.sin(q.anim_time*90*1-120)*-1", 0, 0]
},
"tail_right4_3": {
"rotation": ["20.4458201+math.sin(q.anim_time*90*1-180)*-2", 11.73507, 4.3361]
},
"tail_right4_4": {
"rotation": ["-41.341977449+math.sin(q.anim_time*90*1-240)*-4", 13.31791, -11.45696]
},
"tail_right4_5": {
"rotation": ["-35.413183453+math.sin(q.anim_time*90*1-300)*-6", -8.17773, 5.77509]
},
"tail_right4_6": {
"rotation": ["39.711284319+math.sin(q.anim_time*90*1-360)*-12", -17.67415, -14.15251]
},
"neck_fur_front": {
"rotation": ["-0+math.sin(q.anim_time*90*1-60)*-1", 0, 0]
},
"neck_fur_front2": {
"rotation": ["-0+math.sin(q.anim_time*90*1-90)*2", 0, 0]
},
"neck_fur_front3": {
"rotation": ["-0+math.sin(q.anim_time*90*1-120)*2", 0, 0]
},
"ear_left": {
"rotation": ["-0+math.sin(q.anim_time*90*1-120)*1", 0, "0-math.sin(q.anim_time*90*1-30)*2"]
},
"ear_right": {
"rotation": ["-0+math.sin(q.anim_time*90*1-120)*1", 0, "-0+math.sin(q.anim_time*90*1-30)*2"]
},
"hair": {
"rotation": ["-0+math.sin(q.anim_time*90*1-150)*2", 0, 0]
},
"hair_detail": {
"rotation": ["-0+math.sin(q.anim_time*90*1-180)*1", 0, 0]
},
"hair_detail2": {
"rotation": ["-0+math.sin(q.anim_time*90*1-240)*1", 0, 0]
},
"hair_back_bottom": {
"rotation": ["-0+math.sin(q.anim_time*90*1-320)*2", 0, 0]
}
}
},
"animation.ninetales.base": {
"loop": true,
"bones": {
"body": {
@@ -582,6 +276,64 @@
}
}
},
"animation.ninetales.cry": {
"animation_length": 1,
"bones": {
"mouth": {
"position": {
"0.0": [0, 0, 0],
"0.25": [0, -0.0999, -0.00436],
"0.75": [0, -0.0999, -0.00436],
"1.0": [0, 0, 0]
}
},
"head": {
"rotation": {
"0.0": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"0.25": {
"post": [-15, 0, 0],
"lerp_mode": "catmullrom"
},
"0.6667": {
"post": [-15, 0, 0],
"lerp_mode": "catmullrom"
},
"0.9167": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
}
}
},
"jaw": {
"rotation": {
"0.0": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"0.25": {
"post": [65, 0, 0],
"lerp_mode": "catmullrom"
},
"0.75": {
"post": [65, 0, 0],
"lerp_mode": "catmullrom"
},
"1.0": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
}
}
}
},
"sound_effects": {
"0.0": {
"effect": "pokemon.ninetales.cry"
}
}
},
"animation.ninetales.blink": {
"animation_length": 0.1667,
"bones": {
@@ -661,164 +413,6 @@
"position": [-0.1, 0, -0.1]
}
}
},
"animation.ninetales.cry": {
"animation_length": 2,
"bones": {
"torso": {
"rotation": {
"0.0": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"0.25": {
"post": [1, 0, 0],
"lerp_mode": "catmullrom"
},
"0.5": {
"post": [-2, 0, 0],
"lerp_mode": "catmullrom"
},
"1.3333": {
"post": [-4, 0, 0],
"lerp_mode": "catmullrom"
},
"1.6667": {
"post": [-0.5, 0, 0],
"lerp_mode": "catmullrom"
},
"2.0": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
}
}
},
"neck2": {
"rotation": {
"0.0": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"0.2083": {
"post": [2.5, 0, 0],
"lerp_mode": "catmullrom"
},
"0.4167": {
"post": [-5, 0, 0],
"lerp_mode": "catmullrom"
},
"1.25": {
"post": [-7.5, 0, 0],
"lerp_mode": "catmullrom"
},
"1.625": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"2.0": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
}
}
},
"head_rotation": {
"rotation": {
"0.0": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"0.2083": {
"post": [5, 0, 0],
"lerp_mode": "catmullrom"
},
"0.4583": {
"post": [-22.5, 0, 0],
"lerp_mode": "catmullrom"
},
"1.25": {
"post": [-27, 0, 0],
"lerp_mode": "catmullrom"
},
"1.625": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"2.0": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
}
}
},
"eyelid_left": {
"position": {
"0.0": [0, 0, 0],
"0.3333": {"pre": [0, 0, 0], "post": [0.1, 0, -0.1]},
"1.5": {"pre": [0.1, 0, -0.1], "post": [0, 0, 0]}
}
},
"eyelid_right": {
"position": {
"0.0": [0, 0, 0],
"0.3333": {"pre": [0, 0, 0], "post": [-0.1, 0, -0.1]},
"1.5": {"pre": [-0.1, 0, -0.1], "post": [0, 0, 0]}
}
},
"jaw": {
"rotation": {
"0.2917": {
"pre": [0, 0, 0],
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"0.5": {
"post": [47.5, 0, 0],
"lerp_mode": "catmullrom"
},
"1.25": {
"post": [20, 0, 0],
"lerp_mode": "catmullrom"
},
"1.5417": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
}
},
"position": [0, 0, 0]
},
"hair": {
"rotation": {
"0.0": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"0.1667": {
"post": [10, 0, 0],
"lerp_mode": "catmullrom"
},
"0.5": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"1.1667": {
"post": [-2.5, 0, 0],
"lerp_mode": "catmullrom"
},
"1.625": {
"post": [5, 0, 0],
"lerp_mode": "catmullrom"
},
"2.0": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
}
}
}
},
"sound_effects": {
"0.3333": {
"effect": "pokemon.ninetales.cry"
}
}
}
}
}
@@ -1,7 +1,7 @@
{
"format_version": "1.8.0",
"animations": {
"animation.ninetales_alolan.base": {
"animation.ninetales_alolan.ground_idle": {
"loop": true,
"bones": {
"body": {
@@ -381,411 +381,61 @@
}
}
},
"animation.ninetales_alolan.ground_idle": {
"loop": true,
"animation.ninetales_alolan.cry": {
"animation_length": 1,
"bones": {
"body": {
"position": [0, -0.25, 0]
},
"torso": {
"rotation": ["2.5+math.sin(q.anim_time*90*1-0)*0.5", 0, "0-math.sin(q.anim_time*90*0.5-30)*0.5"]
},
"chest": {
"rotation": ["-5+math.sin(q.anim_time*90*1-30)*0.5", 0, 0]
},
"neck": {
"rotation": ["-10+math.sin(q.anim_time*90*1-60)*1", 0, 0]
},
"neck2": {
"rotation": ["-10+math.sin(q.anim_time*90*1-90)*0.5", 0, 0]
},
"head_rotation": {
"rotation": ["14.54701+math.sin(q.anim_time*90*1-90)*-2", -3.59452, "0.40543-math.sin(q.anim_time*90*1-120)*-0.5"]
},
"hair": {
"rotation": ["13.75153+math.sin(q.anim_time*90*1-90)*1", 7.26228, 1.47729]
},
"hair2": {
"rotation": ["-12.54624+math.sin(q.anim_time*90*1-120)*2", 4.88119, -1.08482]
},
"hair3": {
"rotation": ["-24.58726+math.sin(q.anim_time*90*1-180)*2", -15.69466, 1.78427]
},
"hair4": {
"rotation": ["3.48303+math.sin(q.anim_time*90*1-240)*4", -24.77164, -8.26511]
},
"hair5": {
"rotation": ["-7.97337+math.sin(q.anim_time*90*1-300)*8", -59.03741, 4.53051]
},
"hair_bottom": {
"rotation": ["7.5+math.sin(q.anim_time*90*1-360)*12", 0, 0]
},
"hair_bottom2": {
"rotation": ["-27.70212+math.sin(q.anim_time*90*1-420)*18", -6.64851, 3.47875]
},
"hair_bottom3": {
"rotation": ["25.56145+math.sin(q.anim_time*90*1-480)*24", -27.51235, -12.45891]
},
"hair6": {
"rotation": ["7.5+math.sin(q.anim_time*90*1-360)*12", 0, 0]
},
"hair7": {
"rotation": ["-40.98084+math.sin(q.anim_time*90*1-420)*18", -11.43563, 9.77243]
},
"hair8": {
"rotation": ["30.86748+math.sin(q.anim_time*90*1-480)*24", -12.95254, -7.63074]
},
"tail": {
"rotation": [0, 0, 0]
},
"tail_middle_rotation": {
"rotation": ["65+math.sin(q.anim_time*90*1-60)*-0.5", 0, 0]
},
"tail_middle2": {
"rotation": ["-7.5+math.sin(q.anim_time*90*1-120)*-1", 0, 0]
},
"tail_middle3": {
"rotation": ["-25+math.sin(q.anim_time*90*1-180)*-2", 0, 0]
},
"tail_middle4": {
"rotation": ["-30+math.sin(q.anim_time*90*1-240)*-4", 0, 0]
},
"tail_middle5": {
"rotation": ["-25+math.sin(q.anim_time*90*1-300)*-6", 0, 0]
},
"tail_middle6": {
"rotation": ["-12.62353+math.sin(q.anim_time*90*1-360)*-12", 7.24305, -1.95155]
},
"tail_middle7": {
"rotation": ["-31.18939+math.sin(q.anim_time*90*1-400)*-12", -15.09492, 8.95891]
},
"tail_middle8": {
"rotation": ["15.22074+math.sin(q.anim_time*90*1-460)*-12", 9.65594, 2.61298]
},
"tail_middle9": {
"rotation": ["-20+math.sin(q.anim_time*90*1-520)*-18", 0, 0]
},
"tail_left1_rotation": {
"rotation": ["64.2174+math.sin(q.anim_time*90*1-60)*-0.5", 8.98581, 12.04686]
},
"tail_left1_2": {
"rotation": ["-17.51565+math.sin(q.anim_time*90*1-120)*-1", -2.38422, 0.7522]
},
"tail_left1_3": {
"rotation": ["-10.03742+math.sin(q.anim_time*90*1-180)*-2", -4.92385, 0.87038]
},
"tail_left1_4": {
"rotation": ["-37.52635+math.sin(q.anim_time*90*1-240)*-4", -1.98315, 1.52251]
},
"tail_left1_5": {
"rotation": ["-17.51565+math.sin(q.anim_time*90*1-300)*-6", -2.38422, 0.7522]
},
"tail_left1_6": {
"rotation": ["-25.08377+math.sin(q.anim_time*90*1-360)*-12", -4.53051, 2.11751]
},
"tail_left1_7": {
"rotation": ["-15.22074+math.sin(q.anim_time*90*1-400)*-12", 9.65594, -2.61298]
},
"tail_left1_8": {
"rotation": ["30.71983+math.sin(q.anim_time*90*1-460)*-12", -13.97399, -3.85625]
},
"tail_left1_9": {
"rotation": ["-42.24682+math.sin(q.anim_time*90*1-520)*-18", 17.04679, -14.9092]
},
"tail_left2_rotation": {
"rotation": ["63.58314+math.sin(q.anim_time*90*1-60)*-0.5", 11.98346, 41.65117]
},
"tail_left2_2": {
"rotation": ["-15.50409+math.sin(q.anim_time*90*1-120)*-1", -14.47751, 3.96713]
},
"tail_left2_3": {
"rotation": ["-9.9045+math.sin(q.anim_time*90*1-180)*-2", -2.61747, -1.08202]
},
"tail_left2_4": {
"rotation": ["-27.5209+math.sin(q.anim_time*90*1-240)*-4", -2.26564, 1.0571]
},
"tail_left2_5": {
"rotation": ["-30.09468+math.sin(q.anim_time*90*1-300)*-6", -4.32875, 2.50477]
},
"tail_left2_6": {
"rotation": ["-13.06681+math.sin(q.anim_time*90*1-360)*-12", 11.06861, -5.84485]
},
"tail_left2_7": {
"rotation": ["-25.08377+math.sin(q.anim_time*90*1-400)*-12", 4.53051, -2.11751]
},
"tail_left2_8": {
"rotation": ["21.88023+math.sin(q.anim_time*90*1-460)*-12", -23.39896, -9.06159]
},
"tail_left2_9": {
"rotation": ["-0+math.sin(q.anim_time*90*1-520)*-18", 25, 0]
},
"tail_left3": {
"rotation": [-7.34619, 17.12827, -7.84022]
},
"tail_left3_rotation": {
"rotation": ["76.5201+math.sin(q.anim_time*90*1-60)*-0.5", -21.21599, 70.91151]
},
"tail_left3_2": {
"rotation": ["-23.00013+math.sin(q.anim_time*90*1-120)*-1", -11.40209, 5.14995]
},
"tail_left3_3": {
"rotation": ["-10+math.sin(q.anim_time*90*1-180)*-2", 0, 0]
},
"tail_left3_4": {
"rotation": ["-20+math.sin(q.anim_time*90*1-240)*-4", 0, 0]
},
"tail_left3_5": {
"rotation": ["-30.02363+math.sin(q.anim_time*90*1-300)*-6", 2.16489, -1.2506]
},
"tail_left3_6": {
"rotation": ["-12.99008+math.sin(q.anim_time*90*1-360)*-12", 11.53486, -4.8493]
},
"tail_left3_7": {
"rotation": ["15+math.sin(q.anim_time*90*1-400)*-12", 20, 0]
},
"tail_left3_8": {
"rotation": ["-22.89875+math.sin(q.anim_time*90*1-460)*-12", -8.42145, 5.41207]
},
"tail_left3_9": {
"rotation": ["30+math.sin(q.anim_time*90*1-520)*-18", 22.5, 0]
},
"tail_left4_rotation": {
"rotation": ["83.07626+math.sin(q.anim_time*90*1-60)*-0.5", 7.16729, 88.89799]
},
"tail_left4_2": {
"rotation": ["-28.3693+math.sin(q.anim_time*90*1-120)*-1", -12.72029, 8.00075]
},
"tail_left4_3": {
"rotation": ["-12.60443+math.sin(q.anim_time*90*1-180)*-2", -7.32123, 1.63219]
},
"tail_left4_4": {
"rotation": ["-15.04624+math.sin(q.anim_time*90*1-240)*-4", -4.88119, 1.08482]
},
"tail_left4_5": {
"rotation": ["-29.41237+math.sin(q.anim_time*90*1-300)*-6", -2.14804, -1.84068]
},
"tail_left4_6": {
"rotation": ["-9.14867+math.sin(q.anim_time*90*1-360)*-12", 20.70481, -9.00717]
},
"tail_left4_7": {
"rotation": ["-15+math.sin(q.anim_time*90*1-400)*-12", -2.5, 0]
},
"tail_left4_8": {
"rotation": ["10+math.sin(q.anim_time*90*1-460)*-12", 20, 0]
},
"tail_left4_9": {
"rotation": ["-0+math.sin(q.anim_time*90*1-520)*-18", -25, 0]
},
"tail_right1_rotation": {
"rotation": ["64.2174+math.sin(q.anim_time*90*1-60)*-0.5", -8.98581, -12.04686]
},
"tail_right1_2": {
"rotation": ["-17.51565+math.sin(q.anim_time*90*1-120)*-1", 2.38422, -0.7522]
},
"tail_right1_3": {
"rotation": ["-10.03742+math.sin(q.anim_time*90*1-180)*-2", 4.92385, -0.87038]
},
"tail_right1_4": {
"rotation": ["-37.52635+math.sin(q.anim_time*90*1-240)*-4", 1.98315, -1.52251]
},
"tail_right1_5": {
"rotation": ["-17.51565+math.sin(q.anim_time*90*1-300)*-6", 2.38422, -0.7522]
},
"tail_right1_6": {
"rotation": ["-25.08377+math.sin(q.anim_time*90*1-360)*-12", 4.53051, -2.11751]
},
"tail_right1_7": {
"rotation": ["-15.22074+math.sin(q.anim_time*90*1-400)*-12", -9.65594, 2.61298]
},
"tail_right1_8": {
"rotation": ["30.71983+math.sin(q.anim_time*90*1-460)*-12", 13.97399, 3.85625]
},
"tail_right1_9": {
"rotation": ["-42.24682+math.sin(q.anim_time*90*1-520)*-18", -17.04679, 14.9092]
},
"tail_right2_rotation": {
"rotation": ["63.58314+math.sin(q.anim_time*90*1-60)*-0.5", -11.98346, -41.65117]
},
"tail_right2_2": {
"rotation": ["-15.50409+math.sin(q.anim_time*90*1-60)*-0.5", 14.47751, -3.96713]
},
"tail_right2_3": {
"rotation": ["-9.9045+math.sin(q.anim_time*90*1-180)*-2", 2.61747, 1.08202]
},
"tail_right2_4": {
"rotation": ["-27.5209+math.sin(q.anim_time*90*1-240)*-4", 2.26564, -1.0571]
},
"tail_right2_5": {
"rotation": ["-30.09468+math.sin(q.anim_time*90*1-300)*-6", 4.32875, -2.50477]
},
"tail_right2_6": {
"rotation": ["-13.06681+math.sin(q.anim_time*90*1-360)*-12", -11.06861, 5.84485]
},
"tail_right2_7": {
"rotation": ["-25.08377+math.sin(q.anim_time*90*1-400)*-12", -4.53051, 2.11751]
},
"tail_right2_8": {
"rotation": ["21.88023+math.sin(q.anim_time*90*1-460)*-12", 23.39896, 9.06159]
},
"tail_right2_9": {
"rotation": ["-0+math.sin(q.anim_time*90*1-520)*-18", -25, 0]
},
"leg_front_left": {
"rotation": ["-4.99527+math.sin(q.anim_time*90*1-0)*-1", 0.21782, 2.4905],
"position": [0, "0-math.sin(q.anim_time*90*1-0)*0.025", "0-math.sin(q.anim_time*90*1-0)*-0.15"]
},
"leg_front_left2": {
"rotation": ["-5+math.sin(q.anim_time*90*1-0)*0.5", 0, 0]
},
"foot_front_left": {
"rotation": ["9.99067+math.sin(q.anim_time*90*1-0)*0.5", 0.43399, -2.46207]
},
"leg_back_left": {
"rotation": ["12.5048+math.sin(q.anim_time*90*1-0)*1", 1.93726, -2.22807],
"position": [0, "0-math.sin(q.anim_time*90*1-0)*0.2", "0-math.sin(q.anim_time*90*1-0)*0.25"]
},
"leg_back_left2": {
"rotation": ["-5+math.sin(q.anim_time*90*1-0)*1", 0, 0]
},
"leg_back_left3": {
"rotation": ["-2.49673+math.sin(q.anim_time*90*1-0)*-1", -0.12261, 0.03929]
},
"foot_back_left": {
"rotation": ["-5.00899+math.sin(q.anim_time*90*1-0)*-1", -0.3507, 2.5603]
},
"leg_front_right": {
"rotation": ["7.47178+math.sin(q.anim_time*90*1-0)*-1", 0.65182, -4.95744],
"position": [0, "0-math.sin(q.anim_time*90*1-0)*0.025", "0-math.sin(q.anim_time*90*1-0)*-0.15"]
},
"leg_front_right2": {
"rotation": ["-2.5+math.sin(q.anim_time*90*1-0)*0.5", 0, 0]
},
"foot_front_right": {
"rotation": ["-5+math.sin(q.anim_time*90*1-0)*0.5", 0, 5]
},
"leg_back_right": {
"rotation": ["-9.8369+math.sin(q.anim_time*90*1-0)*1", 5.47408, 1.12804],
"position": [0, "0-math.sin(q.anim_time*90*1-0)*0.2", "0-math.sin(q.anim_time*90*1-0)*0.25"]
},
"leg_back_right2": {
"rotation": ["5+math.sin(q.anim_time*90*1-0)*1", 0, 0]
},
"leg_back_right3": {
"rotation": ["-0+math.sin(q.anim_time*90*1-0)*-1", 0, 0]
},
"foot_back_right": {
"rotation": ["4.98247+math.sin(q.anim_time*90*1-0)*-1", 0.85481, -2.34941]
},
"tail_right3": {
"rotation": [-7.34619, -17.12827, 7.84022]
},
"tail_right3_rotation": {
"rotation": ["76.5201+math.sin(q.anim_time*90*1-60)*-0.5", 21.21599, -70.91151]
},
"tail_right3_2": {
"rotation": ["-23.00013+math.sin(q.anim_time*90*1-120)*-1", 11.40209, -5.14995]
},
"tail_right3_3": {
"rotation": ["-10+math.sin(q.anim_time*90*1-180)*-2", 0, 0]
},
"tail_right3_4": {
"rotation": ["-20+math.sin(q.anim_time*90*1-240)*-4", 0, 0]
},
"tail_right3_5": {
"rotation": ["-30.02363+math.sin(q.anim_time*90*1-300)*-6", -2.16489, 1.2506]
},
"tail_right3_6": {
"rotation": ["-12.99008+math.sin(q.anim_time*90*1-360)*-12", -11.53486, 4.8493]
},
"tail_right3_7": {
"rotation": ["15+math.sin(q.anim_time*90*1-400)*-12", -20, 0]
},
"tail_right3_8": {
"rotation": ["-22.89875+math.sin(q.anim_time*90*1-460)*-12", 8.42145, -5.41207]
},
"tail_right3_9": {
"rotation": ["30+math.sin(q.anim_time*90*1-520)*-18", -22.5, 0]
},
"tail_right4_rotation": {
"rotation": ["83.07626+math.sin(q.anim_time*90*1-60)*-0.5", -7.16729, -88.89799]
},
"tail_right4_2": {
"rotation": ["-28.3693+math.sin(q.anim_time*90*1-120)*-1", 12.72029, -8.00075]
},
"tail_right4_3": {
"rotation": ["-12.60443+math.sin(q.anim_time*90*1-180)*-2", 7.32123, -1.63219]
},
"tail_right4_4": {
"rotation": ["-15.04624+math.sin(q.anim_time*90*1-240)*-4", 4.88119, -1.08482]
},
"tail_right4_5": {
"rotation": ["-29.41237+math.sin(q.anim_time*90*1-300)*-6", 2.14804, 1.84068]
},
"tail_right4_6": {
"rotation": ["-9.14867+math.sin(q.anim_time*90*1-360)*-12", -20.70481, 9.00717]
},
"tail_right4_7": {
"rotation": ["-15+math.sin(q.anim_time*90*1-400)*-12", 2.5, 0]
},
"tail_right4_8": {
"rotation": ["10+math.sin(q.anim_time*90*1-460)*-12", -20, 0]
},
"tail_right4_9": {
"rotation": ["-0+math.sin(q.anim_time*90*1-520)*-18", 25, 0]
},
"hair_left": {
"rotation": [0, -17.5, "55+math.sin(q.anim_time*90*1-120)*2"]
},
"hair_left2": {
"rotation": [-1.6575, 12.39135, "9.82005+math.sin(q.anim_time*90*1-180)*4"]
},
"hair_left3": {
"rotation": [8.00384, 21.21629, "20.75164+math.sin(q.anim_time*90*1-240)*8"]
},
"hair_left4": {
"rotation": [7.90373, -21.34916, "-15.85201+math.sin(q.anim_time*90*1-300)*18"]
},
"hair_left5": {
"rotation": [-6.42784, -34.18333, "7.10385+math.sin(q.anim_time*90*1-360)*24"]
},
"hair_right": {
"rotation": [0, 17.5, "-55-math.sin(q.anim_time*90*1-120)*2"]
},
"hair_right2": {
"rotation": [-1.6575, -12.39135, "-9.82005-math.sin(q.anim_time*90*1-180)*4"]
},
"hair_right3": {
"rotation": [8.00384, -21.21629, "-20.75164-math.sin(q.anim_time*90*1-240)*8"]
},
"hair_right4": {
"rotation": [7.90373, 21.34916, "15.85201-math.sin(q.anim_time*90*1-300)*18"]
},
"hair_right5": {
"rotation": [-6.42784, 34.18333, "-7.10385-math.sin(q.anim_time*90*1-360)*24"]
},
"neck_fur_front": {
"rotation": ["-0+math.sin(q.anim_time*90*1-60)*-1", 0, 0]
},
"neck_fur_front2": {
"rotation": ["-0+math.sin(q.anim_time*90*1-90)*2", 0, 0]
},
"neck_fur_front3": {
"rotation": ["-0+math.sin(q.anim_time*90*1-120)*2", 0, 0]
},
"neck_fur_left": {
"rotation": [0, 0, "0-math.sin(q.anim_time*90*1-90)*1"]
},
"neck_fur_right": {
"rotation": [0, 0, "-0+math.sin(q.anim_time*90*1-90)*1"]
},
"ear_left": {
"rotation": ["-0+math.sin(q.anim_time*90*1-120)*1", 0, "0-math.sin(q.anim_time*90*1-30)*2"]
},
"ear_right": {
"rotation": ["-0+math.sin(q.anim_time*90*1-120)*1", 0, "-0+math.sin(q.anim_time*90*1-30)*2"]
},
"hair_front": {
"rotation": ["-0+math.sin(q.anim_time*90*1-120)*2", 0, 0]
"mouth": {
"position": {
"0.0": [0, 0, 0],
"0.25": [0, -0.0999, -0.00436],
"0.75": [0, -0.0999, -0.00436],
"1.0": [0, 0, 0]
}
},
"head": {
"rotation": {
"0.0": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"0.25": {
"post": [-15, 0, 0],
"lerp_mode": "catmullrom"
},
"0.6667": {
"post": [-15, 0, 0],
"lerp_mode": "catmullrom"
},
"0.9167": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
}
}
},
"jaw": {
"rotation": {
"0.0": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"0.25": {
"post": [65, 0, 0],
"lerp_mode": "catmullrom"
},
"0.75": {
"post": [65, 0, 0],
"lerp_mode": "catmullrom"
},
"1.0": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
}
}
}
},
"sound_effects": {
"0.0": {
"effect": "pokemon.ninetales_alolan.cry"
}
}
},
@@ -868,176 +518,6 @@
"position": [-0.1, 0, -0.1]
}
}
},
"animation.ninetales_alolan.cry": {
"animation_length": 2,
"bones": {
"torso": {
"rotation": {
"0.0": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"0.25": {
"post": [1, 0, 0],
"lerp_mode": "catmullrom"
},
"0.5": {
"post": [-2, 0, 0],
"lerp_mode": "catmullrom"
},
"1.3333": {
"post": [-4, 0, 0],
"lerp_mode": "catmullrom"
},
"1.6667": {
"post": [-0.5, 0, 0],
"lerp_mode": "catmullrom"
},
"2.0": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
}
}
},
"neck2": {
"rotation": {
"0.0": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"0.2083": {
"post": [2.5, 0, 0],
"lerp_mode": "catmullrom"
},
"0.4167": {
"post": [-5, 0, 0],
"lerp_mode": "catmullrom"
},
"1.25": {
"post": [-7.5, 0, 0],
"lerp_mode": "catmullrom"
},
"1.625": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"2.0": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
}
}
},
"head_rotation": {
"rotation": {
"0.0": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"0.2083": {
"post": [5, 0, 0],
"lerp_mode": "catmullrom"
},
"0.4583": {
"post": [-22.5, 0, 0],
"lerp_mode": "catmullrom"
},
"1.25": {
"post": [-27, 0, 0],
"lerp_mode": "catmullrom"
},
"1.625": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"2.0": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
}
}
},
"eyelid_left": {
"position": {
"0.0": [0, 0, 0],
"0.3333": {
"pre": [0, 0, 0],
"post": [0.1, 0, -0.1]
},
"1.5": {
"pre": [0.1, 0, -0.1],
"post": [0, 0, 0]
}
}
},
"eyelid_right": {
"position": {
"0.0": [0, 0, 0],
"0.3333": {
"pre": [0, 0, 0],
"post": [-0.1, 0, -0.1]
},
"1.5": {
"pre": [-0.1, 0, -0.1],
"post": [0, 0, 0]
}
}
},
"jaw": {
"rotation": {
"0.2917": {
"pre": [0, 0, 0],
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"0.5": {
"post": [47.5, 0, 0],
"lerp_mode": "catmullrom"
},
"1.25": {
"post": [20, 0, 0],
"lerp_mode": "catmullrom"
},
"1.5417": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
}
},
"position": [0, 0, 0]
},
"hair": {
"rotation": {
"0.0": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"0.1667": {
"post": [10, 0, 0],
"lerp_mode": "catmullrom"
},
"0.5": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"1.1667": {
"post": [-2.5, 0, 0],
"lerp_mode": "catmullrom"
},
"1.625": {
"post": [5, 0, 0],
"lerp_mode": "catmullrom"
},
"2.0": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
}
}
}
},
"sound_effects": {
"0.3333": {
"effect": "pokemon.ninetales_alolan.cry"
}
}
}
}
}
@@ -21,12 +21,12 @@
"rotation": [0, -45, 0]
},
"tail": {
"rotation": ["50-math.sin(q.anim_time*90*2-60)*-3", 0, 0]
"rotation": [50, 0, 0]
},
"toe_front_inner_left": {
"toe_inner_left": {
"rotation": [0, 5, 0]
},
"toe_front_outer_left": {
"toe_outer_left": {
"rotation": [0, -5, 0]
},
"neckflap_left": {
@@ -44,372 +44,11 @@
},
"wing_right3": {
"rotation": [0, 45, 0]
},
"torso": {
"rotation": ["-math.sin(q.anim_time*90*2-90)*1", 0, "math.sin(q.anim_time*90*1-90)*1"],
"position": [0, "math.sin(q.anim_time*90*2)*0.1", 0]
},
"neck": {
"rotation": ["-0-math.sin(q.anim_time*90*2-180)*1", 0, 0]
},
"head": {
"rotation": ["-0-math.sin(q.anim_time*90*2-90)*-2", 0, 0]
},
"hair": {
"rotation": ["-0-math.sin(q.anim_time*90*2-150)*-2", 0, 0]
}
}
},
"animation.squawkabilly.ground_walk": {
"loop": true,
"animation_length": 0.75,
"bones": {
"hairstrand": {
"rotation": [7.5, 0, 12.5]
},
"hairstrand2": {
"rotation": [-17.5, 0, 0]
},
"wing_left": {
"rotation": [155.5391, -73.26807, -64.02788],
"position": [0, -1.5, -2]
},
"wing_left2": {
"rotation": [0, 45, 0]
},
"wing_left3": {
"rotation": [0, -45, 0]
},
"tail": {
"rotation": ["50-math.cos(q.anim_time*90*16/3*2)*5", 0, 0]
},
"toe_front_inner_left": {
"rotation": {
"0.0": [-55, 10, -7.5],
"0.125": {
"pre": [7.5, 15, 0],
"post": [7.5, 15, 0],
"lerp_mode": "catmullrom"
},
"0.25": {
"post": [5, 15, 0],
"lerp_mode": "catmullrom"
},
"0.375": [0, 15, 0],
"0.625": [0, 15, 0],
"0.75": [-55, 10, -7.5]
},
"position": {
"0.0": [0, -0.75, 0.85],
"0.125": [0, 0, 0],
"0.625": [0, 0, 0],
"0.75": [0, -0.75, 0.85]
}
},
"toe_front_outer_left": {
"rotation": {
"0.0": [-51.5, -2.5, 10],
"0.125": {
"pre": [5, -15, 0],
"post": [5, -15, 0],
"lerp_mode": "catmullrom"
},
"0.25": {
"post": [5, -15, 0],
"lerp_mode": "catmullrom"
},
"0.375": [0, -15, 0],
"0.625": [0, -15, 0],
"0.75": [-51.5, -2.5, 10]
},
"position": {
"0.0": [0, -0.75, 0.85],
"0.125": [0, 0, 0],
"0.625": [0, 0, 0],
"0.75": [0, -0.75, 0.85]
}
},
"neckflap_left": {
"rotation": [0, 0, "15+math.cos(q.anim_time*90*16/3*2-60)*-2.5"]
},
"neckflap_right": {
"rotation": [0, 0, "-15-math.cos(q.anim_time*90*16/3*2-60)*-2.5"]
},
"wing_right": {
"rotation": [153.0391, 73.26807, 64.02788],
"position": [0, -2, -3]
},
"wing_right2": {
"rotation": [0, -45, 0]
},
"wing_right3": {
"rotation": [0, 45, 0]
},
"torso": {
"rotation": ["1-math.cos(q.anim_time*90*16/3*2)*-2", "-math.sin(q.anim_time*90*16/3+60)*3", "-1+math.sin(q.anim_time*90*16/3+30)*-4"],
"position": [0, "math.sin(q.anim_time*90*16/3*2)*0.2", 0]
},
"coat_left": {
"rotation": ["-0-math.cos(q.anim_time*90*16/3*2)*-2.5", 0, "0+math.cos(q.anim_time*90*8/3*2)*5"]
},
"coat_right": {
"rotation": ["-0-math.cos(q.anim_time*90*16/3*2)*-2.5", 0, "0-math.cos(q.anim_time*90*8/3*2)*-5"]
},
"neck": {
"rotation": ["-math.cos(q.anim_time*90*16/3*2)*-2.5", "-math.sin(q.anim_time*90*16/3+60)*-3", "math.sin(q.anim_time*90*16/3+30)*3"]
},
"head": {
"rotation": ["-0-math.cos(q.anim_time*90*16/3*2)*3", 0, 0]
},
"hair": {
"rotation": ["-0-math.cos(q.anim_time*90*16/3*2-60)*4", 0, 0]
},
"leg_left": {
"rotation": {
"0.0": [25, -17.5, 0],
"0.125": {
"pre": [21.25, -12.5, 0],
"post": [21.25, -12.5, 0],
"lerp_mode": "catmullrom"
},
"0.375": [-40, -5, 0],
"0.75": [25, -17.5, 0]
},
"position": {
"0.0": [0.3, 0.1, 0.6],
"0.0417": [0.23, 0.25, 0.71],
"0.125": {
"pre": [0, 0.68, -0.08],
"post": [0, 0.68, -0.08],
"lerp_mode": "catmullrom"
},
"0.25": {
"post": [0, 0.97, -1.41],
"lerp_mode": "catmullrom"
},
"0.375": [0, -0.5, -2.15],
"0.5": [0, -0.19, -1.02],
"0.5833": [0, -0.07, -0.3],
"0.625": [0, -0.02, 0.21],
"0.7083": [0.1, 0.215, 0.43],
"0.75": [0.3, 0.1, 0.6]
}
},
"leg_left2": {
"rotation": {
"0.0": [0, 0, 0],
"0.125": {
"pre": [-30.83, 0, 0],
"post": [-30.83, 0, 0],
"lerp_mode": "catmullrom"
},
"0.25": {
"post": [-2.65, 0, 0],
"lerp_mode": "catmullrom"
},
"0.375": [12.5, 0, 0],
"0.75": [0, 0, 0]
}
},
"foot_left": {
"rotation": {
"0.0": [27.5, 0, -5],
"0.125": {
"pre": [20.17, 0, 0],
"post": [20.17, 0, 0],
"lerp_mode": "catmullrom"
},
"0.25": {
"post": [12.596, 0.6637, -1.3486],
"lerp_mode": "catmullrom"
},
"0.375": [28, 0, 0],
"0.625": [-7.33, 0, 0],
"0.75": [27.5, 0, -5]
},
"position": {
"0.0": [0, 0.25, 0],
"0.125": [0, 0, 0],
"0.375": [0, 0, 0],
"0.625": [0, 0.17, 0],
"0.75": [0, 0.25, 0]
}
},
"toe_back_outer_left": {
"rotation": {
"0.0": [-20, 0, 0],
"0.2083": {
"pre": [-8.33, 0, 0],
"post": [-8.33, 0, 0],
"lerp_mode": "catmullrom"
},
"0.375": [0, 0, 0],
"0.625": [0, 0, 0],
"0.75": [-20, 0, 0]
}
},
"leg_right": {
"rotation": {
"0.0": [-40, 5, 0],
"0.375": [25, 17.5, 0],
"0.5": {
"pre": [21.25, 12.5, 0],
"post": [21.25, 12.5, 0],
"lerp_mode": "catmullrom"
},
"0.75": [-40, 5, 0]
},
"position": {
"0.0": [0, -0.5, -2.15],
"0.125": [0, -0.19, -1.02],
"0.2083": [0, -0.07, -0.3],
"0.25": [0, -0.02, 0.21],
"0.3333": [-0.1, 0.215, 0.43],
"0.375": [-0.3, 0.1, 0.6],
"0.4167": [-0.23, 0.25, 0.71],
"0.5": {
"pre": [0, 0.68, -0.08],
"post": [0, 0.68, -0.08],
"lerp_mode": "catmullrom"
},
"0.625": {
"post": [0, 0.97, -1.41],
"lerp_mode": "catmullrom"
},
"0.75": [0, -0.5, -2.15]
}
},
"leg_right2": {
"rotation": {
"0.0": [12.5, 0, 0],
"0.375": [0, 0, 0],
"0.5": {
"pre": [-30.83, 0, 0],
"post": [-30.83, 0, 0],
"lerp_mode": "catmullrom"
},
"0.625": {
"post": [-2.65, 0, 0],
"lerp_mode": "catmullrom"
},
"0.75": [12.5, 0, 0]
}
},
"foot_right": {
"rotation": {
"0.0": [28, 0, 0],
"0.25": [-7.33, 0, 0],
"0.375": [27.5, 0, 5],
"0.5": {
"pre": [20.17, 0, 0],
"post": [20.17, 0, 0],
"lerp_mode": "catmullrom"
},
"0.625": {
"post": [12.596, -0.6637, 1.3486],
"lerp_mode": "catmullrom"
},
"0.75": [28, 0, 0]
},
"position": {
"0.0": [0, 0, 0],
"0.25": [0, 0.17, 0],
"0.375": [0, 0.25, 0],
"0.5": [0, 0, 0],
"0.75": [0, 0, 0]
}
},
"toe_back_inner_right": {
"rotation": {
"0.0": [0, 0, 0],
"0.25": [0, 0, 0],
"0.375": [-20, 0, 0],
"0.5833": {
"pre": [-8.33, 0, 0],
"post": [-8.33, 0, 0],
"lerp_mode": "catmullrom"
},
"0.75": [0, 0, 0]
}
},
"toe_front_inner_right": {
"rotation": {
"0.0": [0, -15, 0],
"0.25": [0, -15, 0],
"0.375": [-55, -10, 7.5],
"0.5": {
"pre": [7.5, -15, 0],
"post": [7.5, -15, 0],
"lerp_mode": "catmullrom"
},
"0.625": {
"post": [5, -15, 0],
"lerp_mode": "catmullrom"
},
"0.75": [0, -15, 0]
},
"position": {
"0.0": [0, 0, 0],
"0.25": [0, 0, 0],
"0.375": [0, -0.75, 0.85],
"0.5": [0, 0, 0],
"0.75": [0, 0, 0]
}
},
"toe_front_outer_right": {
"rotation": {
"0.0": [0, 15, 0],
"0.25": [0, 15, 0],
"0.375": [-51.5, 2.5, -10],
"0.5": {
"pre": [5, 15, 0],
"post": [5, 15, 0],
"lerp_mode": "catmullrom"
},
"0.625": {
"post": [5, 15, 0],
"lerp_mode": "catmullrom"
},
"0.75": [0, 15, 0]
},
"position": {
"0.0": [0, 0, 0],
"0.25": [0, 0, 0],
"0.375": [0, -0.75, 0.85],
"0.5": [0, 0, 0],
"0.75": [0, 0, 0]
}
},
"toe_back_inner_left": {
"rotation": {
"0.0": [-20, 0, 0],
"0.2083": {
"pre": [-8.33, 0, 0],
"post": [-8.33, 0, 0],
"lerp_mode": "catmullrom"
},
"0.375": [0, 0, 0],
"0.625": [0, 0, 0],
"0.75": [-20, 0, 0]
}
},
"toe_back_inner_right3": {
"rotation": {
"0.0": [0, 0, 0],
"0.25": [0, 0, 0],
"0.375": [-20, 0, 0],
"0.5833": {
"pre": [-8.33, 0, 0],
"post": [-8.33, 0, 0],
"lerp_mode": "catmullrom"
},
"0.75": [0, 0, 0]
}
}
}
},
"animation.squawkabilly.cry": {
"animation_length": 2,
"animation_length": 1.25,
"bones": {
"neck": {
"rotation": {
@@ -417,27 +56,15 @@
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"0.25": {
"post": [12.5, 0, 0],
"0.1667": {
"post": [10, 0, 0],
"lerp_mode": "catmullrom"
},
"0.5": {
"post": [2.5, 0, 0],
"lerp_mode": "catmullrom"
},
"0.8333": {
"post": [8.33, 0, 0],
"0.9167": {
"post": [10, 0, 0],
"lerp_mode": "catmullrom"
},
"1.25": {
"post": [-2.5, 0, 0],
"lerp_mode": "catmullrom"
},
"1.5": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"1.9167": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
}
@@ -449,27 +76,15 @@
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"0.25": {
"post": [7.5, 0, 0],
"0.1667": {
"post": [-15, 0, 0],
"lerp_mode": "catmullrom"
},
"0.5": {
"post": [-20, 0, 0],
"lerp_mode": "catmullrom"
},
"0.8333": {
"post": [-12.78, 0, 0],
"0.9167": {
"post": [-15, 0, 0],
"lerp_mode": "catmullrom"
},
"1.25": {
"post": [-27.5, 0, 0],
"lerp_mode": "catmullrom"
},
"1.5": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"1.75": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
}
@@ -481,116 +96,17 @@
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"0.25": {
"0.1667": {
"post": [25, 0, 0],
"lerp_mode": "catmullrom"
},
"0.5": {
"post": [47.5, 0, 0],
"lerp_mode": "catmullrom"
},
"0.8333": {
"post": [20, 0, 0],
"lerp_mode": "catmullrom"
},
"1.25": {
"post": [62.5, 0, 0],
"lerp_mode": "catmullrom"
},
"1.5": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
}
}
},
"torso": {
"rotation": {
"0.0": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"0.25": {
"post": [5, 0, 0],
"lerp_mode": "catmullrom"
},
"0.5833": {
"post": [-7.5, 0, 0],
"lerp_mode": "catmullrom"
},
"0.8333": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"1.25": {
"post": [-5, 0, 0],
"lerp_mode": "catmullrom"
},
"1.5833": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"1.9167": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
}
}
},
"hair": {
"rotation": {
"0.0833": {
"pre": [0, 0, 0],
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"0.3333": {
"post": [7.5, 0, 0],
"lerp_mode": "catmullrom"
},
"0.5833": {
"post": [-20, 0, 0],
"lerp_mode": "catmullrom"
},
"0.9167": {
"post": [-12.78, 0, 0],
"post": [25, 0, 0],
"lerp_mode": "catmullrom"
},
"1.3333": {
"post": [-27.5, 0, 0],
"lerp_mode": "catmullrom"
},
"1.5833": {
"1.25": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"1.8333": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
}
}
},
"eyelid_left": {
"position": {
"0.0": [0, 0, 0],
"0.8333": {
"pre": [0, 0, 0],
"post": [0.1, 0, -0.1]
},
"1.0": {
"pre": [0.1, 0, -0.1],
"post": [0, 0, 0]
}
}
},
"eyelid_right": {
"position": {
"0.0": [0, 0, 0],
"0.8333": {
"pre": [0, 0, 0],
"post": [-0.1, 0, -0.1]
},
"1.0": {
"pre": [-0.1, 0, -0.1],
"post": [0, 0, 0]
}
}
}
@@ -610,205 +126,18 @@
"eyelid_left": {
"position": {
"0.0": [0.1, 0, -0.1],
"0.1667": {
"pre": [0.1, 0, -0.1],
"post": [0, 0, 0]
}
"0.125": [0.1, 0, -0.1],
"0.1667": [0, 0, 0]
}
},
"eyelid_right": {
"position": {
"0.0": [-0.1, 0, -0.1],
"0.1667": {
"pre": [-0.1, 0, -0.1],
"post": [0, 0, 0]
}
"0.125": [-0.1, 0, -0.1],
"0.1667": [0, 0, 0]
}
}
}
},
"animation.squawkabilly.air_idle": {
"loop": true,
"animation_length": 4,
"bones": {
"body": {
"position": ["-math.sin(q.anim_time*90*3-45)*0.5", "math.sin(q.anim_time*90*6-45)*1.5", "math.sin(q.anim_time*90*6-45)*1/2"]
},
"coat_left": {
"rotation": ["-0-math.sin(q.anim_time*90*6-60)*3", 0, "0+math.sin(q.anim_time*90*6-90)*5"]
},
"coat_right": {
"rotation": ["-0-math.sin(q.anim_time*90*6-60)*3", 0, "-0-math.sin(q.anim_time*90*6-90)*5"]
},
"wing_left": {
"rotation": ["25-math.sin(q.anim_time*90*6-90)*6", 0, "math.sin(q.anim_time*90*6)*65"],
"position": [0, "math.sin(q.anim_time*90*6)*-1", 0]
},
"wing_left2": {
"rotation": [0, 0, "20+math.sin(q.anim_time*90*6-45)*30"]
},
"wing_left3": {
"rotation": [0, 0, "0+math.sin(q.anim_time*90*6-75)*30"]
},
"wing_right": {
"rotation": ["25-math.sin(q.anim_time*90*6-90)*6", 0, "-math.sin(q.anim_time*90*6)*65"],
"position": [0, "math.sin(q.anim_time*90*6)*-1", 0]
},
"wing_right2": {
"rotation": [0, 0, "-20-math.sin(q.anim_time*90*6-45)*30"]
},
"wing_right3": {
"rotation": [0, 0, "-0-math.sin(q.anim_time*90*6-75)*30"]
},
"tail": {
"rotation": ["15-math.sin(q.anim_time*90*6-30)*7", 0, 0]
},
"neck": {
"rotation": ["5-math.sin(q.anim_time*90*6-140)*-1", 0, "math.sin(q.anim_time*90*3-00)*-1"]
},
"head": {
"rotation": ["-math.sin(q.anim_time*90*6-110)*3", 0, "math.sin(q.anim_time*90*3-120)*-2"]
},
"hair": {
"rotation": ["-0-math.sin(q.anim_time*90*6-170)*5", 0, 0]
},
"leg_left": {
"rotation": [-67.5, 0, -2.5]
},
"foot_left": {
"rotation": ["40-math.sin(q.anim_time*90*6-30)*-5", -10, "math.sin(q.anim_time*90*3-150)*6"]
},
"toe_back_outer_left": {
"rotation": [-30, 0, 0]
},
"toe_front_inner_left": {
"rotation": [30, 0, 0]
},
"toe_front_outer_left": {
"rotation": [30, 0, 0]
},
"leg_right": {
"rotation": [-67.5, 0, 2.5]
},
"foot_right": {
"rotation": ["40-math.sin(q.anim_time*90*6-30)*-5", 10, "-math.sin(q.anim_time*90*3-150)*6"]
},
"toe_back_inner_right": {
"rotation": [-30, 0, 0]
},
"toe_front_inner_right": {
"rotation": [30, 0, 0]
},
"toe_front_outer_right": {
"rotation": [30, 0, 0]
},
"toe_back_inner_left": {
"rotation": [-30, 0, 0]
},
"toe_back_inner_right3": {
"rotation": [-30, 0, 0]
}
},
"timeline": {
"0.6667": "q.has_entity?{q.sound('animation.plumage.wing_flap.small');};",
"1.3333": "q.has_entity?{q.sound('animation.plumage.wing_flap.small');};",
"2.0": "q.has_entity?{q.sound('animation.plumage.wing_flap.small');};",
"2.6667": "q.has_entity?{q.sound('animation.plumage.wing_flap.small');};",
"3.3333": "q.has_entity?{q.sound('animation.plumage.wing_flap.small');};",
"4.0": "q.has_entity?{q.sound('animation.plumage.wing_flap.small');};"
}
},
"animation.squawkabilly.air_fly": {
"loop": true,
"animation_length": 4,
"bones": {
"body": {
"rotation": [25, 0, 0],
"position": ["-math.sin(q.anim_time*90*3-45)*0.5", "math.sin(q.anim_time*90*6-45)*1.5", "math.sin(q.anim_time*90*6-45)*1/2"]
},
"coat_left": {
"rotation": ["-0-math.sin(q.anim_time*90*6-60)*3", 0, "0+math.sin(q.anim_time*90*6-90)*5"]
},
"coat_right": {
"rotation": ["-0-math.sin(q.anim_time*90*6-60)*3", 0, "-0-math.sin(q.anim_time*90*6-90)*5"]
},
"wing_left": {
"rotation": ["-0-math.sin(q.anim_time*90*6-90)*6", -5, "math.sin(q.anim_time*90*6)*65"],
"position": [0, "math.sin(q.anim_time*90*6)*-1", 0]
},
"wing_left2": {
"rotation": [0, 0, "20+math.sin(q.anim_time*90*6-45)*30"]
},
"wing_left3": {
"rotation": [0, 0, "0+math.sin(q.anim_time*90*6-75)*30"]
},
"wing_right": {
"rotation": ["-0-math.sin(q.anim_time*90*6-90)*6", 5, "-math.sin(q.anim_time*90*6)*65"],
"position": [0, "math.sin(q.anim_time*90*6)*-1", 0]
},
"wing_right2": {
"rotation": [0, 0, "-20-math.sin(q.anim_time*90*6-45)*30"]
},
"wing_right3": {
"rotation": [0, 0, "-0-math.sin(q.anim_time*90*6-75)*30"]
},
"tail": {
"rotation": ["15-math.sin(q.anim_time*90*6-30)*7", 0, 0]
},
"neck": {
"rotation": ["25-math.sin(q.anim_time*90*6-140)*-1", 0, "math.sin(q.anim_time*90*3-00)*-1"]
},
"head": {
"rotation": ["-50-math.sin(q.anim_time*90*6-110)*3", 0, "math.sin(q.anim_time*90*3-120)*-2"]
},
"hair": {
"rotation": ["-0-math.sin(q.anim_time*90*6-170)*5", 0, 0]
},
"leg_left": {
"rotation": [-67.5, 0, -2.5]
},
"foot_left": {
"rotation": ["40-math.sin(q.anim_time*90*6-30)*-5", -10, "math.sin(q.anim_time*90*3-150)*6"]
},
"toe_back_outer_left": {
"rotation": [-30, 0, 0]
},
"toe_front_inner_left": {
"rotation": [30, 0, 0]
},
"toe_front_outer_left": {
"rotation": [30, 0, 0]
},
"leg_right": {
"rotation": [-67.5, 0, 2.5]
},
"foot_right": {
"rotation": ["40-math.sin(q.anim_time*90*6-30)*-5", 10, "-math.sin(q.anim_time*90*3-150)*6"]
},
"toe_back_inner_right": {
"rotation": [-30, 0, 0]
},
"toe_front_inner_right": {
"rotation": [30, 0, 0]
},
"toe_front_outer_right": {
"rotation": [30, 0, 0]
},
"toe_back_inner_left": {
"rotation": [-30, 0, 0]
},
"toe_back_inner_right3": {
"rotation": [-30, 0, 0]
}
},
"timeline": {
"0.6667": "q.has_entity?{q.sound('animation.plumage.wing_flap.small');};",
"1.3333": "q.has_entity?{q.sound('animation.plumage.wing_flap.small');};",
"2.0": "q.has_entity?{q.sound('animation.plumage.wing_flap.small');};",
"2.6667": "q.has_entity?{q.sound('animation.plumage.wing_flap.small');};",
"3.3333": "q.has_entity?{q.sound('animation.plumage.wing_flap.small');};",
"4.0": "q.has_entity?{q.sound('animation.plumage.wing_flap.small');};"
}
}
}
}
@@ -7,8 +7,8 @@
"texture_width": 256,
"texture_height": 128,
"visible_bounds_width": 6,
"visible_bounds_height": 5,
"visible_bounds_offset": [0, 1.5, 0]
"visible_bounds_height": 4,
"visible_bounds_offset": [0, 1, 0]
},
"bones": [
{
@@ -252,7 +252,7 @@
"name": "head_correction",
"parent": "head",
"pivot": [0, 14.25, -14],
"rotation": [42.5, 0, 0]
"rotation": [-42.5, 0, 0]
},
{
"name": "head_ai",
@@ -263,7 +263,6 @@
"name": "head_angle",
"parent": "head_ai",
"pivot": [0, 14.25, -15],
"rotation": [-90, 0, 0],
"cubes": [
{"origin": [-7, 3.5, -21.5], "size": [14, 15, 6], "inflate": 0.01, "uv": [0, 0]},
{"origin": [-7, 10.5, -15.5], "size": [14, 8, 3], "inflate": 0.01, "uv": [40, 0]},
@@ -266,41 +266,23 @@
]
},
{
"name": "toe_back_inner_left",
"name": "toe_back_left",
"parent": "foot_left",
"pivot": [0.75, 1.92365, 1.01519],
"rotation": [0, -12.5, 0],
"pivot": [1.25, 1.92365, 1.01519],
"cubes": [
{"origin": [0.75, -0.07635, 1.01519], "size": [0, 1, 1], "inflate": 0.01, "uv": [0, 18]}
{"origin": [1.25, -0.07635, 1.01519], "size": [0, 1, 1], "inflate": 0.01, "uv": [0, 18]}
]
},
{
"name": "toe_back_inner_left2",
"parent": "toe_back_inner_left",
"pivot": [0.75, 1.92365, 2.01519],
"name": "claw_back_left",
"parent": "toe_back_left",
"pivot": [1.25, 1.92365, 2.01519],
"cubes": [
{"origin": [0.75, -0.07635, 2.01519], "size": [0, 1, 1], "uv": [4, 14]}
{"origin": [1.25, -0.07635, 2.01519], "size": [0, 1, 1], "uv": [4, 14]}
]
},
{
"name": "toe_back_outer_left",
"parent": "foot_left",
"pivot": [1.75, 1.92365, 1.01519],
"rotation": [0, 12.5, 0],
"cubes": [
{"origin": [1.75, -0.07635, 1.01519], "size": [0, 1, 1], "inflate": 0.01, "uv": [0, 18]}
]
},
{
"name": "toe_back_outer_left2",
"parent": "toe_back_outer_left",
"pivot": [1.75, 1.92365, 2.01519],
"cubes": [
{"origin": [1.75, -0.07635, 2.01519], "size": [0, 1, 1], "uv": [4, 14]}
]
},
{
"name": "toe_front_inner_left",
"name": "toe_inner_left",
"parent": "foot_left",
"pivot": [1.25, 1.92365, -0.98481],
"rotation": [0, 12.5, 0],
@@ -309,15 +291,15 @@
]
},
{
"name": "toe_front_inner_left2",
"parent": "toe_front_inner_left",
"name": "claw_inner_left",
"parent": "toe_inner_left",
"pivot": [0.75, 1.92365, -1.98481],
"cubes": [
{"origin": [0.75, -0.07635, -2.98481], "size": [0, 1, 1], "uv": [4, 13]}
]
},
{
"name": "toe_front_outer_left",
"name": "toe_outer_left",
"parent": "foot_left",
"pivot": [1.25, 1.92365, -0.98481],
"rotation": [0, -12.5, 0],
@@ -326,8 +308,8 @@
]
},
{
"name": "toe_front_outer_left2",
"parent": "toe_front_outer_left",
"name": "claw_outer_left",
"parent": "toe_outer_left",
"pivot": [1.75, 1.92365, -1.98481],
"cubes": [
{"origin": [1.75, -0.07635, -2.98481], "size": [0, 1, 1], "uv": [4, 5]}
@@ -361,41 +343,23 @@
]
},
{
"name": "toe_back_inner_right",
"name": "toe_back_right",
"parent": "foot_right",
"pivot": [-0.75, 1.92365, 1.01519],
"rotation": [0, 12.5, 0],
"pivot": [-1.25, 1.92365, 1.01519],
"cubes": [
{"origin": [-0.75, -0.07635, 1.01519], "size": [0, 1, 1], "inflate": 0.01, "uv": [0, 5]}
{"origin": [-1.25, -0.07635, 1.01519], "size": [0, 1, 1], "inflate": 0.01, "uv": [0, 5]}
]
},
{
"name": "toe_back_inner_right2",
"parent": "toe_back_inner_right",
"pivot": [-0.75, 1.92365, 2.01519],
"name": "claw_back_right",
"parent": "toe_back_right",
"pivot": [-1.25, 1.92365, 2.01519],
"cubes": [
{"origin": [-0.75, -0.07635, 2.01519], "size": [0, 1, 1], "uv": [4, 4]}
{"origin": [-1.25, -0.07635, 2.01519], "size": [0, 1, 1], "uv": [4, 4]}
]
},
{
"name": "toe_back_inner_right3",
"parent": "foot_right",
"pivot": [-1.75, 1.92365, 1.01519],
"rotation": [0, -12.5, 0],
"cubes": [
{"origin": [-1.75, -0.07635, 1.01519], "size": [0, 1, 1], "inflate": 0.01, "uv": [0, 5]}
]
},
{
"name": "toe_back_inner_right4",
"parent": "toe_back_inner_right3",
"pivot": [-1.75, 1.92365, 2.01519],
"cubes": [
{"origin": [-1.75, -0.07635, 2.01519], "size": [0, 1, 1], "uv": [4, 4]}
]
},
{
"name": "toe_front_inner_right",
"name": "toe_inner_right",
"parent": "foot_right",
"pivot": [-1.25, 1.92365, -0.98481],
"rotation": [0, -12.5, 0],
@@ -404,15 +368,15 @@
]
},
{
"name": "toe_front_inner_right2",
"parent": "toe_front_inner_right",
"name": "claw_inner_right",
"parent": "toe_inner_right",
"pivot": [-0.75, 1.92365, -1.98481],
"cubes": [
{"origin": [-0.75, -0.07635, -2.98481], "size": [0, 1, 1], "uv": [4, 0]}
]
},
{
"name": "toe_front_outer_right",
"name": "toe_outer_right",
"parent": "foot_right",
"pivot": [-1.25, 1.92365, -0.98481],
"rotation": [0, 12.5, 0],
@@ -421,8 +385,8 @@
]
},
{
"name": "toe_front_outer_right2",
"parent": "toe_front_outer_right",
"name": "claw_outer_right",
"parent": "toe_outer_right",
"pivot": [-1.75, 1.92365, -1.98481],
"cubes": [
{"origin": [-1.75, -0.07635, -2.98481], "size": [0, 1, 1], "uv": [0, 0]}
@@ -12,11 +12,7 @@
"animations": [
"q.look('neck', 1, 1, 70, -10, 20, -20)",
"q.look('head_ai')",
"q.bedrock('fearow', 'ground_idle')",
{
"condition": "q.is_ridden",
"animation": "q.bedrock('fearow', 'ride_ground_walk')"
}
"q.bedrock('fearow', 'ground_idle')"
],
"transformedParts": [
{
@@ -42,11 +38,7 @@
"animations": [
"q.look('neck', 1, 1, 70, -10, 20, -20)",
"q.look('head_ai')",
"q.bedrock('fearow', 'ground_walk')",
{
"condition": "q.is_ridden",
"animation": "q.bedrock('fearow', 'ride_ground_walk')"
}
"q.bedrock('fearow', 'ground_walk')"
],
"transformedParts": [
{
@@ -73,11 +65,7 @@
"q.pitch_tilt('body')",
"q.look('neck', 1, 1, 70, -10, 20, -20)",
"q.look('head_ai')",
"q.bedrock('fearow', 'air_idle')",
{
"condition": "q.is_ridden",
"animation": "q.bedrock('fearow', 'ride_air_fly')"
}
"q.bedrock('fearow', 'air_idle')"
],
"transformedParts": [
{
@@ -100,16 +88,11 @@
},
"fly": {
"poseTypes": ["FLY"],
"condition": "!q.is_gliding",
"animations": [
"q.pitch_tilt('body')",
"q.look('neck', 1, 1, 70, -10, 20, -20)",
"q.look('head_ai')",
"q.bedrock('fearow', 'air_fly')",
{
"condition": "q.is_ridden",
"animation": "q.bedrock('fearow', 'ride_air_fly')"
}
"q.bedrock('fearow', 'air_fly')"
],
"transformedParts": [
{
@@ -134,26 +117,6 @@
"poseTypes": ["SLEEP"],
"animations": ["q.bedrock('fearow', 'sleep')"],
"namedAnimations": {"cry": "q.bedrock_stateful('dummy', 'cry')"}
},
"glide": {
"poseTypes": ["FLY"],
"condition": "q.is_gliding",
"animations": [
"q.look('neck', 1, 1, 70, -10, 20, -20)",
"q.look('head_ai')",
"q.bedrock('fearow', 'air_glide')",
{
"condition": "q.is_ridden",
"animation": "q.bedrock('fearow', 'ride_air_fly')"
},
{
"condition": "q.is_ridden",
"animation": "q.bedrock('fearow', 'ride_dive')"
}
],
"quirks": [
"q.bedrock_quirk('fearow', 'blink')"
]
}
}
}
@@ -1,6 +1,6 @@
{
"portraitScale": 2.27,
"portraitTranslation": [-0.94, 1.23, 0],
"portraitTranslation": [-0.76, 0.85, 0],
"profileScale": 0.57,
"profileTranslation": [0, 0.9, 0],
"rootBone": "ninetales_alolan",
@@ -13,7 +13,7 @@
"poseTypes": ["STAND"],
"animations": [
"q.look('head')",
"q.bedrock('mudkip', 'battle_idle')"
"q.bedrock('mdukip', 'battle_idle')"
],
"quirks": ["q.bedrock_quirk('mudkip', 'blink')"]
},
@@ -17,15 +17,14 @@
"animations": [
"q.bedrock('vikavolt', 'ground_idle')"
],
"condition": "q.has_entity ? !q.in_air : 1.0",
"isBattle": false,
"quirks": ["q.bedrock_quirk('vikavolt', 'blink')"],
"transitions": {
"hover": "q.bedrock_primary('vikavolt', 'air_transition', q.curve('symmetrical_wide'))",
"fly": "q.bedrock_primary('vikavolt', 'air_transition', q.curve('symmetrical_wide'))",
"battle-standing": "q.bedrock_primary('vikavolt', 'air_transition', q.curve('symmetrical_wide'))",
"battle-hover": "q.bedrock_primary('vikavolt', 'air_transition', q.curve('symmetrical_wide'))",
"air-sleep": "q.bedrock_primary('vikavolt', 'air_transition', q.curve('symmetrical_wide'))"
"hover": "q.bedrock_primary('vikavolt', 'air_transition', q.curve('one'))",
"fly": "q.bedrock_primary('vikavolt', 'air_transition', q.curve('one'))",
"battle-standing": "q.bedrock_primary('vikavolt', 'air_transition', q.curve('one'))",
"battle-hover": "q.bedrock_primary('vikavolt', 'air_transition', q.curve('one'))",
"air-sleep": "q.bedrock_primary('vikavolt', 'air_transition', q.curve('one'))"
}
},
"battle-standing": {
@@ -38,26 +37,20 @@
"namedAnimations": {
"cry": "q.bedrock_primary('vikavolt', 'battle_cry', q.curve('symmetrical_wide'))",
"recoil": "q.bedrock_stateful('vikavolt', 'air_recoil')"
},
"transitions": {
"standing": "q.bedrock_primary('vikavolt', 'ground_transition', q.curve('symmetrical_wide'))",
"walking": "q.bedrock_primary('vikavolt', 'ground_transition', q.curve('symmetrical_wide'))",
"sleep": "q.bedrock_primary('vikavolt', 'ground_transition', q.curve('symmetrical_wide'))"
}
},
"walking": {
"poseTypes": ["WALK", "SWIM"],
"condition": "!q.in_air && q.riding_style != 'AIR': 1.0 ? 0.0",
"animations": [
"q.bedrock('vikavolt', 'ground_walk')"
],
"quirks": ["q.bedrock_quirk('vikavolt', 'blink')"],
"transitions": {
"hover": "q.bedrock_primary('vikavolt', 'air_transition', q.curve('symmetrical_wide'))",
"fly": "q.bedrock_primary('vikavolt', 'air_transition', q.curve('symmetrical_wide'))",
"battle-standing": "q.bedrock_primary('vikavolt', 'air_transition', q.curve('symmetrical_wide'))",
"battle-hover": "q.bedrock_primary('vikavolt', 'air_transition', q.curve('symmetrical_wide'))",
"air-sleep": "q.bedrock_primary('vikavolt', 'air_transition', q.curve('symmetrical_wide'))"
"hover": "q.bedrock_primary('vikavolt', 'air_transition', q.curve('one'))",
"fly": "q.bedrock_primary('vikavolt', 'air_transition', q.curve('one'))",
"battle-standing": "q.bedrock_primary('vikavolt', 'air_transition', q.curve('one'))",
"battle-hover": "q.bedrock_primary('vikavolt', 'air_transition', q.curve('one'))",
"air-sleep": "q.bedrock_primary('vikavolt', 'air_transition', q.curve('one'))"
}
},
"hover": {
@@ -71,11 +64,6 @@
"namedAnimations": {
"cry": "q.bedrock_stateful('vikavolt', 'air_cry')",
"recoil": "q.bedrock_stateful('vikavolt', 'air_recoil')"
},
"transitions": {
"standing": "q.bedrock_primary('vikavolt', 'ground_transition', q.curve('symmetrical_wide'))",
"walking": "q.bedrock_primary('vikavolt', 'ground_transition', q.curve('symmetrical_wide'))",
"sleep": "q.bedrock_primary('vikavolt', 'ground_transition', q.curve('symmetrical_wide'))"
}
},
"battle-hover": {
@@ -89,67 +77,22 @@
"namedAnimations": {
"cry": "q.bedrock_primary('vikavolt', 'battle_cry', q.curve('symmetrical_wide'))",
"recoil": "q.bedrock_stateful('vikavolt', 'air_recoil')"
},
"transitions": {
"standing": "q.bedrock_primary('vikavolt', 'ground_transition', q.curve('symmetrical_wide'))",
"walking": "q.bedrock_primary('vikavolt', 'ground_transition', q.curve('symmetrical_wide'))",
"sleep": "q.bedrock_primary('vikavolt', 'ground_transition', q.curve('symmetrical_wide'))"
}
},
"fly": {
"poseTypes": ["FLY"],
"animations": [
"q.pitch_tilt('body')",
"q.bedrock('vikavolt', 'air_fly')"
],
"quirks": ["q.bedrock_quirk('vikavolt', 'blink')"],
"namedAnimations": {
"cry": "q.bedrock_stateful('vikavolt', 'air_cry')",
"recoil": "q.bedrock_stateful('vikavolt', 'air_recoil')"
},
"transitions": {
"standing": "q.bedrock_primary('vikavolt', 'ground_transition', q.curve('symmetrical_wide'))",
"walking": "q.bedrock_primary('vikavolt', 'ground_transition', q.curve('symmetrical_wide'))",
"sleep": "q.bedrock_primary('vikavolt', 'ground_transition', q.curve('symmetrical_wide'))"
}
},
"mount-hover": {
"poseTypes": ["STAND", "HOVER"],
"isBattle": false,
"condition": "q.has_entity ? q.is_ridden && q.riding_style == 'AIR' : 0.0",
"isRideStyle": ["AIR"],
"animations": [
"q.bedrock('vikavolt', 'air_idle')",
"q.bedrock('vikavolt', 'ride_air_fly')"
],
"quirks": ["q.bedrock_quirk('vikavolt', 'blink')"],
"namedAnimations": {
"cry": "q.bedrock_stateful('vikavolt', 'air_cry')",
"recoil": "q.bedrock_stateful('vikavolt', 'air_recoil')"
},
"transitions": {
"standing": "q.bedrock_primary('vikavolt', 'ground_transition', q.curve('symmetrical_wide'))",
"walking": "q.bedrock_primary('vikavolt', 'ground_transition', q.curve('symmetrical_wide'))",
"sleep": "q.bedrock_primary('vikavolt', 'ground_transition', q.curve('symmetrical_wide'))"
}
},
"mount-fly": {
"poseTypes": ["WALK", "FLY"],
"isBattle": false,
"condition": "q.has_entity ? q.is_ridden && q.riding_style == 'AIR' : 0.0",
"animations": [
"q.bedrock('vikavolt', 'air_fly')",
"q.bedrock('vikavolt', 'ride_air_fly')"
{
"condition": "q.is_ridden",
"animation": "q.bedrock('vikavolt', 'ride_air_fly')"
}
],
"quirks": ["q.bedrock_quirk('vikavolt', 'blink')"],
"namedAnimations": {
"cry": "q.bedrock_stateful('vikavolt', 'air_cry')",
"recoil": "q.bedrock_stateful('vikavolt', 'air_recoil')"
},
"transitions": {
"standing": "q.bedrock_primary('vikavolt', 'ground_transition', q.curve('symmetrical_wide'))",
"walking": "q.bedrock_primary('vikavolt', 'ground_transition', q.curve('symmetrical_wide'))",
"sleep": "q.bedrock_primary('vikavolt', 'ground_transition', q.curve('symmetrical_wide'))"
}
},
"air-sleep": {
@@ -161,12 +104,7 @@
},
"animations": [
"q.bedrock('vikavolt', 'air_sleep')"
],
"transitions": {
"standing": "q.bedrock_primary('vikavolt', 'ground_transition', q.curve('symmetrical_wide'))",
"walking": "q.bedrock_primary('vikavolt', 'ground_transition', q.curve('symmetrical_wide'))",
"sleep": "q.bedrock_primary('vikavolt', 'ground_transition', q.curve('symmetrical_wide'))"
}
]
},
"sleep": {
"poseTypes": ["SLEEP"],
@@ -179,11 +117,11 @@
"q.bedrock('vikavolt', 'sleep')"
],
"transitions": {
"hover": "q.bedrock_primary('vikavolt', 'air_transition', q.curve('symmetrical_wide'))",
"fly": "q.bedrock_primary('vikavolt', 'air_transition', q.curve('symmetrical_wide'))",
"battle-standing": "q.bedrock_primary('vikavolt', 'air_transition', q.curve('symmetrical_wide'))",
"battle-hover": "q.bedrock_primary('vikavolt', 'air_transition', q.curve('symmetrical_wide'))",
"air-sleep": "q.bedrock_primary('vikavolt', 'air_transition', q.curve('symmetrical_wide'))"
"hover": "q.bedrock_primary('vikavolt', 'air_transition', q.curve('one'))",
"fly": "q.bedrock_primary('vikavolt', 'air_transition', q.curve('one'))",
"battle-standing": "q.bedrock_primary('vikavolt', 'air_transition', q.curve('one'))",
"battle-hover": "q.bedrock_primary('vikavolt', 'air_transition', q.curve('one'))",
"air-sleep": "q.bedrock_primary('vikavolt', 'air_transition', q.curve('one'))"
}
},
"battle-sleep": {
@@ -194,12 +132,7 @@
},
"animations": [
"q.bedrock('vikavolt', 'battle_sleep')"
],
"transitions": {
"standing": "q.bedrock_primary('vikavolt', 'ground_transition', q.curve('symmetrical_wide'))",
"walking": "q.bedrock_primary('vikavolt', 'ground_transition', q.curve('symmetrical_wide'))",
"sleep": "q.bedrock_primary('vikavolt', 'ground_transition', q.curve('symmetrical_wide'))"
}
]
}
}
}
@@ -1,45 +0,0 @@
{
"portraitScale": 2.0,
"portraitTranslation": [-0.2, -0.2, 0.0],
"profileScale": 0.85,
"profileTranslation": [0.0, 0.51, 0.0],
"rootBone": "squawkabilly",
"animations": {
"cry": "q.bedrock_stateful('squawkabilly', 'cry')"
},
"poses": {
"standing": {
"poseTypes": ["STAND", "NONE", "PORTRAIT", "PROFILE"],
"animations": ["q.look('head')", "q.bedrock('squawkabilly', 'ground_idle')"],
"quirks": ["q.bedrock_quirk('squawkabilly', 'blink')"]
},
"walking": {
"poseTypes": ["WALK", "SWIM"],
"animations": [
"q.look('head')",
"q.bedrock('squawkabilly', 'ground_walk')"
],
"quirks": ["q.bedrock_quirk('squawkabilly', 'blink')"]
},
"hover": {
"poseTypes": ["HOVER"],
"animations": [
"q.pitch_tilt('body')",
"q.look('neck', 1, 1, 70, -10, 20, -20)",
"q.look('head')",
"q.bedrock('squawkabilly', 'air_idle')"
],
"quirks": ["q.bedrock_quirk('squawkabilly', 'blink')"]
},
"fly": {
"poseTypes": ["FLY"],
"animations": [
"q.pitch_tilt('body')",
"q.look('neck', 1, 1, 70, -10, 20, -20)",
"q.look('head')",
"q.bedrock('squawkabilly', 'air_fly')"
],
"quirks": ["q.bedrock_quirk('squawkabilly', 'blink')"]
}
}
}
@@ -1,6 +1,6 @@
{
"species": "cobblemon:persian",
"order": 1,
"order": 0,
"variations": [
{
"aspects": ["alolan"],
@@ -1,6 +1,6 @@
{
"species": "cobblemon:mrmime",
"order": 1,
"order": 0,
"variations": [
{
"aspects": ["galarian"],
@@ -1,6 +1,6 @@
{
"species": "cobblemon:ledyba",
"order": 1,
"order": 0,
"variations": [
{
"aspects": ["female"],
@@ -1,6 +1,6 @@
{
"species": "cobblemon:ledian",
"order": 1,
"order": 0,
"variations": [
{
"aspects": ["female"],
@@ -1,6 +1,6 @@
{
"species": "cobblemon:wobbuffet",
"order": 1,
"order": 0,
"variations": [
{
"aspects": ["female"],
@@ -1,6 +1,6 @@
{
"species": "cobblemon:girafarig",
"order": 1,
"order": 0,
"variations": [
{
"aspects": ["female"],
@@ -1,6 +1,6 @@
{
"species": "cobblemon:steelix",
"order": 1,
"order": 0,
"variations": [
{
"aspects": ["female"],
@@ -1,6 +1,6 @@
{
"species": "cobblemon:piloswine",
"order": 1,
"order": 0,
"variations": [
{
"aspects": ["female"],
@@ -1,6 +1,6 @@
{
"species": "cobblemon:torterra",
"order": 9,
"order": 8,
"variations": [
{
"aspects": ["tree-mangrove"],
@@ -1,6 +1,6 @@
{
"species": "cobblemon:snover",
"order": 1,
"order": 0,
"variations": [
{
"aspects": ["female"],
@@ -1,6 +1,6 @@
{
"species": "cobblemon:abomasnow",
"order": 1,
"order": 0,
"variations": [
{
"aspects": ["female"],
@@ -1,6 +1,6 @@
{
"species": "cobblemon:mamoswine",
"order": 1,
"order": 0,
"variations": [
{
"aspects": ["female"],
@@ -1,6 +1,6 @@
{
"species": "cobblemon:rockruff",
"order": 1,
"order": 0,
"variations": [
{
"aspects": ["dusk-form"],
@@ -1,6 +1,6 @@
{
"species": "cobblemon:palafin",
"order": 1,
"order": 0,
"variations": [
{
"aspects": ["hero-form"],
@@ -0,0 +1,6 @@
{
"match": {
"items": "cobblemon:magmarizer"
},
"luminance": 15
}
@@ -2514,8 +2514,6 @@
"cobblemon.config.ui.allow_spectating.tooltip": "Whether to allow battles to be spectated.",
"cobblemon.config.ui.experience_multiplier": "Experience Multiplier",
"cobblemon.config.ui.experience_multiplier.tooltip": "Additional Exp. multiplier for Exp. calculation.",
"cobblemon.config.ui.predation_chance": "Pokémon predation chance",
"cobblemon.config.ui.predation_chance.tooltip": "Chance of Pokémon predating the enemy",
"cobblemon.config.ui.pokemon_per_chunk": "Pokémon per Chunk",
"cobblemon.config.ui.pokemon_per_chunk.tooltip": "The amount of Pokémon allowed within a Chunk when spawning.",
"cobblemon.config.ui.poke_snack_pokemon_per_chunk": "Poké Snack Pokémon per Chunk",
@@ -3652,6 +3650,7 @@
"tag.item.cobblemon.mochis": "Mochis",
"tag.item.cobblemon.poke_food": "Poké Foods",
"tag.item.cobblemon.full_heal_bottles": "Full Heal Bottles",
"tag.item.cobblemon.small_flowers": "Small Flowers",
"tag.item.cobblemon.held.blacklisted_items_to_hold": "Blacklisted Held Items",
"tag.item.cobblemon.held.whitelisted_items_to_hold": "Whitelisted Held Items",
"tag.item.cobblemon.recipe_filters.poke_puff_seasoning": "Poké Puff Seasoning Items",
@@ -855,7 +855,7 @@
"advancements.cobblemon.obtain_berry.description": "地表に育ち多くの用途を持つ、きのみを手に入れる",
"advancements.cobblemon.obtain_mutated_berry": "想定外の結果",
"advancements.cobblemon.obtain_mutated_berry.description": "違う種類のきのみの木を隣り合わせに植えて突然変異を目撃する",
"advancements.cobblemon.obtain_all_berries": "もぎってナッツ",
"advancements.cobblemon.obtain_all_berries": "もぎもぎフルーツ",
"advancements.cobblemon.obtain_all_berries.description": "Cobblemonに登場する全てのきのみを集める",
"advancements.cobblemon.use_pasture": "みんなのポケモン牧場",
"advancements.cobblemon.use_pasture.description": "ぼくじょうブロックを作りポケモンを放し飼いにする",
@@ -6219,7 +6219,7 @@
"cobblemon.egg_group.water_2": "水中②",
"cobblemon.egg_group.ditto": "メタモン",
"cobblemon.egg_group.dragon": "ドラゴン",
"cobblemon.egg_group.undiscovered": "未発見",
"cobblemon.egg_group.undiscovered": "タマゴ未発見",
"cobblemon.trade.canceled.sender": "%1$s との交換リクエストをキャンセルしました。",
"cobblemon.trade.canceled.receiver": "%1$s が交換リクエストをキャンセルしました...",
"cobblemon.trade.sent": "%1$s との交換をリクエストしました。",
@@ -6981,7 +6981,7 @@
"cobblemon.mark.ribbon_contest_sinnoh_tough_3.desc": "スーパーコンテスト たくましさ部門 ウルトラランク 優勝!",
"cobblemon.mark.ribbon_contest_sinnoh_tough_4": "パワフルリボンマスター",
"cobblemon.mark.ribbon_contest_super_master_beauty": "うつくしさマスターリボン",
"cobblemon.mark.ribbon_contest_super_master_beauty.title": "とうじからきれいな %1$s",
"cobblemon.mark.ribbon_contest_super_master_beauty.title": "とうじきれいだった %1$s",
"cobblemon.mark.ribbon_contest_super_master_beauty.desc": "コンテストで うつくしさを 発揮した ポケモンに 贈られる 記念リボン",
"cobblemon.mark.ribbon_contest_super_master_cleverness": "かしこさマスターリボン",
"cobblemon.mark.ribbon_contest_super_master_cleverness.title": "てんさいとよばれた %1$s",
@@ -7002,7 +7002,7 @@
"cobblemon.mark.ribbon_contest_super_master_coolness": "かっこよさマスターリボン",
"cobblemon.mark.ribbon_contest_super_master_cuteness.desc": "コンテストで かわいさを 発揮した ポケモンに 贈られる 記念リボン",
"cobblemon.mark.ribbon_contest_super_master_toughness": "たくましさマスターリボン",
"cobblemon.mark.ribbon_contest_super_master_toughness.title": "むかしからムキムキの %1$s",
"cobblemon.mark.ribbon_contest_super_master_toughness.title": "ムキムキの %1$s",
"cobblemon.mark.ribbon_contest_super_master_toughness.desc": "コンテストで たくましさを 発揮した ポケモンに 贈られる 記念リボン",
"cobblemon.mark.ribbon_contest_super_star": "コンテストスターリボン",
"cobblemon.mark.ribbon_contest_super_star.title": "でんせつてきスターの %1$s",
@@ -9243,7 +9243,7 @@
"cobblemon.ui.moves.learnset.tm.discovered": "発見済み",
"cobblemon.ui.moves.level": "レベルアップ",
"cobblemon.ui.moves.egg": "タマゴ技",
"cobblemon.ui.moves.tm": "わざマシン",
"cobblemon.ui.moves.tm": "わざマシン",
"cobblemon.ui.tm_machine.can_learn": "覚えられる",
"cobblemon.ui.tm_machine.cannot_learn": "覚えられない",
"cobblemon.ui.tm_machine.learned": "覚えている",
@@ -9596,42 +9596,5 @@
"cobblemon.config.ui.world_spawning_blocklist": "ワールドごとのスポーンブロックリスト",
"cobblemon.config.ui.world_spawning_blocklist.tooltip": "ポケモンの出現ロジックを無効にするワールド。",
"advancements.cobblemon.obtain_tm": "Show Me Your Moves!",
"advancements.cobblemon.obtain_tm.description": "わざマシンを見つけるか、印刷する",
"itemGroup.cobblemon.tm_item": "Cobblemon:わざマシン",
"block.cobblemon.wistensu": "フジブヨウ",
"block.cobblemon.lobaila": "ミゾグレン",
"block.cobblemon.pauvillea": "フラビリア",
"block.cobblemon.pomohana": "ポンノハナ",
"block.cobblemon.voltaconia": "ボルトコニア",
"block.cobblemon.verdroot": "ミノルート",
"block.cobblemon.lucibell": "サイヴェル",
"block.cobblemon.mistleaf": "ミストリーフ",
"cobblemon.ui.pokedex.info.evolution_tree": "進化の流れ",
"cobblemon.ui.pokedex.evolution.item_interact.tooltip": "%1$sが必要",
"cobblemon.ui.pokedex.evolution.trade.tooltip.with_species": "%1$sとのポケモン交換で進化",
"cobblemon.ui.pokedex.evolution.trade.tooltip.with_any_species": "ポケモン交換で進化",
"cobblemon.ui.pokedex.evolution.shedder.tooltip": "予備のモンスターボールと手持ちの空きが必要",
"cobblemon.ui.pokedex.evolution.or": "または",
"cobblemon.ui.pokedex.evolution.one_of": "以下のいずれか:",
"cobblemon.ui.pokedex.requirement.advancement.tooltip": "プレイヤーが進捗 %1$sを達成している必要あり",
"cobblemon.ui.pokedex.requirement.battle_critical_hits.tooltip": "バトルで%1$s回急所に当てる",
"cobblemon.ui.pokedex.requirement.biome.anticondition.tooltip": "%1$sバイオームでは進化出来ない",
"cobblemon.ui.pokedex.requirement.biome.both.tooltip": "%2$sを除いた%1$sバイオームでのみ進化",
"cobblemon.ui.pokedex.requirement.biome.tooltip": "%1$sバイオームでのみ進化",
"cobblemon.ui.pokedex.requirement.blocks_traveled.tooltip": "%1$sブロック分旅をする",
"cobblemon.ui.pokedex.requirement.damage_taken.tooltip": "バトルで倒れず%1$sダメージ受ける",
"cobblemon.ui.pokedex.requirement.defeat.tooltip": "進化するためにはバトルで%1$sを倒す",
"cobblemon.ui.pokedex.requirement.friendship.tooltip": "なかよし度%1$sが必要",
"cobblemon.ui.pokedex.requirement.has_move.tooltip": "%1$sを覚える必要がある",
"cobblemon.ui.pokedex.requirement.has_move_type.tooltip": "%1$sタイプの技を覚えておく必要がある",
"cobblemon.ui.pokedex.requirement.held_item.tooltip": "%1$sを持っている必要がある",
"cobblemon.ui.pokedex.requirement.level.tooltip.min": "レベル%1$sから進化",
"cobblemon.ui.pokedex.requirement.party_member.tooltip": "レベルが%1$sから%2$sの間で進化",
"cobblemon.ui.pokedex.requirement.pokemon_properties.tooltip": "%1$sでなければいけない",
"cobblemon.ui.pokedex.requirement.properties.and": "%1$s と %2$s",
"cobblemon.ui.pokedex.requirement.level.tooltip.between": "レベルが%1$sから%2$sの間で進化",
"cobblemon.ui.pokedex.requirement.moon_phase.tooltip": "月の満ち欠けが%1$sでなければいけない",
"cobblemon.ui.pokedex.requirement.nature.toxtricity_amped": "性格が§aがんばりや§r、 §aゆうかん§r、 §aいじっぱり§r、 §aやんちゃ§r、 §aすなお§r、 §aわんぱく§r、 §aのうてんき§r、 §aせっかち§r、 §aようき§r、 §aむじゃき§r、 §aうっかりや§r、 §aなまいき§r、 §aきまぐれ§rのどれか",
"cobblemon.ui.pokedex.requirement.nature.toxtricity_low_key": "性格が§aさみしがり§r、 §aずぶとい§r、 §aのんき§r、 §aおくびょう§r、 §aまじめ§r、 §aひかえめ§r、 §aおっとり§r、 §aれいせい§r、 §aてれや§r、 §aおだやか§r、 §a\tおとなしい§r、 §aしんちょう§rのどれか",
"cobblemon.ui.pokedex.requirement.nickname.malamar": "ニックネームを§aDinnerbone§rか§aGrumm§rにする"
"advancements.cobblemon.obtain_tm.description": "わざマシンを見つけるか、印刷する"
}
@@ -9413,114 +9413,5 @@
"cobblemon.ui.pokedex.info.form.tatsugiri-stretchymega": "Mega Tatsugiri Forma Estendida",
"cobblemon.species.tatsugiri-stretchymega.desc": "Usando a energia da Mega Evolução, cria um prato onde repousar, permitindo com que se mova com mobilidade total até mesmo pelo ar.",
"cobblemon.ui.pokedex.info.form.baxcalibur-mega": "Mega Baxcalibur",
"cobblemon.species.baxcalibur-mega.desc": "A lâmina dorsal de Baxcalibur ficou ainda maior graças à Mega Evolução. Esse Pokémon dispara feixes do cabo localizado em seu peito.",
"itemGroup.cobblemon.tm_item": "Cobblemon: Máquinas Técnicas",
"block.cobblemon.pomohana": "Pomohana",
"block.cobblemon.pauvillea": "Pa'uvillea",
"block.cobblemon.lobaila": "Lobaila",
"block.cobblemon.wistensu": "Wistensu",
"block.cobblemon.voltaconia": "Voltaconia",
"block.cobblemon.verdroot": "Verdroot",
"block.cobblemon.lucibell": "Lucibell",
"block.cobblemon.mistleaf": "Mistleaf",
"cobblemon.ui.pokedex.info.evolution_tree": "Árvore Evolutiva",
"cobblemon.ui.pokedex.evolution.item_interact.tooltip": "Precisa do item %1$s para evoluir",
"cobblemon.ui.pokedex.evolution.trade.tooltip.with_species": "Evolui quando trocado segurando %1$s",
"cobblemon.ui.pokedex.evolution.trade.tooltip.with_any_species": "Evolui quando trocado",
"cobblemon.ui.pokedex.evolution.shedder.tooltip": "Também requer uma Pokébola extra e um espaço vazio na equipe",
"cobblemon.ui.pokedex.evolution.or": "OU",
"cobblemon.ui.pokedex.evolution.one_of": "Um de:",
"cobblemon.ui.pokedex.requirement.advancement.tooltip": "Jogador precisa ter a conquista %1$s",
"cobblemon.ui.pokedex.requirement.battle_critical_hits.tooltip": "Precisa acertar %1$s acertos críticos em batalha",
"cobblemon.ui.pokedex.requirement.biome.anticondition.tooltip": "Não pode estar no bioma %1$s",
"cobblemon.ui.pokedex.requirement.biome.both.tooltip": "Precisa estar no bioma %1$s e não no bioma %2$s",
"cobblemon.ui.pokedex.requirement.biome.tooltip": "Precisa estar no bioma %1$s",
"cobblemon.ui.pokedex.requirement.blocks_traveled.tooltip": "Precisa viajar %1$s blocos",
"cobblemon.ui.pokedex.requirement.damage_taken.tooltip": "Precisa receber %1$s de dano em uma batalha sem desmaiar",
"cobblemon.ui.pokedex.requirement.defeat.tooltip": "Precisa derrotar %1$s em batalha para evoluir",
"cobblemon.ui.pokedex.requirement.friendship.tooltip": "Requer no mínimo %1$s de amizade",
"cobblemon.ui.pokedex.requirement.has_move.tooltip": "Precisa conhecer o movimento %1$s",
"cobblemon.ui.pokedex.requirement.has_move_type.tooltip": "Precisa conhecer um movimento do tipo %1$s",
"cobblemon.ui.pokedex.requirement.held_item.tooltip": "Precisa estar segurando %1$s",
"cobblemon.ui.pokedex.requirement.level.tooltip.min": "Evolui ao ultrapassar o nível %1$s",
"cobblemon.ui.pokedex.requirement.level.tooltip.between": "Evoluiu entre os níveis %1$s e %2$s",
"cobblemon.ui.pokedex.requirement.moon_phase.tooltip": "Precisa evoluir na fase %1$s da lua",
"cobblemon.ui.pokedex.requirement.nature.toxtricity_amped": "Precisa ter a natureza §aDestemida§r, §aValente§r, §aRígida§r, §aTeimosa§r, §aDócil§r, §aInquieta§r, §aRelaxada§r, §aApressada§r, §aAlegre§r, §aInguênua§r, §aImprudente§r, §aAtrevida§r, ou §aPeculiar§r",
"cobblemon.ui.pokedex.requirement.nature.toxtricity_low_key": "Precisa ter a natureza §aSolitária§r, §aCorajosa§r, §aDescontraída§r, §aTímida§r, §aSéria§r, §aModesta§r, §aMansa§r, §aQuieta§r, §aAtrapalhada§r, §aCalma§r, §aGentil§r, ou §aCuidadosa§r",
"cobblemon.ui.pokedex.requirement.negate.tooltip": "Não: %1$s",
"cobblemon.ui.pokedex.requirement.nickname.malamar": "Precisa se chamar §aDinnerbone§r ou §aGrumm§r",
"cobblemon.ui.pokedex.requirement.party_member.anticondition.tooltip": "Equipe não pode ter um Pokémon com %1$s",
"cobblemon.ui.pokedex.requirement.party_member.tooltip": "Equipe precisa ter um Pokémon com %1$s",
"cobblemon.ui.pokedex.requirement.pokemon_properties.tooltip": "Precisa estar %1$s",
"cobblemon.ui.pokedex.requirement.properties.and": "%1$s e %2$s",
"cobblemon.ui.pokedex.requirement.properties.custom.cocoon_species": "Casulo %1$s",
"cobblemon.ui.pokedex.requirement.properties.held_item": "Segurando %1$s",
"cobblemon.ui.pokedex.requirement.properties.int_feature": "%1$s %2$s",
"cobblemon.ui.pokedex.requirement.properties.nature": "Natureza %1$s",
"cobblemon.ui.pokedex.requirement.properties.nickname": "Nomeado %1$s",
"cobblemon.ui.pokedex.requirement.properties.type": "Tipo %1$s",
"cobblemon.ui.pokedex.requirement.property_range.tooltip": "Requer %1$s entre %2$s e %3$s",
"cobblemon.ui.pokedex.requirement.recoil.tooltip": "Precisa sofrer %1$s unidades de recuo em batalha",
"cobblemon.ui.pokedex.requirement.stat_compare.tooltip": "Precisa ter seu %1$s acima de %2$s",
"cobblemon.ui.pokedex.requirement.stat_equal.tooltip": "Precisa ter seu %1$s igual ao seu %2$s",
"cobblemon.ui.pokedex.requirement.structure.anticondition.tooltip": "Não pode estar na estrutura %1$s",
"cobblemon.ui.pokedex.requirement.structure.both.tooltip": "Precisa estar na estrutura %1$s e não na estrutura %2$s",
"cobblemon.ui.pokedex.requirement.structure.tooltip": "Precisa estar na estrutura %1$s",
"cobblemon.ui.pokedex.requirement.time_range.tooltip": "Precisa evoluir durante %1$s",
"cobblemon.ui.pokedex.requirement.use_move.tooltip": "Precisa usar o movimento %1$s em batalha",
"cobblemon.ui.pokedex.requirement.weather.tooltip.raining": "Precisa estar na chuva para evoluir",
"cobblemon.ui.pokedex.requirement.weather.tooltip.thundering": "Precisa estar em uma tempestade para evoluir",
"cobblemon.ui.moon_phase.full_moon": "Lua Cheia",
"cobblemon.ui.moon_phase.waning_gibbous": "Crescente Gibosa",
"cobblemon.ui.moon_phase.third_quarter": "Quarto Crescente",
"cobblemon.ui.moon_phase.waning_crescent": "Crescente",
"cobblemon.ui.moon_phase.new_moon": "Lua Nova",
"cobblemon.ui.moon_phase.waxing_crescent": "Minguante",
"cobblemon.ui.moon_phase.first_quarter": "Quarto Minguante",
"cobblemon.ui.moon_phase.waxing_gibbous": "Minguante Gibosa",
"cobblemon.ui.time_range.any": "Qualquer",
"cobblemon.ui.time_range.day": "Dia",
"cobblemon.ui.time_range.night": "Noite",
"cobblemon.ui.time_range.noon": "Meio-dia",
"cobblemon.ui.time_range.midnight": "Meia-noite",
"cobblemon.ui.time_range.dawn": "Alvorecer",
"cobblemon.ui.time_range.dusk": "Entardecer",
"cobblemon.ui.time_range.twilight": "Crepúsculo",
"cobblemon.ui.time_range.morning": "Manhã",
"cobblemon.ui.time_range.afternoon": "Tarde",
"cobblemon.ui.time_range.predawn": "Pré-amanhecer",
"cobblemon.ui.time_range.evening": "Tardinha",
"cobblemon.subtitle.item.bright_powder.use": "Pó Brilhante ilumina",
"cobblemon.config.ui.type_gem_max_connected": "Máximo de Blocos de Gema de Tipo Conectados",
"cobblemon.config.ui.type_gem_min_growth": "Mínimo de Crescimento de Gema de Tipo",
"cobblemon.config.ui.type_gem_growth_chance": "Chance de Crescimento de Gema de Tipo",
"cobblemon.config.ui.type_gem_initial_expansion_cycles": "Cíclos de Expansão Iniciais de Gemas de Tipo",
"cobblemon.battle.activate.ficklebeam": "%1$s vai com tudo neste próximo ataque!",
"tag.item.cobblemon.oricorio_flowers": "Flores de Néctar",
"tag.item.cobblemon.terrain_plants": "Plantas de Terreno",
"tag.item.cobblemon.tall_flowers": "Flores Altas",
"tag.worldgen.biome.cobblemon.evolution.regional.bergmite_hisuibiome": "Hisuiano",
"tag.worldgen.biome.cobblemon.evolution.regional.bergmite_kalosbiome": "Kalosiano",
"tag.worldgen.biome.cobblemon.evolution.regional.cubone_alolabiome": "Alolano",
"tag.worldgen.biome.cobblemon.evolution.regional.cubone_kantobiome": "Kantoniano",
"tag.worldgen.biome.cobblemon.evolution.regional.dartrix_alolabiome": "Alolano",
"tag.worldgen.biome.cobblemon.evolution.regional.dartrix_hisuibiome": "Hisuiano",
"tag.worldgen.biome.cobblemon.evolution.regional.dewott_hisuibiome": "Hisuiano",
"tag.worldgen.biome.cobblemon.evolution.regional.dewott_unovabiome": "Unovano",
"tag.worldgen.biome.cobblemon.evolution.regional.exeggcute_alolabiome": "Alolano",
"tag.worldgen.biome.cobblemon.evolution.regional.exeggcute_kantobiome": "Kantoniano",
"tag.worldgen.biome.cobblemon.evolution.regional.goomy_hisuibiome": "Hisuiano",
"tag.worldgen.biome.cobblemon.evolution.regional.goomy_kalosbiome": "Kalosiano",
"tag.worldgen.biome.cobblemon.evolution.regional.koffing_galarbiome": "Galariano",
"tag.worldgen.biome.cobblemon.evolution.regional.koffing_kantobiome": "Kantoniano",
"tag.worldgen.biome.cobblemon.evolution.regional.mimejr_galarbiome": "Galariano",
"tag.worldgen.biome.cobblemon.evolution.regional.mimejr_sinnohbiome": "Sinnohano",
"tag.worldgen.biome.cobblemon.evolution.regional.petilil_hisuibiome": "Hisuiano",
"tag.worldgen.biome.cobblemon.evolution.regional.petilil_unovabiome": "Unovano",
"tag.worldgen.biome.cobblemon.evolution.regional.pikachu_alolabiome": "Alolano",
"tag.worldgen.biome.cobblemon.evolution.regional.pikachu_kantobiome": "Kantoniano",
"tag.worldgen.biome.cobblemon.evolution.regional.quilava_hisuibiome": "Hisuiano",
"tag.worldgen.biome.cobblemon.evolution.regional.quilava_johtobiome": "Johtoniano",
"tag.worldgen.biome.cobblemon.evolution.regional.rufflet_hisuibiome": "Hisuiano",
"tag.worldgen.biome.cobblemon.evolution.regional.rufflet_unovabiome": "Unovano"
"cobblemon.species.baxcalibur-mega.desc": "A lâmina dorsal de Baxcalibur ficou ainda maior graças à Mega Evolução. Esse Pokémon dispara feixes do cabo localizado em seu peito."
}
@@ -9021,34 +9021,5 @@
"cobblemon.config.ui.world_spawning_blocklist.tooltip": "Миры, в которых отключается принцип появления покемонов.",
"advancements.cobblemon.obtain_tm.description": "Найдите или напечатайте ТМ",
"cobblemon.species.victreebel-mega.desc": "В результате Мега эволюции объём кислоты у этого покемона увеличился, заполняя весь его рот. Если он не будет осторожен, кислота переполнится и выльется наружу.",
"cobblemon.ui.pokedex.info.form.victreebel-mega": "Мега Виктрибелл",
"itemGroup.cobblemon.tm_item": "Технические машины",
"block.cobblemon.pomohana": "Помохана",
"block.cobblemon.pauvillea": "Па'увилия",
"block.cobblemon.lobaila": "Лобалия",
"block.cobblemon.wistensu": "Вистенсу",
"block.cobblemon.voltaconia": "Вольтакония",
"block.cobblemon.verdroot": "Вердрут",
"block.cobblemon.lucibell": "Люсибель",
"block.cobblemon.mistleaf": "Мистлиф",
"cobblemon.ui.pokedex.info.evolution_tree": "Древо эволюции",
"cobblemon.ui.pokedex.evolution.item_interact.tooltip": "Требуется %1$s для эволюции",
"cobblemon.ui.pokedex.evolution.trade.tooltip.with_species": "Эволюционирует при обмене с %1$s",
"cobblemon.ui.pokedex.evolution.trade.tooltip.with_any_species": "Эволюционирует при обмене",
"cobblemon.ui.pokedex.evolution.shedder.tooltip": "Также требует запасной покебол и свободное место в команде",
"cobblemon.ui.pokedex.evolution.or": "ИЛИ",
"cobblemon.ui.pokedex.evolution.one_of": "Один из:",
"cobblemon.ui.pokedex.requirement.advancement.tooltip": "У игрока должно быть достижение %1$s",
"cobblemon.ui.pokedex.requirement.battle_critical_hits.tooltip": "Должен попасть %1$s критическими ударами в битве",
"cobblemon.ui.pokedex.requirement.biome.anticondition.tooltip": "Не должен быть в %1$s биоме",
"cobblemon.ui.pokedex.requirement.biome.both.tooltip": "Должен быть в %1$s биоме и не в %2$s биоме",
"cobblemon.ui.pokedex.requirement.biome.tooltip": "Должен быть в %1$s биоме",
"cobblemon.ui.pokedex.requirement.blocks_traveled.tooltip": "Должен пройти %1$s блоков",
"cobblemon.ui.pokedex.requirement.damage_taken.tooltip": "Должен получить %1$s урона в битве без поражения",
"cobblemon.ui.pokedex.requirement.defeat.tooltip": "Должен победить против %1$s в битве для эволюции",
"cobblemon.ui.pokedex.requirement.friendship.tooltip": "Требует как минимум %1$s дружбы",
"cobblemon.ui.pokedex.requirement.has_move.tooltip": "Должен знать приём %1$s",
"cobblemon.ui.pokedex.requirement.has_move_type.tooltip": "Должен знать приём %1$s типа",
"cobblemon.ui.pokedex.requirement.held_item.tooltip": "Должен удерживать %1$s",
"cobblemon.ui.pokedex.requirement.level.tooltip.min": "Эволюционирует начиная с %1$s уровня"
"cobblemon.ui.pokedex.info.form.victreebel-mega": "Мега Виктрибелл"
}
Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.6 KiB

After

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.6 KiB

After

Width:  |  Height:  |  Size: 6.6 KiB

@@ -0,0 +1,112 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:snowball",
"functions": [
{
"function": "set_count",
"count": {
"min": 0,
"max": 2
}
},
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:sweet_berries",
"functions": [
{
"function": "set_count",
"count": {
"min": 2,
"max": 4
}
},
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:never_melt_ice",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.05
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:occa_berry",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.05
}
]
}
]
}
],
"random_sequence": "cobblemon:pokemon/abomasnow"
}
@@ -0,0 +1,85 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:ender_pearl",
"functions": [
{
"function": "set_count",
"count": {
"min": 0,
"max": 1
}
},
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:twisted_spoon",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.025
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:kasib_berry",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.025
}
]
}
]
}
],
"random_sequence": "cobblemon:pokemon/abra"
}
@@ -0,0 +1,84 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:razor_claw",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.05
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:life_orb",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.05
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:roseli_berry",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.05
}
]
}
]
}
],
"random_sequence": "cobblemon:pokemon/absol"
}
@@ -0,0 +1,32 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:shed_shell",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.05
}
]
}
]
}
],
"random_sequence": "cobblemon:pokemon/accelgor"
}
@@ -0,0 +1,111 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:iron_nugget",
"functions": [
{
"function": "set_count",
"count": {
"min": 0,
"max": 3
}
},
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:iron_sword",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.1
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:dusk_stone",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.1
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:ability_shield",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.1
}
]
}
]
}
],
"random_sequence": "cobblemon:pokemon/aegislash"
}
@@ -0,0 +1,59 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:bone",
"functions": [
{
"function": "set_count",
"count": {
"min": 0,
"max": 3
}
},
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:rocky_helmet",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.1
}
]
}
]
}
],
"random_sequence": "cobblemon:pokemon/aerodactyl"
}
@@ -0,0 +1,85 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:raw_iron",
"functions": [
{
"function": "set_count",
"count": {
"min": 0,
"max": 3
}
},
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:hard_stone",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.1
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:chople_berry",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.1
}
]
}
]
}
],
"random_sequence": "cobblemon:pokemon/aggron"
}
@@ -0,0 +1,59 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:nanab_berry",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.025
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:tag",
"name": "cobblemon:apricorn_sprouts",
"expand": true,
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.025
}
]
}
]
}
],
"random_sequence": "cobblemon:pokemon/aipom"
}
@@ -0,0 +1,85 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:ender_pearl",
"functions": [
{
"function": "set_count",
"count": {
"min": 0,
"max": 3
}
},
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:twisted_spoon",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.1
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:kasib_berry",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.1
}
]
}
]
}
],
"random_sequence": "cobblemon:pokemon/alakazam"
}
@@ -0,0 +1,59 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:sugar",
"functions": [
{
"function": "set_count",
"count": {
"min": 0,
"max": 2
}
},
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:cake",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.05
}
]
}
]
}
],
"random_sequence": "cobblemon:pokemon/alcremie"
}
@@ -0,0 +1,121 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:cod",
"functions": [
{
"function": "set_count",
"count": {
"min": 1,
"max": 1
}
},
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
},
{
"conditions": [
{
"condition": "minecraft:any_of",
"terms": [
{
"condition": "minecraft:entity_properties",
"entity": "this",
"predicate": {
"flags": {
"is_on_fire": true
}
}
},
{
"condition": "minecraft:entity_properties",
"entity": "direct_attacker",
"predicate": {
"equipment": {
"mainhand": {
"predicates": {
"minecraft:enchantments": [
{
"enchantments": "#minecraft:smelts_loot"
}
]
}
}
}
}
}
]
}
],
"function": "minecraft:furnace_smelt"
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:bone_meal",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.05
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:deep_sea_scale",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.05
}
]
}
]
}
],
"random_sequence": "cobblemon:pokemon/alomomola"
}
@@ -0,0 +1,122 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:white_wool",
"functions": [
{
"function": "set_count",
"count": {
"min": 0,
"max": 2
}
},
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:chicken",
"functions": [
{
"function": "set_count",
"count": {
"min": 1,
"max": 1
}
},
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
},
{
"conditions": [
{
"condition": "minecraft:any_of",
"terms": [
{
"condition": "minecraft:entity_properties",
"entity": "this",
"predicate": {
"flags": {
"is_on_fire": true
}
}
},
{
"condition": "minecraft:entity_properties",
"entity": "direct_attacker",
"predicate": {
"equipment": {
"mainhand": {
"predicates": {
"minecraft:enchantments": [
{
"enchantments": "#minecraft:smelts_loot"
}
]
}
}
}
}
}
]
}
],
"function": "minecraft:furnace_smelt"
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:yache_berry",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.05
}
]
}
]
}
],
"random_sequence": "cobblemon:pokemon/altaria"
}
@@ -0,0 +1,32 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:never_melt_ice",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.05
}
]
}
]
}
],
"random_sequence": "cobblemon:pokemon/amaura"
}
@@ -0,0 +1,59 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:nanab_berry",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.05
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:tag",
"name": "cobblemon:apricorn_sprouts",
"expand": true,
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.05
}
]
}
]
}
],
"random_sequence": "cobblemon:pokemon/ambipom"
}
@@ -0,0 +1,59 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:red_mushroom",
"functions": [
{
"function": "set_count",
"count": {
"min": 0,
"max": 2
}
},
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:cheri_berry",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.05
}
]
}
]
}
],
"random_sequence": "cobblemon:pokemon/amoonguss"
}
@@ -0,0 +1,95 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:mutton",
"functions": [
{
"function": "set_count",
"count": {
"min": 2,
"max": 4
}
},
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
},
{
"conditions": [
{
"condition": "minecraft:any_of",
"terms": [
{
"condition": "minecraft:entity_properties",
"entity": "this",
"predicate": {
"flags": {
"is_on_fire": true
}
}
},
{
"condition": "minecraft:entity_properties",
"entity": "direct_attacker",
"predicate": {
"equipment": {
"mainhand": {
"predicates": {
"minecraft:enchantments": [
{
"enchantments": "#minecraft:smelts_loot"
}
]
}
}
}
}
}
]
}
],
"function": "minecraft:furnace_smelt"
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:cheri_berry",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.1
}
]
}
]
}
],
"random_sequence": "cobblemon:pokemon/ampharos"
}
@@ -0,0 +1,58 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:muscle_band",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.1
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:payapa_berry",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.1
}
]
}
]
}
],
"random_sequence": "cobblemon:pokemon/annihilape"
}
@@ -0,0 +1,32 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:quick_claw",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.05
}
]
}
]
}
],
"random_sequence": "cobblemon:pokemon/anorith"
}
@@ -0,0 +1,59 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:sweet_apple",
"functions": [
{
"function": "set_count",
"count": {
"min": 1,
"max": 1
}
},
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:yache_berry",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.05
}
]
}
]
}
],
"random_sequence": "cobblemon:pokemon/appletun"
}
@@ -0,0 +1,59 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:apple",
"functions": [
{
"function": "set_count",
"count": {
"min": 1,
"max": 1
}
},
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:yache_berry",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.025
}
]
}
]
}
],
"random_sequence": "cobblemon:pokemon/applin"
}
@@ -0,0 +1,84 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:mystic_water",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.05
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:shed_shell",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.05
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:wepear_berry",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.05
}
]
}
]
}
],
"random_sequence": "cobblemon:pokemon/araquanid"
}
@@ -0,0 +1,58 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:razor_fang",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.05
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:shed_shell",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.05
}
]
}
]
}
],
"random_sequence": "cobblemon:pokemon/arbok"
}
@@ -0,0 +1,84 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:big_root",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.1
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:grassy_seed",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.1
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:kebia_berry",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.1
}
]
}
]
}
],
"random_sequence": "cobblemon:pokemon/arboliva"
}
@@ -0,0 +1,59 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:bone",
"functions": [
{
"function": "set_count",
"count": {
"min": 0,
"max": 2
}
},
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:rawst_berry",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.05
}
]
}
]
}
],
"random_sequence": "cobblemon:pokemon/arcanine"
}
@@ -0,0 +1,59 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:bone",
"functions": [
{
"function": "set_count",
"count": {
"min": 0,
"max": 2
}
},
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:rawst_berry",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.05
}
]
}
]
}
],
"random_sequence": "cobblemon:pokemon/arcanine_hisui"
}
@@ -0,0 +1,5 @@
{
"type": "minecraft:generic",
"pools": [],
"random_sequence": "cobblemon:pokemon/arceus"
}
@@ -0,0 +1,5 @@
{
"type": "minecraft:generic",
"pools": [],
"random_sequence": "cobblemon:pokemon/archaludon"
}
@@ -0,0 +1,33 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:feather",
"functions": [
{
"function": "set_count",
"count": {
"min": 0,
"max": 2
}
},
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
]
}
]
}
],
"random_sequence": "cobblemon:pokemon/archen"
}
@@ -0,0 +1,33 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:feather",
"functions": [
{
"function": "set_count",
"count": {
"min": 0,
"max": 3
}
},
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
]
}
]
}
],
"random_sequence": "cobblemon:pokemon/archeops"
}
@@ -0,0 +1,32 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:haban_berry",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.1
}
]
}
]
}
],
"random_sequence": "cobblemon:pokemon/arctibax"
}
@@ -0,0 +1,96 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:bone",
"functions": [
{
"function": "set_count",
"count": {
"min": 0,
"max": 2
}
},
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:cod",
"functions": [
{
"function": "set_count",
"count": {
"min": 1,
"max": 1
}
},
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
},
{
"conditions": [
{
"condition": "minecraft:any_of",
"terms": [
{
"condition": "minecraft:entity_properties",
"entity": "this",
"predicate": {
"flags": {
"is_on_fire": true
}
}
},
{
"condition": "minecraft:entity_properties",
"entity": "direct_attacker",
"predicate": {
"equipment": {
"mainhand": {
"predicates": {
"minecraft:enchantments": [
{
"enchantments": "#minecraft:smelts_loot"
}
]
}
}
}
}
}
]
}
],
"function": "minecraft:furnace_smelt"
}
]
}
]
}
],
"random_sequence": "cobblemon:pokemon/arctovish"
}
@@ -0,0 +1,60 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:bone",
"functions": [
{
"function": "set_count",
"count": {
"min": 0,
"max": 2
}
},
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:feather",
"functions": [
{
"function": "set_count",
"count": {
"min": 0,
"max": 2
}
},
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
]
}
]
}
],
"random_sequence": "cobblemon:pokemon/arctozolt"
}
@@ -0,0 +1,139 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:string",
"functions": [
{
"function": "set_count",
"count": {
"min": 0,
"max": 2
}
},
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:spider_eye",
"functions": [
{
"function": "set_count",
"count": {
"min": 0,
"max": 2
}
},
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:rotten_flesh",
"functions": [
{
"function": "set_count",
"count": {
"min": 0,
"max": 2
}
},
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:poison_barb",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.05
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:shed_shell",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.05
}
]
}
]
}
],
"random_sequence": "cobblemon:pokemon/ariados"
}
@@ -0,0 +1,58 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:quick_claw",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.1
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:shed_shell",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.1
}
]
}
]
}
],
"random_sequence": "cobblemon:pokemon/armaldo"
}
@@ -0,0 +1,163 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:charcoal_stick",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.05
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:auspicious_armor",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.05
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:rawst_berry",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.05
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:charcoal",
"functions": [
{
"function": "set_count",
"count": {
"min": 0,
"max": 2
}
},
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:inverted",
"term": {
"condition": "minecraft:any_of",
"terms": [
{
"condition": "cobblemon:biome",
"biome": "#minecraft:is_nether"
}
]
}
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:blaze_rod",
"functions": [
{
"function": "set_count",
"count": {
"min": 0,
"max": 2
}
},
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:all_of",
"terms": [
{
"condition": "cobblemon:biome",
"biome": "#minecraft:is_nether"
}
]
}
]
}
]
}
],
"random_sequence": "cobblemon:pokemon/armarouge"
}
@@ -0,0 +1,84 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:misty_seed",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.05
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:kebia_berry",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.05
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:fairy_feather",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.05
}
]
}
]
}
],
"random_sequence": "cobblemon:pokemon/aromatisse"
}
@@ -0,0 +1,85 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:raw_iron",
"functions": [
{
"function": "set_count",
"count": {
"min": 0,
"max": 1
}
},
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:hard_stone",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.025
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:chople_berry",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.025
}
]
}
]
}
],
"random_sequence": "cobblemon:pokemon/aron"
}
@@ -0,0 +1,95 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:salmon",
"functions": [
{
"function": "set_count",
"count": {
"min": 1,
"max": 1
}
},
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
},
{
"conditions": [
{
"condition": "minecraft:any_of",
"terms": [
{
"condition": "minecraft:entity_properties",
"entity": "this",
"predicate": {
"flags": {
"is_on_fire": true
}
}
},
{
"condition": "minecraft:entity_properties",
"entity": "direct_attacker",
"predicate": {
"equipment": {
"mainhand": {
"predicates": {
"minecraft:enchantments": [
{
"enchantments": "#minecraft:smelts_loot"
}
]
}
}
}
}
}
]
}
],
"function": "minecraft:furnace_smelt"
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:bone_meal",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.05
}
]
}
]
}
],
"random_sequence": "cobblemon:pokemon/arrokuda"
}
@@ -0,0 +1,123 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:feather",
"functions": [
{
"function": "set_count",
"count": {
"min": 2,
"max": 4
}
},
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:chicken",
"functions": [
{
"function": "set_count",
"count": {
"min": 1,
"max": 1
}
},
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
},
{
"conditions": [
{
"condition": "minecraft:any_of",
"terms": [
{
"condition": "minecraft:entity_properties",
"entity": "this",
"predicate": {
"flags": {
"is_on_fire": true
}
}
},
{
"condition": "minecraft:entity_properties",
"entity": "direct_attacker",
"predicate": {
"equipment": {
"mainhand": {
"predicates": {
"minecraft:enchantments": [
{
"enchantments": "#minecraft:smelts_loot"
}
]
}
}
}
}
}
]
}
],
"function": "minecraft:furnace_smelt"
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:never_melt_ice",
"functions": [
{
"function": "set_count",
"count": {
"min": 1,
"max": 1
}
},
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
]
}
]
}
],
"random_sequence": "cobblemon:pokemon/articuno"
}
@@ -0,0 +1,123 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:feather",
"functions": [
{
"function": "set_count",
"count": {
"min": 2,
"max": 4
}
},
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:chicken",
"functions": [
{
"function": "set_count",
"count": {
"min": 1,
"max": 1
}
},
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
},
{
"conditions": [
{
"condition": "minecraft:any_of",
"terms": [
{
"condition": "minecraft:entity_properties",
"entity": "this",
"predicate": {
"flags": {
"is_on_fire": true
}
}
},
{
"condition": "minecraft:entity_properties",
"entity": "direct_attacker",
"predicate": {
"equipment": {
"mainhand": {
"predicates": {
"minecraft:enchantments": [
{
"enchantments": "#minecraft:smelts_loot"
}
]
}
}
}
}
}
]
}
],
"function": "minecraft:furnace_smelt"
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:twisted_spoon",
"functions": [
{
"function": "set_count",
"count": {
"min": 1,
"max": 1
}
},
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
]
}
]
}
],
"random_sequence": "cobblemon:pokemon/articuno_galar"
}
@@ -0,0 +1,58 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:oran_berry",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.05
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:fairy_feather",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.05
}
]
}
]
}
],
"random_sequence": "cobblemon:pokemon/audino"
}
@@ -0,0 +1,32 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:never_melt_ice",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.1
}
]
}
]
}
],
"random_sequence": "cobblemon:pokemon/aurorus"
}

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