mirror of
https://gitlab.com/cable-mc/cobblemon.git
synced 2026-10-24 16:16:24 -04:00
Compare commits
40
Commits
1.7.2
...
speed-lines
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c346f84844 | ||
|
|
d1b8094539 | ||
|
|
b8d79af911 | ||
|
|
a7198fd324 | ||
|
|
bc69ce91f3 | ||
|
|
1de1d8cdc3 | ||
|
|
087bf75500 | ||
|
|
bac435ba7b | ||
|
|
74a6106eb6 | ||
|
|
5ec993ad3c | ||
|
|
73a03d90da | ||
|
|
e6fda6137e | ||
|
|
afae39acc8 | ||
|
|
37264aff0f | ||
|
|
2b60e6de77 | ||
|
|
4f29e7457c | ||
|
|
04a6ab31f4 | ||
|
|
a2cdc847dd | ||
|
|
0bca678f56 | ||
|
|
067c3607aa | ||
|
|
823c1f6444 | ||
|
|
bfc00635cd | ||
|
|
b2e5b85ac5 | ||
|
|
2c27476954 | ||
|
|
aab78d84fc | ||
|
|
cb632c2a65 | ||
|
|
8d219f1338 | ||
|
|
1e6a4ed984 | ||
|
|
64240c31fc | ||
|
|
d2222c3858 | ||
|
|
c7f31c3e14 | ||
|
|
740e846b2d | ||
|
|
246d00aa3f | ||
|
|
06f9d60595 | ||
|
|
d54439ce14 | ||
|
|
32ee4bb72a | ||
|
|
e7d2a46cc0 | ||
|
|
3ee94ec076 | ||
|
|
589293abc4 | ||
|
|
279865cc7c |
+6
-115
@@ -1,137 +1,28 @@
|
||||
# Changelog
|
||||
## [1.7.2 (January 25th, 2026)](#1-7-2)
|
||||
## [1.7.4 (MONTH Xth, 2026)](#1-7-4)
|
||||
|
||||
### Additions
|
||||
- Added Saccharine wood furniture for Adorn.
|
||||
- Added the Partner Mark, which party Pokémon have a very small chance to earn as the player walks, provided they have enough friendship.
|
||||
- Added decorative block models for existing items: Potion, Super Potion, Hyper Potion, Max Potion, Full Restore, Antidote, Awakening, Burn Heal, Ice Heal, Paralyze Heal, Full Heal, Ether, Elixir, Max Ether, Max Elixir, X Accuracy, X Attack, X Defence, X Special Attack, X Special Defence, X Speed, Dire Hit, Guard Spec, Weakness Policy, Blunder Policy, Cleanse Tag, and Spell Tag.
|
||||
- Added decorative sign blocks called Plaques.
|
||||
- Added ride style labels to ride stats in Pokédex, as well as ride style icons in the summary GUI.
|
||||
- Added more seasonings for sinister tea:
|
||||
- Mental Herb - Mental Restoration I for 10 seconds, which staves off Insomnia.
|
||||
- White Herb - Removes negative effects.
|
||||
- Milk, Moomoo Milk - Removes effects.
|
||||
- Added dispenser support for:
|
||||
- Applying a Honey Bottle to Saccharine Logs.
|
||||
- Washing honey off of Saccharine Slathered Logs.
|
||||
- Applying and removing honey on Saccharine Leaves.
|
||||
- Added riding statistics: `Distance by Pokémon on Land`, `Distance by Pokémon in Air` and `Distance by Pokémon in Liquid`.
|
||||
- Added a toast to notify players of how they can scroll through their party. Did you know you can hold R and scroll instead of using arrow keys??!
|
||||
|
||||
### New rideable Pokémon
|
||||
- Honchkrow
|
||||
- Mantine
|
||||
|
||||
### Pokémon Added
|
||||
|
||||
#### Gen 5
|
||||
- Throh
|
||||
- Sawk
|
||||
|
||||
#### Gen 6
|
||||
- Litleo
|
||||
- Pyroar
|
||||
- Spritzee
|
||||
- Aromatisse
|
||||
- Swirlix
|
||||
- Slurpuff
|
||||
|
||||
### Model updates for the following Pokémon
|
||||
- Falinks
|
||||
- Cottonee
|
||||
- Whimsicott
|
||||
- Ferroseed
|
||||
- Ferrothorn
|
||||
- Chingling
|
||||
- Chimecho
|
||||
|
||||
### Animation updates for the following Pokémon
|
||||
- Mantine (ride animations)
|
||||
- Flygon (ride jump animation)
|
||||
- Honchkrow (ride animations)
|
||||
- Croagunk
|
||||
- Toxicroak
|
||||
|
||||
### Changes
|
||||
- Added a new config option, `Enable In-Flight Dismounting` (default: off), which lets you dismount while riding a Pokémon in the air. This is the textbook definition of caveat emptor.
|
||||
- Ride sounds have been separated into stereo for passengers and mono for other players. Riding will now sound more spacious.
|
||||
- Battle AI now uses a smarter threshold for switching, reducing unnecessary switches.
|
||||
- AI will always use the most damaging move when at low HP and when it is not switching, improving endgame decision-making.
|
||||
- Items given from interacting with Saccharine Leaves are placed in the active hotbar slot if possible.
|
||||
- Added `label` as an alternate key to the `tag` property.
|
||||
|
||||
### Fixes
|
||||
- Fixed crashing when viewing another player in spectator mode. Some said this was reason to release this update a month ago. They were probably right.
|
||||
- Fixed crashing when sending a Pokémon out after editing its form.
|
||||
- Fixed all Pokémon being saved to chunks and never despawning even when they should be.
|
||||
- Fixed Poké Snacks crashing if there was no available spawn.
|
||||
- Fixed Poké Snack / Bait effects so that EV Yield, Type, and Egg Group filters now all apply together when weighting spawns. And you thought you were going crazy.
|
||||
- Fixed Furfrou not being trimmable on NeoForge specifically.
|
||||
- Fixed honey from Saccharine Leaves being harvestable at less than the max age.
|
||||
- Fixed possible error on world generation when Combee are placed in naturally generated bee nests.
|
||||
- Fixed Galarian Weezing crashing the world if it decides to blink the wrong way. The same could happen to you!
|
||||
- Fixed Galarian Mr. Mime incorrectly being rideable. Some would argue that regular Mr. Mime shouldn't be rideable, but that would make them wrong.
|
||||
- Fixed missing apricorn textures for Adorn blocks.
|
||||
- Fixed Apricorn block model rotation for counters/sinks/cupboards/drawers to match that of most recent version of Adorn.
|
||||
- Fixed item interaction sometimes not working properly when playing on servers.
|
||||
- Fixed Mint Leaves not being usable for filling the Resurrection Machine.
|
||||
- Fixed Super Potion recipes incorrectly using Hondew Berry instead of Aguav Berry. They look similar, to be fair.
|
||||
- Fixed Wishiwashi not schooling properly.
|
||||
- Fixed battle item duplication issue. How did it work? Wouldn't you like to know, weather boy.
|
||||
- Fixed the ordering of Aprijuice's riding stat boosts so they always have the same order.
|
||||
- Fixed the movesets of certain Pokémon being incorrectly sanitized upon reload, causing some forms to keep losing moves.
|
||||
- Fixed selected leading Pokémon in battle not being used when levels are set.
|
||||
- Fixed the bottom half of pasture blocks having an incorrect hit-box when facing north or south.
|
||||
- Fixed gimmicks not being usable in double and triple battles.
|
||||
- Fixed gimmick buttons showing when already used in the same turn in double and triple battles.
|
||||
- Fixed mochi items consuming two items at a time.
|
||||
- Fixed Fresh Start Mochi's EV reset not syncing health changes properly.
|
||||
- Fixed Pokémon spawn influences not being specific to regional forms.
|
||||
- Fixed memory leak from battles not being cleaned up after ending.
|
||||
- Fixed orientation not getting reset after crashing while flying and getting back on the Pokémon.
|
||||
- Fixed shiny Pokémon not respecting the `silent` flag on spawn.
|
||||
- Fixed 'Plain' prefix not being applied to all low-quality Aprijuice.
|
||||
- Fixed Pokémon interactions not playing sound effects when the volume was not specified.
|
||||
- Fixed Pokémon interaction cooldowns taking longer than intended when the Pokémon was in the player’s party.
|
||||
- Fixed Pokémon interactions occasionally crashing the game when spamming an interaction with a 0 cooldown.
|
||||
- Fixed Pokémon fullness decreasing more than intended when the Pokémon was pastured.
|
||||
- Fixed Scraggy line, Milcery line, and Morpeko spawning on unnatural blocks.
|
||||
- Fixed invulnerability-bypassed damage being resisted by invulnerable NPC entities.
|
||||
- Fixed Fabric network packets not being handled immediately, fixing incompatibilities with Supplementaries, Prometheus, Sleep Tight, and others.
|
||||
- Fixed killer not being set early enough on a wild Pokémon entity from `WinInstruction`.
|
||||
- Fixed requirements such as `biomeCondition` crashing the game when used to define Pokémon interactions.
|
||||
- Fixed an issue that prevented registering custom dispenser behaviours (no longer overrides vanilla behaviour).
|
||||
- Fixed an issue navigation that prevented Combee from pathing into and out of Saccharine Leaves.
|
||||
- Added Saccharine Boats and Saccharine Boat with Chests to relevant boat tags.
|
||||
- Fixed Soothe Bell not being properly tagged as a held item.
|
||||
- Fixed `/calculateseatpositions` expecting a locator format that even we don't use. It needs an underscore after "seat".
|
||||
- Fixed the `run_script` Molang function to not fail if the environment's context is null.
|
||||
- Fixed the Molang functions `date_local_time`, `date_of`, `date_is_after` to use the correct date format.
|
||||
- Fixes https://gitlab.com/cable-mc/cobblemon/-/issues/1943
|
||||
- Fix occasional crash on retrieving revived fossils
|
||||
- Fixed a compatibility issue with World Game Rules which caused some log spam in specific cases.
|
||||
- Fixed improper validation of Pokémon when performing a trade.
|
||||
|
||||
### Developer
|
||||
- Changed the `owner` parameter in the `OwnerQueryRequirement` interface from `ServerPlayer` to `Player`. This method is now also called on the client to verify whether a Pokémon interaction succeeded, so make sure to update your implementations to handle both server and client contexts.
|
||||
- Added the `pnx` to the `BattleFaintedEvent` and `FormeChangeEvent`.
|
||||
- Added register methods for custom instructions to `ShowdownInterpreter`.
|
||||
- Changed callback operations in `BattlePokemon` to allow multiple callbacks and be mutable.
|
||||
- Added `display_name`, `description`, and `max_pp` functions to the `MoveTemplate` struct.
|
||||
- Changed the implementations of `AIBattleActor` to be open classes to allow extension.
|
||||
- Changed the resource location of Poké Ball icons in the GUI to use the balls namespace instead of Cobblemon's, allowing mods to properly use their own namespace for these textures.
|
||||
|
||||
### Molang & Datapacks
|
||||
- Ride sounds can now be set as exclusive to passengers.
|
||||
- Ride sounds no longer play when submerged unless specified with a new setting.
|
||||
- Exception handling has been added to `run_molang`, resolving some crashes caused by malformed MoLang expressions.
|
||||
- Added the `create_itemstack`, `has_inventory_space`, `set_inventory_slot`, and `give_item` MoLang functions for item and inventory utility.
|
||||
- Added the `get_move_from_id` MoLang function for general move info queries without requiring a Moveset object to access.
|
||||
- Added support for optional message variants in battle activate instructions for more context-specific battle text.
|
||||
- Example: `this.add('-activate', pokemon, 'ability: example', '[msg]message1');` will parse to lang key `cobblemon.battle.activate.example.message1`.
|
||||
|
||||
### Localization
|
||||
- Updated translations for:
|
||||
- French
|
||||
- Canadian French
|
||||
- Simplified Chinese
|
||||
- Ukrainian
|
||||
- Brazilian Portuguese
|
||||
- Spanish
|
||||
- Korean
|
||||
- Japanese
|
||||
|
||||
@@ -0,0 +1,137 @@
|
||||
# Changelog
|
||||
## [1.7.2 (January 25th, 2026)](#1-7-2)
|
||||
|
||||
### Additions
|
||||
- Added Saccharine wood furniture for Adorn.
|
||||
- Added the Partner Mark, which party Pokémon have a very small chance to earn as the player walks, provided they have enough friendship.
|
||||
- Added decorative block models for existing items: Potion, Super Potion, Hyper Potion, Max Potion, Full Restore, Antidote, Awakening, Burn Heal, Ice Heal, Paralyze Heal, Full Heal, Ether, Elixir, Max Ether, Max Elixir, X Accuracy, X Attack, X Defence, X Special Attack, X Special Defence, X Speed, Dire Hit, Guard Spec, Weakness Policy, Blunder Policy, Cleanse Tag, and Spell Tag.
|
||||
- Added decorative sign blocks called Plaques.
|
||||
- Added ride style labels to ride stats in Pokédex, as well as ride style icons in the summary GUI.
|
||||
- Added more seasonings for sinister tea:
|
||||
- Mental Herb - Mental Restoration I for 10 seconds, which staves off Insomnia.
|
||||
- White Herb - Removes negative effects.
|
||||
- Milk, Moomoo Milk - Removes effects.
|
||||
- Added dispenser support for:
|
||||
- Applying a Honey Bottle to Saccharine Logs.
|
||||
- Washing honey off of Saccharine Slathered Logs.
|
||||
- Applying and removing honey on Saccharine Leaves.
|
||||
- Added riding statistics: `Distance by Pokémon on Land`, `Distance by Pokémon in Air` and `Distance by Pokémon in Liquid`.
|
||||
|
||||
### New rideable Pokémon
|
||||
- Honchkrow
|
||||
- Mantine
|
||||
|
||||
### Pokémon Added
|
||||
|
||||
#### Gen 5
|
||||
- Throh
|
||||
- Sawk
|
||||
|
||||
#### Gen 6
|
||||
- Litleo
|
||||
- Pyroar
|
||||
- Spritzee
|
||||
- Aromatisse
|
||||
- Swirlix
|
||||
- Slurpuff
|
||||
|
||||
### Model updates for the following Pokémon
|
||||
- Falinks
|
||||
- Cottonee
|
||||
- Whimsicott
|
||||
- Ferroseed
|
||||
- Ferrothorn
|
||||
- Chingling
|
||||
- Chimecho
|
||||
|
||||
### Animation updates for the following Pokémon
|
||||
- Mantine (ride animations)
|
||||
- Flygon (ride jump animation)
|
||||
- Honchkrow (ride animations)
|
||||
- Croagunk
|
||||
- Toxicroak
|
||||
|
||||
### Changes
|
||||
- Added a new config option, `Enable In-Flight Dismounting` (default: off), which lets you dismount while riding a Pokémon in the air. This is the textbook definition of caveat emptor.
|
||||
- Ride sounds have been separated into stereo for passengers and mono for other players. Riding will now sound more spacious.
|
||||
- Battle AI now uses a smarter threshold for switching, reducing unnecessary switches.
|
||||
- AI will always use the most damaging move when at low HP and when it is not switching, improving endgame decision-making.
|
||||
- Items given from interacting with Saccharine Leaves are placed in the active hotbar slot if possible.
|
||||
- Added `label` as an alternate key to the `tag` property.
|
||||
|
||||
### Fixes
|
||||
- Fixed crashing when viewing another player in spectator mode. Some said this was reason to release this update a month ago. They were probably right.
|
||||
- Fixed crashing when sending a Pokémon out after editing its form.
|
||||
- Fixed all Pokémon being saved to chunks and never despawning even when they should be.
|
||||
- Fixed Poké Snacks crashing if there was no available spawn.
|
||||
- Fixed Poké Snack / Bait effects so that EV Yield, Type, and Egg Group filters now all apply together when weighting spawns. And you thought you were going crazy.
|
||||
- Fixed Furfrou not being trimmable on NeoForge specifically.
|
||||
- Fixed honey from Saccharine Leaves being harvestable at less than the max age.
|
||||
- Fixed possible error on world generation when Combee are placed in naturally generated bee nests.
|
||||
- Fixed Galarian Weezing crashing the world if it decides to blink the wrong way. The same could happen to you!
|
||||
- Fixed Galarian Mr. Mime incorrectly being rideable. Some would argue that regular Mr. Mime shouldn't be rideable, but that would make them wrong.
|
||||
- Fixed missing apricorn textures for Adorn blocks.
|
||||
- Fixed Apricorn block model rotation for counters/sinks/cupboards/drawers to match that of most recent version of Adorn.
|
||||
- Fixed item interaction sometimes not working properly when playing on servers.
|
||||
- Fixed Mint Leaves not being usable for filling the Resurrection Machine.
|
||||
- Fixed Super Potion recipes incorrectly using Hondew Berry instead of Aguav Berry. They look similar, to be fair.
|
||||
- Fixed Wishiwashi not schooling properly.
|
||||
- Fixed battle item duplication issue. How did it work? Wouldn't you like to know, weather boy.
|
||||
- Fixed the ordering of Aprijuice's riding stat boosts so they always have the same order.
|
||||
- Fixed the movesets of certain Pokémon being incorrectly sanitized upon reload, causing some forms to keep losing moves.
|
||||
- Fixed selected leading Pokémon in battle not being used when levels are set.
|
||||
- Fixed the bottom half of pasture blocks having an incorrect hit-box when facing north or south.
|
||||
- Fixed gimmicks not being usable in double and triple battles.
|
||||
- Fixed gimmick buttons showing when already used in the same turn in double and triple battles.
|
||||
- Fixed mochi items consuming two items at a time.
|
||||
- Fixed Fresh Start Mochi's EV reset not syncing health changes properly.
|
||||
- Fixed Pokémon spawn influences not being specific to regional forms.
|
||||
- Fixed memory leak from battles not being cleaned up after ending.
|
||||
- Fixed orientation not getting reset after crashing while flying and getting back on the Pokémon.
|
||||
- Fixed shiny Pokémon not respecting the `silent` flag on spawn.
|
||||
- Fixed 'Plain' prefix not being applied to all low-quality Aprijuice.
|
||||
- Fixed Pokémon interactions not playing sound effects when the volume was not specified.
|
||||
- Fixed Pokémon interaction cooldowns taking longer than intended when the Pokémon was in the player’s party.
|
||||
- Fixed Pokémon interactions occasionally crashing the game when spamming an interaction with a 0 cooldown.
|
||||
- Fixed Pokémon fullness decreasing more than intended when the Pokémon was pastured.
|
||||
- Fixed Scraggy line, Milcery line, and Morpeko spawning on unnatural blocks.
|
||||
- Fixed invulnerability-bypassed damage being resisted by invulnerable NPC entities.
|
||||
- Fixed Fabric network packets not being handled immediately, fixing incompatibilities with Supplementaries, Prometheus, Sleep Tight, and others.
|
||||
- Fixed killer not being set early enough on a wild Pokémon entity from `WinInstruction`.
|
||||
- Fixed requirements such as `biomeCondition` crashing the game when used to define Pokémon interactions.
|
||||
- Fixed an issue that prevented registering custom dispenser behaviours (no longer overrides vanilla behaviour).
|
||||
- Fixed an issue navigation that prevented Combee from pathing into and out of Saccharine Leaves.
|
||||
- Added Saccharine Boats and Saccharine Boat with Chests to relevant boat tags.
|
||||
- Fixed Soothe Bell not being properly tagged as a held item.
|
||||
- Fixed `/calculateseatpositions` expecting a locator format that even we don't use. It needs an underscore after "seat".
|
||||
- Fixed the `run_script` Molang function to not fail if the environment's context is null.
|
||||
- Fixed the Molang functions `date_local_time`, `date_of`, `date_is_after` to use the correct date format.
|
||||
|
||||
### Developer
|
||||
- Changed the `owner` parameter in the `OwnerQueryRequirement` interface from `ServerPlayer` to `Player`. This method is now also called on the client to verify whether a Pokémon interaction succeeded, so make sure to update your implementations to handle both server and client contexts.
|
||||
- Added the `pnx` to the `BattleFaintedEvent` and `FormeChangeEvent`.
|
||||
- Added register methods for custom instructions to `ShowdownInterpreter`.
|
||||
- Changed callback operations in `BattlePokemon` to allow multiple callbacks and be mutable.
|
||||
- Added `display_name`, `description`, and `max_pp` functions to the `MoveTemplate` struct.
|
||||
- Changed the implementations of `AIBattleActor` to be open classes to allow extension.
|
||||
- Changed the resource location of Poké Ball icons in the GUI to use the balls namespace instead of Cobblemon's, allowing mods to properly use their own namespace for these textures.
|
||||
|
||||
### Molang & Datapacks
|
||||
- Ride sounds can now be set as exclusive to passengers.
|
||||
- Ride sounds no longer play when submerged unless specified with a new setting.
|
||||
- Exception handling has been added to `run_molang`, resolving some crashes caused by malformed MoLang expressions.
|
||||
- Added the `create_itemstack`, `has_inventory_space`, `set_inventory_slot`, and `give_item` MoLang functions for item and inventory utility.
|
||||
- Added the `get_move_from_id` MoLang function for general move info queries without requiring a Moveset object to access.
|
||||
- Added support for optional message variants in battle activate instructions for more context-specific battle text.
|
||||
- Example: `this.add('-activate', pokemon, 'ability: example', '[msg]message1');` will parse to lang key `cobblemon.battle.activate.example.message1`.
|
||||
|
||||
### Localization
|
||||
- Updated translations for:
|
||||
- French
|
||||
- Canadian French
|
||||
- Simplified Chinese
|
||||
- Ukrainian
|
||||
- Brazilian Portuguese
|
||||
- Spanish
|
||||
- Korean
|
||||
- Japanese
|
||||
@@ -0,0 +1,23 @@
|
||||
# Changelog
|
||||
## [1.7.3 (January 31st, 2026)](#1-7-3)
|
||||
|
||||
### Fixes
|
||||
- Fixed mounted Pokémon not playing sounds.
|
||||
- Fixed players failing to join servers randomly.
|
||||
- Fixed some Pokémon having no stamina for flying.
|
||||
- Fixed `/pctake` not respecting the actual size of the PC.
|
||||
|
||||
### Developer
|
||||
- Poké Ball GUI textures now respect the ball's namespace, enabling proper texture loading for custom balls from other mods.
|
||||
|
||||
### Molang & Datapacks
|
||||
- Added a `chance` requirement type for Pokémon interactions.
|
||||
|
||||
### Localization
|
||||
- Updated translations for:
|
||||
- French
|
||||
- Canadian French
|
||||
- Korean
|
||||
- Portuguese
|
||||
- Simplified Chinese
|
||||
- Spanish
|
||||
@@ -35,6 +35,7 @@ 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;
|
||||
import com.cobblemon.mod.common.client.gui.party.PartyTutorialToasts;
|
||||
|
||||
import static com.google.common.primitives.Floats.min;
|
||||
import static net.minecraft.util.Mth.lerp;
|
||||
@@ -85,11 +86,13 @@ public abstract class MouseHandlerMixin {
|
||||
CobblemonClient.INSTANCE.getStorage().shiftSelected(false);
|
||||
ci.cancel();
|
||||
PartySendBinding.INSTANCE.actioned();
|
||||
PartyTutorialToasts.INSTANCE.onHoldKeyScrollSwitchedSlot();
|
||||
} else if (i < 0) {
|
||||
accumulatedScrollY -= i;
|
||||
CobblemonClient.INSTANCE.getStorage().shiftSelected(true);
|
||||
ci.cancel();
|
||||
PartySendBinding.INSTANCE.actioned();
|
||||
PartyTutorialToasts.INSTANCE.onHoldKeyScrollSwitchedSlot();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -65,7 +65,11 @@ import com.cobblemon.mod.common.api.storage.player.adapter.PlayerDataMongoBacken
|
||||
import com.cobblemon.mod.common.api.storage.player.factory.CachedPlayerDataStoreFactory
|
||||
import com.cobblemon.mod.common.api.tags.CobblemonEntityTypeTags
|
||||
import com.cobblemon.mod.common.api.tags.CobblemonItemTags
|
||||
import com.cobblemon.mod.common.battles.*
|
||||
import com.cobblemon.mod.common.battles.BagItems
|
||||
import com.cobblemon.mod.common.battles.BattleFormat
|
||||
import com.cobblemon.mod.common.battles.BattleRegistry
|
||||
import com.cobblemon.mod.common.battles.BattleSide
|
||||
import com.cobblemon.mod.common.battles.ShowdownThread
|
||||
import com.cobblemon.mod.common.battles.actor.PokemonBattleActor
|
||||
import com.cobblemon.mod.common.battles.pokemon.BattlePokemon
|
||||
import com.cobblemon.mod.common.block.dispenser.DispenserBehaviorRegistry
|
||||
@@ -76,7 +80,12 @@ import com.cobblemon.mod.common.config.LastChangedVersion
|
||||
import com.cobblemon.mod.common.config.constraint.IntConstraint
|
||||
import com.cobblemon.mod.common.config.starter.StarterConfig
|
||||
import com.cobblemon.mod.common.data.CobblemonDataProvider
|
||||
import com.cobblemon.mod.common.events.*
|
||||
import com.cobblemon.mod.common.events.AdvancementHandler
|
||||
import com.cobblemon.mod.common.events.CallbackHandler
|
||||
import com.cobblemon.mod.common.events.EntityCallbackHandler
|
||||
import com.cobblemon.mod.common.events.PokedexHandler
|
||||
import com.cobblemon.mod.common.events.ServerTickHandler
|
||||
import com.cobblemon.mod.common.events.StatHandler
|
||||
import com.cobblemon.mod.common.net.messages.client.settings.ServerSettingsPacket
|
||||
import com.cobblemon.mod.common.permission.LaxPermissionValidator
|
||||
import com.cobblemon.mod.common.platform.events.PlatformEvents
|
||||
@@ -90,11 +99,23 @@ import com.cobblemon.mod.common.pokemon.feature.SlowpokeTailRegrowthSpeciesFeatu
|
||||
import com.cobblemon.mod.common.pokemon.feature.SlowpokeTailRegrowthSpeciesFeatureProvider
|
||||
import com.cobblemon.mod.common.pokemon.feature.TagSeasonResolver
|
||||
import com.cobblemon.mod.common.pokemon.helditem.CobblemonHeldItemManager
|
||||
import com.cobblemon.mod.common.pokemon.properties.*
|
||||
import com.cobblemon.mod.common.pokemon.properties.AspectPropertyType
|
||||
import com.cobblemon.mod.common.pokemon.properties.BattleCloneProperty
|
||||
import com.cobblemon.mod.common.pokemon.properties.FreezeFrameProperty
|
||||
import com.cobblemon.mod.common.pokemon.properties.HiddenAbilityPropertyType
|
||||
import com.cobblemon.mod.common.pokemon.properties.LabelProperty
|
||||
import com.cobblemon.mod.common.pokemon.properties.NoAIProperty
|
||||
import com.cobblemon.mod.common.pokemon.properties.UnaspectPropertyType
|
||||
import com.cobblemon.mod.common.pokemon.properties.UncatchableProperty
|
||||
import com.cobblemon.mod.common.pokemon.stat.CobblemonStatProvider
|
||||
import com.cobblemon.mod.common.starter.CobblemonStarterHandler
|
||||
import com.cobblemon.mod.common.util.*
|
||||
import com.cobblemon.mod.common.util.DataKeys
|
||||
import com.cobblemon.mod.common.util.cobblemonResource
|
||||
import com.cobblemon.mod.common.util.ifDedicatedServer
|
||||
import com.cobblemon.mod.common.util.isLaterVersion
|
||||
import com.cobblemon.mod.common.util.party
|
||||
import com.cobblemon.mod.common.util.requestWallpapers
|
||||
import com.cobblemon.mod.common.util.server
|
||||
import com.cobblemon.mod.common.world.feature.CobblemonPlacedFeatures
|
||||
import com.cobblemon.mod.common.world.feature.ore.CobblemonOrePlacedFeatures
|
||||
import com.cobblemon.mod.common.world.gamerules.CobblemonGameRules
|
||||
@@ -102,6 +123,17 @@ import com.mongodb.ConnectionString
|
||||
import com.mongodb.MongoClientSettings
|
||||
import com.mongodb.client.MongoClient
|
||||
import com.mongodb.client.MongoClients
|
||||
import java.io.File
|
||||
import java.io.FileReader
|
||||
import java.io.FileWriter
|
||||
import java.io.PrintWriter
|
||||
import java.util.UUID
|
||||
import java.util.concurrent.TimeUnit
|
||||
import kotlin.math.roundToInt
|
||||
import kotlin.properties.Delegates
|
||||
import kotlin.reflect.full.memberProperties
|
||||
import kotlin.reflect.jvm.isAccessible
|
||||
import kotlin.reflect.jvm.javaField
|
||||
import net.minecraft.client.Minecraft
|
||||
import net.minecraft.commands.synchronization.SingletonArgumentInfo
|
||||
import net.minecraft.resources.ResourceKey
|
||||
@@ -114,17 +146,6 @@ import net.minecraft.world.level.Level
|
||||
import net.minecraft.world.level.storage.LevelResource
|
||||
import org.apache.logging.log4j.LogManager
|
||||
import org.apache.logging.log4j.Logger
|
||||
import java.io.File
|
||||
import java.io.FileReader
|
||||
import java.io.FileWriter
|
||||
import java.io.PrintWriter
|
||||
import java.util.*
|
||||
import java.util.concurrent.TimeUnit
|
||||
import kotlin.math.roundToInt
|
||||
import kotlin.properties.Delegates
|
||||
import kotlin.reflect.full.memberProperties
|
||||
import kotlin.reflect.jvm.isAccessible
|
||||
import kotlin.reflect.jvm.javaField
|
||||
|
||||
object Cobblemon {
|
||||
const val MODID = CobblemonBuildDetails.MOD_ID
|
||||
@@ -165,7 +186,7 @@ object Cobblemon {
|
||||
val statistics: CobblemonStats = CobblemonStats
|
||||
|
||||
@JvmStatic
|
||||
val builtinPacks = listOf<CobblemonPack>(
|
||||
val builtinPacks = listOf(
|
||||
CobblemonPack(id = "adorncompatibility", name = "Adorn Compatibility", packType = PackType.CLIENT_RESOURCES, activationBehaviour = ResourcePackActivationBehaviour.ALWAYS_ENABLED, neededMods = setOf("adorn")),
|
||||
CobblemonPack(id = "gyaradosjump", name = "Gyarados Jump Patterns", packType = PackType.CLIENT_RESOURCES, activationBehaviour = ResourcePackActivationBehaviour.DEFAULT_ENABLED),
|
||||
CobblemonPack(id = "regionbiasforms", name = "Region Bias Forms", packType = PackType.CLIENT_RESOURCES, activationBehaviour = ResourcePackActivationBehaviour.DEFAULT_ENABLED),
|
||||
@@ -451,7 +472,7 @@ object Cobblemon {
|
||||
server()?.getLevel(dimension)
|
||||
} else {
|
||||
val mc = Minecraft.getInstance()
|
||||
return mc.singleplayerServer?.getLevel(dimension) ?: mc.level
|
||||
mc.singleplayerServer?.getLevel(dimension) ?: mc.level
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -21,12 +21,15 @@ import com.cobblemon.mod.common.client.net.callback.partymove.OpenPartyMoveCallb
|
||||
import com.cobblemon.mod.common.client.net.cooking.ToggleCookingPotLidHandler
|
||||
import com.cobblemon.mod.common.client.net.data.CobblemonMechanicsSyncHandler
|
||||
import com.cobblemon.mod.common.client.net.data.DataRegistrySyncPacketHandler
|
||||
import com.cobblemon.mod.common.client.net.data.PokemonInteractionsSyncHandler
|
||||
import com.cobblemon.mod.common.client.net.data.RideSettingsSyncHandler
|
||||
import com.cobblemon.mod.common.client.net.debug.OpenRidingStatsDebugGUIHandler
|
||||
import com.cobblemon.mod.common.client.net.dialogue.DialogueClosedHandler
|
||||
import com.cobblemon.mod.common.client.net.dialogue.DialogueOpenedHandler
|
||||
import com.cobblemon.mod.common.client.net.effect.*
|
||||
import com.cobblemon.mod.common.client.net.effect.PokeSnackBlockParticlesHandler
|
||||
import com.cobblemon.mod.common.client.net.effect.RunPosableMoLangHandler
|
||||
import com.cobblemon.mod.common.client.net.effect.SaccharineLogBlockParticlesHandler
|
||||
import com.cobblemon.mod.common.client.net.effect.SpawnSnowstormEntityParticleHandler
|
||||
import com.cobblemon.mod.common.client.net.effect.SpawnSnowstormParticleHandler
|
||||
import com.cobblemon.mod.common.client.net.gui.ExpGainedDataPacketHandler
|
||||
import com.cobblemon.mod.common.client.net.gui.InteractPokemonUIPacketHandler
|
||||
import com.cobblemon.mod.common.client.net.gui.PokedexUIPacketHandler
|
||||
@@ -34,7 +37,11 @@ import com.cobblemon.mod.common.client.net.gui.SummaryUIPacketHandler
|
||||
import com.cobblemon.mod.common.client.net.npc.CloseNPCEditorHandler
|
||||
import com.cobblemon.mod.common.client.net.npc.OpenNPCEditorHandler
|
||||
import com.cobblemon.mod.common.client.net.orientation.ClientboundUpdateOrientationHandler
|
||||
import com.cobblemon.mod.common.client.net.pasture.*
|
||||
import com.cobblemon.mod.common.client.net.pasture.ClosePastureHandler
|
||||
import com.cobblemon.mod.common.client.net.pasture.OpenPastureHandler
|
||||
import com.cobblemon.mod.common.client.net.pasture.PokemonPasturedHandler
|
||||
import com.cobblemon.mod.common.client.net.pasture.PokemonUnpasturedHandler
|
||||
import com.cobblemon.mod.common.client.net.pasture.UpdatePastureConflictFlagHandler
|
||||
import com.cobblemon.mod.common.client.net.pokedex.ServerConfirmedRegisterHandler
|
||||
import com.cobblemon.mod.common.client.net.pokemon.update.ClientboundUpdateRidingStateHandler
|
||||
import com.cobblemon.mod.common.client.net.pokemon.update.PokemonUpdatePacketHandler
|
||||
@@ -52,7 +59,14 @@ import com.cobblemon.mod.common.client.net.storage.party.SetPartyPokemonHandler
|
||||
import com.cobblemon.mod.common.client.net.storage.party.SetPartyReferenceHandler
|
||||
import com.cobblemon.mod.common.client.net.storage.pc.*
|
||||
import com.cobblemon.mod.common.client.net.toast.ToastPacketHandler
|
||||
import com.cobblemon.mod.common.client.net.trade.*
|
||||
import com.cobblemon.mod.common.client.net.trade.TradeAcceptanceChangedHandler
|
||||
import com.cobblemon.mod.common.client.net.trade.TradeCancelledHandler
|
||||
import com.cobblemon.mod.common.client.net.trade.TradeCompletedHandler
|
||||
import com.cobblemon.mod.common.client.net.trade.TradeOfferExpiredHandler
|
||||
import com.cobblemon.mod.common.client.net.trade.TradeOfferNotificationHandler
|
||||
import com.cobblemon.mod.common.client.net.trade.TradeProcessStartedHandler
|
||||
import com.cobblemon.mod.common.client.net.trade.TradeStartedHandler
|
||||
import com.cobblemon.mod.common.client.net.trade.TradeUpdatedHandler
|
||||
import com.cobblemon.mod.common.net.PacketRegisterInfo
|
||||
import com.cobblemon.mod.common.net.messages.client.CalculateSeatPositionsPacket
|
||||
import com.cobblemon.mod.common.net.messages.client.OpenBehaviourEditorPacket
|
||||
@@ -69,12 +83,20 @@ import com.cobblemon.mod.common.net.messages.client.data.*
|
||||
import com.cobblemon.mod.common.net.messages.client.debug.RequestOpenRidingStatsDebugGUIPacket
|
||||
import com.cobblemon.mod.common.net.messages.client.dialogue.DialogueClosedPacket
|
||||
import com.cobblemon.mod.common.net.messages.client.dialogue.DialogueOpenedPacket
|
||||
import com.cobblemon.mod.common.net.messages.client.effect.*
|
||||
import com.cobblemon.mod.common.net.messages.client.effect.PokeSnackBlockParticlesPacket
|
||||
import com.cobblemon.mod.common.net.messages.client.effect.RunPosableMoLangPacket
|
||||
import com.cobblemon.mod.common.net.messages.client.effect.SaccharineLogBlockParticlesPacket
|
||||
import com.cobblemon.mod.common.net.messages.client.effect.SpawnSnowstormEntityParticlePacket
|
||||
import com.cobblemon.mod.common.net.messages.client.effect.SpawnSnowstormParticlePacket
|
||||
import com.cobblemon.mod.common.net.messages.client.npc.CloseNPCEditorPacket
|
||||
import com.cobblemon.mod.common.net.messages.client.npc.OpenNPCEditorPacket
|
||||
import com.cobblemon.mod.common.net.messages.client.orientation.ClientboundUpdateDriverInputPacket
|
||||
import com.cobblemon.mod.common.net.messages.client.orientation.ClientboundUpdateOrientationPacket
|
||||
import com.cobblemon.mod.common.net.messages.client.pasture.*
|
||||
import com.cobblemon.mod.common.net.messages.client.pasture.ClosePasturePacket
|
||||
import com.cobblemon.mod.common.net.messages.client.pasture.OpenPasturePacket
|
||||
import com.cobblemon.mod.common.net.messages.client.pasture.PokemonPasturedPacket
|
||||
import com.cobblemon.mod.common.net.messages.client.pasture.PokemonUnpasturedPacket
|
||||
import com.cobblemon.mod.common.net.messages.client.pasture.UpdatePastureConflictFlagPacket
|
||||
import com.cobblemon.mod.common.net.messages.client.pokedex.ServerConfirmedRegisterPacket
|
||||
import com.cobblemon.mod.common.net.messages.client.pokemon.update.*
|
||||
import com.cobblemon.mod.common.net.messages.client.pokemon.update.evolution.AddEvolutionPacket
|
||||
@@ -94,19 +116,37 @@ import com.cobblemon.mod.common.net.messages.client.storage.party.InitializePart
|
||||
import com.cobblemon.mod.common.net.messages.client.storage.party.MoveClientPartyPokemonPacket
|
||||
import com.cobblemon.mod.common.net.messages.client.storage.party.SetPartyPokemonPacket
|
||||
import com.cobblemon.mod.common.net.messages.client.storage.party.SetPartyReferencePacket
|
||||
import com.cobblemon.mod.common.net.messages.client.storage.pc.*
|
||||
import com.cobblemon.mod.common.net.messages.client.storage.pc.ClosePCPacket
|
||||
import com.cobblemon.mod.common.net.messages.client.storage.pc.InitializePCPacket
|
||||
import com.cobblemon.mod.common.net.messages.client.storage.pc.MoveClientPCPokemonPacket
|
||||
import com.cobblemon.mod.common.net.messages.client.storage.pc.OpenPCPacket
|
||||
import com.cobblemon.mod.common.net.messages.client.storage.pc.RenamePCBoxPacket
|
||||
import com.cobblemon.mod.common.net.messages.client.storage.pc.SetPCBoxPacket
|
||||
import com.cobblemon.mod.common.net.messages.client.storage.pc.SetPCPokemonPacket
|
||||
import com.cobblemon.mod.common.net.messages.client.storage.pc.wallpaper.ChangePCBoxWallpaperPacket
|
||||
import com.cobblemon.mod.common.net.messages.client.storage.pc.wallpaper.RequestPCBoxWallpapersPacket
|
||||
import com.cobblemon.mod.common.net.messages.client.storage.pc.wallpaper.SetPCBoxWallpapersPacket
|
||||
import com.cobblemon.mod.common.net.messages.client.storage.pc.wallpaper.UnlockPCBoxWallpaperPacket
|
||||
import com.cobblemon.mod.common.net.messages.client.toast.ToastPacket
|
||||
import com.cobblemon.mod.common.net.messages.client.trade.*
|
||||
import com.cobblemon.mod.common.net.messages.client.trade.TradeAcceptanceChangedPacket
|
||||
import com.cobblemon.mod.common.net.messages.client.trade.TradeCancelledPacket
|
||||
import com.cobblemon.mod.common.net.messages.client.trade.TradeCompletedPacket
|
||||
import com.cobblemon.mod.common.net.messages.client.trade.TradeOfferExpiredPacket
|
||||
import com.cobblemon.mod.common.net.messages.client.trade.TradeOfferNotificationPacket
|
||||
import com.cobblemon.mod.common.net.messages.client.trade.TradeProcessStartedPacket
|
||||
import com.cobblemon.mod.common.net.messages.client.trade.TradeStartedPacket
|
||||
import com.cobblemon.mod.common.net.messages.client.trade.TradeUpdatedPacket
|
||||
import com.cobblemon.mod.common.net.messages.client.ui.ExpGainedDataPacket
|
||||
import com.cobblemon.mod.common.net.messages.client.ui.InteractPokemonUIPacket
|
||||
import com.cobblemon.mod.common.net.messages.client.ui.PokedexUIPacket
|
||||
import com.cobblemon.mod.common.net.messages.client.ui.SummaryUIPacket
|
||||
import com.cobblemon.mod.common.net.messages.server.*
|
||||
import com.cobblemon.mod.common.net.messages.server.battle.*
|
||||
import com.cobblemon.mod.common.net.messages.server.battle.BattleSelectActionsPacket
|
||||
import com.cobblemon.mod.common.net.messages.server.battle.BattleTeamLeavePacket
|
||||
import com.cobblemon.mod.common.net.messages.server.battle.BattleTeamRequestPacket
|
||||
import com.cobblemon.mod.common.net.messages.server.battle.BattleTeamResponsePacket
|
||||
import com.cobblemon.mod.common.net.messages.server.battle.RemoveSpectatorPacket
|
||||
import com.cobblemon.mod.common.net.messages.server.battle.SpectateBattlePacket
|
||||
import com.cobblemon.mod.common.net.messages.server.behaviour.DamageOnCollisionPacket
|
||||
import com.cobblemon.mod.common.net.messages.server.behaviour.SetEntityBehaviourPacket
|
||||
import com.cobblemon.mod.common.net.messages.server.block.AdjustBlockEntityViewerCountPacket
|
||||
@@ -131,7 +171,11 @@ import com.cobblemon.mod.common.net.messages.server.pasture.UnpasturePokemonPack
|
||||
import com.cobblemon.mod.common.net.messages.server.pokedex.scanner.FinishScanningPacket
|
||||
import com.cobblemon.mod.common.net.messages.server.pokedex.scanner.StartScanningPacket
|
||||
import com.cobblemon.mod.common.net.messages.server.pokemon.interact.InteractPokemonPacket
|
||||
import com.cobblemon.mod.common.net.messages.server.pokemon.update.*
|
||||
import com.cobblemon.mod.common.net.messages.server.pokemon.update.ServerboundUpdateRidingStatePacket
|
||||
import com.cobblemon.mod.common.net.messages.server.pokemon.update.SetActiveMarkPacket
|
||||
import com.cobblemon.mod.common.net.messages.server.pokemon.update.SetItemHiddenPacket
|
||||
import com.cobblemon.mod.common.net.messages.server.pokemon.update.SetMarkingsPacket
|
||||
import com.cobblemon.mod.common.net.messages.server.pokemon.update.SetNicknamePacket
|
||||
import com.cobblemon.mod.common.net.messages.server.pokemon.update.evolution.AcceptEvolutionPacket
|
||||
import com.cobblemon.mod.common.net.messages.server.riding.DismountPokemonPacket
|
||||
import com.cobblemon.mod.common.net.messages.server.riding.ServerboundUpdateDriverInputPacket
|
||||
@@ -139,14 +183,25 @@ import com.cobblemon.mod.common.net.messages.server.riding.ServerboundUpdateRide
|
||||
import com.cobblemon.mod.common.net.messages.server.starter.RequestStarterScreenPacket
|
||||
import com.cobblemon.mod.common.net.messages.server.storage.SwapPCPartyPokemonPacket
|
||||
import com.cobblemon.mod.common.net.messages.server.storage.party.MovePartyPokemonPacket
|
||||
import com.cobblemon.mod.common.net.messages.server.storage.party.PartyTutorialPacket
|
||||
import com.cobblemon.mod.common.net.messages.server.storage.party.ReleasePartyPokemonPacket
|
||||
import com.cobblemon.mod.common.net.messages.server.storage.party.SwapPartyPokemonPacket
|
||||
import com.cobblemon.mod.common.net.messages.server.storage.pc.*
|
||||
import com.cobblemon.mod.common.net.messages.server.trade.*
|
||||
import com.cobblemon.mod.common.net.messages.server.trade.AcceptTradeRequestPacket
|
||||
import com.cobblemon.mod.common.net.messages.server.trade.CancelTradePacket
|
||||
import com.cobblemon.mod.common.net.messages.server.trade.ChangeTradeAcceptancePacket
|
||||
import com.cobblemon.mod.common.net.messages.server.trade.OfferTradePacket
|
||||
import com.cobblemon.mod.common.net.messages.server.trade.PerformTradePacket
|
||||
import com.cobblemon.mod.common.net.messages.server.trade.UpdateTradeOfferPacket
|
||||
import com.cobblemon.mod.common.net.serverhandling.ChallengeHandler
|
||||
import com.cobblemon.mod.common.net.serverhandling.ChallengeResponseHandler
|
||||
import com.cobblemon.mod.common.net.serverhandling.RequestInteractionsHandler
|
||||
import com.cobblemon.mod.common.net.serverhandling.battle.*
|
||||
import com.cobblemon.mod.common.net.serverhandling.battle.BattleSelectActionsHandler
|
||||
import com.cobblemon.mod.common.net.serverhandling.battle.RemoveSpectatorHandler
|
||||
import com.cobblemon.mod.common.net.serverhandling.battle.SpectateBattleHandler
|
||||
import com.cobblemon.mod.common.net.serverhandling.battle.TeamLeaveHandler
|
||||
import com.cobblemon.mod.common.net.serverhandling.battle.TeamRequestHandler
|
||||
import com.cobblemon.mod.common.net.serverhandling.battle.TeamRequestResponseHandler
|
||||
import com.cobblemon.mod.common.net.serverhandling.behaviour.DamageOnCollisionPacketHandler
|
||||
import com.cobblemon.mod.common.net.serverhandling.behaviour.SetEntityBehaviourHandler
|
||||
import com.cobblemon.mod.common.net.serverhandling.block.AdjustBlockEntityViewerCountHandler
|
||||
@@ -165,6 +220,7 @@ import com.cobblemon.mod.common.net.serverhandling.dialogue.InputToDialogueHandl
|
||||
import com.cobblemon.mod.common.net.serverhandling.evolution.AcceptEvolutionHandler
|
||||
import com.cobblemon.mod.common.net.serverhandling.npc.SaveNPCHandler
|
||||
import com.cobblemon.mod.common.net.serverhandling.orientation.ServerboundUpdateOrientationHandler
|
||||
import com.cobblemon.mod.common.net.serverhandling.storage.party.PartyTutorialPacketHandler
|
||||
import com.cobblemon.mod.common.net.serverhandling.pasture.PasturePokemonHandler
|
||||
import com.cobblemon.mod.common.net.serverhandling.pasture.SetPastureConflictHandler
|
||||
import com.cobblemon.mod.common.net.serverhandling.pasture.UnpastureAllPokemonHandler
|
||||
@@ -172,7 +228,11 @@ import com.cobblemon.mod.common.net.serverhandling.pasture.UnpasturePokemonHandl
|
||||
import com.cobblemon.mod.common.net.serverhandling.pokedex.scanner.FinishScanningHandler
|
||||
import com.cobblemon.mod.common.net.serverhandling.pokedex.scanner.StartScanningHandler
|
||||
import com.cobblemon.mod.common.net.serverhandling.pokemon.interact.InteractPokemonHandler
|
||||
import com.cobblemon.mod.common.net.serverhandling.pokemon.update.*
|
||||
import com.cobblemon.mod.common.net.serverhandling.pokemon.update.ServerboundUpdateRidingStateHandler
|
||||
import com.cobblemon.mod.common.net.serverhandling.pokemon.update.SetActiveMarkHandler
|
||||
import com.cobblemon.mod.common.net.serverhandling.pokemon.update.SetItemHiddenHandler
|
||||
import com.cobblemon.mod.common.net.serverhandling.pokemon.update.SetMarkingsHandler
|
||||
import com.cobblemon.mod.common.net.serverhandling.pokemon.update.SetNicknameHandler
|
||||
import com.cobblemon.mod.common.net.serverhandling.riding.DismountPokemonPacketHandler
|
||||
import com.cobblemon.mod.common.net.serverhandling.riding.DriverInputPacketHandler
|
||||
import com.cobblemon.mod.common.net.serverhandling.riding.ServerboundUpdateRiderRotationHandler
|
||||
@@ -186,7 +246,12 @@ import com.cobblemon.mod.common.net.serverhandling.storage.party.MovePartyPokemo
|
||||
import com.cobblemon.mod.common.net.serverhandling.storage.party.ReleasePCPokemonHandler
|
||||
import com.cobblemon.mod.common.net.serverhandling.storage.party.SwapPartyPokemonHandler
|
||||
import com.cobblemon.mod.common.net.serverhandling.storage.pc.*
|
||||
import com.cobblemon.mod.common.net.serverhandling.trade.*
|
||||
import com.cobblemon.mod.common.net.serverhandling.trade.AcceptTradeRequestHandler
|
||||
import com.cobblemon.mod.common.net.serverhandling.trade.CancelTradeHandler
|
||||
import com.cobblemon.mod.common.net.serverhandling.trade.ChangeTradeAcceptanceHandler
|
||||
import com.cobblemon.mod.common.net.serverhandling.trade.OfferTradeHandler
|
||||
import com.cobblemon.mod.common.net.serverhandling.trade.PerformTradeHandler
|
||||
import com.cobblemon.mod.common.net.serverhandling.trade.UpdateTradeOfferHandler
|
||||
import com.cobblemon.mod.common.util.server
|
||||
import net.minecraft.server.level.ServerPlayer
|
||||
|
||||
@@ -332,7 +397,7 @@ object CobblemonNetwork {
|
||||
// Data registries
|
||||
list.add(PacketRegisterInfo(AbilityRegistrySyncPacket.ID, AbilityRegistrySyncPacket::decode, DataRegistrySyncPacketHandler()))
|
||||
list.add(PacketRegisterInfo(CobblemonMechanicsSyncPacket.ID, CobblemonMechanicsSyncPacket::decode, CobblemonMechanicsSyncHandler))
|
||||
list.add(PacketRegisterInfo(PokemonInteractionsSyncPacket.ID, PokemonInteractionsSyncPacket::decode, PokemonInteractionsSyncHandler))
|
||||
list.add(PacketRegisterInfo(PokemonInteractionsSyncPacket.ID, PokemonInteractionsSyncPacket::decode, DataRegistrySyncPacketHandler()))
|
||||
list.add(PacketRegisterInfo(MovesRegistrySyncPacket.ID, MovesRegistrySyncPacket::decode, DataRegistrySyncPacketHandler()))
|
||||
list.add(PacketRegisterInfo(BerryRegistrySyncPacket.ID, BerryRegistrySyncPacket::decode, DataRegistrySyncPacketHandler()))
|
||||
list.add(PacketRegisterInfo(SpeciesRegistrySyncPacket.ID, SpeciesRegistrySyncPacket::decode, DataRegistrySyncPacketHandler()))
|
||||
@@ -460,7 +525,7 @@ object CobblemonNetwork {
|
||||
list.add(PacketRegisterInfo(ReleasePCPokemonPacket.ID, ReleasePCPokemonPacket::decode, ReleasePCPokemonHandler))
|
||||
list.add(PacketRegisterInfo(UnlinkPlayerFromPCPacket.ID, UnlinkPlayerFromPCPacket::decode, UnlinkPlayerFromPCHandler))
|
||||
|
||||
list.add(PacketRegisterInfo(RequestRenamePCBoxPacket.Companion.ID, RequestRenamePCBoxPacket.Companion::decode, RequestRenamePCBoxHandler))
|
||||
list.add(PacketRegisterInfo(RequestRenamePCBoxPacket.ID, RequestRenamePCBoxPacket::decode, RequestRenamePCBoxHandler))
|
||||
list.add(PacketRegisterInfo(PCBoxWallpapersPacket.ID, PCBoxWallpapersPacket::decode, PCBoxWallpapersHandler))
|
||||
list.add(PacketRegisterInfo(RequestChangePCBoxWallpaperPacket.ID, RequestChangePCBoxWallpaperPacket::decode, RequestChangePCBoxWallpaperHandler))
|
||||
list.add(PacketRegisterInfo(MarkPCBoxWallpapersSeenPacket.ID, MarkPCBoxWallpapersSeenPacket::decode, MarkPCBoxWallpapersSeenHandler))
|
||||
@@ -518,6 +583,9 @@ object CobblemonNetwork {
|
||||
list.add(PacketRegisterInfo(PartyPokemonMoveSelectedPacket.ID, PartyPokemonMoveSelectedPacket::decode, PartyPokemonMoveSelectedHandler))
|
||||
list.add(PacketRegisterInfo(PartyMoveSelectCancelledPacket.ID, PartyMoveSelectCancelledPacket::decode, PartyMoveSelectCancelledHandler))
|
||||
|
||||
//Party move tutorial toasts packets
|
||||
list.add(PacketRegisterInfo(PartyTutorialPacket.ID, PartyTutorialPacket::decode, PartyTutorialPacketHandler))
|
||||
|
||||
// Dialogue packets
|
||||
list.add(PacketRegisterInfo(EscapeDialoguePacket.ID, EscapeDialoguePacket::decode, EscapeDialogueHandler))
|
||||
list.add(PacketRegisterInfo(InputToDialoguePacket.ID, InputToDialoguePacket::decode, InputToDialogueHandler))
|
||||
|
||||
+15
-23
@@ -59,40 +59,32 @@ object PokemonInteractions : JsonDataRegistry<PokemonInteractionSet> {
|
||||
.setPrettyPrinting()
|
||||
.create()
|
||||
|
||||
val speciesInteractions = mutableListOf<PokemonInteractionSet>()
|
||||
val generalInteractions = mutableListOf<PokemonInteractionSet>()
|
||||
val interactions = mutableListOf<PokemonInteractionSet>()
|
||||
|
||||
override fun sync(player: ServerPlayer) {
|
||||
PokemonInteractionsSyncPacket(
|
||||
speciesInteractions,
|
||||
generalInteractions,
|
||||
).sendToPlayer(player)
|
||||
PokemonInteractionsSyncPacket(interactions).sendToPlayer(player)
|
||||
}
|
||||
|
||||
override fun reload(data: Map<ResourceLocation, PokemonInteractionSet>) {
|
||||
speciesInteractions.clear()
|
||||
generalInteractions.clear()
|
||||
val split = data.entries.partition { it.value.requirements.any { requirement -> requirement is PokemonPropertiesRequirement && requirement.target.species != null } }
|
||||
speciesInteractions.addAll(split.first.map {it.value})
|
||||
generalInteractions.addAll(split.second.map {it.value})
|
||||
Cobblemon.LOGGER.info("Loaded {} Pokémon interaction sets", data.size)
|
||||
interactions.clear()
|
||||
val split = data.entries
|
||||
.partition {
|
||||
it.value.requirements.any { requirement -> requirement is PokemonPropertiesRequirement && requirement.target.species != null }
|
||||
}
|
||||
|
||||
// Put the species specific interactions first as they take priority
|
||||
interactions.addAll(split.first.map {it.value})
|
||||
interactions.addAll(split.second.map {it.value})
|
||||
|
||||
Cobblemon.LOGGER.info("Loaded {} Pokémon interaction sets", interactions.size)
|
||||
}
|
||||
|
||||
fun findInteraction(pokemon: PokemonEntity): PokemonInteraction? {
|
||||
val setCheck: (PokemonInteractionSet) -> Boolean = { it.requirements.all { req -> req.check(pokemon.pokemon) }}
|
||||
val interactionCheck: (PokemonInteraction) -> Boolean = { it.requirements.all { req -> req.check(pokemon.pokemon) } && !pokemon.pokemon.isOnInteractionCooldown(it.grouping) }
|
||||
// species-specific interactions take priority
|
||||
val validInteractions = speciesInteractions
|
||||
return interactions
|
||||
.filter(setCheck)
|
||||
.flatMap { it.interactions }
|
||||
.filter(interactionCheck)
|
||||
.toMutableList()
|
||||
if (validInteractions.isEmpty()) { // if all species-specific interactions are absent/on cooldown, fallback to more generic ones
|
||||
validInteractions.addAll(generalInteractions.filter(setCheck).flatMap { it.interactions }
|
||||
.filter(interactionCheck)
|
||||
)
|
||||
}
|
||||
|
||||
return validInteractions.randomOrNull()
|
||||
.firstOrNull(interactionCheck)
|
||||
}
|
||||
}
|
||||
+3
-11
@@ -43,17 +43,9 @@ data class PokemonInteractionSet(
|
||||
|
||||
companion object {
|
||||
fun decode(buffer: FriendlyByteBuf): PokemonInteractionSet {
|
||||
val requirements = buffer.readList { it ->
|
||||
CobblemonRequirementAdapter.decode(it)
|
||||
}
|
||||
val interactions = buffer.readList { it ->
|
||||
PokemonInteraction.decode(it)
|
||||
}
|
||||
|
||||
return PokemonInteractionSet(
|
||||
requirements,
|
||||
interactions,
|
||||
)
|
||||
val requirements = buffer.readList(CobblemonRequirementAdapter::decode)
|
||||
val interactions = buffer.readList(PokemonInteraction::decode)
|
||||
return PokemonInteractionSet(requirements, interactions)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2815,8 +2815,8 @@ object MoLangFunctions {
|
||||
}
|
||||
variable
|
||||
}
|
||||
else -> null
|
||||
} ?: throw IllegalArgumentException("Invalid NBT element type: ${nbt.type}")
|
||||
else -> VariableStruct()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+3
-1
@@ -28,6 +28,7 @@ data class GeneralPlayerData(
|
||||
var starterUUID: UUID?,
|
||||
var keyItems: MutableSet<ResourceLocation>,
|
||||
var battleTheme: ResourceLocation?,
|
||||
var partySelectTutorialDone: Boolean = false,
|
||||
val extraData: MutableMap<String, PlayerDataExtension>,
|
||||
) : InstancedPlayerData {
|
||||
var advancementData: PlayerAdvancementData = PlayerAdvancementData()
|
||||
@@ -53,7 +54,8 @@ data class GeneralPlayerData(
|
||||
starterSelected,
|
||||
starterUUID,
|
||||
advancementData.totalBattleVictoryCount == 0,
|
||||
battleTheme
|
||||
battleTheme,
|
||||
partySelectTutorialDone
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
+2
-1
@@ -36,7 +36,8 @@ class PlayerDataJsonBackend: JsonBackedPlayerDataStoreBackend<GeneralPlayerData>
|
||||
starterUUID = null,
|
||||
keyItems = Cobblemon.config.defaultKeyItems,
|
||||
extraData = mutableMapOf(),
|
||||
battleTheme = CobblemonSounds.PVP_BATTLE.location
|
||||
battleTheme = CobblemonSounds.PVP_BATTLE.location,
|
||||
partySelectTutorialDone = false
|
||||
)}
|
||||
|
||||
override val gson = GsonBuilder()
|
||||
|
||||
+2
-1
@@ -37,7 +37,8 @@ class PlayerDataMongoBackend(mongoClient: MongoClient, databaseName: String, col
|
||||
starterUUID = null,
|
||||
keyItems = Cobblemon.config.defaultKeyItems,
|
||||
extraData = mutableMapOf(),
|
||||
battleTheme = CobblemonSounds.PVP_BATTLE.location
|
||||
battleTheme = CobblemonSounds.PVP_BATTLE.location,
|
||||
partySelectTutorialDone = false
|
||||
)}
|
||||
|
||||
override val gson = GsonBuilder()
|
||||
|
||||
+6
-2
@@ -34,7 +34,8 @@ data class ClientGeneralPlayerData(
|
||||
var starterSelected: Boolean = false,
|
||||
var starterUUID: UUID? = null,
|
||||
var showChallengeLabel: Boolean = true,
|
||||
val battleTheme: ResourceLocation? = null
|
||||
val battleTheme: ResourceLocation? = null,
|
||||
var partySelectTutorialDone: Boolean = false
|
||||
) : ClientInstancedPlayerData {
|
||||
|
||||
override fun encode(buf: RegistryFriendlyByteBuf) {
|
||||
@@ -46,6 +47,7 @@ data class ClientGeneralPlayerData(
|
||||
buf.writeNullable(starterUUID) { pb, value -> pb.writeString(value.toString()) }
|
||||
buf.writeNullable(resetStarters) { pb, value -> pb.writeBoolean(value) }
|
||||
buf.writeNullable(battleTheme) {pb, value -> pb.writeIdentifier(value)}
|
||||
buf.writeBoolean(partySelectTutorialDone)
|
||||
}
|
||||
companion object {
|
||||
fun decode(buffer: RegistryFriendlyByteBuf): SetClientPlayerDataPacket {
|
||||
@@ -57,6 +59,7 @@ data class ClientGeneralPlayerData(
|
||||
val starterUUID = buffer.readNullable { it.readString() }?.let { UUID.fromString(it) }
|
||||
val resetStarterPrompt = buffer.readNullable { it.readBoolean() }
|
||||
val battleTheme = buffer.readNullable { it.readIdentifier() }
|
||||
val partySelectTutorialDone = buffer.readBoolean()
|
||||
val data = ClientGeneralPlayerData(
|
||||
resetStarterPrompt,
|
||||
promptStarter,
|
||||
@@ -64,7 +67,8 @@ data class ClientGeneralPlayerData(
|
||||
starterSelected,
|
||||
starterUUID,
|
||||
showChallengeLabel,
|
||||
battleTheme
|
||||
battleTheme,
|
||||
partySelectTutorialDone
|
||||
)
|
||||
//Weird to do this, but since the flag doesn't get passed to the decoded obj, do it here
|
||||
//Should be fine, as long as decode doesn't get run on the server for some reason
|
||||
|
||||
+1
-1
@@ -128,11 +128,11 @@ class FossilMultiblockStructure (
|
||||
|
||||
if(pokemon != null) {
|
||||
pokemon.caughtBall = ballType
|
||||
player.party().add(pokemon)
|
||||
this.fossilState.growthState = "Taken"
|
||||
player.playSound(CobblemonSounds.FOSSIL_MACHINE_RETRIEVE_POKEMON, 1.0F, 1.0F)
|
||||
CobblemonEvents.FOSSIL_REVIVED.post(FossilRevivedEvent(pokemon, player))
|
||||
CobblemonCriteria.RESURRECT_POKEMON.trigger(player, pokemon)
|
||||
player.party().add(pokemon)
|
||||
}
|
||||
|
||||
// Turn the monitor off
|
||||
|
||||
@@ -24,9 +24,10 @@ import com.cobblemon.mod.common.block.entity.TintBlockEntity
|
||||
import com.cobblemon.mod.common.client.battle.ClientBattle
|
||||
import com.cobblemon.mod.common.client.gui.PartyOverlay
|
||||
import com.cobblemon.mod.common.client.gui.PartyOverlayDataControl
|
||||
import com.cobblemon.mod.common.client.gui.RideControlsOverlay
|
||||
import com.cobblemon.mod.common.client.gui.RideOverlay
|
||||
import com.cobblemon.mod.common.client.gui.battle.BattleOverlay
|
||||
import com.cobblemon.mod.common.client.gui.cookingpot.CookingPotScreen
|
||||
import com.cobblemon.mod.common.client.gui.party.PartyTutorialToasts
|
||||
import com.cobblemon.mod.common.client.particle.BedrockParticleOptionsRepository
|
||||
import com.cobblemon.mod.common.client.render.ClientPlayerIcon
|
||||
import com.cobblemon.mod.common.client.render.DeferredRenderer
|
||||
@@ -111,7 +112,7 @@ object CobblemonClient {
|
||||
val overlay: PartyOverlay by lazy { PartyOverlay() }
|
||||
val battleOverlay: BattleOverlay by lazy { BattleOverlay() }
|
||||
val pokedexUsageContext: PokedexUsageContext by lazy { PokedexUsageContext() }
|
||||
val rideControlsOverlay: RideControlsOverlay by lazy { RideControlsOverlay() }
|
||||
val rideControlsOverlay: RideOverlay by lazy { RideOverlay() }
|
||||
|
||||
fun onLogin() {
|
||||
clientPlayerData = ClientGeneralPlayerData()
|
||||
@@ -128,6 +129,8 @@ object CobblemonClient {
|
||||
battleOverlay.onLogout()
|
||||
ClientTaskTracker.clear()
|
||||
checkedStarterScreen = false
|
||||
overlay.resetAttachedToast()
|
||||
PartyTutorialToasts.reset()
|
||||
// CobblemonDataProvider.canReload = true
|
||||
DeferredRenderer.clearAll()
|
||||
ClientPlayerIcon.clear()
|
||||
@@ -165,13 +168,12 @@ object CobblemonClient {
|
||||
PlatformEvents.CLIENT_TICK_POST.subscribe { event ->
|
||||
val player = event.client.player
|
||||
if (player != null) {
|
||||
var selectedItem = player.inventory.getItem(player.inventory.selected)
|
||||
val selectedItem = player.inventory.getItem(player.inventory.selected)
|
||||
if (pokedexUsageContext.scanningGuiOpen &&
|
||||
!(selectedItem.`is`(CobblemonItemTags.POKEDEX)) &&
|
||||
!(player.offhandItem.`is`(CobblemonItemTags.POKEDEX) &&
|
||||
player.isUsingItem == true &&
|
||||
player.usedItemHand == InteractionHand.OFF_HAND
|
||||
)
|
||||
player.isUsingItem &&
|
||||
player.usedItemHand == InteractionHand.OFF_HAND)
|
||||
) {
|
||||
// Stop using Pokédex in main hand if player switches to a different slot in hotbar
|
||||
pokedexUsageContext.stopUsing(PokedexUsageContext.OPEN_SCANNER_BUFFER_TICKS + 1)
|
||||
@@ -216,7 +218,7 @@ object CobblemonClient {
|
||||
}
|
||||
|
||||
fun registerColors() {
|
||||
this.implementation.registerBlockColors(BlockColor { blockState, view, blockPos, tintIndex ->
|
||||
this.implementation.registerBlockColors(BlockColor { _, view, blockPos, _ ->
|
||||
blockPos?.let { pos ->
|
||||
view?.getBlockEntity(pos)?.let { blockEntity ->
|
||||
if (blockEntity is TintBlockEntity) return@BlockColor blockEntity.getTint()
|
||||
|
||||
@@ -18,10 +18,10 @@ import com.cobblemon.mod.common.api.text.text
|
||||
import com.cobblemon.mod.common.client.CobblemonClient
|
||||
import com.cobblemon.mod.common.client.CobblemonResources
|
||||
import com.cobblemon.mod.common.client.gui.battle.BattleGUI
|
||||
import com.cobblemon.mod.common.client.gui.party.PartyTutorialToasts
|
||||
import com.cobblemon.mod.common.client.gui.toast.CobblemonToast
|
||||
import com.cobblemon.mod.common.client.keybind.boundKey
|
||||
import com.cobblemon.mod.common.client.keybind.keybinds.HidePartyBinding
|
||||
import com.cobblemon.mod.common.client.keybind.keybinds.SummaryBinding
|
||||
import com.cobblemon.mod.common.client.keybind.keybinds.*
|
||||
import com.cobblemon.mod.common.client.render.drawScaledText
|
||||
import com.cobblemon.mod.common.client.render.getDepletableRedGreen
|
||||
import com.cobblemon.mod.common.client.render.models.blockbench.FloatingState
|
||||
@@ -150,6 +150,9 @@ class PartyOverlay : Gui(Minecraft.getInstance()) {
|
||||
val portraitFrameOffsetY = 2
|
||||
val selectedSlot = CobblemonClient.storage.selectedSlot
|
||||
|
||||
val partySize = party.slots.count { it != null }
|
||||
PartyTutorialToasts.onOverlayRender(partySize)
|
||||
|
||||
party.forEachIndexed { index, pokemon ->
|
||||
if (pokemon != null) {
|
||||
val selectedOffsetX = if (selectedSlot == index) 6 else 0
|
||||
|
||||
+85
-30
@@ -10,6 +10,8 @@ package com.cobblemon.mod.common.client.gui
|
||||
|
||||
import com.cobblemon.mod.common.Cobblemon
|
||||
import com.cobblemon.mod.common.api.gui.blitk
|
||||
import com.cobblemon.mod.common.api.riding.behaviour.RidingBehaviourSettings
|
||||
import com.cobblemon.mod.common.api.riding.behaviour.RidingBehaviourState
|
||||
import com.cobblemon.mod.common.api.riding.behaviour.types.air.*
|
||||
import com.cobblemon.mod.common.api.riding.behaviour.types.composite.CompositeBehaviour
|
||||
import com.cobblemon.mod.common.api.riding.behaviour.types.composite.CompositeState
|
||||
@@ -19,6 +21,7 @@ import com.cobblemon.mod.common.api.riding.behaviour.types.land.VehicleBehaviour
|
||||
import com.cobblemon.mod.common.api.riding.behaviour.types.liquid.BoatBehaviour
|
||||
import com.cobblemon.mod.common.api.riding.behaviour.types.liquid.BurstBehaviour
|
||||
import com.cobblemon.mod.common.api.riding.behaviour.types.liquid.DolphinBehaviour
|
||||
import com.cobblemon.mod.common.api.riding.behaviour.types.liquid.DolphinState
|
||||
import com.cobblemon.mod.common.client.render.drawScaledText
|
||||
import com.cobblemon.mod.common.entity.pokemon.PokemonEntity
|
||||
import com.cobblemon.mod.common.util.asTranslated
|
||||
@@ -30,17 +33,28 @@ import net.minecraft.client.gui.GuiGraphics
|
||||
import net.minecraft.client.gui.screens.ChatScreen
|
||||
import net.minecraft.client.gui.screens.Screen
|
||||
import net.minecraft.client.player.Input
|
||||
import net.minecraft.client.player.LocalPlayer
|
||||
import net.minecraft.client.renderer.BiomeColors
|
||||
import net.minecraft.network.chat.MutableComponent
|
||||
import net.minecraft.resources.ResourceLocation
|
||||
import net.minecraft.util.FastColor
|
||||
import net.minecraft.util.Mth
|
||||
import net.minecraft.world.entity.Entity
|
||||
import net.minecraft.world.level.BlockAndTintGetter
|
||||
import kotlin.math.floor
|
||||
import kotlin.math.max
|
||||
import kotlin.math.round
|
||||
|
||||
class RideControlsOverlay : Gui(Minecraft.getInstance()) {
|
||||
class RideOverlay : Gui(Minecraft.getInstance()) {
|
||||
|
||||
companion object {
|
||||
private const val CONTROLS_FADE_FRAMES = 20F
|
||||
private const val BASELINE_FPS = 60F
|
||||
|
||||
private const val MOTION_FADE_FRAMES = 10
|
||||
private const val MOTION_FRAMES = 10
|
||||
private const val MOTION_OVERLAY_MAX_OPACITY = 0.6F
|
||||
|
||||
private const val HALF_SCALE = 0.5F
|
||||
|
||||
private val mouseResource = cobblemonResource("textures/gui/riding/mouse.png")
|
||||
@@ -59,6 +73,8 @@ class RideControlsOverlay : Gui(Minecraft.getInstance()) {
|
||||
private val keyJumpResource = cobblemonResource("textures/gui/riding/key_jump.png")
|
||||
private val keySneakWideResource = cobblemonResource("textures/gui/riding/key_sneak_wide.png")
|
||||
private val keyJumpWideResource = cobblemonResource("textures/gui/riding/key_jump_wide.png")
|
||||
|
||||
private val motionLinesResource = cobblemonResource("textures/gui/riding/motion_lines_overlay.png")
|
||||
}
|
||||
|
||||
private val screenExemptions: List<Class<out Screen>> = listOf(ChatScreen::class.java)
|
||||
@@ -67,6 +83,9 @@ class RideControlsOverlay : Gui(Minecraft.getInstance()) {
|
||||
private var controlsDurationFrames = controlsMaxDurationFrames
|
||||
private var controlsFadeFrames = CONTROLS_FADE_FRAMES
|
||||
|
||||
private var motionFrameIntervals = 0F
|
||||
private var motionFadeFrames = 0
|
||||
|
||||
private var lastMouseX = 0
|
||||
private var lastMouseY = 0
|
||||
|
||||
@@ -81,43 +100,70 @@ class RideControlsOverlay : Gui(Minecraft.getInstance()) {
|
||||
override fun render(context: GuiGraphics, tickCounter: DeltaTracker) {
|
||||
val minecraft = Minecraft.getInstance()
|
||||
|
||||
// Hiding if a Screen is open and not exempt
|
||||
minecraft.screen?.let { screen ->
|
||||
if ((!screenExemptions.contains(screen.javaClass as Class<out Screen>))) return
|
||||
}
|
||||
|
||||
if (minecraft.options.hideGui || minecraft.debugOverlay.showDebugScreen()) return
|
||||
|
||||
minecraft.player?.let { player ->
|
||||
// Hiding if a Screen is open and not exempt
|
||||
minecraft.screen?.let { screen ->
|
||||
if ((!screenExemptions.contains(screen.javaClass as Class<out Screen>))) return
|
||||
}
|
||||
|
||||
if (minecraft.options.hideGui || minecraft.debugOverlay.showDebugScreen()) return
|
||||
|
||||
val riddenEntity = player.vehicle
|
||||
|
||||
if (riddenEntity != null && riddenEntity is PokemonEntity) {
|
||||
// Only show controls to driver
|
||||
if (riddenEntity === player.controlledVehicle) {
|
||||
renderControls(minecraft, context, tickCounter, riddenEntity)
|
||||
}
|
||||
val ridingBehaviourSettings = riddenEntity.ridingController?.context?.settings ?: return
|
||||
val ridingBehaviourState = riddenEntity.ridingController?.context?.state ?: return
|
||||
|
||||
setCurrentRideBehaviour(ridingBehaviourSettings, ridingBehaviourState)
|
||||
|
||||
val tickDelta = tickCounter.realtimeDeltaTicks.takeIf { !minecraft.isPaused } ?: 0F
|
||||
val updateInterval = (tickDelta / 20F) * BASELINE_FPS
|
||||
|
||||
renderMotionOverlay(minecraft, player, riddenEntity, context, updateInterval, ridingBehaviourSettings, ridingBehaviourState)
|
||||
renderRideControls(minecraft, context, updateInterval, ridingBehaviourSettings, ridingBehaviourState)
|
||||
} else {
|
||||
resetControlsOverlayState()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
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()
|
||||
fun renderMotionOverlay(minecraft: Minecraft, player: LocalPlayer, riddenEntity: Entity, context: GuiGraphics, updateInterval: Float, ridingBehaviourSettings: RidingBehaviourSettings, ridingBehaviourState: RidingBehaviourState) {
|
||||
if (currentBehaviourKey == JetBehaviour.KEY || currentBehaviourKey == DolphinBehaviour.KEY) {
|
||||
val isBoosting = if (currentBehaviourKey == JetBehaviour.KEY) (ridingBehaviourState as JetState).boosting.get()
|
||||
else (ridingBehaviourState as DolphinState).boosting.get()
|
||||
val interval = round(updateInterval).toInt()
|
||||
|
||||
motionFadeFrames = (motionFadeFrames + (interval * (if (isBoosting) 1 else -1))).coerceIn(0, MOTION_FADE_FRAMES)
|
||||
val opacity = (motionFadeFrames * (1F / MOTION_FADE_FRAMES)).coerceIn(0F, MOTION_OVERLAY_MAX_OPACITY)
|
||||
val tint = if (player.isUnderWater && currentBehaviourKey == DolphinBehaviour.KEY) BiomeColors.getAverageWaterColor(minecraft.level as BlockAndTintGetter, riddenEntity.blockPosition()) else 0xFFFFFF
|
||||
|
||||
motionFrameIntervals += updateInterval * (if (minecraft.options.cameraType.isMirrored) -1 else 1)
|
||||
val frameIndex = floor(motionFrameIntervals).toInt() % MOTION_FRAMES
|
||||
|
||||
blitk(
|
||||
matrixStack = context.pose(),
|
||||
texture = motionLinesResource,
|
||||
x = 0,
|
||||
y = 0,
|
||||
textureHeight = 2560,
|
||||
width = minecraft.window.guiScaledWidth,
|
||||
height = minecraft.window.guiScaledHeight,
|
||||
vOffset = 256 * frameIndex,
|
||||
alpha = opacity,
|
||||
red = FastColor.ARGB32.red(tint) / 255F,
|
||||
green = FastColor.ARGB32.green(tint) / 255F,
|
||||
blue = FastColor.ARGB32.blue(tint) / 255F
|
||||
)
|
||||
} else if (motionFadeFrames > 0) {
|
||||
motionFadeFrames = 0
|
||||
}
|
||||
}
|
||||
|
||||
// Don't render if duration config set to 0 or less
|
||||
if (controlsMaxDurationFrames <= 0F) return
|
||||
private fun setCurrentRideBehaviour(ridingBehaviourSettings: RidingBehaviourSettings, ridingBehaviourState: RidingBehaviourState) {
|
||||
val rideBehaviourKey = ridingBehaviourSettings.key
|
||||
|
||||
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
|
||||
// Update current ride behaviour if changed.
|
||||
// If behaviour is composite, get active behaviour instead
|
||||
if (rideBehaviourKey == CompositeBehaviour.KEY) {
|
||||
val activeBehaviour = (ridingBehaviourState as CompositeState).activeBehaviour.get()
|
||||
if (currentBehaviourKey != activeBehaviour) {
|
||||
@@ -128,12 +174,21 @@ class RideControlsOverlay : Gui(Minecraft.getInstance()) {
|
||||
currentBehaviourKey = rideBehaviourKey
|
||||
resetControlsOverlayState()
|
||||
}
|
||||
}
|
||||
|
||||
private fun renderRideControls(minecraft: Minecraft, context: GuiGraphics, updateInterval: Float, ridingBehaviourSettings: RidingBehaviourSettings, ridingBehaviourState: RidingBehaviourState) {
|
||||
// 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
|
||||
|
||||
// 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
|
||||
|
||||
if (ridingBehaviourSettings != null && controlsFadeFrames > 0) {
|
||||
controlsDurationFrames = max(controlsDurationFrames - updateInterval, 0F)
|
||||
if (controlsDurationFrames == 0F && controlsFadeFrames > 0) controlsFadeFrames = max(controlsFadeFrames - updateInterval, 0F)
|
||||
|
||||
+99
@@ -0,0 +1,99 @@
|
||||
/*
|
||||
* 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.gui.party
|
||||
|
||||
import com.cobblemon.mod.common.CobblemonItems
|
||||
import com.cobblemon.mod.common.api.text.darkGray
|
||||
import com.cobblemon.mod.common.api.text.red
|
||||
import com.cobblemon.mod.common.client.CobblemonClient
|
||||
import com.cobblemon.mod.common.client.gui.toast.CobblemonToast
|
||||
import com.cobblemon.mod.common.client.keybind.boundKey
|
||||
import com.cobblemon.mod.common.client.keybind.keybinds.DownShiftPartyBinding
|
||||
import com.cobblemon.mod.common.client.keybind.keybinds.PartySendBinding
|
||||
import com.cobblemon.mod.common.client.keybind.keybinds.UpShiftPartyBinding
|
||||
import com.cobblemon.mod.common.net.messages.server.storage.party.PartyTutorialPacket
|
||||
import com.cobblemon.mod.common.util.lang
|
||||
import com.mojang.blaze3d.platform.InputConstants
|
||||
import net.minecraft.client.Minecraft
|
||||
import net.minecraft.client.gui.components.toasts.Toast
|
||||
import net.minecraft.client.gui.components.toasts.AdvancementToast
|
||||
import net.minecraft.network.chat.Component
|
||||
import net.minecraft.util.Mth
|
||||
|
||||
object PartyTutorialToasts {
|
||||
|
||||
private var toastAttached = false
|
||||
|
||||
val upKey = UpShiftPartyBinding.boundKey()
|
||||
val downKey = DownShiftPartyBinding.boundKey()
|
||||
|
||||
val upDisplay =
|
||||
if (upKey.type == InputConstants.Type.KEYSYM && upKey.value == InputConstants.KEY_UP)
|
||||
Component.literal("↑")
|
||||
else upKey.displayName
|
||||
|
||||
val downDisplay =
|
||||
if (downKey.type == InputConstants.Type.KEYSYM && downKey.value == InputConstants.KEY_DOWN)
|
||||
Component.literal("↓")
|
||||
else downKey.displayName
|
||||
|
||||
private val toast = CobblemonToast(
|
||||
Mth.createInsecureUUID(),
|
||||
CobblemonItems.POKEDEX_RED.defaultInstance,
|
||||
lang("ui.party.party_select_title").red(),
|
||||
lang(
|
||||
"ui.party.party_select_description",
|
||||
upDisplay,
|
||||
downDisplay,
|
||||
PartySendBinding.boundKey().displayName
|
||||
).darkGray(),
|
||||
AdvancementToast.BACKGROUND_SPRITE,
|
||||
-1F,
|
||||
0
|
||||
)
|
||||
|
||||
fun reset() {
|
||||
toastAttached = false
|
||||
}
|
||||
|
||||
fun onOverlayRender(partySize: Int) {
|
||||
if (partySize <= 1) return
|
||||
|
||||
if (!CobblemonClient.clientPlayerData.partySelectTutorialDone) {
|
||||
showToast()
|
||||
}
|
||||
}
|
||||
|
||||
fun onArrowKeySwitchedSlot() {
|
||||
if (CobblemonClient.clientPlayerData.partySelectTutorialDone) return
|
||||
if (CobblemonClient.storage.party.count { it != null } < 2) return
|
||||
PartyTutorialPacket().sendToServer()
|
||||
hideToast()
|
||||
}
|
||||
|
||||
fun onHoldKeyScrollSwitchedSlot() {
|
||||
if (CobblemonClient.clientPlayerData.partySelectTutorialDone) return
|
||||
if (CobblemonClient.storage.party.count { it != null } < 2) return
|
||||
PartyTutorialPacket().sendToServer()
|
||||
hideToast()
|
||||
}
|
||||
|
||||
private fun showToast() {
|
||||
val minecraft = Minecraft.getInstance()
|
||||
if (!toastAttached) {
|
||||
toast.nextVisibility = Toast.Visibility.SHOW
|
||||
minecraft.toasts.addToast(toast)
|
||||
toastAttached = true
|
||||
}
|
||||
}
|
||||
|
||||
private fun hideToast() {
|
||||
if (toastAttached) toast.nextVisibility = Toast.Visibility.HIDE
|
||||
}
|
||||
}
|
||||
@@ -40,6 +40,7 @@ import com.cobblemon.mod.common.util.asTranslated
|
||||
import com.cobblemon.mod.common.util.cobblemonResource
|
||||
import com.cobblemon.mod.common.util.isInventoryKeyPressed
|
||||
import com.cobblemon.mod.common.util.lang
|
||||
import com.cobblemon.mod.common.util.toAssetPath
|
||||
import com.mojang.blaze3d.platform.InputConstants
|
||||
import net.minecraft.client.Minecraft
|
||||
import net.minecraft.client.gui.GuiGraphics
|
||||
@@ -463,7 +464,7 @@ class PCGUI(
|
||||
)
|
||||
|
||||
// Poké Ball
|
||||
val ballResource = cobblemonResource("textures/item/poke_balls/" + pokemon.caughtBall.name.path + ".png")
|
||||
val ballResource = pokemon.caughtBall.name.toAssetPath("textures/item/poke_balls/", ".png")
|
||||
blitk(
|
||||
matrixStack = matrices,
|
||||
texture = ballResource,
|
||||
|
||||
@@ -45,6 +45,7 @@ import com.cobblemon.mod.common.pokemon.Pokemon
|
||||
import com.cobblemon.mod.common.util.cobblemonResource
|
||||
import com.cobblemon.mod.common.util.isInventoryKeyPressed
|
||||
import com.cobblemon.mod.common.util.lang
|
||||
import com.cobblemon.mod.common.util.toAssetPath
|
||||
import com.mojang.blaze3d.platform.InputConstants
|
||||
import net.minecraft.client.Minecraft
|
||||
import net.minecraft.client.gui.GuiGraphics
|
||||
@@ -558,7 +559,7 @@ class Summary private constructor(party: Collection<Pokemon?>, private val edita
|
||||
}
|
||||
|
||||
// Poké Ball
|
||||
val ballResource = cobblemonResource("textures/item/poke_balls/" + selectedPokemon.caughtBall.name.path + ".png")
|
||||
val ballResource = selectedPokemon.caughtBall.name.toAssetPath("textures/item/poke_balls/", ".png")
|
||||
blitk(
|
||||
matrixStack = matrices,
|
||||
texture = ballResource,
|
||||
|
||||
+2
-2
@@ -19,11 +19,11 @@ import com.cobblemon.mod.common.client.render.drawScaledText
|
||||
import com.cobblemon.mod.common.net.messages.server.RequestMoveSwapPacket
|
||||
import com.cobblemon.mod.common.util.cobblemonResource
|
||||
import com.cobblemon.mod.common.util.lang
|
||||
import java.math.RoundingMode
|
||||
import java.text.DecimalFormat
|
||||
import net.minecraft.client.Minecraft
|
||||
import net.minecraft.client.gui.GuiGraphics
|
||||
import net.minecraft.network.chat.Component
|
||||
import java.math.RoundingMode
|
||||
import java.text.DecimalFormat
|
||||
|
||||
class MovesWidget(
|
||||
pX: Int, pY: Int,
|
||||
|
||||
@@ -20,6 +20,8 @@ import net.minecraft.resources.ResourceLocation
|
||||
import net.minecraft.util.Mth
|
||||
import java.util.*
|
||||
import kotlin.math.min
|
||||
import net.minecraft.client.gui.Font
|
||||
import net.minecraft.util.FormattedCharSequence
|
||||
|
||||
@Environment(EnvType.CLIENT)
|
||||
class CobblemonToast(
|
||||
@@ -38,11 +40,18 @@ class CobblemonToast(
|
||||
private var lastTime = 0L
|
||||
internal var nextVisibility: Toast.Visibility = Toast.Visibility.SHOW
|
||||
|
||||
fun getLines(font: Font, maxWidth: Int): List<FormattedCharSequence> {
|
||||
return font.split(this.description, maxWidth)
|
||||
}
|
||||
|
||||
override fun render(context: GuiGraphics, manager: ToastComponent, startTime: Long): Toast.Visibility {
|
||||
context.blitSprite(this.frameTexture, 0, 0, this.width(), this.height())
|
||||
val maxWidth = 125
|
||||
val textRenderer = manager.minecraft.font
|
||||
|
||||
context.blitSprite(this.frameTexture, 0, 0, this.width(), this.height() + (getLines(textRenderer, maxWidth).size - 1) * 10)
|
||||
|
||||
context.drawString(textRenderer, this.title, 30, 7, this.title.style.color?.value ?: -1, false)
|
||||
context.drawString(textRenderer, this.description, 30, 18, this.description.style.color?.value ?: -1, false)
|
||||
context.drawWordWrap(textRenderer, this.description, 30, 18, maxWidth, this.description.style.color?.value ?: -1)
|
||||
context.renderFakeItem(this.icon, 8, 8)
|
||||
if (this.hasProgressBar()) {
|
||||
context.fill(3, 28, 157, 29, -1)
|
||||
|
||||
@@ -32,6 +32,7 @@ import com.cobblemon.mod.common.pokemon.Pokemon
|
||||
import com.cobblemon.mod.common.util.asTranslated
|
||||
import com.cobblemon.mod.common.util.cobblemonResource
|
||||
import com.cobblemon.mod.common.util.lang
|
||||
import com.cobblemon.mod.common.util.toAssetPath
|
||||
import com.mojang.blaze3d.platform.InputConstants
|
||||
import net.minecraft.client.Minecraft
|
||||
import net.minecraft.client.gui.GuiGraphics
|
||||
@@ -584,7 +585,7 @@ class TradeGUI(
|
||||
|
||||
// Poké Ball
|
||||
val nameXOffset = if (isOpposing) 75 else 0
|
||||
val ballResource = cobblemonResource("textures/item/poke_balls/" + pokemon.caughtBall.name.path + ".png")
|
||||
val ballResource = pokemon.caughtBall.name.toAssetPath("textures/item/poke_balls/", ".png")
|
||||
blitk(
|
||||
matrixStack = context.pose(),
|
||||
texture = ballResource,
|
||||
|
||||
+2
@@ -9,6 +9,7 @@
|
||||
package com.cobblemon.mod.common.client.keybind.keybinds
|
||||
|
||||
import com.cobblemon.mod.common.client.CobblemonClient
|
||||
import com.cobblemon.mod.common.client.gui.party.PartyTutorialToasts
|
||||
import com.cobblemon.mod.common.client.keybind.CobblemonKeyBinding
|
||||
import com.cobblemon.mod.common.client.keybind.KeybindCategories
|
||||
import com.mojang.blaze3d.platform.InputConstants
|
||||
@@ -21,5 +22,6 @@ object DownShiftPartyBinding : CobblemonKeyBinding(
|
||||
) {
|
||||
override fun onPress() {
|
||||
CobblemonClient.storage.shiftSelected(true)
|
||||
PartyTutorialToasts.onArrowKeySwitchedSlot()
|
||||
}
|
||||
}
|
||||
+2
@@ -9,6 +9,7 @@
|
||||
package com.cobblemon.mod.common.client.keybind.keybinds
|
||||
|
||||
import com.cobblemon.mod.common.client.CobblemonClient
|
||||
import com.cobblemon.mod.common.client.gui.party.PartyTutorialToasts
|
||||
import com.cobblemon.mod.common.client.keybind.CobblemonKeyBinding
|
||||
import com.cobblemon.mod.common.client.keybind.KeybindCategories
|
||||
import com.mojang.blaze3d.platform.InputConstants
|
||||
@@ -21,5 +22,6 @@ object UpShiftPartyBinding : CobblemonKeyBinding(
|
||||
) {
|
||||
override fun onPress() {
|
||||
CobblemonClient.storage.shiftSelected(false)
|
||||
PartyTutorialToasts.onArrowKeySwitchedSlot()
|
||||
}
|
||||
}
|
||||
-27
@@ -1,27 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) 2023 Cobblemon Contributors
|
||||
*
|
||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
||||
*/
|
||||
|
||||
package com.cobblemon.mod.common.client.net.data
|
||||
|
||||
import com.cobblemon.mod.common.api.interaction.PokemonInteractions
|
||||
import com.cobblemon.mod.common.api.net.ClientNetworkPacketHandler
|
||||
import com.cobblemon.mod.common.net.messages.client.data.PokemonInteractionsSyncPacket
|
||||
import net.minecraft.client.Minecraft
|
||||
|
||||
object PokemonInteractionsSyncHandler : ClientNetworkPacketHandler<PokemonInteractionsSyncPacket> {
|
||||
|
||||
override fun handle(
|
||||
packet: PokemonInteractionsSyncPacket,
|
||||
client: Minecraft,
|
||||
) {
|
||||
PokemonInteractions.speciesInteractions.clear()
|
||||
PokemonInteractions.speciesInteractions.addAll(packet.speciesInteractions)
|
||||
PokemonInteractions.generalInteractions.clear()
|
||||
PokemonInteractions.generalInteractions.addAll(packet.generalInteractions)
|
||||
}
|
||||
}
|
||||
@@ -8,11 +8,11 @@
|
||||
|
||||
package com.cobblemon.mod.common.command
|
||||
|
||||
import com.cobblemon.mod.common.Cobblemon
|
||||
import com.cobblemon.mod.common.api.permission.CobblemonPermissions
|
||||
import com.cobblemon.mod.common.api.storage.pc.PCPosition
|
||||
import com.cobblemon.mod.common.api.storage.pc.POKEMON_PER_BOX
|
||||
import com.cobblemon.mod.common.api.text.red
|
||||
import com.cobblemon.mod.common.api.text.text
|
||||
import com.cobblemon.mod.common.util.*
|
||||
import com.mojang.brigadier.Command
|
||||
import com.mojang.brigadier.CommandDispatcher
|
||||
@@ -35,7 +35,7 @@ object PcTakeCommand {
|
||||
.then(
|
||||
Commands.argument("box", IntegerArgumentType.integer(1))
|
||||
.then(
|
||||
Commands.argument("slot", IntegerArgumentType.integer(1, 30))
|
||||
Commands.argument("slot", IntegerArgumentType.integer(1, POKEMON_PER_BOX))
|
||||
.executes(::execute)
|
||||
)
|
||||
)
|
||||
@@ -60,8 +60,8 @@ object PcTakeCommand {
|
||||
val slot = IntegerArgumentType.getInteger(context, "slot")
|
||||
val pc = target.pc()
|
||||
|
||||
if (box > POKEMON_PER_BOX) {
|
||||
context.source.sendFailure(commandLang("pctake.too_many_boxes", POKEMON_PER_BOX))
|
||||
if (box > pc.boxes.size) {
|
||||
context.source.sendFailure(commandLang("pctake.too_many_boxes", pc.boxes.size))
|
||||
return 0
|
||||
}
|
||||
|
||||
|
||||
@@ -90,8 +90,10 @@ interface MoLangScriptingEntity {
|
||||
behavioursAreCustom = nbt.getBoolean(DataKeys.SCRIPTED_BEHAVIOURS_ARE_CUSTOM)
|
||||
behaviours.clear()
|
||||
behaviours.addAll(nbt.getList(DataKeys.SCRIPTED_BEHAVIOURS, ListTag.TAG_STRING.toInt()).map { ResourceLocation.parse(it.asString) })
|
||||
data = MoLangFunctions.readMoValueFromNBT(nbt.getCompound(DataKeys.SCRIPTED_DATA)) as VariableStruct
|
||||
config = if (nbt.contains(DataKeys.SCRIPTED_CONFIG)) MoLangFunctions.readMoValueFromNBT(nbt.getCompound(DataKeys.SCRIPTED_CONFIG)) as VariableStruct else VariableStruct()
|
||||
val dataKey = if (nbt.contains(DataKeys.SCRIPTED_DATA)) DataKeys.SCRIPTED_DATA else "Data" // migrate old use of "Data"
|
||||
data = MoLangFunctions.readMoValueFromNBT(nbt.getCompound(dataKey)) as VariableStruct
|
||||
val configKey = if (nbt.contains(DataKeys.SCRIPTED_CONFIG)) DataKeys.SCRIPTED_CONFIG else "Config" // migrate old use of "Config"
|
||||
config = if (nbt.contains(configKey)) MoLangFunctions.readMoValueFromNBT(nbt.getCompound(configKey)) as VariableStruct else VariableStruct()
|
||||
}
|
||||
|
||||
fun registerFunctionsForScripting(struct: QueryStruct) {
|
||||
|
||||
+1
-1
@@ -31,7 +31,7 @@ class BaitEffectsComponent(
|
||||
}
|
||||
|
||||
override fun equals(other: Any?): Boolean {
|
||||
return other is BaitEffectsComponent && effects.size == other.effects.size && effects.all { it in other.effects }
|
||||
return other is BaitEffectsComponent && effects == other.effects
|
||||
}
|
||||
|
||||
override fun hashCode(): Int {
|
||||
|
||||
+1
-3
@@ -49,9 +49,7 @@ class FoodColourComponent(
|
||||
}
|
||||
|
||||
override fun equals(other: Any?): Boolean {
|
||||
return other is FoodColourComponent &&
|
||||
colours.size == other.colours.size &&
|
||||
colours.mapIndexed { index, value -> value == other.colours[index] }.all { it }
|
||||
return other is FoodColourComponent && colours == other.colours // List == List in kotlin checks for element order and index.
|
||||
}
|
||||
|
||||
fun getColoursAsARGB(): List<Int> {
|
||||
|
||||
+2
-1
@@ -20,11 +20,12 @@ class BerryRegistrySyncPacket(berries: Collection<Berry>) : DataRegistrySyncPack
|
||||
}
|
||||
|
||||
override val id = ID
|
||||
|
||||
override fun encodeEntry(buffer: RegistryFriendlyByteBuf, entry: Berry) {
|
||||
entry.encode(buffer)
|
||||
}
|
||||
|
||||
override fun decodeEntry(buffer: RegistryFriendlyByteBuf): Berry? = Berry.decode(buffer)
|
||||
override fun decodeEntry(buffer: RegistryFriendlyByteBuf): Berry = Berry.decode(buffer)
|
||||
|
||||
override fun synchronizeDecoded(entries: Collection<Berry>) {
|
||||
Berries.reload(entries.associateBy { it.identifier })
|
||||
|
||||
+15
-25
@@ -9,40 +9,30 @@
|
||||
package com.cobblemon.mod.common.net.messages.client.data
|
||||
|
||||
import com.cobblemon.mod.common.api.interaction.PokemonInteractionSet
|
||||
import com.cobblemon.mod.common.api.net.NetworkPacket
|
||||
import com.cobblemon.mod.common.api.interaction.PokemonInteractions
|
||||
import com.cobblemon.mod.common.util.cobblemonResource
|
||||
import net.minecraft.network.RegistryFriendlyByteBuf
|
||||
|
||||
class PokemonInteractionsSyncPacket(
|
||||
val speciesInteractions: List<PokemonInteractionSet>,
|
||||
val generalInteractions: List<PokemonInteractionSet>,
|
||||
) : NetworkPacket<PokemonInteractionsSyncPacket> {
|
||||
entries: Collection<PokemonInteractionSet>,
|
||||
) : DataRegistrySyncPacket<PokemonInteractionSet, PokemonInteractionsSyncPacket>(entries) {
|
||||
override val id = ID
|
||||
|
||||
override fun encode(buffer: RegistryFriendlyByteBuf) {
|
||||
buffer.writeCollection(speciesInteractions) { it, speciesInteraction ->
|
||||
speciesInteraction.encode(it)
|
||||
}
|
||||
buffer.writeCollection(generalInteractions) { it, generalInteraction ->
|
||||
generalInteraction.encode(it)
|
||||
}
|
||||
override fun encodeEntry(buffer: RegistryFriendlyByteBuf, entry: PokemonInteractionSet) {
|
||||
entry.encode(buffer)
|
||||
}
|
||||
|
||||
override fun decodeEntry(buffer: RegistryFriendlyByteBuf): PokemonInteractionSet {
|
||||
return PokemonInteractionSet.decode(buffer)
|
||||
}
|
||||
|
||||
override fun synchronizeDecoded(entries: Collection<PokemonInteractionSet>) {
|
||||
PokemonInteractions.interactions.clear()
|
||||
PokemonInteractions.interactions.addAll(entries)
|
||||
}
|
||||
|
||||
companion object {
|
||||
val ID = cobblemonResource("pokemon_interactions_sync")
|
||||
|
||||
fun decode(buffer: RegistryFriendlyByteBuf): PokemonInteractionsSyncPacket {
|
||||
val speciesInteractions = buffer.readList { it ->
|
||||
PokemonInteractionSet.decode(it)
|
||||
}
|
||||
val generalInteractions = buffer.readList { it ->
|
||||
PokemonInteractionSet.decode(it)
|
||||
}
|
||||
|
||||
return PokemonInteractionsSyncPacket(
|
||||
speciesInteractions,
|
||||
generalInteractions,
|
||||
)
|
||||
}
|
||||
fun decode(buffer: RegistryFriendlyByteBuf): PokemonInteractionsSyncPacket = PokemonInteractionsSyncPacket(emptyList()).apply { decodeBuffer(buffer) }
|
||||
}
|
||||
}
|
||||
+24
@@ -0,0 +1,24 @@
|
||||
/*
|
||||
* 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.net.messages.server.storage.party
|
||||
|
||||
import com.cobblemon.mod.common.api.net.NetworkPacket
|
||||
import com.cobblemon.mod.common.util.cobblemonResource
|
||||
import net.minecraft.network.RegistryFriendlyByteBuf
|
||||
|
||||
class PartyTutorialPacket : NetworkPacket<PartyTutorialPacket> {
|
||||
override val id = ID
|
||||
|
||||
override fun encode(buffer: RegistryFriendlyByteBuf) {}
|
||||
|
||||
companion object {
|
||||
val ID = cobblemonResource("party_select_tutorial")
|
||||
fun decode(buffer: RegistryFriendlyByteBuf): PartyTutorialPacket = PartyTutorialPacket()
|
||||
}
|
||||
}
|
||||
+28
@@ -0,0 +1,28 @@
|
||||
/*
|
||||
* 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.net.serverhandling.storage.party
|
||||
|
||||
import com.cobblemon.mod.common.Cobblemon
|
||||
import com.cobblemon.mod.common.api.net.ServerNetworkPacketHandler
|
||||
import com.cobblemon.mod.common.api.storage.player.PlayerInstancedDataStoreTypes
|
||||
import com.cobblemon.mod.common.net.messages.server.storage.party.PartyTutorialPacket
|
||||
import net.minecraft.server.MinecraftServer
|
||||
import net.minecraft.server.level.ServerPlayer
|
||||
|
||||
object PartyTutorialPacketHandler : ServerNetworkPacketHandler<PartyTutorialPacket> {
|
||||
override fun handle(packet: PartyTutorialPacket, server: MinecraftServer, player: ServerPlayer) {
|
||||
val pd = Cobblemon.playerDataManager.getGenericData(player)
|
||||
|
||||
if (!pd.partySelectTutorialDone) {
|
||||
pd.partySelectTutorialDone = true
|
||||
Cobblemon.playerDataManager.saveSingle(pd, PlayerInstancedDataStoreTypes.GENERAL)
|
||||
pd.sendToPlayer(player)
|
||||
}
|
||||
}
|
||||
}
|
||||
+1
@@ -67,6 +67,7 @@ object CobblemonRequirementAdapter : RequirementAdapter {
|
||||
this.registerType(PropertyRangeRequirement.ADAPTER_VARIANT, PropertyRangeRequirement::class)
|
||||
this.registerType(AdvancementRequirement.ADAPTER_VARIANT, AdvancementRequirement::class)
|
||||
this.registerType(OwnerHoldsItemRequirement.ADAPTER_VARIANT, OwnerHoldsItemRequirement::class)
|
||||
this.registerType(ChanceRequirement.ADAPTER_VARIANT, ChanceRequirement::class)
|
||||
}
|
||||
|
||||
val gson: Gson by lazy {
|
||||
|
||||
+37
@@ -0,0 +1,37 @@
|
||||
/*
|
||||
* 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.pokemon.requirements
|
||||
|
||||
import com.cobblemon.mod.common.api.molang.ExpressionLike
|
||||
import com.cobblemon.mod.common.api.pokemon.requirement.Requirement
|
||||
import com.cobblemon.mod.common.pokemon.Pokemon
|
||||
import com.cobblemon.mod.common.util.asExpressionLike
|
||||
import com.cobblemon.mod.common.util.genericRuntime
|
||||
import com.cobblemon.mod.common.util.resolveFloat
|
||||
import kotlin.random.Random
|
||||
|
||||
/**
|
||||
* A requirement that will only pass the check if some random chance is satisfied.
|
||||
*
|
||||
* @author Hiroku
|
||||
* @since January 30th, 2026
|
||||
*/
|
||||
class ChanceRequirement : Requirement {
|
||||
companion object {
|
||||
const val ADAPTER_VARIANT = "chance"
|
||||
}
|
||||
|
||||
val chance: ExpressionLike = "1".asExpressionLike()
|
||||
|
||||
override fun check(pokemon: Pokemon): Boolean {
|
||||
genericRuntime.environment.query.addFunction("pokemon") { pokemon.struct }
|
||||
val chance = genericRuntime.resolveFloat(chance)
|
||||
return Random.nextFloat() < chance
|
||||
}
|
||||
}
|
||||
@@ -45,14 +45,15 @@ class ActiveTrade(val player1: TradeParticipant, val player2: TradeParticipant)
|
||||
|
||||
fun performTrade(tradeParticipant: TradeParticipant) {
|
||||
val offer = getOpposingOffer(tradeParticipant)
|
||||
|
||||
if (offer.accepted && getOffer(tradeParticipant).accepted) {
|
||||
TradeManager.performTrade(
|
||||
activeTrade = this,
|
||||
player1 = player1,
|
||||
player2 = player2,
|
||||
pokemon1 = player1Offer.pokemon!!,
|
||||
pokemon2 = player2Offer.pokemon!!
|
||||
)
|
||||
completeTrade()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -98,11 +98,23 @@ object TradeManager : RequestManager<TradeManager.TradeRequest>() {
|
||||
}
|
||||
}
|
||||
|
||||
fun performTrade(player1: TradeParticipant, pokemon1: Pokemon, player2: TradeParticipant, pokemon2: Pokemon) {
|
||||
CobblemonEvents.TRADE_EVENT_PRE.postThen(TradeEvent.Pre(player1, pokemon2, player2, pokemon1)) {
|
||||
val party1 = player1.party
|
||||
val party2 = player2.party
|
||||
fun performTrade(
|
||||
activeTrade: ActiveTrade,
|
||||
player1: TradeParticipant,
|
||||
pokemon1: Pokemon,
|
||||
player2: TradeParticipant,
|
||||
pokemon2: Pokemon
|
||||
) {
|
||||
val party1 = player1.party
|
||||
val party2 = player2.party
|
||||
|
||||
if (pokemon1 !in party1 || pokemon2 !in party2) {
|
||||
Cobblemon.LOGGER.warn("Attempted to perform a trade with Pokémon that aren't in the party anymore. Could be attempted duping between ${player1.name} and ${player2.name}")
|
||||
activeTrade.cancelTrade()
|
||||
return
|
||||
}
|
||||
|
||||
CobblemonEvents.TRADE_EVENT_PRE.postThen(TradeEvent.Pre(player1, pokemon2, player2, pokemon1)) {
|
||||
party1.remove(pokemon1)
|
||||
party2.remove(pokemon2)
|
||||
|
||||
@@ -120,6 +132,8 @@ object TradeManager : RequestManager<TradeManager.TradeRequest>() {
|
||||
it.attemptEvolution(pokemon2, pokemon1)
|
||||
}
|
||||
|
||||
activeTrade.completeTrade()
|
||||
|
||||
CobblemonEvents.TRADE_EVENT_POST.post(TradeEvent.Post(player1, pokemon2, player2, pokemon1))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -261,8 +261,8 @@ object DataKeys {
|
||||
|
||||
const val SCRIPTED_BEHAVIOURS_ARE_CUSTOM = "BehavioursAreCustom"
|
||||
const val SCRIPTED_BEHAVIOURS = "Behaviours"
|
||||
const val SCRIPTED_DATA = "Data"
|
||||
const val SCRIPTED_CONFIG = "Config"
|
||||
const val SCRIPTED_DATA = "ScriptingData"
|
||||
const val SCRIPTED_CONFIG = "ScriptingConfig"
|
||||
|
||||
// PokemonProperties
|
||||
const val ELEMENTAL_TYPE = "ElementalType"
|
||||
|
||||
@@ -547,6 +547,8 @@
|
||||
"cobblemon.trade.request_sent": "Offer'd to trade w'th %1$s",
|
||||
"cobblemon.trade.offer": "%1$s offer'd to trade crewmates with ye.",
|
||||
"cobblemon.ui.party": "Crew",
|
||||
"cobblemon.ui.party.party_select_title": "Pick Yer Party Pal",
|
||||
"cobblemon.ui.party.party_select_description": "Slam %1$s/%2$s...",
|
||||
"cobblemon.ui.power": "Damage",
|
||||
"cobblemon.ui.accuracy": "Shot rate",
|
||||
"cobblemon.ui.effect": "Bonus",
|
||||
|
||||
@@ -824,10 +824,6 @@
|
||||
"effect.cobblemon.cleanse_negative": "Negative Effect Cleanse",
|
||||
"effect.cobblemon.mental_restoration": "Mental Restoration",
|
||||
|
||||
"effect.cobblemon.cleanse_all": "Effect Cleanse",
|
||||
"effect.cobblemon.cleanse_negative": "Negative Effect Cleanse",
|
||||
"effect.cobblemon.mental_restoration": "Mental Restoration",
|
||||
|
||||
"cobblemon.fossil.armor": "Armor",
|
||||
"cobblemon.fossil.bird": "Bird",
|
||||
"cobblemon.fossil.claw": "Claw",
|
||||
@@ -1214,6 +1210,8 @@
|
||||
"cobblemon.trade.error.duplicate": "You already sent a trade request to %1$s!",
|
||||
|
||||
"cobblemon.ui.party": "Party",
|
||||
"cobblemon.ui.party.party_select_title": "Change Party Selection",
|
||||
"cobblemon.ui.party.party_select_description": "Press %1$s/%2$s or hold %3$s and scroll.",
|
||||
"cobblemon.ui.power": "Power",
|
||||
"cobblemon.ui.accuracy": "Accuracy",
|
||||
"cobblemon.ui.effect": "Effect",
|
||||
|
||||
@@ -6360,7 +6360,7 @@
|
||||
"advancements.cobblemon.craft_rod.description": "Crea una Poké Caña en una mesa de herrería y descubre nuevas formas de pescar",
|
||||
"advancements.cobblemon.use_bait.description": "Usa una baya como cebo en tu Poké Caña",
|
||||
"advancements.cobblemon.craft_master_rod.description": "Fabrica una Poké Caña usando una Master Ball",
|
||||
"advancements.cobblemon.craft_master_rod": "Dedicación magistral",
|
||||
"advancements.cobblemon.craft_master_rod": "Esto repercutirá en las poblaciones de Whiscash",
|
||||
"cobblemon.battle.shift": "%1$s se movió al centro",
|
||||
"cobblemon.challenge.pending": "¡Aún no has respondido al desafío de %1$s!",
|
||||
"cobblemon.challenge.multi.team_request.receiver": "¡%1$s ha solicitado hacer equipo contigo para combates múltiples!",
|
||||
@@ -8687,5 +8687,35 @@
|
||||
"cobblemon.ui.ride_style.land.cart": "Coche",
|
||||
"effect.cobblemon.cleanse_all": "Limpieza de efectos",
|
||||
"effect.cobblemon.cleanse_negative": "Limpieza de efectos negativos",
|
||||
"effect.cobblemon.mental_restoration": "Descanso mental"
|
||||
"effect.cobblemon.mental_restoration": "Descanso mental",
|
||||
"block.cobblemon.white_plaque": "Placa blanca",
|
||||
"block.cobblemon.light_gray_plaque": "Placa gris claro",
|
||||
"block.cobblemon.gray_plaque": "Placa gris",
|
||||
"block.cobblemon.black_plaque": "Placa negra",
|
||||
"block.cobblemon.brown_plaque": "Placa marrón",
|
||||
"block.cobblemon.red_plaque": "Placa roja",
|
||||
"block.cobblemon.orange_plaque": "Placa naranja",
|
||||
"block.cobblemon.yellow_plaque": "Placa amarilla",
|
||||
"block.cobblemon.lime_plaque": "Placa verde lima",
|
||||
"block.cobblemon.green_plaque": "Placa verde",
|
||||
"block.cobblemon.cyan_plaque": "Placa cian",
|
||||
"block.cobblemon.light_blue_plaque": "Placa azul claro",
|
||||
"block.cobblemon.blue_plaque": "Placa azul",
|
||||
"block.cobblemon.purple_plaque": "Placa morada",
|
||||
"block.cobblemon.magenta_plaque": "Placa magenta",
|
||||
"block.cobblemon.pink_plaque": "Placa rosa",
|
||||
"advancements.cobblemon.cook_all_regional_delicacies": "Gira mundial culinaria",
|
||||
"advancements.cobblemon.cook_all_regional_delicacies.description": "Cocina todas las delicatesen regionales",
|
||||
"advancements.cobblemon.cook_all_ev_mochi": "¡Mucho mochi!",
|
||||
"advancements.cobblemon.cook_all_ev_mochi.description": "Cocina todos los sabores de mochi, un delicioso tentempié que modifica los puntos de esfuerzo de un Pokémon",
|
||||
"advancements.cobblemon.cook_snack": "Un aroma tentador",
|
||||
"advancements.cobblemon.cook_snack.description": "Hornea un Poké Snack, un delicioso pastel que puede atraer a ciertos Pokémon según la baya que uses",
|
||||
"advancements.cobblemon.use_poke_bait": "Seguro que pican",
|
||||
"advancements.cobblemon.use_poke_bait.description": "Prepara Poké Cebo en una cacerola para hogueras y usalo para atraer a un Pokémon",
|
||||
"advancements.cobblemon.max_ride_stats": "Poké Atleta de renombre",
|
||||
"advancements.cobblemon.max_ride_stats.description": "Aumenta al máximo las estadísticas de montura de un Pokémon dándole bongurchata de sabores\nLos distintos sabores aumentan distintas características",
|
||||
"advancements.cobblemon.interact_with_pokemon": "Zafarrancho en el rancho",
|
||||
"advancements.cobblemon.interact_with_pokemon.description": "Usa alguna de tus herramientas para obtener recursos de uno de tus Pokémon",
|
||||
"advancements.cobblemon.slather_saccharine": "Solo un mordisquito",
|
||||
"advancements.cobblemon.slather_saccharine.description": "Unta una botella de miel en el tronco de un sacarino y atrae a ciertos Pokémon"
|
||||
}
|
||||
|
||||
@@ -9191,10 +9191,12 @@
|
||||
"tag.item.cobblemon.plaques": "Plaques",
|
||||
"tag.item.cobblemon.display_case_items": "Modèles d'objets en vitrine",
|
||||
"tag.item.cobblemon.item_blocks": "Objets décoratifs",
|
||||
"cobblemon.behaviour.defend_owner.name": "Défendre le propriétaire",
|
||||
"cobblemon.behaviour.defend_owner.desc": "Défend son propriétaire lorsqu'il est attaqué.",
|
||||
"cobblemon.behaviour.defend_owner.name": "Défendre le dresseur",
|
||||
"cobblemon.behaviour.defend_owner.desc": "Défend son dresseur lorsqu'il est attaqué.",
|
||||
"stat.cobblemon.riding_land": "Distance parcourue par Pokémon sur terre",
|
||||
"stat.cobblemon.riding_air": "Distance parcourue par Pokémon dans les airs",
|
||||
"stat.cobblemon.riding_liquid": "Distance parcourue par Pokémon dans un liquide",
|
||||
"cobblemon.ui.ride_style.air.bird": "Oiseau"
|
||||
"cobblemon.ui.ride_style.air.bird": "Oiseau",
|
||||
"effect.cobblemon.cleanse_all": "Nettoyage des effets",
|
||||
"effect.cobblemon.cleanse_negative": "Nettoyage des effets négatifs"
|
||||
}
|
||||
|
||||
@@ -9178,5 +9178,39 @@
|
||||
"cobblemon.ui.ride_style.air.bird": "Oiseau",
|
||||
"cobblemon.ui.ride_style.air.hover": "Flotte",
|
||||
"cobblemon.ui.ride_style.air.jet": "Avion",
|
||||
"cobblemon.ui.ride_style.air.rocket": "Fusée"
|
||||
"cobblemon.ui.ride_style.air.rocket": "Fusée",
|
||||
"cobblemon.ui.ride_style.land.horse": "Standard",
|
||||
"cobblemon.ui.ride_style.land.cart": "Voiture",
|
||||
"cobblemon.ui.ride_style.liquid.boat": "Bateau",
|
||||
"cobblemon.ui.ride_style.liquid.dolphin": "Dauphin",
|
||||
"cobblemon.ui.ride_style.liquid.submarine": "Sous-marin",
|
||||
"cobblemon.config.ui.enable_in_flight_dismounting": "Activer le débarquement en vol",
|
||||
"cobblemon.config.ui.enable_in_flight_dismounting.tooltip": "Permet aux joueurs de descendre de leur Pokémon en plein vol. Lorsque cette option est désactivée, il n'est possible de descendre que depuis le sol.",
|
||||
"block.cobblemon.white_plaque": "Plaque blanche",
|
||||
"block.cobblemon.light_gray_plaque": "Plaque gris clair",
|
||||
"block.cobblemon.gray_plaque": "Plaque grise",
|
||||
"block.cobblemon.black_plaque": "Plaque noire",
|
||||
"block.cobblemon.brown_plaque": "Plaque marron",
|
||||
"block.cobblemon.red_plaque": "Plaque rouge",
|
||||
"block.cobblemon.orange_plaque": "Plaque orange",
|
||||
"block.cobblemon.yellow_plaque": "Plaque jaune",
|
||||
"block.cobblemon.lime_plaque": "Plaque vert clair",
|
||||
"block.cobblemon.green_plaque": "Plaque verte",
|
||||
"block.cobblemon.cyan_plaque": "Plaque cyan",
|
||||
"block.cobblemon.light_blue_plaque": "Plaque bleu clair",
|
||||
"block.cobblemon.blue_plaque": "Plaque bleue",
|
||||
"block.cobblemon.purple_plaque": "Plaque violette",
|
||||
"block.cobblemon.magenta_plaque": "Plaque magenta",
|
||||
"block.cobblemon.pink_plaque": "Plaque rose",
|
||||
"tag.item.cobblemon.chest_boats": "Bateaux de stockage",
|
||||
"tag.item.cobblemon.plaques": "Plaques",
|
||||
"tag.item.cobblemon.display_case_items": "Modèles d'objets en vitrine",
|
||||
"tag.item.cobblemon.item_blocks": "Objets décoratifs",
|
||||
"cobblemon.behaviour.defend_owner.name": "Défendre le dresseur",
|
||||
"cobblemon.behaviour.defend_owner.desc": "Défend son dresseur lorsqu'il est attaqué.",
|
||||
"stat.cobblemon.riding_land": "Distance parcourue par Pokémon sur terre",
|
||||
"stat.cobblemon.riding_air": "Distance parcourue par Pokémon dans les airs",
|
||||
"stat.cobblemon.riding_liquid": "Distance parcourue par Pokémon dans un liquide",
|
||||
"effect.cobblemon.cleanse_all": "Nettoyage des effets",
|
||||
"effect.cobblemon.cleanse_negative": "Nettoyage des effets négatifs"
|
||||
}
|
||||
|
||||
@@ -322,7 +322,7 @@
|
||||
"item.cobblemon.rich_mulch": "주렁주렁비료",
|
||||
"item.cobblemon.sandy_mulch": "모래비료",
|
||||
"item.cobblemon.surprise_mulch": "깜놀비료",
|
||||
"item.cobblemon.medicinal_leek": "약초",
|
||||
"item.cobblemon.medicinal_leek": "약초 대파",
|
||||
"item.cobblemon.energy_root": "힘의뿌리",
|
||||
"item.cobblemon.revival_herb": "부활초",
|
||||
"item.cobblemon.roasted_leek": "구운 대파",
|
||||
@@ -826,10 +826,10 @@
|
||||
"advancements.cobblemon.first_shiny_catch.description": "특별한 색 포켓몬을 잡으세요",
|
||||
"advancements.cobblemon.healing_machine": "치료의 힘",
|
||||
"advancements.cobblemon.healing_machine.description": "치료 머신이 충전될 때까지 기다린 후 당신의 포켓몬들을 치료하세요",
|
||||
"advancements.cobblemon.obtain_leek": "대파를 손에 넣었다!",
|
||||
"advancements.cobblemon.obtain_leek.description": "담수 지역에서 자라는 약초를 획득하세요",
|
||||
"advancements.cobblemon.obtain_leek": "약초 대파를 손에 넣었다!",
|
||||
"advancements.cobblemon.obtain_leek.description": "담수 지역에서 자라는 약초 대파를 획득하세요",
|
||||
"advancements.cobblemon.medicinal_brew": "동네 약국",
|
||||
"advancements.cobblemon.medicinal_brew.description": "약초를 양조해 치유에 필요한 기본 재료를 만드세요",
|
||||
"advancements.cobblemon.medicinal_brew.description": "약초 대파를 양조해 치유에 필요한 기본 재료를 만드세요",
|
||||
"advancements.cobblemon.brew_potion": "기초적인 회복 아이템",
|
||||
"advancements.cobblemon.brew_potion.description": "오랭열매와 약용물약을 양조해 상처약을 만드세요",
|
||||
"advancements.cobblemon.brew_full_restore": "챔피언의 선택",
|
||||
|
||||
@@ -600,8 +600,8 @@
|
||||
"cobblemon.healingmachine.alreadyhealing": "A tua equipa de Pokémon já está a ser curada noutro lado!",
|
||||
"cobblemon.pc.inbattle": "Não podes usar o PC durante um combate!",
|
||||
"cobblemon.held_item": "Item segurado",
|
||||
"cobblemon.held_item.give": "%1$s passou a segurar %2$s.",
|
||||
"cobblemon.held_item.replace": "Passaste %1$s de %2$s para %3$s segurar.",
|
||||
"cobblemon.held_item.give": "%1$s recebeu %2$s.",
|
||||
"cobblemon.held_item.replace": "Passaste %1$s de %2$s para %3$s.",
|
||||
"cobblemon.held_item.take": "%2$s deixou de segurar %1$s.",
|
||||
"cobblemon.held_item.already_holding": "%1$s já está a segurar %2$s!",
|
||||
"cobblemon.ui.pokemonteam": "Equipa",
|
||||
@@ -646,9 +646,9 @@
|
||||
"item.cobblemon.babiri_berry": "Baga Babiri",
|
||||
"item.cobblemon.babiri_berry.tooltip": "Reduz pela metade o dano recebido de um ataque supereficaz do tipo Aço",
|
||||
"item.cobblemon.belue_berry": "Baga Belue",
|
||||
"item.cobblemon.belue_berry.tooltip": "Não pode ser comida pelo portador",
|
||||
"item.cobblemon.belue_berry.tooltip": "Não pode ser comida durante batalhas",
|
||||
"item.cobblemon.bluk_berry": "Baga Bluk",
|
||||
"item.cobblemon.bluk_berry.tooltip": "Não pode ser comida pelo portador",
|
||||
"item.cobblemon.bluk_berry.tooltip": "Não pode ser comida durante batalhas",
|
||||
"item.cobblemon.charti_berry": "Baga Charti",
|
||||
"item.cobblemon.charti_berry.tooltip": "Reduz pela metade o dano recebido de um ataque supereficaz do tipo Rocha",
|
||||
"item.cobblemon.cheri_berry": "Baga Cheri",
|
||||
@@ -664,11 +664,11 @@
|
||||
"item.cobblemon.colbur_berry": "Baga Colbur",
|
||||
"item.cobblemon.colbur_berry.tooltip": "Reduz pela metade o dano recebido de um ataque supereficaz do tipo Escuridão",
|
||||
"item.cobblemon.cornn_berry": "Baga Cornn",
|
||||
"item.cobblemon.cornn_berry.tooltip": "Não pode ser comida pelo portador",
|
||||
"item.cobblemon.cornn_berry.tooltip": "Não pode ser comida durante batalhas",
|
||||
"item.cobblemon.custap_berry": "Baga Custap",
|
||||
"item.cobblemon.custap_berry.tooltip": "O portador move-se primeiro ao alcançar 1/4 do HP máximo",
|
||||
"item.cobblemon.durin_berry": "Baga Durin",
|
||||
"item.cobblemon.durin_berry.tooltip": "Não pode ser comida pelo portador",
|
||||
"item.cobblemon.durin_berry.tooltip": "Não pode ser comida durante batalhas",
|
||||
"item.cobblemon.enigma_berry": "Baga Enigma",
|
||||
"item.cobblemon.enigma_berry.tooltip": "Restaura 1/4 do HP máximo após o portador ser atingido por um movimento supereficaz",
|
||||
"item.cobblemon.figy_berry": "Baga Figy",
|
||||
@@ -682,7 +682,7 @@
|
||||
"item.cobblemon.hondew_berry": "Baga Hondrew",
|
||||
"item.cobblemon.hondew_berry.tooltip": "Não pode ser comida pelo portador",
|
||||
"item.cobblemon.hopo_berry": "Baga Hopo",
|
||||
"item.cobblemon.hopo_berry.tooltip": "Não pode ser comida pelo portador",
|
||||
"item.cobblemon.hopo_berry.tooltip": "Restaura 10 PP do movimento selecionado quando consumida por um Pokémon",
|
||||
"item.cobblemon.iapapa_berry": "Baga Iapapa",
|
||||
"item.cobblemon.iapapa_berry.tooltip": "Restaura 1/3 do HP máximo ao alcançar 1/4 do HP máximo ou menos; confunde se Natureza -Def",
|
||||
"item.cobblemon.jaboca_berry": "Baga Jaboca",
|
||||
@@ -706,23 +706,23 @@
|
||||
"item.cobblemon.mago_berry": "Baga Mago",
|
||||
"item.cobblemon.mago_berry.tooltip": "Restaura 1/3 do HP máximo ao alcançar 1/4 do HP máximo ou menos; confunde se Natureza -Spe",
|
||||
"item.cobblemon.magost_berry": "Baga Magost",
|
||||
"item.cobblemon.magost_berry.tooltip": "Não pode ser comida pelo portador",
|
||||
"item.cobblemon.magost_berry.tooltip": "Não pode ser comida durante batalhas",
|
||||
"item.cobblemon.maranga_berry": "Baga Maranga",
|
||||
"item.cobblemon.maranga_berry.tooltip": "Aumenta a Defesa Especial do portador por 1 estágio após ser atingido por um ataque especial",
|
||||
"item.cobblemon.micle_berry": "Baga Micle",
|
||||
"item.cobblemon.micle_berry.tooltip": "O próximo ataque do portador tem 1.2x precisão ao alcançar 1/4 do HP máximo or menos",
|
||||
"item.cobblemon.nanab_berry": "Baga Nanab",
|
||||
"item.cobblemon.nanab_berry.tooltip": "Não pode ser comida pelo portador",
|
||||
"item.cobblemon.nanab_berry.tooltip": "Não pode ser comida durante batalhas",
|
||||
"item.cobblemon.touga_berry": "Baga Touga",
|
||||
"item.cobblemon.touga_berry.tooltip": "O portador é curado se ficar confuso",
|
||||
"item.cobblemon.nomel_berry": "Baga Nomel",
|
||||
"item.cobblemon.nomel_berry.tooltip": "Não pode ser comida pelo portador",
|
||||
"item.cobblemon.nomel_berry.tooltip": "Não pode ser comida durante batalhas",
|
||||
"item.cobblemon.occa_berry": "Baga Occa",
|
||||
"item.cobblemon.occa_berry.tooltip": "Reduz pela metade o dano recebido de um ataque supereficaz do tipo Fogo",
|
||||
"item.cobblemon.oran_berry": "Baga Oran",
|
||||
"item.cobblemon.oran_berry.tooltip": "Restaura 10 HP ao alcançar 1/2 do HP máximo ou menos",
|
||||
"item.cobblemon.pamtre_berry": "Baga Pamtre",
|
||||
"item.cobblemon.pamtre_berry.tooltip": "Não pode ser comida pelo portador",
|
||||
"item.cobblemon.pamtre_berry.tooltip": "Não pode ser comida durante batalhas",
|
||||
"item.cobblemon.passho_berry": "Baga Passho",
|
||||
"item.cobblemon.passho_berry.tooltip": "Reduz pela metade o dano recebido de um ataque supereficaz do tipo Água",
|
||||
"item.cobblemon.payapa_berry": "Baga Payapa",
|
||||
@@ -734,17 +734,17 @@
|
||||
"item.cobblemon.petaya_berry": "Baga Petaya",
|
||||
"item.cobblemon.petaya_berry.tooltip": "Aumenta o Ataque Especial do portador por 1 estágio ao alcançar 1/4 do HP máximo ou menos",
|
||||
"item.cobblemon.pinap_berry": "Baga Pinap",
|
||||
"item.cobblemon.pinap_berry.tooltip": "Não pode ser comida pelo portador",
|
||||
"item.cobblemon.pinap_berry.tooltip": "Não pode ser comida durante batalhas",
|
||||
"item.cobblemon.pomeg_berry": "Baga Pomeg",
|
||||
"item.cobblemon.pomeg_berry.tooltip": "Não pode ser comida pelo portador",
|
||||
"item.cobblemon.qualot_berry": "Baga Qualot",
|
||||
"item.cobblemon.qualot_berry.tooltip": "Não pode ser comida pelo portador",
|
||||
"item.cobblemon.rabuta_berry": "Baga Rabuta",
|
||||
"item.cobblemon.rabuta_berry.tooltip": "Não pode ser comida pelo portador",
|
||||
"item.cobblemon.rabuta_berry.tooltip": "Não pode ser comida durante batalhas",
|
||||
"item.cobblemon.rawst_berry": "Baga Rawst",
|
||||
"item.cobblemon.rawst_berry.tooltip": "O portador é curado se for queimado",
|
||||
"item.cobblemon.razz_berry": "Baga Razz",
|
||||
"item.cobblemon.razz_berry.tooltip": "Não pode ser comida pelo portador",
|
||||
"item.cobblemon.razz_berry.tooltip": "Não pode ser comida durante batalhas",
|
||||
"item.cobblemon.rindo_berry": "Baga Rindo",
|
||||
"item.cobblemon.rindo_berry.tooltip": "Reduz pela metade o dano recebido de um ataque supereficaz do tipo Planta",
|
||||
"item.cobblemon.roseli_berry": "Baga Roseli",
|
||||
@@ -758,7 +758,7 @@
|
||||
"item.cobblemon.sitrus_berry": "Baga Sitrus",
|
||||
"item.cobblemon.sitrus_berry.tooltip": "Restaura 1/4 do HP máximo quando alcançar 1/2 do HP máximo ou menos",
|
||||
"item.cobblemon.spelon_berry": "Baga Spelon",
|
||||
"item.cobblemon.spelon_berry.tooltip": "Não pode ser comida pelo portador",
|
||||
"item.cobblemon.spelon_berry.tooltip": "Não pode ser comida durante batalhas",
|
||||
"item.cobblemon.starf_berry": "Baga Starf",
|
||||
"item.cobblemon.starf_berry.tooltip": "Aumenta um atributo aleatório por 2 ao alcançar 1/4 do HP máximo ou menos",
|
||||
"item.cobblemon.tamato_berry": "Baga Tamato",
|
||||
@@ -768,9 +768,9 @@
|
||||
"item.cobblemon.wacan_berry": "Baga Wacan",
|
||||
"item.cobblemon.wacan_berry.tooltip": "Reduz pela metade o dano recebido de um ataque supereficaz do tipo Elétrico",
|
||||
"item.cobblemon.watmel_berry": "Baga Watmel",
|
||||
"item.cobblemon.watmel_berry.tooltip": "Não pode ser comida pelo portador",
|
||||
"item.cobblemon.watmel_berry.tooltip": "Não pode ser comida durante batalhas",
|
||||
"item.cobblemon.wepear_berry": "Baga Wepear",
|
||||
"item.cobblemon.wepear_berry.tooltip": "Não pode ser comida pelo portador",
|
||||
"item.cobblemon.wepear_berry.tooltip": "Não pode ser comida durante batalhas",
|
||||
"item.cobblemon.wiki_berry": "Baga Wiki",
|
||||
"item.cobblemon.wiki_berry.tooltip": "Restaura 1/3 do HP máximo ao alcançar 1/4 do HP máximo ou menos; confunde se Natureza -SpA",
|
||||
"item.cobblemon.yache_berry": "Baga Yache",
|
||||
@@ -2240,7 +2240,7 @@
|
||||
"cobblemon.mark.ribbon_event_color_green.desc": "Uma Fita comemorativa.",
|
||||
"key.cobblemon.pokedex": "Abrir Pokédex",
|
||||
"cobblemon.subtitle.wallpaper.unlock": "Papel de parede da caixa do PC desbloqueado",
|
||||
"cobblemon.held_item.forbidden": "Tu não podes dar %1$s para %2$s segurar.",
|
||||
"cobblemon.held_item.forbidden": "Tu não podes dar %1$s a %2$s.",
|
||||
"cobblemon.cosmetic_item": "Item Cosmético",
|
||||
"cobblemon.cosmetic_item.take": "Tu recuperaste %1$s de %2$s.",
|
||||
"cobblemon.challenge.sent": "Tu desafiaste %1$s para uma %2$s.",
|
||||
@@ -5509,7 +5509,7 @@
|
||||
"cobblemon.team.error.missing_pokemon.receiver": "Não tens nenhum Pokémon usável!",
|
||||
"item.cobblemon.grepa_berry.tooltip_1": "Diminui os EVs de Defesa Especial por 10 e aumenta Amizade",
|
||||
"item.cobblemon.pomeg_berry.tooltip_1": "Diminui os EVs de HP por 10 e aumenta Amizade",
|
||||
"item.cobblemon.hondew_berry.tooltip_2": "Não pode ser comida pelo portador",
|
||||
"item.cobblemon.hondew_berry.tooltip_2": "Não pode ser comida durante batalhas",
|
||||
"cobblemon.config.ui.default_box_count.tooltip": "O número de caixas disponíveis no PC.",
|
||||
"cobblemon.config.ui.experience_multiplier.tooltip": "Multiplicador de Experiência adicional para o cálculo de Experiência.",
|
||||
"cobblemon.battle.sidestart.ally.spikes": "Espinhos foram espalhados no chão à volta da tua equipa!",
|
||||
@@ -5551,8 +5551,8 @@
|
||||
"cobblemon.ui.challenge.challenge_title": "Pedido de Batalha",
|
||||
"cobblemon.challenge.multi.error.invalid_team_size": "Equipas para Batalha Múltipla só podem ter %1$s jogadores!",
|
||||
"item.cobblemon.kelpsy_berry.tooltip_1": "Diminui os EVs de Ataque por 10 e aumenta Amizade",
|
||||
"item.cobblemon.qualot_berry.tooltip_2": "Não pode ser comida pelo portador",
|
||||
"item.cobblemon.tamato_berry.tooltip_2": "Não pode ser comida pelo portador",
|
||||
"item.cobblemon.qualot_berry.tooltip_2": "Não pode ser comida durante batalhas",
|
||||
"item.cobblemon.tamato_berry.tooltip_2": "Não pode ser comida durante batalhas",
|
||||
"cobblemon.command.behaviouredit.non_scriptable": "Não estás a olhar para uma entidade MoLang programável.",
|
||||
"item.cobblemon.hondew_berry.tooltip_1": "Diminui os EVs de Ataque Especial por 10 e aumenta Amizade",
|
||||
"cobblemon.command.cobblemon_config.reload": "Recarregando as configurações do Cobblemon.",
|
||||
@@ -5611,7 +5611,7 @@
|
||||
"item.cobblemon.mirror_herb.tooltip_1": "Permite ao portador refletir os aumentos de atributos de um adversário para aumentar os seus próprios atributos",
|
||||
"item.cobblemon.revive.tooltip": "Reanima um Pokémon desmaiado até 50% do seu HP máximo",
|
||||
"item.cobblemon.max_revive.tooltip": "Reanima e cura totalmente um Pokémon desmaiado",
|
||||
"item.cobblemon.revival_herb.tooltip": "Revive totalmente um Pokémon desmaiado, mas reduz Amizade",
|
||||
"item.cobblemon.revival_herb.tooltip": "Revive um Pokémon desmaiado até 25% do seu HP máximo, mas reduz Amizade",
|
||||
"item.cobblemon.moomoo_milk": "Leite Moomoo",
|
||||
"item.cobblemon.awakening.tooltip": "Desperta um Pokémon do sono",
|
||||
"item.cobblemon.burn_heal.tooltip": "Cura um Pokémon de uma queimadura",
|
||||
@@ -5622,12 +5622,12 @@
|
||||
"item.cobblemon.genius_mochi": "Mochi Genial",
|
||||
"item.cobblemon.clever_mochi": "Mochi Esperto",
|
||||
"item.cobblemon.swift_mochi": "Mochi Rápido",
|
||||
"item.cobblemon.health_mochi.tooltip": "Aumenta os EVs de HP do Pokémon por 10",
|
||||
"item.cobblemon.muscle_mochi.tooltip": "Aumenta os EVs de Ataque do Pokémon por 10",
|
||||
"item.cobblemon.resist_mochi.tooltip": "Aumenta os EVs de Defesa do Pokémon por 10",
|
||||
"item.cobblemon.genius_mochi.tooltip": "Aumenta os EVs de Ataque Especial do Pokémon por 10",
|
||||
"item.cobblemon.clever_mochi.tooltip": "Aumenta os EVs de Defesa Especial do Pokémon por 10",
|
||||
"item.cobblemon.swift_mochi.tooltip": "Aumenta os EVs de Velocidade do Pokémon por 10",
|
||||
"item.cobblemon.health_mochi.tooltip": "Aumenta os EVs de HP do Pokémon por 4",
|
||||
"item.cobblemon.muscle_mochi.tooltip": "Aumenta os EVs de Ataque do Pokémon por 4",
|
||||
"item.cobblemon.resist_mochi.tooltip": "Aumenta os EVs de Defesa do Pokémon por 4",
|
||||
"item.cobblemon.genius_mochi.tooltip": "Aumenta os EVs de Ataque Especial do Pokémon por 4",
|
||||
"item.cobblemon.clever_mochi.tooltip": "Aumenta os EVs de Defesa Especial do Pokémon por 4",
|
||||
"item.cobblemon.swift_mochi.tooltip": "Aumenta os EVs de Velocidade do Pokémon por 4",
|
||||
"item.cobblemon.fresh_start_mochi": "Mochi em Branco",
|
||||
"item.cobblemon.fresh_start_mochi.tooltip": "Repõe todos os EVs do Pokémon a 0",
|
||||
"item.cobblemon.aprijuice_black": "Sumo de Bolota Preta",
|
||||
@@ -5636,7 +5636,7 @@
|
||||
"item.cobblemon.aprijuice_pink": "Sumo de Bolota Rosa",
|
||||
"item.cobblemon.aprijuice_white": "Sumo de Bolota Branca",
|
||||
"item.cobblemon.aprijuice_yellow": "Sumo de Bolota Amarela",
|
||||
"cobblemon.seasoning_food_header": "Comida",
|
||||
"cobblemon.seasoning_food_header": "Nutrição",
|
||||
"cobblemon.seasoning_flavor.dry": "Seco",
|
||||
"cobblemon.seasoning_flavor.sweet": "Doce",
|
||||
"item.cobblemon.tasty_tail": "Cauda Saborosa",
|
||||
@@ -5648,7 +5648,7 @@
|
||||
"cobblemon.item_class.seasonings": "Temperos",
|
||||
"cobblemon.item_class.bait_effect_seasoning": "Tempero de Isca",
|
||||
"cobblemon.item_class.mob_effect_seasoning": "Tempero de Efeito",
|
||||
"cobblemon.item_class.food_seasoning": "Tempero de Comida",
|
||||
"cobblemon.item_class.food_seasoning": "Temperos Nutricionais",
|
||||
"cobblemon.seasoning_bait_effect_header": "Isca",
|
||||
"cobblemon.seasoning_flavor_header": "Sabor",
|
||||
"cobblemon.seasoning_bait_effect_info_header": "Informação da Isca:",
|
||||
@@ -5742,11 +5742,11 @@
|
||||
"cobblemon.team.error.existing_team.other": "%1$s já faz parte de uma equipa!",
|
||||
"cobblemon.team.error.max_team_size.other": "%1$s não se pode juntar porque a equipa está cheia!",
|
||||
"cobblemon.team.error.max_team_size.self": "Não é possível entrar, a equipa está cheia!",
|
||||
"item.cobblemon.grepa_berry.tooltip_2": "Não pode ser comida pelo portador",
|
||||
"item.cobblemon.kelpsy_berry.tooltip_2": "Não pode ser comida pelo portador",
|
||||
"item.cobblemon.grepa_berry.tooltip_2": "Não pode ser comida durante batalhas",
|
||||
"item.cobblemon.kelpsy_berry.tooltip_2": "Não pode ser comida durante batalhas",
|
||||
"item.cobblemon.qualot_berry.tooltip_1": "Diminui os EVs de Defesa por 10 e aumenta Amizade",
|
||||
"item.cobblemon.tamato_berry.tooltip_1": "Diminui os EVs de Velocidade por 10 e aumenta Amizade",
|
||||
"item.cobblemon.pomeg_berry.tooltip_2": "Não pode ser comida pelo portador",
|
||||
"item.cobblemon.pomeg_berry.tooltip_2": "Não pode ser comida durante batalhas",
|
||||
"cobblemon.command.mark.invalid": "Nome de marca inválido.",
|
||||
"cobblemon.command.error.nonpc": "Erro: Tu precisas de incluir um identificador de NPC válido.",
|
||||
"cobblemon.command.freezepokemon.non_pokemon": "Não estás a olhar para um Pokémon.",
|
||||
@@ -6165,5 +6165,66 @@
|
||||
"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"
|
||||
"cobblemon.move.hydrovortex": "Vórtice Aquático",
|
||||
"cobblemon.ui.ride_style.air.rocket": "Foguete",
|
||||
"cobblemon.ui.ride_style.land": "Terrestre",
|
||||
"cobblemon.ui.ride_style.land.horse": "Padrão",
|
||||
"cobblemon.ui.ride_style.land.cart": "Carrinho",
|
||||
"cobblemon.ui.ride_style.liquid": "Líquido",
|
||||
"cobblemon.ui.ride_style.liquid.boat": "Barco",
|
||||
"cobblemon.ui.ride_style.liquid.dolphin": "Golfinho",
|
||||
"cobblemon.ui.ride_style.liquid.submarine": "Submarino",
|
||||
"item.cobblemon.eggant_berry": "Baga Eggant",
|
||||
"item.cobblemon.eggant_berry.tooltip": "O portador é curado se ficar apaixonado",
|
||||
"cobblemon.battle.end.sandtomb": "%1$s foi libertado(a) da Sepultura de Areia!",
|
||||
"gamerule.healersHealPC": "Curar Pokémon no PC ao usar uma Máquina de Cura",
|
||||
"tag.item.cobblemon.berries.colour.white": "Bagas Brancas",
|
||||
"tag.item.cobblemon.berries.colour.brown": "Bagas Castanhas",
|
||||
"tag.item.cobblemon.berries.colour.red": "Bagas Vermelhas",
|
||||
"tag.item.cobblemon.berries.colour.orange": "Bagas Laranjas",
|
||||
"tag.item.cobblemon.berries.colour.yellow": "Bagas Amarelas",
|
||||
"tag.item.cobblemon.berries.colour.lime": "Bagas Lima",
|
||||
"tag.item.cobblemon.berries.colour.green": "Bagas Verdes",
|
||||
"tag.item.cobblemon.berries.colour.cyan": "Bagas Ciano",
|
||||
"tag.item.cobblemon.berries.colour.light_blue": "Bagas Azuis Claras",
|
||||
"tag.item.cobblemon.berries.colour.blue": "Bagas Azuis",
|
||||
"tag.item.cobblemon.berries.colour.purple": "Bagas Roxas",
|
||||
"tag.item.cobblemon.berries.colour.magenta": "Bagas Magenta",
|
||||
"tag.item.cobblemon.berries.colour.pink": "Bagas Rosa",
|
||||
"tag.item.cobblemon.item_blocks": "Itens Decorativos",
|
||||
"cobblemon.move.guardianofalola": "Guardião de Alola",
|
||||
"cobblemon.move.guardianofalola.desc": "O utilizador, o Pokémon Espírito da Terra, obtém a energia de Alola usando o seu Poder-Z e ataca o alvo, reduzindo significativamente o HP do alvo.",
|
||||
"cobblemon.move.oceanicoperetta": "Sinfonia Marítima",
|
||||
"cobblemon.move.oceanicoperetta.desc": "O utilizador, Primarina, invoca uma enorme quantidade de água usando o seu Z-Power e ataca o alvo com toda a força.",
|
||||
"cobblemon.move.pulverizingpancake": "Panqueca Pulverizadora",
|
||||
"cobblemon.move.pulverizingpancake.desc": "O Poder-Z revela as verdadeiras capacidades do utilizador, Snorlax. O Pokémon move o seu enorme corpo energicamente e ataca o alvo com toda a força.",
|
||||
"cobblemon.move.lightthatburnsthesky": "Luz Que Queima o Céu",
|
||||
"cobblemon.move.lightthatburnsthesky.desc": "Este ataque compara os atributos de Ataque e Ataque Especial do utilizador e usa o que for mais elevado. Este movimento ignora a Habilidade do alvo.",
|
||||
"cobblemon.move.letssnuggleforever": "Aconchego Eterno",
|
||||
"cobblemon.move.letssnuggleforever.desc": "Usando o seu Poder-Z, o utilizador, Mimikyu, espanca o alvo com toda a sua força.",
|
||||
"cobblemon.move.blackholeeclipse": "Buraco Negro Eclipsante",
|
||||
"cobblemon.move.blackholeeclipse.desc": "O utilizador reúne energia negra usando o seu Poder-Z e suga o alvo para dentro dela. O poder varia, dependendo do movimento original.",
|
||||
"cobblemon.entity.variable.resource_identifier.desc": "O identificador de recurso a ser usado para controlar a aparência do NPC, como cobblemon:standard ou cobblemon:mudkip.",
|
||||
"cobblemon.entity.variable.resource_identifier.name": "Identificador de Recurso",
|
||||
"cobblemon.move.continentalcrush": "Colisão Continental",
|
||||
"cobblemon.move.continentalcrush.desc": "O utilizador invoca uma enorme montanha rochosa usando o seu Poder-Z e deixa-a cair sobre o alvo. O poder varia, dependendo do movimento original.",
|
||||
"cobblemon.move.tectonicrage": "Fúria Tectónica",
|
||||
"cobblemon.move.tectonicrage.desc": "O utilizador enterra-se no solo e atinge o alvo com toda a força do seu Poder-Z. O poder varia, dependendo do movimento original.",
|
||||
"cobblemon.behaviour.configurable_resource_identifier.name": "Identificador de Recurso Configurável",
|
||||
"cobblemon.behaviour.configurable_resource_identifier.desc": "Permite alterar o identificador de recurso que controla a aparência do NPC.",
|
||||
"cobblemon.entity.variable.dialogue_selection.name": "Diálogo",
|
||||
"cobblemon.entity.variable.dialogue_selection.desc": "O identificador de recurso do diálogo a ser aberto na interação, como cobblemon:your_dialogue",
|
||||
"cobblemon.move.aciddownpour": "Dilúvio Ácido",
|
||||
"cobblemon.move.aciddownpour.desc": "O utilizador cria um pântano venenoso usando o seu Poder-Z, afundando o alvo. O poder varia, dependendo do movimento original.",
|
||||
"cobblemon.move.bloomdoom": "Desgraça Floral",
|
||||
"cobblemon.move.bloomdoom.desc": "O utilizador recolhe energia vegetal usando o seu Poder-Z e ataca o alvo com toda a força. O poder varia, dependendo do movimento original.",
|
||||
"cobblemon.behaviour.defend_owner.name": "Defender Dono",
|
||||
"cobblemon.behaviour.defend_owner.desc": "Defende o seu dono quando este é atacado.",
|
||||
"cobblemon.behaviour.pokemon_picks_up_items.name": "Apanha Itens",
|
||||
"cobblemon.behaviour.pokemon_picks_up_items.desc": "O Pokémon irá apanhar itens que lhe interessam.",
|
||||
"cobblemon.behaviour.player_textured.name": "Textura de Jogador",
|
||||
"cobblemon.behaviour.player_textured.desc": "O NPC será texturizado com base num nome de utilizador de jogador específico.",
|
||||
"cobblemon.behaviour.pokemon_gets_mad_at_thrower.name": "Fica Zangado com o Lançador da Pokébola",
|
||||
"cobblemon.behaviour.pokemon_gets_mad_at_thrower.desc": "Fica zangado com o jogador que lhe atirou uma Pokébola. Pokémon agressivos atacarão o jogador e não agressivos fugirão.",
|
||||
"cobblemon.move.twinkletackle": "Investida Brilhante"
|
||||
}
|
||||
|
||||
@@ -9174,5 +9174,44 @@
|
||||
"stat.cobblemon.battles_fled": "宝可梦对战逃跑次数",
|
||||
"stat.cobblemon.eggs_collected": "已收集宝可梦蛋数",
|
||||
"stat.cobblemon.level_up": "提升宝可梦等级次数",
|
||||
"stat.cobblemon.times_ridden": "骑乘宝可梦次数"
|
||||
"stat.cobblemon.times_ridden": "骑乘宝可梦次数",
|
||||
"effect.cobblemon.cleanse_all": "效果清除",
|
||||
"effect.cobblemon.cleanse_negative": "负面效果清除",
|
||||
"effect.cobblemon.mental_restoration": "精神恢复",
|
||||
"cobblemon.ui.ride_style.air.bird": "鸟类",
|
||||
"cobblemon.ui.ride_style.air.hover": "悬浮",
|
||||
"cobblemon.ui.ride_style.air.jet": "喷射",
|
||||
"cobblemon.ui.ride_style.air.rocket": "火箭",
|
||||
"cobblemon.ui.ride_style.land.horse": "常规",
|
||||
"cobblemon.ui.ride_style.land.cart": "轮驱",
|
||||
"cobblemon.ui.ride_style.liquid.boat": "乘船",
|
||||
"cobblemon.ui.ride_style.liquid.dolphin": "海豚",
|
||||
"cobblemon.ui.ride_style.liquid.submarine": "潜艇",
|
||||
"cobblemon.config.ui.enable_in_flight_dismounting": "启用在飞行中离乘",
|
||||
"cobblemon.config.ui.enable_in_flight_dismounting.tooltip": "允许玩家在空中骑乘宝可梦时离乘。禁用时,仅能在地面上离乘。",
|
||||
"block.cobblemon.white_plaque": "白色标识牌",
|
||||
"block.cobblemon.light_gray_plaque": "淡灰色标识牌",
|
||||
"block.cobblemon.gray_plaque": "灰色标识牌",
|
||||
"block.cobblemon.black_plaque": "黑色标识牌",
|
||||
"block.cobblemon.brown_plaque": "棕色标识牌",
|
||||
"block.cobblemon.red_plaque": "红色标识牌",
|
||||
"block.cobblemon.orange_plaque": "橙色标识牌",
|
||||
"block.cobblemon.yellow_plaque": "黄色标识牌",
|
||||
"block.cobblemon.lime_plaque": "黄绿色标识牌",
|
||||
"block.cobblemon.green_plaque": "绿色标识牌",
|
||||
"block.cobblemon.cyan_plaque": "青色标识牌",
|
||||
"block.cobblemon.light_blue_plaque": "淡蓝色标识牌",
|
||||
"block.cobblemon.blue_plaque": "蓝色标识牌",
|
||||
"block.cobblemon.purple_plaque": "紫色标识牌",
|
||||
"block.cobblemon.magenta_plaque": "品红色标识牌",
|
||||
"block.cobblemon.pink_plaque": "粉红色标识牌",
|
||||
"tag.item.cobblemon.chest_boats": "箱船",
|
||||
"tag.item.cobblemon.plaques": "标识牌",
|
||||
"tag.item.cobblemon.display_case_items": "展示柜中的物品模型",
|
||||
"tag.item.cobblemon.item_blocks": "装饰品",
|
||||
"cobblemon.behaviour.defend_owner.name": "保护主人",
|
||||
"cobblemon.behaviour.defend_owner.desc": "在主人受到攻击时保护他们。",
|
||||
"stat.cobblemon.riding_land": "骑着宝可梦在陆地移动距离",
|
||||
"stat.cobblemon.riding_air": "骑着宝可梦在空中移动距离",
|
||||
"stat.cobblemon.riding_liquid": "骑着宝可梦在水域移动距离"
|
||||
}
|
||||
|
||||
BIN
Binary file not shown.
|
After Width: | Height: | Size: 15 KiB |
@@ -58,15 +58,33 @@
|
||||
{
|
||||
"muffleEnabled": true,
|
||||
"pitchExpr": "math.max(1.0 ,0.2 + math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2))",
|
||||
"playForNonPassengers": true,
|
||||
"soundLocation": "cobblemon:ride.loop.wind",
|
||||
"playForNonPassengers": false,
|
||||
"playForPassengers": true,
|
||||
"soundLocation": "cobblemon:ride.loop.wind.stereo",
|
||||
"volumeExpr": "math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2)"
|
||||
},
|
||||
{
|
||||
"muffleEnabled": true,
|
||||
"pitchExpr": "math.max(1.0 ,0.2 + math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2))",
|
||||
"playForNonPassengers": true,
|
||||
"soundLocation": "cobblemon:ride.loop.leather",
|
||||
"playForPassengers": false,
|
||||
"soundLocation": "cobblemon:ride.loop.wind.mono",
|
||||
"volumeExpr": "math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2)"
|
||||
},
|
||||
{
|
||||
"muffleEnabled": true,
|
||||
"pitchExpr": "math.max(1.0 ,0.2 + math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2))",
|
||||
"playForNonPassengers": false,
|
||||
"playForPassengers": true,
|
||||
"soundLocation": "cobblemon:ride.loop.leather.stereo",
|
||||
"volumeExpr": "math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2)"
|
||||
},
|
||||
{
|
||||
"muffleEnabled": true,
|
||||
"pitchExpr": "math.max(1.0 ,0.2 + math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2))",
|
||||
"playForNonPassengers": true,
|
||||
"playForPassengers": false,
|
||||
"soundLocation": "cobblemon:ride.loop.leather.mono",
|
||||
"volumeExpr": "math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2)"
|
||||
}
|
||||
],
|
||||
@@ -173,6 +191,11 @@
|
||||
]
|
||||
},
|
||||
"behaviour": {
|
||||
"combat": {
|
||||
"willDefendOwner": true,
|
||||
"willDefendSelf": true,
|
||||
"willFlee": false
|
||||
},
|
||||
"herd": {
|
||||
"maxSize": "4",
|
||||
"toleratedLeaders": [
|
||||
@@ -186,23 +209,18 @@
|
||||
"fly": {
|
||||
"canFly": true
|
||||
},
|
||||
"walk": {
|
||||
"walkSpeed": 0.3
|
||||
},
|
||||
"swim": {
|
||||
"avoidsWater": true
|
||||
},
|
||||
"walk": {
|
||||
"walkSpeed": 0.3
|
||||
}
|
||||
},
|
||||
"resting": {
|
||||
"canSleep": true,
|
||||
"light": "0-4",
|
||||
"drowsyChance": 0.0333,
|
||||
"light": "0-4",
|
||||
"rouseChance": 0.0042
|
||||
},
|
||||
"combat": {
|
||||
"willDefendSelf": true,
|
||||
"willDefendOwner": true,
|
||||
"willFlee": false
|
||||
}
|
||||
},
|
||||
"drops": {
|
||||
|
||||
@@ -73,7 +73,7 @@
|
||||
"poseOffsets": [
|
||||
{
|
||||
"offset": {
|
||||
"x": 1.8626451e-09,
|
||||
"x": 1.8626451E-9,
|
||||
"y": -1.2779657,
|
||||
"z": 0.059787232
|
||||
},
|
||||
@@ -113,7 +113,7 @@
|
||||
},
|
||||
{
|
||||
"offset": {
|
||||
"x": 1.8626451e-09,
|
||||
"x": 1.8626451E-9,
|
||||
"y": -1.2779657,
|
||||
"z": 0.059787232
|
||||
},
|
||||
@@ -146,30 +146,30 @@
|
||||
]
|
||||
},
|
||||
"behaviour": {
|
||||
"combat": {
|
||||
"willDefendOwner": true,
|
||||
"willDefendSelf": true,
|
||||
"willFlee": false
|
||||
},
|
||||
"entityInteract": {
|
||||
"avoidedBySkeleton": true
|
||||
},
|
||||
"fireImmune": true,
|
||||
"moving": {
|
||||
"walk": {
|
||||
"walkSpeed": "0.25"
|
||||
},
|
||||
"swim": {
|
||||
"avoidsWater": true,
|
||||
"canSwimInLava": true
|
||||
},
|
||||
"walk": {
|
||||
"walkSpeed": "0.25"
|
||||
}
|
||||
},
|
||||
"resting": {
|
||||
"canSleep": true,
|
||||
"light": "0-4",
|
||||
"drowsyChance": 0.0333,
|
||||
"light": "0-4",
|
||||
"rouseChance": 0.0042
|
||||
},
|
||||
"combat": {
|
||||
"willDefendSelf": true,
|
||||
"willDefendOwner": true,
|
||||
"willFlee": false
|
||||
},
|
||||
"fireImmune": true
|
||||
}
|
||||
},
|
||||
"drops": {
|
||||
"amount": 3,
|
||||
@@ -375,25 +375,25 @@
|
||||
}
|
||||
},
|
||||
"behaviour": {
|
||||
"combat": {
|
||||
"willDefendOwner": true,
|
||||
"willDefendSelf": true,
|
||||
"willFlee": false
|
||||
},
|
||||
"entityInteract": {
|
||||
"avoidedBySkeleton": true
|
||||
},
|
||||
"fireImmune": true,
|
||||
"moving": {
|
||||
"swim": {
|
||||
"avoidsWater": true,
|
||||
"canSwimInLava": true
|
||||
}
|
||||
},
|
||||
"entityInteract": {
|
||||
"avoidedBySkeleton": true
|
||||
},
|
||||
"combat": {
|
||||
"willDefendSelf": true,
|
||||
"willDefendOwner": true,
|
||||
"willFlee": false
|
||||
},
|
||||
"resting": {
|
||||
"drowsyChance": 0.0333,
|
||||
"rouseChance": 0.0042
|
||||
},
|
||||
"fireImmune": true
|
||||
}
|
||||
},
|
||||
"moves": [
|
||||
"1:rockslide",
|
||||
|
||||
@@ -53,11 +53,20 @@
|
||||
"AIR": {
|
||||
"key": "cobblemon:air/rocket",
|
||||
"rideSounds": [
|
||||
{
|
||||
"muffleEnabled": true,
|
||||
"pitchExpr": "math.max(1.0 ,0.2 + math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2))",
|
||||
"playForNonPassengers": false,
|
||||
"playForPassengers": true,
|
||||
"soundLocation": "cobblemon:ride.loop.wind.stereo",
|
||||
"volumeExpr": "math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2)"
|
||||
},
|
||||
{
|
||||
"muffleEnabled": true,
|
||||
"pitchExpr": "math.max(1.0 ,0.2 + math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2))",
|
||||
"playForNonPassengers": true,
|
||||
"soundLocation": "cobblemon:ride.loop.wind",
|
||||
"playForPassengers": false,
|
||||
"soundLocation": "cobblemon:ride.loop.wind.mono",
|
||||
"volumeExpr": "math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2)"
|
||||
}
|
||||
],
|
||||
@@ -82,8 +91,35 @@
|
||||
},
|
||||
"LIQUID": {
|
||||
"key": "cobblemon:liquid/submarine",
|
||||
"rideSounds": [
|
||||
{
|
||||
"muffleEnabled": true,
|
||||
"pitchExpr": "math.max(1.0 ,0.2 + math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2))",
|
||||
"playForNonPassengers": false,
|
||||
"playForPassengers": true,
|
||||
"soundLocation": "cobblemon:ride.loop.water_sufrace.stereo",
|
||||
"volumeExpr": "math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2)"
|
||||
},
|
||||
{
|
||||
"muffleEnabled": true,
|
||||
"pitchExpr": "math.max(1.0 ,0.2 + math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2))",
|
||||
"playForNonPassengers": true,
|
||||
"playForPassengers": false,
|
||||
"soundLocation": "cobblemon:ride.loop.water_surface.mono",
|
||||
"submerged": false,
|
||||
"volumeExpr": "math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2)"
|
||||
},
|
||||
{
|
||||
"muffleEnabled": true,
|
||||
"pitchExpr": "math.max(1.0 ,0.2 + math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2))",
|
||||
"playForNonPassengers": false,
|
||||
"playForPassengers": true,
|
||||
"soundLocation": "cobblemon:ride.loop.underwater.stereo",
|
||||
"submerged": true,
|
||||
"volumeExpr": "math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2)"
|
||||
}
|
||||
],
|
||||
"hitboxBreachPercentage": 0.75,
|
||||
"rideSounds": [],
|
||||
"stats": {
|
||||
"ACCELERATION": "45-65",
|
||||
"JUMP": "30-50",
|
||||
@@ -103,7 +139,7 @@
|
||||
"poseOffsets": [
|
||||
{
|
||||
"offset": {
|
||||
"x": -0.000759989,
|
||||
"x": -7.59989E-4,
|
||||
"y": -2.7762213,
|
||||
"z": -0.08708589
|
||||
},
|
||||
@@ -113,7 +149,7 @@
|
||||
},
|
||||
{
|
||||
"offset": {
|
||||
"x": 0.000713408,
|
||||
"x": 7.13408E-4,
|
||||
"y": -2.888495,
|
||||
"z": -0.031018771
|
||||
},
|
||||
@@ -255,6 +291,11 @@
|
||||
]
|
||||
},
|
||||
"behaviour": {
|
||||
"combat": {
|
||||
"willDefendOwner": true,
|
||||
"willDefendSelf": true,
|
||||
"willFlee": false
|
||||
},
|
||||
"herd": {
|
||||
"maxSize": "5"
|
||||
},
|
||||
@@ -269,14 +310,9 @@
|
||||
},
|
||||
"resting": {
|
||||
"canSleep": true,
|
||||
"light": "0-4",
|
||||
"drowsyChance": 0.0333,
|
||||
"light": "0-4",
|
||||
"rouseChance": 0.0042
|
||||
},
|
||||
"combat": {
|
||||
"willDefendSelf": true,
|
||||
"willDefendOwner": true,
|
||||
"willFlee": false
|
||||
}
|
||||
},
|
||||
"drops": {
|
||||
@@ -527,6 +563,11 @@
|
||||
}
|
||||
},
|
||||
"behaviour": {
|
||||
"combat": {
|
||||
"willDefendOwner": true,
|
||||
"willDefendSelf": true,
|
||||
"willFlee": false
|
||||
},
|
||||
"herd": {
|
||||
"maxSize": "6"
|
||||
},
|
||||
@@ -535,11 +576,6 @@
|
||||
"canBreatheUnderwater": true
|
||||
}
|
||||
},
|
||||
"combat": {
|
||||
"willDefendSelf": true,
|
||||
"willDefendOwner": true,
|
||||
"willFlee": false
|
||||
},
|
||||
"resting": {
|
||||
"drowsyChance": 0.0333,
|
||||
"rouseChance": 0.0042
|
||||
|
||||
@@ -57,32 +57,32 @@
|
||||
{
|
||||
"muffleEnabled": true,
|
||||
"pitchExpr": "math.max(1.0 ,0.2 + math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2))",
|
||||
"playForPassengers": true,
|
||||
"playForNonPassengers": false,
|
||||
"playForPassengers": true,
|
||||
"soundLocation": "cobblemon:ride.loop.wind.stereo",
|
||||
"volumeExpr": "math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2)"
|
||||
},
|
||||
{
|
||||
"muffleEnabled": true,
|
||||
"pitchExpr": "math.max(1.0 ,0.2 + math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2))",
|
||||
"playForPassengers": false,
|
||||
"playForNonPassengers": true,
|
||||
"playForPassengers": false,
|
||||
"soundLocation": "cobblemon:ride.loop.wind.mono",
|
||||
"volumeExpr": "math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2)"
|
||||
},
|
||||
{
|
||||
"muffleEnabled": true,
|
||||
"pitchExpr": "math.max(1.0 ,0.2 + math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2))",
|
||||
"playForPassengers": true,
|
||||
"playForNonPassengers": false,
|
||||
"playForPassengers": true,
|
||||
"soundLocation": "cobblemon:ride.loop.leather.stereo",
|
||||
"volumeExpr": "math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2)"
|
||||
},
|
||||
{
|
||||
"muffleEnabled": true,
|
||||
"pitchExpr": "math.max(1.0 ,0.2 + math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2))",
|
||||
"playForPassengers": false,
|
||||
"playForNonPassengers": true,
|
||||
"playForPassengers": false,
|
||||
"soundLocation": "cobblemon:ride.loop.leather.mono",
|
||||
"volumeExpr": "math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2)"
|
||||
}
|
||||
@@ -195,6 +195,7 @@
|
||||
"willDefendSelf": true,
|
||||
"willFlee": false
|
||||
},
|
||||
"fireImmune": true,
|
||||
"herd": {
|
||||
"maxSize": "5"
|
||||
},
|
||||
@@ -203,9 +204,9 @@
|
||||
"canFly": true
|
||||
},
|
||||
"swim": {
|
||||
"swimSpeed": 0.1,
|
||||
"avoidsWater": true,
|
||||
"canSwimInLava": true
|
||||
"canSwimInLava": true,
|
||||
"swimSpeed": 0.1
|
||||
},
|
||||
"walk": {
|
||||
"walkSpeed": 0.147
|
||||
@@ -213,11 +214,10 @@
|
||||
},
|
||||
"resting": {
|
||||
"canSleep": true,
|
||||
"light": "0-4",
|
||||
"drowsyChance": 0.0333,
|
||||
"light": "0-4",
|
||||
"rouseChance": 0.0042
|
||||
},
|
||||
"fireImmune": true
|
||||
}
|
||||
},
|
||||
"drops": {
|
||||
"amount": 4,
|
||||
@@ -507,28 +507,28 @@
|
||||
}
|
||||
},
|
||||
"behaviour": {
|
||||
"combat": {
|
||||
"willDefendOwner": true,
|
||||
"willDefendSelf": true,
|
||||
"willFlee": false
|
||||
},
|
||||
"fireImmune": true,
|
||||
"herd": {
|
||||
"maxSize": "6"
|
||||
},
|
||||
"moving": {
|
||||
"fly": {
|
||||
"canFly": true
|
||||
},
|
||||
"swim": {
|
||||
"avoidsWater": true,
|
||||
"canSwimInLava": true
|
||||
},
|
||||
"fly": {
|
||||
"canFly": true
|
||||
}
|
||||
},
|
||||
"combat": {
|
||||
"willDefendSelf": true,
|
||||
"willDefendOwner": true,
|
||||
"willFlee": false
|
||||
},
|
||||
"resting": {
|
||||
"drowsyChance": 0.0333,
|
||||
"rouseChance": 0.0042
|
||||
},
|
||||
"fireImmune": true
|
||||
}
|
||||
},
|
||||
"evolutions": [],
|
||||
"battleOnly": true,
|
||||
@@ -628,28 +628,28 @@
|
||||
}
|
||||
},
|
||||
"behaviour": {
|
||||
"combat": {
|
||||
"willDefendOwner": true,
|
||||
"willDefendSelf": true,
|
||||
"willFlee": false
|
||||
},
|
||||
"fireImmune": true,
|
||||
"herd": {
|
||||
"maxSize": "6"
|
||||
},
|
||||
"moving": {
|
||||
"fly": {
|
||||
"canFly": true
|
||||
},
|
||||
"swim": {
|
||||
"avoidsWater": true,
|
||||
"canSwimInLava": true
|
||||
},
|
||||
"fly": {
|
||||
"canFly": true
|
||||
}
|
||||
},
|
||||
"combat": {
|
||||
"willDefendSelf": true,
|
||||
"willDefendOwner": true,
|
||||
"willFlee": false
|
||||
},
|
||||
"resting": {
|
||||
"drowsyChance": 0.0333,
|
||||
"rouseChance": 0.0042
|
||||
},
|
||||
"fireImmune": true
|
||||
}
|
||||
},
|
||||
"evolutions": [],
|
||||
"battleOnly": true,
|
||||
|
||||
@@ -67,7 +67,34 @@
|
||||
},
|
||||
"LIQUID": {
|
||||
"key": "cobblemon:liquid/dolphin",
|
||||
"rideSounds": [],
|
||||
"rideSounds": [
|
||||
{
|
||||
"muffleEnabled": true,
|
||||
"pitchExpr": "math.max(1.0 ,0.2 + math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2))",
|
||||
"playForNonPassengers": false,
|
||||
"playForPassengers": true,
|
||||
"soundLocation": "cobblemon:ride.loop.water_sufrace.stereo",
|
||||
"volumeExpr": "math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2)"
|
||||
},
|
||||
{
|
||||
"muffleEnabled": true,
|
||||
"pitchExpr": "math.max(1.0 ,0.2 + math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2))",
|
||||
"playForNonPassengers": true,
|
||||
"playForPassengers": false,
|
||||
"soundLocation": "cobblemon:ride.loop.water_surface.mono",
|
||||
"submerged": false,
|
||||
"volumeExpr": "math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2)"
|
||||
},
|
||||
{
|
||||
"muffleEnabled": true,
|
||||
"pitchExpr": "math.max(1.0 ,0.2 + math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2))",
|
||||
"playForNonPassengers": false,
|
||||
"playForPassengers": true,
|
||||
"soundLocation": "cobblemon:ride.loop.underwater.stereo",
|
||||
"submerged": true,
|
||||
"volumeExpr": "math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2)"
|
||||
}
|
||||
],
|
||||
"stats": {
|
||||
"ACCELERATION": "50-75",
|
||||
"JUMP": "25-50",
|
||||
@@ -239,6 +266,9 @@
|
||||
]
|
||||
},
|
||||
"behaviour": {
|
||||
"combat": {
|
||||
"willDefendOwner": true
|
||||
},
|
||||
"herd": {
|
||||
"maxSize": "5",
|
||||
"toleratedLeaders": [
|
||||
@@ -271,14 +301,11 @@
|
||||
}
|
||||
},
|
||||
"resting": {
|
||||
"drowsyChance": 0.0033,
|
||||
"rouseChance": 0.0042,
|
||||
"times": [
|
||||
"day"
|
||||
],
|
||||
"drowsyChance": 0.0033,
|
||||
"rouseChance": 0.0042
|
||||
},
|
||||
"combat": {
|
||||
"willDefendOwner": true
|
||||
]
|
||||
}
|
||||
},
|
||||
"drops": {
|
||||
|
||||
@@ -58,19 +58,33 @@
|
||||
{
|
||||
"muffleEnabled": true,
|
||||
"pitchExpr": "math.max(1.0 ,0.2 + math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2))",
|
||||
"playForNonPassengers": false,
|
||||
"playForPassengers": true,
|
||||
"playForNonPassengers": true,
|
||||
"submerged": false,
|
||||
"soundLocation": "cobblemon:ride.loop.wind",
|
||||
"soundLocation": "cobblemon:ride.loop.wind.stereo",
|
||||
"volumeExpr": "math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2)"
|
||||
},
|
||||
{
|
||||
"muffleEnabled": true,
|
||||
"pitchExpr": "math.max(1.0 ,0.2 + math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2))",
|
||||
"playForPassengers": true,
|
||||
"playForNonPassengers": true,
|
||||
"submerged": false,
|
||||
"soundLocation": "cobblemon:ride.loop.leather",
|
||||
"playForPassengers": false,
|
||||
"soundLocation": "cobblemon:ride.loop.wind.mono",
|
||||
"volumeExpr": "math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2)"
|
||||
},
|
||||
{
|
||||
"muffleEnabled": true,
|
||||
"pitchExpr": "math.max(1.0 ,0.2 + math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2))",
|
||||
"playForNonPassengers": false,
|
||||
"playForPassengers": true,
|
||||
"soundLocation": "cobblemon:ride.loop.leather.stereo",
|
||||
"volumeExpr": "math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2)"
|
||||
},
|
||||
{
|
||||
"muffleEnabled": true,
|
||||
"pitchExpr": "math.max(1.0 ,0.2 + math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2))",
|
||||
"playForNonPassengers": true,
|
||||
"playForPassengers": false,
|
||||
"soundLocation": "cobblemon:ride.loop.leather.mono",
|
||||
"volumeExpr": "math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2)"
|
||||
}
|
||||
],
|
||||
@@ -101,37 +115,27 @@
|
||||
{
|
||||
"muffleEnabled": true,
|
||||
"pitchExpr": "math.max(1.0 ,0.2 + math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2))",
|
||||
"playForPassengers": true,
|
||||
"playForNonPassengers": false,
|
||||
"submerged": false,
|
||||
"soundLocation": "cobblemon:ride.loop.water_surface.stereo",
|
||||
"volumeExpr": "math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2)"
|
||||
},
|
||||
{
|
||||
"muffleEnabled": true,
|
||||
"pitchExpr": "math.max(1.0 ,0.2 + math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2))",
|
||||
"playForPassengers": false,
|
||||
"playForNonPassengers": true,
|
||||
"submerged": false,
|
||||
"playForPassengers": false,
|
||||
"soundLocation": "cobblemon:ride.loop.water_surface.mono",
|
||||
"submerged": false,
|
||||
"volumeExpr": "math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2)"
|
||||
},
|
||||
{
|
||||
"muffleEnabled": true,
|
||||
"pitchExpr": "math.max(1.0 ,0.2 + math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2))",
|
||||
"playForPassengers": true,
|
||||
"playForNonPassengers": false,
|
||||
"submerged": true,
|
||||
"playForPassengers": true,
|
||||
"soundLocation": "cobblemon:ride.loop.underwater.stereo",
|
||||
"submerged": true,
|
||||
"volumeExpr": "math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2)"
|
||||
},
|
||||
{
|
||||
"muffleEnabled": true,
|
||||
"pitchExpr": "math.max(1.0 ,0.2 + math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2))",
|
||||
"playForPassengers": false,
|
||||
"playForNonPassengers": true,
|
||||
"submerged": true,
|
||||
"soundLocation": "cobblemon:ride.loop.underwater.mono",
|
||||
"playForNonPassengers": false,
|
||||
"playForPassengers": true,
|
||||
"soundLocation": "cobblemon:ride.loop.water_sufrace.stereo",
|
||||
"volumeExpr": "math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2)"
|
||||
}
|
||||
],
|
||||
@@ -306,6 +310,11 @@
|
||||
]
|
||||
},
|
||||
"behaviour": {
|
||||
"combat": {
|
||||
"willDefendOwner": true,
|
||||
"willDefendSelf": true,
|
||||
"willFlee": false
|
||||
},
|
||||
"moving": {
|
||||
"fly": {
|
||||
"canFly": true
|
||||
@@ -319,16 +328,11 @@
|
||||
}
|
||||
},
|
||||
"resting": {
|
||||
"drowsyChance": 0.0014,
|
||||
"rouseChance": 0.0042,
|
||||
"times": [
|
||||
"any"
|
||||
],
|
||||
"drowsyChance": 0.0014,
|
||||
"rouseChance": 0.0042
|
||||
},
|
||||
"combat": {
|
||||
"willDefendSelf": true,
|
||||
"willDefendOwner": true,
|
||||
"willFlee": false
|
||||
]
|
||||
}
|
||||
},
|
||||
"drops": {
|
||||
|
||||
@@ -54,11 +54,20 @@
|
||||
"AIR": {
|
||||
"key": "cobblemon:air/jet",
|
||||
"rideSounds": [
|
||||
{
|
||||
"muffleEnabled": true,
|
||||
"pitchExpr": "math.max(1.0 ,0.2 + math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2))",
|
||||
"playForNonPassengers": false,
|
||||
"playForPassengers": true,
|
||||
"soundLocation": "cobblemon:ride.loop.wind.stereo",
|
||||
"volumeExpr": "math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2)"
|
||||
},
|
||||
{
|
||||
"muffleEnabled": true,
|
||||
"pitchExpr": "math.max(1.0 ,0.2 + math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2))",
|
||||
"playForNonPassengers": true,
|
||||
"soundLocation": "cobblemon:ride.loop.wind",
|
||||
"playForPassengers": false,
|
||||
"soundLocation": "cobblemon:ride.loop.wind.mono",
|
||||
"volumeExpr": "math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2)"
|
||||
}
|
||||
],
|
||||
@@ -86,11 +95,30 @@
|
||||
"LIQUID": {
|
||||
"key": "cobblemon:liquid/dolphin",
|
||||
"rideSounds": [
|
||||
{
|
||||
"muffleEnabled": true,
|
||||
"pitchExpr": "math.max(1.0 ,0.2 + math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2))",
|
||||
"playForNonPassengers": false,
|
||||
"playForPassengers": true,
|
||||
"soundLocation": "cobblemon:ride.loop.water_sufrace.stereo",
|
||||
"volumeExpr": "math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2)"
|
||||
},
|
||||
{
|
||||
"muffleEnabled": true,
|
||||
"pitchExpr": "math.max(1.0 ,0.2 + math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2))",
|
||||
"playForNonPassengers": true,
|
||||
"soundLocation": "cobblemon:ride.loop.water_surface",
|
||||
"playForPassengers": false,
|
||||
"soundLocation": "cobblemon:ride.loop.water_surface.mono",
|
||||
"submerged": false,
|
||||
"volumeExpr": "math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2)"
|
||||
},
|
||||
{
|
||||
"muffleEnabled": true,
|
||||
"pitchExpr": "math.max(1.0 ,0.2 + math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2))",
|
||||
"playForNonPassengers": false,
|
||||
"playForPassengers": true,
|
||||
"soundLocation": "cobblemon:ride.loop.underwater.stereo",
|
||||
"submerged": true,
|
||||
"volumeExpr": "math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2)"
|
||||
}
|
||||
],
|
||||
@@ -186,6 +214,11 @@
|
||||
]
|
||||
},
|
||||
"behaviour": {
|
||||
"combat": {
|
||||
"willDefendOwner": true,
|
||||
"willDefendSelf": true,
|
||||
"willFlee": false
|
||||
},
|
||||
"herd": {
|
||||
"maxSize": "9",
|
||||
"toleratedLeaders": [
|
||||
@@ -207,17 +240,12 @@
|
||||
},
|
||||
"resting": {
|
||||
"canSleep": true,
|
||||
"drowsyChance": 0.0014,
|
||||
"light": "0-4",
|
||||
"rouseChance": 0.0042,
|
||||
"times": [
|
||||
"any"
|
||||
],
|
||||
"drowsyChance": 0.0014,
|
||||
"rouseChance": 0.0042
|
||||
},
|
||||
"combat": {
|
||||
"willDefendSelf": true,
|
||||
"willDefendOwner": true,
|
||||
"willFlee": false
|
||||
]
|
||||
}
|
||||
},
|
||||
"drops": {
|
||||
|
||||
@@ -67,13 +67,21 @@
|
||||
},
|
||||
"LIQUID": {
|
||||
"key": "cobblemon:liquid/boat",
|
||||
"surfaceLevelOffset": -1.6,
|
||||
"rideSounds": [
|
||||
{
|
||||
"muffleEnabled": true,
|
||||
"pitchExpr": "math.max(1.0 ,0.2 + math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2))",
|
||||
"playForNonPassengers": false,
|
||||
"playForPassengers": true,
|
||||
"soundLocation": "cobblemon:ride.loop.water_sufrace.stereo",
|
||||
"volumeExpr": "math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2)"
|
||||
},
|
||||
{
|
||||
"muffleEnabled": true,
|
||||
"pitchExpr": "math.max(1.0 ,0.2 + math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2))",
|
||||
"playForNonPassengers": true,
|
||||
"soundLocation": "cobblemon:ride.loop.water_surface",
|
||||
"playForPassengers": false,
|
||||
"soundLocation": "cobblemon:ride.loop.water_surface.mono",
|
||||
"volumeExpr": "math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2)"
|
||||
}
|
||||
],
|
||||
@@ -83,7 +91,8 @@
|
||||
"SKILL": "50-75",
|
||||
"SPEED": "25-40",
|
||||
"STAMINA": "45-75"
|
||||
}
|
||||
},
|
||||
"surfaceLevelOffset": -1.6
|
||||
}
|
||||
},
|
||||
"seats": [
|
||||
@@ -169,6 +178,11 @@
|
||||
]
|
||||
},
|
||||
"behaviour": {
|
||||
"combat": {
|
||||
"willDefendOwner": true,
|
||||
"willDefendSelf": true,
|
||||
"willFlee": false
|
||||
},
|
||||
"herd": {
|
||||
"maxSize": "6",
|
||||
"toleratedLeaders": [
|
||||
@@ -185,24 +199,19 @@
|
||||
"moving": {
|
||||
"swim": {
|
||||
"canBreatheUnderwater": true,
|
||||
"swimSpeed": 0.3,
|
||||
"canWalkOnWater": true
|
||||
"canWalkOnWater": true,
|
||||
"swimSpeed": 0.3
|
||||
},
|
||||
"walk": {
|
||||
"walkSpeed": 0.15,
|
||||
"avoidsLand": true
|
||||
"avoidsLand": true,
|
||||
"walkSpeed": 0.15
|
||||
}
|
||||
},
|
||||
"resting": {
|
||||
"canSleep": true,
|
||||
"light": "0-4",
|
||||
"drowsyChance": 0.0333,
|
||||
"light": "0-4",
|
||||
"rouseChance": 0.0042
|
||||
},
|
||||
"combat": {
|
||||
"willDefendSelf": true,
|
||||
"willDefendOwner": true,
|
||||
"willFlee": false
|
||||
}
|
||||
},
|
||||
"drops": {
|
||||
|
||||
@@ -147,6 +147,9 @@
|
||||
]
|
||||
},
|
||||
"behaviour": {
|
||||
"combat": {
|
||||
"willDefendOwner": true
|
||||
},
|
||||
"herd": {
|
||||
"maxSize": "3"
|
||||
},
|
||||
@@ -155,9 +158,6 @@
|
||||
"avoidsWater": true
|
||||
}
|
||||
},
|
||||
"combat": {
|
||||
"willDefendOwner": true
|
||||
},
|
||||
"resting": {
|
||||
"drowsyChance": 0.0333,
|
||||
"rouseChance": 0.0042
|
||||
@@ -416,6 +416,7 @@
|
||||
"fixed": false,
|
||||
"width": 0.8
|
||||
},
|
||||
"riding": {},
|
||||
"drops": {
|
||||
"amount": 1,
|
||||
"entries": [
|
||||
@@ -596,8 +597,7 @@
|
||||
"variant": "level_up"
|
||||
}
|
||||
],
|
||||
"battleOnly": false,
|
||||
"riding": {}
|
||||
"battleOnly": false
|
||||
}
|
||||
],
|
||||
"features": [
|
||||
|
||||
@@ -147,6 +147,11 @@
|
||||
]
|
||||
},
|
||||
"behaviour": {
|
||||
"combat": {
|
||||
"willDefendOwner": true,
|
||||
"willDefendSelf": true,
|
||||
"willFlee": false
|
||||
},
|
||||
"herd": {
|
||||
"maxSize": "3",
|
||||
"toleratedLeaders": [
|
||||
@@ -158,27 +163,22 @@
|
||||
},
|
||||
"moving": {
|
||||
"canLook": false,
|
||||
"swim": {
|
||||
"avoidsWater": true
|
||||
},
|
||||
"walk": {
|
||||
"walkSpeed": 0.45
|
||||
},
|
||||
"wanderChance": 20,
|
||||
"swim": {
|
||||
"avoidsWater": true
|
||||
}
|
||||
"wanderChance": 20
|
||||
},
|
||||
"resting": {
|
||||
"canSleep": true,
|
||||
"drowsyChance": 0.0014,
|
||||
"light": "0-4",
|
||||
"rouseChance": 0.0042,
|
||||
"times": [
|
||||
"any"
|
||||
],
|
||||
"drowsyChance": 0.0014,
|
||||
"rouseChance": 0.0042
|
||||
},
|
||||
"combat": {
|
||||
"willDefendSelf": true,
|
||||
"willDefendOwner": true,
|
||||
"willFlee": false
|
||||
]
|
||||
}
|
||||
},
|
||||
"drops": {
|
||||
|
||||
@@ -147,6 +147,12 @@
|
||||
]
|
||||
},
|
||||
"behaviour": {
|
||||
"combat": {
|
||||
"willDefendOwner": true,
|
||||
"willDefendSelf": true,
|
||||
"willFlee": false
|
||||
},
|
||||
"fireImmune": true,
|
||||
"herd": {
|
||||
"maxSize": "4"
|
||||
},
|
||||
@@ -159,16 +165,10 @@
|
||||
"walkSpeed": 0.15
|
||||
}
|
||||
},
|
||||
"combat": {
|
||||
"willDefendSelf": true,
|
||||
"willDefendOwner": true,
|
||||
"willFlee": false
|
||||
},
|
||||
"resting": {
|
||||
"drowsyChance": 0.0333,
|
||||
"rouseChance": 0.0042
|
||||
},
|
||||
"fireImmune": true
|
||||
}
|
||||
},
|
||||
"drops": {
|
||||
"amount": 2,
|
||||
|
||||
@@ -147,6 +147,12 @@
|
||||
]
|
||||
},
|
||||
"behaviour": {
|
||||
"combat": {
|
||||
"willDefendOwner": true,
|
||||
"willDefendSelf": true,
|
||||
"willFlee": false
|
||||
},
|
||||
"fireImmune": true,
|
||||
"herd": {
|
||||
"maxSize": "9",
|
||||
"toleratedLeaders": [
|
||||
@@ -165,16 +171,10 @@
|
||||
"walkSpeed": 0.2
|
||||
}
|
||||
},
|
||||
"combat": {
|
||||
"willDefendSelf": true,
|
||||
"willDefendOwner": true,
|
||||
"willFlee": false
|
||||
},
|
||||
"resting": {
|
||||
"drowsyChance": 0.0333,
|
||||
"rouseChance": 0.0042
|
||||
},
|
||||
"fireImmune": true
|
||||
}
|
||||
},
|
||||
"drops": {
|
||||
"amount": 2,
|
||||
|
||||
@@ -52,8 +52,8 @@
|
||||
"behaviours": {
|
||||
"LIQUID": {
|
||||
"key": "cobblemon:liquid/submarine",
|
||||
"hitboxBreachPercentage": 0.9,
|
||||
"rideSounds": [],
|
||||
"hitboxBreachPercentage": 0.9,
|
||||
"stats": {
|
||||
"ACCELERATION": "35-70",
|
||||
"JUMP": "15-35",
|
||||
@@ -146,6 +146,11 @@
|
||||
]
|
||||
},
|
||||
"behaviour": {
|
||||
"combat": {
|
||||
"willDefendOwner": true,
|
||||
"willDefendSelf": true,
|
||||
"willFlee": false
|
||||
},
|
||||
"herd": {
|
||||
"maxSize": "9",
|
||||
"toleratedLeaders": [
|
||||
@@ -173,11 +178,6 @@
|
||||
"walkSpeed": 0.17
|
||||
}
|
||||
},
|
||||
"combat": {
|
||||
"willDefendSelf": true,
|
||||
"willDefendOwner": true,
|
||||
"willFlee": false
|
||||
},
|
||||
"resting": {
|
||||
"drowsyChance": 0.0333,
|
||||
"rouseChance": 0.0042
|
||||
|
||||
@@ -146,6 +146,11 @@
|
||||
]
|
||||
},
|
||||
"behaviour": {
|
||||
"combat": {
|
||||
"willDefendOwner": true,
|
||||
"willDefendSelf": true,
|
||||
"willFlee": false
|
||||
},
|
||||
"herd": {
|
||||
"maxSize": "9",
|
||||
"toleratedLeaders": [
|
||||
@@ -177,15 +182,10 @@
|
||||
},
|
||||
"moving": {
|
||||
"swim": {
|
||||
"swimSpeed": "0.25",
|
||||
"avoidsWater": true
|
||||
"avoidsWater": true,
|
||||
"swimSpeed": "0.25"
|
||||
}
|
||||
},
|
||||
"combat": {
|
||||
"willDefendSelf": true,
|
||||
"willDefendOwner": true,
|
||||
"willFlee": false
|
||||
},
|
||||
"resting": {
|
||||
"drowsyChance": 0.0333,
|
||||
"rouseChance": 0.0042
|
||||
@@ -476,14 +476,9 @@
|
||||
]
|
||||
},
|
||||
"behaviour": {
|
||||
"moving": {
|
||||
"swim": {
|
||||
"avoidsWater": true
|
||||
}
|
||||
},
|
||||
"combat": {
|
||||
"willDefendSelf": true,
|
||||
"willDefendOwner": true,
|
||||
"willDefendSelf": true,
|
||||
"willFlee": false
|
||||
},
|
||||
"herd": {
|
||||
@@ -515,6 +510,11 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
"moving": {
|
||||
"swim": {
|
||||
"avoidsWater": true
|
||||
}
|
||||
},
|
||||
"resting": {
|
||||
"drowsyChance": 0.0333,
|
||||
"rouseChance": 0.0042
|
||||
@@ -740,6 +740,12 @@
|
||||
]
|
||||
},
|
||||
"behaviour": {
|
||||
"combat": {
|
||||
"willDefendOwner": true,
|
||||
"willDefendSelf": true,
|
||||
"willFlee": false
|
||||
},
|
||||
"fireImmune": true,
|
||||
"herd": {
|
||||
"maxSize": "9",
|
||||
"toleratedLeaders": [
|
||||
@@ -755,16 +761,10 @@
|
||||
"canSwimInLava": true
|
||||
}
|
||||
},
|
||||
"combat": {
|
||||
"willDefendSelf": true,
|
||||
"willDefendOwner": true,
|
||||
"willFlee": false
|
||||
},
|
||||
"resting": {
|
||||
"drowsyChance": 0.0333,
|
||||
"rouseChance": 0.0042
|
||||
},
|
||||
"fireImmune": true
|
||||
}
|
||||
},
|
||||
"moves": [
|
||||
"1:tackle",
|
||||
@@ -909,7 +909,6 @@
|
||||
},
|
||||
"LIQUID": {
|
||||
"key": "cobblemon:liquid/boat",
|
||||
"surfaceLevelOffset": -0.9,
|
||||
"rideSounds": [
|
||||
{
|
||||
"muffleEnabled": true,
|
||||
@@ -925,7 +924,8 @@
|
||||
"SKILL": "40-55",
|
||||
"SPEED": "30-40",
|
||||
"STAMINA": "30-65"
|
||||
}
|
||||
},
|
||||
"surfaceLevelOffset": -0.9
|
||||
}
|
||||
},
|
||||
"seats": [
|
||||
@@ -1011,6 +1011,11 @@
|
||||
]
|
||||
},
|
||||
"behaviour": {
|
||||
"combat": {
|
||||
"willDefendOwner": true,
|
||||
"willDefendSelf": true,
|
||||
"willFlee": false
|
||||
},
|
||||
"herd": {
|
||||
"maxSize": "9",
|
||||
"toleratedLeaders": [
|
||||
@@ -1020,19 +1025,14 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
"combat": {
|
||||
"willDefendSelf": true,
|
||||
"willDefendOwner": true,
|
||||
"willFlee": false
|
||||
},
|
||||
"resting": {
|
||||
"drowsyChance": 0.0333,
|
||||
"rouseChance": 0.0042
|
||||
},
|
||||
"moving": {
|
||||
"swim": {
|
||||
"canWalkOnWater": true
|
||||
}
|
||||
},
|
||||
"resting": {
|
||||
"drowsyChance": 0.0333,
|
||||
"rouseChance": 0.0042
|
||||
}
|
||||
},
|
||||
"moves": [
|
||||
|
||||
@@ -146,6 +146,11 @@
|
||||
]
|
||||
},
|
||||
"behaviour": {
|
||||
"combat": {
|
||||
"willDefendOwner": true,
|
||||
"willDefendSelf": true,
|
||||
"willFlee": false
|
||||
},
|
||||
"herd": {
|
||||
"maxSize": "7",
|
||||
"toleratedLeaders": [
|
||||
@@ -156,26 +161,21 @@
|
||||
]
|
||||
},
|
||||
"moving": {
|
||||
"walk": {
|
||||
"walkSpeed": 0.135
|
||||
},
|
||||
"swim": {
|
||||
"avoidsWater": true
|
||||
},
|
||||
"walk": {
|
||||
"walkSpeed": 0.135
|
||||
}
|
||||
},
|
||||
"resting": {
|
||||
"canSleep": true,
|
||||
"drowsyChance": 0.0333,
|
||||
"light": "0-4",
|
||||
"rouseChance": 0.0042,
|
||||
"times": [
|
||||
"night, noon"
|
||||
],
|
||||
"drowsyChance": 0.0333,
|
||||
"rouseChance": 0.0042
|
||||
},
|
||||
"combat": {
|
||||
"willDefendSelf": true,
|
||||
"willDefendOwner": true,
|
||||
"willFlee": false
|
||||
]
|
||||
}
|
||||
},
|
||||
"drops": {
|
||||
@@ -390,25 +390,25 @@
|
||||
}
|
||||
},
|
||||
"behaviour": {
|
||||
"combat": {
|
||||
"willDefendOwner": true,
|
||||
"willDefendSelf": true,
|
||||
"willFlee": false
|
||||
},
|
||||
"herd": {
|
||||
"maxSize": "8"
|
||||
},
|
||||
"resting": {
|
||||
"times": [
|
||||
"night, noon"
|
||||
],
|
||||
"drowsyChance": 0.0333,
|
||||
"rouseChance": 0.0042
|
||||
},
|
||||
"moving": {
|
||||
"swim": {
|
||||
"avoidsWater": true
|
||||
}
|
||||
},
|
||||
"combat": {
|
||||
"willDefendSelf": true,
|
||||
"willDefendOwner": true,
|
||||
"willFlee": false
|
||||
"resting": {
|
||||
"drowsyChance": 0.0333,
|
||||
"rouseChance": 0.0042,
|
||||
"times": [
|
||||
"night, noon"
|
||||
]
|
||||
}
|
||||
},
|
||||
"evolutions": [],
|
||||
|
||||
@@ -73,7 +73,7 @@
|
||||
"poseOffsets": [
|
||||
{
|
||||
"offset": {
|
||||
"x": 0.0009895586,
|
||||
"x": 9.895586E-4,
|
||||
"y": -0.6805381,
|
||||
"z": 0.0058082193
|
||||
},
|
||||
@@ -85,7 +85,7 @@
|
||||
"offset": {
|
||||
"x": 0.008947004,
|
||||
"y": -0.6557218,
|
||||
"z": 0.0005530901
|
||||
"z": 5.530901E-4
|
||||
},
|
||||
"poseTypes": [
|
||||
"WALK"
|
||||
@@ -146,30 +146,30 @@
|
||||
]
|
||||
},
|
||||
"behaviour": {
|
||||
"combat": {
|
||||
"willDefendOwner": true,
|
||||
"willDefendSelf": true,
|
||||
"willFlee": false
|
||||
},
|
||||
"herd": {
|
||||
"maxSize": "5"
|
||||
},
|
||||
"resting": {
|
||||
"canSleep": true,
|
||||
"light": "0-4",
|
||||
"times": [
|
||||
"any"
|
||||
],
|
||||
"drowsyChance": 0.0014,
|
||||
"rouseChance": 0.0042
|
||||
},
|
||||
"walking": {
|
||||
"walkSpeed": 0.18
|
||||
},
|
||||
"moving": {
|
||||
"swim": {
|
||||
"avoidsWater": true
|
||||
}
|
||||
},
|
||||
"combat": {
|
||||
"willDefendSelf": true,
|
||||
"willDefendOwner": true,
|
||||
"willFlee": false
|
||||
"resting": {
|
||||
"canSleep": true,
|
||||
"drowsyChance": 0.0014,
|
||||
"light": "0-4",
|
||||
"rouseChance": 0.0042,
|
||||
"times": [
|
||||
"any"
|
||||
]
|
||||
},
|
||||
"walking": {
|
||||
"walkSpeed": 0.18
|
||||
}
|
||||
},
|
||||
"drops": {
|
||||
|
||||
@@ -53,11 +53,20 @@
|
||||
"AIR": {
|
||||
"key": "cobblemon:air/hover",
|
||||
"rideSounds": [
|
||||
{
|
||||
"muffleEnabled": true,
|
||||
"pitchExpr": "math.max(1.0 ,0.2 + math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2))",
|
||||
"playForNonPassengers": false,
|
||||
"playForPassengers": true,
|
||||
"soundLocation": "cobblemon:ride.loop.wind.stereo",
|
||||
"volumeExpr": "math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2)"
|
||||
},
|
||||
{
|
||||
"muffleEnabled": true,
|
||||
"pitchExpr": "math.max(1.0 ,0.2 + math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2))",
|
||||
"playForNonPassengers": true,
|
||||
"soundLocation": "cobblemon:ride.loop.wind",
|
||||
"playForPassengers": false,
|
||||
"soundLocation": "cobblemon:ride.loop.wind.mono",
|
||||
"volumeExpr": "math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2)"
|
||||
}
|
||||
],
|
||||
@@ -153,6 +162,11 @@
|
||||
]
|
||||
},
|
||||
"behaviour": {
|
||||
"combat": {
|
||||
"willDefendOwner": true,
|
||||
"willDefendSelf": true,
|
||||
"willFlee": false
|
||||
},
|
||||
"moving": {
|
||||
"fly": {
|
||||
"canFly": true
|
||||
@@ -166,17 +180,12 @@
|
||||
},
|
||||
"resting": {
|
||||
"canSleep": true,
|
||||
"drowsyChance": 0.0014,
|
||||
"light": "0-4",
|
||||
"rouseChance": 0.0042,
|
||||
"times": [
|
||||
"any"
|
||||
],
|
||||
"drowsyChance": 0.0014,
|
||||
"rouseChance": 0.0042
|
||||
},
|
||||
"combat": {
|
||||
"willDefendSelf": true,
|
||||
"willDefendOwner": true,
|
||||
"willFlee": false
|
||||
]
|
||||
}
|
||||
},
|
||||
"drops": {
|
||||
|
||||
@@ -73,7 +73,7 @@
|
||||
"poseOffsets": [
|
||||
{
|
||||
"offset": {
|
||||
"x": 3.3534473e-19,
|
||||
"x": 3.3534473E-19,
|
||||
"y": -1.0998156,
|
||||
"z": 0.22897746
|
||||
},
|
||||
@@ -83,7 +83,7 @@
|
||||
},
|
||||
{
|
||||
"offset": {
|
||||
"x": -6.446602e-19,
|
||||
"x": -6.446602E-19,
|
||||
"y": -1.060447,
|
||||
"z": 0.23613866
|
||||
},
|
||||
@@ -93,7 +93,7 @@
|
||||
},
|
||||
{
|
||||
"offset": {
|
||||
"x": 3.3534473e-19,
|
||||
"x": 3.3534473E-19,
|
||||
"y": -1.0998156,
|
||||
"z": 0.22897746
|
||||
},
|
||||
@@ -103,7 +103,7 @@
|
||||
},
|
||||
{
|
||||
"offset": {
|
||||
"x": -6.446602e-19,
|
||||
"x": -6.446602E-19,
|
||||
"y": -1.060447,
|
||||
"z": 0.23613866
|
||||
},
|
||||
@@ -113,7 +113,7 @@
|
||||
},
|
||||
{
|
||||
"offset": {
|
||||
"x": 3.3534473e-19,
|
||||
"x": 3.3534473E-19,
|
||||
"y": -1.0998156,
|
||||
"z": 0.22897746
|
||||
},
|
||||
@@ -123,7 +123,7 @@
|
||||
},
|
||||
{
|
||||
"offset": {
|
||||
"x": -6.446602e-19,
|
||||
"x": -6.446602E-19,
|
||||
"y": -1.060447,
|
||||
"z": 0.23613866
|
||||
},
|
||||
@@ -133,7 +133,7 @@
|
||||
},
|
||||
{
|
||||
"offset": {
|
||||
"x": 3.3534473e-19,
|
||||
"x": 3.3534473E-19,
|
||||
"y": -1.0998156,
|
||||
"z": 0.22897746
|
||||
},
|
||||
@@ -146,6 +146,9 @@
|
||||
]
|
||||
},
|
||||
"behaviour": {
|
||||
"combat": {
|
||||
"willDefendOwner": true
|
||||
},
|
||||
"herd": {
|
||||
"maxSize": "9",
|
||||
"toleratedLeaders": [
|
||||
@@ -161,19 +164,16 @@
|
||||
},
|
||||
"moving": {
|
||||
"canWalk": true,
|
||||
"walkSpeed": "0.2",
|
||||
"swim": {
|
||||
"avoidsWater": true
|
||||
}
|
||||
},
|
||||
"walkSpeed": "0.2"
|
||||
},
|
||||
"resting": {
|
||||
"canSleep": true,
|
||||
"light": "0-4",
|
||||
"drowsyChance": 0.0333,
|
||||
"light": "0-4",
|
||||
"rouseChance": 0.0042
|
||||
},
|
||||
"combat": {
|
||||
"willDefendOwner": true
|
||||
}
|
||||
},
|
||||
"drops": {
|
||||
|
||||
@@ -54,11 +54,20 @@
|
||||
"AIR": {
|
||||
"key": "cobblemon:air/bird",
|
||||
"rideSounds": [
|
||||
{
|
||||
"muffleEnabled": true,
|
||||
"pitchExpr": "math.max(1.0 ,0.2 + math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2))",
|
||||
"playForNonPassengers": false,
|
||||
"playForPassengers": true,
|
||||
"soundLocation": "cobblemon:ride.loop.wind.stereo",
|
||||
"volumeExpr": "math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2)"
|
||||
},
|
||||
{
|
||||
"muffleEnabled": true,
|
||||
"pitchExpr": "math.max(1.0 ,0.2 + math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2))",
|
||||
"playForNonPassengers": true,
|
||||
"soundLocation": "cobblemon:ride.loop.wind",
|
||||
"playForPassengers": false,
|
||||
"soundLocation": "cobblemon:ride.loop.wind.mono",
|
||||
"volumeExpr": "math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2)"
|
||||
}
|
||||
],
|
||||
@@ -165,6 +174,11 @@
|
||||
]
|
||||
},
|
||||
"behaviour": {
|
||||
"combat": {
|
||||
"willDefendOwner": true,
|
||||
"willDefendSelf": true,
|
||||
"willFlee": false
|
||||
},
|
||||
"moving": {
|
||||
"fly": {
|
||||
"canFly": true
|
||||
@@ -174,16 +188,11 @@
|
||||
}
|
||||
},
|
||||
"resting": {
|
||||
"drowsyChance": 0.0021,
|
||||
"rouseChance": 0.0042,
|
||||
"times": [
|
||||
"167-11833,13702-22299"
|
||||
],
|
||||
"drowsyChance": 0.0021,
|
||||
"rouseChance": 0.0042
|
||||
},
|
||||
"combat": {
|
||||
"willDefendSelf": true,
|
||||
"willDefendOwner": true,
|
||||
"willFlee": false
|
||||
]
|
||||
}
|
||||
},
|
||||
"drops": {
|
||||
@@ -366,22 +375,22 @@
|
||||
},
|
||||
"baseExperienceYield": 210,
|
||||
"behaviour": {
|
||||
"resting": {
|
||||
"times": [
|
||||
"167-11833,13702-22299"
|
||||
],
|
||||
"drowsyChance": 0.0021,
|
||||
"rouseChance": 0.0042
|
||||
"combat": {
|
||||
"willDefendOwner": true,
|
||||
"willDefendSelf": true,
|
||||
"willFlee": false
|
||||
},
|
||||
"moving": {
|
||||
"swim": {
|
||||
"avoidsWater": true
|
||||
}
|
||||
},
|
||||
"combat": {
|
||||
"willDefendSelf": true,
|
||||
"willDefendOwner": true,
|
||||
"willFlee": false
|
||||
"resting": {
|
||||
"drowsyChance": 0.0021,
|
||||
"rouseChance": 0.0042,
|
||||
"times": [
|
||||
"167-11833,13702-22299"
|
||||
]
|
||||
}
|
||||
},
|
||||
"evolutions": [],
|
||||
|
||||
@@ -146,6 +146,11 @@
|
||||
]
|
||||
},
|
||||
"behaviour": {
|
||||
"combat": {
|
||||
"willDefendOwner": true,
|
||||
"willDefendSelf": true,
|
||||
"willFlee": false
|
||||
},
|
||||
"herd": {
|
||||
"maxSize": "7",
|
||||
"toleratedLeaders": [
|
||||
@@ -160,23 +165,18 @@
|
||||
]
|
||||
},
|
||||
"moving": {
|
||||
"walk": {
|
||||
"walkSpeed": 0.15
|
||||
},
|
||||
"swim": {
|
||||
"avoidsWater": true
|
||||
},
|
||||
"walk": {
|
||||
"walkSpeed": 0.15
|
||||
}
|
||||
},
|
||||
"resting": {
|
||||
"canSleep": true,
|
||||
"light": "0-4",
|
||||
"drowsyChance": 0.0333,
|
||||
"light": "0-4",
|
||||
"rouseChance": 0.0042
|
||||
},
|
||||
"combat": {
|
||||
"willDefendSelf": true,
|
||||
"willDefendOwner": true,
|
||||
"willFlee": false
|
||||
}
|
||||
},
|
||||
"drops": {
|
||||
|
||||
@@ -145,27 +145,27 @@
|
||||
]
|
||||
},
|
||||
"behaviour": {
|
||||
"moving": {
|
||||
"walk": {
|
||||
"walkSpeed": 0.3
|
||||
},
|
||||
"swim": {
|
||||
"avoidsWater": true
|
||||
}
|
||||
},
|
||||
"resting": {
|
||||
"canSleep": true,
|
||||
"light": "0-4",
|
||||
"drowsyChance": 0.0333,
|
||||
"rouseChance": 0.0042
|
||||
},
|
||||
"combat": {
|
||||
"willDefendSelf": true,
|
||||
"willDefendOwner": true,
|
||||
"willDefendSelf": true,
|
||||
"willFlee": false
|
||||
},
|
||||
"herd": {
|
||||
"maxSize": "3"
|
||||
},
|
||||
"moving": {
|
||||
"swim": {
|
||||
"avoidsWater": true
|
||||
},
|
||||
"walk": {
|
||||
"walkSpeed": 0.3
|
||||
}
|
||||
},
|
||||
"resting": {
|
||||
"canSleep": true,
|
||||
"drowsyChance": 0.0333,
|
||||
"light": "0-4",
|
||||
"rouseChance": 0.0042
|
||||
}
|
||||
},
|
||||
"drops": {
|
||||
|
||||
@@ -54,11 +54,20 @@
|
||||
"AIR": {
|
||||
"key": "cobblemon:air/bird",
|
||||
"rideSounds": [
|
||||
{
|
||||
"muffleEnabled": true,
|
||||
"pitchExpr": "math.max(1.0 ,0.2 + math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2))",
|
||||
"playForNonPassengers": false,
|
||||
"playForPassengers": true,
|
||||
"soundLocation": "cobblemon:ride.loop.wind.stereo",
|
||||
"volumeExpr": "math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2)"
|
||||
},
|
||||
{
|
||||
"muffleEnabled": true,
|
||||
"pitchExpr": "math.max(1.0 ,0.2 + math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2))",
|
||||
"playForNonPassengers": true,
|
||||
"soundLocation": "cobblemon:ride.loop.wind",
|
||||
"playForPassengers": false,
|
||||
"soundLocation": "cobblemon:ride.loop.wind.mono",
|
||||
"volumeExpr": "math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2)"
|
||||
}
|
||||
],
|
||||
@@ -167,6 +176,9 @@
|
||||
]
|
||||
},
|
||||
"behaviour": {
|
||||
"combat": {
|
||||
"willDefendOwner": true
|
||||
},
|
||||
"herd": {
|
||||
"maxSize": "9",
|
||||
"toleratedLeaders": [
|
||||
@@ -184,21 +196,18 @@
|
||||
"fly": {
|
||||
"canFly": true
|
||||
},
|
||||
"walking": {
|
||||
"walkSpeed": 0.19
|
||||
},
|
||||
"swim": {
|
||||
"avoidsWater": true
|
||||
},
|
||||
"walking": {
|
||||
"walkSpeed": 0.19
|
||||
}
|
||||
},
|
||||
"resting": {
|
||||
"canSleep": true,
|
||||
"light": "0-4",
|
||||
"drowsyChance": 0.0333,
|
||||
"light": "0-4",
|
||||
"rouseChance": 0.0042
|
||||
},
|
||||
"combat": {
|
||||
"willDefendOwner": true
|
||||
}
|
||||
},
|
||||
"drops": {
|
||||
@@ -401,6 +410,11 @@
|
||||
},
|
||||
"baseExperienceYield": 207,
|
||||
"behaviour": {
|
||||
"combat": {
|
||||
"willDefendOwner": true,
|
||||
"willDefendSelf": true,
|
||||
"willFlee": false
|
||||
},
|
||||
"herd": {
|
||||
"maxSize": "9",
|
||||
"toleratedLeaders": [
|
||||
@@ -411,18 +425,13 @@
|
||||
]
|
||||
},
|
||||
"moving": {
|
||||
"swim": {
|
||||
"avoidsWater": true
|
||||
},
|
||||
"fly": {
|
||||
"canFly": true
|
||||
},
|
||||
"swim": {
|
||||
"avoidsWater": true
|
||||
}
|
||||
},
|
||||
"combat": {
|
||||
"willDefendSelf": true,
|
||||
"willDefendOwner": true,
|
||||
"willFlee": false
|
||||
},
|
||||
"resting": {
|
||||
"drowsyChance": 0.0333,
|
||||
"rouseChance": 0.0042
|
||||
|
||||
@@ -541,6 +541,12 @@
|
||||
]
|
||||
},
|
||||
"behaviour": {
|
||||
"combat": {
|
||||
"willDefendOwner": true,
|
||||
"willDefendSelf": true,
|
||||
"willFlee": false
|
||||
},
|
||||
"fireImmune": true,
|
||||
"herd": {
|
||||
"maxSize": "9",
|
||||
"toleratedLeaders": [
|
||||
@@ -560,16 +566,10 @@
|
||||
"canSwimInLava": true
|
||||
}
|
||||
},
|
||||
"combat": {
|
||||
"willDefendOwner": true,
|
||||
"willFlee": false,
|
||||
"willDefendSelf": true
|
||||
},
|
||||
"resting": {
|
||||
"drowsyChance": 0.0333,
|
||||
"rouseChance": 0.0042
|
||||
},
|
||||
"fireImmune": true
|
||||
}
|
||||
},
|
||||
"drops": {
|
||||
"amount": 2,
|
||||
@@ -762,6 +762,12 @@
|
||||
},
|
||||
"baseExperienceYield": 196,
|
||||
"behaviour": {
|
||||
"combat": {
|
||||
"willDefendOwner": true,
|
||||
"willDefendSelf": true,
|
||||
"willFlee": false
|
||||
},
|
||||
"fireImmune": true,
|
||||
"herd": {
|
||||
"maxSize": "9",
|
||||
"toleratedLeaders": [
|
||||
@@ -777,16 +783,10 @@
|
||||
"canSwimInLava": true
|
||||
}
|
||||
},
|
||||
"combat": {
|
||||
"willDefendSelf": true,
|
||||
"willDefendOwner": true,
|
||||
"willFlee": false
|
||||
},
|
||||
"resting": {
|
||||
"drowsyChance": 0.0333,
|
||||
"rouseChance": 0.0042
|
||||
},
|
||||
"fireImmune": true
|
||||
}
|
||||
},
|
||||
"evolutions": [],
|
||||
"battleOnly": true,
|
||||
|
||||
@@ -56,15 +56,33 @@
|
||||
{
|
||||
"muffleEnabled": true,
|
||||
"pitchExpr": "math.max(1.0 ,0.2 + math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2))",
|
||||
"playForNonPassengers": true,
|
||||
"soundLocation": "cobblemon:ride.loop.wind",
|
||||
"playForNonPassengers": false,
|
||||
"playForPassengers": true,
|
||||
"soundLocation": "cobblemon:ride.loop.wind.stereo",
|
||||
"volumeExpr": "math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2)"
|
||||
},
|
||||
{
|
||||
"muffleEnabled": true,
|
||||
"pitchExpr": "math.pow(math.min(math.max(0.5,(q.ride_velocity()*0.5 / 1.5) + 0.5), 1.0),2)",
|
||||
"pitchExpr": "math.max(1.0 ,0.2 + math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2))",
|
||||
"playForNonPassengers": true,
|
||||
"soundLocation": "cobblemon:ride.loop.saucer",
|
||||
"playForPassengers": false,
|
||||
"soundLocation": "cobblemon:ride.loop.wind.mono",
|
||||
"volumeExpr": "math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2)"
|
||||
},
|
||||
{
|
||||
"muffleEnabled": true,
|
||||
"pitchExpr": "math.max(1.0 ,0.2 + math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2))",
|
||||
"playForNonPassengers": false,
|
||||
"playForPassengers": true,
|
||||
"soundLocation": "cobblemon:ride.loop.saucer.stereo",
|
||||
"volumeExpr": "math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2)"
|
||||
},
|
||||
{
|
||||
"muffleEnabled": true,
|
||||
"pitchExpr": "math.max(1.0 ,0.2 + math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2))",
|
||||
"playForNonPassengers": true,
|
||||
"playForPassengers": false,
|
||||
"soundLocation": "cobblemon:ride.loop.saucer.mono",
|
||||
"volumeExpr": "math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2)"
|
||||
}
|
||||
],
|
||||
@@ -160,6 +178,11 @@
|
||||
]
|
||||
},
|
||||
"behaviour": {
|
||||
"combat": {
|
||||
"willDefendOwner": true,
|
||||
"willDefendSelf": true,
|
||||
"willFlee": false
|
||||
},
|
||||
"herd": {
|
||||
"maxSize": "3"
|
||||
},
|
||||
@@ -176,17 +199,12 @@
|
||||
},
|
||||
"resting": {
|
||||
"canSleep": true,
|
||||
"drowsyChance": 0.0014,
|
||||
"light": "0-4",
|
||||
"rouseChance": 0.0042,
|
||||
"times": [
|
||||
"any"
|
||||
],
|
||||
"drowsyChance": 0.0014,
|
||||
"rouseChance": 0.0042
|
||||
},
|
||||
"combat": {
|
||||
"willDefendSelf": true,
|
||||
"willDefendOwner": true,
|
||||
"willFlee": false
|
||||
]
|
||||
}
|
||||
},
|
||||
"drops": {
|
||||
|
||||
@@ -54,11 +54,20 @@
|
||||
"AIR": {
|
||||
"key": "cobblemon:air/bird",
|
||||
"rideSounds": [
|
||||
{
|
||||
"muffleEnabled": true,
|
||||
"pitchExpr": "math.max(1.0 ,0.2 + math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2))",
|
||||
"playForNonPassengers": false,
|
||||
"playForPassengers": true,
|
||||
"soundLocation": "cobblemon:ride.loop.wind.stereo",
|
||||
"volumeExpr": "math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2)"
|
||||
},
|
||||
{
|
||||
"muffleEnabled": true,
|
||||
"pitchExpr": "math.max(1.0 ,0.2 + math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2))",
|
||||
"playForNonPassengers": true,
|
||||
"soundLocation": "cobblemon:ride.loop.wind",
|
||||
"playForPassengers": false,
|
||||
"soundLocation": "cobblemon:ride.loop.wind.mono",
|
||||
"volumeExpr": "math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2)"
|
||||
}
|
||||
],
|
||||
@@ -93,8 +102,8 @@
|
||||
{
|
||||
"offset": {
|
||||
"x": 0.003290192,
|
||||
"y": -1.3213174,
|
||||
"z": 0.215731
|
||||
"y": -1.2900676,
|
||||
"z": 0.17198098
|
||||
},
|
||||
"poseTypes": [
|
||||
"STAND"
|
||||
@@ -133,8 +142,8 @@
|
||||
{
|
||||
"offset": {
|
||||
"x": 0.003290192,
|
||||
"y": -1.3213174,
|
||||
"z": 0.215731
|
||||
"y": -1.2900676,
|
||||
"z": 0.17198098
|
||||
},
|
||||
"poseTypes": [
|
||||
"FLOAT"
|
||||
@@ -152,9 +161,9 @@
|
||||
},
|
||||
{
|
||||
"offset": {
|
||||
"x": 0.003290192,
|
||||
"y": -1.3213174,
|
||||
"z": 0.215731
|
||||
"x": -2.4577955E-4,
|
||||
"y": -1.4635844,
|
||||
"z": -0.041512404
|
||||
},
|
||||
"poseTypes": [
|
||||
"GLIDE"
|
||||
@@ -165,6 +174,11 @@
|
||||
]
|
||||
},
|
||||
"behaviour": {
|
||||
"combat": {
|
||||
"willDefendOwner": true,
|
||||
"willDefendSelf": true,
|
||||
"willFlee": false
|
||||
},
|
||||
"herd": {
|
||||
"maxSize": "9"
|
||||
},
|
||||
@@ -172,23 +186,18 @@
|
||||
"fly": {
|
||||
"canFly": true
|
||||
},
|
||||
"walk": {
|
||||
"walkSpeed": 0.24
|
||||
},
|
||||
"swim": {
|
||||
"avoidsWater": true
|
||||
},
|
||||
"walk": {
|
||||
"walkSpeed": 0.24
|
||||
}
|
||||
},
|
||||
"resting": {
|
||||
"canSleep": true,
|
||||
"light": "0-4",
|
||||
"drowsyChance": 0.0333,
|
||||
"light": "0-4",
|
||||
"rouseChance": 0.0042
|
||||
},
|
||||
"combat": {
|
||||
"willDefendSelf": true,
|
||||
"willDefendOwner": true,
|
||||
"willFlee": false
|
||||
}
|
||||
},
|
||||
"drops": {
|
||||
|
||||
@@ -57,15 +57,33 @@
|
||||
{
|
||||
"muffleEnabled": true,
|
||||
"pitchExpr": "math.max(1.0 ,0.2 + math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2))",
|
||||
"playForNonPassengers": true,
|
||||
"soundLocation": "cobblemon:ride.loop.wind",
|
||||
"playForNonPassengers": false,
|
||||
"playForPassengers": true,
|
||||
"soundLocation": "cobblemon:ride.loop.wind.stereo",
|
||||
"volumeExpr": "math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2)"
|
||||
},
|
||||
{
|
||||
"muffleEnabled": true,
|
||||
"pitchExpr": "math.pow(math.min(math.max(0.5,(q.ride_velocity()*0.5 / 1.5) + 0.5), 1.0),2)",
|
||||
"pitchExpr": "math.max(1.0 ,0.2 + math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2))",
|
||||
"playForNonPassengers": true,
|
||||
"soundLocation": "cobblemon:ride.loop.saucer",
|
||||
"playForPassengers": false,
|
||||
"soundLocation": "cobblemon:ride.loop.wind.mono",
|
||||
"volumeExpr": "math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2)"
|
||||
},
|
||||
{
|
||||
"muffleEnabled": true,
|
||||
"pitchExpr": "math.max(1.0 ,0.2 + math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2))",
|
||||
"playForNonPassengers": false,
|
||||
"playForPassengers": true,
|
||||
"soundLocation": "cobblemon:ride.loop.saucer.stereo",
|
||||
"volumeExpr": "math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2)"
|
||||
},
|
||||
{
|
||||
"muffleEnabled": true,
|
||||
"pitchExpr": "math.max(1.0 ,0.2 + math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2))",
|
||||
"playForNonPassengers": true,
|
||||
"playForPassengers": false,
|
||||
"soundLocation": "cobblemon:ride.loop.saucer.mono",
|
||||
"volumeExpr": "math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2)"
|
||||
}
|
||||
],
|
||||
@@ -99,7 +117,7 @@
|
||||
"poseOffsets": [
|
||||
{
|
||||
"offset": {
|
||||
"x": -0.0007805396,
|
||||
"x": -7.805396E-4,
|
||||
"y": -1.2943133,
|
||||
"z": -0.40744212
|
||||
},
|
||||
@@ -119,7 +137,7 @@
|
||||
},
|
||||
{
|
||||
"offset": {
|
||||
"x": 0.0007733833,
|
||||
"x": 7.733833E-4,
|
||||
"y": -1.4106412,
|
||||
"z": -0.3683446
|
||||
},
|
||||
@@ -129,7 +147,7 @@
|
||||
},
|
||||
{
|
||||
"offset": {
|
||||
"x": 0.0007733833,
|
||||
"x": 7.733833E-4,
|
||||
"y": -1.4106412,
|
||||
"z": -0.4224712
|
||||
},
|
||||
@@ -139,7 +157,7 @@
|
||||
},
|
||||
{
|
||||
"offset": {
|
||||
"x": 0.0007733833,
|
||||
"x": 7.733833E-4,
|
||||
"y": -1.4106412,
|
||||
"z": -0.3683446
|
||||
},
|
||||
@@ -149,7 +167,7 @@
|
||||
},
|
||||
{
|
||||
"offset": {
|
||||
"x": 0.0007733833,
|
||||
"x": 7.733833E-4,
|
||||
"y": -1.4106412,
|
||||
"z": -0.4224712
|
||||
},
|
||||
@@ -159,7 +177,7 @@
|
||||
},
|
||||
{
|
||||
"offset": {
|
||||
"x": 0.0007733833,
|
||||
"x": 7.733833E-4,
|
||||
"y": -1.4106412,
|
||||
"z": -0.3683446
|
||||
},
|
||||
@@ -356,7 +374,7 @@
|
||||
},
|
||||
{
|
||||
"offset": {
|
||||
"x": 0.000753602,
|
||||
"x": 7.53602E-4,
|
||||
"y": -1.3993053,
|
||||
"z": 0.38156968
|
||||
},
|
||||
@@ -366,7 +384,7 @@
|
||||
},
|
||||
{
|
||||
"offset": {
|
||||
"x": 0.000753602,
|
||||
"x": 7.53602E-4,
|
||||
"y": -1.3993053,
|
||||
"z": 0.3274431
|
||||
},
|
||||
@@ -376,7 +394,7 @@
|
||||
},
|
||||
{
|
||||
"offset": {
|
||||
"x": 0.000753602,
|
||||
"x": 7.53602E-4,
|
||||
"y": -1.3993053,
|
||||
"z": 0.38156968
|
||||
},
|
||||
@@ -386,7 +404,7 @@
|
||||
},
|
||||
{
|
||||
"offset": {
|
||||
"x": 0.000753602,
|
||||
"x": 7.53602E-4,
|
||||
"y": -1.3993053,
|
||||
"z": 0.3274431
|
||||
},
|
||||
@@ -396,7 +414,7 @@
|
||||
},
|
||||
{
|
||||
"offset": {
|
||||
"x": 0.000753602,
|
||||
"x": 7.53602E-4,
|
||||
"y": -1.3993053,
|
||||
"z": 0.38156968
|
||||
},
|
||||
@@ -409,6 +427,11 @@
|
||||
]
|
||||
},
|
||||
"behaviour": {
|
||||
"combat": {
|
||||
"willDefendOwner": true,
|
||||
"willDefendSelf": true,
|
||||
"willFlee": false
|
||||
},
|
||||
"herd": {
|
||||
"maxSize": "6"
|
||||
},
|
||||
@@ -425,17 +448,12 @@
|
||||
},
|
||||
"resting": {
|
||||
"canSleep": true,
|
||||
"drowsyChance": 0.0014,
|
||||
"light": "0-4",
|
||||
"rouseChance": 0.0042,
|
||||
"times": [
|
||||
"any"
|
||||
],
|
||||
"drowsyChance": 0.0014,
|
||||
"rouseChance": 0.0042
|
||||
},
|
||||
"combat": {
|
||||
"willDefendSelf": true,
|
||||
"willDefendOwner": true,
|
||||
"willFlee": false
|
||||
]
|
||||
}
|
||||
},
|
||||
"drops": {
|
||||
@@ -644,31 +662,31 @@
|
||||
},
|
||||
"baseExperienceYield": 350,
|
||||
"behaviour": {
|
||||
"combat": {
|
||||
"willDefendOwner": true,
|
||||
"willDefendSelf": true,
|
||||
"willFlee": false
|
||||
},
|
||||
"herd": {
|
||||
"maxSize": "7"
|
||||
},
|
||||
"resting": {
|
||||
"times": [
|
||||
"any"
|
||||
],
|
||||
"drowsyChance": 0.0014,
|
||||
"rouseChance": 0.0042
|
||||
},
|
||||
"moving": {
|
||||
"swim": {
|
||||
"avoidsWater": true
|
||||
},
|
||||
"fly": {
|
||||
"canFly": true
|
||||
},
|
||||
"swim": {
|
||||
"avoidsWater": true
|
||||
},
|
||||
"walk": {
|
||||
"canWalk": false
|
||||
}
|
||||
},
|
||||
"combat": {
|
||||
"willDefendSelf": true,
|
||||
"willDefendOwner": true,
|
||||
"willFlee": false
|
||||
"resting": {
|
||||
"drowsyChance": 0.0014,
|
||||
"rouseChance": 0.0042,
|
||||
"times": [
|
||||
"any"
|
||||
]
|
||||
}
|
||||
},
|
||||
"evolutions": [],
|
||||
|
||||
@@ -54,8 +54,35 @@
|
||||
"behaviours": {
|
||||
"LIQUID": {
|
||||
"key": "cobblemon:liquid/submarine",
|
||||
"rideSounds": [
|
||||
{
|
||||
"muffleEnabled": true,
|
||||
"pitchExpr": "math.max(1.0 ,0.2 + math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2))",
|
||||
"playForNonPassengers": false,
|
||||
"playForPassengers": true,
|
||||
"soundLocation": "cobblemon:ride.loop.water_sufrace.stereo",
|
||||
"volumeExpr": "math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2)"
|
||||
},
|
||||
{
|
||||
"muffleEnabled": true,
|
||||
"pitchExpr": "math.max(1.0 ,0.2 + math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2))",
|
||||
"playForNonPassengers": true,
|
||||
"playForPassengers": false,
|
||||
"soundLocation": "cobblemon:ride.loop.water_surface.mono",
|
||||
"submerged": false,
|
||||
"volumeExpr": "math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2)"
|
||||
},
|
||||
{
|
||||
"muffleEnabled": true,
|
||||
"pitchExpr": "math.max(1.0 ,0.2 + math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2))",
|
||||
"playForNonPassengers": false,
|
||||
"playForPassengers": true,
|
||||
"soundLocation": "cobblemon:ride.loop.underwater.stereo",
|
||||
"submerged": true,
|
||||
"volumeExpr": "math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2)"
|
||||
}
|
||||
],
|
||||
"hitboxBreachPercentage": 0.9,
|
||||
"rideSounds": [],
|
||||
"stats": {
|
||||
"ACCELERATION": "25-40",
|
||||
"JUMP": "50-75",
|
||||
@@ -148,6 +175,9 @@
|
||||
]
|
||||
},
|
||||
"behaviour": {
|
||||
"combat": {
|
||||
"willDefendOwner": true
|
||||
},
|
||||
"herd": {
|
||||
"maxSize": "9",
|
||||
"toleratedLeaders": [
|
||||
@@ -172,14 +202,11 @@
|
||||
}
|
||||
},
|
||||
"resting": {
|
||||
"drowsyChance": 0.0014,
|
||||
"rouseChance": 0.0042,
|
||||
"times": [
|
||||
"any"
|
||||
],
|
||||
"drowsyChance": 0.0014,
|
||||
"rouseChance": 0.0042
|
||||
},
|
||||
"combat": {
|
||||
"willDefendOwner": true
|
||||
]
|
||||
}
|
||||
},
|
||||
"drops": {
|
||||
|
||||
@@ -54,11 +54,20 @@
|
||||
"AIR": {
|
||||
"key": "cobblemon:air/bird",
|
||||
"rideSounds": [
|
||||
{
|
||||
"muffleEnabled": true,
|
||||
"pitchExpr": "math.max(1.0 ,0.2 + math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2))",
|
||||
"playForNonPassengers": false,
|
||||
"playForPassengers": true,
|
||||
"soundLocation": "cobblemon:ride.loop.wind.stereo",
|
||||
"volumeExpr": "math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2)"
|
||||
},
|
||||
{
|
||||
"muffleEnabled": true,
|
||||
"pitchExpr": "math.max(1.0 ,0.2 + math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2))",
|
||||
"playForNonPassengers": true,
|
||||
"soundLocation": "cobblemon:ride.loop.wind",
|
||||
"playForPassengers": false,
|
||||
"soundLocation": "cobblemon:ride.loop.wind.mono",
|
||||
"volumeExpr": "math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2)"
|
||||
}
|
||||
],
|
||||
@@ -244,22 +253,22 @@
|
||||
]
|
||||
},
|
||||
"behaviour": {
|
||||
"combat": {
|
||||
"willDefendOwner": true,
|
||||
"willDefendSelf": true,
|
||||
"willFlee": false
|
||||
},
|
||||
"moving": {
|
||||
"fly": {
|
||||
"canFly": true
|
||||
},
|
||||
"walking": {
|
||||
"walkSpeed": 0.2
|
||||
},
|
||||
"swim": {
|
||||
"avoidsWater": true
|
||||
},
|
||||
"walking": {
|
||||
"walkSpeed": 0.2
|
||||
}
|
||||
},
|
||||
"combat": {
|
||||
"willDefendSelf": true,
|
||||
"willDefendOwner": true,
|
||||
"willFlee": false
|
||||
},
|
||||
"resting": {
|
||||
"drowsyChance": 0.0333,
|
||||
"rouseChance": 0.0042
|
||||
@@ -465,19 +474,19 @@
|
||||
},
|
||||
"baseExperienceYield": 350,
|
||||
"behaviour": {
|
||||
"combat": {
|
||||
"willDefendOwner": true,
|
||||
"willDefendSelf": true,
|
||||
"willFlee": false
|
||||
},
|
||||
"moving": {
|
||||
"swim": {
|
||||
"avoidsWater": true
|
||||
},
|
||||
"fly": {
|
||||
"canFly": true
|
||||
},
|
||||
"swim": {
|
||||
"avoidsWater": true
|
||||
}
|
||||
},
|
||||
"combat": {
|
||||
"willDefendSelf": true,
|
||||
"willDefendOwner": true,
|
||||
"willFlee": false
|
||||
},
|
||||
"resting": {
|
||||
"drowsyChance": 0.0333,
|
||||
"rouseChance": 0.0042
|
||||
|
||||
@@ -52,7 +52,34 @@
|
||||
"behaviours": {
|
||||
"LIQUID": {
|
||||
"key": "cobblemon:liquid/dolphin",
|
||||
"rideSounds": [],
|
||||
"rideSounds": [
|
||||
{
|
||||
"muffleEnabled": true,
|
||||
"pitchExpr": "math.max(1.0 ,0.2 + math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2))",
|
||||
"playForNonPassengers": false,
|
||||
"playForPassengers": true,
|
||||
"soundLocation": "cobblemon:ride.loop.water_sufrace.stereo",
|
||||
"volumeExpr": "math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2)"
|
||||
},
|
||||
{
|
||||
"muffleEnabled": true,
|
||||
"pitchExpr": "math.max(1.0 ,0.2 + math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2))",
|
||||
"playForNonPassengers": true,
|
||||
"playForPassengers": false,
|
||||
"soundLocation": "cobblemon:ride.loop.water_surface.mono",
|
||||
"submerged": false,
|
||||
"volumeExpr": "math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2)"
|
||||
},
|
||||
{
|
||||
"muffleEnabled": true,
|
||||
"pitchExpr": "math.max(1.0 ,0.2 + math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2))",
|
||||
"playForNonPassengers": false,
|
||||
"playForPassengers": true,
|
||||
"soundLocation": "cobblemon:ride.loop.underwater.stereo",
|
||||
"submerged": true,
|
||||
"volumeExpr": "math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2)"
|
||||
}
|
||||
],
|
||||
"stats": {
|
||||
"ACCELERATION": "55-85",
|
||||
"JUMP": "45-75",
|
||||
@@ -145,6 +172,11 @@
|
||||
]
|
||||
},
|
||||
"behaviour": {
|
||||
"combat": {
|
||||
"willDefendOwner": true,
|
||||
"willDefendSelf": true,
|
||||
"willFlee": false
|
||||
},
|
||||
"herd": {
|
||||
"maxSize": "9",
|
||||
"toleratedLeaders": [
|
||||
@@ -172,11 +204,6 @@
|
||||
"walkSpeed": 0.7
|
||||
}
|
||||
},
|
||||
"combat": {
|
||||
"willDefendSelf": true,
|
||||
"willDefendOwner": true,
|
||||
"willFlee": false
|
||||
},
|
||||
"resting": {
|
||||
"drowsyChance": 0.0333,
|
||||
"rouseChance": 0.0042
|
||||
@@ -356,6 +383,11 @@
|
||||
},
|
||||
"baseExperienceYield": 196,
|
||||
"behaviour": {
|
||||
"combat": {
|
||||
"willDefendOwner": true,
|
||||
"willDefendSelf": true,
|
||||
"willFlee": false
|
||||
},
|
||||
"herd": {
|
||||
"maxSize": "9",
|
||||
"toleratedLeaders": [
|
||||
@@ -378,11 +410,6 @@
|
||||
"avoidsLand": true
|
||||
}
|
||||
},
|
||||
"combat": {
|
||||
"willDefendSelf": true,
|
||||
"willDefendOwner": true,
|
||||
"willFlee": false
|
||||
},
|
||||
"resting": {
|
||||
"drowsyChance": 0.0333,
|
||||
"rouseChance": 0.0042
|
||||
|
||||
@@ -144,6 +144,9 @@
|
||||
]
|
||||
},
|
||||
"behaviour": {
|
||||
"combat": {
|
||||
"willFlee": false
|
||||
},
|
||||
"herd": {
|
||||
"maxSize": "8"
|
||||
},
|
||||
@@ -159,17 +162,14 @@
|
||||
},
|
||||
"resting": {
|
||||
"canSleep": true,
|
||||
"light": "0-14",
|
||||
"sleepChance": "0.0023",
|
||||
"depth": "comatose",
|
||||
"drowsyChance": 0.0028,
|
||||
"light": "0-14",
|
||||
"rouseChance": 0.0028,
|
||||
"sleepChance": "0.0023",
|
||||
"times": [
|
||||
"any"
|
||||
],
|
||||
"drowsyChance": 0.0028,
|
||||
"rouseChance": 0.0028
|
||||
},
|
||||
"combat": {
|
||||
"willFlee": false
|
||||
]
|
||||
}
|
||||
},
|
||||
"drops": {
|
||||
|
||||
@@ -55,11 +55,20 @@
|
||||
"AIR": {
|
||||
"key": "cobblemon:air/bird",
|
||||
"rideSounds": [
|
||||
{
|
||||
"muffleEnabled": true,
|
||||
"pitchExpr": "math.max(1.0 ,0.2 + math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2))",
|
||||
"playForNonPassengers": false,
|
||||
"playForPassengers": true,
|
||||
"soundLocation": "cobblemon:ride.loop.wind.stereo",
|
||||
"volumeExpr": "math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2)"
|
||||
},
|
||||
{
|
||||
"muffleEnabled": true,
|
||||
"pitchExpr": "math.max(1.0 ,0.2 + math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2))",
|
||||
"playForNonPassengers": true,
|
||||
"soundLocation": "cobblemon:ride.loop.wind",
|
||||
"playForPassengers": false,
|
||||
"soundLocation": "cobblemon:ride.loop.wind.mono",
|
||||
"volumeExpr": "math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2)"
|
||||
}
|
||||
],
|
||||
@@ -68,7 +77,7 @@
|
||||
"JUMP": "70-90",
|
||||
"SKILL": "20-40",
|
||||
"SPEED": "20-45",
|
||||
"STAMINA": "40-70"
|
||||
"STAMINA": "55-80"
|
||||
}
|
||||
},
|
||||
"LAND": {
|
||||
@@ -79,7 +88,7 @@
|
||||
"JUMP": "10-20",
|
||||
"SKILL": "30-50",
|
||||
"SPEED": "15-25",
|
||||
"STAMINA": "50-80"
|
||||
"STAMINA": "55-85"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -245,6 +254,11 @@
|
||||
]
|
||||
},
|
||||
"behaviour": {
|
||||
"combat": {
|
||||
"willDefendOwner": true,
|
||||
"willDefendSelf": true,
|
||||
"willFlee": false
|
||||
},
|
||||
"herd": {
|
||||
"maxSize": "6",
|
||||
"toleratedLeaders": [
|
||||
@@ -262,23 +276,18 @@
|
||||
"fly": {
|
||||
"canFly": true
|
||||
},
|
||||
"walk": {
|
||||
"walkSpeed": 0.147
|
||||
},
|
||||
"swim": {
|
||||
"avoidsWater": true
|
||||
},
|
||||
"walk": {
|
||||
"walkSpeed": 0.147
|
||||
}
|
||||
},
|
||||
"resting": {
|
||||
"canSleep": true,
|
||||
"light": "0-4",
|
||||
"drowsyChance": 0.0333,
|
||||
"light": "0-4",
|
||||
"rouseChance": 0.0042
|
||||
},
|
||||
"combat": {
|
||||
"willDefendSelf": true,
|
||||
"willDefendOwner": true,
|
||||
"willFlee": false
|
||||
}
|
||||
},
|
||||
"drops": {
|
||||
|
||||
@@ -66,8 +66,35 @@
|
||||
},
|
||||
"LIQUID": {
|
||||
"key": "cobblemon:liquid/submarine",
|
||||
"rideSounds": [
|
||||
{
|
||||
"muffleEnabled": true,
|
||||
"pitchExpr": "math.max(1.0 ,0.2 + math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2))",
|
||||
"playForNonPassengers": false,
|
||||
"playForPassengers": true,
|
||||
"soundLocation": "cobblemon:ride.loop.water_sufrace.stereo",
|
||||
"volumeExpr": "math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2)"
|
||||
},
|
||||
{
|
||||
"muffleEnabled": true,
|
||||
"pitchExpr": "math.max(1.0 ,0.2 + math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2))",
|
||||
"playForNonPassengers": true,
|
||||
"playForPassengers": false,
|
||||
"soundLocation": "cobblemon:ride.loop.water_surface.mono",
|
||||
"submerged": false,
|
||||
"volumeExpr": "math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2)"
|
||||
},
|
||||
{
|
||||
"muffleEnabled": true,
|
||||
"pitchExpr": "math.max(1.0 ,0.2 + math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2))",
|
||||
"playForNonPassengers": false,
|
||||
"playForPassengers": true,
|
||||
"soundLocation": "cobblemon:ride.loop.underwater.stereo",
|
||||
"submerged": true,
|
||||
"volumeExpr": "math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2)"
|
||||
}
|
||||
],
|
||||
"hitboxBreachPercentage": 0.75,
|
||||
"rideSounds": [],
|
||||
"stats": {
|
||||
"ACCELERATION": "30-55",
|
||||
"JUMP": "25-40",
|
||||
@@ -160,6 +187,9 @@
|
||||
]
|
||||
},
|
||||
"behaviour": {
|
||||
"combat": {
|
||||
"willDefendOwner": true
|
||||
},
|
||||
"herd": {
|
||||
"maxSize": "6",
|
||||
"toleratedLeaders": [
|
||||
@@ -189,12 +219,9 @@
|
||||
},
|
||||
"resting": {
|
||||
"canSleep": true,
|
||||
"light": "0-4",
|
||||
"drowsyChance": 0.0333,
|
||||
"light": "0-4",
|
||||
"rouseChance": 0.0042
|
||||
},
|
||||
"combat": {
|
||||
"willDefendOwner": true
|
||||
}
|
||||
},
|
||||
"drops": {
|
||||
|
||||
@@ -66,8 +66,35 @@
|
||||
},
|
||||
"LIQUID": {
|
||||
"key": "cobblemon:liquid/submarine",
|
||||
"rideSounds": [
|
||||
{
|
||||
"muffleEnabled": true,
|
||||
"pitchExpr": "math.max(1.0 ,0.2 + math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2))",
|
||||
"playForNonPassengers": false,
|
||||
"playForPassengers": true,
|
||||
"soundLocation": "cobblemon:ride.loop.water_sufrace.stereo",
|
||||
"volumeExpr": "math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2)"
|
||||
},
|
||||
{
|
||||
"muffleEnabled": true,
|
||||
"pitchExpr": "math.max(1.0 ,0.2 + math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2))",
|
||||
"playForNonPassengers": true,
|
||||
"playForPassengers": false,
|
||||
"soundLocation": "cobblemon:ride.loop.water_surface.mono",
|
||||
"submerged": false,
|
||||
"volumeExpr": "math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2)"
|
||||
},
|
||||
{
|
||||
"muffleEnabled": true,
|
||||
"pitchExpr": "math.max(1.0 ,0.2 + math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2))",
|
||||
"playForNonPassengers": false,
|
||||
"playForPassengers": true,
|
||||
"soundLocation": "cobblemon:ride.loop.underwater.stereo",
|
||||
"submerged": true,
|
||||
"volumeExpr": "math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2)"
|
||||
}
|
||||
],
|
||||
"hitboxBreachPercentage": 0.85,
|
||||
"rideSounds": [],
|
||||
"stats": {
|
||||
"ACCELERATION": "20-45",
|
||||
"JUMP": "40-55",
|
||||
@@ -1582,6 +1609,9 @@
|
||||
]
|
||||
},
|
||||
"behaviour": {
|
||||
"combat": {
|
||||
"willDefendOwner": true
|
||||
},
|
||||
"herd": {
|
||||
"maxSize": "7",
|
||||
"toleratedLeaders": [
|
||||
@@ -1606,13 +1636,10 @@
|
||||
},
|
||||
"resting": {
|
||||
"canSleep": true,
|
||||
"light": "0-4",
|
||||
"depth": "comatose",
|
||||
"drowsyChance": 0.0333,
|
||||
"light": "0-4",
|
||||
"rouseChance": 0.0042
|
||||
},
|
||||
"combat": {
|
||||
"willDefendOwner": true
|
||||
}
|
||||
},
|
||||
"drops": {
|
||||
|
||||
@@ -225,6 +225,10 @@
|
||||
]
|
||||
},
|
||||
"behaviour": {
|
||||
"combat": {
|
||||
"willDefendOwner": true
|
||||
},
|
||||
"fireImmune": true,
|
||||
"herd": {
|
||||
"maxSize": "9",
|
||||
"toleratedLeaders": [
|
||||
@@ -245,14 +249,10 @@
|
||||
},
|
||||
"resting": {
|
||||
"canSleep": true,
|
||||
"light": "0-4",
|
||||
"drowsyChance": 0.0333,
|
||||
"light": "0-4",
|
||||
"rouseChance": 0.0042
|
||||
},
|
||||
"combat": {
|
||||
"willDefendOwner": true
|
||||
},
|
||||
"fireImmune": true
|
||||
}
|
||||
},
|
||||
"drops": {
|
||||
"amount": 2,
|
||||
|
||||
@@ -57,15 +57,33 @@
|
||||
{
|
||||
"muffleEnabled": true,
|
||||
"pitchExpr": "math.max(1.0 ,0.2 + math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2))",
|
||||
"playForNonPassengers": true,
|
||||
"soundLocation": "cobblemon:ride.loop.wind",
|
||||
"playForNonPassengers": false,
|
||||
"playForPassengers": true,
|
||||
"soundLocation": "cobblemon:ride.loop.wind.stereo",
|
||||
"volumeExpr": "math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2)"
|
||||
},
|
||||
{
|
||||
"muffleEnabled": true,
|
||||
"pitchExpr": "math.pow(math.min(math.max(0.5,(q.ride_velocity()*0.5 / 1.5) + 0.5), 1.0),2)",
|
||||
"pitchExpr": "math.max(1.0 ,0.2 + math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2))",
|
||||
"playForNonPassengers": true,
|
||||
"soundLocation": "cobblemon:ride.loop.saucer",
|
||||
"playForPassengers": false,
|
||||
"soundLocation": "cobblemon:ride.loop.wind.mono",
|
||||
"volumeExpr": "math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2)"
|
||||
},
|
||||
{
|
||||
"muffleEnabled": true,
|
||||
"pitchExpr": "math.max(1.0 ,0.2 + math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2))",
|
||||
"playForNonPassengers": false,
|
||||
"playForPassengers": true,
|
||||
"soundLocation": "cobblemon:ride.loop.saucer.stereo",
|
||||
"volumeExpr": "math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2)"
|
||||
},
|
||||
{
|
||||
"muffleEnabled": true,
|
||||
"pitchExpr": "math.max(1.0 ,0.2 + math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2))",
|
||||
"playForNonPassengers": true,
|
||||
"playForPassengers": false,
|
||||
"soundLocation": "cobblemon:ride.loop.saucer.mono",
|
||||
"volumeExpr": "math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2)"
|
||||
}
|
||||
],
|
||||
@@ -240,6 +258,11 @@
|
||||
]
|
||||
},
|
||||
"behaviour": {
|
||||
"combat": {
|
||||
"willDefendOwner": true,
|
||||
"willDefendSelf": true,
|
||||
"willFlee": false
|
||||
},
|
||||
"herd": {
|
||||
"maxSize": "3"
|
||||
},
|
||||
@@ -256,18 +279,13 @@
|
||||
},
|
||||
"resting": {
|
||||
"canSleep": true,
|
||||
"drowsyChance": 0.0014,
|
||||
"light": "0-14",
|
||||
"rouseChance": 0.0042,
|
||||
"sleepChance": "0.0023",
|
||||
"times": [
|
||||
"any"
|
||||
],
|
||||
"drowsyChance": 0.0014,
|
||||
"rouseChance": 0.0042
|
||||
},
|
||||
"combat": {
|
||||
"willDefendSelf": true,
|
||||
"willDefendOwner": true,
|
||||
"willFlee": false
|
||||
]
|
||||
}
|
||||
},
|
||||
"drops": {
|
||||
|
||||
@@ -54,11 +54,20 @@
|
||||
"AIR": {
|
||||
"key": "cobblemon:air/hover",
|
||||
"rideSounds": [
|
||||
{
|
||||
"muffleEnabled": true,
|
||||
"pitchExpr": "math.max(1.0 ,0.2 + math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2))",
|
||||
"playForNonPassengers": false,
|
||||
"playForPassengers": true,
|
||||
"soundLocation": "cobblemon:ride.loop.wind.stereo",
|
||||
"volumeExpr": "math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2)"
|
||||
},
|
||||
{
|
||||
"muffleEnabled": true,
|
||||
"pitchExpr": "math.max(1.0 ,0.2 + math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2))",
|
||||
"playForNonPassengers": true,
|
||||
"soundLocation": "cobblemon:ride.loop.wind",
|
||||
"playForPassengers": false,
|
||||
"soundLocation": "cobblemon:ride.loop.wind.mono",
|
||||
"volumeExpr": "math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2)"
|
||||
}
|
||||
],
|
||||
@@ -81,7 +90,7 @@
|
||||
"poseOffsets": [
|
||||
{
|
||||
"offset": {
|
||||
"x": 2.9055437e-18,
|
||||
"x": 2.9055437E-18,
|
||||
"y": -3.171875,
|
||||
"z": 0.53125
|
||||
},
|
||||
@@ -101,7 +110,7 @@
|
||||
},
|
||||
{
|
||||
"offset": {
|
||||
"x": 2.9055437e-18,
|
||||
"x": 2.9055437E-18,
|
||||
"y": -3.171875,
|
||||
"z": 0.53125
|
||||
},
|
||||
@@ -121,7 +130,7 @@
|
||||
},
|
||||
{
|
||||
"offset": {
|
||||
"x": 2.9055437e-18,
|
||||
"x": 2.9055437E-18,
|
||||
"y": -3.171875,
|
||||
"z": 0.53125
|
||||
},
|
||||
@@ -141,7 +150,7 @@
|
||||
},
|
||||
{
|
||||
"offset": {
|
||||
"x": 2.9055437e-18,
|
||||
"x": 2.9055437E-18,
|
||||
"y": -3.171875,
|
||||
"z": 0.53125
|
||||
},
|
||||
@@ -154,6 +163,9 @@
|
||||
]
|
||||
},
|
||||
"behaviour": {
|
||||
"combat": {
|
||||
"willDefendOwner": true
|
||||
},
|
||||
"herd": {
|
||||
"maxSize": "7",
|
||||
"toleratedLeaders": [
|
||||
@@ -176,15 +188,12 @@
|
||||
},
|
||||
"resting": {
|
||||
"canSleep": true,
|
||||
"drowsyChance": 0.0033,
|
||||
"light": "0-4",
|
||||
"rouseChance": 0.0042,
|
||||
"times": [
|
||||
"day"
|
||||
],
|
||||
"drowsyChance": 0.0033,
|
||||
"rouseChance": 0.0042
|
||||
},
|
||||
"combat": {
|
||||
"willDefendOwner": true
|
||||
]
|
||||
}
|
||||
},
|
||||
"drops": {
|
||||
|
||||
@@ -52,11 +52,20 @@
|
||||
"AIR": {
|
||||
"key": "cobblemon:air/hover",
|
||||
"rideSounds": [
|
||||
{
|
||||
"muffleEnabled": true,
|
||||
"pitchExpr": "math.max(1.0 ,0.2 + math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2))",
|
||||
"playForNonPassengers": false,
|
||||
"playForPassengers": true,
|
||||
"soundLocation": "cobblemon:ride.loop.wind.stereo",
|
||||
"volumeExpr": "math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2)"
|
||||
},
|
||||
{
|
||||
"muffleEnabled": true,
|
||||
"pitchExpr": "math.max(1.0 ,0.2 + math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2))",
|
||||
"playForNonPassengers": true,
|
||||
"soundLocation": "cobblemon:ride.loop.wind",
|
||||
"playForPassengers": false,
|
||||
"soundLocation": "cobblemon:ride.loop.wind.mono",
|
||||
"volumeExpr": "math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2)"
|
||||
}
|
||||
],
|
||||
@@ -152,6 +161,11 @@
|
||||
]
|
||||
},
|
||||
"behaviour": {
|
||||
"combat": {
|
||||
"willDefendOwner": true,
|
||||
"willDefendSelf": true,
|
||||
"willFlee": false
|
||||
},
|
||||
"herd": {
|
||||
"maxSize": "4"
|
||||
},
|
||||
@@ -168,17 +182,12 @@
|
||||
},
|
||||
"resting": {
|
||||
"canSleep": true,
|
||||
"drowsyChance": 0.0033,
|
||||
"light": "0-4",
|
||||
"rouseChance": 0.0042,
|
||||
"times": [
|
||||
"day"
|
||||
],
|
||||
"drowsyChance": 0.0033,
|
||||
"rouseChance": 0.0042
|
||||
},
|
||||
"combat": {
|
||||
"willDefendSelf": true,
|
||||
"willDefendOwner": true,
|
||||
"willFlee": false
|
||||
]
|
||||
}
|
||||
},
|
||||
"drops": {
|
||||
|
||||
@@ -56,11 +56,20 @@
|
||||
"speed": "Math.clamp(q.entity.velocity.horizontal_magnitude + 0.33, 0, 1)",
|
||||
"key": "cobblemon:air/jet",
|
||||
"rideSounds": [
|
||||
{
|
||||
"muffleEnabled": true,
|
||||
"pitchExpr": "math.max(1.0 ,0.2 + math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2))",
|
||||
"playForNonPassengers": false,
|
||||
"playForPassengers": true,
|
||||
"soundLocation": "cobblemon:ride.loop.wind.stereo",
|
||||
"volumeExpr": "math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2)"
|
||||
},
|
||||
{
|
||||
"muffleEnabled": true,
|
||||
"pitchExpr": "math.max(1.0 ,0.2 + math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2))",
|
||||
"playForNonPassengers": true,
|
||||
"soundLocation": "cobblemon:ride.loop.wind",
|
||||
"playForPassengers": false,
|
||||
"soundLocation": "cobblemon:ride.loop.wind.mono",
|
||||
"volumeExpr": "math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2)"
|
||||
}
|
||||
],
|
||||
@@ -98,13 +107,21 @@
|
||||
},
|
||||
"LIQUID": {
|
||||
"key": "cobblemon:liquid/boat",
|
||||
"surfaceLevelOffset": -1.7,
|
||||
"rideSounds": [
|
||||
{
|
||||
"muffleEnabled": true,
|
||||
"pitchExpr": "math.max(1.0 ,0.2 + math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2))",
|
||||
"playForNonPassengers": false,
|
||||
"playForPassengers": true,
|
||||
"soundLocation": "cobblemon:ride.loop.water_sufrace.stereo",
|
||||
"volumeExpr": "math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2)"
|
||||
},
|
||||
{
|
||||
"muffleEnabled": true,
|
||||
"pitchExpr": "math.max(1.0 ,0.2 + math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2))",
|
||||
"playForNonPassengers": true,
|
||||
"soundLocation": "cobblemon:ride.loop.water_surface",
|
||||
"playForPassengers": false,
|
||||
"soundLocation": "cobblemon:ride.loop.water_surface.mono",
|
||||
"volumeExpr": "math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2)"
|
||||
}
|
||||
],
|
||||
@@ -114,7 +131,8 @@
|
||||
"SKILL": "10-25",
|
||||
"SPEED": "35-60",
|
||||
"STAMINA": "5-10"
|
||||
}
|
||||
},
|
||||
"surfaceLevelOffset": -1.7
|
||||
}
|
||||
},
|
||||
"seats": [
|
||||
@@ -167,7 +185,7 @@
|
||||
},
|
||||
{
|
||||
"offset": {
|
||||
"x": 0.0006860052,
|
||||
"x": 6.860052E-4,
|
||||
"y": -2.1426969,
|
||||
"z": -0.23987202
|
||||
},
|
||||
@@ -187,7 +205,7 @@
|
||||
},
|
||||
{
|
||||
"offset": {
|
||||
"x": 0.0008643751,
|
||||
"x": 8.643751E-4,
|
||||
"y": -2.4092257,
|
||||
"z": -0.33146888
|
||||
},
|
||||
@@ -200,6 +218,11 @@
|
||||
]
|
||||
},
|
||||
"behaviour": {
|
||||
"combat": {
|
||||
"willDefendOwner": true,
|
||||
"willDefendSelf": true,
|
||||
"willFlee": false
|
||||
},
|
||||
"herd": {
|
||||
"maxSize": "7"
|
||||
},
|
||||
@@ -208,8 +231,8 @@
|
||||
"canFly": true
|
||||
},
|
||||
"swim": {
|
||||
"canSwim": true,
|
||||
"avoidsWater": true,
|
||||
"canSwim": true,
|
||||
"canWalkOnWater": true
|
||||
},
|
||||
"walk": {
|
||||
@@ -218,14 +241,9 @@
|
||||
},
|
||||
"resting": {
|
||||
"canSleep": true,
|
||||
"light": "0-4",
|
||||
"drowsyChance": 0.0333,
|
||||
"light": "0-4",
|
||||
"rouseChance": 0.0042
|
||||
},
|
||||
"combat": {
|
||||
"willDefendSelf": true,
|
||||
"willDefendOwner": true,
|
||||
"willFlee": false
|
||||
}
|
||||
},
|
||||
"drops": {
|
||||
@@ -415,22 +433,22 @@
|
||||
},
|
||||
"baseExperienceYield": 350,
|
||||
"behaviour": {
|
||||
"combat": {
|
||||
"willDefendOwner": true,
|
||||
"willDefendSelf": true,
|
||||
"willFlee": false
|
||||
},
|
||||
"herd": {
|
||||
"maxSize": "8"
|
||||
},
|
||||
"moving": {
|
||||
"swim": {
|
||||
"avoidsWater": true
|
||||
},
|
||||
"fly": {
|
||||
"canFly": true
|
||||
},
|
||||
"swim": {
|
||||
"avoidsWater": true
|
||||
}
|
||||
},
|
||||
"combat": {
|
||||
"willDefendSelf": true,
|
||||
"willDefendOwner": true,
|
||||
"willFlee": false
|
||||
},
|
||||
"resting": {
|
||||
"drowsyChance": 0.0333,
|
||||
"rouseChance": 0.0042
|
||||
|
||||
@@ -149,6 +149,9 @@
|
||||
]
|
||||
},
|
||||
"behaviour": {
|
||||
"combat": {
|
||||
"willDefendOwner": true
|
||||
},
|
||||
"moving": {
|
||||
"swim": {
|
||||
"canBreatheUnderwater": true,
|
||||
@@ -160,9 +163,6 @@
|
||||
"walkSpeed": "0.2"
|
||||
}
|
||||
},
|
||||
"combat": {
|
||||
"willDefendOwner": true
|
||||
},
|
||||
"resting": {
|
||||
"drowsyChance": 0.0333,
|
||||
"rouseChance": 0.0042
|
||||
@@ -327,18 +327,18 @@
|
||||
"east-sea"
|
||||
],
|
||||
"behaviour": {
|
||||
"moving": {
|
||||
"walk": {
|
||||
"avoidsLand": true
|
||||
},
|
||||
"swim": {
|
||||
"canSwimInWater": false,
|
||||
"canBreatheUnderwater": true
|
||||
}
|
||||
},
|
||||
"combat": {
|
||||
"willDefendOwner": true
|
||||
},
|
||||
"moving": {
|
||||
"swim": {
|
||||
"canBreatheUnderwater": true,
|
||||
"canSwimInWater": false
|
||||
},
|
||||
"walk": {
|
||||
"avoidsLand": true
|
||||
}
|
||||
},
|
||||
"resting": {
|
||||
"drowsyChance": 0.0333,
|
||||
"rouseChance": 0.0042
|
||||
|
||||
@@ -224,24 +224,24 @@
|
||||
]
|
||||
},
|
||||
"behaviour": {
|
||||
"combat": {
|
||||
"willDefendOwner": true,
|
||||
"willDefendSelf": true,
|
||||
"willFlee": false
|
||||
},
|
||||
"moving": {
|
||||
"walk": {
|
||||
"walkSpeed": 0.2
|
||||
},
|
||||
"swim": {
|
||||
"avoidsWater": true
|
||||
},
|
||||
"walk": {
|
||||
"walkSpeed": 0.2
|
||||
}
|
||||
},
|
||||
"resting": {
|
||||
"canSleep": true,
|
||||
"light": "0-4",
|
||||
"drowsyChance": 0.0333,
|
||||
"light": "0-4",
|
||||
"rouseChance": 0.0042
|
||||
},
|
||||
"combat": {
|
||||
"willDefendSelf": true,
|
||||
"willDefendOwner": true,
|
||||
"willFlee": false
|
||||
}
|
||||
},
|
||||
"drops": {
|
||||
|
||||
@@ -57,15 +57,33 @@
|
||||
{
|
||||
"muffleEnabled": true,
|
||||
"pitchExpr": "math.max(1.0 ,0.2 + math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2))",
|
||||
"playForNonPassengers": true,
|
||||
"soundLocation": "cobblemon:ride.loop.wind",
|
||||
"playForNonPassengers": false,
|
||||
"playForPassengers": true,
|
||||
"soundLocation": "cobblemon:ride.loop.wind.stereo",
|
||||
"volumeExpr": "math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2)"
|
||||
},
|
||||
{
|
||||
"muffleEnabled": true,
|
||||
"pitchExpr": "math.pow(math.min(math.max(0.5,(q.ride_velocity()*0.5 / 1.5) + 0.5), 1.0),2)",
|
||||
"pitchExpr": "math.max(1.0 ,0.2 + math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2))",
|
||||
"playForNonPassengers": true,
|
||||
"soundLocation": "cobblemon:ride.loop.saucer",
|
||||
"playForPassengers": false,
|
||||
"soundLocation": "cobblemon:ride.loop.wind.mono",
|
||||
"volumeExpr": "math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2)"
|
||||
},
|
||||
{
|
||||
"muffleEnabled": true,
|
||||
"pitchExpr": "math.max(1.0 ,0.2 + math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2))",
|
||||
"playForNonPassengers": false,
|
||||
"playForPassengers": true,
|
||||
"soundLocation": "cobblemon:ride.loop.saucer.stereo",
|
||||
"volumeExpr": "math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2)"
|
||||
},
|
||||
{
|
||||
"muffleEnabled": true,
|
||||
"pitchExpr": "math.max(1.0 ,0.2 + math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2))",
|
||||
"playForNonPassengers": true,
|
||||
"playForPassengers": false,
|
||||
"soundLocation": "cobblemon:ride.loop.saucer.mono",
|
||||
"volumeExpr": "math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2)"
|
||||
}
|
||||
],
|
||||
@@ -161,6 +179,11 @@
|
||||
]
|
||||
},
|
||||
"behaviour": {
|
||||
"combat": {
|
||||
"willDefendOwner": true,
|
||||
"willDefendSelf": true,
|
||||
"willFlee": false
|
||||
},
|
||||
"herd": {
|
||||
"maxSize": "9"
|
||||
},
|
||||
@@ -177,17 +200,12 @@
|
||||
},
|
||||
"resting": {
|
||||
"canSleep": true,
|
||||
"drowsyChance": 0.0014,
|
||||
"light": "0-4",
|
||||
"rouseChance": 0.0042,
|
||||
"times": [
|
||||
"any"
|
||||
],
|
||||
"drowsyChance": 0.0014,
|
||||
"rouseChance": 0.0042
|
||||
},
|
||||
"combat": {
|
||||
"willDefendSelf": true,
|
||||
"willDefendOwner": true,
|
||||
"willFlee": false
|
||||
]
|
||||
}
|
||||
},
|
||||
"drops": {
|
||||
|
||||
@@ -73,7 +73,7 @@
|
||||
"poseOffsets": [
|
||||
{
|
||||
"offset": {
|
||||
"x": 2.4365345e-18,
|
||||
"x": 2.4365345E-18,
|
||||
"y": -3.493299,
|
||||
"z": -1.1497737
|
||||
},
|
||||
@@ -93,7 +93,7 @@
|
||||
},
|
||||
{
|
||||
"offset": {
|
||||
"x": 2.4365345e-18,
|
||||
"x": 2.4365345E-18,
|
||||
"y": -3.493299,
|
||||
"z": -1.1497737
|
||||
},
|
||||
@@ -103,7 +103,7 @@
|
||||
},
|
||||
{
|
||||
"offset": {
|
||||
"x": 2.4365345e-18,
|
||||
"x": 2.4365345E-18,
|
||||
"y": -3.493299,
|
||||
"z": -1.1497737
|
||||
},
|
||||
@@ -113,7 +113,7 @@
|
||||
},
|
||||
{
|
||||
"offset": {
|
||||
"x": 2.4365345e-18,
|
||||
"x": 2.4365345E-18,
|
||||
"y": -3.493299,
|
||||
"z": -1.1497737
|
||||
},
|
||||
@@ -133,7 +133,7 @@
|
||||
},
|
||||
{
|
||||
"offset": {
|
||||
"x": 2.4365345e-18,
|
||||
"x": 2.4365345E-18,
|
||||
"y": -3.493299,
|
||||
"z": -1.1497737
|
||||
},
|
||||
@@ -304,6 +304,11 @@
|
||||
]
|
||||
},
|
||||
"behaviour": {
|
||||
"combat": {
|
||||
"willDefendOwner": true,
|
||||
"willDefendSelf": true,
|
||||
"willFlee": false
|
||||
},
|
||||
"herd": {
|
||||
"maxSize": "8",
|
||||
"toleratedLeaders": [
|
||||
@@ -314,23 +319,18 @@
|
||||
]
|
||||
},
|
||||
"moving": {
|
||||
"walk": {
|
||||
"walkSpeed": 0.2
|
||||
},
|
||||
"swim": {
|
||||
"avoidsWater": true
|
||||
},
|
||||
"walk": {
|
||||
"walkSpeed": 0.2
|
||||
}
|
||||
},
|
||||
"resting": {
|
||||
"canSleep": true,
|
||||
"light": "0-4",
|
||||
"drowsyChance": 0.0333,
|
||||
"light": "0-4",
|
||||
"rouseChance": 0.0042
|
||||
},
|
||||
"combat": {
|
||||
"willDefendSelf": true,
|
||||
"willDefendOwner": true,
|
||||
"willFlee": false
|
||||
}
|
||||
},
|
||||
"drops": {
|
||||
|
||||
@@ -74,7 +74,7 @@
|
||||
"poseOffsets": [
|
||||
{
|
||||
"offset": {
|
||||
"x": 0.00012022187,
|
||||
"x": 1.2022187E-4,
|
||||
"y": -3.0589306,
|
||||
"z": -0.023141712
|
||||
},
|
||||
@@ -147,6 +147,12 @@
|
||||
]
|
||||
},
|
||||
"behaviour": {
|
||||
"combat": {
|
||||
"willDefendOwner": true,
|
||||
"willDefendSelf": true,
|
||||
"willFlee": false
|
||||
},
|
||||
"fireImmune": true,
|
||||
"herd": {
|
||||
"maxSize": "2"
|
||||
},
|
||||
@@ -159,16 +165,10 @@
|
||||
"walkSpeed": 0.2
|
||||
}
|
||||
},
|
||||
"combat": {
|
||||
"willDefendSelf": true,
|
||||
"willDefendOwner": true,
|
||||
"willFlee": false
|
||||
},
|
||||
"resting": {
|
||||
"drowsyChance": 0.0333,
|
||||
"rouseChance": 0.0042
|
||||
},
|
||||
"fireImmune": true
|
||||
}
|
||||
},
|
||||
"drops": {
|
||||
"amount": 2,
|
||||
|
||||
@@ -56,15 +56,33 @@
|
||||
{
|
||||
"muffleEnabled": true,
|
||||
"pitchExpr": "math.max(1.0 ,0.2 + math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2))",
|
||||
"playForNonPassengers": true,
|
||||
"soundLocation": "cobblemon:ride.loop.wind",
|
||||
"playForNonPassengers": false,
|
||||
"playForPassengers": true,
|
||||
"soundLocation": "cobblemon:ride.loop.wind.stereo",
|
||||
"volumeExpr": "math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2)"
|
||||
},
|
||||
{
|
||||
"muffleEnabled": true,
|
||||
"pitchExpr": "math.max(1.0 ,0.2 + math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2))",
|
||||
"playForNonPassengers": true,
|
||||
"soundLocation": "cobblemon:ride.loop.plumage",
|
||||
"playForPassengers": false,
|
||||
"soundLocation": "cobblemon:ride.loop.wind.mono",
|
||||
"volumeExpr": "math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2)"
|
||||
},
|
||||
{
|
||||
"muffleEnabled": true,
|
||||
"pitchExpr": "math.max(1.0 ,0.2 + math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2))",
|
||||
"playForNonPassengers": false,
|
||||
"playForPassengers": true,
|
||||
"soundLocation": "cobblemon:ride.loop.plumage.stereo",
|
||||
"volumeExpr": "math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2)"
|
||||
},
|
||||
{
|
||||
"muffleEnabled": true,
|
||||
"pitchExpr": "math.max(1.0 ,0.2 + math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2))",
|
||||
"playForNonPassengers": true,
|
||||
"playForPassengers": false,
|
||||
"soundLocation": "cobblemon:ride.loop.plumage.mono",
|
||||
"volumeExpr": "math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2)"
|
||||
}
|
||||
],
|
||||
@@ -100,7 +118,7 @@
|
||||
"poseOffsets": [
|
||||
{
|
||||
"offset": {
|
||||
"x": 0.0009571392,
|
||||
"x": 9.571392E-4,
|
||||
"y": -1.234365,
|
||||
"z": 0.35967734
|
||||
},
|
||||
@@ -140,7 +158,7 @@
|
||||
},
|
||||
{
|
||||
"offset": {
|
||||
"x": 0.0009571392,
|
||||
"x": 9.571392E-4,
|
||||
"y": -1.234365,
|
||||
"z": 0.35967734
|
||||
},
|
||||
@@ -160,7 +178,7 @@
|
||||
},
|
||||
{
|
||||
"offset": {
|
||||
"x": 0.0009571392,
|
||||
"x": 9.571392E-4,
|
||||
"y": -1.234365,
|
||||
"z": 0.35967734
|
||||
},
|
||||
@@ -173,25 +191,25 @@
|
||||
]
|
||||
},
|
||||
"behaviour": {
|
||||
"combat": {
|
||||
"willDefendOwner": true,
|
||||
"willDefendSelf": true,
|
||||
"willFlee": false
|
||||
},
|
||||
"herd": {
|
||||
"maxSize": "9"
|
||||
},
|
||||
"moving": {
|
||||
"walk": {
|
||||
"walkSpeed": 0.2
|
||||
},
|
||||
"fly": {
|
||||
"canFly": true
|
||||
},
|
||||
"swim": {
|
||||
"avoidsWater": true
|
||||
},
|
||||
"walk": {
|
||||
"walkSpeed": 0.2
|
||||
}
|
||||
},
|
||||
"combat": {
|
||||
"willDefendSelf": true,
|
||||
"willDefendOwner": true,
|
||||
"willFlee": false
|
||||
},
|
||||
"resting": {
|
||||
"drowsyChance": 0.0333,
|
||||
"rouseChance": 0.0042
|
||||
|
||||
@@ -55,11 +55,20 @@
|
||||
"AIR": {
|
||||
"key": "cobblemon:air/jet",
|
||||
"rideSounds": [
|
||||
{
|
||||
"muffleEnabled": true,
|
||||
"pitchExpr": "math.max(1.0 ,0.2 + math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2))",
|
||||
"playForNonPassengers": false,
|
||||
"playForPassengers": true,
|
||||
"soundLocation": "cobblemon:ride.loop.wind.stereo",
|
||||
"volumeExpr": "math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2)"
|
||||
},
|
||||
{
|
||||
"muffleEnabled": true,
|
||||
"pitchExpr": "math.max(1.0 ,0.2 + math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2))",
|
||||
"playForNonPassengers": true,
|
||||
"soundLocation": "cobblemon:ride.loop.wind",
|
||||
"playForPassengers": false,
|
||||
"soundLocation": "cobblemon:ride.loop.wind.mono",
|
||||
"volumeExpr": "math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2)"
|
||||
}
|
||||
],
|
||||
@@ -168,6 +177,9 @@
|
||||
]
|
||||
},
|
||||
"behaviour": {
|
||||
"combat": {
|
||||
"willDefendOwner": true
|
||||
},
|
||||
"herd": {
|
||||
"maxSize": "8",
|
||||
"toleratedLeaders": [
|
||||
@@ -181,21 +193,18 @@
|
||||
"fly": {
|
||||
"canFly": true
|
||||
},
|
||||
"walk": {
|
||||
"walkSpeed": 0.14
|
||||
},
|
||||
"swim": {
|
||||
"avoidsWater": true
|
||||
},
|
||||
"walk": {
|
||||
"walkSpeed": 0.14
|
||||
}
|
||||
},
|
||||
"resting": {
|
||||
"canSleep": true,
|
||||
"light": "0-4",
|
||||
"drowsyChance": 0.0333,
|
||||
"light": "0-4",
|
||||
"rouseChance": 0.0042
|
||||
},
|
||||
"combat": {
|
||||
"willDefendOwner": true
|
||||
}
|
||||
},
|
||||
"drops": {
|
||||
|
||||
@@ -145,6 +145,11 @@
|
||||
]
|
||||
},
|
||||
"behaviour": {
|
||||
"combat": {
|
||||
"willDefendOwner": true,
|
||||
"willDefendSelf": true,
|
||||
"willFlee": false
|
||||
},
|
||||
"herd": {
|
||||
"maxSize": "9",
|
||||
"toleratedLeaders": [
|
||||
@@ -158,21 +163,16 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
"resting": {
|
||||
"canSleep": true,
|
||||
"light": "0-4",
|
||||
"drowsyChance": 0.0333,
|
||||
"rouseChance": 0.0042
|
||||
},
|
||||
"moving": {
|
||||
"swim": {
|
||||
"avoidsWater": true
|
||||
}
|
||||
},
|
||||
"combat": {
|
||||
"willDefendSelf": true,
|
||||
"willDefendOwner": true,
|
||||
"willFlee": false
|
||||
"resting": {
|
||||
"canSleep": true,
|
||||
"drowsyChance": 0.0333,
|
||||
"light": "0-4",
|
||||
"rouseChance": 0.0042
|
||||
}
|
||||
},
|
||||
"drops": {
|
||||
|
||||
@@ -168,6 +168,11 @@
|
||||
]
|
||||
},
|
||||
"behaviour": {
|
||||
"combat": {
|
||||
"willDefendOwner": true,
|
||||
"willDefendSelf": true,
|
||||
"willFlee": false
|
||||
},
|
||||
"herd": {
|
||||
"maxSize": "9",
|
||||
"toleratedLeaders": [
|
||||
@@ -181,23 +186,18 @@
|
||||
"fly": {
|
||||
"canFly": true
|
||||
},
|
||||
"walk": {
|
||||
"walkSpeed": 0.2
|
||||
},
|
||||
"swim": {
|
||||
"avoidsWater": true
|
||||
},
|
||||
"walk": {
|
||||
"walkSpeed": 0.2
|
||||
}
|
||||
},
|
||||
"resting": {
|
||||
"canSleep": true,
|
||||
"light": "0-4",
|
||||
"drowsyChance": 0.0333,
|
||||
"light": "0-4",
|
||||
"rouseChance": 0.0042
|
||||
},
|
||||
"combat": {
|
||||
"willDefendSelf": true,
|
||||
"willDefendOwner": true,
|
||||
"willFlee": false
|
||||
}
|
||||
},
|
||||
"drops": {
|
||||
@@ -376,15 +376,33 @@
|
||||
{
|
||||
"muffleEnabled": true,
|
||||
"pitchExpr": "math.max(1.0 ,0.2 + math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2))",
|
||||
"playForNonPassengers": true,
|
||||
"soundLocation": "cobblemon:ride.loop.wind",
|
||||
"playForNonPassengers": false,
|
||||
"playForPassengers": true,
|
||||
"soundLocation": "cobblemon:ride.loop.wind.stereo",
|
||||
"volumeExpr": "math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2)"
|
||||
},
|
||||
{
|
||||
"muffleEnabled": true,
|
||||
"pitchExpr": "math.max(1.0 ,0.2 + math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2))",
|
||||
"playForNonPassengers": true,
|
||||
"soundLocation": "cobblemon:ride.loop.plumage",
|
||||
"playForPassengers": false,
|
||||
"soundLocation": "cobblemon:ride.loop.wind.mono",
|
||||
"volumeExpr": "math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2)"
|
||||
},
|
||||
{
|
||||
"muffleEnabled": true,
|
||||
"pitchExpr": "math.max(1.0 ,0.2 + math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2))",
|
||||
"playForNonPassengers": false,
|
||||
"playForPassengers": true,
|
||||
"soundLocation": "cobblemon:ride.loop.plumage.stereo",
|
||||
"volumeExpr": "math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2)"
|
||||
},
|
||||
{
|
||||
"muffleEnabled": true,
|
||||
"pitchExpr": "math.max(1.0 ,0.2 + math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2))",
|
||||
"playForNonPassengers": true,
|
||||
"playForPassengers": false,
|
||||
"soundLocation": "cobblemon:ride.loop.plumage.mono",
|
||||
"volumeExpr": "math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2)"
|
||||
}
|
||||
],
|
||||
@@ -393,7 +411,7 @@
|
||||
"JUMP": "40-60",
|
||||
"SKILL": "30-50",
|
||||
"SPEED": "40-65",
|
||||
"STAMINA": "60-00"
|
||||
"STAMINA": "60-90"
|
||||
}
|
||||
},
|
||||
"LAND": {
|
||||
@@ -493,6 +511,11 @@
|
||||
]
|
||||
},
|
||||
"behaviour": {
|
||||
"combat": {
|
||||
"willDefendOwner": true,
|
||||
"willDefendSelf": true,
|
||||
"willFlee": false
|
||||
},
|
||||
"herd": {
|
||||
"maxSize": "9",
|
||||
"toleratedLeaders": [
|
||||
@@ -503,18 +526,13 @@
|
||||
]
|
||||
},
|
||||
"moving": {
|
||||
"swim": {
|
||||
"avoidsWater": true
|
||||
},
|
||||
"fly": {
|
||||
"canFly": true
|
||||
},
|
||||
"swim": {
|
||||
"avoidsWater": true
|
||||
}
|
||||
},
|
||||
"combat": {
|
||||
"willDefendSelf": true,
|
||||
"willDefendOwner": true,
|
||||
"willFlee": false
|
||||
},
|
||||
"resting": {
|
||||
"drowsyChance": 0.0333,
|
||||
"rouseChance": 0.0042
|
||||
|
||||
@@ -384,25 +384,25 @@
|
||||
]
|
||||
},
|
||||
"behaviour": {
|
||||
"combat": {
|
||||
"willDefendOwner": true,
|
||||
"willDefendSelf": true,
|
||||
"willFlee": false
|
||||
},
|
||||
"moving": {
|
||||
"walk": {
|
||||
"walkSpeed": 0.15
|
||||
},
|
||||
"swim": {
|
||||
"avoidsWater": true,
|
||||
"canSwimInWater": false
|
||||
},
|
||||
"walk": {
|
||||
"walkSpeed": 0.15
|
||||
}
|
||||
},
|
||||
"resting": {
|
||||
"canSleep": true,
|
||||
"light": "0-4",
|
||||
"drowsyChance": 0.0333,
|
||||
"light": "0-4",
|
||||
"rouseChance": 0.0042
|
||||
},
|
||||
"combat": {
|
||||
"willDefendSelf": true,
|
||||
"willDefendOwner": true,
|
||||
"willFlee": false
|
||||
}
|
||||
},
|
||||
"drops": {
|
||||
|
||||
@@ -147,6 +147,12 @@
|
||||
]
|
||||
},
|
||||
"behaviour": {
|
||||
"combat": {
|
||||
"willDefendOwner": true,
|
||||
"willDefendSelf": true,
|
||||
"willFlee": false
|
||||
},
|
||||
"fireImmune": true,
|
||||
"herd": {
|
||||
"maxSize": "5",
|
||||
"toleratedLeaders": [
|
||||
@@ -157,26 +163,20 @@
|
||||
]
|
||||
},
|
||||
"moving": {
|
||||
"walk": {
|
||||
"walkSpeed": 0.3
|
||||
},
|
||||
"swim": {
|
||||
"avoidsWater": true,
|
||||
"canSwimInLava": true
|
||||
},
|
||||
"walk": {
|
||||
"walkSpeed": 0.3
|
||||
}
|
||||
},
|
||||
"resting": {
|
||||
"canSleep": true,
|
||||
"light": "0-4",
|
||||
"drowsyChance": 0.0333,
|
||||
"light": "0-4",
|
||||
"rouseChance": 0.0042
|
||||
},
|
||||
"combat": {
|
||||
"willDefendSelf": true,
|
||||
"willDefendOwner": true,
|
||||
"willFlee": false
|
||||
},
|
||||
"fireImmune": true
|
||||
}
|
||||
},
|
||||
"drops": {
|
||||
"amount": 1,
|
||||
@@ -368,6 +368,11 @@
|
||||
"width": 1.3
|
||||
},
|
||||
"behaviour": {
|
||||
"combat": {
|
||||
"willDefendOwner": true,
|
||||
"willFlee": false
|
||||
},
|
||||
"fireImmune": true,
|
||||
"herd": {
|
||||
"maxSize": "5",
|
||||
"toleratedLeaders": [
|
||||
@@ -377,26 +382,21 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
"resting": {
|
||||
"depth": "comatose",
|
||||
"drowsyChance": 0.0333,
|
||||
"rouseChance": 0.0042
|
||||
},
|
||||
"moving": {
|
||||
"walk": {
|
||||
"canWalk": false
|
||||
},
|
||||
"canLook": false,
|
||||
"swim": {
|
||||
"avoidsWater": true,
|
||||
"canSwimInWater": false
|
||||
},
|
||||
"canLook": false
|
||||
"walk": {
|
||||
"canWalk": false
|
||||
}
|
||||
},
|
||||
"combat": {
|
||||
"willDefendOwner": true,
|
||||
"willFlee": false
|
||||
},
|
||||
"fireImmune": true
|
||||
"resting": {
|
||||
"depth": "comatose",
|
||||
"drowsyChance": 0.0333,
|
||||
"rouseChance": 0.0042
|
||||
}
|
||||
},
|
||||
"moves": [
|
||||
"1:tackle",
|
||||
@@ -549,6 +549,11 @@
|
||||
"h:zenmode"
|
||||
],
|
||||
"behaviour": {
|
||||
"combat": {
|
||||
"willDefendOwner": true,
|
||||
"willDefendSelf": true,
|
||||
"willFlee": false
|
||||
},
|
||||
"herd": {
|
||||
"maxSize": "5",
|
||||
"toleratedLeaders": [
|
||||
@@ -563,11 +568,6 @@
|
||||
"avoidsWater": true
|
||||
}
|
||||
},
|
||||
"combat": {
|
||||
"willDefendSelf": true,
|
||||
"willDefendOwner": true,
|
||||
"willFlee": false
|
||||
},
|
||||
"resting": {
|
||||
"drowsyChance": 0.0333,
|
||||
"rouseChance": 0.0042
|
||||
@@ -745,6 +745,12 @@
|
||||
},
|
||||
"baseExperienceYield": 189,
|
||||
"behaviour": {
|
||||
"combat": {
|
||||
"willDefendOwner": true,
|
||||
"willDefendSelf": true,
|
||||
"willFlee": false
|
||||
},
|
||||
"fireImmune": true,
|
||||
"herd": {
|
||||
"maxSize": "5",
|
||||
"toleratedLeaders": [
|
||||
@@ -755,27 +761,21 @@
|
||||
]
|
||||
},
|
||||
"moving": {
|
||||
"fly": {
|
||||
"canFly": true
|
||||
},
|
||||
"swim": {
|
||||
"avoidsWater": true,
|
||||
"canSwimInLava": true
|
||||
},
|
||||
"walk": {
|
||||
"canWalk": false
|
||||
},
|
||||
"fly": {
|
||||
"canFly": true
|
||||
}
|
||||
},
|
||||
"combat": {
|
||||
"willDefendSelf": true,
|
||||
"willDefendOwner": true,
|
||||
"willFlee": false
|
||||
},
|
||||
"resting": {
|
||||
"drowsyChance": 0.0333,
|
||||
"rouseChance": 0.0042
|
||||
},
|
||||
"fireImmune": true
|
||||
}
|
||||
},
|
||||
"drops": {
|
||||
"amount": 2,
|
||||
|
||||
@@ -54,18 +54,36 @@
|
||||
"AIR": {
|
||||
"key": "cobblemon:air/rocket",
|
||||
"rideSounds": [
|
||||
{
|
||||
"muffleEnabled": true,
|
||||
"pitchExpr": "math.max(1.0 ,0.2 + math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2))",
|
||||
"playForNonPassengers": false,
|
||||
"playForPassengers": true,
|
||||
"soundLocation": "cobblemon:ride.loop.wind.stereo",
|
||||
"volumeExpr": "math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2)"
|
||||
},
|
||||
{
|
||||
"muffleEnabled": true,
|
||||
"pitchExpr": "math.max(1.0 ,0.2 + math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2))",
|
||||
"playForNonPassengers": true,
|
||||
"soundLocation": "cobblemon:ride.loop.wind",
|
||||
"playForPassengers": false,
|
||||
"soundLocation": "cobblemon:ride.loop.wind.mono",
|
||||
"volumeExpr": "math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2)"
|
||||
},
|
||||
{
|
||||
"muffleEnabled": true,
|
||||
"pitchExpr": "math.max(1.0 ,0.2 + math.pow(math.min(q.driver_input() / 1.5, 1.0),2))",
|
||||
"playForNonPassengers": false,
|
||||
"playForPassengers": true,
|
||||
"soundLocation": "cobblemon:ride.loop.rocket.stereo",
|
||||
"volumeExpr": "math.pow(math.min((q.driver_input() / 1.5) + (q.ride_velocity() / 1.5), 1.0),2)"
|
||||
},
|
||||
{
|
||||
"muffleEnabled": true,
|
||||
"pitchExpr": "math.max(1.0 ,0.2 + math.pow(math.min(q.driver_input() / 1.5, 1.0),2))",
|
||||
"playForNonPassengers": true,
|
||||
"soundLocation": "cobblemon:ride.loop.rocket",
|
||||
"playForPassengers": false,
|
||||
"soundLocation": "cobblemon:ride.loop.rocket.mono",
|
||||
"volumeExpr": "math.pow(math.min((q.driver_input() / 1.5) + (q.ride_velocity() / 1.5), 1.0),2)"
|
||||
}
|
||||
],
|
||||
@@ -331,34 +349,34 @@
|
||||
]
|
||||
},
|
||||
"behaviour": {
|
||||
"combat": {
|
||||
"willDefendOwner": true,
|
||||
"willDefendSelf": true,
|
||||
"willFlee": false
|
||||
},
|
||||
"herd": {
|
||||
"maxSize": "3"
|
||||
},
|
||||
"moving": {
|
||||
"fly": {
|
||||
"canFly": true
|
||||
},
|
||||
"swim": {
|
||||
"avoidsWater": true,
|
||||
"canSwimInWater": false
|
||||
},
|
||||
"walk": {
|
||||
"walkSpeed": 0.35
|
||||
},
|
||||
"fly": {
|
||||
"canFly": true
|
||||
}
|
||||
},
|
||||
"resting": {
|
||||
"canSleep": true,
|
||||
"drowsyChance": 0.0014,
|
||||
"light": "0-4",
|
||||
"rouseChance": 0.0042,
|
||||
"times": [
|
||||
"any"
|
||||
],
|
||||
"drowsyChance": 0.0014,
|
||||
"rouseChance": 0.0042
|
||||
},
|
||||
"combat": {
|
||||
"willDefendSelf": true,
|
||||
"willDefendOwner": true,
|
||||
"willFlee": false
|
||||
]
|
||||
}
|
||||
},
|
||||
"drops": {
|
||||
|
||||
@@ -57,15 +57,33 @@
|
||||
{
|
||||
"muffleEnabled": true,
|
||||
"pitchExpr": "math.max(1.0 ,0.2 + math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2))",
|
||||
"playForNonPassengers": true,
|
||||
"soundLocation": "cobblemon:ride.loop.wind",
|
||||
"playForNonPassengers": false,
|
||||
"playForPassengers": true,
|
||||
"soundLocation": "cobblemon:ride.loop.wind.stereo",
|
||||
"volumeExpr": "math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2)"
|
||||
},
|
||||
{
|
||||
"muffleEnabled": true,
|
||||
"pitchExpr": "math.max(1.0 ,0.2 + math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2))",
|
||||
"playForNonPassengers": true,
|
||||
"soundLocation": "cobblemon:ride.loop.leather",
|
||||
"playForPassengers": false,
|
||||
"soundLocation": "cobblemon:ride.loop.wind.mono",
|
||||
"volumeExpr": "math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2)"
|
||||
},
|
||||
{
|
||||
"muffleEnabled": true,
|
||||
"pitchExpr": "math.max(1.0 ,0.2 + math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2))",
|
||||
"playForNonPassengers": false,
|
||||
"playForPassengers": true,
|
||||
"soundLocation": "cobblemon:ride.loop.leather.stereo",
|
||||
"volumeExpr": "math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2)"
|
||||
},
|
||||
{
|
||||
"muffleEnabled": true,
|
||||
"pitchExpr": "math.max(1.0 ,0.2 + math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2))",
|
||||
"playForNonPassengers": true,
|
||||
"playForPassengers": false,
|
||||
"soundLocation": "cobblemon:ride.loop.leather.mono",
|
||||
"volumeExpr": "math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2)"
|
||||
}
|
||||
],
|
||||
@@ -101,7 +119,7 @@
|
||||
"poseOffsets": [
|
||||
{
|
||||
"offset": {
|
||||
"x": 8.215185e-05,
|
||||
"x": 8.215185E-5,
|
||||
"y": -2.4957511,
|
||||
"z": 0.10059106
|
||||
},
|
||||
@@ -121,7 +139,7 @@
|
||||
},
|
||||
{
|
||||
"offset": {
|
||||
"x": 8.215185e-05,
|
||||
"x": 8.215185E-5,
|
||||
"y": -2.4957511,
|
||||
"z": 0.10059106
|
||||
},
|
||||
@@ -253,6 +271,11 @@
|
||||
]
|
||||
},
|
||||
"behaviour": {
|
||||
"combat": {
|
||||
"willDefendOwner": true,
|
||||
"willDefendSelf": true,
|
||||
"willFlee": false
|
||||
},
|
||||
"herd": {
|
||||
"maxSize": "5"
|
||||
},
|
||||
@@ -266,17 +289,12 @@
|
||||
},
|
||||
"resting": {
|
||||
"canSleep": true,
|
||||
"drowsyChance": 0.0014,
|
||||
"light": "0-4",
|
||||
"rouseChance": 0.0042,
|
||||
"times": [
|
||||
"any"
|
||||
],
|
||||
"drowsyChance": 0.0014,
|
||||
"rouseChance": 0.0042
|
||||
},
|
||||
"combat": {
|
||||
"willDefendSelf": true,
|
||||
"willDefendOwner": true,
|
||||
"willFlee": false
|
||||
]
|
||||
}
|
||||
},
|
||||
"drops": {
|
||||
|
||||
@@ -53,11 +53,20 @@
|
||||
"AIR": {
|
||||
"key": "cobblemon:air/hover",
|
||||
"rideSounds": [
|
||||
{
|
||||
"muffleEnabled": true,
|
||||
"pitchExpr": "math.max(1.0 ,0.2 + math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2))",
|
||||
"playForNonPassengers": false,
|
||||
"playForPassengers": true,
|
||||
"soundLocation": "cobblemon:ride.loop.wind.stereo",
|
||||
"volumeExpr": "math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2)"
|
||||
},
|
||||
{
|
||||
"muffleEnabled": true,
|
||||
"pitchExpr": "math.max(1.0 ,0.2 + math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2))",
|
||||
"playForNonPassengers": true,
|
||||
"soundLocation": "cobblemon:ride.loop.wind",
|
||||
"playForPassengers": false,
|
||||
"soundLocation": "cobblemon:ride.loop.wind.mono",
|
||||
"volumeExpr": "math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2)"
|
||||
}
|
||||
],
|
||||
@@ -153,6 +162,11 @@
|
||||
]
|
||||
},
|
||||
"behaviour": {
|
||||
"combat": {
|
||||
"willDefendOwner": true,
|
||||
"willDefendSelf": true,
|
||||
"willFlee": false
|
||||
},
|
||||
"herd": {
|
||||
"maxSize": "8",
|
||||
"toleratedLeaders": [
|
||||
@@ -175,17 +189,12 @@
|
||||
},
|
||||
"resting": {
|
||||
"canSleep": true,
|
||||
"drowsyChance": 0.0014,
|
||||
"light": "0-4",
|
||||
"rouseChance": 0.0042,
|
||||
"times": [
|
||||
"any"
|
||||
],
|
||||
"drowsyChance": 0.0014,
|
||||
"rouseChance": 0.0042
|
||||
},
|
||||
"combat": {
|
||||
"willDefendSelf": true,
|
||||
"willDefendOwner": true,
|
||||
"willFlee": false
|
||||
]
|
||||
}
|
||||
},
|
||||
"drops": {
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user