Compare commits

...
Author SHA1 Message Date
apion b36f84178e Merge remote-tracking branch 'origin/main' into feature/flashback-compat
# Conflicts:
#	fabric/src/main/resources/mixins.cobblemon-fabric.json
2025-11-26 20:33:51 -05:00
Polymeta 635f29e1ac fix glass bottle not being returned when using honey on saccharine leaves
Signed-off-by: Polymeta <40173118+Polymeta@users.noreply.github.com>
2025-11-26 22:08:12 +00:00
Polymeta db2001b60a Merge branch 'attempted-jvm-fix' into 'main'
Fixed JVM crash from campfire pot

Closes #1795

See merge request cable-mc/cobblemon!2040
2025-11-26 21:40:30 +00:00
Hiroku b5098a2ad0 Fixed JVM crash from campfire pot 2025-11-26 21:40:29 +00:00
Polymeta 8c939ee276 Merge branch 'lets-wind-down' into 'main'
Fixes wind charges recalling pastured pokémon

Closes #1805

See merge request cable-mc/cobblemon!2042
2025-11-26 13:27:12 +00:00
Neovitalism 645b8993c8 Fixes wind charges recalling pastured pokémon 2025-11-26 13:27:12 +00:00
Polymeta d96799cac7 Merge branch 'feature/neoforge-recipe-book' into 'main'
split recipebooktype and category across fabric and neoforge so we can leverage neoforge APIs

Closes #1789 and #1787

See merge request cable-mc/cobblemon!2044
2025-11-26 12:44:06 +00:00
Polymeta b822b626c4 split recipebooktype and category across fabric and neoforge so we can leverage neoforge APIs 2025-11-26 12:44:05 +00:00
Polymeta 4d9b182fb3 fix hearty grains crashing if a block is in the way
Closes #1818

Signed-off-by: Polymeta <40173118+Polymeta@users.noreply.github.com>
2025-11-26 11:59:25 +00:00
Polymeta 88d155eaf4 [skip-ci] more changelog
Signed-off-by: Polymeta <40173118+Polymeta@users.noreply.github.com>
2025-11-26 11:33:57 +00:00
Paul af96469b7a changelog [skip-ci] 2025-11-26 21:17:15 +10:00
Paul 65f1e7a3be Merge remote-tracking branch 'weblate/lang-updates' 2025-11-26 21:14:31 +10:00
阿鱼 16cd2de02f Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 99.4% (8973 of 9019 strings)

Translation: Cobblemon/Mod
Translate-URL: http://lang.cobblemon.com/projects/cobblemon/mod/zh_Hans/
2025-11-26 10:03:51 +00:00
Polymeta 22a44bd7e9 Merge branch 'ImprovedPastureBees' into 'main'
Improved Pasture Combees and More

See merge request cable-mc/cobblemon!2043
2025-11-26 09:36:28 +00:00
Polymeta d37bd4ef03 Merge branch 'OmnipathNavigationCrashFix' into 'main'
OmnipathNavigationCrashFix

See merge request cable-mc/cobblemon!2045
2025-11-26 09:34:03 +00:00
Hiroku a3d9a10f2e Merge branch 'wallpaper' into 'main'
Remove auto generated screen glow due to rendering issues

See merge request cable-mc/cobblemon!2047
2025-11-26 08:48:00 +00:00
Test 7801e3feee changelog clarification [skip-ci] 2025-11-26 04:56:10 +00:00
Test 4a54cb4674 remove auto generated screen glow 2025-11-26 04:38:14 +00:00
JazzMcNade 24fe1c125c changelog 2025-11-25 21:47:45 -06:00
JazzMcNade 023160f87a Removed a really silly cast 2025-11-25 21:32:17 -06:00
Polymeta 17fbf7c6f0 defensive pokemon casts as NPCs use this too
Signed-off-by: Polymeta <40173118+Polymeta@users.noreply.github.com>
2025-11-25 16:53:26 +00:00
Polymeta ec86b7d4bf fix tag reference
Signed-off-by: Polymeta <40173118+Polymeta@users.noreply.github.com>
2025-11-25 15:18:09 +00:00
阿鱼 7561eb116f Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 99.3% (8960 of 9019 strings)

Translation: Cobblemon/Mod
Translate-URL: http://lang.cobblemon.com/projects/cobblemon/mod/zh_Hans/
2025-11-25 14:20:09 +00:00
Polymeta 6467b97a23 Merge branch 'implement_pokemon' into 'main'
marked furfrou as implemented

See merge request cable-mc/cobblemon!2041
2025-11-25 12:16:02 +00:00
JazzMcNade 6d5909a1e3 Added rain clause, do not attempt to enter a full hive, changelog 2025-11-25 02:17:28 -06:00
JazzMcNade 2bb0d43ca8 Fix wandering for pastured bees, fix hoverpos not being cleared 2025-11-25 00:51:04 -06:00
Watuneni iteite 1fb3f0ebdc Translated using Weblate (Japanese)
Currently translated at 99.2% (8954 of 9019 strings)

Translation: Cobblemon/Mod
Translate-URL: http://lang.cobblemon.com/projects/cobblemon/mod/ja/
2025-11-25 06:46:07 +00:00
violet fb2154e2c3 Merge remote-tracking branch 'origin/implement_pokemon' into implement_pokemon 2025-11-24 22:06:34 -05:00
violet 3b14d19fdb marked furfrou as implemented 2025-11-24 22:06:22 -05:00
Carmendar 6840c2fdef Merge branch 'main' into implement_pokemon 2025-11-24 17:28:35 -06:00
阿鱼 8fc2031806 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 99.2% (8954 of 9019 strings)

Translation: Cobblemon/Mod
Translate-URL: http://lang.cobblemon.com/projects/cobblemon/mod/zh_Hans/
2025-11-24 21:23:59 +00:00
Alexis Salgueiro 4795e2e1bc Translated using Weblate (French)
Currently translated at 99.6% (8984 of 9019 strings)

Translation: Cobblemon/Mod
Translate-URL: http://lang.cobblemon.com/projects/cobblemon/mod/fr/
2025-11-24 11:22:45 +00:00
Carmendar c563627b05 Shiny female Combee is now actually shiny. 2025-11-24 02:31:25 -06:00
violet 73ebf7a789 tiny typo fix 2025-11-24 03:18:38 -05:00
Landon a1b3d3d2ca Merge branch 'lets-be-friends-again' into 'main'
Move friendship logic to spawn action

See merge request cable-mc/cobblemon!2037
2025-11-24 06:50:24 +00:00
lion 8baacbcf90 Move friendship logic to spawn action 2025-11-24 06:50:23 +00:00
Hiroku f2e357b749 Merge branch 'pc-crash-fix' into 'main'
Fix PC crash with VulkanMod

Closes #1793

See merge request cable-mc/cobblemon!2038
2025-11-24 04:28:32 +00:00
Test b95900b29a Fix PC crash with VulkanMod 2025-11-23 22:39:28 -05:00
Hiroku 03585fafb0 Merge branch 'HoneyIForgotTheNectar' into 'main'
Don't Forget the Nectar

See merge request cable-mc/cobblemon!2031
2025-11-24 01:38:14 +00:00
washashu0905 e3d0252d75 Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 94.4% (8519 of 9019 strings)

Translation: Cobblemon/Mod
Translate-URL: http://lang.cobblemon.com/projects/cobblemon/mod/zh_Hant/
2025-11-24 00:10:57 +00:00
阿鱼 dbe8e57341 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 99.2% (8950 of 9019 strings)

Translation: Cobblemon/Mod
Translate-URL: http://lang.cobblemon.com/projects/cobblemon/mod/zh_Hans/
2025-11-24 00:10:56 +00:00
Zack the Ghast 6f37fd69cd Translated using Weblate (Portuguese (Brazil))
Currently translated at 97.4% (8791 of 9019 strings)

Translation: Cobblemon/Mod
Translate-URL: http://lang.cobblemon.com/projects/cobblemon/mod/pt_BR/
2025-11-24 00:10:55 +00:00
JazzMcNade b191f4e9fb Check hivecooldown memory registration 2025-11-23 15:42:56 -06:00
Hiroku a5a7cc20ba Merge branch 'eating-cough-drops' into 'main'
Throat Spray Recipe

See merge request cable-mc/cobblemon!2036
2025-11-23 11:48:00 +00:00
Polymeta 02b6c46082 [skip-ci] 1.7 tag doc files
Signed-off-by: Polymeta <40173118+Polymeta@users.noreply.github.com>
2025-11-23 11:39:39 +00:00
dhi_holo 881a30cca4 Merge branch 'main' into eating-cough-drops 2025-11-23 20:33:20 +10:00
dhi_holo d01011f4d0 Throat Spray Recipe
This either was lost at some point or never existed in the mod, I'm not sure which. It's here now!
2025-11-23 20:32:21 +10:00
Landon 309ed379c7 Merge branch 'AAAAAAAAAAAAAAAAAAAAA' into 'main'
unfudge camera maybe please

See merge request cable-mc/cobblemon!2030
2025-11-23 10:30:50 +00:00
Landon Wills edbf667f45 Add changelog 2025-11-23 04:44:02 -05:00
Landon Wills b6bc766adf Merge branch 'main' into AAAAAAAAAAAAAAAAAAAAA 2025-11-23 04:42:52 -05:00
Test 1ecf556cf2 Merge branch 'nom' into 'main'
Small Fixes

See merge request cable-mc/cobblemon!2035
2025-11-23 03:46:33 +00:00
dhi_holo 6d32073604 Small Fixes
- Ponigiri can no longer be eaten at full hunger
- Medicinal Brew's Campfire Pot recipe now correctly displays that it can be made using an empty glass bottle or a filled bottle
- Added trades for Saccharine Saplings, Hearty Grains, Chipped Pot, and Masterpiece Teacup to the Wandering Trader
- Reduced cost of the Vivichoke Seed trade with the Wandering Trader
2025-11-23 12:45:18 +10:00
Hiroku aa0f5d8a05 Merge branch 'vanilla-ride-fix-and-misc-ride-fixes' into 'main'
Fix vanilla rides suffocating players and misc cobble riding fixes

See merge request cable-mc/cobblemon!2033
2025-11-22 23:50:31 +00:00
jackowes 6202c14215 - changelog update 2025-11-22 16:42:20 -06:00
Hiroku b0790341c7 Merge branch 'some-fixes' into 'main'
Some fixes

See merge request cable-mc/cobblemon!2032
2025-11-22 22:36:17 +00:00
jackowes 4f0fa6af4a - Fix horse player suffocation on vanilla mounts
- stop passengers from hearing the shiny noise of a ridden shiny pokemon.
- Convert the riding freelook button to a configurable keybinding

(cherry picked from commit 6432db9f7d)
2025-11-22 16:24:25 -06:00
JazzMcNade 4e24e09924 Safer memory reading in hive occupant mixins 2025-11-22 16:19:30 -06:00
jackowes 48676067b7 Revert "- Fix horse player suffocation on vanilla mounts"
This reverts commit 6432db9f7d.
2025-11-22 16:16:17 -06:00
jackowes 6432db9f7d - Fix horse player suffocation on vanilla mounts
- stop passengers from hearing the shiny noise of a ridden shiny pokemon.
- Convert the riding freelook button to a configurable keybinding
2025-11-22 16:13:47 -06:00
Test 2cb28fb384 rm unused imports 2025-11-22 12:57:59 -05:00
JazzMcNade 3b59148151 changelog again 2025-11-22 11:43:44 -06:00
JazzMcNade d6198631ba New Changelog 2025-11-22 11:40:03 -06:00
geumu 47daea6195 Translated using Weblate (Korean)
Currently translated at 75.6% (6826 of 9019 strings)

Translation: Cobblemon/Mod
Translate-URL: http://lang.cobblemon.com/projects/cobblemon/mod/ko/
2025-11-22 17:37:36 +00:00
Watuneni iteite aca66a4bb0 Translated using Weblate (Japanese)
Currently translated at 99.2% (8954 of 9019 strings)

Translation: Cobblemon/Mod
Translate-URL: http://lang.cobblemon.com/projects/cobblemon/mod/ja/
2025-11-22 17:37:35 +00:00
Test e9fe1774c0 fix poke snack sound issue, prevent ride controls from showing to passengers 2025-11-22 12:36:31 -05:00
JazzMcNade bb8b8a77c9 Fixed bees forgetting that they had nectar upon entering a hive 2025-11-22 11:07:37 -06:00
Paul c692b6b5c1 Reset changelog [skip-ci] 2025-11-22 23:09:37 +10:00
geumu 68c6d5d9b2 Translated using Weblate (Korean)
Currently translated at 75.6% (6825 of 9019 strings)

Translation: Cobblemon/Mod
Translate-URL: http://lang.cobblemon.com/projects/cobblemon/mod/ko/
2025-11-22 07:33:14 +00:00
Landon Wills 221547aabf unfuck camera maybe please 2025-11-21 22:39:19 -05:00
Watuneni iteite f6b3591d80 Translated using Weblate (Japanese)
Currently translated at 99.2% (8954 of 9019 strings)

Translation: Cobblemon/Mod
Translate-URL: http://lang.cobblemon.com/projects/cobblemon/mod/ja/
2025-11-22 03:06:51 +00:00
geumu f9878d6137 Translated using Weblate (Korean)
Currently translated at 75.2% (6740 of 8962 strings)

Translation: Cobblemon/Mod
Translate-URL: http://lang.cobblemon.com/projects/cobblemon/mod/ko/
2025-11-22 01:45:14 +00:00
Watuneni iteite 94da3b8d21 Translated using Weblate (Japanese)
Currently translated at 100.0% (8962 of 8962 strings)

Translation: Cobblemon/Mod
Translate-URL: http://lang.cobblemon.com/projects/cobblemon/mod/ja/
2025-11-22 01:45:14 +00:00
Nick 3a2ff9de75 1.7.1 SNAPSHOT in prep for next development cycle 2025-11-21 17:06:08 -08:00
Paul b249896316 more changelog [skip-ci] 2025-11-22 09:37:51 +10:00
Test 1cb6979b90 More changelog cleanup [skip-ci] 2025-11-21 20:56:30 +00:00
Polymeta e983d2c1db Merge branch 'implement_pokemon' into 'main'
marked togedemaru as implemented

See merge request cable-mc/cobblemon!2029
2025-11-21 20:16:07 +00:00
violet 9ee0cf941b Merge remote-tracking branch 'origin/implement_pokemon' into implement_pokemon 2025-11-21 14:29:35 -05:00
violet 8436c93317 marked togedemaru as implemented 2025-11-21 14:29:19 -05:00
Paul 7f0329acb7 Loads of changelog restructuring, separated old versions out into their own files [skip-ci] 2025-11-21 23:49:00 +10:00
Polymeta 83489b7230 nothing to see here
Signed-off-by: Polymeta <40173118+Polymeta@users.noreply.github.com>
2025-11-21 13:09:27 +00:00
Landon 081a25f04b Merge branch 'does-anyone-even-read-these' into 'main'
Fix mutation of vector after changing from Vector3f to Vec3

See merge request cable-mc/cobblemon!2028
2025-11-21 12:42:41 +00:00
Landon Wills 38bdfae0db Fix mutation of vector after changing from Vector3f to Vec3 2025-11-21 06:57:06 -05:00
Landon bd3a9e30f1 Merge branch 'fix-npc-behavior-json' into 'main'
Fix NPC Behavior Json key

See merge request cable-mc/cobblemon!2026
2025-11-21 11:02:11 +00:00
Hiroku 7ce968f467 Merge branch 'implement_pokemon' into 'main'
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA...

See merge request cable-mc/cobblemon!2027
2025-11-21 10:33:34 +00:00
Hiroku 9ac8cc56f0 Merge branch 'main' into 'implement_pokemon'
# Conflicts:
#   common/src/main/resources/data/cobblemon/species/generation5/patrat.json
#   common/src/main/resources/data/cobblemon/species/generation9/tadbulb.json
2025-11-21 09:45:22 +00:00
Polymeta 98159e1e0e Merge branch 'smeargle-tail-reset' into 'main'
Fixed smeargle tail changing colour between relogs

See merge request cable-mc/cobblemon!2024
2025-11-21 09:44:00 +00:00
violet 025b5aae74 edited treecko line, braixen, and delphox's files 2025-11-21 04:27:03 -05:00
Deltric 2fddb21585 Fixed NPC behavior key fix, yes that's right behavior not behaviour @Hiroku. 2025-11-21 01:32:54 -06:00
violet 6b75976236 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 2025-11-21 02:17:36 -05:00
Paul fdf419ec8f Rescraped for willFlee scraper bug, restoring flee behaviour for hundreds of pokes 2025-11-21 17:12:20 +10:00
Paul d2ceb2d58a Fixed wooper and whiscash forms being fished by all rods 2025-11-21 17:11:11 +10:00
Hiroku 6d8311a66c Merge branch '1.7-spawns-update' into 'main'
Updated spawns for 1/100 chance form Pokémon.

See merge request cable-mc/cobblemon!2025
2025-11-21 07:07:00 +00:00
Veraxiel 18a3d1c22c Updated spawns for 1/100 chance form Pokémon. 2025-11-21 01:54:50 -05:00
Hiroku b382a1b2db Merge branch '1.7-tag-cleanup' into 'main'
1.7 tag cleanup

See merge request cable-mc/cobblemon!2017
2025-11-21 06:29:22 +00:00
Paul dd17fa138e Fixed smeargle tail changing colour between relogs 2025-11-21 16:27:56 +10:00
Test 09dd623ea7 Amend dolphin controls overlay 2025-11-21 06:24:56 +00:00
Landon 8c01bb831f Merge branch 'path-faster-and-less-and-faster' into 'main'
Following the owner should not be so aggressive. Path cooldown, and consider...

See merge request cable-mc/cobblemon!2019
2025-11-21 06:09:10 +00:00
Paul 2cb4372496 Removed cry from slowpoke tail'ing 2025-11-21 15:04:43 +10:00
Hiroku 7597b2d98e Merge branch 'fated-faint' into 'main'
Crafting Fix

See merge request cable-mc/cobblemon!2023
2025-11-21 04:54:05 +00:00
dhi_holo 5ac2729a77 Crafting Fix
EV Feathers now unlock in recipe book, and Mochi cannot be crafted in a table, now requires campfire pot cooking
2025-11-21 14:46:13 +10:00
Hiroku bec1fca7a5 Merge branch 'brewer-only' into 'main'
Quick Brewing Only-ification

See merge request cable-mc/cobblemon!2022
2025-11-21 04:19:04 +00:00
dhi_holo 32d145f3cc Quick Brewing Only-ification
Removed 8 recipes that were meant to be removed, added translation for a newer tag that was missed over
2025-11-21 13:34:52 +10:00
Paul a5f1a14e21 Merge remote-tracking branch 'weblate/lang-updates'
# Conflicts:
#	common/src/main/resources/assets/cobblemon/lang/pt_br.json
2025-11-21 11:43:28 +10:00
Landon 57784b8620 Merge branch 'camera-farlands' into 'main'
Switch to using Doubles when positioning camera.

See merge request cable-mc/cobblemon!2021
2025-11-20 23:28:26 +00:00
JPAKx4 a29b3342a1 Switch to using Doubles when positioning camera. 2025-11-20 16:41:13 -06:00
Polymeta 64d6560caf Merge branch 'cobble-jail-here-i-come' into 'main'
Small fixes

See merge request cable-mc/cobblemon!2018
2025-11-20 22:10:32 +00:00
Polymeta 2e314e48fb Merge branch 'Car-fixes' into 'main'
Car fixes

See merge request cable-mc/cobblemon!2016
2025-11-20 21:19:50 +00:00
Nick e8d1e3766b Merge branch 'fix-pc-deserialisation' into 'main'
Fix PC JSON loading

See merge request cable-mc/cobblemon!2020
2025-11-20 12:09:54 -08:00
Landon Wills 012682268e Add safe check for nbt 2025-11-20 14:22:32 -05:00
Landon Wills 38428e4ea9 Fix PC JSON loading 2025-11-20 14:19:17 -05:00
Paul 567132bc0c Even more aggressive optimizations for the nodemaker 2025-11-20 23:07:59 +10:00
Paul e7209e4000 More aggressive optimizations for the nodemaker 2025-11-20 22:40:19 +10:00
Guilherme Pereira 0f02313a14 prevent pokemon from being busy when capturing player gets killed 2025-11-20 03:13:55 -03:00
Guilherme Pereira 3249e4bbb1 prevent pokemon from doing damage when being captured 2025-11-20 03:13:15 -03:00
geumu 36aca65003 Translated using Weblate (Korean)
Currently translated at 67.0% (6010 of 8962 strings)

Translation: Cobblemon/Mod
Translate-URL: http://lang.cobblemon.com/projects/cobblemon/mod/ko/
2025-11-20 05:48:24 +00:00
Watuneni iteite c6635213a2 Translated using Weblate (Japanese)
Currently translated at 99.2% (8897 of 8962 strings)

Translation: Cobblemon/Mod
Translate-URL: http://lang.cobblemon.com/projects/cobblemon/mod/ja/
2025-11-20 05:48:23 +00:00
Watuneni iteite b76158d1d7 Translated using Weblate (Japanese)
Currently translated at 99.2% (8896 of 8962 strings)

Translation: Cobblemon/Mod
Translate-URL: http://lang.cobblemon.com/projects/cobblemon/mod/ja/
2025-11-20 02:32:39 +00:00
geumu 916ec97fce Translated using Weblate (Korean)
Currently translated at 66.6% (5972 of 8962 strings)

Translation: Cobblemon/Mod
Translate-URL: http://lang.cobblemon.com/projects/cobblemon/mod/ko/
2025-11-20 02:32:36 +00:00
Veraxiel 36b38d36cb Updated biome tags. 2025-11-19 21:00:27 -05:00
Veraxiel f1163977e1 Updated biome and seasoning tags. Updated Sinister Tea recipe filter. 2025-11-19 20:59:42 -05:00
Carmendar a7dd6d52c8 Charizard and Mudsdale Look tweaks. 2025-11-19 19:29:19 -06:00
Watuneni iteite 6898804e83 Translated using Weblate (Japanese)
Currently translated at 96.9% (8686 of 8962 strings)

Translation: Cobblemon/Mod
Translate-URL: http://lang.cobblemon.com/projects/cobblemon/mod/ja/
2025-11-20 00:40:19 +00:00
Carmendar 2331603b27 Tyrantrum sleep t-pose fix. 2025-11-19 18:30:38 -06:00
Carmendar c8e9cbbe59 Furfrou cry fix 2025-11-19 18:30:11 -06:00
Carmendar d374635648 Aerodactyl Battle Cry and Texture fix 2025-11-19 18:29:39 -06:00
Polymeta 803d3be325 recipe and tag tweak
Signed-off-by: Polymeta <40173118+Polymeta@users.noreply.github.com>
2025-11-19 23:59:55 +00:00
Polymeta 50bacbe25e Merge branch 'fix_medicinal_brew_from_cooking_pot_recipe' into 'main'
Revert Medicinal Brew recipe back to water bottle as opposed to empty bottle.

See merge request cable-mc/cobblemon!2015
2025-11-19 23:55:28 +00:00
Faintful 94ef9830b7 Revert Medicinal Brew recipe back to water bottle as opposed to empty bottle. 2025-11-19 21:17:22 +01:00
Weblate 87502f36c4 Update translation files
Updated by "Remove blank strings" add-on in Weblate.

Translation: Cobblemon/Mod
Translate-URL: http://lang.cobblemon.com/projects/cobblemon/mod/
2025-11-19 16:43:18 +00:00
Nico Merenq bed511d403 Translated using Weblate (Russian)
Currently translated at 78.3% (7019 of 8962 strings)

Translation: Cobblemon/Mod
Translate-URL: http://lang.cobblemon.com/projects/cobblemon/mod/ru/
2025-11-19 16:43:14 +00:00
阿鱼 4170b00e31 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (8962 of 8962 strings)

Translation: Cobblemon/Mod
Translate-URL: http://lang.cobblemon.com/projects/cobblemon/mod/zh_Hans/
2025-11-19 16:43:13 +00:00
geumu 3cc90daaf0 Translated using Weblate (Korean)
Currently translated at 66.2% (5937 of 8962 strings)

Translation: Cobblemon/Mod
Translate-URL: http://lang.cobblemon.com/projects/cobblemon/mod/ko/
2025-11-19 16:43:12 +00:00
Polymeta b0ecd24f42 Merge branch 'aprijuice-advancement-fix' into 'main'
Fixed max ride boosts advancement not working properly

See merge request cable-mc/cobblemon!2014
2025-11-19 14:10:10 +00:00
Polymeta ade5603331 Edit max_ride_stats.json 2025-11-19 13:25:03 +00:00
Paul 34bcefb09f Fixed max ride boosts advancement not working properly 2025-11-19 21:41:14 +10:00
Hiroku dccc9dfbcb Merge branch 'sterr/sound-fixes' into 'main'
Audio fixes stuff

See merge request cable-mc/cobblemon!2013
2025-11-19 11:29:40 +00:00
Weblate 9a1d6461d9 Update translation files
Updated by "Remove blank strings" add-on in Weblate.

Translation: Cobblemon/Mod
Translate-URL: http://lang.cobblemon.com/projects/cobblemon/mod/
2025-11-19 11:12:29 +00:00
Watuneni iteite 2dc76ffe3e Translated using Weblate (Japanese)
Currently translated at 96.4% (8646 of 8962 strings)

Translation: Cobblemon/Mod
Translate-URL: http://lang.cobblemon.com/projects/cobblemon/mod/ja/
2025-11-19 11:12:25 +00:00
geumu 87225d8981 Translated using Weblate (Korean)
Currently translated at 65.6% (5886 of 8962 strings)

Translation: Cobblemon/Mod
Translate-URL: http://lang.cobblemon.com/projects/cobblemon/mod/ko/
2025-11-19 11:12:24 +00:00
Sterrezo 4bf4101fd1 Audio fixes stuff 2025-11-19 11:39:24 +01:00
geumu c3d7537b3e Translated using Weblate (Korean)
Currently translated at 65.0% (5832 of 8962 strings)

Translation: Cobblemon/Mod
Translate-URL: http://lang.cobblemon.com/projects/cobblemon/mod/ko/
2025-11-19 00:43:57 +00:00
geumu 31c55a9b6f Translated using Weblate (Korean)
Currently translated at 65.0% (5832 of 8962 strings)

Translation: Cobblemon/Mod
Translate-URL: http://lang.cobblemon.com/projects/cobblemon/mod/ko/
2025-11-18 17:39:25 +00:00
Weblate e9e4158666 Update translation files
Updated by "Remove blank strings" add-on in Weblate.

Translation: Cobblemon/Mod
Translate-URL: http://lang.cobblemon.com/projects/cobblemon/mod/
2025-11-18 09:44:12 +00:00
Watuneni iteite b15917898f Translated using Weblate (Japanese)
Currently translated at 95.7% (8582 of 8962 strings)

Translation: Cobblemon/Mod
Translate-URL: http://lang.cobblemon.com/projects/cobblemon/mod/ja/
2025-11-18 09:44:07 +00:00
Teggy ef3179bfa2 Translated using Weblate (Spanish)
Currently translated at 84.8% (7602 of 8962 strings)

Translation: Cobblemon/Mod
Translate-URL: http://lang.cobblemon.com/projects/cobblemon/mod/es/
2025-11-18 09:44:06 +00:00
阿鱼 f0afb8b3d9 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 99.9% (8959 of 8962 strings)

Translation: Cobblemon/Mod
Translate-URL: http://lang.cobblemon.com/projects/cobblemon/mod/zh_Hans/
2025-11-18 09:44:05 +00:00
geumu 17e58b0ce5 Translated using Weblate (Korean)
Currently translated at 63.7% (5714 of 8962 strings)

Translation: Cobblemon/Mod
Translate-URL: http://lang.cobblemon.com/projects/cobblemon/mod/ko/
2025-11-18 09:44:04 +00:00
Apion a6c02cc63e Fix server crash 2025-11-16 13:29:02 -05:00
Apion fc229298e7 Fix bug where Flashback didn't track some driver state when the recorder was driving 2025-11-16 01:36:25 -05:00
Apion 3a0239a01f Fix crash with flashback related to improper riding packet handling 2025-11-15 21:23:17 -05:00
Apion 2dc027ec5f Fix bug with flashback where riding state was not properly updates 2025-11-15 21:22:48 -05:00
Apion 230cb02afe Revert "Add gross fix for flashback only."
This reverts commit 3f458bd210.
2025-11-15 14:28:36 -05:00
Nico Merenq 250724ef1f Translated using Weblate (Russian)
Currently translated at 77.9% (6988 of 8962 strings)

Translation: Cobblemon/Mod
Translate-URL: http://lang.cobblemon.com/projects/cobblemon/mod/ru/
2025-11-15 15:05:37 +00:00
Patch Notes Guy 3e1837543d Translated using Weblate (Ukrainian)
Currently translated at 77.5% (6948 of 8962 strings)

Translation: Cobblemon/Mod
Translate-URL: http://lang.cobblemon.com/projects/cobblemon/mod/uk/
2025-11-15 10:45:37 +00:00
Nico Merenq 1add7ea4cb Translated using Weblate (Russian)
Currently translated at 77.1% (6916 of 8962 strings)

Translation: Cobblemon/Mod
Translate-URL: http://lang.cobblemon.com/projects/cobblemon/mod/ru/
2025-11-15 06:14:04 +00:00
Felipe Bermudes Ormeño e497cd445a Translated using Weblate (Spanish (Mexico))
Currently translated at 26.7% (2394 of 8962 strings)

Translation: Cobblemon/Mod
Translate-URL: http://lang.cobblemon.com/projects/cobblemon/mod/es_MX/
2025-11-15 06:14:02 +00:00
JPAKx4 3f458bd210 Add gross fix for flashback only. 2025-11-14 20:47:58 -06:00
JPAKx4 b07ea7566b Merge branch 'main' into feature/flashback-compat 2025-11-14 20:19:49 -06:00
Nico Merenq e382e89e06 Translated using Weblate (Russian)
Currently translated at 76.6% (6868 of 8962 strings)

Translation: Cobblemon/Mod
Translate-URL: http://lang.cobblemon.com/projects/cobblemon/mod/ru/
2025-11-14 17:21:23 +00:00
Gustavo Puerari faf64a6092 Translated using Weblate (Portuguese (Brazil))
Currently translated at 98.2% (8804 of 8962 strings)

Translation: Cobblemon/Mod
Translate-URL: http://lang.cobblemon.com/projects/cobblemon/mod/pt_BR/
2025-11-14 17:21:21 +00:00
geumu aa8d0a9d48 Translated using Weblate (Korean)
Currently translated at 61.5% (5513 of 8962 strings)

Translation: Cobblemon/Mod
Translate-URL: http://lang.cobblemon.com/projects/cobblemon/mod/ko/
2025-11-14 10:22:59 +00:00
Zack the Ghast 7a8dbbb4ce Translated using Weblate (Portuguese (Portugal))
Currently translated at 67.6% (6059 of 8962 strings)

Translation: Cobblemon/Mod
Translate-URL: http://lang.cobblemon.com/projects/cobblemon/mod/pt_PT/
2025-11-14 08:26:53 +00:00
Watuneni iteite b8e1abc80b Translated using Weblate (Japanese)
Currently translated at 94.6% (8484 of 8962 strings)

Translation: Cobblemon/Mod
Translate-URL: http://lang.cobblemon.com/projects/cobblemon/mod/ja/
2025-11-14 08:26:52 +00:00
Yasito 12df9d29f5 Translated using Weblate (French)
Currently translated at 100.0% (8962 of 8962 strings)

Translation: Cobblemon/Mod
Translate-URL: http://lang.cobblemon.com/projects/cobblemon/mod/fr/
2025-11-14 08:26:51 +00:00
Yasito 2df0542631 Translated using Weblate (French (Canada))
Currently translated at 100.0% (8962 of 8962 strings)

Translation: Cobblemon/Mod
Translate-URL: http://lang.cobblemon.com/projects/cobblemon/mod/fr_CA/
2025-11-14 08:26:50 +00:00
dhi_holo e22b79a47c Translated using Weblate (English (en_PT))
Currently translated at 28.4% (2550 of 8962 strings)

Translation: Cobblemon/Mod
Translate-URL: http://lang.cobblemon.com/projects/cobblemon/mod/en_PT/
2025-11-14 08:26:49 +00:00
Weblate 0c4bbef855 Update translation files
Updated by "Remove blank strings" add-on in Weblate.

Translation: Cobblemon/Mod
Translate-URL: http://lang.cobblemon.com/projects/cobblemon/mod/
2025-11-13 13:42:34 +00:00
Nico Merenq 6fb34b5ee3 Translated using Weblate (Russian)
Currently translated at 76.0% (6819 of 8962 strings)

Translation: Cobblemon/Mod
Translate-URL: http://lang.cobblemon.com/projects/cobblemon/mod/ru/
2025-11-13 13:42:29 +00:00
dhi_holo f345b19d57 Translated using Weblate (English (en_PT))
Currently translated at 26.7% (2399 of 8962 strings)

Translation: Cobblemon/Mod
Translate-URL: http://lang.cobblemon.com/projects/cobblemon/mod/en_PT/
2025-11-13 13:42:29 +00:00
Apion 98f8441c4e Merge remote-tracking branch 'origin/main' into feature/flashback-compat 2025-11-12 14:59:56 -05:00
Apion d78c076e06 Use getter instead of field in ReplayGamePacketHandlerMixin 2025-11-09 17:09:49 -05:00
Apion 6118a4ed32 Add Flashback mixin to support custom SpawnExtraDataEntityPackets from PokemonEntitys 2025-11-08 23:09:09 -05:00
Apion 8464591e41 Add flashback to dev environment run configs (c2me conflicts, removed temporarily) 2025-11-08 13:17:22 -05:00
747 changed files with 27437 additions and 13637 deletions

No files matched your search

-26
View File
@@ -1,26 +0,0 @@
### Additions
- Rebuilt Pokémon AI to use Minecraft's Brain system, allowing for more complex behaviours and interactions.
- As an early pass of this, pastured Pokémon will now sleep when appropriate, and may come up to you when they see you.
- Probably also added a whole bunch of bugs.
- Dog Pokémon (Growlithe, Arcanine, etc.) intimidate Skeletons.
- Cat Pokémon (Meowth, Persian, etc.) intimidate Creepers and Phantoms.
- Sleep-related Pokémon (Munsharna, Komala, etc.) intimidate Phantoms.
- Some Pokémon naturally hunt each other.
- Some Pokémon herd together.
- Added a Behaviour Editor to the NPC editing screen.
- Added /behaviouredit command for opening the Behaviour Editor on Pokémon and NPCs.
- Editing variables for Pokémon is not yet supported.
### Developer
- baseScale in NPCs has been removed from classes and presets, and in the entity it is replaced with hitboxScale and renderScale.
- Added `EntityCallbacks` to `NPCEntity` and `PokemonEntity`. You can trigger custom callback types by using `[Entity].callbacks.process(...)`
### Fixes
- Fixed Pokémon with a moving walk target frequently spinning in place as they re-calculate their path.
### MoLang & Datapacks
- Added a `behaviours` datapack folder which motivates the Behaviour Editor screen on NPCs and Pokémon.
- Added "callback" support on PokemonEntity and NPCEntity that allows MoLang scripts to be executed in response to certain scenarios.
- Added very many behaviours to choose from.
- Removed many NPC presets that now exist as behaviours. This is a breaking change if you are using NPCs with these presets.
- NPCs with these presets should be modified to instead list under `"behaviours"` all the equivalent behaviours.
-35
View File
@@ -1,35 +0,0 @@
### Additions
- Added the Campfire Pot, made from apricorns and placed onto campfires.
- This pot can be used to make bait for fishing, Poké Cakes, Lure Cakes, local specialties, and potions (less efficiently than a brewing stand).
- There is a different pot for each apricorn colour because at this point I think we may have an addiction.
- Added Aprijuice, made from the Campfire Pot using apricorns with seasoning to give flavours.
- Aprijuice can be fed to ride-able Pokémon to improve their riding characteristics, depending on the flavour and the Pokémon's nature.
- Added Lure Cakes, made from the Campfire Pot using honey and berries.
- Lure Cakes can be used to modify the spawn rate of Pokémon in the wild.
- Added the Saccharine Tree, which can be found in the wild and is used to obtain Honey Bottles.
- The leaves of the tree can be harvested to obtain honey, which can be used in the Campfire Pot to make Lure Cakes.
- The Log of the tree can be interacted with using a honey bottle to create a Honey-Slathered Saccharine Log, which increases the change of spawning a Pokémon with a Hidden Ability.
- Added Hearty Grains
- Clicking on the Progress Arrow will show the JEI Recipe Book for the Campfire Pot, which will show all recipes that can be made with it.
- Added a Ton of Redstone Compatibility.
- Dispenser can now Honey and Unhoney:
- Saccharine Log
- Saccharine Leaves
- Redstone can Close and Open the Lid of a Cooking Pot
- Powered = Closed
- Unpowered = Open
- Hoppers can be used to insert items into a Cooking pot
- Top = Seasonals
- All Sides = Crafting
- Bottom = Extract the Result
- Observer will recognise when a Cooking pot is Closed or Opened
- Comparator Calculates a Signal Strength depending on the items inside the cooking pot
- Sculk Sensor
- Saccharine Leaves
- Opening and Closing the Cooking Pot
- Saccharine Log
### Datapack and Addon Changes
- Renamed the fishing_baits datapack folder to spawn_bait_effects.
- Added `seasonings` datapack folder for controlling usable items in the campfire pot and what colour and flavour they apply.
- Added campfire pot recipe type, which you could use to make anything work as fishing bait.
-13
View File
@@ -1,13 +0,0 @@
### Additions
- Added functionality for marks.
- Added data for all marks and ribbons from the mainline Pokémon games.
- Implemented fishing, personality, weather, and time related marks, that can rarely be granted to a wild-spawned Pokémon.
- Added marks screen within the summary UI.
- Added `/givemark <player> <partySlot> <mark>` command to give a mark to a Pokémon.
- Added `/takemark <player> <partySlot> <mark>` command to remove a mark from a Pokémon.
- Added `/giveallmarks <player> <partySlot>` command to give all available marks to a Pokémon.
### MoLang & Datapacks
- Added Flows for `bobber_spawn_pokemon_post`, `pokemon_entity_spawn`, and `fossil_revived`.
- Added `marks` datapack folder.
- Added MoLang functions `entity.is_in_rain`, `pokemon.add_marks(Mark...)`, `pokemon.add_potential_marks(Mark...)`, `pokemon.add_marks_with_chance(Mark...)`, `pokemon.apply_potential_marks`, and `world.is_snowing_at(x, y, z)`.
-38
View File
@@ -1,38 +0,0 @@
### Additions
- Added ability to rename PC Boxes by clicking on the name of a box.
- Added box options buttons for boxes, toggleable by clicking the right icon button in the bottom bar.
- The option buttons on the left side allow for sorting the box by name, level, Pokédex number, gender, and type. Shift clicking allows for sorting in reverse order.
- The button on the right allows for changing the box wallpaper.
- 10 additional color-based wallpapers have been added.
- 5 unlockable biome-based wallpapers have been added, which can be unlocked by visiting:
- Forest biome
- Ocean biome
- Cave Biome
- The End
- The Nether
- Added filter functionality in PC UI, which supports `PokemonProperties` (e.g. `shiny=yes` shows all shiny Pokémon).
- Names can be filtered by exact or partial matches, e.g. entering "cha" will show Charmander, Charmeleon, etc.
- Added `/changewallpaper <player> <boxNumber> <wallpaper>` command to change a box wallpaper through commands.
- Added `/renamebox <player> <boxNumber> <name>` command to rename a PC box through commands.
- Added IVs and EVs stat displays in PC.
- The displays can be cycled through by scrolling when the display is hovered over.
- Added ability to cycle through boxes by scrolling when the box is hovered over.
- PC will now open to last box viewed within a session.
### Changes
- Slots in pastures will now have darker backgrounds and italicised Pokémon names if the Pokémon is not owned by the player.
- The pasture slot will show the name of the Pokémon owner when hovered if the Pokémon is not owned.
- Increased the default PC box count from 30 to 40 to accommodate the fact that we have way more Pokémon now. If you've changed this config option then you'll need to edit it again after starting up with 1.7!
### Developer
- Added `RenamePCBoxEvent.Pre` and `RenamePCBoxEvent.Post` events to prevent players from renaming a box or changing their input.
- Added `ChangePCBoxWallpaperEvent.Pre` and `ChangePCBoxWallpaperEvent.Post` to prevent players from changing wallpapers or changing their selection.
- Added `WallpaperCollectionEvent` which gets called when clients connect to a server, allowing the server to handle which of the client-found wallpapers it's allowed to move (collected wallpapers can be removed for example to make it "vanish" client-side).
- Added `WallpaperUnlockedEvent`.
- Renamed `SetPCBoxPokemonPacket` and the respective handler to `SetPCBoxPacket`.
### Addons
- Added Flows for `player_tick_pre`, `player_tick_post`, `advancement_earned`, `right_clicked_entity`, `right_clicked_block`, `player_died`, `wallpaper_unlocked`.
- Flows now have `q.` for any context properties in addition to the `c.` properties, making it a bit more convenient when calling other scripts from Flows.
- Added `unlockable_pc_box_wallpapers` datapack folder for wallpapers that need to be unlocked before they're usable.
- Wallpapers are loaded from `assets/<namespace>/textures/gui/pc/wallpaper/` and all wallpapers in this folder are available to the client to choose by default.
-4
View File
@@ -1,4 +0,0 @@
### Additions
- Added the ability to ride Pokémon by shift-right clicking and selecting the ride option.
- Added /calculateseatpositions command for approximating hitbox locations for riding configurations.
-10
View File
@@ -1,10 +0,0 @@
### Additions
- Added support for NPCs to use Pokémon models and vice versa. This will require changes in addons that add fossil types due to naming conflicts between fossils and the Pokémon species.
- Added `/changejointscale` command to change the scale of a joint in a model. Unbelievably funny.
### Developer
- Removed all VaryingModelRepository subclasses into the parent class.
### Addons
- Added `transformedParts` to the root of poser JSONs so it now exists in both poses and the model overall.
-25
View File
@@ -1,25 +0,0 @@
### Additions
- Pokémon can now spawn in herds, either as distinct herd groupings or simply several Pokémon spawning at once.
### Fixes
- Fixed the "enabled" property in spawn files not actually being respected. Where do they find these devs?
- Fixed Terralith's shrubland not counting as plains for spawning purposes the way it was intended to.
### Developer
- Spawning Influences now have the context of what the other buckets are when adjusting bucket weights. This will break existing influences that do bucket weight adjustment.
- Renamed heaps of things in the spawning system to make more sense.
- SpawningContext is now SpawnablePosition
- WorldSlice is SpawningZone
- SpawningProspector is now SpawningZoneGenerator
- Majorly refactored the hierarchy of Spawner
- The base Spawner interface provides more functions to allow single-point and area spawning given appropriate inputs.
- TickingSpawner is removed in favour of outside code handling ticking logic.
- AreaSpawner is removed.
- BasicSpawner is the first implementation of Spawner which can be used for any purpose.
- PlayerSpawners are now mixin'd into ServerPlayer and ticked from ServerPlayer#tick.
- A hierarchy diagram can be found at `./docs/spawner-hierarchy.png` in the mod repository.
- The SpawnerManager class has been removed as its functionality is all now handled elsewhere.
- Renamed things in Spawn Rules to go with the other renames:
- contextSelector is now spawnablePositionSelector
- context is now spawnable_position
+39 -3031
View File
File diff suppressed because it is too large. Load diff
+2
View File
@@ -0,0 +1,2 @@
## [1.0.0 (November 12th, 2022)](#1-0-0)
- Initial release.
+56
View File
@@ -0,0 +1,56 @@
## [1.1.0 - The Swim and Sleep Update (November 27th, 2022)](#1-1-0)
#### "Ideally not at the same time."
### Additions
- Added a new GUI for viewing party information, rearranging moves, and evolving Pokémon. It looks too good.
- Starter Pokémon will sleep on top of you if sent out when you get on a bed.
- Added sleeping animations for starters, the Weedle family, and the Caterpie family. More to come.
- Added Alolan Rattata and Alolan Raticate, Sableye, Deerling and Sawsbuck, and Pyukumukurutudulu or whatever it's called.
- Added swimming AI so Pokémon don't sink to the bottom in water.
- Aquatic Pokémon like Magikarp desperately move to water if they're on land.
- Added status condition indicators in the party overlay.
- Added HP labels to the battle interface so that you can see how much health you actually have.
- Added spawn data for all final and special evolutions previously lacking spawn data.
- Added shiny textures for many Pokémon (thank you MageFX!): Aerodactyl, Articuno, Zapdos, Moltres, Chansey, the Dratini family, Electabuzz, Goldeen and Seaking, Hitmonchan and Hitmonlee, Jynx, Kabuto and Kabutops, Magmar, Lickitung, Mr. Mime, Omanyte and Omastar, Rhyhorn and Rhydon, Koffing and Weezing, Porygon, Scyther, Seadra, Staryu and Starmie, and Tangela. Phew!
- Added a couple of new advancements.
- Added new items: Calcium, Carbos, HP Up, Iron, Protein, and Zinc. Currently only obtainable in Creative Mode (It's a surprise tool that will help us later).
### Changes
- Significantly improved AI pathing for larger entities so they won't keep trying to move to places they cannot possibly fit.
- Changed the starter menu and summary menu keybinds to `M` by default.
- Pokémon that are sent out slowly raise friendship. Before this it was faster and even worked when not sent out (wildly unbalanced).
- Updated Link Cable and Protector item sprites to be prettier.
- Slightly polished the Poké Ball opening and Poké Ball item use sounds.
- `/givepokemon random`, `/spawnpokemon random`, and `/spawnallpokemon` will now only choose implemented Pokémon.
- The battle message box now displays even when the battle GUI is minimised so that you can still see what's going on.
- Moved the `R` prompt in battle to be higher on the screen so that it's not as distracting.
### Fixes
- Fixed shinies and form variations not displaying in the party or PC.
- Fixed servers getting stuck on shutdown due to non-closed showdown server connections.
- Fixed a niche situation where players could challenge themselves. It's a little inspirational if you think about it.
- Fixed Pokémon natures not saving such that every time you restarted they had a totally different nature.
- Fixed some underground Pokémon spawning above ground instead. I'm told other weird spawns were probably fixed at the same time.
- Fixed Pokémon sometimes running in place. "It's still possible, but much less likely" - Yeah, ok devs.
- Fixed mod incompatibility with many Architectury API mods, including *Biome Makeover* and *Earth2Java*.
- Fixed a mod incompatibility with Minecraft Transit Railway Fabric and probably a bunch of other Fabric mods.
- Fixed being unable to customize keybinds on Forge.
- Fixed Summary keybinding being labeled as PokéNav. That comes later.
- Fixed apricorns spawning without leaves which meant sometimes apricorns were growing on the side of dirt and stone which doesn't make much sense to me.
- Fixed messages appearing in the console whenever a healer is used.
- Fixed spawning in several biome tag categories.
- Fixed resource pack support for Pokémon models and textures.
- **Model Fixes**
- Fixed Paras and Nidoqueen looking very weird.
- Fixed Hitmonchan asserting dominance with a T-pose as well as Grimer and Muk pointing their hands to the sky.
- Fixed specific Pokémon suddenly pausing their animation after staying still for a long time.
- Fixed Mankey's feet being buried in the ground.
- Updated the Substitute model and updated its shiny texture to be better for the red-green colorblind.
- Improved Horsea, Seadra, and Kingdra animations, especially on land.
- **Battle Fixes**
- Fixed an issue with battles where Pokémon had a different max HP causing some desync issues with the health bars.
- Fixed Magnitude battle messages.
- Moves that are disabled or out of PP now show transparently in the battle GUI instead of being hidden completely.
- Statuses like sleep and frozen no longer last forever if it was carried over from a previous battle.
### Localization
- Added species, ability, and move translations for `ko_ko`, `jp_jp`, `fr_fr`, `es_es`, `it_it`, and `zh_cn`.
+3
View File
@@ -0,0 +1,3 @@
## [1.1.1 (November 27th, 2022)](#1-1-1)
### Fixes
- Fixed a critical issue with servers where Pokémon data didn't properly synchronize and so you couldn't see any.
+52
View File
@@ -0,0 +1,52 @@
## [1.2.0 - The Customization Update (January 1st, 2023)](#1-2-0)
#### "There are going to be so many fakemon..."
### Additions
- Added models for Natu and Xatu, Murkrow and Honchkrow, Wailmer and Wailord.
- Added new PC interface and it is beautiful.
- Reworked the battle system so that battles load faster, cause fewer bugs, and can run on shared server hosts. This is a very big change that also reduced the size of the mod by 50mb!
- Added full resource pack and data pack customization of models, textures, animations, spawning, and spawn file presets to make custom Pokémon species and variations very easy to create. You can find the guide for creating custom Pokémon on [our website](https://cobblemon.com/guides/custompokemon.html)!
- Added water surface spawning for Pokémon like Lapras.
- Added emissive texture support to Pokémon render layers.
- Added compatibility for Mod Menu ([CurseForge](https://www.curseforge.com/minecraft/mc-mods/modmenu), [Modrinth](https://modrinth.com/mod/modmenu)).
- Added blank ambient Pokémon cries so cries can be added via resource packs.
- Added new sounds for GUIs and item uses.
- Added `nature` and `pokeball` options to commands such as `/spawnpokemon` and `/givepokemon`.
### Changes
- Reinforced party and PC saving to make data corruption from crashes less bad.
- Added a config option for whether the starter config will be exported, making it more maintainable as we add starter Pokémon.
- Battles now start with the options menu open for convenience.
- Doubled the default charge rate of healers. You'd need to reset your config under `./config/cobblemon/main.json` to see this change!
- Changed the default Apricorn seed chance config value from 6% to 10%.
- The mod now correctly reports our dependency on Architectury API so people don't get super confused when things don't work.
- Pokémon now look at their opponents during battle.
- Updated Sableye's animations to be super freaky.
- Changed the healer advancements to make the healing machine's mechanics more obvious.
### Fixes
- Fixed an incompatibility with [Porting Lib](https://github.com/Fabricators-of-Create/Porting-Lib) used by Fabric ports of mods such as Create or Twilight Forest.
- Fixed HP and max HP values in the battle GUI not being correct.
- Fixed some animations on snake-type Pokémon being super slow.
- Fixed a typo in the English name for Calcium. Calcuim.
- Fixed Pokémon gradually becoming rarer around you if you move long distances.
- Fixed a shoulder mount crash on Fabric.
- Fixed a rare issue where chunks would take a really long time to generate.
- Fixed a singleplayer bug where battles wouldn't work after leaving then rejoining a world.
- Fixed stat calculations for everything except HP. HP was fine though :).
- Fixed a randomized Pokémon spawning in mountains that corrupted the data of whatever party or PC it got into. Yikes.
- Fixed a rare crash involving literally random number generation. A random crash involving random numbers.
- Fixed all regular Mewtwo having the stats and types of Mega Mewtwo X - same deal with many other Pokémon.
- Fixed the framing of many Pokémon in GUIs.
- Fixed texture glitches with Rattata and Nidoqueen (again!).
- Fixed dropped item forms of all Pokéballs and the Healing Machine, and slightly adjusted all other display settings
- Fixed issues with forms not showing the correct evolution in the evolution menu.
- Fixed some alternate forms not having the alternate stats and types.
- Fixed moves that only work in double battles not being selectable at all (such as Helping Hand and Aromatic Mist).
- Fixed abilities not remaining legal in some forms.
- Fixed Poké Ball capture effects not triggering after a successful capture, such as the Heal Ball's healing effect.
- Fixed multiple-hit moves sending gibberish into the battle chat.
- Fixed Pyukumuku not being appropriately scaled.
- Fixed shiny and other variations of Pokémon not showing in the battle GUI.
- Fixed Eevee being poorly positioned and un-animated on shoulders.
- Fixed a Pokémon's hitbox not updating when it evolves while sent out.
- Fixed a Pokémon's PP going from zero to above the maximum when entering another battle.
+150
View File
@@ -0,0 +1,150 @@
## [1.3.0 - The Foundation Update (March 17th, 2023)](#1-3-0)
#### "Now we can start doing the really cool stuff."
### Dependencies
- Upgraded Fabric API dependence to 0.75.1+1.19.2
- Upgraded Architectury API dependence to 6.5.69
- Cobblemon Forge now depends on Kotlin for Forge.
### Additions
- Added new models and animations for Poké Balls and reworked their mechanics to feel much smoother instead of being pure frustration.
- Added party scrolling via holding R and using the mouse wheel so you don't need to take your hand off your mouse.
- Added a cap of Pokémon spawns in an area because waiting a while made things insane. This is controlled by a new `pokemonPerChunk` config option.
- Added models and animations for heaps of Pokémon (101): Riolu, Lucario, Chimchar, Monferno, Infernape, Turtwig, Grotle, Torterra, Popplio, Brionne, Primarina, Treeko, Grovyle, Sceptile, Snivy, Servine, Serperior, Tepig, Pignite, Emboar, Oshawott, Dewott, Samurott, Grookey, Thwackey, Rillaboom, Scorbunny, Raboot, Cinderace, Sobble, Drizzile, Inteleon, Fennekin, Braixen, Delphox, Froakie, Frogadier, Greninja, Chespin, Quilladin, Chesnaught, Miltank, Torkoal, Kricketot, Kricketune, Heatmor, Durant, Wooloo, Dubwool, Pumpkaboo, Gourgeist, Sigilyph, Cryogonal, Whismur, Loudred, Exploud, Misdreavus, Mismagius, Tatsugiri, Eiscue, Luvdisc, Stantler, Wyrdeer, Gible, Gabite, Garchomp, Sneasel, Weavile, Elgyem, Beheeyem, Baltoy, Claydol, Nacli, Naclstack, Alcremie, Milcery, Dhelmise, Morelull, Shiinotic, Xerneas, Klink, Klang, Klinklang, Joltik, Galvantula, Honedge, Duoblade, Aegislash, Spiritomb, Mawile, Carvanha, Sharpedo, Seedot, Nuzleaf, Shiftry, Lotad, Lombre, Ludicolo, Pineco, Forretress, and Spinda.
- Added generation 3, 4, 5, 6, 7, and 8 Starter Pokémon to the starter select screen.
- Added particle effect support for model animations
- Added particle effect and animation for Gastly.
- Added sleep and faint animations to many Pokémon.
- Added item holding for Pokémon. Any Minecraft item can be given to a Pokémon by holding shift and right-clicking them. Traditional Pokémon held items will have their expected battle effects.
- Added heaps of held items with crafting recipes: Assault Vest, Big Root, Black Belt, Black Sludge, Charcoal, Choice Band, Choice Scarf, Choice Specs, Dragon Fang, Exp. Share, Focus Band, Hard Stone, Heavy-Duty Boots, Leftovers, Light Clay, Lucky Egg, Magnet, Miracle Seed, Muscle Band, Mystic Water, Never-Melt Ice, Poison Barb, Quick Claw, Rocky Helmet, Safety Goggles, Sharp Beak, Silk Scarf, Silver Powder, Soft Sand, Spell Tag, Twisted Spoon, and Wise Glasses.
- Added heaps of evolution items with crafting recipes: Milcery's sweets items, Chipped Pot, Cracked Pot, Deep Sea Scale, Deep Sea Tooth, Dragon Scale, Galarica Cuff, Galarica Wreath, Peat Block, Prism Scale, Razor Claw, Razor Fang, Reaper Cloth, Sachet, Sweet Apple, Tart Apple, and Whipped Dream.
- Existing evolution items all now either have a crafting recipe or drop from Pokémon.
- Added the Item [tags](https://minecraft.fandom.com/wiki/Tag) `cobblemon:held/experience_share` and `cobblemon:held/lucky_egg` allowing you to mark any items you desire to have the effects implied in the tag name.
- Added an interface that appears when interacting with your Pokémon while sneaking. The interface allows for interactive options such as shouldering and exchanging held items.
- Added blinking animations to many Pokémon.
- Added animated texture support.
- Added translucent option for aspect layers.
- Added glowing textures to many Pokémon and it looks amazing.
- Added the Saturation shoulder effect.
- Added the Haste shoulder effect, initially for Joltik.
- Added the Water Breathing shoulder effect, initially for Wooper.
- Added the Speed shoulder effect, initially for Pichu and Pikachu.
- [Dispensers](https://minecraft.fandom.com/wiki/Dispenser) can now use shears to automatically harvest fully grown Apricorns.
- Added milking to Miltank.
- Added shearing to Wooloo and Dubwool.
- Added data for generation 9 Pokémon species, moves, and ability data. They're all still Substitute models, but their moves and abilities work.
- Added support for custom Pokémon to implement 'quirks' such as blinks.
- Added sound effect for harvesting Apricorns.
- Added icon to summary and PC interfaces to indicated if a Pokémon is shiny.
- Added the `/spawnpokemonat <pos> <properties>` command, the `pos` argument uses the same syntax as the Minecraft [summon](https://minecraft.fandom.com/wiki/Commands/summon) command.
- Added the `/giveallpokemon` command which is definitely safe and not insane.
- Added compatibility with Carry On by preventing the mod being able to interact with Cobblemon entities, the mod caused too many gameplay detrimental features to stay enabled.
- Added healing to your party when you sleep in a bed.
- Added the 'ability' Pokémon Property so commands can specify the ability.
- Added block tag support to the 'neededBaseBlocks' and 'neededNearbyBlocks' spawn condition.
- Added a config option for disallowing players from damaging Pokémon by hand.
- Apricorn seeds can now be used with the [Composter](https://minecraft.fandom.com/wiki/Composter), these have the layer increase chance of 65% like Apricorns and various Minecraft crops.
- Added support for Pokémon species data appending making it so datapack developers no longer need to overwrite files.
- Added an implementation of every [catch rate](https://bulbapedia.bulbagarden.net/wiki/Catch_rate) from generation 1 to 9, these can be used by changing the `captureCalculator` config value:
- `generation_1` Sets the calculator to the generation 1 implementation.
- `generation_2` Sets the calculator to the generation 2 implementation.
- `generation_2_fixed` Sets the calculator to the generation 2 implementation with the status multiplier bug fixed.
- `generation_3_4` Sets the calculator to the generation 3 and 4 implementation.
- `generation_5` Sets the calculator to the generation 5 implementation.
- `generation_6` Sets the calculator to the generation 6 implementation.
- `generation_7` Sets the calculator to the generation 7 implementation.
- `generation_8` Sets the calculator to the generation 8 implementation.
- `generation_9` Sets the calculator to the generation 9 implementation.
- `cobblemon` Sets the calculator to the custom Cobblemon implementation. This is the default value.
- `debug` Sets the calculator to the debug/cheat implementation, every attempt will be a successful critical capture.
### Changes
- Pokémon now save to the world by default, meaning the same Pokémon will remain in the world and not disappear after you log out and log back in. They still despawn over time though.
- Significantly sped up the Poké Ball shake animation so it takes less time to try to catch Pokémon.
- Update the PC and Healing Machine models and bounding boxes.
- The Healing Machine and PC now emit light when fully charged or when turned on respectively.
- The PC block screen will now turn on when being used.
- The Healing Machine will now visually display its charge level using 6 stages.
- The Healing Machine will now emit a redstone signal with the strength of 1 for every 10% charge it has when attached to a [Redstone Comparator](https://minecraft.fandom.com/wiki/Redstone_Comparator).
- Made it so that particles are not shown whenever you have a shoulder Pokémon that gives potion effects.
- Changed hitbox and size definitions for Decidueye, Blastoise, and Magmortar
- Apricorns can now be harvested with Axes, the speed will scale with enchantments and tool material, only dropping the Apricorn if fully grown, these will still destroy the Apricorn so the manual harvest still is recommended unless you're just keen on destroying trees.
- Apricorns are now a part of the vanilla tag `minecraft:blocks/mineable/axe`.
- Apricorns are now compatible with any mod that breaks a whole tree at once.
- Apricorns no longer have a config value for the seed drop chance these are now a part of their loot table which can be found in `cobblemon/loot_tables/blocks/<color>_apricorn.json`.
- Advancements were redone to be slightly more interesting, with improved names, descriptions, and sorting.
- Updated models and textures for Tentacool line, Gengar, Slowpoke line, Tyrogue line, Doduo line, Dratini, Dragonair, Quagsire, and Piplup line. There were probably others, the team lost track.
- Improved sending out Pokémon at the start of battle so that they are positioned in a less annoying way.
- Name Tags will no longer be used on Pokémon and Poke Ball entities, this prevents the item from being wasted.
- Lowered spawn rate of Tauros.
- Sableye now spawns near gem ores as well as amethyst.
- Added evolution stones and items to item tags
- Pokémon now play their cry animations when clicked on the starter selection screen.
### Fixes
- Fixed catch rates being entirely too difficult.
- Fixed various strange battle issues such as Flying types being vulnerable to Ground type moves and status effects hitting despite vulnerabilities.
- Fixed shiny Gyarados not using the red Gyarados texture.
- Improved the framing of all in-game Pokémon in the party and PC GUIs so they aren't halfway out of the screen or something else crazy.
- Fixed incompatibility with Kotlin for Forge (by depending on Kotlin for Forge ourselves)
- Fixed Gengar, Goodra, and many other Pokémon showing the types of an alternate form despite those not being modelled yet.
- Fixed datapack Pokémon not being able to battle.
- Fixed Pokémon always being created with a moveset as if they're level 1 instead of their current level.
- Fixed an issue of Pokémon not rendering in GUIs on some Mac displays.
- Fixed a soft-duplicate that could occur when a party Pokémon is pushed through a Nether Portal or left in a boat.
- Fixed Pokémon that faint from poison appearing to be on full health and suckering you into false hope.
- Fixed incorrect spawns of Tentacool, Tentacruel, Dragonite, Politoed, Tangrowth, Lickilicky, Electivire, and Magmortar.
- Fixed crashes involving opening the Pokémon summary GUI with an empty party.
- Fixed lower brightness settings causing Pokémon to appear much too dark in menus such as the party and PC.
- Fixed Showdown sometimes failing to start, causing crashes.
- Fixed Showdown initialization happening several times when you login, more depending on how many times you have relogged this session.
- Fixed Showdown failing to update on first attempt. We totally weren't accidentally deleting our target directory or anything, nope.
- Fixed HP recovery related battle actions not animating for the client nor updating the in-game Pokémon HP.
- Fixed moves that force a switch such as Teleport and U-Turn soft locking battles.
- Fixed missing battle text for Bide, Speed Boost, Belly Drum, Anger Point, and Haze.
- Fixed battle messages for many field effects starting, ending, and actions caused by them such as blocking certain moves.
- Improved battle messages for effects that prevent a move from being executed such as a Taunt, requiring a recharge, flinched, etc.
- Fixed move names not being translated in battle messages.
- Fixed stat change messages for boosts over 3 stages.
- Fixed experience calculation not being completely accurate.
- Fixed positioning of Poké Balls when rendered in Healing Machines.
- Fixed a desync issue on servers where all Pokémon seemed like they were special forms when they weren't.
- Fixed an incompatibility with [Exordium](https://www.curseforge.com/minecraft/mc-mods/exordium).
- Fixed datapack Pokémon language key generation. A Pokémon under the namespace `example` named `Pogemon` will now correctly look for the lang key `example.species.pogemon.name`.
- Fixed client not receiving messages for the different "stages" for the move Bide.
- Fixed the Medium Slow and Medium Fast experience group IDs, they're now `medium_slow` and `medium_fast`. Any custom datapack Pokémon will require an update.
- Fixed Pokémon friendship being capped to the maximum level config value instead of the friendship one when loading Pokémon data.
- Fixed Poké Balls taking forever to capture Pokémon if you are underwater or up in the air where it takes a long time to hit the ground.
- Fixed Pokémon being unable to spawn on blocks such as snow layers.
- Fixed Pokémon spawning inside of trees.
- Fixed Pokémon experience not loading after a restart and instead going back to the minimal amount for the current level.
- Fixed being able to use `/healpokemon` in battle.
- Fixed being able to select fainted party members in the switch menu causing the battle to lock.
- Fixed `/spawnpokemon` command not supporting any command source other than players.
- Fixed issues with Charizard's sleep pose.
- Fixed players being able to use multiple healer machines at once.
- Fixed Pokémon layers not rendering when a Pokémon is on your shoulder.
- Fixed Caterpie and Weedle not moving or looking at players. That was meant to be Metapod and Kakuna; how embarrassing.
- Fixed Pokémon not carrying over the correct equivalent original ability when evolving from stages that only had one ability.
- Fixed Deerling and Sawsbuck not spawning with the correct season.
- Fixed issue of not being able to drag the scroll bar in summary and battle interfaces.
- Fixed optional aspects not saving and loading properly.
- Fixed layering logic so multiple texture layers can exist on a Pokémon (probably).
- Fixed not all Poké Balls being associated with the `cobblemon:pokeballs` item tag.
- Fixed the `/pokemoneditother` command not working.
- Fixed ambient sound file path for Porygon2.
- Fixed forms not being able to unset the secondary type of a Pokémon in the stat JSON.
- Fixed moves that haven't carried over from generation 8 onwards having the description they did in the generation 8 games instead of their last valid one.
- Fixed shoulder mounted pokemon not returning to party on healer use and on evolution
### Developer
- Reworked CatchRateModifier, as such, existing implementations need to be updated.
- Fixed minimumDistanceBetweenEntities option being half of what it's set as.
- Fixed the contents of CobblemonEvents, CobblemonBlocks etc having getters instead of just being public static properties.
- Added ApricornHarvestEvent.
- Added a new item for representing Pokémon within native UI menus or item frames which display as the Pokémon's model. It's called a PokemonItem, with static functions to build one.
### Localization
- Added complete translations for French, German, Simplified Mandarin, Brazilian Portuguese, and Pirate English.
- Added partial translations for Traditional Mandarin, Italian, and Spanish. We'd love more help with this!
- Thank you to all of the fantastic volunteer translators for taking the time to help with this!
+96
View File
@@ -0,0 +1,96 @@
## [1.3.1 (March 31st, 2023)](#1-3-1)
### Additions
- Added Slugma, Magcargo, Nosepass, and Probopass.
- Elgyem family now drops Chorus Fruit, Geodude family now drops Black Augurite.
- Added missing spawn files for Golett and Bergmite family.
- Apricorns can now be smelted into dyes.
- Added animations to Staryu line and Porygon line.
- Added faint animations to Klink line.
- Add lava surface spawn preset.
- Added an `any` evolution requirement allowing you to define `possibilities` of other evolution requirements, for example, this allows you to create an evolution that requires the Pokémon to be shiny or a female.
- Added the `/spawnpokemonfrompool [amount]` or `/forcespawn [amount]` command to spawn Pokémon(s) in the surrounding area using the natural spawn rates/pool of that area, this will be a cheat command in the Minecraft permission system or use the permission `cobblemon.command.spawnpokemon` if a permission mod is present. On a successful execution of the command, the amount of Pokémon spawned will be the output.
- Added the `/pokebox` and `/pokeboxall` commands to move Pokémon(s) to the PC from a Player's party, this will be a cheat command in the Minecraft permission system or use the permission `cobblemon.command.pokebox` if a permission mod is present. On a successful execution of the command the output will be the number of pokemon moved to the Player's PC.
- Added the `/pc` command which opens up the PC UI the same way interacting with the block would, this will be a cheat command in the Minecraft permission system or use the permission `cobblemon.command.pc` if a permission mod is present.
### Changes
- You can now click the portraits of other Pokémon in the starter selection screen to navigate directly to them.
- You can now click the right and left arrow keys to navigate PC boxes.
- Link Cables will now require Pokémon to hold any held item normally required for their evolution.
- After a battle, the last Pokémon used now becomes the selected one in your party.
- The `/teach` command can now only allow the Pokémon to be given moves in their learnset, this can be controlled with the permission `cobblemon.command.teach.bypass`, to account for that change the base command now requires the permission `cobblemon.command.teach.base`, this change is meant only for people using a mod capable of providing permissions such as [LuckPerms](https://luckperms.net/).
- Apricorns will no longer collide with their block form when picked, this should improve the experience in automatic farms.
- Increased spawn chances for many Pokémon requiring specific blocks to be nearby.
- Put Cryogonal in more snowy biomes.
- Ditto as well as the Eevee, Gible, and Riolu families have been made more common.
- Lowered spawn rate of Gyarados on the surface of water.
- Apricorn leaves can now be used in the [Composter](https://minecraft.fandom.com/wiki/Composter) block, these have the same chance to raise the compost pile the Minecraft leaves do.
- Updated Gengar's model and texture.
- Updated Swinub line model and animations.
- Tweaked portrait frames for the Pidgey line and for Walking Wake.
- Changed all buff shoulder effects to only give a level 1 buff instead of level 2.
- Made Weavile a little bigger.
- Changed the recipes for Mystic Water, Miracle Seed, and Charcoal Stick to utilise the evolution stones, as well as Never-Melt Ice having an alternate recipe using the Ice Stone.
- Replaced the `Failed to handle` battle messages to `Missing interpretation` to make it more clear that mechanics do work just still pending dedicated messages.
- Healing Machine and PC are now mine-able with pickaxes and Apricorn leaves are mine-able using hoes.
### Fixes
- Fixed killing a Dodrio killing your game. Dodrio will never look the same to us.
- Fixed non-Fire-type Pokémon being immune to lava.
- Fixed custom Pokémon not being usable in battle, properly. A last minute fix caused this to break again; what are these devs not paid for?
- Fixed being locked in an endless healing queue if you broke the healing machine during use.
- Fixed an issue with the experience calculation when the Exp. Share is held.
- Fixed Friendship-based attacks not using friendship values from your Pokémon.
- Fixed Link Cables consuming held items they shouldn't due to not validating the held item of a Pokémon.
- Fixed a crash when Aromatherapy cured the status of party members.
- Fixed moves learnt on evolution not being given when said evolution happens. If you were affected by this issue your existing Pokémon will now be able to relearn those moves.
- Fixed console spam when rendering Pokémon model items.
- Fixed battle messages for 50+ moves and abilities and items.
- Fixed the possible duplicate when capturing Pokémon (probably, this one's hard to reproduce to confirm it's fixed).
- Previously duplicated Pokémon are cleaned from PCs and parties on restart.
- Fixed an issue with some particle effects applying after a Pokémon has died or on top of the wrong Pokémon when using specific mods.
- Fixed Pokémon not looking at each other in battle.
- Fixed Experience Candy and Experience Share attempting to bring Pokémon above level cap causing crashes.
- Fixed level 100 Pokémon having experience go over the cap total amount they should have.
- Fixed `/pokemonspawnat` having the argument positions reverted making it impossible for Brigadier to understand when to suggest coordinates. It is now the intended `/spawnpokemonat <pos> <properties>`.
- Fixed performance issues with shouldered Pokémon in certain systems.
- Fixed learnset issues for Pokémon whose only modern debut was LGPE/BDSP/LA.
- Fixed shiny Zubat, Grimer, Omanyte, Elgyem, Delphox and Aegislash displaying their normal texture.
- Fixed sleeping in beds allowing fainted Pokémon to receive experience after a battle ends somehow.
- Fixed an issue where a Pokémon will claim to have learnt a new move they already have in their moveset when learnt at an earlier level in their previous evolution. I realize that's confusing.
- Fixed Dispensers not being able to shear Wooloo. This will also extend to other mods that check if an entity is valid to shear.
- Fixed the currently held item of your Pokémon not dropping to the ground when removing it if your inventory was full.
- Fixed creative mode allowing you to make your Pokémon hold more than 1 of the same item.
- Fixed a Pokémon duplication glitch when teleporting between worlds.
- Fixed dedicated servers being able to reload Cobblemon data with the vanilla `/reload` command causing unintended behavior for clients.
- Fixed underground Pokémon spawning above ground.
- Fixed Pokémon portrait not reverting back to the Pokémon after a failed capture during battle.
- Fixed edge texture artifacts on pane elements for Tentacool and Tentacruel models.
- Fixed crash caused by Pokémon pathing
- Fixed Pokémon not returning to their balls when being healed in a healing machine
- Fixed all Gen IX Pokémon as well as forms added in PLA and Wyrdeer, Kleavor, Ursaluna, Basculegion, Sneasler, Overqwil, and Enamorus having 0 exp yields.
- Fixed Irons Leaves having bluetooth back legs. If you saw it, you know what I mean.
- Fixed Golurk not having shoulder plates on its shoulders.
- Fixed some water Pokémon walking onto land from the water even though they are fish.
- Fixed Porygon2 and PorygonZ being too small.
- Fixed Snivy line head look animation.
- Fixed Staryu line not being able to swim.
- Fixed an incompatibility with [Thorium](https://modrinth.com/mod/thorium) patch for [MC-84873](https://bugs.mojang.com/browse/MC-84873).
- Fixed Pidgeotto wings when walking.
- Fixed Delphox walk animation.
- Fixed Froakie line sleep animations in battle.
- Fixed Pokémon missing the non-level up moves they could relearn when rejoining a world until a new move was added to their relearn list.
- Fixed instantly fleeing from Pokémon set to be unfleeable.
- Fixed Pumpkaboo line forms not working. (Currently sizes aren't visual but check base stats to see which size you have.)
- Fixed a bug that caused already interpreted messages for moves to be mistaken as uninterpreted.
- Fixed a Pokémon spawner bug that caused Pokémon to not spawn due to dropped item entities.
- Fixed a bug that causes Pokémon model items to be invisible.
### Developer
- Add events that are fired just before and after a Pokémon is released (ReleasePokemonEvent.Pre and .Post)
### Localization
- Added complete translations for Japanese, Thai, and Canadian French.
- Added partial translations for Russian, Ukrainian, Mexican Spanish, and Korean.
- Updated every existing language's translation.
- All the translators that contributed are amazing.
+443
View File
@@ -0,0 +1,443 @@
## [1.4.0 - The Friends and Farms Update (October 13th, 2023)](#1-4-0)
#### "No, we don't provide the friends."
### Additions
- Added pasture blocks, used to let your PC Pokémon roam around an area.
- Added nicknaming from the summary menu of a Pokémon (click their name).
- Added trading between players. Press R while looking at another player and you'll figure the rest out.
- Added mints for changing Pokémon stats. These are most commonly found at high altitudes.
- Added [Revival Herbs](https://wiki.cobblemon.com/index.php/Revival_Herb), with pep-up flowers when fully grown, growing in lush caves.
- Added [Medicinal Leeks](https://wiki.cobblemon.com/index.php/Medicinal_Leek), growing on the surface of rivers and ponds. It is a potion ingredient and can be cooked as food!.
- Added [Big Roots](https://wiki.cobblemon.com/index.php/Big_Root), generating from cave ceiling dirt which sometimes spread as energy roots.
- Added [69 Berry Trees](https://wiki.cobblemon.com/index.php/Berry_Tree) and [Berries](https://wiki.cobblemon.com/index.php/Berry). Some are found in village farms, some from planting different berries close to each other.
- Added mulches: Mulch Base, Growth Mulch, Surprise Mulch, Coarse Mulch, Humid Mulch, Rich Mulch, Loamy Mulch, Peat Mulch, and Sandy Mulch
- Added [Vivichokes](https://wiki.cobblemon.com/index.php/Vivichoke), obtainable from wandering villager trades and some loot chests.
- Added medicine brewing using medicinal leeks and berries in brewing stands.
- Added Pokémon cries when in battles and being sent out.
- Added medicinal items: Berry Juice, Heal Powder, Remedy, Fine Remedy, Superb Remedy, Revive, Max Revive, Potion, Super Potion, Hyper Potion, Max Potion, Full Restore, Full Heal, Antidote, Awakening, Burn Heal, Ice Heal, and Paralyze Heal.
- Added battle items: X Attack, X Defence, X Sp.Atk, X Sp.Def, X Speed, Dire Hit, and Guard Spec.
- Added EV items: Power Anklet, Power Band, Power Belt, Power Bracelet, Power Lens, Power Weight.
- Added food items: Roasted Leek, Leek and Potato Stew, Braised Vivichoke, and Vivichoke Dip
- Added evolution items: Auspicious Armor and Malicious Armor, which can be used to evolve Charcadet into Armarouge or Ceruledge respectively.
- Added (mostly brewing) recipes for HP Up, Protein, Iron, Calcium, Zinc, Carbos, PP Up, PP Max, and Medicinal Leek to Magenta Dye.
- Added held items: Bright Powder, Destiny Knot
- Added AI for Nosepass to point towards world spawn when idle. We just think it's neat.
- Added shoulder mounting for Mimikyu.
- Added flying placeholder animations to Pidgey, Pidgeotto, Pidgeot, Golbat, Crobat, Scyther, Scizor, Zapdos, Moltres, Articuno, Dragonite, Rowlet, Dartrix, and Decidueye.
- Added loot to various vanilla chest loot tables (Link Cable in Ancient Cities, Woodland Mansions, End Cities, and Igloos, Vivichoke Seeds in Jungle Temples, Dungeons, and Plains, Savanna, Snowy, and Taiga Villages, and all 7 Apricorn Sprouts in Desert, Plains, Savanna, Snowy, and Taiga Villages, as well as the Bonus Chest, which can also have 5 of the basic Poké Ball types)
- Added a `doShinyStarters` gamerule to make it quick and easy to be offered shiny starters.
- Added a `doPokemonLoot` gamerule to toggle Pokémon dropping items/exp on death.
- Added ability activation announcement when in battle.
- Added animations for Wailord and made it BIGGER.
- Added Cherry Torterra variant.
- Added 2 new face spots for Spinda. The number of unique Spindas increases...
- Added Forretress Shulker variant.
- Added the `/teststore <player> <store> <properties>` command allowing command block/mcfunction users to query a party, PC or both for Pokémon matching specific properties and returning the match count, this will be a cheat command in the Minecraft permission system or use the permission `cobblemon.command.teststore` if a permission mod is present.
- Added the `/querylearnset <player> <slot> <move>` command allowing command block/mcfunction users to query a party slot and check if the Pokémon can learn a specific move returning a 1 if yes otherwise 0, this will be a cheat command in the Minecraft permission system or use the permission `cobblemon.command.querylearnset` if a permission mod is present.
- Added the `/testpcslot <player> <slot> <properties>` command allowing command block/mcfunction users to query a pc slot and check if the Pokémon matches specific properties returning a 1 if yes otherwise 0, this will be a cheat command in the Minecraft permission system or use the permission `cobblemon.command.testpcslot` if a permission mod is present.
- Added the `/testpartyslot <player> <slot> <properties>` command allowing command block/mcfunction users to query a party slot and check if the Pokémon matches a specific properties returning a 1 if yes otherwise 0, this will be a cheat command in the Minecraft permission system or use the permission `cobblemon.command.testpartyslot` if a permission mod is present.
- Added the `/clearparty <player>` command for emptying a player's party.
- Added the `/clearpc <player>` command for emptying a player's PC.
- Added the `/pokemonrestart <reset_starters>` and the `/pokemonrestartother <player> <reset_starters>` command allowing command block/mcfunction users to reset a players Pokémon data.
### Pokémon Added
#### Gen 2
- Chikorita
- Bayleef
- Meganium
- Totodile
- Croconaw
- Feraligatr
- Cyndaquil
- Quilava
- Typhlosion
- Spinarak
- Ariados
- Shuckle
- Chinchou
- Lanturn
- Aipom
- Gligar
- Hoothoot
- Noctowl
- Mareep
- Flaaffy
- Ampharos
- Sudowoodo
- Snubbull
- Granbull
- Phanpy
- Donphan
- Teddiursa
- Ursaring
#### Gen 3
- Taillow
- Swellow
- Relicanth
- Duskull
- Dusclops
- Shroomish
- Breloom
- Cacnea
- Cacturne
- Poochyena
- Mightyena
- Wingull
- Pelipper
- Numel
- Camerupt
- Clamperl
- Huntail
- Gorebyss
- Surskit
- Masquerain
- Chimecho
- Barboach
- Whiscash
- Volbeat
- Illumise
- Zigzagoon
- Linoone
- Ralts
- Kirlia
- Gardevoir
- Nincada
- Ninjask
- Shedinja
- Beldum
- Metang
- Metagross
#### Gen 4
- Carnivine
- Shinx
- Luxio
- Luxray
- Ambipom
- Gliscor
- Dusknoir
- Chingling
- Bonsly
- Chatot
- Combee
- Vespiquen
- Buizel
- Floatzel
- Starly
- Staravia
- Staraptor
- Gallade
#### Gen 5
- Bouffalant
- Roggenrola
- Boldore
- Gigalith
- Venipede
- Whirlipede
- Scolipede
- Yamask
- Cofagrigus
- Patrat
- Watchog
- Lillipup
- Herdier
- Stoutland
- Cottonee
- Whimsicott
- Pidove
- Tranquill
- Unfezant
- Timburr
- Gurdurr
- Conkeldurr
#### Gen 6
- Scatterbug
- Spewpa
- Vivillon
- Skrelp
- Dragalge
- Bunnelby
- Diggersby
- Phantump
- Trevenant
- Fletchling
- Fletchinder
- Talonflame
#### Gen 7
- Wishiwashi
- Cutiefly
- Ribombee
- Stufful
- Bewear
- Comfey
- Alolan Exeggutor
- Alolan Raichu
- Alolan Meowth
- Alolan Persian
- Komala
- Wimpod
- Golisopod
- Crabrawler
- Crabominable
- Mudbray
- Mudsdale
#### Gen 8
- Arrokuda
- Barraskewda
- Nickit
- Thievul
- Falinks
- Galarian Farfetch'd
- Sirfetch'd
- Rookidee
- Corvisquire
- Corviknight
- Galarian Ponyta
- Galarian Rapidash
- Yamper
- Boltund
- Galarian Zigzagoon
- Galarian Linoone
- Obstagoon
- Galarian Meowth
- Perrserker
- Ursaluna
#### Gen 9
- Sprigatito
- Floragato
- Meowscarada
- Fuecoco
- Crocalor
- Skeledirge
- Quaxly
- Quaxwell
- Quaquaval
- Flittle
- Espathra
- Garganacl
- Fidough
- Dachsbun
- Armarouge
- Ceruledge
- Cetoddle
- Cetitan
- Shroodle
- Grafaiai
- Tandemaus
- Maushold
- Varoom
- Revavroom
- Squawkabilly
- Glimmet
- Glimmora
- Annihilape
- Tinkatink
- Tinkatuff
- Tinkaton
- Maschiff
- Mabosstiff
- Lechonk
- Oinkologne
- Paldean Wooper
- Clodsire
### Changes
- Removed the existing shoulder effects from Pokémon until we have more balanced versions of them (they're too powerful!)
- Updated models and textures of Weedle, Dwebble and Crustle, Spiritomb, Koffing and Weezing, Kadabra and Alakazam, Emolga, Oshawott, Doduo and Dodrio, Dratini and Dragonair and Dragonite, Sneasel and Weavile, Gyarados, Hitmonlee and Hitmonchan, Chesnaught, Spinda, Mamoswine, Steelix, Misdreavus and Mismagius, Buneary and Lopunny, Golduck, Meowth and Persian, Fennekin and Braixen and Delphox, Snivy and Servine and Serperior, Ratatta and Raticate, Nidorina and Nidoqueen, Nidoran Male and Nidoking, Riolu and Lucario, Haunter and Gengar, Mankey and Primeape, Mew and Mewtwo, Arcanine, Magnemite and Magneton and Magnezone, Exeggcute and Exeggutor, Elekid and Electabuzz and Electivire, Pichu and Pikachu and Raichu, Wooper, Drowzee and Hypno, Aerodactyl, Spearow and Fearow, Lickitung and Lickilicky, Pidgey and Pidgeotto and Pidgeot, Scyther and Scizor and Kleavor, Popplio and Brionne and Primarina, Torchic and Combusken and Blaziken, Happiny and Chansey and Blissey.
- Updated animations for Steelix, Turtwig and Grotle and Torterra, Ponyta and Rapidash, Piplup and Prinplup and Empoleon, Drowzee and Hypno, Farfetch'd, Exeggcute and Exeggutor, Bidoof, Chimecho, Lickitung and Lickilicky, Popplio and Brionne, Luvdisc, Chimchar and Monferno and Infernape, Sobble and Drizzile and Inteleon, Greninja, Heatmor, Aerodactyl, Ditto, Lotad and Lombre and Ludicolo, Pumpkaboo and Gourgeist.
- Updated sprites for EV medicines, the rare candy, and the apricorn door item.
- Updated textures for apricorn doors and all the evolution stone ores.
- Ponyta and Rapidash now have animated textures; they look insane.
- Updated Apricorn Leaves color.
- Wild Pokémon now heal if you are defeated by them or flee from them.
- Doubled the default time between ambient Pokémon cries (they have cries if you're using a resource pack to add them)
- Moved spawn attempts per tick to a config option (ticksBetweenSpawnAttempts)
- PCs can now be waterlogged
- Starter selection prompt now appears as a tutorial-esque toast instead of plain text
- Reorganised the advancements recipes folder
- Pokéedit command now supports IVs and EVs.
- Reorganised creative categories
- Pokémon can now wander into non-solid blocks such as foliage
- Thrown Poké Balls now despawn after 30 seconds so that they don't fly forever.
- Dive Balls will now have the same motion speed underwater as if they were thrown in the air.
- Hardcoded potion shoulder effects have been removed. You can now use any potion vanilla or otherwise with the parameters you'd like, for more information see the [Datapack & Resourcepack Creators](#datapack-&-resourcepack-creators) section.
- Clicking categories of the Stat subsection or the party reorder button in the Summary screen will now produce a click sound.
- Updated PC Recipe.
- Improved Pokémon AI and movement.
- Friendship will slowly increase when Pokémon are shoulder-mounted.
- Master Balls are now unable to be burned when dropped into fire/lava. They're made from stronger stuff.
- Pokémon will appear red when hurt, like regular entities, except when they're fainting.
- Pokémon's air meter no longer depletes while battling underwater.
- Sleeping partially restores PP of Pokémon
- Shoulder mounts now match the shoulder position a bit more accurately when sneaking.
- Poison Heal will now cause poisoned Pokémon to heal outside of battle.
- Updated Poké Ball, PC, UI, evolution and Healing Machine sounds.
### Added cries to the following Pokémon:
- All starters and their evolutions
- Caterpie, Metapod, Butterfree
- Weedle, Kakuna, Beedrill
- Pidgey, Pidgeotto, Pidgeot
- Rattata, Raticate
- Spearow, Fearow
- Ekans, Arbok
- Pichu, Pikachu, Raichu, Alolan Raichu
- Cleffa, Clefairy, Clefable
- Mankey, Primeape, Annihilape
- Ponyta, Rapidash, Galarian Ponyta, Galarian Rapidash
- Farfetch'd, Galarian Farfetch'd, Sirfetch'd
- Onix, Steelix
- Tauros
- Ditto
- Eevee, Vaporeon, Jolteon, Flareon, Espeon, Umbreon, Leafeon, Glaceon, Sylveon
- Hoothoot, Noctowl
- Mareep, Flaaffy, Ampharos
- Aipom, Ambipom
- Wooper, Quagsire, Clodsire
- Snubbull, Granbull
- Miltank
- Poochyena, Mightyena
- Taillow, Swellow
- Ralts, Kirlia, Gardevoir, Gallade
- Shroomish, Breloom
- Nincada, Ninjask, Shedinja
- Buneary, Lopunny
- Chingling
- Chatot
- Riolu, Lucario
- Pidove, Tranquill, Unfezant
- Roggenrola, Boldore, Gigalith
- Venipede, Whirlipede, Scolipede
- Maractus
- Dwebble, Crustle
- Yamask, Cofagrigus
- Bunnelby, Diggersby
- Fletchling, Fletchinder, Talonflame
- Scatterbug, Spewpa, Vivillon
- Honedge, Doublade, Aegislash
- Skrelp, Dragalge
- Phantump, Trevenant
- Pumpkaboo, Gourgeist
- Bergmite, Avalugg
- Mudbray, Mudsdale
- Stufful, Bewear
- Mimikyu
- Rookidee, Corvisquire, Corviknight
- Nickit, Thievul
- Wooloo, Dubwool
- Yamper, Boltund
- Tandemaus
- Fidough, Dachsbun
- Squawkabilly
- Nacli, Naclstack, Garganacl
- Charcadet, Armarouge, Ceruledge
- Maschiff, Mabosstiff
- Shroodle, Grafaiai
- Flittle, Espathra
- Tinkatink, Tinkatuff, Tinkaton
- Varoom, Revavroom
- Glimmet, Glimmora
- Cetoddle, Cetitan
- Tatsugiri
### Fixes
- Fixed spawning moon phase dependent Pokémon only when the moon phase is wrong (that's a funny woopsy)
- Fixed large Pokémon spawning partially inside walls where they suffocate.
- Fixed custom Pokémon in your party or PC not being removed when the addon is removed, causing major issues.
- Fixed messages for entry hazards, screens, weather, damage, healing, Tailwind, Perish Song, Destiny Bond, Shed Skin, Uproar, Forewarn, Disguise, Arena Trap, Yawn, Curse, Clamp, Whirlpool, Liquid Ooze, Miracle Eye, Safeguard, Magic Bounce, Lock On, Focus Energy, Confusion, and more.
- Fixed Porygon not evolving with an Upgrade.
- Fixed super sized Pumpkaboo not having any moves.
- Fixed Infernape look animation.
- Fixed Garchomp T-posing while swimming which was very funny.
- Fixed a bug that caused sleeping Pokémon to stay asleep. Forever. The years passing them by as they dream of a world without hate...
- Fixed a bug that would freeze a battle when a Pokémon gets trapped by an ability, making the trap abilities even scarier and trap-like than they were before.
- Fixed the Poké Ball close animation canceling whenever colliding with a block.
- Fixed lighting and Pokémon label issues when a Pokémon item frame is nearby.
- Fixed Pokémon being able to spawn outside the world border as a tease.
- Fixed deepslate water stone ore items looking like deepslate fire stone ores. Huh?
- Fixed a bunch of client-side logging errors when Pokémon are shoulder mounted. You didn't notice? Good.
- Fixed a crash when wild Pokémon have to struggle under specific circumstances.
- Fixed uncolored pixels on Yanma's shiny texture.
- Fixed apricorn tree leaves looking gross on the Fast graphics mode.
- Fixed hoes not breaking apricorn tree leaves any faster.
- Fixed Shiftry's PC model position.
- Fixed the `/pc` command not playing the opening sound.
- Fixed different forms of Pokémon not being able to appear as different sizes.
- Fixed the Healing Machine soft locking you from using others when removed by non-players.
- Fixed animations being sped up when using the Replay Mod.
- Fixed particle animations not running when a Pokémon is off-screen.
- Fixed Pokémon variants and layers not rendering correctly when shouldered and playing on a dedicated server, existing shoulders affected will need to be retrieved and shouldered again.
- Fixed shoulder effects not staying applied through situations that remove potion effects such as drinking milk.
- Fixed Shedinja not being able to recover naturally.
- Fixed Shedinja evolving to use the consumed Poké Ball and removed the held item to prevent dupes.
- Fixed Shedinja healing above 1 HP.
- Fixed Shedinja, basically.
- Fixed shearing Pokémon dropping 0-2 wool instead of 1-3.
- Fixed some alignment issues in the stat hexagon of the summary menu. OCD people rejoice.
- Fixed capture calculations not applying ball bonuses entirely correctly.
- Fixed battles soft-locking when consecutive Pokémon faint on switch-in.
- Fixed timing and color of battle window messages.
- Fixed players being able to trade, battle and let out their Pokémon while in spectator mode.
- Fixed Galarian Yamask not being able to evolve and by proxy the `damage_taken` evolution requirement.
- Fixed Bisharp not being able to evolve and by proxy the `defeat` evolution requirement.
- Fixed White-Striped Basculin not being able to evolve because of a broken `recoil` evolution requirement.
- Fixed Primeape, Qwilfish and Stantler not being able to evolve because of a broken `use_move` evolution requirement.
- Fixed Bramblin, Pawmo, and Rellor not being able to evolve because of a broken `blocks_traveled` evolution requirement.
- Fixed displayName property in spawn files not doing what it's meant to do.
- Fixed Pokémon not sleeping in the wild like we wanted them to.
### Developer
- Added SpawnEvent, ThrownPokeballHitEvent, PokemonSentEvent, PokemonRecalledEvent.
- Added BattleFledEvent, BattleStartedEvent, BattleFaintedEvent.
- Added persistent NBT property inside Pokémon to store quick and simple data.
- Species and FormData have had their evolutions, pre-evolution and labels properties exposed. It is still recommended to work using a Pokémon instance when possible.
- Added capture check to BattleVictoryEvent.
- The various hardcoded potion shoulder effects have been removed, make use of PotionBaseEffect.
- Added ContextManager for tracking causes and contexts of conditions created during a battle. See BattleContext for types of conditions that are tracked.
- Added MongoDB support for storing Pokémon and Player data. Must be enabled in config, requires MongoDB core and sync drivers (4.10.0+).
- CobblemonShowdown updated to version 10.
- Generation of a battle can be set in BattleFormat.
- Pokémon now have `teraType`, `dmaxLevel`, and `gmaxFactor` properties. Gimmicks can be used during battle by adding the respective identifiers to `keyItems` in PlayerData: `key_stone`, `z_ring`, `dynamax_band`, and `tera_orb`. Dynamax is only supported in Gen 8 battles. Mega Evolution and Z-Power require custom held items to be added (e.g. an item with the path `gengarite` will allow Gengar to Mega Evolve). Currently custom Z-Crystals and Mega Stones are not supported.
### Datapack & Resourcepack Creators
- All potion related shoulder effects have had their IDs changed. They now all share the same type being `potion_effect` and use the vanilla Potion data [parameters](https://minecraft.fandom.com/wiki/Potion#Item_data). For example, here is the converted Pidgey asset:
- `json
{
"type": "potion_effect",
"effect": "minecraft:slow_falling",
"amplifier": 0,
"ambient": true,
"showParticles": false,
"showIcon": false
}
`
- Renamed the `walked_steps` evolution requirement to `blocks_traveled`.
- Added support for scale in animations.
- Added support for jump keyframes (i.e. pre and post keyframes)
- Added structure spawning conditions
- Added Advancement trigger for defeating Pokémon and collecting varieties of Pokémon.
- Added support for "isBattle" and "isTouchingWater" properties on resource pack Pokémon poses. This allows your custom Pokémon to be posed differently when in battle.
- Added support for "isVisible" on a transformed part on resource pack Pokémon poses. This allows your custom Pokémon to have bones disappear in specific poses, such as hiding Greninja's throwing star when not in a battle pose.
- Added support for battle music. Sounds can be added to the `battle.pvp.default` and `battle.pvw.default` sound events.
- Added 'enabled' optional property on model layers, allowing later variations to disable previously-defined layers. See [this issue](https://gitlab.com/cable-mc/cobblemon/-/issues/335) for how this looks.
- Cobblemon items can now all have their own tooltips via resourcepacks. To add a tooltip, add a lang entry like "item.cobblemon.{item_id}.tooltip". If you want to add multiple tooltip lines you can do so with "item.cobblemon.{item_id}.tooltip_1" and upwards.
- Item interaction evolutions and held item requirements now support NBT by creating an object JSON containing the key `item` for what used to be the existing condition support and a `nbt` key for the NBT format, this is the string [format](https://minecraft.fandom.com/wiki/NBT_format) expected in commands. Existing data does not need to be updated.
- Fixed faint animations not working properly in add-ons.
- Fixed non-existent species in spawn pool files causing random species to spawn.
### Localization
- Added partial translations for Dutch, Polish, Swedish, Hungarian, Czech, Cyprus Greek, and even Esperanto.
- Updated translation for French and Canadian French, Simplified Chinese, Japanese, Korean, Spanish and Mexican Spanish, Pirate English, German, Thai, Turkish, Portuguese and Brazilian Portuguese, Ukrainian, and Russian.
+130
View File
@@ -0,0 +1,130 @@
## [1.4.1 (December 23rd, 2023)](#1-4-1)
### Additions
- Added battle spectating. Press R on a player in a battle and you can spectate and bully them for their tactics.
- Added the Litwick and Drifloon lines.
- Cobblemon now has compatibility with [Adorn](https://modrinth.com/mod/adorn), allowing you to craft Apricorn wood furniture.
- Berries can now be used in recipes from [Farmer's Delight](https://modrinth.com/mod/farmers-delight) and [Farmer's Delight (Fabric)](https://modrinth.com/mod/farmers-delight-fabric), as well as any other mods using the same berry tags.
- Boats, signs and hanging signs are now craftable with Apricorn wood.
- Added the Fairy Feather, Iron Ball, Cleanse Tag, Flame Orb, Life Orb, Smoke Ball, and Toxic Orb held items.
- Added the Inferno, Void, and Forsaken patterns for Vivillon. These can be obtained by evolving a Spewpa in the Nether, End, or Deep Dark respectively.
- Bees can now be fed using Pep-Up Flowers.
- Mooshtank can now be milked with a bowl for Mushroom Stew.
- Updated Showdown version to use generation 9 battle data.
- Added cries to Beldum, Metang and Metagross.
- Added a `/bedrockparticle` command to run Snowstorm-format particle effects.
- Added data for Dipplin, Fezandipiti, Munkidori, Ogerpon, Okidogi, Poltchageist and Sinistcha.
- Added additional nickname trigger "Grumm" for Inkay's evolution.
### Changes
- Using Potions, Status Heals, Ethers, and Antidotes will now return a glass bottle
- Using a Remedy, Fine Remedy, or Superb Remedy will no longer lower friendship with a Pokémon.
- The Healing Machine now has a [much more difficult recipe](https://wiki.cobblemon.com/index.php/Healing_Machine), placing it later game.
- Made the EXP. Share recipe cheaper.
- Turtwig can now be put on your shoulder.
- Updated Zubat line model, texture, and animations.
- Updated Geodude line models and textures.
- Added animations for Hitmontop, Tyrogue, and Mightyena.
- Tweaked animations for Dusknoir, Ratatta, Bewear, Exeggutor, and Alolan Exeggutor.
- Sized Kantonian Exeggutor down. Still big, but not TOO big.
- Tweaked cries for Pikachu, Raichu and Alolan Raichu.
- Fixed Swimming behaviors for Wimpod line, Oshawott line, Quaxly line, and Clodsire
- Changed the way level scaling works in spawning. By default, anything with a spawn range of up to 5 either side of the party highest level and everything else will spawn per its specified ranges.
- The nature of Pokémon will now be displayed italicized when a mint has been applied. Hovering over the nature will display the mint that was applied.
- Slightly lowered the volume of all cries.
- Giving Pokémon items now plays a sound
- Updated the Poké Ball model and animations.
- Pasture blocks will now also connect their bottom left and right sides to walls, iron bars, glass panes, and any other modded block that follows the same connection rules.
- The config option `consumeHeldItems` has been removed, please see the Datapack & Resourcepack Creators section for instructions on the updated method.
- Heal Powder can now be composted with a 75% chance of adding a layer
- Mental, Power, White, and Mirror Herbs can now be composted with a 100% chance of adding a layer.
- Added glowing eyes to Hoothoot and Noctowl.
- Mining Evolution Stone Ores with a Fortune pickaxe will now increase the amount of items received.
- Black Augurite can now be used to craft stone axes and obsidian.
- Using Experience Candies brings up the Party Pokémon Select screen when not targeting a Pokémon.
- Added tab completion for statuses to commands.
- Remedies can now be cooked in a Smoker and on a Campfire.
- Vertically flipped the Destiny Knot recipe.
### Fixes
- Fixed Raticate, Onix, Unfezant, Bergmite, Avalugg, Boltund and Revavroom cries not playing.
- Fixed Alolan Ratticate animations causing a crash.
- Fixed Quaxwell not doing its cry.
- Fixed Shroomish not using its idle.
- Fixed how Weight and Height is calculated for Pokémon, fixing the damage from moves like Low Kick.
- Fixed a staggering number of battle messages.
- Fixed various stone related blocks not being valid for Big Roots to spread onto on the Fabric version.
- Updated the registration of compostable items to improve compatibility with Fabric forks such as Quilt. Please note this does not mean we officially support Quilt, this change was only done since it was possible by correcting the registration to use the new intended way in the Fabric API.
- Fixed Dispensers being unable to shear grown Apricorns.
- Fixed Bowl not being given back to player after using Berry Juice
- Fixed missing text for attempting to catch an uncatchable Pokémon
- Fixed Moonphases for Clefairy line
- Fixed issue where Potions, Super Potions, and Hyper Potions did not work during battle
- Fixed the compatibility patch with the Forge version of [Carry On](https://modrinth.com/mod/carry-on) due to a bug on the mod, the Fabric version was unchanged and is still compatible.
- Added the ability to place Berries on modded Farmland blocks.
- Shouldered Pokémon now hop off when selected in team and R is pressed. This also is in effect in battles leading to shouldered Pokémon jumping of the shoulder of the trainer when it is their turn.
- Made more items compostable and changed the process for making items compostable.
- Added the ability for Hoppers to fill Brewing Stands with Medicinal Brews and Potions.
- Apricorn blocks are now flammable. Probably should have started that way, but we got there.
- The default pose for Pokémon being passengers is now "standing".
- Fixed issue where some IVs were changing every time a player logged back in.
- Fixed advancement crash from bad datapack evolution data.
- Fixed global influences being applied to TickingSpawners twice.
- Reverted the default SpawningSelector back to FlatContextWeightedSelector. This fixes multiple weight related issues, including weights with SpawningInfluences.
- Apricorn Planting advancement should work again.
- Advancement "Vivillonaire" should now allow High Plains and Icy Snow Vivillon to register.
- Fixed the last battle critical hits evolution requirement not working.
- Fixed the damage taken evolution requirement not saving progress.
- Fixed the defeated Pokémon evolution requirement not saving progress.
- Fixed potion brewing recipes not showing up JEI and similar mods on the Forge version.
- Fixed an exploit that could convert a single piece of Blaze Powder into an extra Medicinal Brew on the Forge version.
- Fixed an issue where health percentages would show incorrectly after healing
- Fixed the move Revival Blessing not allowing you to select from fainted party members.
- Fixed villagers not being able to pick up and plant mint seeds, vivichoke seeds, and revival herbs.
- Fixed Exeggcute faint.
- Fixed various spawn configuration issues across the board.
- Fixed a possible visual duplication of sent out Pokémon.
- Fixed battle text for Trace, Receiver, and Power of Alchemy.
- Fixed tooltips being appended too late in items.
- Fixed battles ending background music when battle music is not present.
- Fixed battles ending background music, instead of pausing, when battle music is played.
- Fixed a bunch of regionals to actually be obtainable, namely the unmodelled ones
- Fixed battle text for moves that were missing.
- Fixed a formatting error that affected Pokémon nicknames when the storage type is JSON.
- Fixed a crash that could occur on some servers relating to chunk loading and teleporting.
- Fixed an issue with Inkay's evolution requirement.
- Fixed conflicting evolution requirements that would cause the Ocean, River, Sun, and Tundra variants of Vivillon to be unobtainable through evolution.
- Fixed the Modern variant of Vivillon not being obtainable through evolution.
- Fixed Pokémon pathing through berry bushes, harming themselves in the process.
### Developer
- Fixed the `SpawnEvent` not respecting usage of `Cancelable#cancel`.
- Added the `EvolutionTestedEvent`, this allows listening and overriding the final result of evolution requirement tests.
- Rebuilt the scheduling API to more clearly force side choices and allow more local temporal frames of reference for tasks.
- Added utility script that can be used to generate all Spawn JSONS for all pokemon from the spawning spreadsheet in 1 click ([cobblemon_spawn_csv_to_json.py](utilityscripts%2Fcobblemon_spawn_csv_to_json.py)).
- The `HeldItemManager` has a new method `shouldConsumeItem`, this will return false by default to prevent breaking changes, see the documentation and update your implementations as needed.
- Added and implemented minSkyLight and maxSkyLight as config options for SpawnConditions
- Player specific battle themes can now be assigned to `PlayerData#battleTheme`.
- Changed design of `BattleStartedPreEvent`. Will now expose the `PokemonBattle`.
### Datapack & Resourcepack Creators
- Added 3 new item tags: `cobblemon:held/consumed_in_npc_battle`, `cobblemon:held/consumed_in_pvp_battle` & `cobblemon:held/consumed_in_wild_battle` these will determine which items get consumed in the implied battle types by Cobblemon, keep in mind the controller for this behaviour can be overriden by 3rd party.
- Unique wild encounter themes can now be associated with a specific species (or form) by assigning a SoundEvent identifier to the `battleTheme` field in the species' data configuration.
- Added a `structure` evolution condition, used to check if a Pokémon is in a given structure.
### Localization
- Updated translations for:
- French and Canadian French
- Simplified and Traditional Chinese
- Spanish and Mexican Spanish
- Pirate English
- German
- Thai
- Portuguese and Brazilian Portuguese
- Polish
- Italian
- Dutch
- Ukrainian
- Russian
Thank you so much to all of our community translators that bring the mod to the rest of the world!
+362
View File
@@ -0,0 +1,362 @@
## [1.5.0 - The Ruins and Revival Update (May 12th, 2024)](#1-5-0)
#### "You're telling me that Mojang has added archaeology to the game? Hmm... that gives me an idea."
### Additions
- Added 17 ruin structures, where you can find Pokémon-themed Armor Trims and Pottery Sherds, Tumblestones, and more.
- Added 23 fossil structures, where you can brush Suspicious Sand/Gravel for [Fossils](https://wiki.cobblemon.com/index.php/Fossil). You can add [custom fossils using datapacks](https://wiki.cobblemon.com/index.php/Fossils_File).
- Added the Data Monitor, Fossil Compartment, and Restoration Tank blocks. Placed in the correct formation, you can use these to create a [Restoration Machine](https://wiki.cobblemon.com/index.php/Resurrection_Machine) where you can bring fossils back to life. Use organic material to fill the tank first!
- Added 3 variants of [Tumblestone](https://wiki.cobblemon.com/index.php/Tumblestone), which can be planted near Lava or Magma to grow harvestable Tumblestone Clusters.
- Added Tumblestone Blocks, a storage block crafted from 9 Tumblestones.
- Added Ancient Poké Balls, which are aesthetic variants crafted from Tumblestones.
- Added the Ancient Feather, Wing, and Jet Balls, which fly further than regular Poké Balls.
- Added the Ancient Heavy, Leaden, and Gigaton Balls, which are heavier and don't fly as far as regular Poké Balls. These will receive more functionality in a future update.
- Added visual effects for many Poké Balls when sending out or capturing Pokémon.
- Added a new send-out ball toss animation that showcases the ball used for the Pokémon.
- Added simple move animations for Pokémon in battle with a proof of concept (Flamethrower) for more complicated animations. More and more specific animations will come in future updates.
- Added Original Trainer to the summary menu. To edit the OT through commands, you must specify originaltrainertype=<Player/NPC>, and originaltrainer=<Username or UUID/NPC Name>
- Added support for planting Apricorn trees, berries, and mints in [Botany Pots](https://modrinth.com/mod/botany-pots)
- Added the hidden "True Vivillionaire" advancement.
- Added the [Display Case](https://wiki.cobblemon.com/index.php/Display_Case) block. Use it to display your archaeological findings, Poké Balls, or other items.
- Added 6 Pokémon-themed Pottery Sherds, obtained from ruin structures. Sherds... sh-erds. Weird word.
- Added a Pokémon-themed armor trim, obtained from ruin structures.
- Added Nether Fire Stone Ore to, surprisingly, the Nether.
- Added Terracotta Sun Stone Ore to Badlands biomes.
- Added the EV Boosting Feathers.
- Added [Gilded Chests](https://wiki.cobblemon.com/index.php/Gilded_Chest), available in all Apricorn colors.
- Added Relic Coins, Relic Coin Pouches, and Relic Coin Sacks. Gimmighoul might be interested in these.
- Added Type Gems. These will have additional uses later, so you should start collecting them.
- Added new held items: Ability Shield, Absorb Bulb, Air Balloon, Binding Band, Blunder Policy, Cell Battery, Covert Cloak, Damp Rock, Eject Button, Eviolite, Expert Belt, Float Stone, Focus Sash, Heat Rock, Icy Rock, Iron Ball, Light Ball, Loaded Dice, Red Card, Shell Bell, Sticky Barb, Smooth Rock, Soothe Bell and Weakness Policy.
- Added Hisui starters to the starter selection menu. They come inside of ancient Poké Balls.
- Added a bubble quirk to Krabby that only plays during clear sunsets. It looks familiar...
- Added forfeit option to PVP battles.
- Added visual changes for entities affected by Illusion, Imposter, or Transform in battle.
- Added shoulder mounting for Squirtle, Ralts, Roggenrola, Charcadet, Sizzlipede, Litwick, Cutiefly, Flabebe, Flittle, and Scatterbug
- Added species data for Hydrapple, Iron Boulder, Iron Crown, Pecharunt, Raging Bolt, and Terapagos
- Added various new tags for search-ability and better mod compatibility.
- Added the [Ability Capsule](https://bulbapedia.bulbagarden.net/wiki/Ability_Capsule) and [Patch](https://bulbapedia.bulbagarden.net/wiki/Ability_Patch). These have no way of getting them (for now) and only work as intended with the traditional ability format of 1 to 2 common abilities and 1 hidden ability.
### Pokémon Added
#### Gen 2
- Sentret
- Furret
- Qwilfish
- Heracross
- Skarmory
- Larvitar
- Pupitar
- Tyranitar
#### Gen 3
- Lileep
- Cradily
- Anorith
- Armaldo
- Tropius
- Roselia
- Aron
- Lairon
- Aggron
- Solrock
- Lunatone
- Makuhita
- Hariyama
- Trapinch
- Vibrava
- Flygon
#### Gen 4
- Shieldon
- Bastiodon
- Cranidos
- Rampardos
- Budew
- Roserade
- Hippopotas
- Hippowdon
#### Gen 5
- Tirtouga
- Carracosta
- Archen
- Archeops
- Zorua
- Zoroark
- Petilil
- Lilligant
- Darumaka
- Darmanitan
- Woobat
- Swoobat
- Sandile
- Krokorok
- Krookodile
- Frillish
- Jellicent
- Cubchoo
- Beartic
- Deino
- Zweilous
- Hydreigon
- Larvesta
- Volcarona
- Alomomola
- Ferroseed
- Ferrothorn
#### Gen 6
- Tyrunt
- Tyrantrum
- Amaura
- Aurorus
- Goomy
- Sliggoo
- Goodra
- Carbink
- Flabébé
- Floette
- Florges
- Klefki
#### Gen 7
- Turtonator
- Fomantis
- Lurantis
- Salandit
- Salazzle
- Jangmo-o
- Hakamo-o
- Kommo-o
- Alolan Diglett
- Alolan Dugtrio
#### Gen 8
- Gossifleur
- Eldegoss
- Arctozolt
- Arctovish
- Dracozolt
- Dracovish
- Basculegion
- Hisuian Decidueye
- Hisuian Typhlosion
- Hisuian Samurott
- Hisuian Lilligant
- Hisuian Sliggoo
- Hisuian Goodra
- Hisuian Zorua
- Hisuian Zoroark
- Hisuian Voltorb
- Hisuian Electrode
- Hisuian Qwilfish
- Overqwil
- Hisuian Sneasel
- Sneasler
- Stonjourner
- Cufant
- Copperajah
- Dreepy
- Drakloak
- Dragapult
- Impidimp
- Morgrem
- Grimmsnarl
#### Gen 9
- Gimmighoul
- Using Relic Coins, you can increase Gimmighoul's Coin Stash. Upon reaching 999, it can be evolved into Gholdengo.
- Additionally, if you give Gimmighoul a Netherite Scrap, you can increase its Netherite Stash. But what will that do to when you evolve it?
- Gholdengo
#### Cobblemon Exclusives
- Hisui Bias Rowlet
- Hisui Bias Dartrix
- Hisui Bias Cyndaquil
- Hisui Bias Quilava
- Hisui Bias Oshawott
- Hisui Bias Dewott
- Hisui Bias Goomy
- Hisui Bias Petilil
These are our compromise for having both regular and Hisuian forms of these Pokémon in the game. Hisui Biased variations will evolve into the Hisuian evolutions under most conditions. They are otherwise purely cosmetic differences.
### Added cries to the following Pokémon
- Alolan Raticate
- Vulpix, Ninetales
- Zubat, Golbat, Crobat
- Meowth, Persian
- Psyduck, Golduck
- Growlithe, Arcanine
- Geodude, Graveler, Golem
- Doduo, Dodrio
- Seel, Dewgong
- Muk, Grimer
- Krabby, Kingler
- Voltorb, Electrode, Hisuian Voltorb, Hisuian Electrode
- Tangela, Tangrowth
- Snorlax
- Cubone, Marowak
- Koffing, Weezing
- Aerodactyl
- Elekid, Electabuzz, Electivire
- Omanyte, Omastar
- Kabuto, Kabutops
- Lapras
- Scyther
- Hisui Bias Cyndaquil, Hisui Bias Quilava
- Igglybuff
- Yanma, Yanmega
- Gligar, Gliscor
- Qwilfish, Hisuian Qwilfish, Overqwil
- Sneasel, Hisuian Sneasel, Weavile, Sneasler
- Larvitar, Pupitar, Tyranitar
- Swinub, Piloswine, Mamoswine
- Aron, Lairon, Aggron
- Trapinch, Vibrava, Flygon
- Cacnea, Cacturne
- Barboach, Whiscash
- Lileep, Cradily
- Anorith, Armaldo
- Tropius
- Chimecho
- Bidoof, Bibarel
- Buizel, Floatzel
- Gible, Gabite, Garchomp
- Hisui Bias Oshawott, Hisui Bias Dewott
- Petilil, Lilligant, Hisui Bias Petilil, Hisuian Lilligant
- Basculin, Basculegion
- Sandile, Krokolok, Krookodile
- Darumaka, Darmanitan
- Archen, Archeops
- Zorua, Zoroark, Hisuian Zorua, Hisuian Zoroark
- Tyrunt, Tyrantrum
- Amaura Aurorus
- Carbink
- Goomy, Sliggoo, Goodra, Hisui Bias Goomy, Hisuian Sliggoo, Hisuian Goodra
- Klefki
- Hisui Bias Rowlet, Hisui Bias Dartrix
- Komala
- Impidimp, Morgrem, Grimmsnarl
- Cufant, Copperajah
- Dreepy, Drakloak, Dragapult
- Dracozolt, Arctozolt, Dracovish, Arctovish
- Lechonk, Oinkologne
- Maushold family of three and four
### Changes
- Alolan Pikachu and Exeggcute changed to Alola Bias.
- Pokémon now transition more smoothly between different poses.
- Updated models for Mimikyu, Alcremie, Squirtle, Wartortle, Blastoise, Pidgey, Pidgeotto, Pidgeot, Omanyte, Omastar, Growlithe, Arcanine, Nidoran Male, Nidoran Female, Lapras, Swinub, Piloswine, Basculin, Rowlet, Dartrix, Decidueye, Kabuto, Kabutops, Piplup, Prinplup, Elekid, Electabuzz, Cubone, Marowak, Paras, Mawile, Drifloon, Drifblim, Venonat, Venomoth, Yanma, Yanmega, Psyduck, Dusknoir, Diglett, Dugtrio, Natu, Xatu, Oshawott, Samurott, Torchic, Grovyle, Sceptile, Sizzlipede, Mismagius, and Raboot.
- Updated animations for Squirtle, Wartortle, Blastoise, Pidgey, Pidgeotto, Diglett, Dugtrio, Magikarp, Dragonite, Omanyte, Omastar, Kabuto, Pinsir, Chinchou, Lanturn, Ralts, Kirlia, Gardevoir, Gallade, Buizel, Garchomp, Pumpkaboo, Falinks, Lechonk, Litwick, Lampent, Chandelure, Carnivine, Galarian Meowth, Galarian Rapidash, Venonat, Venomoth, Phanphy, Donphan, Dratini, Dragonair, Happiny, Chansey, Blissey, Volbeat, Illumise, Numel, Sizzlipede, Centiskorch, Obstagoon, Timburr, Gurdurr, Conkeldurr, Drifloon, and Drifblim.
- Resized Drifloon.
- Added more held items to the held item tag, and Metal Coat to the held item tab.
- Added all ores to the modloader ore tags, and added tags for each ore type to the mod (both blocks and items).
- Changed the Destiny Knot to be crafted with a Ghast Tear rather than a diamond. We have big plans for the Destiny Knot...
- You can now punch grown apricorns to harvest them. We saw so many content creators breaking apricorns with their fists that it was making us die inside.
- The "Poké Ball" Vivillon variant is now obtainable by evolving a Spewpa after obtaining the "Aspiring Vivillionaire" advancement.
- Renamed the "Vivillionaire" advancement to "Aspiring Vivillionaire"
- Removed the Inferno, Forsaken, Poké Ball, and Void patterns from the Aspiring Vivillionaire advancement.
- Updated the biome tags for Spewpa's evolutions into the various Vivillon patterns. You should mostly be getting one evolution option at a time now.
- Apricorn Sprouts can now be planted directly on Apricorn leaves to create a new Apricorn of the same color.
- Added tooltips to interaction GUIs to make it clearer what they do.
- Poké Ball recipes now use tags for their center ingredient, rather than specifically Copper Ingots, Iron Ingots, Gold Ingots, and Diamonds, allowing for further datapack customisation and mod compatibility.
- Starter Toast now closes once the corresponding button is pressed once.
- Moved some items into the vanilla Food & Drinks category.
- Stacked Cobblemon Potion Bases can now be quick moved into Brewing Stands.
- Changed the Healing Machine recipe to swap the Max Revive for a Revive so that it is a bit easier to craft.
- Upped the rate that Gastly drop Ghast Tears from 2.5% to 5%, further helping the crafting of a Healing Machine.
- Pokémon with a low Blaze Powder drop chance now drop it more frequently in the Nether.
- Reorganised a few advancements.
- Pokémon entity shadows now scale when the Pokémon is being sent out or recalled.
- Remade Torkoal particles, now they only appear when in battle.
- Improved the shiny icon within summary and PC interfaces.
- Changed the Poison Barb sprite so that it doesn't look like a sword when held. It's a Poison Barb, not a Poison Sword. Wait, that gives me an idea.
- Moon Stone ore generates more frequently in Taigas and has been added to Magical and Spooky biomes. Ooo... Sorry.
- Density, Season, and Nether biome tags have been moved and renamed within the biome tags directory.
- Added particles to Lucario when in battle. Lucario is special.
- Movesets updated for Blueberry DLC.
### Fixes
- Re-added the recipe for the Iron vitamin. Well, technically it's a mineral.
- Fixed Exeggcute and Pikachu not being able to evolve.
- Fixed evolution priority for Exeggcute and Pikachu regional evolutions. Using a thunder stone on Kantonian Pikachu on the beach will give Alolan Raichu. A second thunder stone would then give Kantonian Raichu.
- Fixed battle text for the Poison Touch Ability.
- Finally found Sudowoodo and Bonsly. They were missing spawn data. Same with Drifloon and Litwick. Uh... sorry about that.
- Fixed Squawkabilly forms not being recognized.
- Fixed the bounce animation for Poké Balls being delayed by like, a full second. It's enough to drive you mad.
- Note blocks now play the correct sound on the Apricorn Plank-based blocks.
- Fixed an issue with transformed parts in posers causing whacky positional issues.
- Fixed Poké Balls freezing in an open state if you're looking away at the moment that it's meant to close. This actually fixes some other things but it's hard to explain.
- Fixed thrown Poké Balls technically having no name.
- Fixed very many issues with Bedrock particle effects. There are probably many more. Life goes on.
- Fixed Arbok patterns not being as specific in spawning as they were intended to be.
- Fixed Pokémon not avoiding danger at all when pathfinding.
- Fixed Pokémon pathing over snow layers and carpets.
- Fixed the Sobble line not being able to swim or breathe underwater.
- Fixed mod incompatibility with [Just Enough Resources](https://modrinth.com/mod/just-enough-resources-jer).
- Fixed mod incompatibility with [Visual Overhaul](https://modrinth.com/mod/visual-overhaul).
- Fixed an issue that allowed Pokémon to spawn on rails.
- Fixed the data set on Pokémon when abilities are given via properties such as in `/spawnpokemon`.
- Fixed Pokémon sometimes losing hidden abilities when evolving. This fix will only take effect for newly created Pokémon because of technical reasons that were explained to me but which I then forgot.
- Fixed capture messages not displaying in battle.
- Fixed the Illusion ability causing the wrong Pokémon to be targeted in battle.
- Fixed battles started with fainted party members causing a soft-lock on defeat.
- Fixed some issues with eyes in the faint animations of Hitmonlee and Phantump
- Fixed missing evolution moves, for example Stone Axe for Kleavor.
- Cleaned up empty evolutions declaration in species data (And no, I'm not listing all 169. No I don't care what you pay me, I'm not doing it).
- Fixed non-consumable held items being consumed or swapped in battle permanently.
### Developer
- Significantly changed the way the properties in PokemonEntity work. This could break some plugins (not in a big way, but changes will be needed for some things).
- Rebuilt the scheduling API to more clearly force side choices and temporal frames of reference for tasks. The developers say that how it works is cool but I stopped listening.
- Added dialogue API and data registry. This is powerful, and there is a full example in the Cobblemon mod you can trigger using `/opendialogue <username> cobblemon:example`. The example JSON is inside the data folder of the mod.
- Opened up the ItemDropEntry class to allow for it to be extended.
- Added a new "advancement" evolution variant that takes an advancement identifier and succeeds if the player has the advancement.
- Made the spawning API capable of non-entity spawning. You can make it 'spawn' commands if you want. Go nuts.
- Made `PokemonProperties.parse` more interoperable with Java. Save yourself and stop using Java.
- Added the `HeldItemEvent`, this comes with 2 implementation `HeldItemEvent.Pre` and `HeldItemEvent.Post`.
- Corrections to the ability implementation have been made that make `Ability.forced` function as intended and never reroll an ability for a Pokémon, please check your implementations to ensure the corrected behavior is intended for your use case.
- `Pokemon.ability` no longer has a public setter. Please migrate to using `Pokemon#updateAbility`, this handles the ability coordinate storage for you when necessary.
- `Ability.forced`, `Ability.index` and `Ability.priority` have all had their setters internalized, there is no longer any need to manually adjust these migrate to the method mentioned above to handle that process for you.
- `AbilityChanger` has been added to API alongside some implementations, this is subject to change as the ability capsule and patch currently only expect the traditional behaviour in the Pokémon games of 1 or 2 regular abilities and 1 hidden ability.
- `Pokemon#rollAbility` has been added which re9rolls for a legal ability for the Pokémon.
- `docs/cobblemon-tags` tags and spawn-presets can now be auto-generated from the current tags in the Cobblemon mod with the `generateSpawnPresetList.py` and `generateTagList.py` scripts.
- `public_spawns_to_json.py` script has been added to give the powerful spawn.json generator a simplistic UI.
- Updated Showdown with Gen 9 DLC.
- Changed mixins to be Java 17 for compatibility level instead of 16, removing a warning from startup logs.
### Datapack & Resourcepack Creators
- The maximum amount of fossils that can fit in the Fossil Analyzer can be adjusted in the config.
- Custom fossils can be defined using a list of items and the resulting Pokémon. An example of `aerodactyl.json`:
`JSON
{
"result": "aerodactyl",
"fossils": [
"cobblemon:old_amber_fossil"
]
}
`
- Fetus models can be defined in `bedrock/fossils`.
- Fetus textures can be defined in `textures/fossils`.
- Fuel for the Restoration Machine is registered inside the `natural_materials` folder. To register more fuels, create a JSON file containing an array of objects. Each object supports the following fields:
- `content`: Integer containing the amount of fuel to add.
- `item` OR `tag`: Identifier of the item or item tag to be inserted.
- `returnItem`: Identifier of an item to return to the player after consumption.
- Added 3 new item tags: `ancient_poke_balls`, `fossils`, and `tumblestones`.
- Added a spawn rules system to modify general spawning behaviour, see the [wiki](https://wiki.cobblemon.com/index.php/Spawn_Rules) for more information.
- Added dialogue datapack folder and `/opendialogue` command.
- Added the item tag `cobblemon:held/leaves_leftovers` this can be used to flag apple-like items that can create leftovers when eaten.
- You can now add support for dynamic lighting implementations, Cobblemon ships with a default implementation for [LambDynamicLights](https://modrinth.com/mod/lambdynamiclights) and the [Dynamic Lights Reforged](https://www.curseforge.com/minecraft/mc-mods/dynamiclights-reforged), add the following to any species or form:
`JSON
{
"lightingData": {
"lightLevel": 14,
"_lightLevelCommentRemoveMe": "Above supports 0 to 15",
"liquidGlowMode": "LAND",
"_liquidGlowModeCommentRemoveMe": "Above supports LAND, UNDERWATER or BOTH"
}
}
`
- Following up on this change `light_source` was removed as a possible shoulder effect due to becoming unnecessary and never having had a default implementation.
- Added the item tag `cobblemon:ability_changers`, contains the `cobblemon:ability_capsule` & `cobblemon:ability_patch` by default.
- Added the item tag `cobblemon:held/is_friendship_booster`, allows items to give the Soothe Bell effect of a boost of 1.5x Friendship gained, contains `cobblemon:soothe_bell` by default.
+105
View File
@@ -0,0 +1,105 @@
## [1.5.1 (May 27th, 2024)](#1-5-1)
### Additions
- Added unique send out particles for Cherish, Dream, Beast, and Ancient Origin balls.
- Made Wooloo and Dubwool dye-able like sheep. So cute!
- Added stat up and down particles.
- Most status effects now have particles! These include: Paralysis, Poison, Sleep, Confusion, Infatuation.
#### Move Particle Effects
- Confusion
- Cotton Guard
- Growl
- Ice Punch
- Fire Punch
- Thunder Punch
- Minimize
- Quick Attack
- Protect
- Swords Dance
- Sand Attack
- Poison Powder
- Sleep Powder
- Stun Spore
- Powder
- Rage Powder
- Spore
- Thunder Wave
### Changes
- Sounds for Relic Coin Sacks have been correctly renamed. Relic Coin Pouches received new sounds for breaking and placing.
- Readjusted Petilil portraits so they fit a bit better.
- Improved handling of Pokémon taken from the Restoration Tank block to be a bit more stable.
- Made Mulch cheaper to craft.
### Fixes
- Fixed a bug in which adding organic material to the restoration tank via right click was adding the full count of the stack currently in hand - but only taking 1 of the item.
- Fixed a niche issue where some properties of entities were not initialized correctly, causing Pokémon that appeared to be level 1 until you battle them.
- Fixed Fossilized Drake being missing from the Fossils item tag.
- Fixed Gilded Chest block entity not being cleared on block break, creating spooky ghost blocks. Old ones can be fixed by placing something like a furnace where it was, then breaking the furnace.
- Fixed sherd brokenness on Forge.
- Fixed Supplementaries incompatibility.
- Fixed Fossil Compartment crash with Jade / WAILA forks.
- Fixed pasture block PC lookups when the player is offline.
- Fixed an untranslated battle message that occurs when using a move that just ran out of PP (e.g. Fire Blast that just got spited mid-turn).
- Fixed held items being eaten even when the held item evolutions are already unlocked.
- Fixed Hisuian Decidueye not being Grass/Fighting.
- Fixed both Decidueye forms learning both Triple Arrows and Spirit Shackle.
- Fixed Pineco being unable to evolve into Shulker Forretress.
- Fixed Kabutops T-posing when underwater. It doesn't have proper swimming animations yet, though.
- Fixed Pidgey's missing walk animation.
- Fixed Cyndaquil's hidden flames clipping if it was swimming.
- Fixed Chimecho and Chingling being unable to spawn near bells. They are meant to!
- Fixed Tyrantrum and Wailord Party Overlay models peeking through the chat box. It was kinda funny though.
- Fixed hitbox sizes for Seedot, Nuzleaf, and Shiftry.
- Fixed Budew and Lechonk sliding if they walked for too long.
- Fixed Shedinja T-posing in battle.
- Fixed recoil evolution condition not working, making things like Basculegion unobtainable.
- Fixed issue where poser debug tools didn't work on JSON posers.
- Fixed issue where gilded chests don't close when going far away.
- Fixed issue where the restoration tank's renderer was reading old data, making it appear wrong.
- Fixed issue where the lights on the restoration tank would not animate if it was facing east. Very specific.
- Fixed client crash with the fossil machine when updating block state on a chunk that is unloaded in the client. I don't understand this but the devs are sure that all of those are real words.
- Fixed Restoration Tank crash with Create upon the tank block's destruction.
- Fixed Restoration Tank over consuming items when interacting with Create blocks.
- Fixed addons that add very many moves to a learn-set causing disappearing Pokémon (visually) issues on servers.
- Fixed Hyper Cutter and Big Pecks incorrectly stating that it prevented accuracy from being lowered in battle.
- Fixed missing messages for Rough Skin and Iron Barbs in battle.
- Fixed a bug where sometimes Pokémon sendouts wouldn't create an entity, or the entity would spawn at 0 0 0 which is not a good place for a Pokémon to be. Or any of us, really.
- Fixed issue in which a locked gilded chest would animate to the open state when the client fails to open it, such as when it is locked.
- Fixed a bug where aspects of a form would not be properly reflected on form changes (eg. Normal -> Hisui).
- Fixed generic battle effect sounds not sounding the way they were intended to.
- Fixed particle effects often not having access to some specific entity functions from MoLang.
- Fixed particles sometimes lasting a single tick too long, causing (very quick) visual glitches.
- Fixed particle rotations being inverted.
- Fixed particle events not spawning at the instigating particle's location.
- Fixed a bunch of spam during world generation.
- Fixed a bug in which throwing a Poké Ball at a player owned Pokémon with the ability Illusion would reveal its true species. Hilarious meta strategy.
- Fixed root-part animations not working for JSON posed Pokémon. You didn't notice this but if we didn't fix this in this update then if you use Quick Attack a lot you'd have seen a whole lot of [this](https://cdn.discordapp.com/attachments/1076993968803434627/1242660506783715369/Minecraft__1.20.1_-_Singleplayer_2024-05-21_22-08-17.mp4?ex=66549408&is=66534288&hm=ff95ee293eb15634fd63e6546534ea279540a1c892605e8d561593ca2c5600c5&) which is damn funny but very unintended.
### Developer
- Changed SpawnAction#complete to return a nullable generic R (the spawn action result) instead of a boolean. Provides more information this way.
- Added an event that fires when a fossil is revived, with or without a player.
- Added IVS and EVS property extractors.
- Fixed PCStore#resize not allowing PC boxes size reduction.
### Data Pack & Resource Pack Creators
- Added support for MoLang conditions for quirks and poses.
- Changed the AttackDefenceRatio requirement to StatCompare and StatEqual. There is some backwards compatibility for AttackDefenceRatio, though.
- Changed "dimensions" spawn condition to check with dimension IDs instead of effects, so custom dimension IDs can be used.
- Added parametric motion and rotation support to particle effects.
- Added entity_scale as a molang var for particles (likely only applicable to Pokemon)
- Added support for primary quirk animations using the following format:
`JSON
{
"quirks": [
"q.bedrock_primary_quirk('<pokemon>', '<animation>', <minSeconds>, <maxSeconds>, <loopTimes>, '<excludedLabels>', q.curve('<waveFunction>'))"
]
}
`
- Added support for custom stashes, similar to Gimmighoul's coin and scrap stashes.
- Added the ability to create custom brewing stand recipes.
### Localization
- Updated translations for:
- Simplified and Traditional Chinese.
- Spanish.
+5
View File
@@ -0,0 +1,5 @@
## [1.5.2 (May 27th, 2024)](#1-5-2)
### Fixes
- Fixed Wooloo and Dubwool dyeing making your game start dying. Only if you do it on a server.
- Fixed Gimmighoul causing PCs and parties to look glitched out, also only in a server.
- Fixed players being able to dye other people's sheep Pokémon.
+487
View File
@@ -0,0 +1,487 @@
## [1.6.0 - The Record Catch Update (December 25th, 2024)](#1-6-0)
#### "Now that there's a fishing mechanic, the mod is actually good!"
### Additions
- Added the Pokédex as a craftable item that can be placed on lecterns.
- Added Pokémon (and item) fishing using modified fishing rods - Poké Rods! You'll need a Poké Rod smithing template, a fishing rod, and some type of Poké Ball. Each Poké Ball makes a differently themed rod because it's cool.
- Added Lure Ball functionality, increasing the catch rate of Pokémon that were caught on a fishing rod.
- Added Repeat Ball functionality, increasing the catch rate of Pokémon that are already registered as caught in a player's Pokédex.
- Added flat level battling with options to set all Pokémon to level 50, 100, or 5 for the duration of a battle. No experience or EVs are granted for a flat battle.
- Added support for Double Battles, Triple Battles, and Multi-battles.
- Added raft platforms for non-swimming, non-flying Pokémon to stand on during battles that take place on the water's surface (Flying Pokémon will fly over water in battle, and water breathing Pokémon will swim in water during battle).
- Added smarter send-out positions for Pokémon in battle. They should get in your way less!
- CriticalCaptures and Pokédex progress capture multiplier now work with the Pokédex.
- Added shiny Pokémon particle effects and sounds to help find them.
- Added effects for the burn status effect.
- Added effects for the moves: Seismic Toss, Withdraw, Bite, Crunch, Super Fang, Hyper Fang, Pursuit, Mist, Haze, Lick, Kinesis, Psychic, Water Sport, and Mud Sport.
- Added extra visuals to early berry growth stages.
- Added Polished Tumblestone and Tumblestone Brick block sets from Tumblestone, Black Tumblestone, and Sky Tumblestone.
- Moves impacted by the abilities Pixelate, Refrigerate, Aerilate, Galvanize, and Normalize now display as their altered typing.
- Added Fire, Water, Thunder, Leaf, Ice, Sun, Moon, Shiny, Dawn, and Dusk Stone storage blocks.
- Added Eject Pack, Metronome, Protective Pads, Punching Glove, Room Service, Scope Lens, Shed Shell, Terrain Extender, Throat Spray, Utility Umbrella, Wide Lens, and Zoom Lens held items.
- Added a full evolution particle effect for Pokémon that are sent out when evolution is started.
- Added a Nurse profession that can be unlocked by having villagers claim a healing machine block.
- Pokémon are now animated when seen in any GUI that isn't the party GUI.
- Added animation and sounds for trading.
- Added icons for pending trade, team-up, and battle requests from other players.
- Quirk animations can now occur for Pokémon that are shoulder mounted.
- Added new sounds for Poké Balls bouncing off of Pokémon and landing on the ground during capture.
- Added a unique set of sounds for Ancient Poké Balls.
- Added a sound for using Exp Candy and Rare Candy items.
- Added revamped Poké Ball animation for Pokémon breaking out.
- Added battle log messages for switching out Pokémon.
- Added config setting `displayEntityNameLabel` and `displayEntityLabelsWhenCrouchingOnly` to control what and when is displayed for the pokemon label.
- Added `no_ai` and `freeze_frame` options to the `/spawnpokemon` command.
- Added `moves` option to Pokémon properties, allowing you to set the moves of a Pokémon in commands and spawn files using comma-separated move names.
- Added a `natural` block state property for the healing machine block; when property is set to true, the block will have a different texture and drop an iron ingot instead of itself.
- Added a `battleInvulnerability` gamerule to make players invulnerable to any damage during a battle.
- Added a `mobTargetInBattle` gamerule to exclude players from being targeted by mobs during a battle.
- Added a `/freezepokemon` command to pause a Pokémon's animation at a specific point in time.
- Added `/spawnnpc` and `/spawnnpcat` commands.
- Added `hiddenability=false` option to `/spawnpokemon` and `/pokemonedit` commands, allowing the Pokémon's ability to be reverted to a normal ability.
- Added `aspect` and `unaspect` PokemonProperty arguments (which also includes commands such as `/pokemonedit`, `/spawnpokemon`, and `/givepokemon`) to allow forcing or un-forcing an aspect on a Pokémon.
- Added `type` alternatively `elemental_type` PokemonProperty argument, this is only used for filtering and is not applied to Pokémon. Example `type=fire` would be true for Charmander but false for Squirtle.
### Structures Added
- Fishing boat structure that contain an Explorer Map leading to a shipwreck cove and a Poké Rod Smithing Template.
- Stonjourner Henge Ruins, Luna Henge Ruins, and Sol Henge Ruins.
- Submerged Shipwreck Cove and Lush Shipwreck Cove.
- Pokémon Centers to all 5 village types.
### Pokémon Added
#### Gen 1
- Alola Bias Cubone (built-in resource pack)
- Alolan Marowak
#### Gen 2
- Ledyba
- Ledian
- Sunkern
- Sunflora
- Wobbuffet
- Girafarig
- Corsola
- Remoraid
- Octillery
- Mantine
- Smeargle
- Delibird
#### Gen 3
- Slakoth
- Vigoroth
- Slaking
- Corphish
- Crawdaunt
- Feebas
- Milotic
- Wynaut
- Absol
- Spheal
- Sealeo
- Walrein
- Bagon
- Shelgon
- Salamence
- Kecleon
#### Gen 4
- Mantyke
- Finneon
- Lumineon
- Shellos
- Gastrodon
- Rotom
#### Gen 5
- Purrloin
- Liepard
- Scraggy
- Scrafty
#### Gen 6
- Clauncher
- Clawitzer
#### Gen 7
- Pikipek
- Trumbeak
- Toucannon
- Mareanie
- Toxapex
- Sandygast
- Palossand
- Bruxish
#### Gen 8
- Cramorant
- Hatenna
- Hattrem
- Hatterene
- Pincurchin
#### Gen 9
- Wattrel
- Kilowattrel
- Veluza
- Farigiraf
- Klawf
- Finizen
- Palafin
- Wiglett
- Wugtrio
- Flamigo
- Dondozo
#### Unique Forms
- Magikarp Jump variants for Magikarp
- Magikarp Jump variants for Gyarados (built-in resource pack, enabled by default on Fabric)
### Added cries to the following Pokémon
- Sandshrew, Sandslash
- Magnemite, Magneton, Magnezone
- Gastly, Haunter, Gengar
- Rhyhorn, Rhydon, Rhyperior
- Happiny, Chansey
- Horsea, Seadra, Kingdra
- Magby, Magmar, Magmortar
- Porygon, Porygon2, Porygon-Z
- Sentret, Furret
- Misdreavus, Mismagius
- Corsola
- Mantyke, Mantine
- Girafarig, Farigiraf
- Wynaut, Wobbuffet
- Lunatone
- Solrock
- Corphish, Crawdaunt
- Feebas, Milotic
- Kecleon
- Absol
- Spheal, Sealeo, Walrein
- Relicanth
- Bagon, Shelgon, Salamence
- Munchlax
- Finneon, Lumineon
- Purrloin, Liepard
- Timburr, Gurdurr, Conkeldurr
- Joltik, Galvantula
- Elgyem, Beheeyem
- Golett, Golurk
- Deino, Zweilous, Hydreigon
- Flabébé, Floette, Florges
- Clauncher, Clawitzer
- Mareanie, Toxapex
- Wimpod, Golisopod
- Bruxish
- Hatenna, Hattrem, Hatterene
- Pincurchin
- Klawf
- Finizen, Palafin \[Zero\], Palafin \[Hero\]
- Dondozo
### Added shoulder mounts for the following Pokémon
- Weedle
- Caterpie
- Spearow
- Mew
- Murkrow
- Smoochum
- Larvitar
- Tailow
- Plusle
- Minun
- Beldum
- Starly
- Buneary
- Combee
- Pachirisu
- Tepig
- Pidove
- Petilil, Hisui Bias Petilil
- Zorua, Hisui Bias Zorua
- Elgyem
- Fletchling
- Skrelp
- Klefki
- Litten
- Fomantis
- Morelull
- Dreepy
- Sprigatito
- Shroodle
- Tatsugiri
- Glimmet
- Gimmighoul \[Roaming\]
### Animation updates for the following Pokémon
- Bellsprout, Weepinbell, Victreebel
- Shellder, Cloyster
- Porygon, Porygon2, Porygon-Z
- Furret
- Swinub, Piloswine, Mamoswine
- Skarmory
- Tyrogue
- Spinda
- Torkoal
- Nincada, Ninjask
- Lunatone
- Solrock
- Buneary, Lopunny
- Magnezone
- Alomomola
- Tepig, Pignite, Emboar
- Flabebe, Floette, Florges
- Litten, Torracat, Incineroar
- Fomantis, Lurantis
- Dreepy, Drakloak
- Kleavor
- Scorbunny
- Gimmighoul \[Roaming\]
### Model updates for the following Pokémon
- Bulbasaur, Ivysaur, Venusaur
- Charmander, Charmeleon, Charizard
- Caterpie
- Kakuna, Beedrill
- Lapras
- Porygon, Porygon2, Porygon-Z
- Igglybuff, Jigglypuff, Wigglytuff
- Poliwhirl, Poliwrath
- Bellsprout, Weepinbell, Victreebel
- Shellder, Cloyster
- Gastly, Haunter
- Onix
- Krabby, Kingler
- Rhyhorn, Rhydon, Rhyperior
- Horsea, Seadra, Kingdra
- Goldeen, Seaking
- Magby, Magmar, Magmortar
- Magikarp, Gyarados
- Munchlax, Snorlax
- Swinub, Piloswine, Mamoswine
- Mudkip, Marshtomp, Swampert
- Baltoy, Claydol
- Carvanha
- Relicanth
- Prinplup, Empoleon
- Gible, Gabite, Garchomp
- Riolu, Lucario
- Snivy, Servine, Serperior
- Tepig, Pignite, Emboar
- Krookodile
- Dwebble, Crustle
- Joltik, Galvantula
- Klink, Klang, Klinglang
- Golett, Golurk
- Fennekin, Braixen, Delphox
- Phantump, Trevenant
- Litten, Torracat, Incineroar
- Popplio, Brionne, Primarina
- Mudbray
- Lurantis
- Scorbunny, Cinderace
- Quaxly
- Skeledirge
- Tatsugiri
### Changes
- Buffed Dusk Ball catch multipliers: Increased multiplier to 3.5 (from 3.0) in light level 0. Increased multiplier to 3.0 (from 1.5) in light levels 1-7.
- Altered the item model for Medicinal Leeks and Roasted Leeks to be held like sticks and other rod items.
- Adjusted some berry balance values like yield and growth times.
- Adjusted volumes of sounds made by Display Cases, Berry Bushes, Energy Root, Medicinal Leek, Vivichoke, Mints, Revival Herbs and Gilded Chests.
- Changes to mulch buffs/durations.
- Updated potion sprites.
- Changed Link Cable recipe to be much cheaper.
- Updated sounds for Medicinal Leeks, Big Roots, Energy Roots and Revival Herbs.
- Updated UI sounds for clicking and evolving Pokémon.
- Updated cries for Chansey, Crobat, Hoothoot, Noctowl.
- Removed the interchangeable evolution results for the first stage Hisuian starters to prevent confusion. The method still exists for stage 2 to 3, but stage 1 to 2 was not distinguishable enough for many users.
- Vivillon wings will stop being clear when you remove any Vivillon related resourcepacks. The default pattern will be the meadow wings.
- Wild Pokémon interaction range increased to 12 blocks (from 10 blocks).
- Player trade range increased to 12 blocks (from 10 blocks).
- PvP battle range increased to 32 blocks (from 10 blocks).
- Spectate range increased to 64 blocks (from 10 blocks).
- The inventory key now closes our GUIs if they are open, mirroring how Minecraft screens usually work.
- The noise from the pasture and PC blocks being interacted with now activates Sculk sensors.
- Updated dialogue GUI assets with proper assets not made by a programmer. Well, it was still a programmer, but- someone who can also draw!
- Updated party switching interface when in battle.
- Relic coin pouches can now be waterlogged.
- The "Press R to start battle prompt" will now disappear after a player's first battle has been won. You've probably figured that detail out by then.
- The default number of digits for the Pokédex number in the summary has been increased, from 3 to 4. There sure are a lot of Pokémon these days.
- The pasture block model's screen is now off by default.
- The Poké Balls creative tab is now named Utility Items as it also encompasses Poké Rod and Pokédex items.
- Moves can now be benched without specifying a replacement move, allowing for empty move slots.
- Moves learned via Sketch now persist after battle.
- Hidden Power now displays its effective typing.
- Updated particles for moves: Confusion, Protect, Sand Attack, and Quick Attack.
- Updated particles for status effects: Paralysis, Poison, and Sleep.
- Updated particles on Gastly.
- Revamped stat buff and de-buff particles.
- Improved the performance of display cases that contain Pokémon photos.
- Updated sounds for Poké Balls closing, opening and for Pokémon breaking out.
- Improved the performance of display cases that contain Pokémon Model items.
- Removed species Base Stats from the summary interface as it is now viewable within the Pokédex.
- Changed summary tab text labels to icons. You'll get used to them. Or else.
- Clicking the summary interface exit button while the swap moves or evolve screen is open will cause the interface to switch back to the party screen. The button will exit the interface otherwise.
- Ancient Poke Balls now jump once rather than shaking 3 times when capturing Pokémon.
- The jump height indicate the number of shakes that would have occurred.
- A high wobbly jump indicates 1 shake.
- A high jump indicates 2 shakes.
- A medium jump indicates 3 shakes.
- A short jump indicates that you caught the Pokémon.
- Pokémon sent out during battle will spawn facing their opponent.
- Pokémon sent out outside a battle will spawn facing their trainer.
- Wailord is now 25% bigger. ... [But I have an idea.](https://tenor.com/view/star-wars-more-gif-21856591)
- Region-biased Pokémon forms are now optional to a built-in resource pack. This pack is enabled by default for Fabric. For NeoForge users, all our built-in resource packs default to disabled because that's all it supports right now.
- Update item sprites for Cell Battery, Chipped Pot, Covert Cloak, Cracked Pot, Masterpiece Teacup, Red Card, Sachet, and Unremarkable Teacup.
### Fixes
- Fixed Ability Patches not reverting Hidden Abilities back to Normal Abilities.
- Fixed awarding Pokémon experience upon forfeiting battles.
- Scaled down Amaura's fetus model to avoid clipping through the tank while animating.
- Fixed Cubone's cry not having a sound (as if that Pokémon needed to be more tragic).
- Fixed the sendout sound erroneously playing when a wild Pokémon breaks out of a Poké ball.
- Flamethrower is no longer missing sounds.
- Fixed the Seafloor spawning context not being a usable context.
- Fixed Pokemon spawning in non-full blocks like slabs.
- Fixed Gilded Chests not dropping the chest itself when broken, only the contents.
- Fixed Pokémon losing their Hidden Ability through evolution if the middle stage did not have a Hidden Ability.
- Hidden Power no longer plays the water type action effect (It now plays the normal type action effect).
- Fixed Crumbling Arch structures not blending in with the world.
- Fixed Energy Root being usable on a fainted Pokémon.
- Fixed Pokémon not being sent out when starting a battle while recalling said Pokémon.
- Fixed species comparison not using namespace for both sides in `PokemonProperties.isSubsetOf`.
- Fixed `PokemonProperties#asString` prefixing nicknames with a '$'.
- Fixed shearable Pokémon not dropping correct wool colors.
- Fixed pasture spawning Pokémon inside solid blocks when closest spawning position is blocked off.
- Fixed Tumbling Down advancement not being granted by tumblestone variants.
- Improve error handling when loading spawn sets to ensure invalid configurations don't crash the server.
- Fixed empty `JsonPlayerData` files resulting in players being unable to join server/world.
- Sound for evolving Pokémon through the Summary Menu is now correctly playing again.
- Fix Starter prompt not showing up.
- Fixed owned Poké balls floating upwards if pausing the game mid-transition (which looked absolutely hilarious).
- Fixed all mouse buttons working for Battle UI navigation (now it's only primary/left click).
- Fixed trading Pokémon setting their friendship to 0 instead of the base value.
- Fixed a scenario where a Pokémon that rolled to spawn with a special Tera type sometimes having a Tera type that is already a part of their natural typing.
- Fixed PokemonProperty argument suggestions for `tera` and `tera_type` not suggesting `stellar`.
- Fixed being able to stack Relic Coin Pouches on top of each other.
- Fixed model loader generating misleading crash-reports when client is crashing - that resurrection tank error wasn't our fault! We're innocent, your honour!
- Big Roots and Energy Roots now share the same sounds as intended.
- Fixed sounds made by blocks playing at a lower pitch than intended.
- Fixed Chimchar and Monferno comically T posing whenever they sleep.
- Fixed Cetitan's cry breaking its walk and sleep animations.
- Fixed the Magby line not having any placeholder walk animations.
- Fixed Duskull and Dusclops using skylight levels for their nether spawn data. There is no sun in the Nether!
- Fixed Hisuian Zoroark using base Zoroark stats.
- Fixed Bellossom clipping into the player head when shoulder mounted.
- Fixed Shroomish's look range to prevent it from looking higher than it should.
- Fixed Maushold's faint animations not playing. It's even sadder than Tandemaus!
- Fixed Slowking's battle idle.
- Fixed Grafaiai's walk speed to prevent model sliding.
- Fixed Alolan Exeggutor's tail not showing in the party UI. It will now also stand in front of all Pokémon in the party menu :)
- Fixed Timburr duplicating its log while fainting.
- Fixed hitbox sizes for Grotle and Torterra being set to default values.
- Fixed Hisuian Sneasel using Johtonian Sneasel's cry. Johto-nian. Jotonion. Jotunheim?
- Fixed Trevenant T-posing after 8 seconds of sleeping. I also do that.
- Fixed Bewear T-posing for a bit if a wild one faints where you can see.
- Fixed Noctowl's placeholder fly animation.
- Corrected Lotad blinking animation.
- Fixed reviving items causing errors when used in battle.
- Fixed messages for Focus Sash, Confusion, Mummy, Ice Face, Own Tempo, and Revive.
- Improve error handling when loading spawn-sets to ensure invalid configurations don't crash the server.
- Fixed Crumbling Arch Ruins generating a giant cube of air and removed the chest.
- Fixed possible crash on large population servers due to concurrent access of data.
- Quickly sending out and recalling Pokémon now looks smoother and can no longer be spammed to cause desync issues.
- Pokémon are now invulnerable during sendout animation and intangible during recall animation.
- Scrolling with party keybinding now behaves properly when using high scroll speed or scroll sensitivity.
- Fixed battle log GUI flashing when Battle GUI is opened.
- Bag Items used during a turn will now be refunded if the battle ends before the next turn begins.
- Pokémon whose current owner is not its Original Trainer now gain extra experience.
- Fixed Fossil Resurrection advancement not being granted.
- Fixed village generation caps not applying for berry farms. You were not meant to see more than two berry farms per village! This has been broken for ages but no one noticed... Hmmm... We could just remove it from here...
- Fixed the Ice Face ability activation being displayed incorrectly in a battle.
- Fixed edge case of F1 and R locking you in battle with no R functionality (requiring ESC to get out).
- Fixed Poké Ball render orientation in battle interface when capturing.
- Fixed sync issues with recently learned moves where their PP would not go down until you logout and in.
- Fixed some Pokémon photos in display cases flashing if the Pokémon has gender differences.
- Fixed Bidoof and Jigglypuff sleep animations stopping after some time, causing them to be 'asleep' while T-posing menacingly.
- Fixed entities not changing poses unless you're looking at them.
- Fixed cries not playing on send-out if the Pokémon is off-screen.
- Fixed text row selection highlight in battle log.
- Fixed top black border rendering in scroll interfaces in summary UI.
- Fixed aspect tracking for Advancements.
- Fixed illusion not copying aspects or caught ball.
- Prevent summary stats tab from making sounds when clicking on an already open tab.
- Fixed display case not being able to be fed items from underneath.
- Fixed Pokémon battling in water continuously sinking to the bottom.
- Fixed passive healing and wake from faint not disabling when their config values are set to 0.
- Fixed an issue where rebinding the R key to a mouse button prevented players from closing the battle interface using that button.
### Developer
- `SpawnCause` is now an implementation of `SpawningInfluence`.
- Many types related to `Pokemon` including itself now have dedicated `Codec`, please migrate to them from the NBT/JSON/PacketBuffer write/read methods.
- `PokemonBattle` now starts on turn 0.
- Renamed Pokemon.hp to Pokemon.maxHealth to make it clearer. Backwards compatibility is provided but it is an active deprecation, please migrate away from it.
- Serialization of PokemonStores and Pokemon themselves now require registry access, which will break some sidemods. This sucked for us more than it will suck for you! If you have a world or player instance, you can get it from there.
- ``TeraTypes`` now implements ``Iterable``.
- Added `forcedAspects` to Pokémon to make it easier to easily add basic aspects to a Pokémon in a way that persists. We already know that everyone is going to overuse this.
- Made the `Pokemon.aspects` setter private. This could technically break side-mods but if you are affected by this then you were using it wrong! Use `Pokemon.forcedAspects` to fix it.
- Cobblemon's main logger is properly static now.
- `PokemonEntity.enablePoseTypeRecalculation` can be used to disable automatic pose type recalculation.
- Added CollectEggEvent and HatchEggEvent for compatibility usage.
- Added events for:
- Showdown Instructions
- Mega Showdown Instruction
- Terastallize Showdown Instruction
- ZPower Showdown Instruction
- Bait Consumed, Bait Set, and an event to register custom BaitEffect Functions
- Bobber Bucket Chosen
- Bobber Spawn Pokémon
- Pokérod Cast
- Pokérod Reel
- Pokémon Heal (with context)
- Added HealingSource, an interface applied to all sources of healing from player actions, for easier tracking of healing sources.
- Move Change
- Shiny Chance Calculation Event (with player context)
- Dex Information Changed (Pre and Post); this event is fired when the Pokédex is updated with new information.
- Rebuilt large swaths of the model animation code to simplify it.
- Renamed a bunch of things from %Poseable% to %Posable% because spelling.
- Renamed StatelessAnimation to PoseAnimation.
- Renamed StatefulAnimation to ActiveAnimation.
- Documented the animation system.
- Allowed for SpawnSnowstormEntityParticleHandler to handle non-posable entities (due to being non-posable, locators are useless - to set the offset use the settings in the particle itself).
- Added property chaining support for duplicate CustomPokemonPropertyType elements.
### Data Pack & Resource Pack Creators
- Added experimental `flow` datapack directory for handling events using MoLang event handlers.
- Added support for "shedders" similar to Shedinja's evolution logic.
- Fixed the placeholder `WingFlapIdle` animation so the wings are not rotating opposite to each other.
- 'player' type dialogue faces can now be explicitly stated so that NPC mods that use fake players can show in dialogue portraits.
- Added `isLeftSide` field for dialogue faces. This determines what side of dialogue box the portrait is on.
- `sounds/attacks` directory has been renamed to `sounds/move`.
- Moves sharing generic sounds now have unique sound events, allowing them to be changed with resource packs.
- All move sound events have been renamed to `move.<NAME>.<SOURCE>` for consistency.
- Status moves have been moved out of the `attacks` directory and split into volatile and nonvolatile.
- `status.badlypoison.actor` sound event has been renamed to `status.toxpoison.actor`
- Mulch and berry harvesting sound events have been renamed and moved to their respective directories in `sounds/block`.
- All sounds related to evolving Pokémon have been moved to the `sounds/evolution` directory.
- Sound events for all blocks now start with `block`.
- Gimmighoul chest and item interaction sounds have been moved to where its cry is.
- Unused sound files and sound events have been removed.
- Poké Ball sounds are now in their animation files, making them more flexible to edit.
- Added MoLang compatibility in the isVisible property for transformed parts.
- Added `q.has_aspect('some_aspect')` function to animations, posers, and entity particle effects.
- Added support for conditional pose animations.
- Added a new universal locator called "top".
- Added `eggs_collected` and `eggs_hatched` Advancement triggers.
- Added missing `minYaw` configuration to the `q.look()` function for JSON posers.
- Some pose condition names have been changed:
- `isTouchingWaterOrRain` has been changed to `isInWaterOrRain`
- `isSubermegedInWater` has been changed to `isUnderWater`
### Localization
- Updated translations for:
- Czech, German, Greek, Spanish, Mexican Spanish, French, Canadian French, Hungarian, Italian, Japanese, Korean, Dutch, Polish, Portuguese, Brazilian Portuguese, Russian, Ukrainian, Simplified Chinese, and Traditional Chinese
- Migrated translation project to Weblate at https://lang.cobblemon.com/projects/cobblemon/mod/
+219
View File
@@ -0,0 +1,219 @@
## [1.6.1 (January 26th, 2025)](#1-6-1)
### Additions
- Added crossover paintings from Close Combat: Premonition, Altar, Slumber, and Nomad.
- Added Galarica Nuts, used for crafting Galarica Cuffs and Wreaths. Dropped from certain Pokémon. Take a wild guess which.
- Added compatibility with Repurposed Structures. (Thank you, TelepathicGrunt!)
- Added an evolution method for Karrablast to evolve into Escavalier in singleplayer.
- Pokédexes can now be placed in Chiseled Bookshelves.
- Added optional box argument to the /pc command.
- Pokédex and Dialogue screens now close when the inventory keybind is pressed.
- Added config setting `maxPokedexScanningDetectionRange` to control from what distance the player can scan Pokémon using the Pokédex.
- Added config setting `hideUnimplementedPokemonInThePokedex` which hides unimplemented Pokémon from the Pokédex when set to true.
- Added debug renderer for posable entity locators.
- Added crossover paintings from Close Combat, Premonition, Altar, Slumber, and Nomad.
- Added optional box argument to the /pc command
### Changes
- Pokémon will now be dynamically revealed to the Pokédex as they're seen instead of revealing entire parties at the end of battle regardless.
- Unseen wild Pokémon will update their name from '???' to their real name as soon as a battle starts to reflect the battle UI showing the actual species name.
- Pokémon under the illusion effect will reveal their disguise to the Pokédex first and then the base Pokémon once the disguise is broken.
- Added more support for a variety of Fabric/NeoForge Convention tags.
- Reformatted some tags to be more consistent.
- Edited some recipes to utilize tags instead of direct item ids, for greater mod compatibility.
- Berries will drop if broken at age 0
- Improved Fortune drops on Mint Seeds
- New Slowpoke shiny texture.
- Updated drops for many Pokémon.
- Completely resynced Pokémon move and stat data based on later games. Learnsets have changed considerably to maximise available moves.
- Cobblemon save data now saves .old files where applicable as a means to recover from file corruption due to crashes or similar abrupt stops
### Pokémon Added
#### Gen 5
- Ducklett
- Swanna
- Shelmet
- Accelgor
- Karrablast
- Escavalier
- Rufflet
- Braviary
- Foongus
- Amoonguss
#### Gen 6
- Binacle
- Barbaracle
#### Gen 7
- Dewpider
- Araquanid
- Alolan Geodude
- Alolan Graveler
- Alolan Golem
#### Gen 8
- Galarian Slowpoke
- Galarian Slowbro
- Galarian Slowking
#### Gen 9
- Paldean Tauros
### Added cries to the following Pokémon
- All Nidorans
- Shellder, Cloyster
- Pinsir
- Tyrogue, Hitmontop
- Spinda
### Animation updates for the following Pokémon
- Primeape
- Munchlax
- Snorlax
- Poliwrath
- Goldeen
- Seaking
- Dondozo
- Wobbuffet
- Charcadet
- Armarouge
- Ceruledge
- Geodude
- Graveler
- Golem
- Sandile
- Krokorok
- Krookodile
### Model updates for the following Pokémon
- Slowpoke
- Slowbro
- Slowking
- Eiscue
- Tauros
- Goldeen
- Seaking
- Charcadet
- Armarouge
- Ceruledge
- Pinsir
- Geodude
- Graveler
- Golem
- Magnezone
### Cry updates for the following Pokémon
- Sceptile
### Changes
- Completely re-synced Pokémon move and stat data based on later games. Learnsets have changed considerably to maximise available moves.
- Pokémon will now be dynamically revealed to the Pokédex as they're seen in battle instead of revealing entire parties at the end of battle.
- Unseen wild Pokémon will update their name from '???' to their real name as soon as a battle starts to match how the battle UI shows the actual species name.
- Pokémon under the illusion effect will reveal their disguise to the Pokédex first and then the base Pokémon once the disguise is broken.
- Berries will now drop from berry trees if broken at age 0 so you aren't punished for mistaken planting.
- Increased Fortune drops on Mint Seeds.
- Updated Slowpoke's shiny texture.
- Updated drops for many Pokémon.
- Adjusted the evolution sound to match the timing of the particle effect.
- Made berry trees shear-able by dispenser blocks. I'm sure nobody will make unholy contraptions with this.
- Edited some recipes to utilize tags instead of direct item IDs, for better mod compatibility.
- Added more support for a variety of Fabric/NeoForge conventional tags.
- Reformatted some tags to be more consistent.
### Fixes
- Fixed Pokédex sometimes crashing when switching forms.
- Fixed Pokédex interface not transitioning out when closed.
- Fixed texture dimensions for the player and Pokémon interact interface.
- Fixed crash related to Tom's Simple Storage mod and the Fossil Machine.
- Fixed not being able to retrieve a fossil from the Fossil Machine with an empty hand.
- Fixed Pokémon being collidable (collidible? collissionable? kaleidoscopable?) while being captured by a Poké Ball.
- Fixed `full_party`, `own_zangoose_seviper`, `use_revive` and `use_candy` Advancement triggers.
- Fixed `healing_machine` Advancement by using the correct 1.21 trigger.
- Fix Display Cases not dropping items if destroyed through explosions.
- Fixed an issue where the first Pokémon in the pastured Pokémon list clipped into the interface.
- Fixed all Pokémon facing South on spawn.
- Fixed bait being consumed even when not reeling in any Pokémon.
- Fixed Miltank milk magically disappearing out of your bucket.
- Fixed Pokémon nicknames migrating from 1.5.2 not being displayed properly.
- Fixed capitalization in one of our config options. It was a very important fix. Very important. Old configs are fine.
- Fixed Poké Rods not working if Lure or Luck of the Sea enchantments get removed by other mods.
- Fixed crashes related to Pokémon when they are ready to evolve while holding an enchanted item. Very specific.
- Fixed a crash that sometimes occurred when evolving Nincada.
- Fixed Cobblemon plants not being compostable on NeoForge.
- Fixed hide UI (F1 key) not hiding the party overlay.
- Fixed NPC MoLang command `player_lose_command` not working.
- Fixed misaligned tooltips with edit boxes in the NPC editor screen.
- Fixed Pokémon riding two boats when attempting to deploy a platform on water.
- Fixed the summary screen showing there's experience to reach the next level when they are at the level cap.
- Fixed Pokémon forgetting moves when evolving on specific cases.
- Fixed Adorn compatibility, including improvements when using JEI/REI (Apricorn items now show up under the collapsed entries rather than standalone).
- Fixed error message appearing on battle log when using Solar Beam with Sunny Day.
- Fixed Pokémon Model offsets for larger species.
- Fixed `/pokedex grant all` command not giving male/female/shininess completion for some Pokémon.
- Fixed `/pokedex grant only` and `/pokedex remove only` not respecting the form parameter passed.
- Fixed variant forms appearing incorrectly in the Pokédex when the normal form had not been unlocked.
- Fixed Pokémon occasionally being shot into the sky during battle. No Pokémon were harmed by this bug, probably.
- Fixed NPC editing GUI not updating aspects until a game restart.
- Fixed some users being unable to open their PC if a Pokémon in it had a lot of PP raises beyond normal bounds. How did you get those, anyway? Tell me or the Bellossom gets it.
- Fixed some color variants (Dubwool, Conkeldurr and Undyed wooloo) being missing in the Pokédex.
- Fixed invalid species or held items causing Players to not be able to load into their world anymore (commonly happening after removing addons/mods).
- Fixed Wooloo variants not being automatically registered in the owner's Pokédex when dyed.
- Fixed Vivichoke Dip and Leek & Potato Stew not returning a bowl upon consumption.
- Fixed Fossil Restoration Tank not accepting Hay Bales as organic material.
- Fixed Potion items applying double their intended healing value.
- Fixed Fast Ball capture bonuses applying to all Pokémon, making it the Best Ball instead of the Mediocre Edge-Case Ball.
- Fixed "learned new move" messages appearing for already-known moves on Pokémon evolutions.
- Fixed Pokémon Item Models breaking shadows nearby when being placed in Display Cases or Item Frames.
- Fixed berries not giving bonus yields when planted in their preferred biomes. I'm sure we've fixed that 5 times now.
- Fixed the NeoForge version not supporting "SodiumDynamicLights".
- Fixed players disconnecting from servers if they made changes to certain config options.
- Fixed players with shouldered Pokémon not being able to rejoin their 1.5.2 worlds using 1.6.
- Fixed `PokemonProperties` utilizing `ability=<some ability>` being treated as a forced ability even when it is a legal ability for the Pokémon.
- Fixed type formatting in Pokédex scanner mode when dual types require two lines.
- Fixed trading sometimes crashing the game or server.
- Fixed Wild shiny sounds not respecting the `shinyNoticeParticlesDistance` config setting.
- Fixed Pokémon being able to evolve mid-battle.
- Fixed NPC held items being able to be stolen by players. Don't be a thief!
- Fixed evolutions that require a held item consuming it as soon as meeting requirements when it should only be consumed upon evolution.
- Fixed Pokémon showing only the default form when selecting them as a target in battle.
- Fixed a possible error coming out of reeling fishing rods in specific situations.
- Fixed incorrect weights being used when Poké Fishing with Luck of the Sea.
- Parametric particle motion now works.
- Event-spawned particles now work.
- Particles can now have independent coordinate spaces.
- Fixed suffocation of Pokémon when a pokeball breaks near a wall
### Developer
- Updated the Pokédex data updated events to always include a `Pokemon` instance, and optionally a `DisguiseData` instance.
- Updated fields in `SpawnNPCPacket` and `SpawnPokemonPacket` to be visible and mutable.
- Updated `UnvalidatedPlaySoundS2CPacket` to be public instead of internal and made its fields mutable.
- Added `hideNameTag` field and `HideNPCNameTag` nbt tag to `NPCEntity` to allow hiding the name tag of the NPC.
- Added the player to `PokerodReelEvent` so you know who is doing the reeling.
### MoLang & Datapacks
- Added flows for:
- `forme_change`: Triggered when a Pokémon changes form in battle.
- `mega_evolution`: Triggered when a Pokémon mega evolves in battle. (Note: Third-party mods are required for this feature currently)
- `zpower_used`: Triggered when a Pokémon uses a Z-Power move in battle. (Note: Third-party mods are required for this feature currently)
- `terastallization`: Triggered when a Pokémon terastallizes in battle. (Note: Third-party mods are required for this feature currently)
- `battle_fainted`: Triggered when a Pokémon faints in battle.
- `battle_fled`: Triggered when a player flees from battle.
- `battle_started_pre`: Triggered when a battle starts. Cancelable!
- `battle_started_post`: Triggered when a battle starts.
- `apricorn_harvested`: Triggered when an Apricorn is harvested.
- `thrown_pokeball_hit`: Triggered when a thrown Pokéball hits a Pokémon.
- `level_up`: Triggered when a Pokémon levels up.
- `pokemon_fainted`: Triggered when a Pokémon faints.
- `pokemon_gained`: Triggered when a player gains a Pokémon.
- Added MoLang functions:
- For Pokémon:
- `pokemon.apply(PokemonProperties)`: Applies the given properties to the Pokémon.
- `pokemon.owner`: Returns the owner of the Pokémon or 0.0 if there is no owner or they are not online.
- For all entities:
- `entity.is_standing_on_blocks(depth, blocks...)`: Returns whether the specified entity is standing on a specific block or set of blocks. Example usage: `q.is_standing_on_blocks(2, minecraft:sand)`
- Added NPC field:
- `hideNameTag`: Hides the name tag of the NPC.
- Added `baseScale` property to NPCs.
- Added MoLang particle queries for getting distance to targeted entities.
File diff suppressed because it is too large. Load diff
@@ -17,6 +17,7 @@ import net.minecraft.nbt.CompoundTag;
import net.minecraft.tags.BlockTags;
import net.minecraft.world.entity.Entity;
import net.minecraft.world.entity.EntityType;
import net.minecraft.world.entity.ai.memory.MemoryStatus;
import net.minecraft.world.item.component.CustomData;
import net.minecraft.world.level.Level;
import net.minecraft.world.level.block.BeehiveBlock;
@@ -52,7 +53,9 @@ public abstract class BeeOccupantMixin {
var facing = state.getValue(HorizontalDirectionalBlock.FACING);
newPos = pos.relative(facing).getCenter();
newYaw = facing.toYRot();
brain.setMemory(CobblemonMemories.HIVE_LOCATION, pos); // This needs to be set in the case that the hive was picked up and moved.
if (brain.checkMemory(CobblemonMemories.HIVE_LOCATION, MemoryStatus.REGISTERED)) {
brain.setMemory(CobblemonMemories.HIVE_LOCATION, pos); // This needs to be set in the case that the hive was picked up and moved.
}
} else {
// Block has likely been destroyed
var center = pos.getCenter();
@@ -62,25 +65,31 @@ public abstract class BeeOccupantMixin {
center.z + level.random.nextFloat() * 0.6 - 0.3
);
newYaw = level.random.nextFloat() * 360F;
brain.eraseMemory(CobblemonMemories.HIVE_LOCATION);
if (brain.checkMemory(CobblemonMemories.HIVE_LOCATION, MemoryStatus.REGISTERED)) {
brain.eraseMemory(CobblemonMemories.HIVE_LOCATION);
}
}
entity.yRotO = newYaw;
entity.setPos(newPos);
// Do honey logic
var hasNectar = brain.getMemory(CobblemonMemories.HAS_NECTAR).orElse(false);
if (hasNectar) {
// Remove nectar and reset got to hive cooldown
brain.eraseMemory(CobblemonMemories.HAS_NECTAR);
brain.setMemoryWithExpiry(CobblemonMemories.HIVE_COOLDOWN, true, PathToBeeHiveTaskConfig.STAY_OUT_OF_HIVE_COOLDOWN);
// Increment honey level of the hive
if (state.is(BlockTags.BEEHIVES, (blockStateBase) -> blockStateBase.hasProperty(BeehiveBlock.HONEY_LEVEL))) {
int i = state.getValue(BeehiveBlock.HONEY_LEVEL);
if (i < 5) {
int j = level.random.nextInt(100) == 0 ? 2 : 1;
if (i + j > 5) {
--j;
if (brain.checkMemory(CobblemonMemories.HAS_NECTAR, MemoryStatus.REGISTERED)) {
var hasNectar = brain.getMemory(CobblemonMemories.HAS_NECTAR).orElse(false);
if (hasNectar) {
// Remove nectar and reset got to hive cooldown
brain.eraseMemory(CobblemonMemories.HAS_NECTAR);
if (brain.checkMemory(CobblemonMemories.HIVE_LOCATION, MemoryStatus.REGISTERED)) {
brain.setMemoryWithExpiry(CobblemonMemories.HIVE_COOLDOWN, true, PathToBeeHiveTaskConfig.STAY_OUT_OF_HIVE_COOLDOWN);
}
// Increment honey level of the hive
if (state.is(BlockTags.BEEHIVES, (blockStateBase) -> blockStateBase.hasProperty(BeehiveBlock.HONEY_LEVEL))) {
int i = state.getValue(BeehiveBlock.HONEY_LEVEL);
if (i < 5) {
int j = level.random.nextInt(100) == 0 ? 2 : 1;
if (i + j > 5) {
--j;
}
level.setBlockAndUpdate(pos, state.setValue(BeehiveBlock.HONEY_LEVEL, i + j));
}
level.setBlockAndUpdate(pos, state.setValue(BeehiveBlock.HONEY_LEVEL, i + j));
}
}
}
@@ -92,12 +101,13 @@ public abstract class BeeOccupantMixin {
@Inject(method = "of", at = @At("HEAD"), cancellable = true)
private static void cobblemon$of(Entity entity, CallbackInfoReturnable<BeehiveBlockEntity.Occupant> cir) {
if (entity instanceof PokemonEntity pokemonEntity) {
List<String> IGNORED_BEE_TAGS = Arrays.asList("Air", "ArmorDropChances", "ArmorItems", "Brain", "CanPickUpLoot", "DeathTime", "FallDistance", "FallFlying", "Fire", "HandDropChances", "HandItems", "HurtByTimestamp", "HurtTime", "LeftHanded", "Motion", "NoGravity", "OnGround", "PortalCooldown", "Pos", "Rotation", "Passengers", "leash", "UUID");
List<String> IGNORED_BEE_TAGS = Arrays.asList("Air", "ArmorDropChances", "ArmorItems", "CanPickUpLoot", "DeathTime", "FallDistance", "FallFlying", "Fire", "HandDropChances", "HandItems", "HurtByTimestamp", "HurtTime", "LeftHanded", "Motion", "NoGravity", "OnGround", "PortalCooldown", "Pos", "Rotation", "Passengers", "leash", "UUID");
CompoundTag compoundTag = new CompoundTag();
entity.save(compoundTag);
Objects.requireNonNull(compoundTag);
IGNORED_BEE_TAGS.forEach(compoundTag::remove);
Boolean hasNectar = pokemonEntity.getBrain().getMemory(CobblemonMemories.HAS_NECTAR).orElse(false);
boolean hasNectar = pokemonEntity.getBrain().checkMemory(CobblemonMemories.HAS_NECTAR, MemoryStatus.REGISTERED)
&& pokemonEntity.getBrain().getMemory(CobblemonMemories.HAS_NECTAR).orElse(false);
cir.setReturnValue(new BeehiveBlockEntity.Occupant(CustomData.of(compoundTag), 0, hasNectar ? 2400 : 600));
cir.cancel();
}
@@ -37,16 +37,16 @@ public class ClientPacketListenerMixin {
passengers.add(this.level.getEntity(passenger));
}
Arrays
.stream(pokemon.getOccupiedSeats())
.filter(x -> !passengers.contains(x))
.filter(Objects::nonNull)
.forEach(Entity::stopRiding);
.stream(pokemon.getOccupiedSeats())
.filter(x -> !passengers.contains(x))
.filter(Objects::nonNull)
.forEach(Entity::stopRiding);
var occupiedSeats = Arrays.asList(pokemon.getOccupiedSeats());
passengers.stream()
.filter(x -> !occupiedSeats.contains(x))
.filter(Objects::nonNull)
.forEach(x -> x.startRiding(pokemon, true));
.filter(x -> !occupiedSeats.contains(x))
.filter(Objects::nonNull)
.forEach(x -> x.startRiding(pokemon, true));
ci.cancel();
}
}
@@ -1,38 +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.mixin;
import com.cobblemon.mod.common.block.PreEmptsExplosion;
import net.minecraft.core.BlockPos;
import net.minecraft.world.level.Explosion;
import net.minecraft.world.level.Level;
import net.minecraft.world.level.block.state.BlockState;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Redirect;
@Mixin(value = Explosion.class)
public class ExplosionMixin {
@Redirect(
method = "finalizeExplosion",
at = @At(
value = "INVOKE",
target = "Lnet/minecraft/world/level/Level;getBlockState(Lnet/minecraft/core/BlockPos;)Lnet/minecraft/world/level/block/state/BlockState;",
ordinal = 0
)
)
public BlockState cobblemon$whenExploded(Level world, BlockPos pos) {
BlockState blockState = world.getBlockState(pos);
if(blockState.getBlock() instanceof PreEmptsExplosion preExplosionBlock) {
preExplosionBlock.whenExploded(world, blockState, pos);
}
return blockState;
}
}
@@ -1,32 +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.mixin;
import net.minecraft.stats.RecipeBookSettings;
import net.minecraft.world.inventory.RecipeBookType;
import org.spongepowered.asm.mixin.Final;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
import java.util.Map;
@Mixin(RecipeBookSettings.class)
public class RecipeBookSettingsMixin {
@Shadow @Final public Map<RecipeBookType, RecipeBookSettings.TypeSettings> states;
@Inject(method = "<init>", at = @At("TAIL"))
private void cobblemon$init(CallbackInfo ci) {
states.put(RecipeBookType.valueOf("COOKING_POT"), new RecipeBookSettings.TypeSettings(true, true));
}
}
@@ -13,6 +13,7 @@ import com.cobblemon.mod.common.OrientationControllable;
import com.cobblemon.mod.common.api.orientation.OrientationController;
import com.cobblemon.mod.common.client.CobblemonClient;
import com.cobblemon.mod.common.client.keybind.keybinds.PartySendBinding;
import com.cobblemon.mod.common.client.keybind.keybinds.RidingFreelookBinding;
import com.cobblemon.mod.common.duck.RidePassenger;
import com.cobblemon.mod.common.entity.pokemon.PokemonEntity;
import com.cobblemon.mod.common.pokedex.scanner.PokedexUsageContext;
@@ -156,7 +157,7 @@ public abstract class MouseHandlerMixin {
}
var vehicleController = controllableVehicle.getOrientationController();
var lookaroundButtonPressed = Minecraft.getInstance().mouseHandler.isMiddlePressed();
var freeLooking = RidingFreelookBinding.INSTANCE.isDown();
Pair<Boolean, Boolean> mouseShouldModifyDriver = ((PokemonEntity) vehicle).ifRidingAvailableSupply(new Pair(false, false), (behaviour, settings, state) -> {
return behaviour.mouseModifiesDriverRotation(
settings,
@@ -170,7 +171,7 @@ public abstract class MouseHandlerMixin {
// affect the vehicle orientation when looking around.
// If the client is a passenger it will modify these rotations and return
//-------------------------------------------------------------------------
if (lookaroundButtonPressed || player.getControlledVehicle() == null) {
if (freeLooking || player.getControlledVehicle() == null) {
// Modify driver rotations
cobblemon$setDriverRotations(player, cursorDeltaX, cursorDeltaY);
@@ -192,10 +193,10 @@ public abstract class MouseHandlerMixin {
// Smoothly return driver rotations to zero when needed
//-------------------------------------------------------------------------
var playerRotater = (RidePassenger)player;
if( !lookaroundButtonPressed && !mouseShouldModifyDriver.getFirst()){
if( !freeLooking && !mouseShouldModifyDriver.getFirst()){
playerRotater.cobblemon$setRideYRot(lerp(min(5.0f * (float)movementTime, 1.0f), Mth.wrapDegrees(playerRotater.cobblemon$getRideYRot()), 0.0f));
}
if( !lookaroundButtonPressed && !mouseShouldModifyDriver.getSecond()) {
if( !freeLooking && !mouseShouldModifyDriver.getSecond()) {
playerRotater.cobblemon$setRideXRot(lerp(min(5.0f * (float)movementTime, 1.0f), Mth.wrapDegrees(playerRotater.cobblemon$getRideXRot()), 0.0f));
}
@@ -11,6 +11,7 @@ package com.cobblemon.mod.common.mixin.entity;
import com.cobblemon.mod.common.OrientationControllable;
import com.cobblemon.mod.common.duck.RidePassenger;
import com.cobblemon.mod.common.entity.pokemon.PokemonEntity;
import com.cobblemon.mod.common.pokemon.Pokemon;
import com.llamalad7.mixinextras.injector.wrapoperation.Operation;
import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation;
import net.minecraft.client.player.LocalPlayer;
@@ -23,6 +24,7 @@ import net.minecraft.world.phys.Vec3;
import org.jetbrains.annotations.Nullable;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow;
import org.spongepowered.asm.mixin.Unique;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
@@ -68,18 +70,7 @@ public abstract class EntityMixin {
cancellable = true
)
private void cobblemon$modifyEyePosition_partial(float partialTicks, CallbackInfoReturnable<Vec3> cir) {
var entity = (Entity)(Object)this;
if (entity.level().isClientSide) return;
if (!(entity instanceof Player player)) return;
if (!(player instanceof RidePassenger ridePassenger)) return;
if (!(player.getVehicle() instanceof OrientationControllable vehicle)) return;
var vehicleController = vehicle.getOrientationController();
if (vehicleController == null) return;
// TODO: Determine if it needs partialtick involved.
Vec3 customEyePos = ridePassenger.cobblemon$getRideEyePos();
cir.setReturnValue(customEyePos);
cobblemon$getCustomEyePos(cir);
}
@Inject(
@@ -88,15 +79,20 @@ public abstract class EntityMixin {
cancellable = true
)
private void cobblemon$modifyEyePosition_noPartial(CallbackInfoReturnable<Vec3> cir) {
cobblemon$getCustomEyePos(cir);
}
@Unique
private void cobblemon$getCustomEyePos(CallbackInfoReturnable<Vec3> cir) {
var entity = (Entity)(Object)this;
if (entity.level().isClientSide) return;
if (!(entity instanceof Player player)) return;
if (!(player instanceof RidePassenger ridePassenger)) return;
if (!(player.getVehicle() instanceof OrientationControllable vehicle)) return;
if (!(vehicle instanceof PokemonEntity)) return;
var vehicleController = vehicle.getOrientationController();
if (vehicleController == null) return;
// TODO: Determine if it needs partialtick involved.
Vec3 customEyePos = ridePassenger.cobblemon$getRideEyePos();
cir.setReturnValue(customEyePos);
}
@@ -9,14 +9,15 @@
package com.cobblemon.mod.common
import net.minecraft.client.RecipeBookCategories
import net.minecraft.world.inventory.RecipeBookType
enum class CobblemonRecipeCategories {
COOKING_POT_SEARCH("COOKING_POT_SEARCH"),
COOKING_POT_FOODS("COOKING_POT_FOODS"),
COOKING_POT_MEDICINES("COOKING_POT_MEDICINES"),
COOKING_POT_COMPLEX_DISHES("COOKING_POT_COMPLEX_DISHES"),
COOKING_POT_MISC("COOKING_POT_MISC");
COOKING_POT_SEARCH("COBBLEMON_COOKING_POT_SEARCH"),
COOKING_POT_FOODS("COBBLEMON_COOKING_POT_FOODS"),
COOKING_POT_MEDICINES("COBBLEMON_COOKING_POT_MEDICINES"),
COOKING_POT_COMPLEX_DISHES("COBBLEMON_COOKING_POT_COMPLEX_DISHES"),
COOKING_POT_MISC("COBBLEMON_COOKING_POT_MISC");
companion object {
val customAggregateCategories: Map<RecipeBookCategories, List<RecipeBookCategories>> = mapOf(
@@ -35,6 +36,9 @@ enum class CobblemonRecipeCategories {
fun toVanillaCategory(): RecipeBookCategories {
return RecipeBookCategories.valueOf(this.id)
}
}
object CobblemonRecipeBookTypes {
const val COOKING_POT_NAME = "COBBLEMON_COOKING_POT"
val COOKING_POT: RecipeBookType = RecipeBookType.valueOf(COOKING_POT_NAME)
}
@@ -89,7 +89,14 @@ object CobblemonTradeOffers {
* @return The resulting list.
*/
fun resolveWanderingTradeOffers(): List<WandererTradeOffer> = listOf(
WandererTradeOffer(false, listOf(VillagerTrades.ItemsForEmeralds(CobblemonItems.VIVICHOKE_SEEDS, 24, 1, 1, 6)))
WandererTradeOffer(false, listOf(
VillagerTrades.ItemsForEmeralds(CobblemonItems.VIVICHOKE_SEEDS, 6, 1, 1, 6),
VillagerTrades.ItemsForEmeralds(CobblemonItems.SACCHARINE_SAPLING, 5, 1, 4, 1),
VillagerTrades.ItemsForEmeralds(CobblemonItems.HEARTY_GRAINS, 1, 1, 12, 1),
VillagerTrades.ItemsForEmeralds(CobblemonItems.CHIPPED_POT, 5, 1, 1, 2),
VillagerTrades.ItemsForEmeralds(CobblemonItems.MASTERPIECE_TEACUP, 5, 1, 1, 2)
))
)
/**
@@ -22,33 +22,41 @@ class RidingStatBoostContext(val pokemon: PokemonEntity)
class RidingStatBoostCriterion(
playerCtx: Optional<ContextAwarePredicate>,
val requiresOwner: Boolean = true,
val rideStat: String,
val statValue : Double,
val isMax : Boolean
) : SimpleCriterionCondition<RidingStatBoostContext>(playerCtx) {
companion object {
val CODEC: Codec<RidingStatBoostCriterion> = RecordCodecBuilder.create { it.group(
val CODEC: Codec<RidingStatBoostCriterion> by lazy {RecordCodecBuilder.create { it.group(
EntityPredicate.ADVANCEMENT_CODEC.optionalFieldOf("player").forGetter { it.playerCtx },
Codec.BOOL.optionalFieldOf("requires_owner", true).forGetter { it.requiresOwner },
Codec.STRING.optionalFieldOf("ride_stat", "any").forGetter { it.rideStat },
Codec.DOUBLE.optionalFieldOf("stat_value", 0.0).forGetter { it.statValue },
Codec.BOOL.optionalFieldOf("is_max", false).forGetter { it.isMax }
).apply(it, ::RidingStatBoostCriterion) }
).apply(it, ::RidingStatBoostCriterion) } }
}
override fun matches(player: ServerPlayer, context: RidingStatBoostContext) : Boolean {
if (requiresOwner && context.pokemon.ownerUUID != player.uuid) {
return false
}
RidingStyle.entries.forEach { ridingStyle ->
RidingStat.entries.forEach { rideStat ->
if (rideStat.name.equals(this.rideStat, true) || this.rideStat == "any") {
if (rideStat.name.equals(this.rideStat, true) || this.rideStat == "any" || this.rideStat == "all") {
val max = context.pokemon.pokemon.getMaxRideBoost(rideStat).toDouble()
val min = context.pokemon.pokemon.getBaseRideStat(rideStat).toDouble()
val value = context.pokemon.getRideStat(rideStat, ridingStyle, min, max)
if ((value >= this.statValue && this.statValue > 0.0) || value == max || !context.pokemon.pokemon.canAddRideBoost(rideStat)) {
val isSufficient = (value >= this.statValue && this.statValue > 0.0) || !context.pokemon.pokemon.canAddRideBoost(rideStat)
if (isSufficient && this.rideStat == "any") {
return true
} else if (!isSufficient && this.rideStat == "all") {
return false
}
}
}
}
return false
return this.rideStat == "all"
}
}
@@ -109,7 +109,7 @@ class PollinateFlowerTaskConfig : SingleTaskConfig {
}
override fun stop(level: ServerLevel, entity: LivingEntity, gameTime: Long) {
hoverPos = null
if (successfulPollinationTicks > REQUIRED_SUCCESSFUL_POLLINATION_TICKS) {
entity.brain.setMemory(CobblemonMemories.HAS_NECTAR, true)
}
@@ -9,13 +9,8 @@
package com.cobblemon.mod.common.api.cooking
import com.cobblemon.mod.common.api.riding.stats.RidingStat
import com.cobblemon.mod.common.util.math.geometry.toDegrees
import com.cobblemon.mod.common.util.math.geometry.toRadians
import net.minecraft.util.FastColor
import net.minecraft.world.item.ItemStack
import kotlin.math.atan2
import kotlin.math.cos
import kotlin.math.sin
private val colourMap = mapOf(
Flavour.SPICY to 0xFEB37D,
@@ -34,27 +29,30 @@ private val bubbleColourMap = mapOf(
)
fun getColourMixFromSeasonings(seasonings: List<ItemStack>, forBubbles: Boolean = false): Int? {
val flavors = seasonings
.mapNotNull { Seasonings.getFlavoursFromItemStack(it) }
.flatMap { it.entries }
.groupingBy { it.key }
.fold(0) { acc, entry -> acc + entry.value }
val flavourValues = mutableMapOf<Flavour, Int>()
for (seasoning in seasonings) {
val flavours = Seasonings.getFlavoursFromItemStack(seasoning) ?: continue
for ((flavour, value) in flavours.entries) {
flavourValues[flavour] = (flavourValues[flavour] ?: 0) + value
}
}
if (flavors.isEmpty()) return null
if (flavourValues.isEmpty()) {
return null
}
val maxFlavorValue = flavors.values.maxOrNull()
val dominantFlavors = flavors.filter { it.value == maxFlavorValue }.map { it.key }
val maxFlavorValue = flavourValues.values.maxOrNull()
val dominantFlavours = flavourValues.filter { it.value == maxFlavorValue }.map { it.key }
return getColourMixFromFlavours(dominantFlavors, forBubbles)
return getColourMixFromFlavours(dominantFlavours, forBubbles)
}
fun getColourMixFromFlavours(dominantFlavours: List<Flavour>, forBubbles: Boolean = false): Int? {
val colors =
dominantFlavours.mapNotNull { if (forBubbles) bubbleColourMap[it] else colourMap[it] }
dominantFlavours
.mapNotNull { if (forBubbles) bubbleColourMap[it] else colourMap[it] }
.map { FastColor.ARGB32.opaque(it) }
if (colors.isEmpty()) return null
return getColourMixFromColors(colors)
}
@@ -62,104 +60,33 @@ fun getColourMixFromRideStatBoosts(dominantBoosts: Iterable<RidingStat>, forBubb
return getColourMixFromFlavours(dominantBoosts.map { it.flavour }, forBubbles)
}
// Mixing RGB colors directly often gives poor results
// Converting them to HSL and averaging hues circularly produces more natural blends
fun getColourMixFromColors(colors: List<Int>): Int? {
if (colors.isEmpty()) return null
if (colors.size == 1) return colors[0]
val hslColors = colors.map {
val red = FastColor.ARGB32.red(it)
val green = FastColor.ARGB32.green(it)
val blue = FastColor.ARGB32.blue(it)
val firstWeight = 0.7f
val otherWeightTotal = 1f - firstWeight
val otherWeight = otherWeightTotal / (colors.size - 1)
rgbToHsl(red, green, blue)
var alphaSum = 0f
var redSum = 0f
var greenSum = 0f
var blueSum = 0f
for (i in colors.indices) {
val weight = if (i == 0) firstWeight else otherWeight
val color = colors[i]
alphaSum += FastColor.ARGB32.alpha(color) * weight
redSum += FastColor.ARGB32.red(color) * weight
greenSum += FastColor.ARGB32.green(color) * weight
blueSum += FastColor.ARGB32.blue(color) * weight
}
val hues = hslColors.map { it.h.toDouble() }
val huesAverage = hueAverage(hues).toFloat()
val saturations = hslColors.map { it.s }
val saturationsAverage = average(saturations)
val lightness = hslColors.map { it.l }
val lightnessAverage = average(lightness)
val rgbColor = hslToRgb(huesAverage, saturationsAverage, lightnessAverage)
return FastColor.ARGB32.color(rgbColor.r, rgbColor.g, rgbColor.b)
}
// Based on https://iter.ca/post/hue-avg
fun hueAverage(hues: List<Double>): Float {
val points = hues.map { hue ->
val rad = hue.toRadians()
Pair(cos(rad), sin(rad))
}
val avgX = points.sumOf { it.first.toDouble() } / points.size
val avgY = points.sumOf { it.second.toDouble() } / points.size
var degrees = atan2(avgY, avgX).toDegrees()
if (degrees < 0) {
degrees += 360f
} else if (degrees > 360) {
degrees -= 360f
}
return degrees
}
fun average(values: List<Float>): Float {
if (values.isEmpty()) return 0f
return values.sum() / values.size
}
data class HSL(val h: Float, val s: Float, val l: Float)
fun rgbToHsl(r: Int, g: Int, b: Int): HSL {
val rf = r / 255f
val gf = g / 255f
val bf = b / 255f
val max = maxOf(rf, gf, bf)
val min = minOf(rf, gf, bf)
val delta = max - min
var h = 0f
val l = (max + min) / 2f
val s = if (delta == 0f) 0f else delta / (1f - kotlin.math.abs(2f * l - 1f))
if (delta != 0f) {
h = when (max) {
rf -> ((gf - bf) / delta) % 6f
gf -> ((bf - rf) / delta) + 2f
else -> ((rf - gf) / delta) + 4f
}
h *= 60f
if (h < 0) h += 360f
}
return HSL(h, s, l)
}
data class RGB(val r: Int, val g: Int, val b: Int)
fun hslToRgb(h: Float, s: Float, l: Float): RGB {
val c = (1f - kotlin.math.abs(2f * l - 1f)) * s
val x = c * (1f - kotlin.math.abs((h / 60f) % 2f - 1f))
val m = l - c / 2f
val (rf, gf, bf) = when {
h < 60f -> Triple(c, x, 0f)
h < 120f -> Triple(x, c, 0f)
h < 180f -> Triple(0f, c, x)
h < 240f -> Triple(0f, x, c)
h < 300f -> Triple(x, 0f, c)
else -> Triple(c, 0f, x)
}
return RGB(
((rf + m) * 255).toInt().coerceIn(0, 255),
((gf + m) * 255).toInt().coerceIn(0, 255),
((bf + m) * 255).toInt().coerceIn(0, 255)
return FastColor.ARGB32.color(
alphaSum.toInt(),
redSum.toInt(),
greenSum.toInt(),
blueSum.toInt()
)
}
@@ -37,8 +37,6 @@ import net.minecraft.resources.ResourceLocation
import net.minecraft.util.FormattedCharSequence
import org.joml.Matrix4f
import org.joml.Vector3f
import org.lwjgl.opengl.GL30
import java.nio.ByteBuffer
@JvmOverloads
fun blitk(
@@ -357,10 +355,10 @@ fun renderSprite(matrixStack: PoseStack, sprite: ResourceLocation) {
val matrix: PoseStack.Pose = matrixStack.last()
matrix.pose().translate(-1f, 0f, 0f)
RenderSystem.setShaderTexture(0, sprite);
RenderSystem.setShaderTexture(0, sprite)
RenderSystem.setShader(GameRenderer::getPositionTexShader)
var buffer = Tesselator.getInstance().begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION_TEX)
val buffer = Tesselator.getInstance().begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION_TEX)
buffer.addVertex(matrix, 2f, 0f, 0.0f).setUv(1f, 0f)
buffer.addVertex(matrix, 0f, 0f, 0.0f).setUv(0f, 0f)
@@ -369,25 +367,3 @@ fun renderSprite(matrixStack: PoseStack, sprite: ResourceLocation) {
BufferUploader.drawWithShader(buffer.buildOrThrow())
}
fun getPixelRGB(x: Int, y: Int): Triple<Int, Int, Int> {
val window = Minecraft.getInstance().window
val scale = window.guiScale
val buffer = ByteBuffer.allocateDirect(4)
RenderSystem.readPixels(
(x * scale).toInt(),
(window.height - y * scale - scale).toInt(),
1,
1,
GL30.GL_RGBA,
GL30.GL_UNSIGNED_BYTE,
buffer
)
return Triple(
buffer[0].toInt() and 0xFF,
buffer[1].toInt() and 0xFF,
buffer[2].toInt() and 0xFF
)
}
@@ -409,13 +409,7 @@ open class PokemonProperties {
shiny?.let { pokemon.shiny = it }
gender?.let { pokemon.gender = it }
level?.let { pokemon.level = it }
friendship.also {
if (it != null) {
pokemon.setFriendship(it)
} else {
pokemon.setFriendship(pokemon.form.baseFriendship)
}
}
friendship?.also { pokemon.setFriendship(it) }
fullness?.let { pokemon.currentFullness = it }
pokeball?.let { PokeBalls.getPokeBall(it.asIdentifierDefaultingNamespace())?.let { pokeball -> pokemon.caughtBall = pokeball } }
nature?.let { Natures.getNature(it.asIdentifierDefaultingNamespace())?.let { nature -> pokemon.nature = nature } }
@@ -34,6 +34,7 @@ import com.cobblemon.mod.common.util.resolveFloat
import com.cobblemon.mod.common.util.writeNullableExpression
import com.cobblemon.mod.common.util.writeRidingStats
import net.minecraft.client.Minecraft
import net.minecraft.client.player.LocalPlayer
import kotlin.math.abs
import kotlin.math.max
import kotlin.math.min
@@ -40,9 +40,12 @@ class PokemonSpawnAction(
override fun createEntity(): PokemonEntity {
val props = props.copy()
props.level = levelRange.random()
val sourcePlayer = spawnablePosition.cause.entity as? ServerPlayer
val entity = props.createEntity(spawnablePosition.world, sourcePlayer)
entity.spawnCause = spawnablePosition.cause
entity.pokemon.setFriendship(entity.pokemon.form.baseFriendship)
SeasonFeatureHandler.updateSeason(entity.pokemon, Cobblemon.seasonResolver(spawnablePosition.world, spawnablePosition.position))
val heldItem = heldItem
if (heldItem != ItemStack.EMPTY && heldItem != null) {
@@ -180,8 +180,12 @@ open class PCStore(
removeDuplicates()
unlockedWallpapers.addAll(nbt.getList(DataKeys.STORE_UNLOCKED_WALLPAPERS, Tag.TAG_STRING.toInt()).map { ResourceLocation.parse(it.asString) })
unseenWallpapers.addAll(nbt.getList(DataKeys.STORE_UNSEEN_WALLPAPERS, Tag.TAG_STRING.toInt()).map { ResourceLocation.parse(it.asString) })
if (nbt.contains(DataKeys.STORE_UNLOCKED_WALLPAPERS)) {
unlockedWallpapers.addAll(nbt.getList(DataKeys.STORE_UNLOCKED_WALLPAPERS, Tag.TAG_STRING.toInt()).map { ResourceLocation.parse(it.asString) })
}
if (nbt.contains(DataKeys.STORE_UNSEEN_WALLPAPERS)) {
unseenWallpapers.addAll(nbt.getList(DataKeys.STORE_UNSEEN_WALLPAPERS, Tag.TAG_STRING.toInt()).map { ResourceLocation.parse(it.asString) })
}
return this
}
@@ -226,8 +230,12 @@ open class PCStore(
removeDuplicates()
unlockedWallpapers.addAll(json.getAsJsonArray(DataKeys.STORE_UNLOCKED_WALLPAPERS).map { ResourceLocation.parse(it.asString) })
unseenWallpapers.addAll(json.getAsJsonArray(DataKeys.STORE_UNSEEN_WALLPAPERS).map { ResourceLocation.parse(it.asString) })
if (json.has(DataKeys.STORE_UNLOCKED_WALLPAPERS)) {
unlockedWallpapers.addAll(json.getAsJsonArray(DataKeys.STORE_UNLOCKED_WALLPAPERS).map { ResourceLocation.parse(it.asString) })
}
if (json.has(DataKeys.STORE_UNSEEN_WALLPAPERS)) {
unseenWallpapers.addAll(json.getAsJsonArray(DataKeys.STORE_UNSEEN_WALLPAPERS).map { ResourceLocation.parse(it.asString) })
}
return this
}
@@ -19,7 +19,6 @@ import net.minecraft.server.level.ServerLevel
import net.minecraft.tags.FluidTags
import net.minecraft.util.Mth
import net.minecraft.util.RandomSource
import net.minecraft.world.entity.player.Player
import net.minecraft.world.item.context.BlockPlaceContext
import net.minecraft.world.level.*
import net.minecraft.world.level.block.Block
@@ -175,7 +174,7 @@ class HeartyGrainsBlock(settings: Properties) : CropBlock(settings), SimpleWater
UPDATE_CLIENTS
)
}
else if (stateAbove.getValue(HALF) == DoubleBlockHalf.UPPER) {
else if (stateAbove.hasProperty(HALF) && stateAbove.getValue(HALF) == DoubleBlockHalf.UPPER) {
world.setBlock(
abovePos,
stateAbove.setValue(AGE, newAge),
@@ -34,6 +34,7 @@ import net.minecraft.world.entity.player.Player
import net.minecraft.world.item.ItemStack
import net.minecraft.world.item.context.BlockPlaceContext
import net.minecraft.world.level.BlockGetter
import net.minecraft.world.level.Explosion
import net.minecraft.world.level.Level
import net.minecraft.world.level.LevelAccessor
import net.minecraft.world.level.LevelReader
@@ -55,9 +56,10 @@ import net.minecraft.world.phys.shapes.VoxelShape
import java.util.*
import net.minecraft.world.level.block.state.properties.BlockStateProperties.WATERLOGGED
import net.minecraft.world.level.gameevent.GameEvent
import java.util.function.BiConsumer
@Suppress("OVERRIDE_DEPRECATION", "DEPRECATION")
class PastureBlock(settings: Properties): BaseEntityBlock(settings), SimpleWaterloggedBlock, PreEmptsExplosion {
class PastureBlock(settings: Properties): BaseEntityBlock(settings), SimpleWaterloggedBlock {
companion object {
val CODEC = simpleCodec(::PastureBlock)
@@ -213,9 +215,19 @@ class PastureBlock(settings: Properties): BaseEntityBlock(settings), SimpleWater
return super.playerWillDestroy(world, pos, state, player)
}
override fun whenExploded(world: Level, state: BlockState, pos: BlockPos) {
val blockEntity = world.getBlockEntity(pos) as? PokemonPastureBlockEntity ?: return
blockEntity.onBroken()
override fun onExplosionHit(
state: BlockState,
level: Level,
pos: BlockPos,
explosion: Explosion,
dropConsumer: BiConsumer<ItemStack?, BlockPos?>
) {
val interaction = explosion.blockInteraction
if (interaction == Explosion.BlockInteraction.DESTROY || interaction == Explosion.BlockInteraction.DESTROY_WITH_DECAY) {
val blockEntity = level.getBlockEntity(pos) as? PokemonPastureBlockEntity ?: return
blockEntity.onBroken()
}
super.onExplosionHit(state, level, pos, explosion, dropConsumer)
}
override fun <T : BlockEntity?> getTicker(world: Level, state: BlockState, type: BlockEntityType<T>): BlockEntityTicker<T>? {
@@ -1,17 +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.block
import net.minecraft.world.level.block.state.BlockState
import net.minecraft.core.BlockPos
import net.minecraft.world.level.Level
interface PreEmptsExplosion {
fun whenExploded(world: Level, state: BlockState, pos: BlockPos)
}
@@ -271,15 +271,16 @@ class SaccharineLeafBlock(settings: Properties) : LeavesBlock(settings) {
player.addItem(Items.HONEY_BOTTLE.defaultInstance)
level.playSound(null, pos, SoundEvents.BOTTLE_FILL, SoundSource.BLOCKS)
level.setBlock(pos, state.setValue(AGE, 0), 2)
level.setBlock(pos, state.setValue(AGE, 0), UPDATE_CLIENTS)
level.gameEvent(null, GameEvent.BLOCK_CHANGE, pos)
return ItemInteractionResult.SUCCESS
} else if (isHoneyBottle && !isAtMaxAge(state)) {
// Decrement stack if not in creative mode
itemStack.consume(1, player)
player.addItem(Items.GLASS_BOTTLE.defaultInstance)
level.playSound(null, pos, SoundEvents.HONEY_BLOCK_PLACE, SoundSource.BLOCKS)
level.setBlock(pos, state.setValue(AGE, 2), 2)
level.setBlock(pos, state.setValue(AGE, 2), UPDATE_CLIENTS)
level.gameEvent(null, GameEvent.BLOCK_CHANGE, pos)
return ItemInteractionResult.SUCCESS
}
@@ -9,6 +9,7 @@
package com.cobblemon.mod.common.block.campfirepot
import com.cobblemon.mod.common.CobblemonMenuType
import com.cobblemon.mod.common.CobblemonRecipeBookTypes.COOKING_POT
import com.cobblemon.mod.common.CobblemonRecipeTypes
import com.cobblemon.mod.common.api.cooking.Seasonings
import com.cobblemon.mod.common.block.entity.CampfireBlockEntity
@@ -211,7 +212,7 @@ class CookingPotMenu : RecipeBookMenu<CraftingInput, CookingPotRecipeBase>, Cont
}
override fun getRecipeBookType(): RecipeBookType {
return RecipeBookType.valueOf("COOKING_POT")
return COOKING_POT
}
override fun shouldMoveToInventory(slotIndex: Int): Boolean {
@@ -111,13 +111,18 @@ class CampfireBlockEntity(pos: BlockPos, state: BlockState) : BaseContainerBlock
BlockEntitySoundTracker.stop(pos, campfireBlockEntity.ambientSound.location)
}
campfireBlockEntity.brothColor =
getColourMixFromSeasonings(campfireBlockEntity.getSeasonings())
?: BASE_BROTH_COLOR
val seasonings = campfireBlockEntity.getSeasonings()
if (seasonings.size != campfireBlockEntity.lastSeasoningStacks.size || seasonings.any { it !in campfireBlockEntity.lastSeasoningStacks }) {
campfireBlockEntity.lastSeasoningStacks = seasonings
campfireBlockEntity.bubbleColor =
getColourMixFromSeasonings(campfireBlockEntity.getSeasonings(), true)
?: BASE_BROTH_BUBBLE_COLOR
campfireBlockEntity.brothColor =
getColourMixFromSeasonings(seasonings)
?: BASE_BROTH_COLOR
campfireBlockEntity.bubbleColor =
getColourMixFromSeasonings(seasonings, true)
?: BASE_BROTH_BUBBLE_COLOR
}
if (campfireBlockEntity.particleCooldown > 0) {
campfireBlockEntity.particleCooldown--
@@ -241,6 +246,9 @@ class CampfireBlockEntity(pos: BlockPos, state: BlockState) : BaseContainerBlock
var bubbleColor: Int = BASE_BROTH_BUBBLE_COLOR
var time: Int = 0
/** Used to know if we should be changing the colour of the broth or if we can go with the previous colour. */
var lastSeasoningStacks = listOf<ItemStack>()
var dataAccess: ContainerData = object : ContainerData {
override fun get(index: Int): Int {
return when (index) {
@@ -49,7 +49,6 @@ import net.minecraft.world.entity.Entity
import net.minecraft.world.entity.player.Player
import net.minecraft.world.item.ItemStack
import net.minecraft.world.level.block.state.BlockState
import java.util.*
open class PokeSnackBlockEntity(pos: BlockPos, state: BlockState) :
TintBlockEntity(CobblemonBlockEntities.POKE_SNACK, pos, state),
@@ -120,7 +119,7 @@ open class PokeSnackBlockEntity(pos: BlockPos, state: BlockState) :
level.dimension(),
)
block.eat(level, blockPos, blockState, action.spawnablePosition.cause.entity as? Player)
block.eat(level, blockPos, blockState, null)
}
}
@@ -186,7 +186,7 @@ object CobblemonClient {
) { it is PokemonEntity }
nearbyPokemon?.forEach { entity ->
if (entity is PokemonEntity && !entity.isSilent) {
if (entity is PokemonEntity && !entity.isSilent && !entity.passengers.contains(player)) {
if (player.isLookingAt(entity) && !player.isSpectator && entity.pokemon.shiny) entity.delegate.spawnShinyParticle(player)
entity.delegate.spawnAspectParticle()
}
@@ -38,7 +38,7 @@ import kotlin.math.max
class RideControlsOverlay : Gui(Minecraft.getInstance()) {
companion object {
private const val FADE_FRAMES = 20F
private const val CONTROLS_FADE_FRAMES = 20F
private const val BASELINE_FPS = 60F
private const val HALF_SCALE = 0.5F
@@ -63,9 +63,9 @@ class RideControlsOverlay : Gui(Minecraft.getInstance()) {
private val screenExemptions: List<Class<out Screen>> = listOf(ChatScreen::class.java)
private var maxDurationFrames = Cobblemon.config.displayControlSeconds * BASELINE_FPS
private var durationFrames = maxDurationFrames
private var fadeFrames = FADE_FRAMES
private var controlsMaxDurationFrames = Cobblemon.config.displayControlSeconds * BASELINE_FPS
private var controlsDurationFrames = controlsMaxDurationFrames
private var controlsFadeFrames = CONTROLS_FADE_FRAMES
private var lastMouseX = 0
private var lastMouseY = 0
@@ -88,119 +88,132 @@ class RideControlsOverlay : Gui(Minecraft.getInstance()) {
if (minecraft.options.hideGui || minecraft.debugOverlay.showDebugScreen()) return
val riddenEntity = minecraft.player?.vehicle
if (riddenEntity != null && riddenEntity is PokemonEntity) {
// Update max duration if user has changed config
val configDuration = Cobblemon.config.displayControlSeconds * BASELINE_FPS
if (maxDurationFrames != configDuration) {
maxDurationFrames = configDuration
resetOverlayState()
}
// Don't render if duration config set to 0 or less
if (maxDurationFrames <= 0F) return
val rideBehaviourSettings = riddenEntity.ridingController?.context?.settings ?: return
val ridingBehaviourState = riddenEntity.ridingController?.context?.state ?: return
val rideBehaviourKey = rideBehaviourSettings.key
// Update current ride behaviour if changed
// If composite, get active behaviour instead
if (rideBehaviourKey == CompositeBehaviour.KEY) {
val activeBehaviour = (ridingBehaviourState as CompositeState).activeBehaviour.get()
if (currentBehaviourKey != activeBehaviour) {
currentBehaviourKey = activeBehaviour
resetOverlayState()
minecraft.player?.let { player ->
val riddenEntity = player.vehicle
if (riddenEntity != null && riddenEntity is PokemonEntity) {
// Only show controls to driver
if (riddenEntity === player.controlledVehicle) {
renderControls(minecraft, context, tickCounter, riddenEntity)
}
} else if (currentBehaviourKey != rideBehaviourKey) {
currentBehaviourKey = rideBehaviourKey
resetOverlayState()
} else {
resetControlsOverlayState()
}
// Render elements if entity has ride behaviour and if display duration has not ended yet
if (rideBehaviourSettings != null && fadeFrames > 0) {
val tickDelta = tickCounter.realtimeDeltaTicks.takeIf { !minecraft.isPaused } ?: 0F
val updateInterval = (tickDelta / 20F) * BASELINE_FPS
durationFrames = max(durationFrames - updateInterval, 0F)
if (durationFrames == 0F && fadeFrames > 0) fadeFrames = max(fadeFrames - updateInterval, 0F)
var showVerticalMouse = true // Show moving mouse up and down with arrows
var showHorizontalMouse = true // Show moving mouse left and right with arrows
var showSneakKey = true
var showJumpKey = true
var showMovementKeys = true
var disableHorizontalMovementKeys = false // Disable left and right movement keys
// Configure what controls to show for each behaviour
when (currentBehaviourKey) {
BirdBehaviour.KEY -> {}
BoatBehaviour.KEY -> {
showVerticalMouse = false
showHorizontalMouse = false
showSneakKey = false
}
BurstBehaviour.KEY -> {}
DolphinBehaviour.KEY -> {}
GliderBehaviour.KEY -> {}
HelicopterBehaviour.KEY -> {}
HorseBehaviour.KEY -> {
showVerticalMouse = false
disableHorizontalMovementKeys = true
showSneakKey = false
}
HoverBehaviour.KEY -> {
showVerticalMouse = false
}
JetBehaviour.KEY -> {
showSneakKey = false
showJumpKey = false
}
MinekartBehaviour.KEY -> {
showVerticalMouse = false
showHorizontalMouse = false
showSneakKey = false
}
RocketBehaviour.KEY -> {
showVerticalMouse = false
showHorizontalMouse = false
}
VehicleBehaviour.KEY -> {}
}
val centerX = minecraft.window.guiScaledWidth / 2
val centerY = minecraft.window.guiScaledHeight / 2
renderMouseControls(
context,
!showMovementKeys && !showJumpKey && !showSneakKey,
showHorizontalMouse,
showVerticalMouse,
centerX,
centerY / 2,
fadeFrames / FADE_FRAMES
)
renderKeyControls(
context,
!showHorizontalMouse && !showVerticalMouse,
showMovementKeys,
disableHorizontalMovementKeys,
showJumpKey,
showSneakKey,
minecraft.player?.input,
centerX,
centerY / 2,
fadeFrames / FADE_FRAMES
)
}
} else {
resetOverlayState()
}
}
private fun resetOverlayState() {
if (durationFrames != maxDurationFrames) durationFrames = maxDurationFrames
if (fadeFrames != FADE_FRAMES) fadeFrames = FADE_FRAMES
private fun renderControls(minecraft: Minecraft, context: GuiGraphics, tickCounter: DeltaTracker, riddenEntity: PokemonEntity) {
// Update max duration if user has changed config
val configDuration = Cobblemon.config.displayControlSeconds * BASELINE_FPS
if (controlsMaxDurationFrames != configDuration) {
controlsMaxDurationFrames = configDuration
resetControlsOverlayState()
}
// Don't render if duration config set to 0 or less
if (controlsMaxDurationFrames <= 0F) return
val rideBehaviourSettings = riddenEntity.ridingController?.context?.settings ?: return
val ridingBehaviourState = riddenEntity.ridingController?.context?.state ?: return
val rideBehaviourKey = rideBehaviourSettings.key
// Update current ride behaviour if changed
// If composite, get active behaviour instead
if (rideBehaviourKey == CompositeBehaviour.KEY) {
val activeBehaviour = (ridingBehaviourState as CompositeState).activeBehaviour.get()
if (currentBehaviourKey != activeBehaviour) {
currentBehaviourKey = activeBehaviour
resetControlsOverlayState()
}
} else if (currentBehaviourKey != rideBehaviourKey) {
currentBehaviourKey = rideBehaviourKey
resetControlsOverlayState()
}
// Render elements if entity has ride behaviour and if display duration has not ended yet
if (rideBehaviourSettings != null && controlsFadeFrames > 0) {
val tickDelta = tickCounter.realtimeDeltaTicks.takeIf { !minecraft.isPaused } ?: 0F
val updateInterval = (tickDelta / 20F) * BASELINE_FPS
controlsDurationFrames = max(controlsDurationFrames - updateInterval, 0F)
if (controlsDurationFrames == 0F && controlsFadeFrames > 0) controlsFadeFrames = max(controlsFadeFrames - updateInterval, 0F)
var showVerticalMouse = true // Show moving mouse up and down with arrows
var showHorizontalMouse = true // Show moving mouse left and right with arrows
var showSneakKey = true
var showJumpKey = true
var showMovementKeys = true
var disableHorizontalMovementKeys = false // Disable left and right movement keys
// Configure what controls to show for each behaviour
when (currentBehaviourKey) {
BirdBehaviour.KEY -> {}
BoatBehaviour.KEY -> {
showVerticalMouse = false
showHorizontalMouse = false
showSneakKey = false
}
BurstBehaviour.KEY -> {}
DolphinBehaviour.KEY -> {
disableHorizontalMovementKeys = true
showSneakKey = false
showJumpKey = false
}
GliderBehaviour.KEY -> {}
HelicopterBehaviour.KEY -> {}
HorseBehaviour.KEY -> {
showVerticalMouse = false
disableHorizontalMovementKeys = true
showSneakKey = false
}
HoverBehaviour.KEY -> {
showVerticalMouse = false
}
JetBehaviour.KEY -> {
showSneakKey = false
showJumpKey = false
}
MinekartBehaviour.KEY -> {
showVerticalMouse = false
showHorizontalMouse = false
showSneakKey = false
}
RocketBehaviour.KEY -> {
showVerticalMouse = false
showHorizontalMouse = false
}
VehicleBehaviour.KEY -> {}
}
val centerX = minecraft.window.guiScaledWidth / 2
val centerY = minecraft.window.guiScaledHeight / 2
renderMouseControls(
context,
!showMovementKeys && !showJumpKey && !showSneakKey,
showHorizontalMouse,
showVerticalMouse,
centerX,
centerY / 2,
controlsFadeFrames / CONTROLS_FADE_FRAMES
)
renderKeyControls(
context,
!showHorizontalMouse && !showVerticalMouse,
showMovementKeys,
disableHorizontalMovementKeys,
showJumpKey,
showSneakKey,
minecraft.player?.input,
centerX,
centerY / 2,
controlsFadeFrames / CONTROLS_FADE_FRAMES
)
}
}
private fun resetControlsOverlayState() {
if (controlsDurationFrames != controlsMaxDurationFrames) controlsDurationFrames = controlsMaxDurationFrames
if (controlsFadeFrames != CONTROLS_FADE_FRAMES) controlsFadeFrames = CONTROLS_FADE_FRAMES
if (mouseMovedUp != null) {
mouseMovedUp = null
lastMouseY = 0
@@ -409,7 +422,7 @@ class RideControlsOverlay : Gui(Minecraft.getInstance()) {
if (showJump || showSneak) {
val offsetY = if (showMovement) 0 else -14
var label: MutableComponent? = null
var label: MutableComponent?
if (showJump && showSneak) {
label = "key.sneak".asTranslated().append("/").append("key.jump".asTranslated())
@@ -11,7 +11,6 @@ package com.cobblemon.mod.common.client.gui.pc
import com.cobblemon.mod.common.CobblemonNetwork
import com.cobblemon.mod.common.CobblemonSounds
import com.cobblemon.mod.common.api.gui.blitk
import com.cobblemon.mod.common.api.gui.getPixelRGB
import com.cobblemon.mod.common.api.storage.StorePosition
import com.cobblemon.mod.common.api.storage.party.PartyPosition
import com.cobblemon.mod.common.api.storage.pc.PCPosition
@@ -284,20 +283,6 @@ class StorageWidget(
height = 189,
alpha = if (screenLoaded) 1F else ((pcGui.ticksElapsed).toFloat() / 10F).coerceIn(0F, 1F)
)
} else {
val rgb = getPixelRGB(x + (SCREEN_WIDTH / 2), y + (SCREEN_HEIGHT / 2))
blitk(
matrixStack = matrices,
texture = screenGlowResource,
x = x - 17,
y = y - 17,
width = 208,
height = 189,
red = rgb.first / 255F,
green = rgb.second / 255F,
blue = rgb.third / 255F,
alpha = if (screenLoaded) 1F else ((pcGui.ticksElapsed).toFloat() / 10F).coerceIn(0F, 1F)
)
}
blitk(
@@ -38,6 +38,7 @@ object CobblemonKeyBinds {
val PARTY_OVERLAY_DOWN = this.queue(DownShiftPartyBinding)
val PARTY_OVERLAY_UP = this.queue(UpShiftPartyBinding)
val SEND_OUT_POKEMON = this.queue(PartySendBinding)
val RIDING_FREELOOK = this.queue(RidingFreelookBinding)
fun register(registrar: (KeyMapping) -> Unit) {
this.keyBinds.forEach(registrar::invoke)
@@ -0,0 +1,29 @@
/*
* 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.keybind.keybinds
import com.cobblemon.mod.common.client.keybind.CobblemonBlockingKeyBinding
import com.cobblemon.mod.common.client.keybind.KeybindCategories
import com.mojang.blaze3d.platform.InputConstants
object RidingFreelookBinding : CobblemonBlockingKeyBinding(
"key.cobblemon.ridingfreelook",
InputConstants.Type.MOUSE,
InputConstants.MOUSE_BUTTON_MIDDLE,
KeybindCategories.COBBLEMON_CATEGORY
) {
override fun onTick() {
}
override fun onRelease() {
}
override fun onPress() {
}
}
@@ -34,9 +34,11 @@ import net.minecraft.world.phys.HitResult
import net.minecraft.world.phys.Vec3
import org.joml.Matrix3f
import org.joml.Quaternionf
import org.joml.Vector3d
import org.joml.Vector3f
import kotlin.math.min
import kotlin.math.sign
import kotlin.math.sqrt
object MountedCameraRenderer {
private var returnTimer: Float = 0f
@@ -77,15 +79,15 @@ object MountedCameraRenderer {
// Get additional offset from poser and add to the eyeHeight offset
val currEyeHeight: Double = Mth.lerp(instance.partialTickTime.toDouble(), eyeHeight, eyeHeightOld)
val offset = Vector3f(0f, (currEyeHeight - (driver.bbHeight / 2)).toFloat(), 0f)
val eyeOffset = Vector3f(0f, (currEyeHeight - (driver.bbHeight / 2)).toFloat(), 0f)
var offset = Vec3(0.0, currEyeHeight - (driver.bbHeight / 2), 0.0)
var eyeOffset = Vec3(0.0, currEyeHeight - (driver.bbHeight / 2), 0.0)
val shouldFlip = !(vehicleController.active && vehicleController.orientation != null) // Do not flip the offset for 3rd person reverse unless we are using normal mc camera rotation.
val isFirstPerson = Minecraft.getInstance().options.cameraType == CameraType.FIRST_PERSON
eyeOffset.add(getFirstPersonOffset(model, locatorName))
eyeOffset = eyeOffset.add(getFirstPersonOffset(model, locatorName))
// Get the offset based on first person, third person, or third person with view bobbing enabled from the posers.
offset.add(
offset = offset.add(
if (isFirstPerson) {
getFirstPersonOffset(model, locatorName)
} else /* if (Cobblemon.config.thirdPersonViewBobbing) */ {
@@ -100,17 +102,17 @@ object MountedCameraRenderer {
else Quaternionf()
.rotateY((Math.PI.toFloat() - Mth.lerp(instance.partialTickTime, vehicle.yRotO, vehicle.yRot).toRadians()))
rotation.transform(offset)
rotation.transform(eyeOffset)
offset = rotation.transform(Vector3d(offset.x, offset.y, offset.z)).let { Vec3(it.x, it.y, it.z) }
eyeOffset = rotation.transform(Vector3d(eyeOffset.x, eyeOffset.y, eyeOffset.z)).let { Vec3(it.x, it.y, it.z) }
val eyeLocatorOffset = Vec3(locator.matrix.getTranslation(Vector3f()))
val eyePos = eyeLocatorOffset.add(entityPos).toVector3f()
val eyePos = eyeLocatorOffset.add(entityPos)
// Get the camera position before offsets are applied (which are done with maxZoom to account for clipping). If 3rd person viewbobbing is enabled or the player is
// in first person then base the camera position off the seat locator offset
val pos = /* if (isFirstPerson || Cobblemon.config.thirdPersonViewBobbing) { */
Vec3(locator.matrix.getTranslation(Vector3f()))
.add(entityPos).toVector3f()
.add(entityPos)
/* } else {
val pokemonCenter = Vector3f(0f, driver.bbHeight/2, 0f)
@@ -124,18 +126,18 @@ object MountedCameraRenderer {
} */
val offsetDistance = offset.length()
val offsetDirection = offset.mul(1 / offsetDistance)
val offsetDirection = offset.scale(1 / offsetDistance)
val eyeOffsetDistance = eyeOffset.length()
val eyeOffsetDirection = eyeOffset.mul(1 / eyeOffsetDistance)
val eyeOffsetDirection = eyeOffset.scale(1 / eyeOffsetDistance)
// Use getMaxZoom to calculate clipping
val maxZoom: Float = getMaxZoom(offsetDistance, offsetDirection, pos, instance)
val eyeMaxZoom: Float = getMaxZoom(eyeOffsetDistance, eyeOffsetDirection, eyePos, instance)
val maxZoom: Double = getMaxZoom(offsetDistance, offsetDirection, pos, instance)
val eyeMaxZoom: Double = getMaxZoom(eyeOffsetDistance, eyeOffsetDirection, eyePos, instance)
val playerRotater = driver as RidePassenger
playerRotater.`cobblemon$setRideEyePos`(Vec3(eyeOffsetDirection.mul(eyeMaxZoom).add(eyePos)))
return Vec3(offsetDirection.mul(maxZoom).add(pos))
playerRotater.`cobblemon$setRideEyePos`(eyeOffsetDirection.scale(eyeMaxZoom).add(eyePos))
return offsetDirection.scale(maxZoom).add(pos)
}
// Return value is false if the vanilla camera rotations should be applied.
@@ -324,41 +326,39 @@ object MountedCameraRenderer {
cameraOffsets: Map<String, Vec3>,
locatorName: String,
shouldFlip: Boolean = true
): Vector3f {
): Vec3 {
val offset = if (thirdPersonReverse && cameraOffsets.containsKey(locatorName + "_reverse")) {
cameraOffsets[locatorName + "_reverse"]!!.toVector3f()
cameraOffsets[locatorName + "_reverse"]!!
} else if (cameraOffsets.containsKey(locatorName)) {
cameraOffsets[locatorName]!!.toVector3f()
cameraOffsets[locatorName]!!
} else {
Vector3f(0f, 0f, 0f)
Vec3.ZERO
}
// Don't need to account for this since orientation is derived from camera rotation and that z is already flipped.
// Flip only when not on a rollable.
if (thirdPersonReverse && shouldFlip) offset.z *= -1
return offset
return if (thirdPersonReverse && shouldFlip) offset.multiply(1.0, 1.0, -1.0) else offset
}
private fun getFirstPersonOffset(model: PosableModel, locatorName: String): Vector3f {
private fun getFirstPersonOffset(model: PosableModel, locatorName: String): Vec3 {
val cameraOffsets = model.firstPersonCameraOffset
return if (cameraOffsets.containsKey(locatorName)) {
cameraOffsets[locatorName]!!.toVector3f()
cameraOffsets[locatorName]!!
} else {
Vector3f(0f, 0f, 0f)
Vec3.ZERO
}
}
private fun getMaxZoom(maxZoom: Float, directionVector: Vector3f, positionVector: Vector3f, instance: Camera): Float {
private fun getMaxZoom(maxZoom: Double, directionVector: Vec3, positionVector: Vec3, instance: Camera): Double {
var maxZoom = maxZoom
val pos = Vec3(positionVector)
for (i in 0 .. 7) {
val g = ((i and 1) * 2 - 1).toFloat()
val h = ((i shr 1 and 1) * 2 - 1).toFloat()
val j = ((i shr 2 and 1) * 2 - 1).toFloat()
val vec3 = pos.add((g * 0.1f).toDouble(), (h * 0.1f).toDouble(), (j * 0.1f).toDouble())
val vec32 = vec3.add(Vec3(directionVector).scale(maxZoom.toDouble()))
val vec3 = positionVector.add((g * 0.1f).toDouble(), (h * 0.1f).toDouble(), (j * 0.1f).toDouble())
val vec32 = vec3.add(directionVector.scale(maxZoom))
val level = (instance as CameraDuck).`cobblemon$getLevel`()
val hitResult: HitResult = level.clip(
ClipContext(
@@ -370,9 +370,9 @@ object MountedCameraRenderer {
)
)
if (hitResult.type != HitResult.Type.MISS) {
val k = hitResult.getLocation().distanceToSqr(pos).toFloat()
val k = hitResult.getLocation().distanceToSqr(positionVector)
if (k < Mth.square(maxZoom)) {
maxZoom = Mth.sqrt(k)
maxZoom = sqrt(k)
}
}
}
@@ -186,7 +186,7 @@ class OmniPathNavigation(val world: Level, val entity: Mob) : GroundPathNavigati
val blockState = this.world.getBlockState(target)
val path = if (!blockState.isSolid
|| (blockState.`is`(BlockTags.LEAVES) && blockState.block == CobblemonBlocks.SACCHARINE_LEAVES && (this.entity as PokemonEntity).canPathThroughSaccLeaves())) {
|| (blockState.`is`(BlockTags.LEAVES) && blockState.block == CobblemonBlocks.SACCHARINE_LEAVES && pather.canPathThroughSaccLeaves())) {
findPath(target, distance)
} else {
blockPos = target.above()
@@ -269,7 +269,7 @@ class OmniPathNavigation(val world: Level, val entity: Mob) : GroundPathNavigati
// If we can fly and we're airborne, return the current Y position
return vec.y
}
if (world.getBlockState(blockPos).block == CobblemonBlocks.SACCHARINE_LEAVES && (this.entity as PokemonEntity).canPathThroughSaccLeaves()) {
if (world.getBlockState(blockPos).block == CobblemonBlocks.SACCHARINE_LEAVES && pather.canPathThroughSaccLeaves()) {
return vec.y + 0.5
}
return if ((canFloat()) && blockGetter.getFluidState(blockPos).`is`(FluidTags.WATER)) vec.y + 0.5 else super.getGroundY(vec)
@@ -417,9 +417,12 @@ class EmptyPokeBallEntity : ThrowableItemProjectile, PosableEntity, WaterDragMod
discard()
}
after(seconds = 0.1F) {
pokemon.after(seconds = 0.1F) {
pokemon.beamMode = 0
pokemon.busyLocks.remove(this)
}
after(seconds = 0.1F) {
captureFuture.complete(false)
val ballType =
this.pokeBall.name.path.lowercase().replace("_", "")
@@ -1257,6 +1257,11 @@ open class PokemonEntity(
override fun canBeSeenAsEnemy() = super.canBeSeenAsEnemy() && !isBusy
override fun doHurtTarget(target: Entity): Boolean {
if (beamMode != 0) return false
return super.doHurtTarget(target)
}
override fun hurt(source: DamageSource, amount: Float): Boolean {
return if (super.hurt(source, amount)) {
effects.mockEffect?.takeIf { it is IllusionEffect && this.battleId == null }?.end(this)
@@ -52,8 +52,9 @@ object PlaceHoneyInHiveTask {
if (blockEntity.isFull) {
// Erase Hive memory and give the bee a moment to locate a new hive
entity.brain.eraseMemory(CobblemonMemories.HIVE_LOCATION)
} else {
blockEntity.addOccupant(entity)
}
blockEntity.addOccupant(entity)
}
return@Trigger true
@@ -23,7 +23,6 @@ import net.minecraft.world.level.Level
class PonigiriItem : Item(
Properties().stacksTo(64)
.food(FoodProperties.Builder()
.alwaysEdible()
.nutrition(2)
.saturationModifier(0.55f)
.build())
@@ -24,10 +24,19 @@ class ClientboundUpdateRidingStatePacket(
override val id = ID
override fun encode(buffer: RegistryFriendlyByteBuf) {
if (state == null) error("Expected state to be populated for encoding")
//We need to allow for encoding the data buffer instead of state for Flashback compat
//Flashback needs to be able to call encode on the packet it gets, which only has data, not state yet.
if (state == null && data == null) error("Expected state or data to be populated for encoding")
buffer.writeInt(entity)
buffer.writeResourceLocation(behaviour)
state.encode(buffer)
if (state != null) {
state.encode(buffer)
}
else if (data != null) {
buffer.writeBytes(data)
//So the buffer can be read in the future
data.resetReaderIndex()
}
}
companion object {
@@ -1364,6 +1364,10 @@ open class Pokemon : ShowdownIdentifiable {
return result
}
fun recalculateCharacteristic() {
this.characteristic = Characteristic.calculate(this.ivs, this.uuid)
}
open fun copyFrom(other: Pokemon): Pokemon {
this.isClient = other.isClient
this.uuid = other.uuid
@@ -1425,6 +1429,7 @@ open class Pokemon : ShowdownIdentifiable {
this.potentialMarks.clear()
this.potentialMarks += other.marks
this.markings = other.markings
this.recalculateCharacteristic()
this.updateAspects()
this.refreshOriginalTrainer()
this.initialize()
@@ -16,6 +16,9 @@ import com.google.common.collect.Maps
import it.unimi.dsi.fastutil.longs.Long2ObjectFunction
import it.unimi.dsi.fastutil.longs.Long2ObjectMap
import it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap
import java.util.EnumSet
import java.util.function.Predicate
import kotlin.math.max
import net.minecraft.core.BlockPos
import net.minecraft.core.Direction
import net.minecraft.tags.BlockTags
@@ -27,15 +30,17 @@ import net.minecraft.world.level.PathNavigationRegion
import net.minecraft.world.level.block.BaseRailBlock
import net.minecraft.world.level.block.Blocks
import net.minecraft.world.level.block.FenceGateBlock
import net.minecraft.world.level.block.state.BlockState
import net.minecraft.world.level.material.FluidState
import net.minecraft.world.level.pathfinder.*
import net.minecraft.world.level.pathfinder.Node
import net.minecraft.world.level.pathfinder.NodeEvaluator
import net.minecraft.world.level.pathfinder.PathComputationType
import net.minecraft.world.level.pathfinder.PathType
import net.minecraft.world.level.pathfinder.PathfindingContext
import net.minecraft.world.level.pathfinder.Target
import net.minecraft.world.level.pathfinder.WalkNodeEvaluator
import net.minecraft.world.phys.AABB
import net.minecraft.world.phys.Vec3
import java.util.*
import java.util.function.Predicate
import kotlin.math.max
import net.minecraft.world.level.block.state.BlockState
/**
@@ -118,7 +123,7 @@ class OmniPathNodeMaker : NodeEvaluator() {
return if (!canFly() && d - nodeFloorLevel > this.getMobJumpHeight()) {
null
} else {
var pathType2: PathType = this.getPathTypeOfMob(this.currentContext, x, y, z, this.mob)
var pathType2: PathType = this.getNodeType(this.mob, x, y, z)
if (pathType2 == PathType.WALKABLE && direction == Direction.UP) {
pathType2 = PathType.OPEN
@@ -190,7 +195,7 @@ class OmniPathNodeMaker : NodeEvaluator() {
if (y - i > mob.maxFallDistance) {
return this.getBlockedNode(x, i, z)
}
val pathType: PathType = this.getPathTypeOfMob(this.currentContext, x, i, z, this.mob)
val pathType: PathType = this.getNodeType(this.mob, x, i, z)
val f = mob.getPathfindingMalus(pathType)
if (pathType != PathType.OPEN) {
return if (f >= 0.0f) {
@@ -206,7 +211,7 @@ class OmniPathNodeMaker : NodeEvaluator() {
var node = node
--y
while (y > mob.level().minBuildHeight) {
val pathType: PathType = this.getPathTypeOfMob(this.currentContext, x, y, z, this.mob)
val pathType: PathType = this.getNodeType(this.mob, x, y, z)
if (pathType != PathType.WATER) {
return node
}
@@ -309,12 +314,12 @@ class OmniPathNodeMaker : NodeEvaluator() {
val upperMap = Maps.newEnumMap<Direction, Node?>(Direction::class.java)
val lowerMap = Maps.newEnumMap<Direction, Node?>(Direction::class.java)
val upIsOpen = mob.canFit(node.asBlockPos().above())
val d = getFloorLevel(BlockPos(node.x, node.y, node.z))
// Hitbox thing looks confusing but if the hitbox volume is more than like, 5, it starts getting pretty
// fucking slow to use the findAcceptedNodeWalk function
val strictlyWalkPathing = !canFly() && !mob.isInWater && mob.boundingBox.size < MAX_HITBOX_SIZE_FOR_WALKING
val doVerticalNeighbourChecks = (canFly() || mob.isInWater) && mob.boundingBox.size < MAX_HITBOX_FOR_VERTICAL_NEIGHBOURS
// Non-diagonal surroundings in 3d space
for (direction in Direction.entries) {
@@ -360,18 +365,15 @@ class OmniPathNodeMaker : NodeEvaluator() {
) ?: continue
}
// Skip 'inaccessible' diagonals if we're pathing from a blocked node since we're trying to get unstuck
if (isAccessibleDiagonal(
pathNode2,
map[direction],
map[direction2]
) || (node.type == PathType.BLOCKED && !pathNode2.closed)
) {
if (isAccessibleDiagonal(pathNode2, map[direction], map[direction2]) || (node.type == PathType.BLOCKED && !pathNode2.closed)) {
if (!isDiagonalValidForNonPokemon(node, map[direction], map[direction2]))
continue
successors[i++] = pathNode2
}
}
if (!strictlyWalkPathing) {
if (doVerticalNeighbourChecks) {
val upIsOpen = mob.canFit(node.asBlockPos().above())
// Upward non-diagonals
for (direction in Direction.Plane.HORIZONTAL.iterator()) {
var pathNode2: Node? = null
@@ -393,8 +395,7 @@ class OmniPathNodeMaker : NodeEvaluator() {
node.z + direction.stepZ + direction2.stepZ
) ?: continue
if (isAccessibleDiagonal(pathNode2, upperMap[direction], upperMap[direction2])
) {
if (isAccessibleDiagonal(pathNode2, upperMap[direction], upperMap[direction2])) {
successors[i++] = pathNode2
}
}
@@ -510,9 +511,13 @@ class OmniPathNodeMaker : NodeEvaluator() {
val below = BlockPos(x, y - 1, z)
val blockState = pfContext.getCachedBlockState(pos)
val blockStateBelow = pfContext.getCachedBlockState(below)
val isWater = blockState.fluidState.`is`(FluidTags.WATER)
val isLava = blockState.fluidState.`is`(FluidTags.LAVA)
val canBreatheUnderFluid = canSwimUnderFluid(blockState.fluidState)
val isFluid = !blockState.fluidState.isEmpty
val isWater = isFluid && blockState.fluidState.`is`(FluidTags.WATER)
val isLava = isFluid && !isWater && blockState.fluidState.`is`(FluidTags.LAVA)
val canBreatheUnderFluid = isFluid && canSwimUnderFluid(blockState.fluidState)
val belowSolid = blockStateBelow.isSolid
val solid = blockState.isSolid
/*
* There are a lot of commented out pairs of checks here. I was experimenting with how to simultaneously
@@ -525,70 +530,93 @@ class OmniPathNodeMaker : NodeEvaluator() {
* It seems to work now but nothing works forever so my other attempts are here for reference.
*/
var figuredNode = if (blockState.`is`(BlockTags.FENCES) || blockState.`is`(BlockTags.WALLS)) {
// var figuredNode = if (blockState.`is`(BlockTags.FENCES) || blockState.`is`(BlockTags.WALLS)) {
// PathType.FENCE
// } else if (blockStateBelow.block is FenceGateBlock) {
// if (blockStateBelow.getValue(FenceGateBlock.OPEN)) {
// PathType.OPEN
// } else {
// PathType.FENCE
// }
// } else if (isWater && !canSwimInWater() && canBreatheUnderFluid && blockState.isPathfindable(PathComputationType.LAND) ) {
// if (pfContext.getPathTypeFromState(pos.x, pos.y - 1, pos.z) == PathType.BLOCKED) {
// PathType.WALKABLE
// } else {
// PathType.OPEN
// }
// } else if (isLava && canSwimInLava()) {
// PathType.LAVA
// } else if (isWater) {
// PathType.WATER
// // This breaks lifting off from snow layers and carpets
//// } else if (blockState.canPathfindThrough(world, pos, NavigationType.LAND) && !blockStateBelow.canPathfindThrough(world, below, NavigationType.AIR)) {
//// PathType.WALKABLE
//// } else if (blockState.canPathfindThrough(world, pos, NavigationType.AIR) && blockStateBelow.canPathfindThrough(world, below, NavigationType.AIR)) {
//// PathType.OPEN
// } else if (blockState.`is`(BlockTags.TRAPDOORS) || blockState.`is`(Blocks.LILY_PAD) || blockState.`is`(Blocks.BIG_DRIPLEAF)) {
// PathType.TRAPDOOR
// } else if (blockState.isPathfindable(PathComputationType.LAND)) {
// PathType.OPEN
// // This breaks walking up slabs
//// } else if (blockState.canPathfindThrough(world, pos, NavigationType.LAND) && blockStateBelow.isSideSolid(world, below, Direction.UP, SideShapeType.FULL)) {
//// PathType.WALKABLE
//// } else if (blockState.canPathfindThrough(world, pos, NavigationType.AIR) && !blockStateBelow.isSideSolid(world, below, Direction.UP, SideShapeType.FULL)) {
//// PathType.OPEN
// } else if (blockState.`is`(BlockTags.LEAVES) && blockState.block == CobblemonBlocks.SACCHARINE_LEAVES && canPathThroughLeaves()) {
// return PathType.OPEN
// } else PathType.BLOCKED
// This is the 1.6.1 logic but with some optimizations
val figuredNode = if (belowSolid && (blockStateBelow.`is`(BlockTags.FENCES) || blockStateBelow.`is`(BlockTags.WALLS) || (blockStateBelow.block is FenceGateBlock && !blockStateBelow.getValue(FenceGateBlock.OPEN)))) {
PathType.FENCE
} else if (blockStateBelow.block is FenceGateBlock) {
if (blockStateBelow.getValue(FenceGateBlock.OPEN)) {
PathType.OPEN
} else {
PathType.FENCE
}
} else if (isWater && !canSwimInWater() && canBreatheUnderFluid && blockState.isPathfindable(PathComputationType.LAND) ) {
if (pfContext.getPathTypeFromState(pos.x, pos.y - 1, pos.z) == PathType.BLOCKED) {
PathType.WALKABLE
} else {
PathType.OPEN
}
} else if (isLava && canSwimInLava()) {
PathType.LAVA
} else if (isWater) {
} else if (isWater && belowSolid && !canSwimInWater() && canBreatheUnderFluid) {
PathType.WALKABLE
} else if (isWater || (isLava && canSwimInLava())) {
PathType.WATER
// This breaks lifting off from snow layers and carpets
// } else if (blockState.canPathfindThrough(world, pos, NavigationType.LAND) && !blockStateBelow.canPathfindThrough(world, below, NavigationType.AIR)) {
// PathType.WALKABLE
// } else if (blockState.canPathfindThrough(world, pos, NavigationType.AIR) && blockStateBelow.canPathfindThrough(world, below, NavigationType.AIR)) {
// PathType.OPEN
} else if (blockState.`is`(BlockTags.TRAPDOORS) || blockState.`is`(Blocks.LILY_PAD) || blockState.`is`(Blocks.BIG_DRIPLEAF)) {
PathType.TRAPDOOR
} else if (blockState.isPathfindable(PathComputationType.LAND)) {
} else if (!solid && belowSolid) {
PathType.WALKABLE
} else if (!solid && !belowSolid) {
PathType.OPEN
// This breaks walking up slabs
// } else if (blockState.canPathfindThrough(world, pos, NavigationType.LAND) && blockStateBelow.isSideSolid(world, below, Direction.UP, SideShapeType.FULL)) {
// PathType.WALKABLE
// } else if (blockState.canPathfindThrough(world, pos, NavigationType.AIR) && !blockStateBelow.isSideSolid(world, below, Direction.UP, SideShapeType.FULL)) {
// PathType.OPEN
} else if (blockState.`is`(BlockTags.LEAVES) && blockState.block == CobblemonBlocks.SACCHARINE_LEAVES && canPathThroughLeaves()) {
return PathType.OPEN
} else PathType.BLOCKED
if (figuredNode == PathType.OPEN && pos.y >= pfContext.level().getMinBuildHeight() + 1) {
val var10000: PathType = when (pfContext.getPathTypeFromState(pos.x, pos.y - 1, pos.z)) {
PathType.OPEN, PathType.LAVA, PathType.WALKABLE -> PathType.OPEN
PathType.DAMAGE_OTHER -> PathType.DAMAGE_OTHER
PathType.STICKY_HONEY -> PathType.STICKY_HONEY
PathType.POWDER_SNOW -> PathType.DANGER_POWDER_SNOW
PathType.DAMAGE_CAUTIOUS -> PathType.DAMAGE_CAUTIOUS
PathType.TRAPDOOR -> PathType.DANGER_TRAPDOOR
PathType.WATER -> if (canWalkOnWater()) PathType.WALKABLE else PathType.OPEN
PathType.FENCE -> {
if (canFly())
PathType.BLOCKED
else {
if (mob.boundingBox.size < MAX_HITBOX_SIZE_FOR_WALKING)
WalkNodeEvaluator.checkNeighbourBlocks(pfContext, pos.x, pos.y, pos.z, PathType.WALKABLE)
else
PathType.WALKABLE
}
}
else -> {
if (mob.boundingBox.size < MAX_HITBOX_SIZE_FOR_WALKING)
WalkNodeEvaluator.checkNeighbourBlocks(pfContext, pos.x, pos.y, pos.z, PathType.WALKABLE)
else
PathType.WALKABLE
}
}
figuredNode = var10000
}
// if (figuredNode == PathType.OPEN && pos.y >= pfContext.level().getMinBuildHeight() + 1) {
// val var10000: PathType = when (getPathType(pfContext, pos.x, pos.y - 1, pos.z)) {
// PathType.OPEN, PathType.LAVA, PathType.WALKABLE -> PathType.OPEN
// PathType.DAMAGE_OTHER -> PathType.DAMAGE_OTHER
// PathType.STICKY_HONEY -> PathType.STICKY_HONEY
// PathType.POWDER_SNOW -> PathType.DANGER_POWDER_SNOW
// PathType.DAMAGE_CAUTIOUS -> PathType.DAMAGE_CAUTIOUS
// PathType.TRAPDOOR -> PathType.DANGER_TRAPDOOR
// PathType.WATER -> if (canWalkOnWater()) PathType.WALKABLE else PathType.OPEN
// PathType.FENCE -> {
// if (canFly())
// PathType.BLOCKED
// else {
// if (mob.boundingBox.size < MAX_HITBOX_SIZE_FOR_WALKING)
// WalkNodeEvaluator.checkNeighbourBlocks(pfContext, pos.x, pos.y, pos.z, PathType.WALKABLE)
// else
// PathType.WALKABLE
// }
// }
// else -> {
// if (mob.boundingBox.size < MAX_HITBOX_SIZE_FOR_WALKING)
// WalkNodeEvaluator.checkNeighbourBlocks(pfContext, pos.x, pos.y, pos.z, PathType.WALKABLE)
// else
// PathType.WALKABLE
// }
// }
// figuredNode = var10000
// }
return adjustNodeType(pfContext, canOpenDoors, canPassDoors, below, figuredNode)
}
@@ -701,6 +729,11 @@ class OmniPathNodeMaker : NodeEvaluator() {
type: PathType
): PathType {
val blockState = pfContext.getCachedBlockState(pos)
if (blockState.isAir && type != PathType.RAIL) {
return PathType.OPEN
}
val block = blockState.block
if (blockState.`is`(Blocks.CACTUS) || blockState.`is`(Blocks.SWEET_BERRY_BUSH)) {
@@ -732,6 +765,7 @@ class OmniPathNodeMaker : NodeEvaluator() {
companion object {
const val MAX_HITBOX_SIZE_FOR_WALKING = 1.6F
const val MAX_HITBOX_FOR_VERTICAL_NEIGHBOURS = 2F
}
fun canWalk(): Boolean {
@@ -75,7 +75,6 @@ class SlowpokeTailRegrowthSpeciesFeature(var regrowthSeconds: Int = 0) : Species
pokemonEntity.pokemon.updateAspects()
pokemonEntity.pokemon.markFeatureDirty(this)
pokemonEntity.jitterDropItem(itemEntity)
pokemonEntity.playAnimation("cry")
}
override fun onSecondPassed(
@@ -77,13 +77,12 @@ object NPCClassAdapter : JsonDeserializer<NPCClass> {
obj.get("autoHealParty")?.let { npcClass.autoHealParty = it.asBoolean }
obj.get("randomizePartyOrder")?.let { npcClass.randomizePartyOrder = it.asBoolean }
obj.get("battleTheme")?.let { npcClass.battleTheme = it.asString.asIdentifierDefaultingNamespace() }
obj.get("ai")?.let { npcClass.behaviours.addAll(it.asJsonArray.map<JsonElement, BehaviourConfig> { ctx.deserialize(it, BehaviourConfig::class.java) }.toMutableList()) }
listOf("behaviours", "behaviors", "ai").firstNotNullOfOrNull { obj.get(it) }?.let { npcClass.behaviours.addAll(it.asJsonArray.map<JsonElement, BehaviourConfig> { ctx.deserialize(it, BehaviourConfig::class.java) }.toMutableList()) }
obj.get("isMovable")?.let { npcClass.isMovable = it.asBoolean }
obj.get("isInvulnerable")?.let { npcClass.isInvulnerable = it.asBoolean }
obj.get("isLeashable")?.let { npcClass.isLeashable = it.asBoolean }
obj.get("allowProjectileHits")?.let { npcClass.allowProjectileHits = it.asBoolean }
obj.get("hideNameTag")?.let { npcClass.hideNameTag = it.asBoolean }
return npcClass
}
}
@@ -79,6 +79,8 @@ internal data class PokemonP3(
other.rideStamina = this.rideStamina
other.currentFullness = this.currentFullness
other.interactionCooldowns = this.interactionCooldowns.toMutableMap()
other.recalculateCharacteristic()
other.updateAspects()
return other
}
@@ -200,34 +200,7 @@
"rotation": [-0.4165, -7.26605, 3.29302]
},
"stick": {
"rotation": [30, 45, 0],
"scale": 0.7
}
}
},
"animation.treecko.blink": {
"animation_length": 0.1667,
"bones": {
"eyelid_left": {
"position": {
"0.0": [0.1, 0, 0],
"0.125": [0.1, 0, 0],
"0.1667": {"pre": [0.1, 0, 0], "post": [0, 0, 0]}
}
},
"eyelid_right": {
"position": {
"0.0": [-0.1, 0, 0],
"0.125": [-0.1, 0, 0],
"0.1667": {"pre": [-0.1, 0, 0], "post": [0, 0, 0]}
}
},
"eye_right": {
"position": {
"0.0": [0.1, 0, 0],
"0.125": [0.1, 0, 0],
"0.1667": {"pre": [0.1, 0, 0], "post": [0, 0, 0]}
}
"rotation": [30, 45, 0]
}
}
},
@@ -727,6 +700,42 @@
"lerp_mode": "catmullrom"
}
}
},
"stick": {
"rotation": [30, 45, 0]
}
}
},
"animation.treecko.blink": {
"animation_length": 0.1667,
"bones": {
"eyelid_left": {
"position": {
"0.0": [0.1, 0, 0],
"0.125": [0.1, 0, 0],
"0.1667": {"pre": [0.1, 0, 0], "post": [0, 0, 0]}
}
},
"eyelid_right": {
"position": {
"0.0": [-0.1, 0, 0],
"0.125": [-0.1, 0, 0],
"0.1667": {"pre": [-0.1, 0, 0], "post": [0, 0, 0]}
}
},
"eye_right": {
"position": {
"0.0": [0.1, 0, 0],
"0.125": [0.1, 0, 0],
"0.1667": {"pre": [0.1, 0, 0], "post": [0, 0, 0]}
}
},
"eye_left": {
"position": {
"0.0": [-0.1, 0, 0],
"0.125": [-0.1, 0, 0],
"0.1667": {"pre": [-0.1, 0, 0], "post": [0, 0, 0]}
}
}
}
},
@@ -996,14 +1005,6 @@
"position": [-0.1, 0, 0]
}
}
},
"animation.treecko.cry": {
"animation_length": 1.2,
"sound_effects": {
"0.04": {
"effect": "pokemon.treecko.cry"
}
}
}
}
}
@@ -131,288 +131,7 @@
"rotation": [-7.5, 0, 0]
},
"stick": {
"rotation": [30, 40, 0],
"scale": 0.7
}
}
},
"animation.grovyle.test2": {
"loop": true,
"bones": {
"torso": {
"rotation": [-5, 0, 0]
},
"torso2": {
"rotation": [2.5, 0, 0]
},
"neck": {
"rotation": [20, 0, 0]
},
"head": {
"rotation": [10, 0, 0]
},
"leaf7": {
"rotation": [12.5, 0, 0]
},
"jaw": {
"rotation": [0, 0, 0]
},
"arm_left": {
"rotation": [-52.5, 5, 27.5]
},
"arm_left2": {
"rotation": [0, 65, 0]
},
"hand_left": {
"rotation": [2.38443, -0.75155, 49.98436]
},
"arm_leaves_left": {
"rotation": [-10, -17.5, 0]
},
"finger_front_left": {
"rotation": [0, 0, 2.5]
},
"finger_back_left": {
"rotation": [0, 0, 5]
},
"tail_left": {
"rotation": [-15, 12.5, -2.5]
},
"tail_left2": {
"rotation": [7.5, 0, 0]
},
"leg_left": {
"rotation": [0, -22.5, 0]
},
"leg_left2": {
"rotation": [0, 0, 0]
},
"foot_left": {
"rotation": [0, 0, 0]
},
"toe_inner_left": {
"rotation": [0, 10, 0]
},
"toe_outer_left": {
"rotation": [0, -10, 0]
},
"tail_right": {
"rotation": [-15, -12.5, 2.5]
},
"leg_right": {
"rotation": [0, 22.5, 0]
},
"leg_right2": {
"rotation": [0, 0, 0]
},
"foot_right": {
"rotation": [0, 0, 0]
},
"toe_inner_right": {
"rotation": [0, -10, 0]
},
"toe_outer_right": {
"rotation": [0, 10, 0]
},
"arm_right": {
"rotation": [-52.5, -5, -27.5]
},
"arm_right2": {
"rotation": [0, -65, 0]
},
"hand_right": {
"rotation": [2.38443, 0.75155, -49.98436]
},
"finger_front_right": {
"rotation": [0, 0, -2.5]
},
"finger_back_right": {
"rotation": [0, 0, -5]
},
"arm_leaves_right": {
"rotation": [-10, 17.5, 0]
},
"tail_right2": {
"rotation": [7.5, 0, 0]
},
"finger_front_left2": {
"rotation": [0, 0, 65]
},
"finger_back_left2": {
"rotation": [0, 0, 87.5]
},
"finger_front_right2": {
"rotation": [0, 0, -65]
},
"finger_back_right2": {
"rotation": [0, 0, -87.5]
}
}
},
"animation.grovyle.test3": {
"loop": true,
"bones": {
"torso": {
"rotation": [45.38165, -3.51814, -7.08167]
},
"torso2": {
"rotation": [-9.97857, 3.32943, 4.4913]
},
"neck": {
"rotation": [-20.01754, 2.34914, -0.85553]
},
"head": {
"rotation": [-10, 0, 0]
},
"leaf7": {
"rotation": [22.5, 0, 0]
},
"jaw": {
"rotation": [42.5, 0, 0]
},
"arm_left": {
"rotation": [-12.58328, 9.94037, 39.45082]
},
"arm_left2": {
"rotation": [0, 82.5, 0]
},
"hand_left": {
"rotation": [7.5, 0, 32.5]
},
"arm_leaves_left": {
"rotation": [-21.78282, -11.4487, 11.10461]
},
"finger_front_left": {
"rotation": [0, 0, 10]
},
"finger_back_left": {
"rotation": [0, 0, 22.5]
},
"tail_left": {
"rotation": [-17.99085, 11.53327, -4.85721]
},
"tail_left2": {
"rotation": [-15, 0, 0]
},
"leg_left": {
"rotation": [-37.5, -22.5, 0],
"position": [0.5, 0.5, -1]
},
"leg_left2": {
"rotation": [5, 0, 0]
},
"foot_left": {
"rotation": [0, 0, 0]
},
"toe_inner_left": {
"rotation": [10, 10, 0]
},
"toe_outer_left": {
"rotation": [20, -10, 0]
},
"tail_right": {
"rotation": [-28.32455, -16.15901, -4.25872]
},
"leg_right": {
"rotation": [38, 7.5, 2.5],
"position": [0, -0.5, -0.5]
},
"leg_right2": {
"rotation": [5, 0, 0]
},
"foot_right": {
"rotation": [27.5, 0, 0]
},
"toe_inner_right": {
"rotation": [-24.71447, -5.46269, -2.12052],
"position": [0, -0.1, 0.6]
},
"toe_outer_right": {
"rotation": [-24.71447, 5.46269, 2.12052],
"position": [0, -0.1, 0.6]
},
"arm_right": {
"rotation": [-14.26018, -29.40676, -34.54418]
},
"arm_right2": {
"rotation": [0, -70, 0]
},
"hand_right": {
"rotation": [7.5, 0, -32.5]
},
"finger_front_right": {
"rotation": [0, 0, -10]
},
"finger_back_right": {
"rotation": [0, 0, -22.5]
},
"arm_leaves_right": {
"rotation": [-26.39218, 18.05776, -8.74472]
},
"tail_right2": {
"rotation": [-15, 0, 0]
},
"body": {
"position": [0, 1.75, 0]
},
"leaf3": {
"rotation": [2.5, 0, 0]
},
"leaf4": {
"rotation": [7.5, 0, 0]
},
"leaf5": {
"rotation": [5, 0, 0]
},
"leaf6": {
"rotation": [5, 0, 0]
},
"toe_back_left": {
"rotation": [-5, 0, 0]
},
"toe_back_right": {
"rotation": [-10, 0, 0]
},
"toe_outer_left2": {
"rotation": [10, 0, 0]
},
"toe_inner_left2": {
"rotation": [10, 0, 0]
},
"toe_inner_right2": {
"rotation": [-45, 0, 0],
"position": [0, -0.55, 1.4]
},
"toe_outer_right2": {
"rotation": [-45, 0, 0],
"position": [0, -0.55, 1.4]
},
"arm_leaf_middle_left": {
"rotation": [15, 0, 0]
},
"arm_leaf_inner_left": {
"rotation": [5.76917, -1.99557, 14.05033]
},
"arm_leaf_outer_left": {
"rotation": [10, 0, 0]
},
"arm_leaf_middle_right": {
"rotation": [5, 0, 0]
},
"arm_leaf_inner_right": {
"rotation": [2.5, 0, 0]
},
"finger_front_left2": {
"rotation": [0, 0, 22.5]
},
"finger_back_left2": {
"rotation": [0, 0, 30]
},
"finger_front_right2": {
"rotation": [0, 0, -22.5]
},
"finger_back_right2": {
"rotation": [0, 0, -30]
"rotation": [30, 40, 0]
}
}
},
@@ -448,115 +167,6 @@
}
}
}
},
"animation.grovyle.happy": {
"loop": true,
"bones": {
"eye_left": {
"position": [-0.1, 0, 0]
},
"eye_right": {
"position": [0.1, 0, 0]
},
"eyelid_happy_left": {
"position": [0.1, 0, 0]
},
"eyelid_happy_right": {
"position": [-0.1, 0, 0]
}
}
},
"animation.grovyle.angry": {
"loop": true,
"bones": {
"eye_emote_right": {
"scale": [1, 1.5, 1]
},
"eye_brow_right": {
"position": [0, -0.3, 0]
},
"eye_brow_right2": {
"position": [0, 0.5, 0]
},
"eye_brow_left": {
"position": [0, -0.3, 0]
},
"eye_brow_left2": {
"position": [0, 0.5, 0]
},
"eye_emote_left": {
"scale": [1, 1.5, 1]
}
}
},
"animation.grovyle.sad": {
"loop": true,
"bones": {
"eye_brow_right": {
"position": [0, 0.5, 0]
},
"eye_brow_right2": {
"position": [0, -0.5, 0]
},
"eye_brow_left": {
"position": [0, 0.5, 0]
},
"eye_brow_left2": {
"position": [0, -0.5, 0]
}
}
},
"animation.grovyle.shocked": {
"loop": true,
"bones": {
"pupil_left": {
"position": [0, 0, -0.1],
"scale": [1, 0.5, 0.5]
},
"pupil_right": {
"position": [0, 0, -0.1],
"scale": [1, 0.5, 0.5]
},
"eye_emote_right": {
"position": [0, -0.5, 0],
"scale": [1, 2, 1]
},
"eye_brow_right": {
"position": [0, 0.3, 0]
},
"eye_brow_left": {
"position": [0, 0.3, 0]
},
"eye_emote_left": {
"position": [0, -0.5, 0],
"scale": [1, 2, 1]
}
}
},
"animation.grovyle.hurt": {
"loop": true,
"bones": {
"eye_left": {
"position": [-0.1, 0, 0]
},
"eye_right": {
"position": [0.1, 0, 0]
},
"eyelid_hurt_left": {
"position": [0.1, 0, 0]
},
"eyelid_hurt_right": {
"position": [-0.1, 0, 0]
}
}
},
"animation.grovyle.cry": {
"animation_length": 1.2,
"sound_effects": {
"0.04": {
"effect": "pokemon.grovyle.cry"
}
}
}
}
}
@@ -134,8 +134,7 @@
"rotation": [0, -5, 0]
},
"stick": {
"rotation": [16, 40, 0],
"scale": 0.7
"rotation": [16, 40, 0]
}
}
},
@@ -552,14 +551,6 @@
"position": [0, 0.3, 0]
}
}
},
"animation.sceptile.cry": {
"animation_length": 1.2,
"sound_effects": {
"0.04": {
"effect": "pokemon.sceptile.cry"
}
}
}
}
}
@@ -1002,14 +1002,6 @@
"rotation": ["-math.sin(q.anim_time*90*16/3-150)*8", 0, 0]
}
},
"sound_effects": {
"0.125": {
"effect": "animation.plumage_wing_flap_small_1"
},
"0.875": {
"effect": "animation.plumage_wing_flap_small_3"
}
},
"timeline": {
"0.125": "q.has_entity ? { q.sound('animation.plumage.wing_flap.small'); };",
"0.875": "q.has_entity ? { q.sound('animation.plumage.wing_flap.small'); };"
@@ -1466,245 +1466,6 @@
}
}
},
"animation.delphox.battle_idle2_wip": {
"loop": true,
"bones": {
"robe_left": {
"rotation": [28.44706, -2.60661, -11.92606],
"position": [1, 0, 0]
},
"robe_left2_rotation": {
"rotation": [-17.10967, 3.73172, 11.93845],
"position": [0, -1, 0]
},
"robe_left3_rotation": {
"rotation": [-7.5, 0, 0]
},
"body": {
"position": [0, -4, 0]
},
"torso": {
"rotation": [7.5, 0, 0],
"position": [0, 0, -0.5]
},
"waist": {
"rotation": [10, 0, 0]
},
"chest": {
"rotation": [7.5, 0, 0]
},
"arm_left": {
"rotation": [-22.98431, -46.52795, 43.07189]
},
"arm_left2": {
"rotation": [0, 102.5, 0]
},
"arm_left_ruff": {
"rotation": [22.5, 0, 0]
},
"arm_left_ruff2": {
"rotation": [12.5, 0, 0]
},
"finger_front_left": {
"rotation": [7.24677, 10.21235, 35.6484]
},
"finger_middle_left": {
"rotation": [0, 0, 32.5]
},
"finger_back_left": {
"rotation": [-0.95723, -2.30959, 67.5193]
},
"arm_right": {
"rotation": [-12.02654, -6.06267, -39.90871]
},
"arm_right2": {
"rotation": [0, -75, 0]
},
"arm_right_ruff": {
"rotation": [10, 0, 0]
},
"arm_right_ruff2": {
"rotation": [15, 0, 0]
},
"hand_right": {
"rotation": [-66.84879, -8.30424, 0.07837]
},
"finger_front_right": {
"rotation": [4.58217, -5.94383, -37.73802]
},
"finger_middle_right": {
"rotation": [0, 0, -72.5]
},
"finger_back_right": {
"rotation": [0, 0, -102.5]
},
"neck": {
"rotation": [12.39141, 0.17576, -1.61889]
},
"head": {
"rotation": [-22.48072, 0.95645, 2.30991]
},
"ear_left_ruff_main": {
"rotation": [0.18349, -15.01207, 0.11941]
},
"ear_ruff_top_left": {
"rotation": [0, -5, 0]
},
"ear_ruff_top_left2": {
"rotation": [0, -12.5, 12.5]
},
"ear_ruff_top_left3": {
"rotation": [0, -12.5, -15]
},
"ear_ruff_top_left4": {
"rotation": [1.6575, -12.39135, -7.67995]
},
"ear_ruff_middle_left": {
"rotation": [-5, 10, 0]
},
"ear_ruff_middle_left2": {
"rotation": [-4.19074, -27.0475, 13.8468]
},
"ear_ruff_middle_left3": {
"rotation": [-3.48264, -23.99186, -7.64423]
},
"ear_ruff_middle_left4": {
"rotation": [0, -17.5, -22.5]
},
"ear_ruff_bottom_left": {
"rotation": [0, -2.5, 15]
},
"ear_ruff_bottom_left2": {
"rotation": [-1.6575, -12.39135, 7.67995]
},
"ear_ruff_bottom_left3": {
"rotation": [2.20462, -12.3071, -10.23772]
},
"ear_right_ruff_main": {
"rotation": [0.18349, 15.01207, -0.11941]
},
"ear_ruff_top_right": {
"rotation": [0, 5, 0]
},
"ear_ruff_top_right2": {
"rotation": [0, 12.5, -12.5]
},
"ear_ruff_top_right3": {
"rotation": [0, 12.5, 15]
},
"ear_ruff_top_right4": {
"rotation": [1.6575, 12.39135, 7.67995]
},
"ear_ruff_middle_right": {
"rotation": [-5, -10, 0]
},
"ear_ruff_middle_right2": {
"rotation": [-4.19074, 27.0475, -13.8468]
},
"ear_ruff_middle_right3": {
"rotation": [-3.48264, 23.99186, 7.64423]
},
"ear_ruff_middle_right4": {
"rotation": [0, 17.5, 22.5]
},
"ear_ruff_bottom_right": {
"rotation": [0, 2.5, -15]
},
"ear_ruff_bottom_right2": {
"rotation": [-1.6575, 12.39135, -7.67995]
},
"ear_ruff_bottom_right3": {
"rotation": [2.20462, 12.3071, 10.23772]
},
"torso_fur_left2": {
"rotation": [10, 0, 0]
},
"torso_fur_left3": {
"rotation": [0, 0, -5]
},
"torso_fur_right2": {
"rotation": [0, 0, 0]
},
"tail": {
"rotation": [0, -5, 0]
},
"leg_left": {
"rotation": [0, 0, -2.5],
"position": [0, 0, 2]
},
"leg_left2": {
"rotation": [27.47282, 1.84293, -1.68956]
},
"leg_left3": {
"rotation": [-27.5, 0, 0]
},
"foot_left": {
"rotation": [-0.52095, -0.47356, 5.04797]
},
"leg_right": {
"rotation": [-37.47365, 1.5216, 1.98385]
},
"leg_right2": {
"rotation": [30, 0, 0]
},
"leg_right3": {
"rotation": [-16.47272, 1.76749, 1.76833]
},
"foot_right": {
"rotation": [24.89748, 3.11641, -4.51656]
},
"foot_right2": {
"rotation": [0, 0, 0]
},
"tail2": {
"rotation": [-17.56274, -4.76804, 1.50701]
},
"tail3": {
"rotation": [-22.5, 0, 0]
},
"tail4": {
"rotation": [25.18908, 6.79382, 3.18458]
},
"tail5": {
"rotation": [25.18908, 6.79382, 3.18458]
},
"tail6": {
"rotation": [30, 0, 0]
},
"tail7": {
"rotation": [-27.5, 0, 0]
},
"wand": {
"rotation": [115.18907, -6.79382, 69.31542],
"position": [7.5, -2, -2]
},
"fire": {
"rotation": [-24.24769, 6.27967, 13.64973]
},
"torso_cloak": {
"rotation": [0, 0, 0]
},
"ear_ruff_shock_left": {
"rotation": [0, -5, 0],
"scale": 0
},
"ear_ruff_shock_right": {
"rotation": [0, 5, 0],
"scale": 0
},
"robe_right": {
"rotation": [28.44706, -2.60661, -11.92606],
"position": [1, 0, 0]
},
"robe_right2_rotation": {
"rotation": [-17.10967, 3.73172, 11.93845],
"position": [0, -1, 0]
},
"robe_right3_rotation": {
"rotation": [-7.5, 0, 0]
}
}
},
"animation.delphox.blink": {
"animation_length": 0.1667,
"bones": {
@@ -1728,156 +1489,71 @@
}
}
},
"animation.delphox.surprise_hair": {
"animation_length": 0.0417,
"animation.delphox.cry": {
"animation_length": 1.75,
"bones": {
"ear_ruff_top_left": {
"rotation": [0.86996, -0.48705, -9.93723]
},
"ear_ruff_top_left2": {
"rotation": [0, 0, 0]
},
"ear_ruff_top_left3": {
"rotation": [0, 0, -10]
},
"ear_ruff_top_left4": {
"rotation": [0, 0, -25]
},
"ear_ruff_middle_left": {
"rotation": [0, 0, 7.5]
},
"ear_ruff_middle_left2": {
"rotation": [0, 0, -12.5]
},
"ear_ruff_middle_left3": {
"rotation": [-1.63786, -2.36303, 19.89762]
},
"ear_ruff_middle_left4": {
"rotation": [0, 0, -25]
},
"ear_ruff_bottom_left": {
"head": {
"rotation": {
"0.0": [0.1467, 0.51916, 9.98614],
"0.0417": [0.23463, 0.48579, 19.98647]
"0.0": [0, 0, 0],
"0.0833": [-2.5, 0, 0],
"0.125": [-2.24, 0, 0],
"0.2083": [-0.23, 0, 0],
"0.25": [0, 0, 0],
"0.3333": [-3.67, 0, 0],
"0.375": [-4, 0, 0],
"0.4167": [-3.7, 0, 0],
"0.5833": [0, 0, 0],
"0.625": [-0.21, 0, 0],
"0.7917": [-4.57, 0, 0],
"0.8333": [-5, 0, 0],
"0.9167": [-4.8, 0, 0],
"1.3333": [-0.2, 0, 0],
"1.4583": [0, 0, 0]
}
},
"ear_ruff_bottom_left2": {
"rotation": [-0.08929, 0.02949, 17.49954]
},
"ear_ruff_bottom_left3": {
"rotation": [0, 0, 2.5]
},
"ear_ruff_top_right": {
"rotation": [0.86996, 0.48705, 9.93723]
},
"ear_ruff_top_right2": {
"rotation": [0, 0, 0]
},
"ear_ruff_top_right3": {
"rotation": [0, 0, 10]
},
"ear_ruff_top_right4": {
"rotation": [0, 0, 25]
},
"ear_ruff_middle_right2": {
"rotation": [0, 0, 12.5]
},
"ear_ruff_middle_right3": {
"rotation": [-1.63786, 2.36303, -19.89762]
},
"ear_ruff_middle_right4": {
"rotation": [0, 0, 25]
},
"ear_ruff_middle_right": {
"rotation": [0, 0, -7.5]
},
"ear_ruff_bottom_right": {
"rotation": [0.1467, -0.51916, -9.98614]
},
"ear_ruff_bottom_right2": {
"rotation": [-0.08929, -0.02949, -17.49954]
},
"ear_ruff_bottom_right3": {
"rotation": [0, 0, -2.5]
},
"ear_ruff_shock_left_top": {
"rotation": [0, 0, -22.5]
},
"ear_ruff_shock_left_middle": {
"rotation": [0, 0, 7.5]
},
"ear_ruff_shock_left_bottom": {
"rotation": [0, 0, 25]
},
"ear_ruff_shock_right_top": {
"rotation": [0, 0, 22.5]
},
"ear_ruff_shock_right_middle": {
"rotation": [0, 0, -7.5]
},
"ear_ruff_shock_right_bottom": {
"rotation": [0, 0, -25]
}
}
},
"animation.delphox.shock": {
"loop": true,
"bones": {
"jaw": {
"rotation": [62.5, 0, 0]
"rotation": {
"0.0": [0, 0, 0],
"0.0417": [34.6, 0, 0],
"0.0833": [38, 0, 0],
"0.125": [20, 0, 0],
"0.1667": [15.4, 0, 0],
"0.2083": [20, 0, 0],
"0.2917": [49.07, 0, 0],
"0.3333": [54, 0, 0],
"0.375": [47.9, 0, 0],
"0.5": [15, 0, 0],
"0.5417": [11.9, 0, 0],
"0.5833": [15, 0, 0],
"0.7083": [62.35, 0, 0],
"0.75": [67.3, 0, 0],
"0.8333": [70.1, 0, 0],
"0.9167": [67.3, 0, 0],
"0.9583": [61.7, 0, 0],
"1.4167": [4.77, 0, 0],
"1.5417": [0, 0, 0]
}
},
"pupil_left": {
"scale": [0.6, 0.6, 1]
},
"pupil_right": {
"scale": [0.6, 0.6, 1]
"fangs": {
"position": {
"0.0": [0, 0, 0],
"0.0417": [0, -0.6, 0],
"0.125": [0, -0.6, 0],
"0.1667": [0, 0, 0],
"0.2083": [0, 0, 0],
"0.25": [0, -0.6, 0],
"0.4583": [0, -0.6, 0],
"0.5": [0, 0, 0],
"0.5833": [0, 0, 0],
"0.625": [0, -0.6, 0],
"1.25": [0, -0.6, 0],
"1.2917": [0, 0, 0]
}
}
}
},
"animation.delphox.angry": {
"loop": true,
"bones": {
"eye_angry_left": {
"position": [0.1, 0, -0.1]
},
"eye_angry_right": {
"position": [-0.1, 0, -0.1]
}
}
},
"animation.delphox.sad": {
"loop": true,
"bones": {
"eye_sad_left": {
"position": [0.1, 0, -0.1]
},
"eye_sad_right": {
"position": [-0.1, 0, -0.1]
}
}
},
"animation.delphox.happy": {
"loop": true,
"bones": {
"eyelid_happy_left": {
"position": [0.1, 0, -0.1]
},
"eyelid_happy_right": {
"position": [-0.1, 0, -0.1]
},
"jaw": {
"rotation": [62.5, 0, 0]
}
}
},
"animation.delphox.hurt": {
"loop": true,
"bones": {
"eyelid_recoil_left": {
"position": [0.1, 0, -0.1]
},
"eyelid_recoil_right": {
"position": [-0.1, 0, -0.1]
},
"sound_effects": {
"0.0": {
"effect": "pokemon.delphox.cry"
}
}
}
@@ -61,7 +61,6 @@
}
},
"animation.furfrou.cry": {
"loop": true,
"animation_length": 0.75,
"bones": {
"head": {
@@ -402,20 +402,6 @@
]
}
},
"sound_effects": {
"0.0833": {
"effect": "animation.plumage_wing_flap_small_3"
},
"0.5833": {
"effect": "animation.plumage_wing_flap_small_3"
},
"1.0833": {
"effect": "animation.plumage_wing_flap_small_3"
},
"1.5833": {
"effect": "animation.plumage_wing_flap_small_3"
}
},
"timeline": {
"0.0833": "q.has_entity ? { q.sound('animation.plumage.wing_flap.small'); };",
"0.5833": "q.has_entity ? { q.sound('animation.plumage.wing_flap.small'); };",
@@ -589,11 +575,6 @@
]
}
},
"sound_effects": {
"0.1667": {
"effect": "animation.plumage_wing_flap_small_3"
}
},
"timeline": {
"0.1667": "q.has_entity ? { q.sound('animation.plumage.wing_flap.small'); };"
}
@@ -1396,11 +1396,6 @@
}
}
},
"sound_effects": {
"0.0833": {
"effect": "animation.plumage_wing_flap_small_3"
}
},
"timeline": {
"0.0833": "q.has_entity ? { q.sound('animation.plumage.wing_flap.small'); };"
}
@@ -1530,17 +1525,6 @@
"rotation": [0, 0, "-(math.cos(q.anim_time*90*6-50)*-30)"]
}
},
"sound_effects": {
"0.0": {
"effect": "animation.plumage_wing_flap_small_3"
},
"0.6667": {
"effect": "animation.plumage_wing_flap_small_3"
},
"1.3333": {
"effect": "animation.plumage_wing_flap_small_3"
}
},
"timeline": {
"0.0": "q.has_entity ? { q.sound('animation.plumage.wing_flap.small'); };",
"0.6667": "q.has_entity ? { q.sound('animation.plumage.wing_flap.small'); };",
@@ -207,9 +207,9 @@
{
"name": "locator_item_hat",
"parent": "head_correction",
"pivot": [0, 21.5, -0.4],
"pivot": [0, 23.5, -0.4],
"locators": {
"item_hat": [0, 21.5, -0.4]
"item_hat": [0, 23.5, -0.4]
}
},
{
@@ -259,14 +259,7 @@
"parent": "jaw",
"pivot": [-2.8, 14.4, -2.8],
"cubes": [
{"origin": [-3.1, 14.4, -4.1], "size": [1, 2, 2], "pivot": [-1.6, 14.4, -2.1], "rotation": [45, 0, 0], "uv": [15, 52]},
{"origin": [-3.1, 15.4, -5.1], "size": [1, 2, 2], "pivot": [-1.6, 14.4, -2.1], "rotation": [45, 0, 0], "uv": [21, 52]},
{"origin": [-3.1, 17.4, -7.1], "size": [1, 2, 2], "pivot": [-1.6, 14.4, -2.1], "rotation": [45, 0, 0], "uv": [21, 56]},
{"origin": [-3.1, 16.4, -6.1], "size": [1, 2, 2], "pivot": [-1.6, 14.4, -2.1], "rotation": [45, 0, 0], "uv": [15, 56]},
{"origin": [-3.1, 19.4, -9.1], "size": [1, 2, 2], "pivot": [-1.6, 14.4, -2.1], "rotation": [45, 0, 0], "uv": [21, 60]},
{"origin": [-3.1, 18.4, -8.1], "size": [1, 2, 2], "pivot": [-1.6, 14.4, -2.1], "rotation": [45, 0, 0], "uv": [15, 60]},
{"origin": [-3.1, 20.4, -7.1], "size": [1, 2, 2], "pivot": [-1.6, 14.4, -2.1], "rotation": [45, 0, 0], "uv": [27, 52]},
{"origin": [-3.1, 22.4, -7.1], "size": [1, 1, 1], "pivot": [-1.6, 14.4, -2.1], "rotation": [45, 0, 0], "uv": [28, 56]}
{"origin": [-2.7, 14.7, -7.3], "size": [0, 2, 5], "uv": [1, 56]}
]
},
{
@@ -116,9 +116,9 @@
{
"name": "locator_item_hat",
"parent": "head_correction",
"pivot": [0, 31, -2],
"pivot": [0, 32, -2],
"locators": {
"item_hat": [0, 31, -2]
"item_hat": [0, 32, -2]
}
},
{
@@ -132,9 +132,9 @@
{
"name": "locator_item_face",
"parent": "head_correction",
"pivot": [0, 28.8, -5.5],
"pivot": [0, 29.55, -7.5],
"locators": {
"item_face": [0, 28.8, -5.5]
"item_face": [0, 29.55, -7.5]
}
},
{
@@ -175,15 +175,9 @@
{
"name": "stick",
"parent": "jaw",
"pivot": [-1.7, 26.9, -4.1],
"pivot": [-1.7, 26.9, -3.8],
"cubes": [
{"origin": [-2.2, 26.9, -5.4], "size": [1, 2, 2], "pivot": [-1.7, 26.9, -3.4], "rotation": [45, 0, 0], "uv": [40, 38]},
{"origin": [-2.2, 27.9, -6.4], "size": [1, 2, 2], "pivot": [-1.7, 26.9, -3.4], "rotation": [45, 0, 0], "uv": [40, 42]},
{"origin": [-2.2, 29.9, -8.4], "size": [1, 2, 2], "pivot": [-1.7, 26.9, -3.4], "rotation": [45, 0, 0], "uv": [44, 40]},
{"origin": [-2.2, 28.9, -7.4], "size": [1, 2, 2], "pivot": [-1.7, 26.9, -3.4], "rotation": [45, 0, 0], "uv": [44, 36]},
{"origin": [-2.2, 31.9, -10.4], "size": [1, 2, 2], "pivot": [-1.7, 26.9, -3.4], "rotation": [45, 0, 0], "uv": [48, 42]},
{"origin": [-2.2, 31.9, -7.4], "size": [1, 2, 2], "pivot": [-1.7, 26.9, -3.4], "rotation": [45, 0, 0], "uv": [40, 34]},
{"origin": [-2.2, 30.9, -9.4], "size": [1, 2, 2], "pivot": [-1.7, 26.9, -3.4], "rotation": [45, 0, 0], "uv": [48, 38]}
{"origin": [-1.7, 26.2, -8.4], "size": [0, 2, 5], "uv": [38, 29]}
]
},
{
@@ -128,9 +128,9 @@
{
"name": "locator_item_hat",
"parent": "head_correction",
"pivot": [0, 37, -3.75],
"pivot": [0, 38.75, -3.5],
"locators": {
"item_hat": [0, 37, -3.75]
"item_hat": [0, 38.75, -3.5]
}
},
{
@@ -144,9 +144,9 @@
{
"name": "locator_item_face",
"parent": "head_correction",
"pivot": [0, 36, -6.75],
"pivot": [0, 36, -7.75],
"locators": {
"item_face": [0, 36, -6.75]
"item_face": [0, 36, -7.75]
}
},
{
@@ -186,15 +186,9 @@
{
"name": "stick",
"parent": "jaw",
"pivot": [-1.8, 32.3, -5.6],
"pivot": [-1, 32.3, -5.95],
"cubes": [
{"origin": [-2.3, 32.3, -6.7], "size": [1, 2, 2], "pivot": [-1.8, 32.3, -4.7], "rotation": [45, 0, 0], "uv": [52, 35]},
{"origin": [-2.3, 33.3, -7.7], "size": [1, 2, 2], "pivot": [-1.8, 32.3, -4.7], "rotation": [45, 0, 0], "uv": [52, 39]},
{"origin": [-2.3, 35.3, -9.7], "size": [1, 2, 2], "pivot": [-1.8, 32.3, -4.7], "rotation": [45, 0, 0], "uv": [39, 52]},
{"origin": [-2.3, 34.3, -8.7], "size": [1, 2, 2], "pivot": [-1.8, 32.3, -4.7], "rotation": [45, 0, 0], "uv": [33, 52]},
{"origin": [-2.3, 37.3, -11.7], "size": [1, 2, 2], "pivot": [-1.8, 32.3, -4.7], "rotation": [45, 0, 0], "uv": [62, 58]},
{"origin": [-2.3, 34.3, -11.7], "size": [1, 2, 2], "pivot": [-1.8, 32.3, -4.7], "rotation": [45, 0, 0], "uv": [66, 60]},
{"origin": [-2.3, 36.3, -10.7], "size": [1, 2, 2], "pivot": [-1.8, 32.3, -4.7], "rotation": [45, 0, 0], "uv": [52, 26]}
{"origin": [-1.5, 31.2, -10.85], "size": [0, 2, 5], "uv": [61, 57]}
]
},
{
@@ -60,36 +60,27 @@
"parent": "hand_wand",
"pivot": [-21, 26.75, 0.5],
"cubes": [
{"origin": [-21.6, 34.25, 7], "size": [1, 2, 2], "pivot": [-21.6, 27.75, 0.5], "rotation": [45, 0, 0], "uv": [1, 71]},
{"origin": [-21.6, 33.25, 6], "size": [1, 2, 2], "pivot": [-21.6, 27.75, 0.5], "rotation": [45, 0, 0], "uv": [7, 71]},
{"origin": [-21.6, 31.25, 4], "size": [1, 2, 2], "pivot": [-21.6, 27.75, 0.5], "rotation": [45, 0, 0], "uv": [7, 75]},
{"origin": [-21.6, 30.25, 3], "size": [1, 2, 2], "pivot": [-21.6, 27.75, 0.5], "rotation": [45, 0, 0], "uv": [1, 79]},
{"origin": [-21.6, 32.25, 5], "size": [1, 2, 2], "pivot": [-21.6, 27.75, 0.5], "rotation": [45, 0, 0], "uv": [1, 75]},
{"origin": [-21.6, 26.25, -1], "size": [1, 2, 2], "pivot": [-21.6, 27.75, 0.5], "rotation": [45, 0, 0], "uv": [1, 87]},
{"origin": [-21.6, 24.25, -2], "size": [1, 3, 2], "pivot": [-21.6, 27.75, 0.5], "rotation": [45, 0, 0], "uv": [7, 91]},
{"origin": [-21.6, 23.25, -4], "size": [1, 3, 3], "pivot": [-21.6, 27.75, 0.5], "rotation": [45, 0, 0], "uv": [1, 95]},
{"origin": [-21.6, 22.25, -3], "size": [1, 1, 1], "pivot": [-21.6, 27.75, 0.5], "rotation": [45, 0, 0], "uv": [5, 71]},
{"origin": [-21.6, 21.25, -5], "size": [1, 2, 2], "pivot": [-21.6, 27.75, 0.5], "rotation": [45, 0, 0], "uv": [7, 87]},
{"origin": [-21.6, 20.25, -6], "size": [1, 2, 2], "pivot": [-21.6, 27.75, 0.5], "rotation": [45, 0, 0], "uv": [1, 91]},
{"origin": [-21.6, 24.25, -7], "size": [1, 2, 3], "pivot": [-21.6, 27.75, 0.5], "rotation": [45, 0, 0], "uv": [1, 101]},
{"origin": [-21.6, 27.25, 0], "size": [1, 2, 2], "pivot": [-21.6, 27.75, 0.5], "rotation": [45, 0, 0], "uv": [7, 83]},
{"origin": [-21.6, 29.25, 2], "size": [1, 2, 2], "pivot": [-21.6, 27.75, 0.5], "rotation": [45, 0, 0], "uv": [7, 79]},
{"origin": [-21.6, 28.25, 1], "size": [1, 2, 2], "pivot": [-21.6, 27.75, 0.5], "rotation": [45, 0, 0], "uv": [1, 83]},
{"origin": [-21.6, 30.25, 0], "size": [1, 3, 2], "pivot": [-21.7, 27.75, 0.5], "rotation": [45, 0, 0], "uv": [121, 122]},
{"origin": [-21.6, 29.25, -2], "size": [1, 2, 3], "pivot": [-21.7, 27.75, 0.5], "rotation": [45, 0, 0], "uv": [119, 117]},
{"origin": [-21.6, 31.25, -1], "size": [1, 1, 1], "pivot": [-21.7, 27.75, 0.5], "rotation": [45, 0, 0], "uv": [110, 125]},
{"origin": [-21.6, 26.25, 4], "size": [1, 1, 1], "pivot": [-21.7, 27.75, 0.5], "rotation": [45, 0, 0], "uv": [110, 123]},
{"origin": [-21.6, 25.25, 2], "size": [1, 3, 2], "pivot": [-21.7, 27.75, 0.5], "rotation": [45, 0, 0], "uv": [115, 122]},
{"origin": [-21.6, 27.25, 3], "size": [1, 2, 3], "pivot": [-21.7, 27.75, 0.5], "rotation": [45, 0, 0], "uv": [111, 117]}
{"origin": [-21.5, 22.75, -1], "size": [1, 5, 1], "pivot": [-21, 22.75, 0], "rotation": [150, 0, 0], "uv": [80, 8]},
{"origin": [-21.5, 18.25, 0], "size": [1, 19, 1], "inflate": 0.01, "uv": [124, 44]}
]
},
{
"name": "ribbon",
"parent": "wand",
"pivot": [-21, 31.5, 0.5],
"cubes": [
{"origin": [-21.5, 30, 0], "size": [1, 3, 1], "inflate": 0.15, "uv": [120, 124]},
{"origin": [-21, 29, 1.15], "size": [0, 5, 2], "uv": [124, 116]},
{"origin": [-21, 29, -2.15], "size": [0, 5, 2], "uv": [124, 121]}
]
},
{
"name": "fire",
"parent": "wand",
"pivot": [-21, 38.75, 0.5],
"pivot": [-21, 34.75, 0.5],
"cubes": [
{"origin": [-21, 38.75, -2.5], "size": [0, 10, 6], "uv": [88, 65]},
{"origin": [-24, 38.75, 0.5], "size": [6, 10, 0], "uv": [108, 71]}
{"origin": [-21, 34.75, -2.5], "size": [0, 10, 6], "uv": [88, 65]},
{"origin": [-24, 34.75, 0.5], "size": [6, 10, 0], "uv": [108, 71]}
]
},
{
@@ -874,25 +865,10 @@
"name": "stick_tail",
"parent": "tail",
"pivot": [0, 22.5, 9],
"rotation": [-10, 0, 0],
"rotation": [-12.5, 0, 0],
"cubes": [
{"origin": [-0.5, 22.35, 5], "size": [1, 3, 3], "pivot": [0.5, 26.85, 9.5], "rotation": [-140, 0, 0], "uv": [13, 87]},
{"origin": [-0.5, 23.35, 7], "size": [1, 3, 2], "pivot": [0.5, 26.85, 9.5], "rotation": [-140, 0, 0], "uv": [19, 83]},
{"origin": [-0.5, 25.35, 8], "size": [1, 2, 2], "pivot": [0.5, 26.85, 9.5], "rotation": [-140, 0, 0], "uv": [13, 79]},
{"origin": [-0.5, 23.35, 10], "size": [1, 3, 2], "pivot": [0.5, 26.85, 9.5], "rotation": [-140, 0, 0], "uv": [121, 111]},
{"origin": [-0.5, 28.35, 8], "size": [1, 3, 2], "pivot": [0.5, 26.85, 9.5], "rotation": [-140, 0, 0], "uv": [115, 111]},
{"origin": [-0.5, 25.35, 11], "size": [1, 2, 3], "pivot": [0.5, 26.85, 9.5], "rotation": [-140, 0, 0], "uv": [119, 106]},
{"origin": [-0.5, 27.35, 6], "size": [1, 2, 3], "pivot": [0.5, 26.85, 9.5], "rotation": [-140, 0, 0], "uv": [111, 106]},
{"origin": [-0.5, 24.35, 12], "size": [1, 1, 1], "pivot": [0.5, 26.85, 9.5], "rotation": [-140, 0, 0], "uv": [110, 114]},
{"origin": [-0.5, 29.35, 7], "size": [1, 1, 1], "pivot": [0.5, 26.85, 9.5], "rotation": [-140, 0, 0], "uv": [110, 112]},
{"origin": [-0.5, 26.35, 9], "size": [1, 2, 2], "pivot": [0.5, 26.85, 9.5], "rotation": [-140, 0, 0], "uv": [19, 75]},
{"origin": [-0.5, 27.35, 10], "size": [1, 2, 2], "pivot": [0.5, 26.85, 9.5], "rotation": [-140, 0, 0], "uv": [13, 75]},
{"origin": [-0.5, 28.35, 11], "size": [1, 2, 2], "pivot": [0.5, 26.85, 9.5], "rotation": [-140, 0, 0], "uv": [19, 71]},
{"origin": [-0.5, 29.35, 12], "size": [1, 2, 2], "pivot": [0.5, 26.85, 9.5], "rotation": [-140, 0, 0], "uv": [13, 71]},
{"origin": [-0.5, 23.35, 2], "size": [1, 2, 3], "pivot": [0.5, 26.85, 9.5], "rotation": [-140, 0, 0], "uv": [13, 93]},
{"origin": [-0.5, 20.35, 4], "size": [1, 2, 2], "pivot": [0.5, 26.85, 9.5], "rotation": [-140, 0, 0], "uv": [19, 79]},
{"origin": [-0.5, 19.35, 3], "size": [1, 2, 2], "pivot": [0.5, 26.85, 9.5], "rotation": [-140, 0, 0], "uv": [13, 83]},
{"origin": [-0.5, 21.35, 6], "size": [1, 1, 1], "pivot": [0.5, 26.85, 9.5], "rotation": [-140, 0, 0], "uv": [17, 71]}
{"origin": [-0.5, 30, 8.5], "size": [1, 5, 1], "pivot": [0, 30, 9.5], "rotation": [-30, 0, 0], "uv": [76, 8]},
{"origin": [-0.5, 20.5, 8.5], "size": [1, 14, 1], "inflate": 0.01, "uv": [120, 49]}
]
},
{
@@ -61,40 +61,64 @@
"pivot": [-25, 35.75, 0],
"rotation": [90, 0, 0],
"cubes": [
{"origin": [-25.5, 28.75, -0.5], "size": [1, 2, 2], "pivot": [-27.5, 28.75, -0.5], "rotation": [45, 0, 0], "uv": [236, 77]},
{"origin": [-25.5, 29.75, 0.5], "size": [1, 2, 2], "pivot": [-27.5, 28.75, -0.5], "rotation": [45, 0, 0], "uv": [242, 77]},
{"origin": [-25.5, 31.75, 2.5], "size": [1, 2, 2], "pivot": [-27.5, 28.75, -0.5], "rotation": [45, 0, 0], "uv": [242, 81]},
{"origin": [-25.5, 30.75, 1.5], "size": [1, 2, 2], "pivot": [-27.5, 28.75, -0.5], "rotation": [45, 0, 0], "uv": [236, 81]},
{"origin": [-25.5, 33.75, 4.5], "size": [1, 3, 2], "pivot": [-27.5, 28.75, -0.5], "rotation": [45, 0, 0], "uv": [248, 90]},
{"origin": [-25.5, 35.75, 5.5], "size": [1, 2, 2], "pivot": [-27.5, 28.75, -0.5], "rotation": [45, 0, 0], "uv": [236, 85]},
{"origin": [-25.5, 36.75, 6.5], "size": [1, 2, 2], "pivot": [-27.5, 28.75, -0.5], "rotation": [45, 0, 0], "uv": [242, 85]},
{"origin": [-25.5, 38.75, 8.5], "size": [1, 2, 2], "pivot": [-27.5, 28.75, -0.5], "rotation": [45, 0, 0], "uv": [242, 89]},
{"origin": [-25.5, 40.75, 9.5], "size": [1, 1, 1], "pivot": [-27, 28.75, -0.5], "rotation": [45, 0, 0], "uv": [240, 77]},
{"origin": [-25.5, 39.75, 10.5], "size": [1, 5, 2], "pivot": [-27.5, 28.75, -0.5], "rotation": [45, 0, 0], "uv": [236, 93]},
{"origin": [-25.5, 39.75, 12.5], "size": [1, 3, 1], "pivot": [-27.5, 28.75, -0.5], "rotation": [45, 0, 0], "uv": [248, 95]},
{"origin": [-25.5, 40.75, 13.5], "size": [1, 2, 2], "pivot": [-27.5, 28.75, -0.5], "rotation": [45, 0, 0], "uv": [248, 77]},
{"origin": [-25.5, 41.75, 14.5], "size": [1, 2, 2], "pivot": [-27.5, 28.75, -0.5], "rotation": [45, 0, 0], "uv": [248, 81]},
{"origin": [-25.5, 42.75, 15.5], "size": [1, 4, 2], "pivot": [-27.5, 28.75, -0.5], "rotation": [45, 0, 0], "uv": [242, 93]},
{"origin": [-25.5, 44.75, 11.5], "size": [1, 1, 1], "pivot": [-27, 28.75, -0.5], "rotation": [45, 0, 0], "uv": [246, 77]},
{"origin": [-25.5, 32.75, 3.5], "size": [1, 3, 2], "pivot": [-27.5, 28.75, -0.5], "rotation": [45, 0, 0], "uv": [248, 85]},
{"origin": [-25.5, 37.75, 7.5], "size": [1, 2, 2], "pivot": [-27.5, 28.75, -0.5], "rotation": [45, 0, 0], "uv": [236, 89]},
{"origin": [-25.5, 38.75, 4.5], "size": [1, 2, 3], "pivot": [-27.5, 28.75, -0.5], "rotation": [45, 0, 0], "uv": [247, 117]},
{"origin": [-25.5, 39.75, 6.5], "size": [1, 3, 2], "pivot": [-27.5, 28.75, -0.5], "rotation": [45, 0, 0], "uv": [249, 122]},
{"origin": [-25.5, 40.75, 5.5], "size": [1, 1, 1], "pivot": [-27.5, 28.75, -0.5], "rotation": [45, 0, 0], "uv": [238, 123]},
{"origin": [-25.5, 36.75, 9.5], "size": [1, 2, 3], "pivot": [-27.5, 28.75, -0.5], "rotation": [45, 0, 0], "uv": [239, 117]},
{"origin": [-25.5, 34.75, 8.5], "size": [1, 3, 2], "pivot": [-27.5, 28.75, -0.5], "rotation": [45, 0, 0], "uv": [243, 122]},
{"origin": [-25.5, 35.75, 10.5], "size": [1, 1, 1], "pivot": [-27.5, 28.75, -0.5], "rotation": [45, 0, 0], "uv": [238, 125]}
{"origin": [-25.5, 29.75, -0.5], "size": [1, 7, 1], "uv": [124, 27]}
]
},
{
"name": "wand2",
"parent": "wand",
"pivot": [-25, 36.75, 0.5],
"rotation": [10, 0, 0],
"cubes": [
{"origin": [-25.5, 36.75, -0.5], "size": [1, 10, 1], "inflate": 0.01, "uv": [124, 3]}
]
},
{
"name": "ribbon",
"parent": "wand2",
"pivot": [-25, 44.15, 0],
"cubes": [
{"origin": [-25.5, 42.65, -0.5], "size": [1, 3, 1], "inflate": 0.15, "uv": [252, 124]},
{"origin": [-25, 41.65, 0.65], "size": [0, 5, 2], "uv": [248, 117]},
{"origin": [-25, 41.65, -2.65], "size": [0, 5, 2], "uv": [252, 117]}
]
},
{
"name": "wand3",
"parent": "wand2",
"pivot": [-25, 46.75, -0.5],
"rotation": [-32.5, 0, 0],
"cubes": [
{"origin": [-25.5, 46.75, -0.5], "size": [1, 6, 1], "inflate": 0.02, "uv": [120, 31]}
]
},
{
"name": "wand_detail",
"parent": "wand3",
"pivot": [-25, 47.25, -0.5],
"rotation": [-27.5, 0, 0],
"cubes": [
{"origin": [-25.5, 47.25, -3.5], "size": [1, 1, 3], "uv": [120, 16]}
]
},
{
"name": "fire",
"parent": "wand",
"parent": "wand3",
"pivot": [-25, 52.25, 0],
"cubes": [
{"origin": [-25, 51.75, -3], "size": [0, 10, 6], "uv": [138, 108]},
{"origin": [-28, 51.75, 0], "size": [6, 10, 0], "uv": [156, 114]}
]
},
{
"name": "wand4",
"parent": "wand3",
"pivot": [-25, 52.75, 0.5],
"rotation": [52.5, 0, 0],
"cubes": [
{"origin": [-25.5, 52.75, -0.5], "size": [1, 3, 1], "uv": [124, 22]}
]
},
{
"name": "body",
"parent": "delphox",
@@ -30,7 +30,11 @@
"isBattle": false,
"isTouchingWater": false,
"animations": [
"q.look('head_ai')",
"q.look('neck', 0.5, 0.5, 15, -15, 30, -30)",
"q.look('neck2', 0.5, 0.5, 10, -10, 25, -25)",
"q.look('neck3', 0.45, 0.45, 10, -10, 20, -20)",
"q.look('neck4', 0.35, 0.35, 5, -5, 15, -15)",
"q.look('head', 0.4, 0.25, 5, -5, 10, -10)",
"q.bedrock('charizard', 'ground_idle')",
{
"condition": "q.is_holding_item",
@@ -44,7 +48,11 @@
"isBattle": true,
"isTouchingWater": false,
"animations": [
"q.look('head_ai')",
"q.look('neck', 0.5, 0.5, 15, -15, 30, -30)",
"q.look('neck2', 0.5, 0.5, 10, -10, 25, -25)",
"q.look('neck3', 0.45, 0.45, 10, -10, 20, -20)",
"q.look('neck4', 0.35, 0.35, 5, -5, 15, -15)",
"q.look('head', 0.4, 0.25, 5, -5, 10, -10)",
"q.bedrock('charizard', 'battle_idle')",
{
"condition": "q.is_holding_item",
@@ -63,7 +71,11 @@
"poseTypes": ["HOVER"],
"isBattle": true,
"animations": [
"q.look('head_ai')",
"q.look('neck', 0.5, 0.5, 15, -15, 30, -30)",
"q.look('neck2', 0.5, 0.5, 10, -10, 25, -25)",
"q.look('neck3', 0.45, 0.45, 10, -10, 20, -20)",
"q.look('neck4', 0.35, 0.35, 5, -5, 15, -15)",
"q.look('head', 0.4, 0.25, 5, -5, 10, -10)",
"q.bedrock('charizard', 'air_idle')",
{
"condition": "q.is_holding_item",
@@ -85,7 +97,11 @@
"poseTypes": ["STAND", "WALK"],
"condition": "q.in_air",
"animations": [
"q.look('head_ai')",
"q.look('neck', 0.5, 0.5, 15, -15, 30, -30)",
"q.look('neck2', 0.5, 0.5, 10, -10, 25, -25)",
"q.look('neck3', 0.45, 0.45, 10, -10, 20, -20)",
"q.look('neck4', 0.35, 0.35, 5, -5, 15, -15)",
"q.look('head', 0.4, 0.25, 5, -5, 10, -10)",
"q.bedrock('charizard', 'ride_jump')",
{
"condition": "q.is_holding_item",
@@ -104,7 +120,11 @@
"isTouchingWater": false,
"condition": "!q.in_air && q.is_sprinting",
"animations": [
"q.look('head_ai')",
"q.look('neck', 0.5, 0.5, 15, -15, 30, -30)",
"q.look('neck2', 0.5, 0.5, 10, -10, 25, -25)",
"q.look('neck3', 0.45, 0.45, 10, -10, 20, -20)",
"q.look('neck4', 0.35, 0.35, 5, -5, 15, -15)",
"q.look('head', 0.4, 0.25, 5, -5, 10, -10)",
"q.bedrock('charizard', 'ground_run')",
{
"condition": "q.is_ridden",
@@ -125,7 +145,11 @@
"isTouchingWater": false,
"condition": "!q.in_air",
"animations": [
"q.look('head_ai')",
"q.look('neck', 0.5, 0.5, 15, -15, 30, -30)",
"q.look('neck2', 0.5, 0.5, 10, -10, 25, -25)",
"q.look('neck3', 0.45, 0.45, 10, -10, 20, -20)",
"q.look('neck4', 0.35, 0.35, 5, -5, 15, -15)",
"q.look('head', 0.4, 0.25, 5, -5, 10, -10)",
"q.bedrock('charizard', 'ground_idle')",
{
"condition": "q.is_holding_item",
@@ -144,7 +168,11 @@
"isTouchingWater": false,
"condition": "!q.in_air && !q.is_sprinting",
"animations": [
"q.look('head_ai')",
"q.look('neck', 0.5, 0.5, 15, -15, 30, -30)",
"q.look('neck2', 0.5, 0.5, 10, -10, 25, -25)",
"q.look('neck3', 0.45, 0.45, 10, -10, 20, -20)",
"q.look('neck4', 0.35, 0.35, 5, -5, 15, -15)",
"q.look('head', 0.4, 0.25, 5, -5, 10, -10)",
"q.bedrock('charizard', 'ground_walk')",
{
"condition": "q.is_ridden",
@@ -163,7 +191,11 @@
"poseTypes": ["HOVER"],
"isBattle": false,
"animations": [
"q.look('head_ai')",
"q.look('neck', 0.5, 0.5, 15, -15, 30, -30)",
"q.look('neck2', 0.5, 0.5, 10, -10, 25, -25)",
"q.look('neck3', 0.45, 0.45, 10, -10, 20, -20)",
"q.look('neck4', 0.35, 0.35, 5, -5, 15, -15)",
"q.look('head', 0.4, 0.25, 5, -5, 10, -10)",
"q.bedrock('charizard', 'air_idle')",
{
"condition": "q.is_holding_item",
@@ -179,7 +211,11 @@
"isBattle": false,
"condition": "!q.is_gliding",
"animations": [
"q.look('head_ai')",
"q.look('neck', 0.5, 0.5, 15, -15, 30, -30)",
"q.look('neck2', 0.5, 0.5, 10, -10, 25, -25)",
"q.look('neck3', 0.45, 0.45, 10, -10, 20, -20)",
"q.look('neck4', 0.35, 0.35, 5, -5, 15, -15)",
"q.look('head', 0.4, 0.25, 5, -5, 10, -10)",
"q.bedrock('charizard', 'air_fly')",
{
"condition": "q.is_ridden",
@@ -200,7 +236,11 @@
"isBattle": false,
"condition": "q.is_gliding",
"animations": [
"q.look('head_ai')",
"q.look('neck', 0.5, 0.5, 15, -15, 30, -30)",
"q.look('neck2', 0.5, 0.5, 10, -10, 25, -25)",
"q.look('neck3', 0.45, 0.45, 10, -10, 20, -20)",
"q.look('neck4', 0.35, 0.35, 5, -5, 15, -15)",
"q.look('head', 0.4, 0.25, 5, -5, 10, -10)",
"q.bedrock('charizard', 'air_glide')",
"q.bedrock('charizard', 'ride_air_dive')",
{
@@ -221,7 +261,11 @@
"isTouchingWater": true,
"isUnderWater": false,
"animations": [
"q.look('head_ai')",
"q.look('neck', 0.5, 0.5, 15, -15, 30, -30)",
"q.look('neck2', 0.5, 0.5, 10, -10, 25, -25)",
"q.look('neck3', 0.45, 0.45, 10, -10, 20, -20)",
"q.look('neck4', 0.35, 0.35, 5, -5, 15, -15)",
"q.look('head', 0.4, 0.25, 5, -5, 10, -10)",
"q.bedrock('charizard', 'surfacewater_idle')",
{
"condition": "q.is_holding_item",
@@ -243,7 +287,11 @@
"isTouchingWater": true,
"isUnderWater": false,
"animations": [
"q.look('head_ai')",
"q.look('neck', 0.5, 0.5, 15, -15, 30, -30)",
"q.look('neck2', 0.5, 0.5, 10, -10, 25, -25)",
"q.look('neck3', 0.45, 0.45, 10, -10, 20, -20)",
"q.look('neck4', 0.35, 0.35, 5, -5, 15, -15)",
"q.look('head', 0.4, 0.25, 5, -5, 10, -10)",
"q.bedrock('charizard', 'surfacewater_swim')",
{
"condition": "q.is_holding_item",
@@ -31,7 +31,7 @@
"q.bedrock_quirk('aerodactyl', 'blink')"
],
"namedAnimations": {
"cry": "q.bedrock_primary('aerodactyl', 'battle_cry', q.curve('symmetrical_wide'))"
"cry": "q.bedrock_stateful('aerodactyl', 'battle_cry', q.curve('symmetrical_wide'))"
}
},
"battle-flying": {
@@ -111,6 +111,7 @@
"poseTypes": ["FLY"],
"condition": "!q.is_gliding",
"animations": [
"q.pitch_tilt('body')",
"q.look('neck', 0.5, 1, 10, -10, 20, -20)",
"q.look('head', 1, 0.25, 10, -15, 5, -5)",
"q.bedrock('dragonite', 'air_glide')",
@@ -158,6 +159,7 @@
"isUnderWater": true,
"poseTypes": ["SWIM"],
"animations": [
"q.pitch_tilt('body')",
"q.look('neck', 0.5, 1, 10, -10, 20, -20)",
"q.look('head', 1, 0.25, 10, -15, 5, -5)",
"q.bedrock('dragonite', 'water_swim')"
@@ -1,6 +1,6 @@
{
"portraitScale": 1.17,
"portraitTranslation": [-0.69, 0.99, 0],
"portraitScale": 1.39,
"portraitTranslation": [-0.84, 1.25, 0],
"profileScale": 0.48,
"profileTranslation": [0, 0.96, 0],
"rootBone": "swampert",
@@ -65,7 +65,7 @@
"transformedParts": [
{
"part": "body",
"position": [9, -1, 0]
"position": [9, 5, 0]
}
]
},
@@ -83,7 +83,7 @@
"transformedParts": [
{
"part": "body",
"position": [-9, -1, 0]
"position": [-9, 5, 0]
}
]
}
@@ -1,6 +1,6 @@
{
"portraitScale": 1.22,
"portraitTranslation": [-1.56, 1.41, 0],
"portraitTranslation": [-1.68, 1.23, 0],
"profileScale": 0.35,
"profileTranslation": [0, 1.15, 0],
"rootBone": "salamence",
@@ -62,7 +62,7 @@
"transformedParts": [
{
"part": "body",
"position": [10, 0, 0]
"position": [5, 0, 0]
}
]
},
@@ -73,7 +73,7 @@
"transformedParts": [
{
"part": "body",
"position": [-10, 0, 0]
"position": [-5, 0, 0]
}
]
}
@@ -36,6 +36,28 @@
"q.bedrock('tynamo', 'ground_idle')"
],
"quirks": ["q.bedrock_quirk('tynamo', 'blink')"]
},
"shoulder_left": {
"poseTypes": ["SHOULDER_LEFT"],
"animations": ["q.look('head')", "q.bedrock('tynamo', 'ground_idle')"],
"quirks": ["q.bedrock_quirk('tynamo', 'blink')"],
"transformedParts": [
{
"part": "body",
"position": [1, 0, 0]
}
]
},
"shoulder_right": {
"poseTypes": ["SHOULDER_RIGHT"],
"animations": ["q.look('head')", "q.bedrock('tynamo', 'ground_idle')"],
"quirks": ["q.bedrock_quirk('tynamo', 'blink')"],
"transformedParts": [
{
"part": "body",
"position": [-1, 0, 0]
}
]
}
}
}
@@ -92,7 +92,7 @@
"SLEEP"
],
"animations": [
"q.bedrock('tyrantrum', 'sleep')"
"q.bedrock('tyrantrum', 'ground_idle')"
]
}
}
@@ -24,7 +24,9 @@
"poseTypes": ["STAND", "FLOAT", "NONE", "PORTRAIT", "PROFILE"],
"condition": "q.has_entity ? !q.in_air : 1.0",
"animations": [
"q.look('head')",
"q.look('neck', 0.5, 0.5, 15, -15, 30, -30)",
"q.look('neck2', 0.5, 0.5, 10, -10, 25, -25)",
"q.look('head', 0.4, 0.25, 5, -5, 10, -10)",
"q.bedrock('mudsdale', 'ground_idle')",
"q.bedrock_stateful('mudsdale', 'blink')"
],
@@ -40,7 +42,9 @@
"condition": "q.in_air",
"isBattle": false,
"animations": [
"q.look('head')",
"q.look('neck', 0.5, 0.5, 15, -15, 30, -30)",
"q.look('neck2', 0.5, 0.5, 10, -10, 25, -25)",
"q.look('head', 0.4, 0.25, 5, -5, 10, -10)",
"q.bedrock('mudsdale', 'ride_jump')",
"q.bedrock('mudsdale', 'ride_ground_run')",
"q.bedrock_stateful('mudsdale', 'blink')"
@@ -53,7 +57,9 @@
"poseTypes": ["WALK", "SWIM"],
"condition": "!q.is_sprinting",
"animations": [
"q.look('head')",
"q.look('neck', 0.5, 0.5, 15, -15, 30, -30)",
"q.look('neck2', 0.5, 0.5, 10, -10, 25, -25)",
"q.look('head', 0.4, 0.25, 5, -5, 10, -10)",
"q.bedrock('mudsdale', 'ground_walk')",
"q.bedrock_stateful('mudsdale', 'blink')",
{
@@ -67,7 +73,9 @@
"poseTypes": ["WALK", "SWIM"],
"condition": "q.is_sprinting",
"animations": [
"q.look('head')",
"q.look('neck', 0.5, 0.5, 15, -15, 30, -30)",
"q.look('neck2', 0.5, 0.5, 10, -10, 25, -25)",
"q.look('head', 0.4, 0.25, 5, -5, 10, -10)",
"q.bedrock('mudsdale', 'ground_run')",
"q.bedrock_stateful('mudsdale', 'blink')",
{
@@ -1,12 +1,11 @@
{
"portraitScale": 1.5,
"portraitTranslation": [-0.09, 0.5, 0],
"portraitScale": 1.56,
"portraitTranslation": [-0.02, 0.52, 0],
"profileScale": 0.51,
"profileTranslation": [0.0, 1.0, 0.0],
"rootBone": "tadbulb",
"animations": {
"faint": "q.bedrock_primary('tadbulb', 'faint', q.curve('one'))",
"cry": "q.bedrock_stateful('tadbulb', 'cry')",
"recoil": "q.bedrock_stateful('tadbulb', 'recoil')",
"physical": "q.bedrock_primary('tadbulb', 'physical', q.curve('symmetrical_wide'))",
"special": "q.bedrock_primary('tadbulb', 'special', q.curve('symmetrical'))",
@@ -14,7 +13,7 @@
},
"poses": {
"battle-standing": {
"poseTypes": ["STAND"],
"poseTypes": ["STAND", "HOVER", "FLOAT"],
"isBattle": true,
"animations": [
"q.look('head')",
@@ -28,7 +27,7 @@
}
},
"standing": {
"poseTypes": ["STAND", "NONE"],
"poseTypes": ["STAND", "HOVER", "FLOAT", "NONE", "PORTRAIT", "PROFILE"],
"isBattle": false,
"animations": [
"q.look('head')",
@@ -37,8 +36,7 @@
"quirks": ["q.bedrock_quirk('tadbulb', 'blink')"]
},
"walking": {
"poseTypes": ["WALK", "SWIM"],
"isBattle": false,
"poseTypes": ["WALK"],
"condition": "!q.is_sprinting",
"animations": [
"q.look('head')",
@@ -47,8 +45,7 @@
"quirks": ["q.bedrock_quirk('tadbulb', 'blink')"]
},
"running": {
"poseTypes": ["WALK", "SWIM"],
"isBattle": false,
"poseTypes": ["WALK"],
"condition": "q.is_sprinting",
"animations": [
"q.look('head')",
@@ -56,12 +53,42 @@
],
"quirks": ["q.bedrock_quirk('tadbulb', 'blink')"]
},
"fly": {
"poseTypes": ["WALK", "FLY", "SWIM"],
"animations": [
"q.pitch_tilt('body')",
"q.bedrock('tadbulb', 'ground_walk')"
],
"quirks": ["q.bedrock_quirk('tadbulb', 'blink')"]
},
"sleep": {
"poseTypes": ["SLEEP"],
"namedAnimations": {
"cry": "q.bedrock_stateful('dummy', 'cry')"
},
"animations": ["q.bedrock('tadbulb', 'sleep')"]
},
"shoulder_left": {
"poseTypes": ["SHOULDER_LEFT"],
"animations": ["q.look('head')", "q.bedrock('tadbulb', 'ground_idle')"],
"quirks": ["q.bedrock_quirk('tadbulb', 'blink')"],
"transformedParts": [
{
"part": "body",
"position": [3, 0, 0]
}
]
},
"shoulder_right": {
"poseTypes": ["SHOULDER_RIGHT"],
"animations": ["q.look('head')", "q.bedrock('tadbulb', 'ground_idle')"],
"quirks": ["q.bedrock_quirk('tadbulb', 'blink')"],
"transformedParts": [
{
"part": "body",
"position": [-3, 0, 0]
}
]
}
}
}
@@ -6,7 +6,6 @@
"rootBone": "bellibolt",
"animations": {
"faint": "q.bedrock_primary('bellibolt', 'faint', q.curve('one'))",
"cry": "q.bedrock_stateful('bellibolt', 'cry')",
"recoil": "q.bedrock_stateful('bellibolt', 'recoil')",
"physical": "q.bedrock_primary('bellibolt', 'physical', q.curve('symmetrical_wide'))",
"special": "q.bedrock_primary('bellibolt', 'special', q.curve('symmetrical_wide'))",
@@ -5,6 +5,10 @@
{
"aspects": ["female"],
"model": "cobblemon:combee_female.geo"
},
{
"aspects": ["shiny", "female"],
"texture": "cobblemon:textures/pokemon/0415_combee/combee_shiny.png"
}
]
}
@@ -7,11 +7,26 @@
"poser": "cobblemon:braixen",
"model": "cobblemon:braixen.geo",
"texture": "cobblemon:textures/pokemon/0654_braixen/braixen.png",
"layers": []
"layers": [
{
"name": "emissive",
"emissive": true,
"texture": "cobblemon:textures/pokemon/0654_braixen/braixen_emissive.png",
"translucent": true
}
]
},
{
"aspects": ["shiny"],
"texture": "cobblemon:textures/pokemon/0654_braixen/braixen_shiny.png"
"texture": "cobblemon:textures/pokemon/0654_braixen/braixen_shiny.png",
"layers": [
{
"name": "emissive",
"emissive": true,
"texture": "cobblemon:textures/pokemon/0654_braixen/braixen_emissive_shiny.png",
"translucent": true
}
]
},
{
"aspects": ["cosmetic_item-silk_scarf"],
@@ -7,11 +7,26 @@
"poser": "cobblemon:delphox",
"model": "cobblemon:delphox.geo",
"texture": "cobblemon:textures/pokemon/0655_delphox/delphox.png",
"layers": []
"layers": [
{
"name": "emissive",
"emissive": true,
"texture": "cobblemon:textures/pokemon/0655_delphox/delphox_emissive.png",
"translucent": true
}
]
},
{
"aspects": ["shiny"],
"texture": "cobblemon:textures/pokemon/0655_delphox/delphox_shiny.png"
"texture": "cobblemon:textures/pokemon/0655_delphox/delphox_shiny.png",
"layers": [
{
"name": "emissive",
"emissive": true,
"texture": "cobblemon:textures/pokemon/0655_delphox/delphox_emissive_shiny.png",
"translucent": true
}
]
},
{
"aspects": ["cosmetic_item-silk_scarf"],
@@ -234,7 +234,7 @@
"item.cobblemon.soothe_bell": "Bell o' soothing",
"item.cobblemon.spell_tag": "Voodoo page",
"item.cobblemon.sticky_barb": "Sticky barb",
"item.cobblemon.terrain_extender": "Bottle o' terrains",
"item.cobblemon.terrain_extender": "Bottle o' islands",
"item.cobblemon.throat_spray": "Oral spray",
"item.cobblemon.twisted_spoon": "Useless spoon",
"item.cobblemon.utility_umbrella": "Weather'd parasol",
@@ -337,8 +337,8 @@
"item.cobblemon.medicinal_brew": "Brew o' potions",
"item.cobblemon.revive": "Candy o' resurrection",
"item.cobblemon.max_revive": "Candy o' total resurrection",
"item.cobblemon.pp_up": "Syrup o' PP increase",
"item.cobblemon.pp_max": "Syrup o' PP limit",
"item.cobblemon.pp_up": "Syrup o' pp increase",
"item.cobblemon.pp_max": "Syrup o' pp limit",
"item.cobblemon.x_attack": "Power pills",
"item.cobblemon.x_defence": "Strength pills",
"item.cobblemon.x_accuracy": "Shot rate pills",
@@ -515,7 +515,7 @@
"cobblemon.ui.starter.chooseyourstarter": "Press %1$s to pick a first mate 'nd adventure!",
"cobblemon.ui.moves": "Actions",
"cobblemon.ui.moves.switch": "Switch actions",
"cobblemon.ui.moves.pp": "%1$sPP",
"cobblemon.ui.moves.pp": "%1$spp",
"cobblemon.ui.stats": "Values",
"cobblemon.ui.stats.stat": "Value",
"cobblemon.ui.stats.base": "Core",
@@ -682,7 +682,7 @@
"item.cobblemon.hondew_berry": "Hondew berry",
"item.cobblemon.hondew_berry.tooltip": "Can't be eaten directly",
"item.cobblemon.hopo_berry": "Hopo berry",
"item.cobblemon.hopo_berry.tooltip": "Can't be eaten directly",
"item.cobblemon.hopo_berry.tooltip": "Restores 10 pp to a skill when fed t' a monster",
"item.cobblemon.iapapa_berry": "Iapapa berry",
"item.cobblemon.iapapa_berry.tooltip": "Restores a third o' a monster's health, confuses those with lower'd Strength, eaten at quarter health",
"item.cobblemon.jaboca_berry": "Jaboca berry",
@@ -698,7 +698,7 @@
"item.cobblemon.lansat_berry": "Lansat berry",
"item.cobblemon.lansat_berry.tooltip": "Eater gains energy o' focus at quarter health",
"item.cobblemon.leppa_berry": "Leppa berry",
"item.cobblemon.leppa_berry.tooltip": "Restores 10PP to an action",
"item.cobblemon.leppa_berry.tooltip": "Restores 10 pp to a skill when it hits 0",
"item.cobblemon.liechi_berry": "Liechi berry",
"item.cobblemon.liechi_berry.tooltip": "Raises eater's Power by a stage, eaten at quarter health",
"item.cobblemon.lum_berry": "Lum berry",
@@ -880,7 +880,7 @@
"advancements.cobblemon.obtain_fossil": "Consult th' fossil",
"advancements.cobblemon.obtain_fossil.description": "Unearth a fossil from ancient times",
"advancements.cobblemon.evolve_gholdengo_netherite": "Bury thee in th' treasure o' Davy Jones",
"advancements.cobblemon.evolve_gholdengo_netherite.description": "Transmogrify a plunderin' devil into a Blackbeard's clobber-coated Gholdengo",
"advancements.cobblemon.evolve_gholdengo_netherite.description": "Transmogrify a Gimmighoul into a Blackbeard's clobber-coated Gholdengo",
"advancements.cobblemon.resurrect_pokemon": "Dead men tell some tales",
"advancements.cobblemon.resurrect_pokemon.description": "Use a machine o' resurrection to bring a monster back from beyond death",
"advancements.cobblemon.obtain_tumblestone": "Tumbl'd rocks abound",
@@ -1015,7 +1015,7 @@
"cobblemon.battle.fieldstart.mistyterrain": "Mist swirls around th' area!",
"cobblemon.battle.fieldstart.mudsport": "Thund'r elementals be weakened!",
"cobblemon.battle.fieldstart.psychicterrain": "Th' battlefield got weird!",
"cobblemon.battle.fieldstart.trickroom": "%1$s twisted th' dimensions!",
"cobblemon.battle.fieldstart.trickroom": "%1$s twist'd th' dimensions!",
"cobblemon.battle.fieldstart.watersport": "Flames be weakened!",
"cobblemon.battle.fieldstart.wonderroom": "Ye strength 'nd resilience be swapped!",
"cobblemon.battle.fieldend.electricterrain": "Th' charge disappeared from th' battlefield.",
@@ -1025,7 +1025,7 @@
"cobblemon.battle.fieldend.mistyterrain": "Th' mist disappeared from th' battlefield.",
"cobblemon.battle.fieldend.mudsport": "Th' effects of mud sport have faded.",
"cobblemon.battle.fieldend.psychicterrain": "Th' weirdness disappeared from th' battlefield!",
"cobblemon.battle.fieldend.trickroom": "Th' twisted dimensions returned to normal!",
"cobblemon.battle.fieldend.trickroom": "Th' twist'd dimensions returned to normal!",
"cobblemon.battle.fieldend.watersport": "Th' effects of water sport have faded.",
"cobblemon.battle.fieldend.wonderroom": "Wonder room wore off, 'nd strength and resilience returned to normal!",
"cobblemon.battle.fieldactivate.perishsong": "All monsters tha' heard th' siren song will fall in three rounds!",
@@ -1087,7 +1087,7 @@
"cobblemon.battle.activate.stickyweb": "%1$s be stuck in th' web!",
"cobblemon.battle.activate.courtchange": "%1$s swapped th' battle effects affecting each side o' th' field!",
"cobblemon.battle.activate.guardsplit": "%1$s shared their guard with th' target!",
"cobblemon.battle.activate.spite": "Th' PP o' %1$s's %2$s reduced by %3$s!",
"cobblemon.battle.activate.spite": "Th' pp o' %1$s's %2$s reduced by %3$s!",
"cobblemon.battle.activate.lockon": "%1$s locked sights on %2$s!",
"cobblemon.battle.activate.protosynthesis": "Th' scorchin' sun trigger'd %1$s's protosynthesis!",
"cobblemon.battle.activate.bide": "%1$s be storin' power!",
@@ -1122,7 +1122,7 @@
"cobblemon.battle.activate.quickguard": "%1$s be protected by their hasty guard",
"cobblemon.battle.activate.safeguard": "%1$s be shield'd by th' veils!",
"cobblemon.battle.activate.sketch": "%1$s sketch'd %3$s!",
"cobblemon.battle.activate.grudge": "%1$s's %3$s be outta PP due to th' grudge!",
"cobblemon.battle.activate.grudge": "%1$s's %3$s be outta pp due to th' grudge!",
"cobblemon.battle.activate.speedswap": "%1$s swapped speeds with th' target!",
"cobblemon.battle.activate.switcheroo": "%1$s traded loot!",
"cobblemon.battle.activate.skillswap": "%1$s swapp'd skills!",
@@ -1442,11 +1442,11 @@
"gamerule.doShinyStarters": "First mates will be sparkled",
"gamerule.doPokemonLoot": "Drop monster loot",
"cobblemon.command.checkspawns.invalid-bucket": "Invalid spawn bucket",
"cobblemon.command.checkspawns.spawns": "Manifest o' spawns:",
"cobblemon.command.checkspawns.spawns": "Manifest o' spawns",
"cobblemon.command.checkspawns.nothing": "Nothing be able to spawn here at time.",
"cobblemon.interaction.ev.add": "%1$s gained %3$s %2$s EVs!",
"cobblemon.interaction.ev.deduct": "%1$s lost %3$s %2$s EVs!",
"cobblemon.interaction.pp.restore": "Ye restore th' PP o' %1$s.",
"cobblemon.interaction.pp.restore": "Ye restore th' pp o' %1$s.",
"cobblemon.interaction.friendsip.add": "%1$s grows closer t' ye!",
"cobblemon.interaction.status.cure": "%1$s be cured of th' status conditions!",
"cobblemon.interaction.hp.heal": "%1$s restored a bit o' health!",
@@ -1534,19 +1534,6 @@
"tag.item.cobblemon.feathers": "Feathers",
"tag.item.cobblemon.ability_changers": "Changers o' traits",
"tag.item.cobblemon.held.is_friendship_booster": "Boosters o' allydom",
"cobblemon.species.pikachu.name": "Rat o' ash",
"cobblemon.species.magnemite.name": "Mite o' mag",
"cobblemon.species.magneton.name": "Ton o' mag",
"cobblemon.species.eevee.name": "Cat o' nine",
"cobblemon.species.vaporeon.name": "Sea o' nine",
"cobblemon.species.flareon.name": "Flame o' nine",
"cobblemon.species.jolteon.name": "Spark o' nine",
"cobblemon.species.espeon.name": "Mind o' nine",
"cobblemon.species.umbreon.name": "Demon o' nine",
"cobblemon.species.leafeon.name": "Leaf o' nine",
"cobblemon.species.glaceon.name": "Frost o' nine",
"cobblemon.species.sylveon.name": "Fae o' nine",
"cobblemon.species.gimmighoul.name": "Plunderin' devil",
"cobblemon.ui.pokedex.info.form.gimmighoul": "Coffer form",
"item.cobblemon.smithing_template.pokerod.ingredients": "Monster capturers",
"item.cobblemon.poke_rod": "Monster rod",
@@ -1611,12 +1598,11 @@
"cobblemon.challenge.canceled.sender": "Ye canceled yer challenge to %1$s.",
"cobblemon.battle.clearboost": "%1$s's improvements were careened!",
"cobblemon.challenge.multi.accept.sender": "%1$s's fleet accepted th' challenge!",
"cobblemon.species.spoink.name": "Swine Spring",
"cobblemon.challenge.decline.sender": "%1$s declined yer challenge...",
"cobblemon.challenge.error.insufficient_pokemon.other": "%1$s doesn't have any monsters to battle with!",
"advancements.cobblemon.craft_pokedex.description": "Craft an index o' monsters out of some fruitnuts, steel, copper, 'nd some shiny powder",
"cobblemon.config.ui.minimum_level_range_max": "Minimum level range max",
"cobblemon.cooking.cooking_quality.medium": "Mediocre",
"cobblemon.cooking.cooking_quality.medium": "mediocre",
"cobblemon.ui.challenge.challenge_title": "Battle request",
"cobblemon.config.ui.display_entity_level_label": "Display entity level label",
"cobblemon.entity.pokemon": "Monster",
@@ -1670,7 +1656,7 @@
"cobblemon.seasoning_food_header": "nutritional",
"cobblemon.seasoning_flavor_header": "flavorful",
"cobblemon.seasoning_bait_effect_info_header": "Baitin' info:",
"cobblemon.seasoning_food_info_header": "Satin' info:",
"cobblemon.seasoning_food_info_header": "Nutritional info:",
"cobblemon.seasoning_flavor_info_header": "Flavor info:",
"cobblemon.seasoning_flavor.spicy": "Spicy",
"cobblemon.seasoning_flavor.dry": "Dry",
@@ -1682,8 +1668,8 @@
"cobblemon.tooltip.mob_effect_entry": "%1$s %2$s (%3$s)",
"block.cobblemon.potted_black_apricorn_sapling": "Dirt vase o' black fruitnut meager shrub",
"block.cobblemon.potted_blue_apricorn_sapling": "Dirt vase o' blue fruitnut meager shrub",
"cobblemon.cooking.cooking_quality.high": "Mast'rful",
"cobblemon.cooking.cooking_quality.low": "Poor",
"cobblemon.cooking.cooking_quality.high": "mast'rful",
"cobblemon.cooking.cooking_quality.low": "poor",
"block.cobblemon.potted_green_apricorn_sapling": "Dirt vase o' green fruitnut meager shrub",
"block.cobblemon.potted_pink_apricorn_sapling": "Dirt vase o' pink fruitnut meager shrub",
"block.cobblemon.potted_red_apricorn_sapling": "Dirt vase o' red fruitnut meager shrub",
@@ -1763,7 +1749,7 @@
"cobblemon.container.campfire_pot": "Pot o' campin'",
"cobblemon.container.campfire_pot.recipe_book.toggle_recipes": "Showing cookable",
"cobblemon.ui.starter.narrator.backbutton": "Back button pressed",
"cobblemon.ui.moves.forget": "Forget action",
"cobblemon.ui.moves.forget": "Forget skill",
"cobblemon.ui.info.gender": "Gend'r",
"cobblemon.ui.pokedex.region.alola": "Land o' light",
"cobblemon.ui.pokedex.region.galar": "Land o' dark",
@@ -1787,7 +1773,7 @@
"cobblemon.tooltip.see_more_info": "Hold shift t' see records",
"cobblemon.item_class.fishing_bait": "Fishin' bait",
"cobblemon.subtitle.wallpaper.unlock": "Box backdrop unlocked",
"cobblemon.held_item.forbidden": "Ye can't give %1$s for %2$s to hold.",
"cobblemon.held_item.forbidden": "Ye can't give %1$s t' %2$s.",
"cobblemon.cosmetic_item": "Cosmetic item",
"cobblemon.cosmetic_item.already_wearing": "%1$s already be wearing %2$s!",
"cobblemon.challenge.multi.expired.sender": "The challenge to %1$s's fleet has timed out!",
@@ -1953,7 +1939,7 @@
"cobblemon.battle.start.confusion": "%1$s now be confused!",
"cobblemon.battle.activate.allyswitch": "%1$s 'nd %2$s swapped spots!",
"cobblemon.battle.activate.insomnia": "Th' monster be suffering from insomnia, 'nd cannot fall asleep.",
"cobblemon.battle.activate.leppaberry": "%1$s restored PP t' %3$s using its leppa berry!",
"cobblemon.battle.activate.leppaberry": "%1$s restored pp t' %3$s using its leppa berry!",
"cobblemon.battle.activate.lingeringaroma": "A lingering aroma clings t' %2$s!",
"block.cobblemon.chiseled_sky_tumblestone_bricks": "Bricks o' carv'd heaven tumbl'd rocks",
"block.cobblemon.polished_black_tumblestone_stairs": "Stairs o' good lookin' black tumbl'd rocks",
@@ -1977,16 +1963,16 @@
"cobblemon.fishing_bait_effect_header": "Baitin' info:",
"cobblemon.fishing_bait_effects.nature.tooltip": "%1$s%% - Attract %2$s essence",
"cobblemon.fishing_bait_effects.iv.tooltip": "%1$s%% - %2$s IV +%3$s",
"cobblemon.fishing_bait_effects.ev.tooltip": "%1$s%% - Attract %2$s EV yields",
"cobblemon.fishing_bait_effects.ev.tooltip": "%1$s%% - %2$s ev yields be attract'd",
"cobblemon.fishing_bait_effects.bite_time.tooltip": "%1$s%% - Reduce bite time %3$s%%",
"cobblemon.type.suffix": "%1$s element",
"block.cobblemon.poke_cake": "Monster cake",
"cobblemon.fishing_bait_effects.gender_chance.tooltip": "%1$s%% - Attract %2$s gender",
"cobblemon.fishing_bait_effects.gender_chance.tooltip": "%1$s%% - %2$s gender be attract'd",
"cobblemon.fishing_bait_effects.level_raise.tooltip": "%1$s%% - Boost level +%3$s",
"cobblemon.fishing_bait_effects.typing.tooltip": "%1$s%% - %3$s× chance for %2$s elements",
"cobblemon.fishing_bait_effects.typing.tooltip": "%1$s%% - %3$s× chance fer %2$s elements",
"cobblemon.fishing_bait_effects.egg_group.tooltip": "%1$s%% - %3$s× chance for %2$s partn'r preference",
"cobblemon.fishing_bait_effects.shiny_reroll.tooltip": "%1$s%% - %3$s× shiny chance",
"cobblemon.fishing_bait_effects.ha_chance.tooltip": "%1$s%% - Attract secret trait",
"cobblemon.fishing_bait_effects.ha_chance.tooltip": "%1$s%% - Attract hidden trait",
"cobblemon.fishing_bait_effects.pokemon_chance.tooltip": "%1$s%% - Reel in a monster",
"cobblemon.egg_group.monster": "Monsterous",
"cobblemon.egg_group.water_1": "Shore",
@@ -2028,7 +2014,7 @@
"cobblemon.ui.pc.wallpaper": "Backdrop",
"cobblemon.ui.pc.filter": "Filt'r",
"cobblemon.ui.pc.filter.tooltip": "Format: pikachu shiny held_item lvl=1...",
"cobblemon.ui.sort.name": "Sort by name",
"cobblemon.ui.sort.name": "Sort by title",
"cobblemon.ui.sort.level": "Sort by level",
"cobblemon.ui.sort.pokedex_number": "Sort by index number",
"cobblemon.ui.sort.gender": "Sort by gend'r",
@@ -2179,7 +2165,7 @@
"cobblemon.challenge.multi.error.missing_team": "Not all captains be in a valid fleet!",
"cobblemon.ui.team.leave_title": "Deraft",
"cobblemon.team.sent": "Invited %1$s to raft up for multi battles.",
"cobblemon.team.error.missing_pokemon.sender": "Yer opponent doesn't have any usable monsters!",
"cobblemon.team.error.missing_pokemon.sender": "Ye foe don't have any usable monsters!",
"cobblemon.team.error.missing_pokemon.receiver": "Ye don't have any usable monsters!",
"cobblemon.config.ui.category.riding": "Sailin'",
"cobblemon.config.ui.max_pokemon_level": "Max monster level",
@@ -2219,7 +2205,7 @@
"cobblemon.config.ui.infinite_healer_charge": "Infinite healer charge",
"cobblemon.config.ui.infinite_healer_charge.tooltip": "Whether bed o' sciences have infinite pow'r t' heal monsters.",
"cobblemon.config.ui.max_healer_charge": "Max healer charge",
"cobblemon.config.ui.max_healer_charge.tooltip": "The maximum amount of full health restoration bed o' science can have. 1 charge is equivalent to a candy o' total resurrection, plus PP restoration.",
"cobblemon.config.ui.max_healer_charge.tooltip": "The maximum amount of full health restoration bed o' science can have. 1 charge is equivalent to a candy o' total resurrection, plus pp restoration.",
"cobblemon.config.ui.faint_awaken_health_percent": "Faint awaken health percent",
"cobblemon.config.ui.faint_awaken_health_percent.tooltip": "How much health to restore when defaultFaintTimer is up.",
"cobblemon.config.ui.heal_percent": "Heal percent",
@@ -2247,6 +2233,370 @@
"cobblemon.battle.select_target": "Select target",
"cobblemon.battle.start.flashfire": "The pow'r of %1$s's flame element actions rose!",
"cobblemon.battle.activate.custapberry": "%1$s can act ahead o' time, thanks t' its custap berry!",
"cobblemon.species.magnezone.name": "Zone o' mag",
"cobblemon.ui.pokedex.info.form.gimmighoul-roaming": "Roamin' form"
"cobblemon.ui.pokedex.info.form.gimmighoul-roaming": "Roamin' form",
"item.cobblemon.link_cable.tooltip": "Permits transmogrification o' monsters th't need t' be barter'd",
"item.cobblemon.electirizer.tooltip": "Transmogrifies Electabuzz ta' Electivire if held when barter'd",
"item.cobblemon.strawberry_sweet.tooltip": "Transmogrifies Milcery ta' Alcremie wearin' a candy o' strawberry",
"item.cobblemon.love_sweet.tooltip": "Transmogrifies Milcery ta' Alcremie wearin' a candy o' romance",
"item.cobblemon.water_stone.tooltip": "Transmogrifies certain monsters",
"item.cobblemon.ability_patch.tooltip": "Unlocks th' hidden trait o' th' monster",
"item.cobblemon.sassy_mint.tooltip": "Changes a monster's stats to match that o' a cheeky essence",
"item.cobblemon.cell_battery.tooltip_1": "Increases th' wielder's power when hit by a thund'r element skill",
"item.cobblemon.covert_cloak.tooltip": "Protects th' wielder from added effects o' a damaging skill",
"item.cobblemon.leftovers.tooltip": "Restores th' health o' th' wielder gradually",
"item.cobblemon.grass_gem.tooltip_2": "Gets used up",
"item.cobblemon.resist_feather.tooltip": "Raises a monster's strength evs by 1",
"item.cobblemon.eviolite.tooltip": "Increases th' wielder's strength and resilience if it could transmogrify further",
"item.cobblemon.kings_rock.tooltip_1": "If th' holdin' monster lands their shot, th' foe may flinch",
"item.cobblemon.prism_scale.tooltip": "Transmogrifies Feebas ta' Milotic if held when barter'd",
"item.cobblemon.hard_stone.tooltip": "Increases th' wielder's stones element skills",
"item.cobblemon.clover_sweet.tooltip": "Transmogrifies Milcery ta' Alcremie wearin' a candy o' luck",
"item.cobblemon.misty_seed.tooltip": "Increases th' wielder's strength on fae island",
"item.cobblemon.dubious_disc.tooltip": "Transmogrifies Porygon2 ta' Porygon-Z if held when barter'd",
"item.cobblemon.chipped_pot.tooltip": "Transmogrifies true Sinistea ta' Polteageist",
"item.cobblemon.masterpiece_teacup.tooltip": "Transmogrifies masterpiece Poltchageist ta' masterpiece Sinistcha",
"item.cobblemon.ice_stone.tooltip": "Transmogrifies certain monsters",
"item.cobblemon.muscle_feather.tooltip": "Raises a monster's power evs by 1",
"item.cobblemon.fairy_feather.tooltip": "Increases th' wielder's fae element skills",
"item.cobblemon.miracle_seed.tooltip": "Increases th' wielder's plant element skills",
"item.cobblemon.punching_glove.tooltip": "Boosts th' damage o' th' wielder's punching skills, and makes 'em avoid contact effects",
"item.cobblemon.normal_gem.tooltip_2": "Gets used up",
"item.cobblemon.charcoal_stick.tooltip": "Increases th' wielder's flame element skills",
"tag.item.cobblemon.held.terrain_seeds": "Island seeds",
"advancements.cobblemon.use_iv_candy": "Sugarrry stats",
"cobblemon.move.electricterrain": "Charg'd terrain",
"item.cobblemon.whipped_dream.tooltip": "Transmogrifies Swirlix ta' Slurpuff if held when barter'd",
"item.cobblemon.ability_shield.tooltip": "Prev'nts the wielder's trait from bein' alter'd or disabl'd",
"item.cobblemon.air_balloon.tooltip_1": "Lifts th' wielder off th' deck",
"item.cobblemon.air_balloon.tooltip_2": "Lost on hit",
"item.cobblemon.assault_vest.tooltip": "Increases th' wielder's resilience, but stops use o' effect skills",
"item.cobblemon.auspicious_armor.tooltip": "Transmogrifies Charcadet ta' Armarouge",
"item.cobblemon.malicious_armor.tooltip": "Transmogrifies Charcadet ta' Ceruledge",
"item.cobblemon.binding_band.tooltip": "Increases damage from th' residual bindings",
"item.cobblemon.black_belt.tooltip": "Increases th' wielder's attacker element skills",
"item.cobblemon.black_glasses.tooltip": "Increases th' wielder's demon element skills",
"item.cobblemon.black_sludge.tooltip": "If th' wielder be of th' toxin element, their health restores durin' combat. Damages those o' other elements",
"item.cobblemon.blunder_policy.tooltip_1": "Increases th' wielder's speed if their shot misses",
"item.cobblemon.blunder_policy.tooltip_2": "Gets used up",
"item.cobblemon.choice_band.tooltip": "Increases th' wielder's power, but prevents tactic shifting",
"item.cobblemon.choice_specs.tooltip": "Increases th' wielder's magic, but prevents tactic shifting",
"item.cobblemon.cleanse_tag.tooltip": "Unknown effects",
"item.cobblemon.dragon_fang.tooltip": "Increases th' wielder's drake element skills",
"item.cobblemon.eject_button.tooltip_1": "Swaps th' holder out when hit by a damaging skill",
"item.cobblemon.eject_button.tooltip_2": "Gets used up",
"item.cobblemon.eject_pack.tooltip_1": "Swaps th' holder out if any stat drops",
"item.cobblemon.eject_pack.tooltip_2": "Gets used up",
"item.cobblemon.electric_seed.tooltip": "Increases th' wielder's strength on charg'd island",
"item.cobblemon.everstone.tooltip": "Stops transmogrification o' th' wielder",
"item.cobblemon.exp_share.tooltip": "Gives th' wielder a share o' experience from fights without joining th' fray",
"item.cobblemon.expert_belt.tooltip": "Increases th' damage fr'm sinking skills",
"item.cobblemon.float_stone.tooltip": "Wielder's weight be halv'd",
"item.cobblemon.focus_band.tooltip": "Lets th' wielder focus in, sometimes letting 'em endure th' blow",
"item.cobblemon.focus_sash.tooltip_1": "Lets th' wielder focus in, letting 'em endure a single blow",
"item.cobblemon.focus_sash.tooltip_2": "Gets used up",
"item.cobblemon.heavy_duty_boots.tooltip": "Prev'nts traps set on th' deck",
"item.cobblemon.iron_ball.tooltip": "Th' wielder be weigh'd down to th' deck, and their speed halv'd",
"item.cobblemon.light_clay.tooltip": "Screen skills last longer",
"item.cobblemon.lucky_egg.tooltip": "Improves th' count o' magic orbs gained by th' wielder",
"item.cobblemon.magnet.tooltip": "Increases th' wielder's thund'r element skills",
"item.cobblemon.metronome.tooltip": "Increases th' damage o' skills repeated",
"item.cobblemon.poison_barb.tooltip": "Increases th' wielder's toxin element skills",
"item.cobblemon.protective_pads.tooltip": "Protects th' wielder from contact effects",
"item.cobblemon.razor_claw.tooltip_1": "Boosts th' critical chance for th' wielder",
"item.cobblemon.razor_claw.tooltip_2": "Transmogrifies Sneasel ta' Sneasler or Weavile based on time o' day",
"item.cobblemon.razor_fang.tooltip_1": "If th' holdin' monster lands their shot, th' foe may flinch",
"item.cobblemon.razor_fang.tooltip_2": "Transmogrifies Gligar ta' Gliscor if held at night",
"item.cobblemon.red_card.tooltip_1": "Monsters that damage th' wielder are forced t' swap out",
"item.cobblemon.red_card.tooltip_2": "Gets used up",
"item.cobblemon.ring_target.tooltip": "Th' wielder can be hit by all elements",
"item.cobblemon.rocky_helmet.tooltip": "Makes monsters that make contact with th' wielder to take damage",
"item.cobblemon.room_service.tooltip_1": "Reduces th' wielder's speed if twist'd deck be active",
"item.cobblemon.room_service.tooltip_2": "Gets used up",
"item.cobblemon.scope_lens.tooltip": "Boosts th' critical chance for th' wielder",
"item.cobblemon.sharp_beak.tooltip": "Increases th' wielder's soarer element skills",
"item.cobblemon.shell_helmet.tooltip": "Transmogrifies Karrablast ta' Escavalier",
"item.cobblemon.soft_sand.tooltip": "Increases th' wielder's land element skills",
"item.cobblemon.weakness_policy.tooltip_2": "Gets used up",
"item.cobblemon.spell_tag.tooltip": "Increases th' wielder's spirit element skills",
"item.cobblemon.twisted_spoon.tooltip": "Increases th' wielder's mental element skills",
"item.cobblemon.power_herb.tooltip_2": "Gets used up",
"item.cobblemon.psychic_seed.tooltip": "Increases th' wielder's strength on mental island",
"item.cobblemon.smoke_ball.tooltip": "Unknown effects",
"cobblemon.ui.ride_style.liquid": "Seas",
"cobblemon.ui.pokedex.info.form.wooper-paldea": "Land o' sharden",
"block.cobblemon.saccharine_log_slathered": "Slathered log o' saccharine",
"cobblemon.ui.ride_style.air": "Skies",
"cobblemon.mark.ribbon_ability": "Ability ribbon",
"item.cobblemon.eggant_berry": "Eggant berry",
"advancements.cobblemon.place_campfire_pot": "Time to cook",
"advancements.cobblemon.place_campfire_pot.description": "Place a pot o' campin' on a lit campfire",
"advancements.cobblemon.use_iv_candy.description": "Use a candy that alters a monster's ivs",
"cobblemon.move.trickroom": "Twist'd deck",
"cobblemon.move.grassyterrain": "Plant'd island",
"cobblemon.move.mistyterrain": "Fae island",
"item.cobblemon.bugwort": "Ward o' bug",
"item.cobblemon.dragon_scale.tooltip": "Transmogrifies Seadra ta' Kingdra if held when barter'd",
"item.cobblemon.kings_rock.tooltip_2": "Transmogrifies Poliwhirl ta' Politoed 'nd Slowpoke ta' Slowking if held when barter'd",
"item.cobblemon.metal_coat.tooltip_1": "Increases th' wielder's metal element skills",
"item.cobblemon.metal_coat.tooltip_2": "Transmogrifies Onix ta' Steelix 'nd Scyther ta' Scizor if held when barter'd",
"item.cobblemon.upgrade.tooltip": "Transmogrifies Porygon ta' Porygon2 if held when barter'd",
"item.cobblemon.deep_sea_scale.tooltip_1": "Increases Clamperl's resilience",
"item.cobblemon.deep_sea_scale.tooltip_2": "Transmogrifies Clamperl ta' Gorebyss if held when barter'd",
"item.cobblemon.deep_sea_tooth.tooltip_1": "Increases Clamperl's magic",
"item.cobblemon.deep_sea_tooth.tooltip_2": "Transmogrifies Clamperl ta' Huntail if held when barter'd",
"item.cobblemon.magmarizer.tooltip": "Transmogrifies Magmar ta' Magmortar if held when barter'd",
"item.cobblemon.oval_stone.tooltip": "Transmogrifies Happiny ta' Chansey if held during th' day",
"item.cobblemon.protector.tooltip": "Transmogrifies Rhydon ta' Rhyperior if held when barter'd",
"item.cobblemon.reaper_cloth.tooltip": "Transmogrifies Dusclops ta' Dusknoir if held when barter'd",
"item.cobblemon.sachet.tooltip": "Transmogrifies Spritzee ta' Aromatisse if held when barter'd",
"item.cobblemon.flower_sweet.tooltip": "Transmogrifies Milcery ta' Alcremie wearin' a candy o' dandy",
"item.cobblemon.star_sweet.tooltip": "Transmogrifies Milcery ta' Alcremie wearin' a candy o' navigation",
"item.cobblemon.ribbon_sweet.tooltip": "Transmogrifies Milcery ta' Alcremie wearin' a candy decoration",
"item.cobblemon.cracked_pot.tooltip": "Transmogrifies fake Sinistea ta' Polteageist",
"item.cobblemon.unremarkable_teacup.tooltip": "Transmogrifies counterfeit Poltchageist ta' counterfeit Sinistcha",
"item.cobblemon.sweet_apple.tooltip": "Transmogrifies Applin ta' Appletun",
"item.cobblemon.tart_apple.tooltip": "Transmogrifies Applin ta' Flapple",
"item.cobblemon.syrupy_apple.tooltip": "Transmogrifies Applin ta' Dipplin",
"item.cobblemon.galarica_cuff.tooltip": "Transmogrifies Slowpoke o' th' land o' dark ta' Slowbro o' th' land o' dark",
"item.cobblemon.galarica_wreath.tooltip": "Transmogrifies Slowpoke o' th' land o' dark ta' Slowking o' th' land o' dark",
"item.cobblemon.black_augurite.tooltip": "Transmogrifies Scyther ta' Kleavor",
"item.cobblemon.peat_block.tooltip": "Transmogrifies Ursaring ta' Ursaluna when gift'd und'r a full moon",
"item.cobblemon.metal_alloy.tooltip": "Transmogrifies Duraludon ta' Archaludon",
"item.cobblemon.scroll_of_darkness.tooltip": "Transmogrifies Kubfu ta' Single Strike Style Urshifu",
"item.cobblemon.scroll_of_waters.tooltip": "Transmogrifies Kubfu ta' Rapid Strike Style Urshifu",
"item.cobblemon.dawn_stone.tooltip": "Transmogrifies certain monsters",
"item.cobblemon.dusk_stone.tooltip": "Transmogrifies certain monsters",
"item.cobblemon.fire_stone.tooltip": "Transmogrifies certain monsters",
"item.cobblemon.exp_candy_s.tooltip": "Raises a monster's magic orb count by 800",
"item.cobblemon.ability_capsule.tooltip": "Swaps th' trait o' th' monster 'round",
"item.cobblemon.timid_mint.tooltip": "Changes a monster's stats to match that o' an feeble essence",
"item.cobblemon.absorb_bulb.tooltip_1": "Increases th' wielder's magic wh'n hit by an ocean element skill",
"item.cobblemon.absorb_bulb.tooltip_2": "Gets used up",
"item.cobblemon.cell_battery.tooltip_2": "Gets used up",
"item.cobblemon.choice_scarf.tooltip": "Increases th' wielder's speed, but prevents tactic shifting",
"item.cobblemon.muscle_band.tooltip": "Increases th' wielder's melee skills",
"item.cobblemon.mystic_water.tooltip": "Increases th' wielder's ocean element skills",
"item.cobblemon.never_melt_ice.tooltip": "Increases th' wielder's froz'n element skills",
"item.cobblemon.quick_claw.tooltip": "Lets th' wielder strike first on occasion",
"item.cobblemon.silk_scarf.tooltip": "Increases th' wielder's basic element skills",
"item.cobblemon.silver_powder.tooltip": "Increases th' wielder's critter element skills",
"item.cobblemon.throat_spray.tooltip_2": "Gets used up",
"item.cobblemon.mental_herb.tooltip_2": "Gets used up",
"item.cobblemon.mirror_herb.tooltip_2": "Gets used up",
"item.cobblemon.white_herb.tooltip_2": "Gets used up",
"item.cobblemon.berry_sweet.tooltip": "Transmogrifies Milcery ta' Alcremie wearin' a candy o' berry",
"item.cobblemon.leaf_stone.tooltip": "Transmogrifies certain monsters",
"item.cobblemon.moon_stone.tooltip": "Transmogrifies certain monsters",
"item.cobblemon.shiny_stone.tooltip": "Transmogrifies certain monsters",
"item.cobblemon.sun_stone.tooltip": "Transmogrifies certain monsters",
"item.cobblemon.thunder_stone.tooltip": "Transmogrifies certain monsters",
"item.cobblemon.rare_candy.tooltip": "Raises a monster's level a single time",
"item.cobblemon.exp_candy_xs.tooltip": "Raises a monster's magic orb count by 100",
"item.cobblemon.exp_candy_m.tooltip": "Raises a monster's magic orb count by 3000",
"item.cobblemon.exp_candy_l.tooltip": "Raises a monster's magic orb count by 10000",
"item.cobblemon.exp_candy_xl.tooltip": "Raises a monster's magic orb count by 30000",
"item.cobblemon.calcium.tooltip": "Raises a monster's magic evs by 10",
"item.cobblemon.carbos.tooltip": "Raises a monster's speed evs by 10",
"item.cobblemon.hp_up.tooltip": "Raises a monster's health evs by 10",
"item.cobblemon.iron.tooltip": "Raises a monster's strength evs by 10",
"item.cobblemon.protein.tooltip": "Raises a monster's power evs by 10",
"item.cobblemon.zinc.tooltip": "Raises a monster's resilience evs by 10",
"item.cobblemon.potion.tooltip": "Restores 20 health to a monster",
"item.cobblemon.super_potion.tooltip": "Restores 60 health to a monster",
"item.cobblemon.hyper_potion.tooltip": "Restores 120 health to a monster",
"item.cobblemon.full_restore.tooltip": "Fully heals th' health 'nd status effects of a monster",
"item.cobblemon.max_potion.tooltip": "Fully heals th' health of a monster",
"item.cobblemon.health_feather.tooltip": "Raises a monster's health evs by 1",
"item.cobblemon.genius_feather.tooltip": "Raises a monster's magic evs by 1",
"item.cobblemon.clever_feather.tooltip": "Raises a monster's resilience evs by 1",
"item.cobblemon.swift_feather.tooltip": "Raises a monster's speed evs by 1",
"item.cobblemon.lonely_mint.tooltip": "Changes a monster's stats to match that o' an outcast essence",
"item.cobblemon.adamant_mint.tooltip": "Changes a monster's stats to match that o' a stiff board essence",
"item.cobblemon.naughty_mint.tooltip": "Changes a monster's stats to match that o' a rascal essence",
"item.cobblemon.brave_mint.tooltip": "Changes a monster's stats to match that o' an adventur'us essence",
"item.cobblemon.bold_mint.tooltip": "Changes a monster's stats to match that o' a resolute essence",
"item.cobblemon.impish_mint.tooltip": "Changes a monster's stats to match that o' a jaunty essence",
"item.cobblemon.lax_mint.tooltip": "Changes a monster's stats to match that o' a sloppy essence",
"item.cobblemon.relaxed_mint.tooltip": "Changes a monster's stats to match that o' a sea breezy essence",
"item.cobblemon.careful_mint.tooltip": "Changes a monster's stats to match that o' a leery essence",
"item.cobblemon.modest_mint.tooltip": "Changes a monster's stats to match that o' a prud'nt essence",
"item.cobblemon.mild_mint.tooltip": "Changes a monster's stats to match that o' a balmy essence",
"item.cobblemon.quiet_mint.tooltip": "Changes a monster's stats to match that o' a clamm'd essence",
"item.cobblemon.rash_mint.tooltip": "Changes a monster's stats to match that o' a daring essence",
"item.cobblemon.calm_mint.tooltip": "Changes a monster's stats to match that o' a serene essence",
"item.cobblemon.gentle_mint.tooltip": "Changes a monster's stats to match that o' an affable essence",
"item.cobblemon.hasty_mint.tooltip": "Changes a monster's stats to match that o' a rapids essence",
"item.cobblemon.jolly_mint.tooltip": "Changes a monster's stats to match that o' a chipp'r essence",
"item.cobblemon.naive_mint.tooltip": "Changes a monster's stats to match that o' a green essence",
"item.cobblemon.serious_mint.tooltip": "Changes a monster's stats to match that o' a sober essence",
"item.cobblemon.grassy_seed.tooltip": "Increases th' wielder's strength on plant'd island",
"item.cobblemon.light_ball.tooltip": "Improves Pikachu's power and magic",
"item.cobblemon.water_gem.tooltip_2": "Gets used up",
"item.cobblemon.ghost_gem.tooltip_2": "Gets used up",
"item.cobblemon.ground_gem.tooltip_2": "Gets used up",
"item.cobblemon.fire_gem.tooltip_2": "Gets used up",
"item.cobblemon.dragon_gem.tooltip_2": "Gets used up",
"item.cobblemon.pewter_crunchies": "Pewter tack",
"item.cobblemon.rage_candy_bar": "Bar o' rage",
"item.cobblemon.lava_cookie": "Magma cookie",
"item.cobblemon.old_gateau": "Gateau",
"item.cobblemon.jubilife_muffin": "Muffin o' jubilife",
"item.cobblemon.casteliacone": "Cold cone",
"item.cobblemon.lumiose_galette": "Light galette",
"item.cobblemon.shalour_sable": "Shalour sablé",
"item.cobblemon.big_malasada": "Malasada",
"item.cobblemon.smoked_tail_curry": "Smokey curry",
"item.cobblemon.open_faced_sandwich": "Land o' shard sandwich",
"cobblemon.move.psychicterrain": "Mental terrain",
"item.cobblemon.wide_lens.tooltip": "Increases th' wielder's shot rate",
"item.cobblemon.superb_remedy.tooltip": "Restores 120 health to a monster, but reduces their allyship with ye",
"item.cobblemon.steel_gem.tooltip_1": "Increases th' wielder's first metal element skill",
"item.cobblemon.electric_gem.tooltip_1": "Increases th' wielder's first thund'r element skill",
"item.cobblemon.dark_gem.tooltip_1": "Increases th' wielder's first demon element skill",
"item.cobblemon.clever_mochi.tooltip": "Raises a monster's resilience evs by 4",
"item.cobblemon.loaded_dice.tooltip": "Multi-shot skills always hit 'least four rounds",
"item.cobblemon.safety_goggles.tooltip": "Wielder be protect'd from powd'rs, spores, 'nd painful weathers",
"item.cobblemon.shell_bell.tooltip": "Restores th' wielder's health by a bit o' what they do in damage",
"item.cobblemon.soothe_bell.tooltip": "Improves gained allyship",
"item.cobblemon.weakness_policy.tooltip_1": "Increases th' wielder's power 'nd magic when hit by a sinking skill",
"item.cobblemon.mental_herb.tooltip_1": "Cures th' user o' siren charms 'nd other mental ails",
"item.cobblemon.power_herb.tooltip_1": "Charrrg'd skills of th' user fire off immediately",
"item.cobblemon.destiny_knot.tooltip": "If th' wielder falls to th' siren's charms, th' monster th't cast 'em falls too",
"item.cobblemon.flame_orb.tooltip": "Wielder be burnt",
"item.cobblemon.medicinal_leek.tooltip_1": "Used t' brew brew o' potions",
"item.cobblemon.medicinal_leek.tooltip_2": "Also boosts th' critical chance for Farfetch'd 'nd Sirfetch'd twofold",
"item.cobblemon.energy_root.tooltip": "Restores 80 health to a monster, but reduces their allyship with ye",
"item.cobblemon.revival_herb.tooltip": "Resurrects a monster to quarter health, but reduces their allyship with ye",
"item.cobblemon.fine_remedy.tooltip": "Restores 60 health to a monster, but reduces their allyship with ye",
"item.cobblemon.revive.tooltip": "Resurrects a monster to half health",
"item.cobblemon.max_revive.tooltip": "Resurrects a monster to full health",
"item.cobblemon.pp_up.tooltip": "Increases th' wielder's total pp o' a skill by 20%",
"item.cobblemon.pp_max.tooltip": "Increases th' wielder's total pp o' a skill to th' full 60%",
"item.cobblemon.x_accuracy.tooltip": "Increases th' monster's shot rate by a stage while they're on deck",
"item.cobblemon.x_speed.tooltip": "Increases th' monster's speed by a stage while they're on deck",
"item.cobblemon.x_special_defence.tooltip": "Increases th' monster's resilience by a stage while they're on deck",
"item.cobblemon.x_special_attack.tooltip": "Increases th' monster's magic by a stage while they're on deck",
"item.cobblemon.dire_hit.tooltip": "Increases th' monster's critical chance while they're on deck",
"item.cobblemon.quick_candy.tooltip_1": "Raises a monster's effective speed ivs by 1",
"block.cobblemon.big_root.tooltip": "Increases th' wielder's health drain gains",
"item.cobblemon.health_candy.tooltip_1": "Raises a monster's effective health ivs by 1",
"item.cobblemon.mighty_candy.tooltip_1": "Raises a monster's effective power ivs by 1",
"cobblemon.subtitle.pokemon.shiny_shine": "Owned shiny monster sparkles",
"cobblemon.subtitle.pokemon.wild_shiny_shine": "Wild shiny monster sparkles!",
"cobblemon.subtitle.pokemon.owned_shiny_ambient": "Passive shiny monster sparkles",
"cobblemon.subtitle.pokemon.shiny_ambient": "Wild shiny monster sparkles!",
"item.cobblemon.pomeg_berry.tooltip_2": "Not eaten during battles",
"item.cobblemon.qualot_berry.tooltip_1": "Drops a monster's strength evs by 10, and boons allyship",
"item.cobblemon.qualot_berry.tooltip_2": "Not eaten during battles",
"item.cobblemon.tamato_berry.tooltip_1": "Drops a monster's speed evs by 10, and boons allyship",
"entity.cobblemon.pokemon": "Monster",
"entity.cobblemon.empty_pokeball": "Unoccupied captur'r",
"entity.cobblemon.poke_bobber": "Monster float'r",
"entity.cobblemon.boat": "Vessel",
"entity.cobblemon.chest_boat": "Vessel wit' coffer",
"entity.cobblemon.npc": "Sailor",
"painting.cobblemon.premonition.title": "Premonition",
"painting.cobblemon.premonition.author": "PKMNCC",
"painting.cobblemon.slumber.title": "Slumb'r",
"painting.cobblemon.slumber.author": "PKMNCC",
"painting.cobblemon.altar.title": "Ancient altar",
"painting.cobblemon.altar.author": "PKMNCC",
"painting.cobblemon.nomad.title": "Travel'rs",
"painting.cobblemon.nomad.author": "PKMNCC",
"cobblemon.snapshots.warning.title": "Cobbl'd ship version warnin'",
"cobblemon.snapshots.warning.description": "Ye be usin' %s snapshot o' cobblemon. It still be und'r construction, meanin' it may not be safe fer yer seas. Knowing this, would we like t' still proceed?",
"cobblemon.snapshots.warning.dont_show_again": "She'll be fine",
"cobblemon.snapshots.warning.dont_show_again_tip": "This acklowledgem'nt may be ignor'd for future cobblemon snapshots (e.g. 1.7.0 vs 1.8.0)",
"item.cobblemon.shed_shell.tooltip": "Lets th' wielder swap out regardless o' context",
"item.cobblemon.terrain_extender.tooltip": "Keeps ya' harbor'd at islands longer, r'gardless if from skills or traits",
"item.cobblemon.throat_spray.tooltip_1": "Increases th' wielder's magic when a sound skill be used",
"item.cobblemon.sticky_barb.tooltip": "Damages those it's stuck ta', sticks t' those who hit",
"item.cobblemon.utility_umbrella.tooltip": "Th' wielder be protect'd from rain or shine",
"item.cobblemon.zoom_lens.tooltip": "Increases th' wielder's shot rate",
"item.cobblemon.wise_glasses.tooltip": "Increases th' wielder's magical skills",
"item.cobblemon.mirror_herb.tooltip_1": "Lets th' user mirror th' foe's stat increases onto themselfs",
"item.cobblemon.white_herb.tooltip_1": "Restores any dropp'd stats",
"item.cobblemon.power_bracer.tooltip": "Wearer gains 8 power evs when gaining experience in a fight",
"item.cobblemon.bright_powder.tooltip": "Drops th' foe's shot rate a tenth",
"item.cobblemon.metal_powder.tooltip": "Boosts a Ditto yet to alt'r shape's strength and resilience by half base",
"item.cobblemon.power_lens.tooltip": "Wearer gains 8 magic evs when gaining experience in a fight",
"item.cobblemon.quick_powder.tooltip": "Boosts a Ditto yet to alt'r shape's speed by double",
"item.cobblemon.power_anklet.tooltip": "Wearer gains 8 speed evs when gaining experience in a fight",
"item.cobblemon.power_band.tooltip": "Wearer gains 8 resilience evs when gaining experience in a fight",
"item.cobblemon.power_belt.tooltip": "Wearer gains 8 strength evs when gaining experience in a fight",
"item.cobblemon.toxic_orb.tooltip": "Wielder be poison'd",
"item.cobblemon.life_orb.tooltip": "Spends th' wielder's life t' increase their skills",
"item.cobblemon.damp_rock.tooltip": "Keeps th' ship in the rain long'r",
"item.cobblemon.heat_rock.tooltip": "Keeps th' ship in the burnin' sun long'r",
"item.cobblemon.smooth_rock.tooltip": "Keeps th' ship in the sands long'r",
"item.cobblemon.icy_rock.tooltip": "Keeps th' ship in the frosty rain long'r",
"item.cobblemon.berry_juice.tooltip": "Restores 20 health to a monster, usually drunk under half health",
"item.cobblemon.paralyze_heal.tooltip": "Frees a monster o' th' shocks",
"item.cobblemon.health_mochi.tooltip": "Raises a monster's health evs by 4",
"item.cobblemon.resist_mochi.tooltip": "Raises a monster's strength evs by 4",
"item.cobblemon.genius_mochi.tooltip": "Raises a monster's magic evs by 4",
"item.cobblemon.fresh_start_mochi.tooltip": "Clears out all a monster's evs",
"item.cobblemon.brittle_candy.tooltip_1": "Drops a monster's effective strength ivs by 1",
"item.cobblemon.power_weight.tooltip": "Wearer gains 8 health evs when gaining experience in a fight",
"item.cobblemon.remedy.tooltip": "Restores 20 health to a monster, but reduces their allyship with ye",
"item.cobblemon.heal_powder.tooltip": "Restores th' status of a monster, but reduces their allyship with ye",
"item.cobblemon.x_attack.tooltip": "Increases th' monster's power by a stage while they're on deck",
"item.cobblemon.x_defence.tooltip": "Increases th' monster's strength by a stage while they're on deck",
"item.cobblemon.water_gem.tooltip_1": "Increases th' wielder's first ocean element skill",
"item.cobblemon.fire_gem.tooltip_1": "Increases th' wielder's first flame element skill",
"item.cobblemon.fairy_gem.tooltip_2": "Gets used up",
"item.cobblemon.psychic_gem.tooltip_2": "Gets used up",
"item.cobblemon.guard_spec.tooltip": "Prev'nts th' monster's stats from bein' dropp'd while they're on deck",
"item.cobblemon.moomoo_milk.tooltip": "Clears out th' monster's stat alterations",
"item.cobblemon.full_heal.tooltip": "Fully heals any status effects of a monster",
"item.cobblemon.antidote.tooltip": "Cures a monster's poison",
"item.cobblemon.awakening.tooltip": "Wakes a monster",
"item.cobblemon.burn_heal.tooltip": "Cools off a monster's burn",
"item.cobblemon.ice_heal.tooltip": "Thaws out a monster",
"item.cobblemon.ether.tooltip": "Recovers 10 pp to a monster's skill",
"item.cobblemon.max_ether.tooltip": "Recovers all o' th' pp of a monster's skill",
"item.cobblemon.elixir.tooltip": "Recovers 10 pp on all a monster's skills",
"item.cobblemon.max_elixir.tooltip": "Recovers all o' th' pp on all a monster's skills",
"item.cobblemon.normal_gem.tooltip_1": "Increases th' wielder's first basic element skill",
"item.cobblemon.grass_gem.tooltip_1": "Increases th' wielder's first plant element skill",
"item.cobblemon.dragon_gem.tooltip_1": "Increases th' wielder's first drake element skill",
"item.cobblemon.ghost_gem.tooltip_1": "Increases th' wielder's first spirit element skill",
"item.cobblemon.ground_gem.tooltip_1": "Increases th' wielder's first land element skill",
"item.cobblemon.steel_gem.tooltip_2": "Gets used up",
"item.cobblemon.fairy_gem.tooltip_1": "Increases th' wielder's first fae element skill",
"item.cobblemon.rock_gem.tooltip_1": "Increases th' wielder's first stones element skill",
"item.cobblemon.rock_gem.tooltip_2": "Gets used up",
"item.cobblemon.psychic_gem.tooltip_1": "Increases th' wielder's first mental element skill",
"item.cobblemon.electric_gem.tooltip_2": "Gets used up",
"item.cobblemon.bug_gem.tooltip_1": "Increases th' wielder's first critter element skill",
"item.cobblemon.bug_gem.tooltip_2": "Gets used up",
"item.cobblemon.poison_gem.tooltip_1": "Increases th' wielder's first toxin element skill",
"item.cobblemon.poison_gem.tooltip_2": "Gets used up",
"item.cobblemon.ice_gem.tooltip_1": "Increases th' wielder's first froz'n element skill",
"item.cobblemon.ice_gem.tooltip_2": "Gets used up",
"item.cobblemon.dark_gem.tooltip_2": "Gets used up",
"item.cobblemon.fighting_gem.tooltip_1": "Increases th' wielder's first attacker element skill",
"item.cobblemon.fighting_gem.tooltip_2": "Gets used up",
"item.cobblemon.flying_gem.tooltip_1": "Increases th' wielder's first soarer element skill",
"item.cobblemon.flying_gem.tooltip_2": "Gets used up",
"item.cobblemon.muscle_mochi.tooltip": "Raises a monster's power evs by 4",
"item.cobblemon.swift_mochi.tooltip": "Raises a monster's speed evs by 4",
"item.cobblemon.tough_candy.tooltip_1": "Raises a monster's effective strength ivs by 1",
"item.cobblemon.smart_candy.tooltip_1": "Raises a monster's effective magic ivs by 1",
"item.cobblemon.courage_candy.tooltip_1": "Raises a monster's effective resilience ivs by 1",
"item.cobblemon.sickly_candy.tooltip_1": "Drops a monster's effective health ivs by 1",
"item.cobblemon.weak_candy.tooltip_1": "Drops a monster's effective power ivs by 1",
"item.cobblemon.numb_candy.tooltip_1": "Drops a monster's effective magic ivs by 1",
"item.cobblemon.coward_candy.tooltip_1": "Drops a monster's effective resilience ivs by 1",
"item.cobblemon.slow_candy.tooltip_1": "Drops a monster's effective speed ivs by 1",
"key.cobblemon.toggleridingstatsgui": "Toggle ride stats screen",
"cobblemon.cosmetic_item.give": "%1$s be given %2$s t' wear.",
"item.cobblemon.grepa_berry.tooltip_1": "Drops a monster's resilience evs by 10, and boons allyship",
"item.cobblemon.hondew_berry.tooltip_1": "Drops a monster's magic evs by 10, and boons allyship",
"item.cobblemon.grepa_berry.tooltip_2": "Not eaten during battles",
"item.cobblemon.hondew_berry.tooltip_2": "Not eaten during battles",
"item.cobblemon.kelpsy_berry.tooltip_1": "Drops a monster's power evs by 10, and boons allyship",
"item.cobblemon.kelpsy_berry.tooltip_2": "Not eaten during battles",
"item.cobblemon.pomeg_berry.tooltip_1": "Drops a monster's health evs by 10, and boons allyship",
"item.cobblemon.tamato_berry.tooltip_2": "Not eaten during battles"
}
@@ -2041,6 +2041,7 @@
"key.cobblemon.pokenavigator": "Open PokéNav",
"key.cobblemon.summary": "Open Summary",
"key.cobblemon.pokedex": "Open Pokédex",
"key.cobblemon.ridingfreelook": "Riding Freelook",
"key.cobblemon.categories.cobblemon": "Cobblemon",
"key.cobblemon.scaleportraitup": "Scale Portrait Up",
@@ -3497,6 +3498,7 @@
"tag.item.cobblemon.berries.pp_recovery": "PP Recovery Berries",
"tag.item.cobblemon.berries.stat_buff": "Battle Berries",
"tag.item.cobblemon.berries.status_recovery": "Status Recovery Berries",
"tag.item.cobblemon.berries.filling": "Filling Berries",
"tag.item.cobblemon.berries.colour.white": "White Berries",
"tag.item.cobblemon.berries.colour.brown": "Brown Berries",
"tag.item.cobblemon.berries.colour.red": "Red Berries",
@@ -3588,7 +3590,8 @@
"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_seasoner": "Poké Puff Berries",
"tag.item.cobblemon.recipe_filters.poke_puff_seasoning": "Poké Puff Seasoning Items",
"tag.item.cobblemon.recipe_filters.tea_seasoning": "Tea Seasoning Items",
"tag.item.cobblemon.recipe_filters.bait_seasoning": "Baits",
"tag.item.cobblemon.recipe_filters.effect_seasoning": "Effect Seasoning Items",
"tag.item.cobblemon.recipe_filters.nutrition_seasoning": "Nutrition Seasoning Items",
@@ -8642,5 +8642,29 @@
"cobblemon.snapshots.warning.title": "Aviso: Versión de prueba de Cobblemon",
"cobblemon.snapshots.warning.description": "Estás usando una versión de prueba %s de Cobblemon. Contiene funcionalidad aún en desarrollo, y puede que no sea seguro usarla en tus mundos. ¿Deseas continuar sabiendo estos riesgos?",
"key.cobblemon.toggleridingstatsgui": "Mostrar estadísticas de montura",
"item.cobblemon.moomoo_milk.tooltip": "Al usarlo en combate, revierte todos los cambios de estado del Pokémon."
"item.cobblemon.moomoo_milk.tooltip": "Al usarlo en combate, revierte todos los cambios de estado del Pokémon.",
"cobblemon.config.ui.poke_snack_pokemon_per_chunk.tooltip": "Cuántos Pokémon puede haber dentro de un chunck cuando aparecen por Poké Snacks.",
"cobblemon.config.ui.pc_profile_animations.never_animate.tooltip": "Ningún retrato aparece animado",
"cobblemon.config.ui.animate_battle_tiles": "Retratos animados en combate",
"cobblemon.config.ui.summary_profile_animations.never_animate": "Ninguna animación",
"cobblemon.config.ui.summary_profile_animations.always_animate.tooltip": "Todo el equipo tiene animaciones a menos que estén debilitados",
"cobblemon.seasoning_ride_boosts_info_header": "Mejora en estadísticas de montura:",
"cobblemon.seasoning_ride_boost_entry": "%1$s: %2$s",
"item.cobblemon.eggant_berry": "Baya Eggant",
"cobblemon.command.molang.out": "Resultado MoLang: %1$s",
"cobblemon.command.npcdelete.not_player": "Solo un jugador puede ejecutar este comando.",
"cobblemon.command.npcdelete.deleted": "%1$s ha sido eliminado.",
"cobblemon.config.ui.poke_snack_pokemon_per_chunk": "Apariciones por chunk con Poké Snacks",
"cobblemon.config.ui.animate_battle_tiles.tooltip": "Determina si los retratos en combate de los Pokémon deben estar animados.",
"cobblemon.config.ui.pc_profile_animations": "Animaciones en el PC",
"cobblemon.config.ui.pc_profile_animations.never_animate": "Ninguna animación",
"cobblemon.config.ui.pc_profile_animations.animate_selected": "Animación al seleccionar",
"cobblemon.config.ui.pc_profile_animations.animate_selected.tooltip": "Pokémon seleccionados aparecen animados a menos que estén debilitados",
"cobblemon.config.ui.pc_profile_animations.always_animate": "Animar siempre",
"cobblemon.config.ui.pc_profile_animations.always_animate.tooltip": "Todo el PC tiene animaciones a menos que estén debilitados",
"cobblemon.config.ui.summary_profile_animations": "Animaciones en el perfil resumen",
"cobblemon.config.ui.summary_profile_animations.never_animate.tooltip": "Ningún retrato aparece animado",
"cobblemon.config.ui.summary_profile_animations.animate_selected": "Animación al seleccionar",
"cobblemon.config.ui.summary_profile_animations.animate_selected.tooltip": "Pokémon seleccionados aparecen animados a menos que estén debilitados",
"cobblemon.config.ui.summary_profile_animations.always_animate": "Animar siempre"
}
@@ -2537,5 +2537,42 @@
"cobblemon.mark.ribbon_contest_hoenn_smart_3.desc": "¡Ganador del nivel avanzado del concurso de ingenio!",
"cobblemon.mark.ribbon_contest_hoenn_smart_4": "Cinta Ingenio Experto",
"cobblemon.mark.ribbon_contest_hoenn_smart_4.desc": "¡Ganador del nivel experto del concurso de ingenio!",
"cobblemon.mark.ribbon_contest_hoenn_tough_1": "Cinta Dureza"
"cobblemon.mark.ribbon_contest_hoenn_tough_1": "Cinta Dureza",
"item.cobblemon.moomoo_milk.tooltip": "Elimina todos los cambios de stats en el Pokémon objetivo durante la pelea.",
"item.cobblemon.cream_puff.deluxe": "Pokélito de Crema Deluxe",
"cobblemon.seasoning_ride_boosts_info_header": "Mejoras de estadísticas de montura:",
"cobblemon.seasoning_ride_boost_entry": "%1$s: %2$s",
"block.cobblemon.saccharine_log_slathered": "Tronco de Sacarina cubierto de Miel",
"item.cobblemon.ponigiri": "Ponigiri",
"item.cobblemon.poke_puff": "Pokélito %s",
"item.cobblemon.jelly_doughnut": "Dona de Jalea",
"item.cobblemon.sinister_tea": "Té Siniestro",
"item.cobblemon.poke_puff.frosted": "Pokélito %s con crema",
"item.cobblemon.poke_puff.fancy": "Pokélito %s decorado",
"item.cobblemon.poke_puff.deluxe": "Pokélito %s deluxe",
"item.cobblemon.cream_puff": "Pokélito de crema",
"item.cobblemon.cream_puff.frosted": "Pokélito de crema con crema",
"item.cobblemon.cream_puff.fancy": "Pokélito de Crema Decorado",
"flavour.cobblemon.poke_puff.spicy": "Picante",
"flavour.cobblemon.poke_puff.dry": "Seco",
"flavour.cobblemon.poke_puff.sweet": "Dulce",
"flavour.cobblemon.poke_puff.bitter": "Amargo",
"flavour.cobblemon.poke_puff.sour": "Agrio",
"flavour.cobblemon.poke_puff.mild": "Suave",
"tooltip.cobblemon.poke_puff.nature.neutral": "Neutro",
"cobblemon.tooltip.poke_puff.friendship_effects": "Efectos en la amistad",
"item.cobblemon.health_candy": "Dulce de Salud",
"tooltip.cobblemon.poke_puff.friendship_increase": "Amistad +%1$s a cambio de la naturaleza %2$s",
"tooltip.cobblemon.poke_puff.friendship_decrease": "Amistad -%1$s por otras naturalezas",
"item.cobblemon.health_candy.tooltip_1": "Aumenta el IV de PS del Pokémon en 1",
"item.cobblemon.mighty_candy": "Caramelo Músculo",
"item.cobblemon.mighty_candy.tooltip_1": "Aumenta el IV de Ataque del Pokémon en 1",
"item.cobblemon.tough_candy": "Dulce Aguante",
"item.cobblemon.tough_candy.tooltip_1": "Aumenta el IV de Defensa del Pokémon en 1",
"item.cobblemon.smart_candy": "Dulce Inteligencia",
"item.cobblemon.smart_candy.tooltip_1": "Aumenta el IV de Ataque Especial del Pokémon en 1",
"item.cobblemon.courage_candy": "Dulce Coraje",
"item.cobblemon.courage_candy.tooltip_1": "Aumenta el IV de Defensa Especial del Pokémon en 1",
"item.cobblemon.quick_candy": "Dulce Rapidez",
"item.cobblemon.quick_candy.tooltip_1": "Aumenta el IV de VElocidad del Pokémon en 1"
}
@@ -646,9 +646,9 @@
"item.cobblemon.babiri_berry": "Baie Babiri",
"item.cobblemon.babiri_berry.tooltip": "Réduit de moitié les dégâts subis par une capacité super efficace de type Acier",
"item.cobblemon.belue_berry": "Baie Myrte",
"item.cobblemon.belue_berry.tooltip": "Ne peut être consommée par le porteur",
"item.cobblemon.belue_berry.tooltip": "Ne peut être consommée durant les combats",
"item.cobblemon.bluk_berry": "Baie Remu",
"item.cobblemon.bluk_berry.tooltip": "Ne peut être consommée par le porteur",
"item.cobblemon.bluk_berry.tooltip": "Ne peut être consommée durant les combats",
"item.cobblemon.charti_berry": "Baie Charti",
"item.cobblemon.charti_berry.tooltip": "Réduit de moitié les dégâts subis par une capacité super efficace de type Roche",
"item.cobblemon.cheri_berry": "Baie Ceriz",
@@ -664,11 +664,11 @@
"item.cobblemon.colbur_berry": "Baie Lampou",
"item.cobblemon.colbur_berry.tooltip": "Réduit de moitié les dégâts subis par une capacité super efficace de type Ténèbres",
"item.cobblemon.cornn_berry": "Baie Siam",
"item.cobblemon.cornn_berry.tooltip": "Ne peut être consommée par le porteur",
"item.cobblemon.cornn_berry.tooltip": "Ne peut être consommée durant les combats",
"item.cobblemon.custap_berry": "Baie Chérim",
"item.cobblemon.custap_berry.tooltip": "Attaque en premier si le porteur a moins d'1/4 de ses PV max",
"item.cobblemon.durin_berry": "Baie Durin",
"item.cobblemon.durin_berry.tooltip": "Ne peut être consommée par le porteur",
"item.cobblemon.durin_berry.tooltip": "Ne peut être consommée durant les combats",
"item.cobblemon.enigma_berry": "Baie Enigma",
"item.cobblemon.enigma_berry.tooltip": "Restaure 1/4 des PV lorsque le porteur subit une capacité super efficace",
"item.cobblemon.figy_berry": "Baie Figuy",
@@ -682,7 +682,7 @@
"item.cobblemon.hondew_berry": "Baie Lonme",
"item.cobblemon.hondew_berry.tooltip": "Ne peut être consommée par le porteur",
"item.cobblemon.hopo_berry": "Baie Bouhlon",
"item.cobblemon.hopo_berry.tooltip": "Ne peut être consommée par le porteur",
"item.cobblemon.hopo_berry.tooltip": "Restaure 10 PP d'une capacité sélectionnée lorsqu'elle est donnée à un Pokémon",
"item.cobblemon.iapapa_berry": "Baie Papaya",
"item.cobblemon.iapapa_berry.tooltip": "Restaure 1/3 des PV lorsque le porteur a moins d'1/4 de ses PV max ; rend confus si le Pokémon n'aime pas les Baies acides",
"item.cobblemon.jaboca_berry": "Baie Jaboca",
@@ -706,23 +706,23 @@
"item.cobblemon.mago_berry": "Baie Mago",
"item.cobblemon.mago_berry.tooltip": "Restaure 1/3 des PV lorsque le porteur a moins d'1/4 de ses PV max ; rend confus si le Pokémon n'aime pas les Baies sucrées",
"item.cobblemon.magost_berry": "Baie Mangou",
"item.cobblemon.magost_berry.tooltip": "Ne peut être consommée par le porteur",
"item.cobblemon.magost_berry.tooltip": "Ne peut être consommée durant les combats",
"item.cobblemon.maranga_berry": "Baie Rangma",
"item.cobblemon.maranga_berry.tooltip": "Augmente la Défense Spéciale lorsque le porteur subit une capacité spéciale",
"item.cobblemon.micle_berry": "Baie Micle",
"item.cobblemon.micle_berry.tooltip": "Augmente la Précision de la prochaine capacité de ×1,2 lorsque le porteur a moins d'1/4 de ses PV max",
"item.cobblemon.nanab_berry": "Baie Nanab",
"item.cobblemon.nanab_berry.tooltip": "Ne peut être consommée par le porteur",
"item.cobblemon.nanab_berry.tooltip": "Ne peut être consommée durant les combats",
"item.cobblemon.touga_berry": "Baie Touga",
"item.cobblemon.touga_berry.tooltip": "Soigne le porteur de la confusion",
"item.cobblemon.nomel_berry": "Baie Tronci",
"item.cobblemon.nomel_berry.tooltip": "Ne peut être consommée par le porteur",
"item.cobblemon.nomel_berry.tooltip": "Ne peut être consommée durant les combats",
"item.cobblemon.occa_berry": "Baie Chocco",
"item.cobblemon.occa_berry.tooltip": "Réduit de moitié les dégâts subis par une capacité super efficace de type Feu",
"item.cobblemon.oran_berry": "Baie Oran",
"item.cobblemon.oran_berry.tooltip": "Restaure 10 PV lorsque le porteur a moins d'1/2 de ses PV max",
"item.cobblemon.pamtre_berry": "Baie Palma",
"item.cobblemon.pamtre_berry.tooltip": "Ne peut être consommée par le porteur",
"item.cobblemon.pamtre_berry.tooltip": "Ne peut être consommée durant les combats",
"item.cobblemon.passho_berry": "Baie Pocpoc",
"item.cobblemon.passho_berry.tooltip": "Réduit de moitié les dégâts subis par une capacité super efficace de type Eau",
"item.cobblemon.payapa_berry": "Baie Yapap",
@@ -734,17 +734,17 @@
"item.cobblemon.petaya_berry": "Baie Pitaye",
"item.cobblemon.petaya_berry.tooltip": "Augmente l'Attaque Spéciale lorsque le porteur a moins d'1/4 de ses PV max",
"item.cobblemon.pinap_berry": "Baie Nanana",
"item.cobblemon.pinap_berry.tooltip": "Ne peut être consommée par le porteur",
"item.cobblemon.pinap_berry.tooltip": "Ne peut être consommée durant les combats",
"item.cobblemon.pomeg_berry": "Baie Grena",
"item.cobblemon.pomeg_berry.tooltip": "Ne peut être consommée par le porteur",
"item.cobblemon.qualot_berry": "Baie Qualot",
"item.cobblemon.qualot_berry.tooltip": "Ne peut être consommée par le porteur",
"item.cobblemon.rabuta_berry": "Baie Rabuta",
"item.cobblemon.rabuta_berry.tooltip": "Ne peut être consommée par le porteur",
"item.cobblemon.rabuta_berry.tooltip": "Ne peut être consommée durant les combats",
"item.cobblemon.rawst_berry": "Baie Fraive",
"item.cobblemon.rawst_berry.tooltip": "Soigne le porteur de la brûlure",
"item.cobblemon.razz_berry": "Baie Framby",
"item.cobblemon.razz_berry.tooltip": "Ne peut être consommée par le porteur",
"item.cobblemon.razz_berry.tooltip": "Ne peut être consommée durant les combats",
"item.cobblemon.rindo_berry": "Baie Ratam",
"item.cobblemon.rindo_berry.tooltip": "Réduit de moitié les dégâts subis par une capacité super efficace de type Plante",
"item.cobblemon.roseli_berry": "Baie Selro",
@@ -758,7 +758,7 @@
"item.cobblemon.sitrus_berry": "Baie Sitrus",
"item.cobblemon.sitrus_berry.tooltip": "Restaure 1/4 des PV lorsque le porteur a moins d'1/2 de ses PV max",
"item.cobblemon.spelon_berry": "Baie Kiwan",
"item.cobblemon.spelon_berry.tooltip": "Ne peut être consommée par le porteur",
"item.cobblemon.spelon_berry.tooltip": "Ne peut être consommée durant les combats",
"item.cobblemon.starf_berry": "Baie Frista",
"item.cobblemon.starf_berry.tooltip": "Augmente beaucoup une statistique aléatoire lorsque le porteur a moins d'1/4 de ses PV max",
"item.cobblemon.tamato_berry": "Baie Tamato",
@@ -768,9 +768,9 @@
"item.cobblemon.wacan_berry": "Baie Parma",
"item.cobblemon.wacan_berry.tooltip": "Réduit de moitié les dégâts subis par une capacité super efficace de type Électrik",
"item.cobblemon.watmel_berry": "Baie Stekpa",
"item.cobblemon.watmel_berry.tooltip": "Ne peut être consommée par le porteur",
"item.cobblemon.watmel_berry.tooltip": "Ne peut être consommée durant les combats",
"item.cobblemon.wepear_berry": "Baie Repoi",
"item.cobblemon.wepear_berry.tooltip": "Ne peut être consommée par le porteur",
"item.cobblemon.wepear_berry.tooltip": "Ne peut être consommée durant les combats",
"item.cobblemon.wiki_berry": "Baie Wiki",
"item.cobblemon.wiki_berry.tooltip": "Restaure 1/3 des PV lorsque le porteur a moins d'1/4 de ses PV max ; rend confus si le Pokémon n'aime pas les Baies sèches",
"item.cobblemon.yache_berry": "Baie Nanone",
@@ -7808,7 +7808,7 @@
"block.cobblemon.smooth_sky_tumblestone_stairs": "Escaliers de Galet Azur lisse",
"block.cobblemon.chiseled_polished_sky_tumblestone": "Bloc de Galet Azur poli ciselé",
"block.cobblemon.sky_tumblestone_brick_slab": "Dalle de briques de Galet Azur",
"cobblemon.config.ui.party_portrait_animations.never_animate.tooltip": "Aucun portrait animé",
"cobblemon.config.ui.party_portrait_animations.never_animate.tooltip": "Ne pas animer les portraits",
"item.cobblemon.heavy_duty_boots.tooltip": "Le porteur ne subit plus les effets des pièges ou autres entraves posés sur le terrain",
"item.cobblemon.weakness_policy.tooltip_1": "Augmente beaucoup l'Attaque et l'Attaque Spéciale du Pokémon lorsqu'il est touché par une capacité d'un type auquel il est vulnérable",
"item.cobblemon.exp_share.tooltip": "Permet de faire gagner des Points Exp. à tous les Pokémon de l'équipe, même à ceux qui n'ont pas participé au combat",
@@ -7878,7 +7878,7 @@
"cobblemon.config.ui.shiny_rate.tooltip": "La probabilité qu'un Pokémon soit chromatique. Si la valeur est 0, aucun Pokémon ne sera chromatique. Calculé sur la base de 1/x.",
"cobblemon.config.ui.pasture_block_update_ticks.tooltip": "Le nombre de ticks de serveur entre les mises à jour des blocs de pâturage.",
"cobblemon.config.ui.pasture_max_wander_distance.tooltip": "Le nombre maximal de blocs qu'un Pokémon peut se déplacer à partir du bloc de pâturage.",
"cobblemon.config.ui.party_portrait_animations.always_animate.tooltip": "Toute l'équipe est animée à moins d'être K.O.",
"cobblemon.config.ui.party_portrait_animations.always_animate.tooltip": "Animer toute l'équipe sauf les Pokémon K.O.",
"cobblemon.config.ui.third_person_view_bobbing.tooltip": "Si la valeur est vrai, le comportement par défaut de Minecraft est utilisé pour suivre directement derrière la tête du joueur. Si la valeur est faux, il suit un angle fixe par rapport au Pokémon.",
"item.cobblemon.automaton_armor_trim_smithing_template": "Modèle de forge",
"block.cobblemon.polished_black_tumblestone_slab": "Dalle de Galet Noir poli",
@@ -8040,12 +8040,12 @@
"cobblemon.fishing_bait_effects.inert.tooltip": "Aucun effet connu",
"cobblemon.egg_group.monster": "Monstrueux",
"cobblemon.egg_group.water_1": "Aquatique 1",
"item.cobblemon.grepa_berry.tooltip_2": "Ne peut être consommée par le porteur",
"item.cobblemon.hondew_berry.tooltip_2": "Ne peut être consommée par le porteur",
"item.cobblemon.kelpsy_berry.tooltip_2": "Ne peut être consommée par le porteur",
"item.cobblemon.pomeg_berry.tooltip_2": "Ne peut être consommée par le porteur",
"item.cobblemon.qualot_berry.tooltip_2": "Ne peut être consommée par le porteur",
"item.cobblemon.tamato_berry.tooltip_2": "Ne peut être consommée par le porteur",
"item.cobblemon.grepa_berry.tooltip_2": "Ne peut être consommée durant les combats",
"item.cobblemon.hondew_berry.tooltip_2": "Ne peut être consommée durant les combats",
"item.cobblemon.kelpsy_berry.tooltip_2": "Ne peut être consommée durant les combats",
"item.cobblemon.pomeg_berry.tooltip_2": "Ne peut être consommée durant les combats",
"item.cobblemon.qualot_berry.tooltip_2": "Ne peut être consommée durant les combats",
"item.cobblemon.tamato_berry.tooltip_2": "Ne peut être consommée durant les combats",
"cobblemon.config.ui.max_pokemon_level.tooltip": "Le niveau maximal que les Pokémon peuvent atteindre.",
"cobblemon.config.ui.category.starter": "Pokémon de départ",
"cobblemon.config.ui.announce_drop_items.tooltip": "Indique s'il faut informer le joueur des récompenses après avoir vaincu des Pokémon sauvages.",
@@ -8091,7 +8091,7 @@
"cobblemon.config.ui.battle_spectate_max_distance.tooltip": "La distance maximale à laquelle les joueurs peuvent être spectateurs des combats.",
"cobblemon.config.ui.hide_unimplemented_pokemon_in_the_pokedex.tooltip": "Masquer ou non les Pokémon non implémentés dans le Pokédex.",
"cobblemon.config.ui.summary_pokemon_follow_cursor.tooltip": "Permet aux Pokémon de suivre ou non le curseur de la souris avec leur tête dans l'écran de résumé.",
"cobblemon.config.ui.party_portrait_animations.animate_selected.tooltip": "Le Pokémon sélectionné est animé à moins d'être K.O.",
"cobblemon.config.ui.party_portrait_animations.animate_selected.tooltip": "Animer le Pokémon sélectionné à moins d'être K.O.",
"cobblemon.config.ui.invert_pitch.tooltip": "Inverse la direction de tangage (haut et bas).",
"cobblemon.config.ui.invert_yaw.tooltip": "Inverse le sens de la rotation (gauche et droite).",
"cobblemon.config.ui.invert_roll.tooltip": "Inverse le sens de la caméra (rotation à gauche et à droite).",
@@ -8956,7 +8956,7 @@
"cobblemon.behaviour.looks_around.name": "Regarder autour",
"cobblemon.behaviour.looks_around.desc": "Regarde les entités à proximité.",
"cobblemon.behaviour.pokemon_battles.name": "Combats Pokémon",
"cobblemon.behaviour.pokemon_battles.desc": "Cesse de bouger et regarde ses adversaires pendant les combats Pokémon.",
"cobblemon.behaviour.pokemon_battles.desc": "Cesse de bouger et regarde ses adversaires durant les combats Pokémon.",
"cobblemon.behaviour.pokemon_follows_owner.desc": "Suit son dresseur partout, plus rarement s'il est dans un pâturage.",
"cobblemon.behaviour.pokemon_follows_owner.name": "Pokémon suit son dresseur",
"cobblemon.behaviour.pokemon_sleeps.name": "Pokémon dort",
@@ -9033,5 +9033,62 @@
"tag.item.cobblemon.candies": "Bonbons",
"tag.item.cobblemon.additive_iv_candies": "Bonbons additifs pour Entraînement Ultime",
"cobblemon.behaviour.pokemon_bee.name": "Polliniser les fleurs",
"cobblemon.behaviour.pokemon_bee.desc": "Pollinise les fleurs et ajoute du miel aux ruches et aux feuilles d'arbre de saccarine."
"cobblemon.behaviour.pokemon_bee.desc": "Pollinise les fleurs et ajoute du miel aux ruches et aux feuilles d'arbre de saccarine.",
"cobblemon.seasoning_ride_boosts_info_header": "Bonus de monte :",
"cobblemon.config.ui.poke_snack_pokemon_per_chunk.tooltip": "Le nombre de Pokémon autorisés dans un tronçon lors de leur apparition via des Poké Snacks.",
"cobblemon.config.ui.poke_snack_pokemon_per_chunk": "Poké Snack Pokémon par tronçon",
"tag.item.cobblemon.recipe_filters.nutrition_seasoning": "Objets d'assaisonnement nutritif",
"cobblemon.entity.variable.look_at_entity_types.name": "Regarder les types de l'entité",
"cobblemon.behaviour.configurable_resource_identifier.desc": "Permet de modifier l'identifiant de ressource qui contrôle l'apparence du PNJ.",
"item.cobblemon.moomoo_milk.tooltip": "Efface tous les changements de stats du Pokémon cible lorsque utilisé au combat.",
"key.cobblemon.toggleridingstatsgui": "Afficher les stats de monte",
"cobblemon.config.ui.summary_profile_animations.never_animate": "Ne jamais animer",
"tag.item.cobblemon.berries.mutation_result": "Baies de mutation",
"tag.item.cobblemon.berries.status_recovery": "Baies de récupération de statut",
"tag.item.cobblemon.berries.pp_recovery": "Baies de récupération de PP",
"tag.item.cobblemon.berries.stat_buff": "Baies de combat",
"cobblemon.entity.variable.resource_identifier.name": "Identifiant de ressource",
"cobblemon.entity.variable.display_name_tag.name": "Afficher l'étiquette",
"cobblemon.behaviour.name_tag_display.desc": "Permet d'afficher ou masquer l'étiquette de l'entité.",
"cobblemon.entity.variable.display_name_tag.desc": "Permet d'afficher ou masquer l'étiquette de l'entité.",
"cobblemon.behaviour.dialogue_selection.desc": "Permet de configurer l'interaction avec le PNJ afin d'ouvrir un dialogue spécifique.",
"cobblemon.behaviour.dialogue_selection.name": "Sélection du dialogue",
"cobblemon.entity.variable.dialogue_selection.name": "Dialogue",
"cobblemon.entity.variable.dialogue_selection.desc": "L'identifiant de ressource du dialogue à ouvrir lors de l'interaction, par exemple cobblemon:your_dialogue",
"cobblemon.seasoning_ride_boost_entry": "%1$s : %2$s",
"item.cobblemon.eggant_berry": "Baie Eggant",
"cobblemon.command.npcdelete.not_player": "Seuls les joueurs peuvent exécuter cette commande.",
"cobblemon.command.npcdelete.deleted": "%1$s a été supprimé.",
"cobblemon.config.ui.animate_battle_tiles.tooltip": "Permet d'animer ou non les portraits de combat des Pokémon.",
"cobblemon.config.ui.animate_battle_tiles": "Animer les tuiles de combat",
"cobblemon.config.ui.pc_profile_animations": "Animations de profil du PC",
"cobblemon.config.ui.pc_profile_animations.never_animate.tooltip": "Ne pas animer les profils",
"cobblemon.config.ui.pc_profile_animations.animate_selected": "Animer la sélection",
"cobblemon.config.ui.pc_profile_animations.never_animate": "Ne jamais animer",
"cobblemon.config.ui.pc_profile_animations.animate_selected.tooltip": "Animer le Pokémon sélectionné à moins d'être K.O.",
"cobblemon.config.ui.pc_profile_animations.always_animate": "Toujours animer",
"cobblemon.config.ui.pc_profile_animations.always_animate.tooltip": "Animer tout le PC sauf les K.O.",
"cobblemon.config.ui.summary_profile_animations": "Résumé des animation du profil",
"cobblemon.config.ui.summary_profile_animations.never_animate.tooltip": "Ne pas animer les portraits",
"cobblemon.config.ui.summary_profile_animations.animate_selected": "Animer la sélection",
"cobblemon.config.ui.summary_profile_animations.animate_selected.tooltip": "Animer le Pokémon sélectionné à moins d'être K.O.",
"cobblemon.config.ui.summary_profile_animations.always_animate": "Toujours animer",
"cobblemon.config.ui.summary_profile_animations.always_animate.tooltip": "Animer toute l'équipe sauf les Pokémon K.O.",
"tag.item.cobblemon.mint_leaves": "Feuilles d'Aromate",
"tag.item.cobblemon.berries.damage_reduction": "Baies de réduction de dégâts",
"tag.item.cobblemon.berries.damaging": "Baies de représailles",
"tag.item.cobblemon.berries.friendship": "Baies d'amitié",
"tag.item.cobblemon.berries.hp_recovery": "Baies de guérison",
"tag.item.cobblemon.berries.nature_recovery": "Baies de guérison puissantes",
"tag.item.cobblemon.berries.non_battle": "Baies non tenues",
"tag.item.cobblemon.recipe_filters.poke_puff_seasoner": "Baies pour Profiteroles",
"tag.item.cobblemon.recipe_filters.bait_seasoning": "Appâts",
"tag.item.cobblemon.recipe_filters.effect_seasoning": "Objets d'assaisonnement d'effet",
"tag.item.cobblemon.recipe_filters.flavour_seasoning": "Objets d'assaisonnement du goût",
"tag.item.cobblemon.recipe_filters.colour_seasoning": "Objets d'assaisonnement de couleur",
"tag.item.cobblemon.held.container_held_items": "Conteneurs",
"cobblemon.entity.variable.look_at_entity_types.desc": "Les types d'entités que l'entité examinera.",
"cobblemon.behaviour.configurable_resource_identifier.name": "Identifiant de ressource configurable",
"cobblemon.entity.variable.resource_identifier.desc": "L'identifiant de ressource à utiliser pour contrôler l'apparence du PNJ, tel que cobblemon:standard ou cobblemon:mudkip.",
"cobblemon.behaviour.name_tag_display.name": "Afficher l'étiquette"
}
@@ -628,7 +628,7 @@
"cobblemon.ui.evolve.hint": "%1$s est prêt à évoluer !",
"cobblemon.ui.evolve.into": "%1$s a évolué en %2$s!",
"cobblemon.label.lv": "N. %1$s",
"cobblemon.challenge_label": "Appuyez sur %1$s pour combattre.",
"cobblemon.challenge_label": "Appuyez sur %1$s pour lancer le combat.",
"cobblemon.challenge.sender": "Vous avez défié %1$s à un combat !",
"cobblemon.challenge.receiver": "%1$s vous défie au combat !",
"cobblemon.drop.item.inventory": "Vous avez reçu %2$s (%1$sx).",
@@ -646,9 +646,9 @@
"item.cobblemon.babiri_berry": "Baie Babiri",
"item.cobblemon.babiri_berry.tooltip": "Réduit de moitié les dégâts subis par une capacité super efficace de type Acier",
"item.cobblemon.belue_berry": "Baie Myrte",
"item.cobblemon.belue_berry.tooltip": "Ne peut pas être consommée par le porteur",
"item.cobblemon.belue_berry.tooltip": "Ne peut être consommée pendant les combats",
"item.cobblemon.bluk_berry": "Baie Remu",
"item.cobblemon.bluk_berry.tooltip": "Ne peut pas être consommée par le porteur",
"item.cobblemon.bluk_berry.tooltip": "Ne peut être consommée pendant les combats",
"item.cobblemon.charti_berry": "Baie Charti",
"item.cobblemon.charti_berry.tooltip": "Réduit de moitié les dégâts subis par une capacité super efficace de type Roche",
"item.cobblemon.cheri_berry": "Baie Ceriz",
@@ -664,11 +664,11 @@
"item.cobblemon.colbur_berry": "Baie Lampou",
"item.cobblemon.colbur_berry.tooltip": "Réduit de moitié les dégâts subis par une capacité super efficace de type Ténèbres",
"item.cobblemon.cornn_berry": "Baie Siam",
"item.cobblemon.cornn_berry.tooltip": "Ne peut pas être consommée par le porteur",
"item.cobblemon.cornn_berry.tooltip": "Ne peut être consommée pendant les combats",
"item.cobblemon.custap_berry": "Baie Chérim",
"item.cobblemon.custap_berry.tooltip": "Attaque en premier si le porteur a moins d'1/4 de ses PV max",
"item.cobblemon.durin_berry": "Baie Durin",
"item.cobblemon.durin_berry.tooltip": "Ne peut pas être consommée par le porteur",
"item.cobblemon.durin_berry.tooltip": "Ne peut être consommée pendant les combats",
"item.cobblemon.enigma_berry": "Baie Enigma",
"item.cobblemon.enigma_berry.tooltip": "Restaure 1/4 des PV lorsque le porteur subit une capacité super efficace",
"item.cobblemon.figy_berry": "Baie Figuy",
@@ -682,7 +682,7 @@
"item.cobblemon.hondew_berry": "Baie Lonme",
"item.cobblemon.hondew_berry.tooltip": "Ne peut pas être consommée par le porteur",
"item.cobblemon.hopo_berry": "Baie Bouhlon",
"item.cobblemon.hopo_berry.tooltip": "Ne peut pas être consommée par le porteur",
"item.cobblemon.hopo_berry.tooltip": "Restaure 10 PP d'une capacité sélectionnée lorsqu'elle est donnée à un Pokémon",
"item.cobblemon.iapapa_berry": "Baie Papaya",
"item.cobblemon.iapapa_berry.tooltip": "Restaure 1/3 des PV lorsque le porteur a moins d'1/4 de ses PV max ; rend confus si le Pokémon n'aime pas les Baies acides",
"item.cobblemon.jaboca_berry": "Baie Jaboca",
@@ -706,23 +706,23 @@
"item.cobblemon.mago_berry": "Baie Mago",
"item.cobblemon.mago_berry.tooltip": "Restaure 1/3 des PV lorsque le porteur a moins d'1/4 de ses PV max ; rend confus si le Pokémon n'aime pas les Baies sucrées",
"item.cobblemon.magost_berry": "Baie Mangou",
"item.cobblemon.magost_berry.tooltip": "Ne peut pas être consommée par le porteur",
"item.cobblemon.magost_berry.tooltip": "Ne peut être consommée pendant les combats",
"item.cobblemon.maranga_berry": "Baie Rangma",
"item.cobblemon.maranga_berry.tooltip": "Augmente la Défense Spéciale lorsque le porteur subit une capacité spéciale",
"item.cobblemon.micle_berry": "Baie Micle",
"item.cobblemon.micle_berry.tooltip": "Augmente la Précision de la prochaine capacité de ×1,2 lorsque le porteur a moins d'1/4 de ses PV max",
"item.cobblemon.nanab_berry": "Baie Nanab",
"item.cobblemon.nanab_berry.tooltip": "Ne peut pas être consommée par le porteur",
"item.cobblemon.nanab_berry.tooltip": "Ne peut être consommée pendant les combats",
"item.cobblemon.touga_berry": "Baie Touga",
"item.cobblemon.touga_berry.tooltip": "Soigne le porteur de la confusion",
"item.cobblemon.nomel_berry": "Baie Tronci",
"item.cobblemon.nomel_berry.tooltip": "Ne peut pas être consommée par le porteur",
"item.cobblemon.nomel_berry.tooltip": "Ne peut être consommée pendant les combats",
"item.cobblemon.occa_berry": "Baie Chocco",
"item.cobblemon.occa_berry.tooltip": "Réduit de moitié les dégâts subis par une capacité super efficace de type Feu",
"item.cobblemon.oran_berry": "Baie Oran",
"item.cobblemon.oran_berry.tooltip": "Restaure 10 PV lorsque le porteur a moins d'1/2 de ses PV max",
"item.cobblemon.pamtre_berry": "Baie Palma",
"item.cobblemon.pamtre_berry.tooltip": "Ne peut pas être consommée par le porteur",
"item.cobblemon.pamtre_berry.tooltip": "Ne peut être consommée pendant les combats",
"item.cobblemon.passho_berry": "Baie Pocpoc",
"item.cobblemon.passho_berry.tooltip": "Réduit de moitié les dégâts subis par une capacité super efficace de type Eau",
"item.cobblemon.payapa_berry": "Baie Yapap",
@@ -734,17 +734,17 @@
"item.cobblemon.petaya_berry": "Baie Pitaye",
"item.cobblemon.petaya_berry.tooltip": "Augmente l'Attaque Spéciale lorsque le porteur a moins d'1/4 de ses PV max",
"item.cobblemon.pinap_berry": "Baie Nanana",
"item.cobblemon.pinap_berry.tooltip": "Ne peut pas être consommée par le porteur",
"item.cobblemon.pinap_berry.tooltip": "Ne peut être consommée pendant les combats",
"item.cobblemon.pomeg_berry": "Baie Grena",
"item.cobblemon.pomeg_berry.tooltip": "Ne peut pas être consommée par le porteur",
"item.cobblemon.qualot_berry": "Baie Qualot",
"item.cobblemon.qualot_berry.tooltip": "Ne peut pas être consommée par le porteur",
"item.cobblemon.rabuta_berry": "Baie Rabuta",
"item.cobblemon.rabuta_berry.tooltip": "Ne peut pas être consommée par le porteur",
"item.cobblemon.rabuta_berry.tooltip": "Ne peut être consommée pendant les combats",
"item.cobblemon.rawst_berry": "Baie Fraive",
"item.cobblemon.rawst_berry.tooltip": "Soigne le porteur de la brûlure",
"item.cobblemon.razz_berry": "Baie Framby",
"item.cobblemon.razz_berry.tooltip": "Ne peut pas être consommée par le porteur",
"item.cobblemon.razz_berry.tooltip": "Ne peut être consommée pendant les combats",
"item.cobblemon.rindo_berry": "Baie Ratam",
"item.cobblemon.rindo_berry.tooltip": "Réduit de moitié les dégâts subis par une capacité super efficace de type Plante",
"item.cobblemon.roseli_berry": "Baie Selro",
@@ -758,7 +758,7 @@
"item.cobblemon.sitrus_berry": "Baie Sitrus",
"item.cobblemon.sitrus_berry.tooltip": "Restaure 1/4 des PV lorsque le porteur a moins d'1/2 de ses PV max",
"item.cobblemon.spelon_berry": "Baie Kiwan",
"item.cobblemon.spelon_berry.tooltip": "Ne peut pas être consommée par le porteur",
"item.cobblemon.spelon_berry.tooltip": "Ne peut être consommée pendant les combats",
"item.cobblemon.starf_berry": "Baie Frista",
"item.cobblemon.starf_berry.tooltip": "Augmente beaucoup une statistique aléatoire lorsque le porteur a moins d'1/4 de ses PV max",
"item.cobblemon.tamato_berry": "Baie Tamato",
@@ -768,9 +768,9 @@
"item.cobblemon.wacan_berry": "Baie Parma",
"item.cobblemon.wacan_berry.tooltip": "Réduit de moitié les dégâts subis par une capacité super efficace de type Électrik",
"item.cobblemon.watmel_berry": "Baie Stekpa",
"item.cobblemon.watmel_berry.tooltip": "Ne peut pas être consommée par le porteur",
"item.cobblemon.watmel_berry.tooltip": "Ne peut être consommée pendant les combats",
"item.cobblemon.wepear_berry": "Baie Repoi",
"item.cobblemon.wepear_berry.tooltip": "Ne peut pas être consommée par le porteur",
"item.cobblemon.wepear_berry.tooltip": "Ne peut être consommée pendant les combats",
"item.cobblemon.wiki_berry": "Baie Wiki",
"item.cobblemon.wiki_berry.tooltip": "Restaure 1/3 des PV lorsque le porteur a moins d'1/4 de ses PV max ; rend confus si le Pokémon n'aime pas les Baies sèches",
"item.cobblemon.yache_berry": "Baie Nanone",
@@ -6165,7 +6165,7 @@
"cobblemon.command.freezepokemon.non_pokemon": "Vous ne pointez pas un Pokémon.",
"advancements.cobblemon.craft_rod": "Équipé pour pécho !",
"advancements.cobblemon.use_bait.description": "Utiliser une baie avec la Poké Rod",
"advancements.cobblemon.craft_master_rod": "Dévouement magistral",
"advancements.cobblemon.craft_master_rod": "Cela affectera la population de Barbicha",
"cobblemon.battle.resisted_spread": "Ça n'est pas très efficace sur %1$s.",
"cobblemon.battle.superEffective_spread": "C'est super efficace sur %1$s !",
"cobblemon.battle.crit_spread": "Coup critique infligé à %1$s !",
@@ -6202,7 +6202,7 @@
"cobblemon.battle.switch.other.nickname": "%1$s envoie un %2$s (%3$s) !",
"cobblemon.battle.withdraw.self": "Reviens, %1$s !",
"cobblemon.type.suffix": "Type %1$s",
"gamerule.mobTargetInBattle": "Les mobs ciblent durant le combat",
"gamerule.mobTargetInBattle": "Les mobs ciblent pendant le combat",
"tag.item.cobblemon.red_tumblestone_bricks": "Briques de Galet",
"tag.item.cobblemon.black_tumblestone_bricks": "Briques de Galet Noir",
"tag.item.cobblemon.sky_tumblestone_bricks": "Briques de Galet Azur",
@@ -8242,12 +8242,12 @@
"cobblemon.config.ui.automatic_righting_delay.tooltip": "Délai avant l'annulation du mouvement en secondes. Une valeur négative signifie que le mouvement est désactivé, tandis qu'une valeur de 0 désactivera le mouvement lorsque la souris s'arrête.",
"cobblemon.config.ui.battle_spectate_max_distance.tooltip": "La distance maximale à laquelle les joueurs peuvent être spectateurs des combats.",
"cobblemon.ui.pc.filter.tooltip": "Format : pikachu shiny held_item lvl=1...",
"item.cobblemon.grepa_berry.tooltip_2": "Ne peut pas être consommée par le porteur",
"item.cobblemon.hondew_berry.tooltip_2": "Ne peut pas être consommée par le porteur",
"item.cobblemon.kelpsy_berry.tooltip_2": "Ne peut pas être consommée par le porteur",
"item.cobblemon.pomeg_berry.tooltip_2": "Ne peut pas être consommée par le porteur",
"item.cobblemon.qualot_berry.tooltip_2": "Ne peut pas être consommée par le porteur",
"item.cobblemon.tamato_berry.tooltip_2": "Ne peut pas être consommée par le porteur",
"item.cobblemon.grepa_berry.tooltip_2": "Ne peut être consommée pendant les combats",
"item.cobblemon.hondew_berry.tooltip_2": "Ne peut être consommée pendant les combats",
"item.cobblemon.kelpsy_berry.tooltip_2": "Ne peut être consommée pendant les combats",
"item.cobblemon.pomeg_berry.tooltip_2": "Ne peut être consommée pendant les combats",
"item.cobblemon.qualot_berry.tooltip_2": "Ne peut être consommée pendant les combats",
"item.cobblemon.tamato_berry.tooltip_2": "Ne peut être consommée pendant les combats",
"cobblemon.config.ui.max_pokemon_level.tooltip": "Le niveau maximal que les Pokémon peuvent atteindre.",
"cobblemon.config.ui.category.starter": "Pokémon de départ",
"cobblemon.config.ui.max_pokemon_friendship.tooltip": "La valeur maximale de Bonheur.",
@@ -8303,9 +8303,9 @@
"cobblemon.config.ui.trade_max_distance.tooltip": "La distance maximale à laquelle les échanges sont autorisés.",
"cobblemon.config.ui.battle_pvp_max_distance.tooltip": "La distance maximale à laquelle les combats PvP peuvent avoir lieu.",
"cobblemon.config.ui.hide_unimplemented_pokemon_in_the_pokedex.tooltip": "Masquer ou non les Pokémon non implémentés dans le Pokédex.",
"cobblemon.config.ui.party_portrait_animations.never_animate.tooltip": "Aucun portrait animé",
"cobblemon.config.ui.party_portrait_animations.animate_selected.tooltip": "Le Pokémon sélectionné est animé à moins d'être K.O.",
"cobblemon.config.ui.party_portrait_animations.always_animate.tooltip": "Toute l'équipe est animée à moins d'être K.O.",
"cobblemon.config.ui.party_portrait_animations.never_animate.tooltip": "Ne pas animer les portraits",
"cobblemon.config.ui.party_portrait_animations.animate_selected.tooltip": "Animer le Pokémon sélectionné à moins d'être K.O.",
"cobblemon.config.ui.party_portrait_animations.always_animate.tooltip": "Animer toute l'équipe sauf les Pokémon K.O.",
"cobblemon.config.ui.invert_pitch.tooltip": "Inverse la direction de tangage (haut et bas).",
"cobblemon.config.ui.invert_yaw.tooltip": "Inverse le sens de la rotation (gauche et droite).",
"cobblemon.config.ui.invert_roll.tooltip": "Inverse le sens de la caméra (rotation à gauche et à droite).",
@@ -8773,7 +8773,7 @@
"cobblemon.config.ui.despawner_max_age_ticks": "Âge maximum (Ticks)",
"cobblemon.config.ui.despawner_max_age_ticks.tooltip": "L'âge (en ticks de jeu) qu'un Pokémon doit atteindre avant de pouvoir disparaître à petite distance.",
"advancements.cobblemon.resurrect_galar_fossil": "N'arrêtez jamais d'apprendre",
"advancements.cobblemon.resurrect_galar_fossil.description": "Ressuscitez un Pokémon fossile créé à partir d'un Fossile Oiseau ou Fossile Poisson et d'un Fossile Dragon ou Fossile Aileron",
"advancements.cobblemon.resurrect_galar_fossil.description": "Ressuscitez un Pokémon fossile créé à partir d’un Fossile Oiseau ou Poisson et d’un Fossile Dragon ou Aileron",
"advancements.cobblemon.ride_pokemon": "Monteur de Pokémon !",
"advancements.cobblemon.ride_pokemon.description": "Montez sur un Pokémon pour la première fois",
"cobblemon.battle.sidestart.ally.auroraveil": "Voile Aurore augmente la résistance des Pokémon de l'équipe aux capacités physiques et spéciales !",
@@ -9047,5 +9047,92 @@
"tag.item.cobblemon.additive_iv_candies": "Bonbons additifs pour Entraînement Ultime",
"tag.item.cobblemon.subtractive_iv_candies": "Bonbons soustractifs pour Entraînement Ultime",
"cobblemon.behaviour.pokemon_bee.name": "Polliniser les fleurs",
"cobblemon.behaviour.pokemon_bee.desc": "Pollinise les fleurs et ajoute du miel aux ruches et aux feuilles d'arbre de saccarine."
"cobblemon.behaviour.pokemon_bee.desc": "Pollinise les fleurs et ajoute du miel aux ruches et aux feuilles d'arbre de saccarine.",
"cobblemon.seasoning_ride_boosts_info_header": "Bonus de monte :",
"cobblemon.seasoning_ride_boost_entry": "%1$s : %2$s",
"key.cobblemon.toggleridingstatsgui": "Afficher les stats de monte",
"item.cobblemon.eggant_berry": "Baie Eggant",
"cobblemon.command.npcdelete.deleted": "%1$s a été supprimé.",
"cobblemon.config.ui.animate_battle_tiles.tooltip": "Permet d'animer ou non les portraits de combat des Pokémon.",
"cobblemon.config.ui.pc_profile_animations": "Animations de profil du PC",
"cobblemon.config.ui.pc_profile_animations.never_animate.tooltip": "Ne pas animer les profils",
"cobblemon.config.ui.pc_profile_animations.animate_selected": "Animer la sélection",
"cobblemon.config.ui.pc_profile_animations.animate_selected.tooltip": "Animer le Pokémon sélectionné à moins d'être K.O.",
"cobblemon.config.ui.pc_profile_animations.always_animate": "Toujours animer",
"cobblemon.config.ui.pc_profile_animations.always_animate.tooltip": "Animer tout le PC sauf les K.O.",
"cobblemon.config.ui.summary_profile_animations": "Résumé des animation du profil",
"cobblemon.config.ui.summary_profile_animations.never_animate": "Ne jamais animer",
"cobblemon.config.ui.summary_profile_animations.never_animate.tooltip": "Ne pas animer les portraits",
"cobblemon.config.ui.summary_profile_animations.always_animate": "Toujours animer",
"cobblemon.config.ui.summary_profile_animations.always_animate.tooltip": "Animer toute l'équipe sauf les Pokémon K.O.",
"tag.item.cobblemon.mint_leaves": "Feuilles d'Aromate",
"tag.item.cobblemon.berries.mutation_result": "Baies de mutation",
"tag.item.cobblemon.berries.damage_reduction": "Baies de réduction de dégâts",
"tag.item.cobblemon.berries.damaging": "Baies de représailles",
"tag.item.cobblemon.berries.friendship": "Baies d'amitié",
"tag.item.cobblemon.berries.hp_recovery": "Baies de guérison",
"tag.item.cobblemon.berries.nature_recovery": "Baies de guérison puissantes",
"tag.item.cobblemon.berries.non_battle": "Baies non tenues",
"tag.item.cobblemon.berries.pp_recovery": "Baies de récupération de PP",
"tag.item.cobblemon.berries.stat_buff": "Baies de combat",
"tag.item.cobblemon.held.container_held_items": "Conteneurs",
"cobblemon.entity.variable.look_at_entity_types.name": "Regarder les types de l'entité",
"cobblemon.entity.variable.look_at_entity_types.desc": "Les types d'entités que l'entité examinera.",
"cobblemon.entity.variable.resource_identifier.name": "Identifiant de ressource",
"cobblemon.entity.variable.resource_identifier.desc": "L'identifiant de ressource à utiliser pour contrôler l'apparence du PNJ, tel que cobblemon:standard ou cobblemon:mudkip.",
"cobblemon.entity.variable.dialogue_selection.name": "Dialogue",
"cobblemon.entity.variable.dialogue_selection.desc": "L'identifiant de ressource du dialogue à ouvrir lors de l'interaction, par exemple cobblemon:your_dialogue",
"cobblemon.config.ui.poke_snack_pokemon_per_chunk.tooltip": "Le nombre de Pokémon autorisés dans un tronçon lors de leur apparition via des Poké Snacks.",
"cobblemon.config.ui.summary_profile_animations.animate_selected": "Animer la sélection",
"cobblemon.command.npcdelete.not_player": "Seuls les joueurs peuvent exécuter cette commande.",
"cobblemon.config.ui.summary_profile_animations.animate_selected.tooltip": "Animer le Pokémon sélectionné à moins d'être K.O.",
"tag.item.cobblemon.berries.status_recovery": "Baies de récupération de statut",
"cobblemon.behaviour.configurable_resource_identifier.desc": "Permet de modifier l'identifiant de ressource qui contrôle l'apparence du PNJ.",
"item.cobblemon.moomoo_milk.tooltip": "Efface tous les changements de stats du Pokémon cible lorsqu'il est utilisé au combat",
"cobblemon.config.ui.poke_snack_pokemon_per_chunk": "Poké Snack Pokémon par tronçon",
"cobblemon.config.ui.animate_battle_tiles": "Animer les tuiles de combat",
"cobblemon.config.ui.pc_profile_animations.never_animate": "Ne jamais animer",
"tag.item.cobblemon.recipe_filters.poke_puff_seasoner": "Baies pour Profiteroles",
"tag.item.cobblemon.recipe_filters.bait_seasoning": "Appâts",
"tag.item.cobblemon.recipe_filters.effect_seasoning": "Objets d'assaisonnement d'effet",
"tag.item.cobblemon.recipe_filters.nutrition_seasoning": "Objets d'assaisonnement nutritif",
"tag.item.cobblemon.recipe_filters.flavour_seasoning": "Objets d'assaisonnement du goût",
"tag.item.cobblemon.recipe_filters.colour_seasoning": "Objets d'assaisonnement de couleur",
"cobblemon.behaviour.configurable_resource_identifier.name": "Identifiant de ressource configurable",
"cobblemon.behaviour.name_tag_display.desc": "Permet d'afficher ou masquer l'étiquette de l'entité.",
"cobblemon.behaviour.name_tag_display.name": "Afficher l'étiquette",
"cobblemon.entity.variable.display_name_tag.name": "Afficher l'étiquette",
"cobblemon.entity.variable.display_name_tag.desc": "Permet d'afficher ou masquer l'étiquette de l'entité.",
"cobblemon.behaviour.dialogue_selection.name": "Sélection du dialogue",
"cobblemon.behaviour.dialogue_selection.desc": "Permet de configurer l'interaction avec le PNJ afin d'ouvrir un dialogue spécifique.",
"cobblemon.fishing_bait_effects.drops_reroll.tooltip": "%1$s%% - %3$s× Relance Des Butins",
"cobblemon.requires_debug_keys": "Les touches de débogage doivent être activées sur le serveur pour utiliser cette fonctionnalité.",
"cobblemon.requires_permission": "Vous n’avez pas l’autorisation requise pour effectuer cette action.",
"cobblemon.ui.stats.blocks_traveled": "Pas",
"item.cobblemon.eggant_berry.tooltip": "Le porteur est soigné s’il est amoureux",
"cobblemon.config.ui.default_key_items.tooltip": "Les objets rares que les joueurs obtiennent par défaut au début.",
"cobblemon.config.ui.default_key_items": "Objets Rares Par Défaut",
"advancements.cobblemon.cook_all_regional_delicacies": "Paul Bocuse",
"advancements.cobblemon.cook_all_regional_delicacies.description": "Cuisinez chaque Spécialité Régionale",
"advancements.cobblemon.cook_all_ev_mochi": "Mochi Mochi !",
"advancements.cobblemon.cook_all_ev_mochi.description": "Cuisinez chaque parfum de mochi, une délicieuse friandise capable de modifier les Points d’Effort d’un Pokémon",
"advancements.cobblemon.cook_snack": "Sentez-Moi Ça !",
"advancements.cobblemon.cook_snack.description": "Préparez un Poké Snack, un délicieux gâteau capable d’attirer certains Pokémon selon les Baies utilisées",
"advancements.cobblemon.use_poke_bait": "Souvenirs D'Enfance",
"advancements.cobblemon.use_poke_bait.description": "Préparez un Poké Appât personnalisé dans une Marmite de Feu de Camp et utilisez-le pour ferrer un Pokémon",
"advancements.cobblemon.max_ride_stats": "Poké-Athlète, Médaille D'Or",
"advancements.cobblemon.max_ride_stats.description": "Maximisez les cinq statistiques de monture d’un Pokémon en lui donnant du Jus d’Abriko aromatisé\nDifférents profils de saveurs augmentent différentes statistiques",
"advancements.cobblemon.interact_with_pokemon": "Le Bonheur À Portée De Main",
"advancements.cobblemon.interact_with_pokemon.description": "Utilisez l’un de vos nombreux outils pour obtenir des ressources de votre Pokémon",
"advancements.cobblemon.slather_saccharine": "Juste Une Lichette",
"advancements.cobblemon.slather_saccharine.description": "Étalez un pot de miel sur le tronc d’un arbre Saccharine pour attirer l’apparition de certains Pokémon",
"gamerule.healersHealPC": "Soigne les Pokémon du PC lors de l’utilisation d’une Machine de Soin",
"tag.item.cobblemon.berries.colour.white": "Baies Blanches",
"tag.item.cobblemon.berries.colour.brown": "Baies Marrons",
"tag.item.cobblemon.berries.colour.red": "Baies Rouges",
"tag.item.cobblemon.berries.colour.orange": "Baies Oranges",
"tag.item.cobblemon.berries.colour.yellow": "Baies Jaunes",
"tag.item.cobblemon.berries.colour.lime": "Baies Vert Clair",
"tag.item.cobblemon.berries.colour.green": "Baies Vertes",
"tag.item.cobblemon.berries.colour.cyan": "Baies Cyan"
}
@@ -561,7 +561,7 @@
"cobblemon.ui.interact.give.item": "持ち物",
"cobblemon.ui.interact.spectate": "観戦",
"cobblemon.ui.interact.trade": "通信交換",
"cobblemon.ui.interact.battle": "バトル",
"cobblemon.ui.interact.battle": "戦闘",
"cobblemon.ui.interact.mount.shoulder": "肩乗り",
"key.cobblemon.upshiftparty": "てもちの上を選択",
"key.cobblemon.downshiftparty": "てもちの下を選択",
@@ -6142,11 +6142,11 @@
"item.cobblemon.metal_powder.tooltip": "メタモンに 持たせると 50% 防御が あがる 不思議な粉。とても こまかくて 硬い。",
"item.cobblemon.quick_powder.tooltip": "メタモンに 持たせると 素早さが あがる 不思議な粉。とても こまかくて 硬い。",
"item.cobblemon.destiny_knot.tooltip": "細くて 長い 真っ赤な糸。持たせると メロメロに なったとき 相手も メロメロに できる。",
"item.cobblemon.power_anklet.tooltip": "持たせると バトル中の 素早さが さがるが ふつうよりも ポケモンの 素早さの基礎ポイントが 8 多く 育つ。",
"item.cobblemon.power_band.tooltip": "持たせると バトル中の 素早さが さがるが ふつうよりも ポケモンの 特防の基礎ポイントが 8 多く 育つ。",
"item.cobblemon.power_bracer.tooltip": "持たせると バトル中の 素早さが さがるが ふつうよりも ポケモンの 攻撃の基礎ポイントが 8 多く 育つ。",
"item.cobblemon.power_lens.tooltip": "持たせると バトル中の 素早さが さがるが ふつうよりも ポケモンの 特攻の基礎ポイントが 8 多く 育つ。",
"item.cobblemon.power_weight.tooltip": "持たせると バトル中の 素早さが さがるが ふつうよりも ポケモンの HPの基礎ポイントが 8 多く 育つ。",
"item.cobblemon.power_anklet.tooltip": "持たせると 戦闘中の 素早さが さがるが ふつうよりも ポケモンの 素早さの基礎ポイントが 8 多く 育つ。",
"item.cobblemon.power_band.tooltip": "持たせると 戦闘中の 素早さが さがるが ふつうよりも ポケモンの 特防の基礎ポイントが 8 多く 育つ。",
"item.cobblemon.power_bracer.tooltip": "持たせると 戦闘中の 素早さが さがるが ふつうよりも ポケモンの 攻撃の基礎ポイントが 8 多く 育つ。",
"item.cobblemon.power_lens.tooltip": "持たせると 戦闘中の 素早さが さがるが ふつうよりも ポケモンの 特攻の基礎ポイントが 8 多く 育つ。",
"item.cobblemon.power_weight.tooltip": "持たせると 戦闘中の 素早さが さがるが ふつうよりも ポケモンの HPの基礎ポイントが 8 多く 育つ。",
"item.cobblemon.psychic_seed.tooltip": "ポケモンに 持たせると サイコフィールドのときに 使って 特防が あがる。",
"item.cobblemon.flame_orb.tooltip": "触ると 熱をだす 不思議な玉。持たせると 戦闘中に やけどの状態に なる。",
"item.cobblemon.smoke_ball.tooltip": "効果なし",
@@ -6232,7 +6232,7 @@
"item.cobblemon.razor_claw.tooltip_1": "鋭く とがった ツメ。持たせると 技が 急所に 当たりやすくなる。",
"item.cobblemon.ring_target.tooltip": "持っている ポケモンは タイプの相性で 無効だった 技が 相性に関係なく 当たるように なってしまう。",
"item.cobblemon.zoom_lens.tooltip": "持たせたポケモンが 相手よりも 行動するのが 遅いとき 技が 命中しやすくなる。",
"item.cobblemon.power_belt.tooltip": "持たせると バトル中の 素早さが さがるが ふつうよりも ポケモンの 防御の基礎ポイントが 8 多く 育つ。",
"item.cobblemon.power_belt.tooltip": "持たせると 戦闘中の 素早さが さがるが ふつうよりも ポケモンの 防御の基礎ポイントが 8 多く 育つ。",
"item.cobblemon.max_ether.tooltip": "ポケモンが 覚えている 技のうち 1つのPPを すべて 回復する。",
"item.cobblemon.rock_gem.tooltip_1": "いわのタイプの ジュエル。持たせると 1度だけ いわの 技の威力が 強まる。",
"item.cobblemon.soft_sand.tooltip": "さわると サラサラする砂。持たせると じめんタイプの 技の威力が あがる。",
@@ -6270,7 +6270,7 @@
"cobblemon.ui.pc.search": "検索",
"cobblemon.ui.wallpapers": "壁紙",
"cobblemon.ui.interact.ride": "騎乗",
"cobblemon.ui.interact.give.cosmetic_item": "コスメティックアイテムの変更",
"cobblemon.ui.interact.give.cosmetic_item": "衣装アイテムの変更",
"item.cobblemon.syrupy_apple.tooltip": "とにかく 蜜入りの 不思議なりんご。カジッチュに使うと カミッチュに進化する。",
"cobblemon.fishing.no_bite": "釣れないなぁ……",
"cobblemon.ui.interact.request_already_expired": "そのリクエストはすでに期限切れです!",
@@ -6713,7 +6713,7 @@
"item.cobblemon.lumiose_galette": "ミアレガレット",
"item.cobblemon.shalour_sable": "シャラサブレ",
"item.cobblemon.big_malasada": "おおきいマラサダ",
"item.cobblemon.open_faced_sandwich": "オープンサンドイッチ",
"item.cobblemon.open_faced_sandwich": "オープンサンドウィッチ",
"cobblemon.seasoning_flavor.dry": "しぶい",
"cobblemon.seasoning_flavor.sweet": "あまい",
"cobblemon.seasoning_flavor.bitter": "にがい",
@@ -7778,7 +7778,7 @@
"cobblemon.move.gmaxtartness.desc": "キョダイマックスした アップリューが 繰りだす くさタイプの 攻撃。 相手の 回避率を 下げる。",
"cobblemon.species.basculin-white.desc": "極寒の 海で 群れを 作り エサを 分け合って 暮らす。 時が 来ると 生まれた 川に 帰る。",
"cobblemon.species.landorus-therian.desc": "霊獣の姿にて 天翔けしとき 大地に 豊穣もたらす。 衆人 これを 敬う。 一刻あれば ヒスイの地を 縦断す。",
"cobblemon.ui.pokedex.info.form.greninja-bond": " ",
"cobblemon.ui.pokedex.info.form.greninja-bond": "きずなへんげ",
"cobblemon.species.vivillon-polar.desc": "生まれた 土地の 気候や 風土の 影響により 模様が 変わる。 降雪の 多い 土地の 姿。",
"cobblemon.species.vivillon-archipelago.desc": "生まれた 土地の 気候や 風土の 影響により 模様が 変わる。 島が 群れ成す 土地の 姿。",
"cobblemon.species.furfrou-diamond.desc": "ボサボサの 体毛を 刈りこむと 姿が 美しくなる だけでなく 身体の キレが 良くなるのだ。",
@@ -7921,7 +7921,7 @@
"cobblemon.species.arceus-ice.desc": "アルセウスの持つ つららのプレートには 文字が 刻まれている。 「そのもの じかん くうかんの 2ひき ぶんしんとして よに はなつ」",
"cobblemon.ui.pokedex.info.form.arceus-dragon": "アルセウスのすがた",
"cobblemon.ui.pokedex.info.form.arceus-dark": "アルセウスのすがた",
"cobblemon.species.arceus-dark.desc": "アルセウスの持つ りゅうのプレートには 文字が 刻まれている。 「そのもの じかん くうかんを つなぐ 3びきの ポケモンをも うみだす」",
"cobblemon.species.arceus-dark.desc": "アルセウスの持つ こわもてプレートには 文字が 刻まれている。 「2ひきに もの 3びきに こころ いのり うませ せかい かたちづくる」",
"cobblemon.ui.pokedex.info.form.arceus-fairy": "アルセウスのすがた",
"cobblemon.ui.pokedex.info.form.oshawott": " ",
"cobblemon.ui.pokedex.info.form.dewott": " ",
@@ -8068,8 +8068,8 @@
"cobblemon.ui.pokedex.info.form.zygarde": "50%フォルム",
"cobblemon.ui.pokedex.info.form.zygarde-10": "10%フォルム",
"cobblemon.species.zygarde-10.desc": "鋭い キバで 敵を 仕留める。 ずっと この身体を 維持 できず 一定時間で バラバラになる。",
"cobblemon.ui.pokedex.info.form.zygarde-10c": "10%フォルム",
"cobblemon.ui.pokedex.info.form.zygarde-50c": "50%フォルム",
"cobblemon.ui.pokedex.info.form.zygarde-10c": "10%(スワームチェンジ)",
"cobblemon.ui.pokedex.info.form.zygarde-50c": "50%(スワームチェンジ)",
"cobblemon.species.zygarde-50c.desc": "生態系を 脅かす ものと 戦うとき 更に 強力な 姿に 変化すると いわれる。",
"cobblemon.ui.pokedex.info.form.zygarde-complete": "パーフェクトフォルム",
"cobblemon.species.zygarde-complete.desc": "生態系を 脅かす者を 圧倒的な 力を 以て 制圧する ジガルデの 姿。",
@@ -8084,7 +8084,7 @@
"cobblemon.species.oricorio-pau.desc": "うすもものミツを 吸った オドリドリ。 踊っている ときは トレーナーの 指示が 聞こえないほど マイペース。",
"cobblemon.ui.pokedex.info.form.oricorio-sensu": "まいまいスタイル",
"cobblemon.ui.pokedex.info.form.rockruff": " ",
"cobblemon.ui.pokedex.info.form.rockruff-dusk": " ",
"cobblemon.ui.pokedex.info.form.rockruff-dusk": "マイペース",
"cobblemon.ui.pokedex.info.form.lycanroc": "まひるのすがた",
"cobblemon.ui.pokedex.info.form.lycanroc-midnight": "まよなかのすがた",
"cobblemon.species.lycanroc-midnight.desc": "気に入らない 命令は 平気で 無視。 相手を 仕留めるためなら 傷つくことも まるで 気にしない。",
@@ -8509,5 +8509,524 @@
"cobblemon.config.ui.minimum_level_range_max": "最小レベル範囲の最大値",
"cobblemon.config.ui.enable_spawning": "スポーンを有効にする",
"cobblemon.config.ui.enable_spawning.tooltip": "ポケモンの出現を許可するか否か。",
"cobblemon.battle.prepare.electroshot": "%1$sは 電気を 吸収した!"
"cobblemon.battle.prepare.electroshot": "%1$sは 電気を 吸収した!",
"cobblemon.config.ui.auto_update_showdown.tooltip": "Showdown を現在の Cobblemon バージョンに同梱されているバージョンに自動的に更新するかどうか。",
"cobblemon.config.ui.max_nearby_blocks_horizontal_range.tooltip": "スポーン条件において、ブロックが「近くにある」とみなされる水平方向の最大ブロック数。この値を下げると、パフォーマンスがわずかに向上します。",
"cobblemon.config.ui.max_nearby_blocks_vertical_range.tooltip": "スポーン条件において、ブロックが「近くにある」とみなされる垂直方向の最大ブロック数。この値を下げると、パフォーマンスがわずかに向上します。",
"cobblemon.config.ui.experience_share_multiplier.tooltip": "がくしゅうそうちを持っているポケモンに与えられる総経験値の倍率。",
"cobblemon.config.ui.auto_update_showdown": "Showdown自動更新",
"cobblemon.config.ui.spawning_zone_diameter": "スポーン域の直径",
"cobblemon.seasoning_ride_boosts_info_header": "騎乗能力上昇:",
"cobblemon.seasoning_ride_boost_entry": "%1$s:%2$s",
"item.cobblemon.eggant_berry": "ビスナのみ",
"cobblemon.config.ui.spawning_zone_diameter.tooltip": "スポーンアクションが発生し得るスポーンゾーンの直径。この値が大きいほど、パフォーマンスを犠牲にしてスポーンがより確実に頻繁に発生する。",
"cobblemon.config.ui.spawning_zone_height.tooltip": "スポーンアクションが発生し得るスポーンゾーンの高さ。この値が大きいほど、パフォーマンスを犠牲にしてスポーンがより確実に頻繁に発生する。",
"cobblemon.config.ui.ticks_between_spawn_attempts": "スポーン試行間の間隔",
"cobblemon.config.ui.ticks_between_spawn_attempts.tooltip": "スポーン試行間のティック数(約20/秒)",
"cobblemon.config.ui.minimum_spawning_zone_distance_from_player": "プレイヤーからの最小スポーンゾーン距離",
"cobblemon.config.ui.minimum_spawning_zone_distance_from_player.tooltip": "プレイヤーからポケモンが出現できる最小ブロック数。",
"cobblemon.config.ui.maximum_spawning_zone_distance_from_player": "プレイヤーからの最大スポーンゾーン距離",
"cobblemon.config.ui.maximum_spawning_zone_distance_from_player.tooltip": "ポケモンが出現できるプレイヤーからのブロックの最大数。",
"cobblemon.config.ui.maximum_spawns_per_pass": "1パスあたりの最大スポーン数",
"cobblemon.config.ui.maximum_spawns_per_pass.tooltip": "スポーンシステムの1回のパスで発生可能な最大スポーン数。スポーンゾーンのサイズが小さい場合、このオプションの効果はほとんどありません。",
"cobblemon.config.ui.export_spawn_config": "スポーン設定のエクスポート",
"cobblemon.config.ui.save_pokemon_to_world.tooltip": "チャンク/ワールドの再読み込み後もポケモンが存在するよう、ワールドに保存するかどうか。",
"cobblemon.config.ui.export_starter_config.tooltip": "パートナーポケモンリストを編集するための starter.json を生成するかどうか。",
"cobblemon.config.ui.max_nearby_blocks_horizontal_range": "最大近傍ブロック水平範囲",
"cobblemon.config.ui.export_spawn_config.tooltip": "より具体的なスポーン設定のためにスポーン構成を生成するかどうか。",
"cobblemon.config.ui.save_pokemon_to_world": "ポケモンをワールドに保存",
"cobblemon.config.ui.export_starter_config": "エクスポートパートナーポケモン設定",
"cobblemon.config.ui.max_vertical_space": "最大垂直スペース",
"cobblemon.config.ui.max_vertical_space.tooltip": "スポーン位置の上方にあるヘッドルームを調査するためにチェックする距離。この値はパフォーマンス上の理由で存在しますが、スポーンファイル内の最大「高さ」/「深さ」条件を下回ってはなりません。",
"cobblemon.config.ui.max_nearby_blocks_vertical_range": "最大近傍ブロック垂直範囲",
"cobblemon.config.ui.spawning_zone_height": "スポーン域の高さ",
"cobblemon.config.ui.experience_share_multiplier": "経験シェア乗数",
"cobblemon.config.ui.lucky_egg_multiplier": "しあわせタマゴ乗数",
"cobblemon.config.ui.default_flee_distance": "デフォルトの逃走距離",
"cobblemon.config.ui.default_flee_distance.tooltip": "プレイヤーが戦闘(非PvP)から逃げるために必要な距離。値が-1の場合、戦闘から逃げることはできません。",
"cobblemon.config.ui.allow_experience_from_pvp.tooltip": "PvPバトルからの経験値獲得を許可するか否か。",
"cobblemon.config.ui.allow_experience_from_pvp": "PvPでの経験値獲得を許可する",
"cobblemon.config.ui.lucky_egg_multiplier.tooltip": "しあわせタマゴを持っているポケモンに与えられる総経験値の倍率。",
"cobblemon.config.ui.faint_awaken_health_percent": "ひんし復活体力パーセント",
"cobblemon.config.ui.capture_calculator": "捕獲計算機",
"cobblemon.config.ui.experience_multiplier": "経験値倍率",
"cobblemon.config.ui.experience_multiplier.tooltip": "経験値計算用の追加経験値倍率。",
"cobblemon.config.ui.pokemon_per_chunk.tooltip": "チャンク内でスポーン時に許可されるポケモンの数。",
"cobblemon.config.ui.poke_snack_pokemon_per_chunk": "チャンクごとのポケモン数(ポケモンスナック)",
"cobblemon.config.ui.poke_snack_pokemon_per_chunk.tooltip": "ポケモンスナックでスポーンする際、チャンク内に許可されるポケモンの数。",
"cobblemon.config.ui.pokemon_per_chunk": "チャンクごとのポケモン数",
"cobblemon.config.ui.passive_statuses": "受動的状態",
"cobblemon.config.ui.passive_statuses.tooltip": "ステータス効果を解除するまでの秒数の範囲。効果を適用するたびに、この範囲から値がランダムに選択される。",
"cobblemon.config.ui.infinite_healer_charge": "かいふく装置無限チャージ",
"cobblemon.config.ui.max_healer_charge": "かいふく装置最大チャージ",
"cobblemon.config.ui.seconds_to_charge_healing_machine": "かいふく装置の完全充電までの秒数",
"cobblemon.config.ui.seconds_to_charge_healing_machine.tooltip": "かいふく装置が完全に充電されるまでに要する秒数。",
"cobblemon.config.ui.default_faint_timer.tooltip": "ひんしになったポケモンを復活させるまでの秒数。",
"cobblemon.config.ui.faint_awaken_health_percent.tooltip": "デフォルトひんしタイマーが終了した際に回復するHP量。",
"cobblemon.config.ui.heal_percent": "回復率",
"cobblemon.config.ui.heal_percent.tooltip": "かいふくタイマーが終了した際に回復するHP量。",
"cobblemon.config.ui.heal_timer": "かいふくタイマー",
"cobblemon.config.ui.heal_timer.tooltip": "HPが自然に回復するまでの秒数。",
"cobblemon.config.ui.base_apricorn_tree_generation_chance": "ぼんぐりの木生成確率",
"cobblemon.config.ui.base_apricorn_tree_generation_chance.tooltip": "ワールド生成時にバイオームに基づいてぼんぐりの木が出現する確率への乗数。",
"cobblemon.config.ui.display_entity_level_label": "エンティティレベルラベルを表示",
"cobblemon.config.ui.player_damage_pokemon": "プレイヤーがポケモンを傷付けられるか",
"cobblemon.config.ui.apple_leftovers_chance.tooltip": "プレイヤーが#cobblemon:held/leaves_leftoversを持つアイテムを食べた際に、たべのこしを落とす確率。",
"cobblemon.config.ui.max_roots_in_area": "エリア内の最大ねっこ数",
"cobblemon.config.ui.max_roots_in_area.tooltip": "8x2x8の球体内で生成可能な#cobblemon:rootsの最大数。",
"cobblemon.config.ui.big_root_propagation_chance.tooltip": "おおきなねっこが可能な限りより多くの根を伸ばす可能性。",
"cobblemon.config.ui.energy_root_chance": "ちからのねっこ発生率",
"cobblemon.config.ui.big_root_propagation_chance": "おおきなねっこの繁殖率",
"cobblemon.config.ui.walking_in_battle_animations.tooltip": "戦闘アニメーション中に歩行アニメーションを再生するかどうか。",
"cobblemon.config.ui.battle_wild_max_distance": "野生バトル最大距離",
"cobblemon.config.ui.battle_wild_max_distance.tooltip": "野生でのバトルが発生する最大距離。",
"cobblemon.config.ui.trade_max_distance": "交換最大距離",
"cobblemon.config.ui.battle_pvp_max_distance": "ポケモンバトルPvP最大距離",
"cobblemon.config.ui.battle_pvp_max_distance.tooltip": "PvPバトルが発生する最大距離。",
"cobblemon.config.ui.battle_spectate_max_distance": "バトル観戦最大距離",
"cobblemon.config.ui.battle_spectate_max_distance.tooltip": "プレイヤーがバトルを観戦できる最大距離。",
"cobblemon.config.ui.max_pokedex_scanning_detection_range": "ポケモン図鑑スキャン検知範囲最大数",
"cobblemon.config.ui.hide_unimplemented_pokemon_in_the_pokedex.tooltip": "未実装のポケモンをポケモン図鑑から非表示にするかどうか。",
"cobblemon.config.ui.player_damage_pokemon.tooltip": "プレイヤーが通常のMinecraftエンティティのようにポケモンを攻撃できるかどうか。",
"cobblemon.config.ui.apple_leftovers_chance": "リンゴからのたべのこし発生チャンス",
"cobblemon.config.ui.pasture_max_wander_distance.tooltip": "牧草ブロックからポケモンが移動できるブロックの最大数。",
"cobblemon.config.ui.pasture_max_per_chunk": "牧草地の最大値(チャンク毎)",
"cobblemon.config.ui.trade_max_distance.tooltip": "ポケモン交換が許可される最大距離。",
"cobblemon.config.ui.hide_unimplemented_pokemon_in_the_pokedex": "未実装のポケモンをポケモン図鑑に非表示にする",
"cobblemon.config.ui.party_portrait_animations.never_animate.tooltip": "ポートレートはアニメーションしない",
"cobblemon.config.ui.infinite_healer_charge.tooltip": "かいふく装置がポケモンを回復するためのチャージを無限に持つかどうか。",
"cobblemon.config.ui.display_entity_level_label.tooltip": "ポケモンの上にレベルを表示するかどうか。",
"cobblemon.config.ui.energy_root_chance.tooltip": "おおきなねっこがちからのねっこを成長させる確率。",
"cobblemon.config.ui.max_dynamax_level.tooltip": "ポケモンが成長できるダイマックスレベルの最大数。",
"cobblemon.config.ui.max_inserted_fossil_items.tooltip": "いでんしアナライザーに追加できる化石の最大数。",
"cobblemon.config.ui.summary_pokemon_follow_cursor.tooltip": "ポケモンが手持ちを見る画面でマウスカーソルに頭を向けるべきかどうか。",
"cobblemon.config.ui.pc_profile_animations": "PCプロフィールをアニメーションする",
"cobblemon.config.ui.display_name_for_unknown_pokemon.tooltip": "まだポケモン図鑑でスキャンされていないポケモンの名前の表示の有無。",
"cobblemon.config.ui.max_dynamax_level": "最大ダイマックスレベル",
"cobblemon.config.ui.pasture_block_update_ticks.tooltip": "牧草ブロックの更新間隔におけるサーバーティックの数。",
"cobblemon.config.ui.summary_profile_animations": "概要プロフィールをアニメーションする",
"cobblemon.config.ui.shiny_rate.tooltip": "出現したポケモンの色違い率。\"[入力した数値]分の1\"となる。0の場合、出現するポケモンは全て通常色になる。",
"cobblemon.config.ui.max_pokedex_scanning_detection_range.tooltip": "ポケモン図鑑がポケモンを検知・スキャンできる最大距離。",
"cobblemon.config.ui.allow_spectating": "観戦を許可する",
"cobblemon.config.ui.allow_spectating.tooltip": "バトルを観戦可能にするかどうか。",
"cobblemon.config.ui.max_healer_charge.tooltip": "ヒーリングマシンの最大回復量(全HP回復)。1チャージは「げんきのかたまり」に相当し、さらにPPも回復する。",
"cobblemon.config.ui.default_faint_timer": "デフォルトひんしタイマー",
"cobblemon.config.ui.display_entity_name_label": "エンティティ名ラベルを表示",
"cobblemon.config.ui.display_entity_name_label.tooltip": "ポケモンの名前の表示位置を上に設定するか。",
"cobblemon.config.ui.display_name_for_unknown_pokemon": "不明なポケモンの表示名",
"cobblemon.config.ui.display_entity_labels_when_crouching_only.tooltip": "ポケモンがしゃがんでいる時のみ、または常に名前の表示を行うか。",
"cobblemon.config.ui.display_entity_labels_when_crouching_only": "しゃがんでいる時のみエンティティラベルを表示",
"cobblemon.config.ui.shiny_rate": "色違い確率",
"cobblemon.config.ui.shiny_notice_particles_distance": "色違い通知パーティクルの距離",
"cobblemon.config.ui.shiny_notice_particles_distance.tooltip": "ポケモン用の色違い粒子が現れ始める距離。",
"cobblemon.config.ui.capture_calculator.tooltip": "捕獲計算機のID。別のMODによって追加される可能性があります。IDが存在しない場合、デフォルトの捕獲計算機が使用されます。",
"cobblemon.config.ui.tera_type_rate": "テラスタイプ率",
"cobblemon.config.ui.tera_type_rate.tooltip": "スポーンしたポケモンのタイプと異なったテラタイプの出現確率。\"[入力した数値]分の1\"となる。",
"cobblemon.config.ui.default_pastured_pokemon_limit": "デフォルトの牧草地ポケモン制限",
"cobblemon.config.ui.default_pastured_pokemon_limit.tooltip": "牧草ブロックに配置できるポケモンの最大数。",
"cobblemon.config.ui.pasture_block_update_ticks": "牧草ブロックの更新ティック",
"cobblemon.config.ui.pasture_max_wander_distance": "牧草地最大移動距離",
"cobblemon.config.ui.pasture_max_per_chunk.tooltip": "1チャンクで送り出せる牧草地ポケモンの上限数。",
"cobblemon.config.ui.max_inserted_fossil_items": "挿入された化石アイテムの最大数",
"cobblemon.config.ui.walking_in_battle_animations": "戦闘中の歩行アニメーション",
"cobblemon.config.ui.summary_pokemon_follow_cursor": "ポケモンをカーソルに追従させる",
"cobblemon.config.ui.animate_battle_tiles": "バトルタイルをアニメーション化",
"cobblemon.config.ui.party_portrait_animations.never_animate": "決してアニメーション化しない",
"cobblemon.config.ui.animate_battle_tiles.tooltip": "ポケモンの戦闘ポートレートをアニメーション化するかどうか。",
"cobblemon.config.ui.party_portrait_animations": "手持ちのポートレートをアニメーションする",
"cobblemon.config.ui.party_portrait_animations.animate_selected": "選択範囲をアニメーション化",
"cobblemon.config.ui.party_portrait_animations.animate_selected.tooltip": "選択したポケモンはひんし状態でない限りアニメーションする",
"cobblemon.config.ui.party_portrait_animations.always_animate": "常にアニメーションを適用する",
"cobblemon.config.ui.party_portrait_animations.always_animate.tooltip": "ひんしになっていない限り、手持ち全員がアニメーションする",
"cobblemon.config.ui.pc_profile_animations.never_animate": "決してアニメーション化しない",
"cobblemon.config.ui.pc_profile_animations.never_animate.tooltip": "プロフィールはアニメーションしない",
"cobblemon.config.ui.pc_profile_animations.animate_selected": "選択範囲をアニメーション化",
"cobblemon.config.ui.pc_profile_animations.animate_selected.tooltip": "選択したポケモンはひんし状態でない限りアニメーションする",
"cobblemon.config.ui.pc_profile_animations.always_animate.tooltip": "ひんしになっていない限り、PC全体がアニメーションする",
"cobblemon.config.ui.summary_profile_animations.never_animate": "決してアニメーション化しない",
"cobblemon.config.ui.pc_profile_animations.always_animate": "常にアニメーションを適用する",
"cobblemon.config.ui.third_person_view_bobbing": "三人称視点の揺れ動き",
"cobblemon.battle.activate.mummy": "%1$sは 特性が ミイラに なっちゃった!",
"cobblemon.config.ui.summary_profile_animations.always_animate": "常にアニメーションを適用する",
"cobblemon.config.ui.summary_profile_animations.always_animate.tooltip": "ひんしになっていない限り、手持ち全員がアニメーションする",
"cobblemon.config.ui.third_person_view_bobbing.tooltip": "TRUEの場合、デフォルトのMinecraft動作に従いプレイヤーの頭部の真後ろを移動する。FALSEの場合、ポケモンから固定オフセットを保って移動する。",
"cobblemon.config.ui.x_axis_sensitivity": "X軸感度",
"cobblemon.config.ui.x_axis_sensitivity.tooltip": "X軸の入力値にこの量を乗算します。",
"cobblemon.config.ui.despawner_far_distance.tooltip": "プレイヤーから最大距離。この距離を超えると、ポケモンが最低年齢を超えている場合にスポーン解除される。",
"cobblemon.config.ui.despawner_min_age_ticks.tooltip": "ポケモンが遠距離で消えるまでに到達しなければならない最低年齢(ゲーム内ティック数)。",
"cobblemon.config.ui.despawner_max_age_ticks": "最大年齢(ティック数)",
"cobblemon.config.ui.despawner_max_age_ticks.tooltip": "ポケモンが近距離境界で消滅するまでに到達しなければならない年齢(ゲーム内ティック数)。",
"cobblemon.config.ui.enable_debug_keys": "デバッグキーを有効にする",
"cobblemon.battle.shift": "%1$sは 真ん中に 移動した!",
"cobblemon.battle.center": "リセットムーブ!",
"cobblemon.battle.superEffective_spread": "%1$sに 効果は バツグンだ!",
"cobblemon.battle.resisted_spread": "%1$sに 効果は 今ひとつだ",
"cobblemon.battle.activate.snaptrap": "%1%sは トラバサミに 捕らわれた!",
"cobblemon.battle.damage.snaptrap": "%1$sは トラバサミの ダメージを 受けている",
"cobblemon.battle.damage.thundercage": "%1$sは サンダープリズンの ダメージを 受けている",
"cobblemon.battle.end.infestation": "%1$sは まとわりつくから 解放された!",
"cobblemon.config.ui.invert_pitch": "ピッチ反転",
"cobblemon.config.ui.automatic_righting_delay": "自動復元遅延",
"cobblemon.config.ui.disable_roll": "ロールを無効にする",
"cobblemon.config.ui.despawner_near_distance": "近距離",
"cobblemon.config.ui.remember_riding_camera.tooltip": "騎乗できるポケモンをマウントした際、カメラモードが最後に使用したカメラモードに自動で切り替わるかどうか。",
"cobblemon.config.ui.allow_starter_on_join": "参加時にパートナーポケモンを許可する",
"cobblemon.battle.clearboost": "%1$sの 能力変化が 元に戻った!",
"cobblemon.battle.damage.ironbarbs": "%1$sは 傷ついた!",
"cobblemon.battle.activate.allyswitch": "%1$sと %2$sは 場所を 入れ替えた!",
"cobblemon.battle.activate.leppaberry": "%1$sは ヒメリのみで %3$sのPPを 回復した!",
"cobblemon.battle.damage.roughskin": "%1$sは 傷ついた!",
"cobblemon.config.ui.enable_debug_keys.tooltip": "追加コマンドとチャット記録機能を有効化し、ポケモンの実装を支援します(コマンド一覧はCobblemon公式Wikiを参照)。",
"cobblemon.battle.end.sandtomb": "%1$sは すなじごくから 解放された!",
"cobblemon.battle.end.stockpile": "%1$sが たくわえていた 効果が切れた!",
"cobblemon.config.ui.summary_profile_animations.never_animate.tooltip": "ポケモン像は動きません",
"cobblemon.config.ui.summary_profile_animations.animate_selected": "選択範囲をアニメーション化",
"cobblemon.config.ui.summary_profile_animations.animate_selected.tooltip": "選択したポケモンはひんし状態でない限りアニメーションする",
"cobblemon.config.ui.invert_pitch.tooltip": "ピッチ方向(上と下)を反転する。",
"cobblemon.config.ui.invert_yaw": "ヨー反転",
"cobblemon.config.ui.invert_roll": "ロール反転",
"cobblemon.config.ui.invert_yaw.tooltip": "ヨー方向(左と右)を反転する。",
"cobblemon.config.ui.invert_roll.tooltip": "ロール方向(上と下)を反転する。",
"cobblemon.config.ui.swap_x_and_y_axes": "X軸とY軸を入れ替える",
"cobblemon.config.ui.swap_x_and_y_axes.tooltip": "X軸とY軸の入力を入れ替える。",
"cobblemon.config.ui.automatic_righting_delay.tooltip": "ロール解除までの遅延は数秒で解除されます。負の値はロール解除が無効化されていることを示し、0の値はマウス操作が停止した瞬間にロール解除が即座に開始されることを意味します。",
"cobblemon.config.ui.disable_roll.tooltip": "カメラの撮影を止める。",
"cobblemon.config.ui.display_controls_duration_seconds": "表示コントロールオーバーレイの表示時間",
"cobblemon.config.ui.display_controls_duration_seconds.tooltip": "ポケモンを捕獲した後、表示コントロールオーバーレイが画面上に表示される秒数。",
"cobblemon.config.ui.despawner_near_distance.tooltip": "プレイヤーからポケモンが消えない最小距離(年齢に関係なく)。",
"cobblemon.config.ui.despawner_far_distance": "遠い距離",
"cobblemon.config.ui.despawner_min_age_ticks": "最小年齢(ティック数)",
"cobblemon.config.ui.y_axis_sensitivity": "Y軸感度",
"cobblemon.config.ui.y_axis_sensitivity.tooltip": "Y軸の入力値にこの量を乗算します。",
"cobblemon.config.ui.infinite_ride_stamina": "無限ライドスタミナ",
"cobblemon.config.ui.infinite_ride_stamina.tooltip": "騎乗できるポケモンが無限のスタミナを持つかどうか。",
"cobblemon.config.ui.remember_riding_camera": "騎乗カメラの記憶",
"cobblemon.config.ui.prompt_starter_once_only": "プロンプトスターターを1回だけ",
"cobblemon.battle.crit_spread": "%1$sの 急所に 当たった!",
"cobblemon.battle.start.flashfire": "%1$sは ほのおの 威力が 上がった!",
"cobblemon.battle.start.syrupbomb": "%1$sは あめまみれに なった!",
"cobblemon.battle.activate.custapberry": "%1$sは イバンのみで 行動が はやくなった!",
"cobblemon.battle.activate.lingeringaroma": "%2$sは においが うつって とれなくなっちゃった!",
"cobblemon.battle.activate.thundercage": "%2$sは %1$sを 閉じ込めた!",
"cobblemon.battle.damage.liquidooze": "%1$sは ヘドロえきを 吸い取った!",
"tag.item.cobblemon.pokedex": "ポケモン図鑑",
"tag.item.cobblemon.aprijuices": "ボンドリンク",
"gamerule.battleInvulnerability": "バトル無敵状態",
"gamerule.mobTargetInBattle": "バトル中のMobのターゲット",
"tag.item.cobblemon.berries.damage_reduction": "ダメージ軽減きのみ",
"tag.item.cobblemon.berries.damaging": "反撃ダメージきのみ",
"tag.item.cobblemon.berries.friendship": "なかよし度を上げるきのみ",
"tag.item.cobblemon.berries.hp_recovery": "体力回復きのみ",
"tag.item.cobblemon.berries.nature_recovery": "強力な回復きのみ",
"tag.item.cobblemon.berries.non_battle": "もちものとして使えないきのみ",
"tag.item.cobblemon.berries.pp_recovery": "PP回復きのみ",
"tag.item.cobblemon.berries.stat_buff": "バトル用きのみ",
"tag.item.cobblemon.berries.status_recovery": "ステータス回復きのみ",
"tag.item.cobblemon.tumblestone_bricks": "たまいしレンガ",
"tag.item.cobblemon.red_tumblestone_bricks": "たまいしレンガ",
"tag.item.cobblemon.black_tumblestone_bricks": "くろいろたまいしレンガ",
"tag.item.cobblemon.sky_tumblestone_bricks": "そらいろたまいしレンガ",
"tag.item.cobblemon.poke_rods": "ボールのつりざお",
"tag.item.cobblemon.evolution_stone_blocks": "進化の石ブロック",
"tag.item.cobblemon.gilded_chests": "たからばこ",
"tag.item.cobblemon.held.visibility.face": "顔表示もちもの",
"tag.item.cobblemon.held.visibility.hat": "帽子表示もちもの",
"tag.item.cobblemon.sandwich_veggies": "サンドウィッチ野菜",
"tag.item.cobblemon.held.visibility.hidden": "表示されないもちもの",
"tag.item.cobblemon.saccharine_logs": "あまったるい木",
"tag.item.cobblemon.full_heal_ingredients": "なんでもなおしの材料",
"tag.item.cobblemon.remedy_berries": "カンポーやくきのみ",
"tag.item.cobblemon.mochis": "モチ",
"tag.item.cobblemon.poke_food": "ポケモンフード",
"tag.item.cobblemon.super_potion_ingredients": "いいキズぐすりの材料",
"tag.item.cobblemon.regional_delicacies": "地方の珍味",
"tag.item.cobblemon.full_heal_bottles": "なんでもなおしのボトル",
"tag.item.cobblemon.small_flowers": "小さな花",
"tag.item.cobblemon.held.blacklisted_items_to_hold": "ブラックリスト登録済みもちもの",
"tag.item.cobblemon.held.whitelisted_items_to_hold": "ホワイトリスト登録済みもちもの",
"tag.item.cobblemon.pokedex_screen": "ポケモン図鑑スクリーン",
"cobblemon.battle.sideend.opponent.stealthrock": "相手の 周りの ステルスロックが 消え去った!",
"tag.item.cobblemon.berries.mutation_result": "変異きのみ",
"tag.item.cobblemon.mint_leaves": "ミントの葉",
"tag.item.cobblemon.recipe_filters.poke_puff_seasoner": "ポフレきのみ",
"cobblemon.behaviour.pokemon_sleeps.name": "ポケモンは眠る",
"tag.item.cobblemon.recipe_filters.bait_seasoning": "エサ",
"tag.item.cobblemon.recipe_filters.effect_seasoning": "エフェクト調味料アイテム",
"tag.item.cobblemon.recipe_filters.nutrition_seasoning": "栄養調味料アイテム",
"tag.item.cobblemon.recipe_filters.flavour_seasoning": "風味調味料アイテム",
"tag.item.cobblemon.recipe_filters.colour_seasoning": "カラー調味料アイテム",
"tag.item.cobblemon.candies": "アメ",
"tag.item.cobblemon.subtractive_iv_candies": "下降すごいとっくんアメ",
"tag.item.cobblemon.held.container_held_items": "コンテナ",
"cobblemon.entity.variable.challenge_cooldown.name": "挑戦クールダウン",
"cobblemon.entity.variable.player_win_command.name": "プレイヤー勝利コマンド",
"cobblemon.entity.variable.player_win_command.desc": "プレイヤーがエンティティに勝利した際に実行するコマンド。プレイヤー名の箇所には{{player}}を使用してください。",
"cobblemon.entity.variable.on_victory.name": "勝利のMoLang",
"cobblemon.entity.variable.on_victory.desc": "エンティティが戦闘に勝利した際に実行されるMoLang式。対象エンティティはq.entityとなる。",
"cobblemon.entity.variable.on_defeat.name": "敗北のMoLang",
"cobblemon.entity.variable.on_player_wins.name": "プレイヤーが勝利した場合のMoLang",
"cobblemon.entity.variable.on_player_wins.desc": "プレイヤーがエンティティとの戦闘に勝利した際に実行されるMoLang式。プレイヤーはq.player、エンティティはq.entityとして扱われる。",
"cobblemon.entity.variable.on_player_loses.name": "プレイヤーが敗北した場合のMoLang",
"cobblemon.entity.variable.on_player_loses.desc": "プレイヤーがエンティティとの戦闘に敗北した際に実行されるMoLang式。プレイヤーはq.player、エンティティはq.entityで表される。",
"cobblemon.entity.variable.home_x.name": "ホーム X",
"cobblemon.entity.variable.home_x.desc": "エンティティのホーム位置のX座標。",
"cobblemon.entity.variable.home_y.name": "ホーム Y",
"cobblemon.entity.variable.home_y.desc": "エンティティのホーム位置のY座標。",
"cobblemon.entity.variable.home_z.name": "ホーム Z",
"cobblemon.entity.variable.home_z.desc": "エンティティのホーム位置のZ座標。",
"cobblemon.entity.variable.home_radius.desc": "エンティティがホームポジションから離れて移動できる最大距離。",
"cobblemon.entity.variable.home_radius.name": "ホーム 半径",
"cobblemon.entity.variable.locked_rotation.name": "ロックされた回転",
"cobblemon.entity.variable.locked_rotation.desc": "エンティティの回転がロックされているかどうか。",
"cobblemon.entity.variable.locked_yaw.name": "ロックされたヨー",
"cobblemon.entity.variable.locked_pitch.name": "ロックされたピッチ",
"cobblemon.entity.variable.locked_pitch.desc": "エンティティのピッチ回転(度)。ロックされた回転がオンの場合のみロックされます",
"cobblemon.entity.variable.exit_battle_when_hurt.desc": "エンティティがダメージを受けた際にバトルから離脱するか否か。",
"cobblemon.entity.variable.use_healing_machines.name": "かいふく装置を使う",
"cobblemon.entity.variable.wander_chance.name": "うろつく機会",
"cobblemon.entity.variable.wanders.name": "うろつく",
"cobblemon.entity.variable.wanders.desc": "その存在がうろつくかどうか。",
"cobblemon.entity.variable.wander_chance.desc": "エンティティが各ティックでうろつくことを選択する確率。",
"cobblemon.entity.variable.horizontal_wander_range.name": "水平方向の移動範囲",
"cobblemon.entity.variable.vertical_wander_range.name": "垂直方向の移動範囲",
"cobblemon.entity.variable.vertical_wander_range.desc": "エンティティが初期位置からY軸方向にうろつきターゲットを検索する最大距離。",
"cobblemon.entity.variable.walk_speed.name": "歩行速度",
"cobblemon.entity.variable.walk_speed.desc": "その存在が歩く速度。",
"cobblemon.entity.variable.can_float.name": "液体に浮かぶ",
"cobblemon.entity.variable.can_float.desc": "そのエンティティが液体中で水面に浮上するか否か。",
"cobblemon.entity.variable.float_chance.name": "浮遊確率",
"cobblemon.entity.variable.look_at_entities.name": "エンティティを調べる",
"cobblemon.entity.variable.look_at_entities.desc": "エンティティが近隣のエンティティを参照するかどうか。",
"cobblemon.entity.variable.see_distance.desc": "エンティティが他のエンティティを視認できる最大距離。",
"cobblemon.entity.variable.look_at_entity_types.name": "エンティティタイプを見る",
"cobblemon.entity.variable.look_at_entity_types.desc": "エンティティが参照するエンティティの種類。",
"cobblemon.entity.variable.see_distance.name": "距離を見る",
"cobblemon.entity.variable.get_angry_at_attacker.name": "攻撃者に怒りをぶつける",
"cobblemon.entity.variable.stop_being_angry_if_attacker_dead.name": "攻撃者が死亡した場合、怒りをやめる",
"cobblemon.entity.variable.stop_being_angry_if_attacker_dead.desc": "攻撃者が死んだ場合にエンティティが怒りを止めるかどうか。",
"cobblemon.entity.variable.look_at_battling_pokemon.name": "バトル中のポケモンを見る",
"cobblemon.entity.variable.look_at_battling_pokemon.desc": "その個体がバトル中のポケモンを見るかどうか。",
"cobblemon.entity.variable.should_attack_angry_at.name": "怒りに満ちて攻撃すべきか",
"cobblemon.entity.variable.attacking_movement_speed.name": "攻撃移動速度",
"cobblemon.entity.variable.attacks_melee.name": "近接攻撃",
"cobblemon.entity.variable.attacks_melee.desc": "そのエンティティが近接攻撃を行うかどうか。",
"cobblemon.entity.variable.melee_range.name": "近接攻撃範囲",
"cobblemon.entity.variable.melee_range.desc": "エンティティが近接攻撃で攻撃できる範囲。",
"cobblemon.entity.variable.melee_cooldown.name": "近接攻撃クールダウン",
"cobblemon.entity.variable.melee_cooldown.desc": "近接攻撃の間のクールダウン時間。",
"cobblemon.entity.variable.panic_when_hurt.desc": "そのエンティティはダメージを受けた際にパニック状態になるか。",
"cobblemon.entity.variable.panic_on_passive_damage.name": "受動ダメージによるパニック",
"cobblemon.entity.variable.panic_on_passive_damage.desc": "そのエンティティがサボテンのような受動的ダメージや落下に対してパニック状態になるかどうか。",
"cobblemon.entity.variable.panic_when_hostiles_nearby.name": "敵が近くにいるとパニックになる",
"cobblemon.entity.variable.flee_attacker.name": "攻撃者から逃れる",
"cobblemon.entity.variable.flee_attacker.desc": "そのエンティティが攻撃者から逃げるかどうか。",
"cobblemon.entity.variable.flee_speed_multiplier.name": "逃走速度",
"cobblemon.entity.variable.flee_speed_multiplier.desc": "逃走時のエンティティの移動速度。",
"cobblemon.entity.variable.flee_nearest_hostile.desc": "エンティティが最も近い敵対的なモブから逃げるかどうか。",
"cobblemon.entity.variable.eat_grass_cooldown_ticks.name": "草を食べるクールダウンの経過",
"cobblemon.entity.variable.eat_grass_cooldown_ticks.desc": "草を食べる間に過ぎ去らねばならないティックは何ティックか。",
"cobblemon.entity.variable.eat_grass_chance.name": "草を食べるチャンス",
"cobblemon.entity.variable.eat_grass_chance.desc": "エンティティが草を食べる確率(1ティックあたり)",
"cobblemon.entity.variable.script.name": "スクリプト",
"cobblemon.entity.variable.script.desc": "AIロジックの一部として毎ティック実行されるスクリプト。",
"cobblemon.entity.variable.player_texture.name": "プレイヤーテクスチャ ユーザー名",
"cobblemon.entity.variable.player_texture.desc": "エンティティにテクスチャを適用するプレイヤーのユーザー名。",
"cobblemon.entity.variable.npc_render_scale.name": "レンダリングスケール",
"cobblemon.entity.variable.npc_render_scale.desc": "NPCエンティティのレンダリング時のサイズ。1.0が通常サイズ。",
"cobblemon.entity.variable.npc_box_scale.name": "当たり判定のスケール",
"cobblemon.entity.variable.npc_box_scale.desc": "NPCエンティティの当たり判定のサイズ。1.0が通常サイズ。NPCの可視サイズにも影響します。",
"cobblemon.entity.variable.npc_box_width.name": "当たり判定の幅",
"cobblemon.entity.variable.npc_box_width.desc": "NPCエンティティの当たり判定の幅。",
"cobblemon.entity.variable.npc_box_height.name": "当たり判定の高さ",
"cobblemon.entity.variable.npc_box_height.desc": "NPCエンティティの当たり判定の高さ。",
"cobblemon.entity.variable.npc_box_eyes_ratio.name": "当たり判定の視線位置比率",
"cobblemon.entity.variable.npc_box_eyes_ratio.desc": "NPCエンティティの当たり判定の高さにおける目の位置の比率。視線角度に使用される。0.85はほとんどのヒト形モデルで使用される値である。",
"cobblemon.ui.entity.behaviour_editor.label": "行動 - %1$s",
"cobblemon.ui.entity.behaviour_editor.label.active": "能動的行動",
"cobblemon.ui.entity.behaviour_editor.label.inactive": "非活動的行動",
"cobblemon.behaviour.battle_scripts.name": "バトルスクリプトフック",
"cobblemon.behaviour.battle_scripts.desc": "バトル終了時にMoLangスクリプトを実行する。",
"cobblemon.behaviour.battle_commands.name": "バトルコマンド",
"cobblemon.behaviour.battle_commands.desc": "バトル終了時にコマンドを実行する。",
"cobblemon.behaviour.core.name": "コアの動きと視線",
"cobblemon.behaviour.core.desc": "移動と目標の視認に必要である。",
"cobblemon.behaviour.wanders.name": "さまよい",
"cobblemon.behaviour.wanders.desc": "ランダムにさまよう。",
"cobblemon.behaviour.wanders_water.name": "水をさまよう",
"cobblemon.behaviour.wanders_air.name": "空をさまよう",
"cobblemon.behaviour.wanders_air.desc": "空中でランダムに飛び回る。",
"cobblemon.behaviour.chats.name": "チャット中の停止",
"cobblemon.behaviour.chats.desc": "会話中に話し手の方を向いて見つめる。",
"cobblemon.behaviour.fights_melee.name": "近接戦闘",
"cobblemon.behaviour.fights_melee.desc": "近接攻撃でターゲットに移動し攻撃できる。",
"cobblemon.behaviour.floats.desc": "水没しても浮き続ける。",
"cobblemon.behaviour.does_action_effects.name": "アクションエフェクトサポート",
"cobblemon.behaviour.does_action_effects.desc": "アクションエフェクト実行中はアイドル状態を停止する。",
"cobblemon.behaviour.panics.name": "パニック",
"cobblemon.behaviour.panics.desc": "傷ついたり敵に近づいたりするとパニックを起こす。",
"cobblemon.behaviour.retaliates.name": "報復する",
"cobblemon.behaviour.retaliates.desc": "傷つけられたら反撃する。攻撃手段はまだ必要だ。",
"cobblemon.behaviour.stationary.name": "位置に留まる",
"cobblemon.behaviour.stationary.desc": "特定の位置から動かない。",
"cobblemon.behaviour.uses_healing_machine.name": "かいふく装置を使う",
"cobblemon.behaviour.uses_healing_machine.desc": "傷ついた時はかいふく装置で回復する。",
"cobblemon.behaviour.battler.name": "ポケモンバトラー",
"cobblemon.behaviour.battler.desc": "バトル中に立ち止まって見守る。",
"cobblemon.behaviour.looks_in_one_direction.name": "一方向を見る",
"cobblemon.behaviour.looks_in_one_direction.desc": "常に固定された方向を見つめる。",
"cobblemon.behaviour.looks_around.name": "周囲を見渡す",
"cobblemon.behaviour.looks_around.desc": "周囲の物体を見渡す。",
"cobblemon.behaviour.pokemon_battles.name": "ポケモンバトル",
"cobblemon.behaviour.pokemon_battles.desc": "ポケモンバトル中に動きを止め、相手を見る。",
"cobblemon.behaviour.pokemon_follows_owner.name": "ポケモンは持ち主に従う",
"cobblemon.behaviour.pokemon_follows_owner.desc": "飼い主の後をついて回るが、牧草地ではより稀である。",
"cobblemon.behaviour.pokemon_sleeps.desc": "ポケモンは、戦闘中やパーティにいない場合、眠くなって眠ってしまうことがある。",
"cobblemon.behaviour.pokemon_sleeps_on_trainer_bed.name": "トレーナーのベッドでポケモンが眠る",
"cobblemon.behaviour.avoids_water.name": "水を避ける",
"cobblemon.behaviour.wanders_hover.name": "さまよいホバリングする",
"cobblemon.behaviour.wanders_hover.desc": "空中にランダムに浮遊し、地面から一定の距離を保っている。",
"cobblemon.behaviour.moves_to_water.name": "水への回帰",
"cobblemon.behaviour.moves_to_lava.name": "溶岩への帰還",
"cobblemon.behaviour.npc_scale_configuration.name": "NPCエンティティのスケーリング",
"cobblemon.behaviour.npc_scale_configuration.desc": "NPCのレンダリングスケールと当たり判定スケールを設定可能にします。",
"cobblemon.behaviour.pokemon_gets_mad_at_thrower.name": "モンスターボールを投げる人に怒る",
"cobblemon.behaviour.attack_hostile_mobs.name": "敵対的なモブを攻撃する",
"cobblemon.behaviour.attack_hostile_mobs.desc": "近くにいる敵対的なモブを、挑発されていなくても攻撃する。",
"cobblemon.behaviour.pokemon_bee.name": "花に受粉する",
"cobblemon.behaviour.pokemon_bee.desc": "花に受粉し、巣箱とあまったるい木の葉にミツを加える。",
"cobblemon.behaviour.pokemon_picks_up_items.name": "ものひろい",
"cobblemon.behaviour.pokemon_picks_up_items.desc": "ポケモンは、自分が気にかけるアイテムを拾います。",
"cobblemon.behaviour.configurable_resource_identifier.name": "設定可能なリソース識別子",
"cobblemon.behaviour.configurable_resource_identifier.desc": "NPCの外見を制御するリソース識別子を変更できるようにします。",
"cobblemon.entity.variable.resource_identifier.name": "リソース識別子",
"cobblemon.entity.variable.resource_identifier.desc": "NPCの外観制御に使用するリソース識別子。例:cobblemon:standard または cobblemon:mudkip。",
"cobblemon.behaviour.name_tag_display.name": "ネームタグ表示",
"cobblemon.entity.variable.display_name_tag.name": "表示名タグ",
"cobblemon.entity.variable.display_name_tag.desc": "エンティティの名札が表示されているかどうか。",
"cobblemon.behaviour.dialogue_selection.name": "ダイアログ選択",
"painting.cobblemon.premonition.title": "予感",
"painting.cobblemon.premonition.author": "PKMNCC",
"painting.cobblemon.slumber.title": "眠り",
"painting.cobblemon.altar.title": "祭壇",
"painting.cobblemon.altar.author": "PKMNCC",
"painting.cobblemon.nomad.title": "ノマド",
"painting.cobblemon.nomad.author": "PKMNCC",
"tag.item.cobblemon.iv_candies": "すごいとっくんアメ",
"tag.item.cobblemon.additive_iv_candies": "上昇すごいとっくんアメ",
"cobblemon.entity.variable.flee_desired_distance.name": "逃げるべき距離",
"cobblemon.entity.variable.flee_desired_distance.desc": "エンティティが攻撃者から置きたい距離。",
"cobblemon.entity.variable.flee_nearest_hostile.name": "最寄りの敵から逃げる",
"cobblemon.behaviour.wanders_water.desc": "水の中をランダムに泳ぎ回る。",
"cobblemon.behaviour.floats.name": "浮き続ける",
"cobblemon.behaviour.moves_to_water.desc": "近くにある水に近づく。",
"cobblemon.behaviour.moves_to_lava.desc": "近くにあると溶岩に移動する。",
"cobblemon.behaviour.pokemon_herds.name": "ポケモンの群れ",
"cobblemon.snapshots.warning.title": "Cobblemon スナップショット警告",
"cobblemon.snapshots.warning.description": "Cobblemonの %s スナップショットを使用しています。このビルドの機能は開発中であり、ワールドでの使用が安全でない可能性があります。これらのリスクを理解した上で続行しますか?",
"cobblemon.snapshots.warning.dont_show_again_tip": "この設定は、新しいCobblemonスナップショット(例:1.7.0 対 1.8.0)では無視される可能性があります。",
"entity.cobblemon.pokemon": "ポケモン",
"entity.cobblemon.poke_bobber": "ボールのウキ",
"entity.cobblemon.boat": "ボート",
"painting.cobblemon.slumber.author": "PKMNCC",
"cobblemon.snapshots.warning.dont_show_again": "二度と表示しない",
"cobblemon.entity.variable.challenge_cooldown.desc": "そのプレイヤーが最後に挑戦してから、NPCが挑戦不能となるまでの期間。",
"cobblemon.entity.variable.on_defeat.desc": "エンティティが戦闘に敗北した際に実行されるMoLang式。対象エンティティはq.entityとなる。",
"cobblemon.entity.variable.locked_yaw.desc": "エンティティのヨー回転(度)。ロックされた回転がオンの場合のみロックされます",
"cobblemon.entity.variable.exit_battle_when_hurt.name": "ダメージを受けた時にバトルから離脱する",
"cobblemon.entity.variable.use_healing_machines.desc": "その組織がてもちを治療するためにかいふく装置を使用するか否か。",
"cobblemon.entity.variable.float_chance.desc": "エンティティが毎ティックで表面に向かってジャンプする確率。値が高いほど上向きに泳ぐ速度が速くなる。",
"cobblemon.entity.variable.get_angry_at_attacker.desc": "そのエンティティが攻撃者に怒るかどうか。",
"cobblemon.entity.variable.should_attack_angry_at.desc": "そのエンティティは怒っている時に攻撃すべきか。",
"cobblemon.entity.variable.attacking_movement_speed.desc": "エンティティが攻撃時に移動する速度。",
"cobblemon.entity.variable.panic_when_hurt.name": "傷つくとパニックになる",
"cobblemon.entity.variable.panic_when_hostiles_nearby.desc": "敵対的なモブが近くにいる場合、エンティティがパニック状態になるかどうか。",
"cobblemon.entity.variable.horizontal_wander_range.desc": "エンティティが初期位置からX軸およびZ軸方向にうろつくターゲットを検索する最大距離。",
"cobblemon.ui.entity.behaviour_editor": "行動",
"cobblemon.behaviour.pokemon_sleeps_on_trainer_bed.desc": "トレーナーがベッドに入ると、眠れるポケモンはトレーナーの上で休む。",
"cobblemon.behaviour.pokemon_herds.desc": "ポケモンは、自分たちが適任と認めるリーダーのポケモンと群れを成す。",
"cobblemon.behaviour.name_tag_display.desc": "エンティティの名前タグの表示/非表示を切り替えることができます。",
"cobblemon.behaviour.pokemon_gets_mad_at_thrower.desc": "自分にモンスターボールを投げたプレイヤーに怒る。攻撃的なポケモンはプレイヤーを攻撃し、攻撃的でないポケモンは逃げる。",
"cobblemon.entity.variable.exit_battle_from_passive_damage.desc": "サボテンや落下などの受動的ダメージによって、そのエンティティがバトルから離脱するかどうか。",
"cobblemon.entity.variable.exit_battle_from_passive_damage.name": "パッシブダメージでバトルを終了",
"cobblemon.behaviour.avoids_water.desc": "空気を探して水から離れようとする。",
"cobblemon.behaviour.pokemon_eats_grass.desc": "ポケモンは時々足元の草を食べる。",
"cobblemon.behaviour.player_textured.name": "プレイヤーテクスチャー",
"cobblemon.behaviour.player_textured.desc": "NPCは特定のプレイヤーのユーザー名に基づいてテクスチャが適用されます。",
"cobblemon.behaviour.pokemon_eats_grass.name": "草を食べる",
"cobblemon.entity.variable.dialogue_selection.name": "ダイアログ",
"cobblemon.behaviour.dialogue_selection.desc": "特定のダイアログを開くためのNPCとの相互作用を設定可能にします。",
"cobblemon.entity.variable.dialogue_selection.desc": "インタラクション時に開くダイアログのリソース識別子。例:cobblemon:your_dialogue",
"entity.cobblemon.chest_boat": "チェスト付きのボート",
"entity.cobblemon.npc": "NPC",
"entity.cobblemon.empty_pokeball": "空のモンスターボール",
"cobblemon.battle.activate.insomnia": "このポケモンは ふみんのため 眠ることができない!",
"cobblemon.battle.sideend.ally.auroraveil": "味方の オーロラベールが なくなった!",
"cobblemon.battle.sideend.ally.toxicspikes": "味方の足元から どくびしが 消えた!",
"cobblemon.battle.sideend.opponent.auroraveil": "相手の オーロラベールが なくなった!",
"cobblemon.battle.sideend.opponent.lightscreen": "相手の ひかりのかべが なくなった!",
"cobblemon.battle.sideend.opponent.mist": "相手の しろいきりが なくなった!",
"cobblemon.battle.sideend.opponent.reflect": "相手の リフレクターが なくなった!",
"cobblemon.battle.block.aromaveil": "%1$sは アロマベールで 守られている!",
"cobblemon.battle.error.incorrect_actor_count": "現在の参加者は %1$s人だが %2%s人の参加者が 必要な ようだ",
"cobblemon.battle.error.no_party": "%1$sは バトルに出すための 手持ちのポケモンを 持っていないようだ",
"cobblemon.battle.enditem.focusband": "%1$sは きあいのハチマキで 持ちこたえた!",
"cobblemon.battle.enditem.focussash": "%1$sは きあいのタスキで 持ちこたえた!",
"cobblemon.battle.enditem.ejectpack": "%1$sは だっしゅつパックで 戻っていく!",
"cobblemon.battle.enditem.occaberry": "%1$sへの ダメージを オッカのみが 弱めた!",
"cobblemon.battle.enditem.passhoberry": "%1$sへの ダメージを イトケのみが 弱めた!",
"cobblemon.battle.enditem.chopleberry": "%1$sへの ダメージを ヨプのみが 弱めた!",
"cobblemon.battle.enditem.kebiaberry": "%1$sへの ダメージを ビアーのみが 弱めた!",
"cobblemon.battle.enditem.shucaberry": "%1$sへの ダメージを シュカのみが 弱めた!",
"cobblemon.battle.enditem.cobaberry": "%1$sへの ダメージを バコウのみが 弱めた!",
"cobblemon.battle.enditem.payapaberry": "%1$sへの ダメージを ウタンのみが 弱めた!",
"cobblemon.battle.enditem.chartiberry": "%1$sへの ダメージを ヨロギのみが 弱めた!",
"cobblemon.battle.enditem.kasibberry": "%1$sへの ダメージを カシブのみが 弱めた!",
"cobblemon.battle.enditem.habanberry": "%1$sへの ダメージを ハバンのみが 弱めた!",
"cobblemon.battle.enditem.babiriberry": "%1$sへの ダメージを リリバのみが 弱めた!",
"cobblemon.battle.enditem.chilanberry": "%1$sへの ダメージを ホズのみが 弱めた!",
"cobblemon.battle.formechange.default.temporary.ended": "%1$sは 元の姿に 戻った!",
"cobblemon.battle.formechange.mega": "%1$sが キーストーンに 共鳴した!",
"cobblemon.battle.formechange.ash": "%1$sは サトシゲッコウガに きずなへんげした!",
"cobblemon.battle.formechange.school": "%1$sは むれたすがたに なった!",
"cobblemon.battle.withdraw.other": "%1$sは %2$sを 引っ込めた!",
"cobblemon.battle.sideend.ally.lightscreen": "味方の ひかりのかべが なくなった!",
"cobblemon.battle.sideend.ally.reflect": "味方の リフレクターが なくなった!",
"cobblemon.battle.sideend.ally.spikes": "味方の足元から まきびしが 消えた!",
"cobblemon.battle.sideend.ally.safeguard": "味方の 神秘のベールが なくなった!",
"cobblemon.battle.sideend.opponent.stickyweb": "相手の足元から ねばねばネットが なくなった!",
"cobblemon.battle.enditem.wacanberry": "%1$sへの ダメージを ソクノのみが 弱めた!",
"cobblemon.battle.enditem.rindoberry": "%1$sへの ダメージを リンドのみが 弱めた!",
"cobblemon.battle.enditem.yacheberry": "%1$sへの ダメージを ヤチェのみが 弱めた!",
"cobblemon.battle.heal.bagitemrevive": "%1$sは ひんしから 回復した!",
"cobblemon.battle.heal.bagitemfullrestore": "%1$sの 体力が 回復した!",
"cobblemon.battle.formechange.minior": "%1$sの リミットシールド 発動!",
"cobblemon.battle.switch.other": "%1$s は %2$sを 繰り出した!",
"cobblemon.battle.enditem.tangaberry": "%1$sへの ダメージを タンガのみが 弱めた!",
"cobblemon.battle.withdraw.self": "%1$s、戻れ!",
"cobblemon.battle.sideend.opponent.luckychant": "相手の おまじないが 切れた!",
"cobblemon.battle.block.sweetveil": "%1$sは スイートベールで 眠れない!",
"cobblemon.battle.enditem.colburberry": "%1$sへの ダメージを ナモのみが 弱めた!",
"cobblemon.battle.enditem.roseliberry": "%1$sへの ダメージを ロゼルのみが 弱めた!",
"cobblemon.battle.formechange.wishiwashi": "%1$sの群れは どこかに行ってしまった...",
"cobblemon.battle.switch.other.nickname": "%1$s は %2$s (%3$s)を 繰り出した!",
"cobblemon.battle.sideend.ally.tailwind": "味方の おいかぜが 切れた!",
"cobblemon.battle.sideend.opponent.safeguard": "相手の 神秘のベールが なくなった!",
"cobblemon.battle.sideend.ally.stealthrock": "味方の足元から とがった岩が 消えた!",
"cobblemon.battle.sideend.ally.stickyweb": "味方の足元から ねばねばネットが なくなった!",
"cobblemon.battle.sideend.ally.luckychant": "味方の おまじないが 切れた!",
"cobblemon.battle.sideend.ally.mist": "味方の しろいきりが なくなった!",
"cobblemon.battle.sideend.opponent.tailwind": "相手の おいかぜが 切れた!",
"cobblemon.battle.sideend.opponent.spikes": "相手の足元から まきびしが なくなった!",
"cobblemon.battle.sideend.opponent.toxicspikes": "相手の足元から どくびしが なくなった!",
"cobblemon.battle.cant.nopp": "%1$sは %2$sを使うための PPが 足りない!",
"cobblemon.battle.end.neutralizinggas": "かがくへんかガスが なくなった!",
"cobblemon.battle.ability.replace": "%1$sは 特性が %2$sに変わった!",
"cobblemon.battle.formechange.default.temporary": "%1$s は %2$sフォルムに なった!",
"cobblemon.battle.formechange.default.permanent": "%1$s は %2$sに フォルムチェンジした!",
"cobblemon.battle.formechange.meteor": "%1$sの リミットシールド 解除!",
"cobblemon.battle.switch.self": "いけ! %1$s!",
"cobblemon.fishing_bait_effects.drops_reroll.tooltip": "%1$s%% - %3$s× ドロップ品リロール",
"cobblemon.requires_debug_keys": "この機能を使用するには、サーバーでデバッグキーを有効にする必要があります。",
"cobblemon.requires_permission": "この操作を行うには必要な権限がありません。",
"cobblemon.ui.stats.blocks_traveled": "ステップ"
}
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
@@ -6153,5 +6153,17 @@
"cobblemon.behaviour.wanders_water.desc": "Nada aleatoriamente na água.",
"cobblemon.behaviour.wanders_air.name": "Vagueia no Ar",
"cobblemon.behaviour.wanders_air.desc": "Voa aleatoriamente pelo ar.",
"cobblemon.move.supersonicskystrike": "Picado Supersónico"
"cobblemon.move.supersonicskystrike": "Picado Supersónico",
"tag.item.cobblemon.small_flowers": "Flores Pequenas",
"cobblemon.move.hydrovortex.desc": "O utilizador cria uma corrente giratória enorme usando o seu Poder-Z para engolir o alvo. O poder varia, dependendo do movimento original.",
"cobblemon.snapshots.warning.dont_show_again_tip": "Esta configuração pode ser ignorada em versões mais recentes do Cobblemon (por exemplo, 1.7.0 vs 1.8.0)",
"cobblemon.behaviour.dialogue_selection.name": "Seleção de Diálogo",
"cobblemon.snapshots.warning.description": "Estás a usar um snapshot %s do Cobblemon. As funcionalidades desta versão ainda estão em desenvolvimento e podem não ser seguras para usar nos teus mundos. Desejas continuar, mesmo sabendo destes riscos?",
"cobblemon.behaviour.dialogue_selection.desc": "Permite configurar a interação com NPCs para abrir um diálogo específico.",
"cobblemon.snapshots.warning.title": "Aviso do Snapshot do Cobblemon",
"cobblemon.snapshots.warning.dont_show_again": "Não mostrar novamente",
"tag.item.cobblemon.candies": "Guloseimas",
"tag.item.cobblemon.mint_leaves": "Folhas de Hortelã",
"tag.item.cobblemon.berries.stat_buff": "Bagas de Batalha",
"cobblemon.move.hydrovortex": "Vórtice Aquático"
}
Loaded 100 of 747 files, more files were not shown because too many files have changed in this diff. Show more