Compare commits

..
Author SHA1 Message Date
JazzMcNade c5cc57a298 Fixed issues with pokemon drops 2024-06-02 03:18:22 -05:00
35 changed files with 174 additions and 337 deletions

No files matched your search

-8
View File
@@ -4,22 +4,14 @@
### Fixes
- Scaled down Amaura's fetus model to avoid clipping through the tank while animating
- Added Polished Tumblestone and Tumblestone Brick block sets from Tumblestone, Black Tumblestone, and Sky Tumblestone.
- Fixed Cubone's cry not having a sound.
- Fixed the Seafloor spawning context not being a usable context.
- Fixed Pokemon spawning in non-full blocks like slabs.
- Fixed Gilded Chests not dropping the chest itself when broken, only the contents.
- Fixed Pokémon losing their Hidden Ability through evolution if the middle stage did not have a Hidden Ability.
- Fixed Crumbling Arch not blending in with the world.
- Fixed Energy Root applying being usable on a fainted Pokemon.
- Fixed Pokémon entity not spawning when starting a battle while recalling said Pokémon
### Additions
- Added extra visuals to early berry growth stages
### Added cries to the following Pokémon
- Timburr, Gurdurr, Conkeldurr
- Golett, Golurk
### Changes
- Altered the item model for Medicinal Leeks and Roasted Leeks to be held like sticks and other rod items.
- Adjusted some berry balance values like yield and growth times
@@ -246,10 +246,6 @@ object CobblemonSounds : PlatformRegistry<Registry<SoundEvent>, RegistryKey<Regi
val IMPACT_STEEL = this.create("impact.steel")
@JvmField
val IMPACT_WATER = this.create("impact.water")
@JvmField
val SUPER_EFFECTIVE = this.create("supereffective")
@JvmField
val NOT_VERY_EFFECTIVE = this.create("notveryeffective")
@JvmField
val TUMBLESTONE_SOUNDS = BlockSoundGroup(1f, 1f,
@@ -21,15 +21,13 @@ import net.minecraft.registry.RegistryKeys
/**
* An action effect keyframe that plays a positioned sound for all matching entities.
*
* @author Hiroku, Waldleufer
* @author Hiroku
* @since January 21st, 2024
*/
class EntitySoundActionEffectKeyframe : ConditionalActionEffectKeyframe(), EntityConditionalActionEffectKeyframe {
override val entityCondition = "q.entity.is_user".asExpressionLike()
var sound: String? = null
val delay: ExpressionLike = "0".asExpressionLike()
val volume: ExpressionLike = "1".asExpressionLike()
val pitch: ExpressionLike = "1".asExpressionLike()
override fun playWhenTrue(context: ActionEffectContext): CompletableFuture<Unit> {
val entities = context.providers
@@ -42,13 +40,9 @@ class EntitySoundActionEffectKeyframe : ConditionalActionEffectKeyframe(), Entit
sound
}?.asIdentifierDefaultingNamespace() ?: return skip()
val volumeValue = volume.resolveFloat(context.runtime)
val pitchValue = pitch.resolveFloat(context.runtime)
entities.forEach { entity ->
val soundEvent =
entity.world.registryManager.get(RegistryKeys.SOUND_EVENT).get(soundIdentifier) ?: return skip()
entity.playSound(soundEvent, volumeValue, pitchValue)
val soundEvent = entity.world.registryManager.get(RegistryKeys.SOUND_EVENT).get(soundIdentifier) ?: return skip()
entity.playSound(soundEvent, 1f, 1f)
}
return delayedFuture(seconds = delay.resolveFloat(context.runtime), serverThread = true)
@@ -92,6 +92,7 @@ object ShowdownInterpreter {
updateInstructionParser["-mustrecharge"] = { _, _, message, _ -> RechargeInstruction(message) }
updateInstructionParser["replace"] = { _, _, message, _ -> ReplaceInstruction(message) }
updateInstructionParser["-resisted"] = { _, _, message, _ -> ResistedInstruction(message) }
updateInstructionParser["-resisted"] = { _, _, message, _ -> ResistedInstruction(message) }
updateInstructionParser["-setboost"] = { _, _, message, _ -> SetBoostInstruction(message) }
updateInstructionParser["-sideend"] = { _, _, message, _ -> SideEndInstruction(message) }
updateInstructionParser["-sidestart"] = { _, _, message, _ -> SideStartInstruction(message) }
@@ -1,17 +0,0 @@
/*
* Copyright (C) 2023 Cobblemon Contributors
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
package com.cobblemon.mod.common.battles.interpreter.instructions
import com.cobblemon.mod.common.api.battles.interpreter.BattleMessage
import com.cobblemon.mod.common.battles.dispatch.InterpreterInstruction
interface EffectivenessInstruction : InterpreterInstruction {
val message: BattleMessage
val typeOfEffectiveness: String
}
@@ -11,6 +11,7 @@ package com.cobblemon.mod.common.battles.interpreter.instructions
import com.cobblemon.mod.common.api.battles.interpreter.BattleMessage
import com.cobblemon.mod.common.api.battles.model.PokemonBattle
import com.cobblemon.mod.common.api.text.red
import com.cobblemon.mod.common.battles.dispatch.InterpreterInstruction
import com.cobblemon.mod.common.util.battleLang
/**
@@ -20,8 +21,7 @@ import com.cobblemon.mod.common.util.battleLang
* @author Hiroku
* @since October 3rd, 2022
*/
class ImmuneInstruction(override val message: BattleMessage): EffectivenessInstruction {
override val typeOfEffectiveness: String = "immune"
class ImmuneInstruction(val message: BattleMessage): InterpreterInstruction {
override fun invoke(battle: PokemonBattle) {
battle.dispatchWaiting {
@@ -111,11 +111,6 @@ class MoveInstruction(
}
}
val moveEffectiveness = subsequentInstructions.filterIsInstance<EffectivenessInstruction>().mapNotNull { it.typeOfEffectiveness}
runtime.environment.getQueryStruct().addFunction("effectiveness") { params ->
return@addFunction StringValue(moveEffectiveness.firstOrNull() ?: "normal")
}
val hurtTargets = subsequentInstructions.filterIsInstance<DamageInstruction>().mapNotNull { it.expectedTarget }
runtime.environment.getQueryStruct().addFunction("hurt") { params ->
if (params.params.size == 0) {
@@ -10,6 +10,7 @@ package com.cobblemon.mod.common.battles.interpreter.instructions
import com.cobblemon.mod.common.api.battles.interpreter.BattleMessage
import com.cobblemon.mod.common.api.battles.model.PokemonBattle
import com.cobblemon.mod.common.battles.dispatch.InterpreterInstruction
import com.cobblemon.mod.common.util.battleLang
/**
@@ -19,8 +20,7 @@ import com.cobblemon.mod.common.util.battleLang
* @author Hunter
* @since August 18th, 2022
*/
class ResistedInstruction(override val message: BattleMessage): EffectivenessInstruction {
override val typeOfEffectiveness: String = "resisted"
class ResistedInstruction(val message: BattleMessage): InterpreterInstruction {
override fun invoke(battle: PokemonBattle) {
battle.dispatchGo {
@@ -10,6 +10,7 @@ package com.cobblemon.mod.common.battles.interpreter.instructions
import com.cobblemon.mod.common.api.battles.interpreter.BattleMessage
import com.cobblemon.mod.common.api.battles.model.PokemonBattle
import com.cobblemon.mod.common.battles.dispatch.InterpreterInstruction
import com.cobblemon.mod.common.util.battleLang
/**
@@ -19,8 +20,7 @@ import com.cobblemon.mod.common.util.battleLang
* @author Hunter
* @since August 18th, 2022
*/
class SuperEffectiveInstruction(override val message: BattleMessage): EffectivenessInstruction {
override val typeOfEffectiveness: String = "superEffective"
class SuperEffectiveInstruction(val message: BattleMessage): InterpreterInstruction {
override fun invoke(battle: PokemonBattle) {
battle.dispatchGo {
@@ -47,16 +47,7 @@ class SwitchInstruction(val instructionSet: InstructionSet, val battleActor: Bat
if (!battle.started) {
activePokemon.battlePokemon = pokemon
activePokemon.illusion = illusion
val pokemonEntity = pokemon.entity?.let {
// If a Pokémon entity is being recalled with an animation,
// wrap up the animation and recall the Pokémon immediately.
if (it.beamMode == 3) {
pokemon.effectedPokemon.recall()
return@let null
}
pokemon.entity
}
val pokemonEntity = pokemon.entity
if (pokemonEntity == null && entity != null) {
val targetPos = battleActor.getSide().getOppositeSide().actors.filterIsInstance<EntityBackedBattleActor<*>>().firstOrNull()?.entity?.pos?.let { pos ->
val offset = pos.subtract(entity.pos)
@@ -36,7 +36,6 @@ class ConkeldurrModel (root: ModelPart) : PokemonPoseableModel(), HeadedFrame, B
lateinit var battleidle: PokemonPose
override val cryAnimation = CryProvider { _, _ -> bedrockStateful("conkeldurr", "cry") }
override fun registerPoses() {
val blink = quirk { bedrockStateful("conkeldurr", "blink") }
@@ -14,7 +14,6 @@ import com.cobblemon.mod.common.client.render.models.blockbench.frame.BimanualFr
import com.cobblemon.mod.common.client.render.models.blockbench.frame.BipedFrame
import com.cobblemon.mod.common.client.render.models.blockbench.frame.HeadedFrame
import com.cobblemon.mod.common.client.render.models.blockbench.frame.ModelFrame
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.CryProvider
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.PokemonPose
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.PokemonPoseableModel
import com.cobblemon.mod.common.entity.PoseType
@@ -41,8 +40,6 @@ class GolettModel (root: ModelPart) : PokemonPoseableModel(), HeadedFrame, Biped
lateinit var walk: PokemonPose
lateinit var sleep: PokemonPose
override val cryAnimation = CryProvider { _, _ -> bedrockStateful("golett", "cry") }
override fun registerPoses() {
val blink = quirk { bedrockStateful("golett", "blink") }
standing = registerPose(
@@ -12,7 +12,6 @@ import com.cobblemon.mod.common.client.render.models.blockbench.PoseableEntitySt
import com.cobblemon.mod.common.client.render.models.blockbench.animation.StatefulAnimation
import com.cobblemon.mod.common.client.render.models.blockbench.frame.HeadedFrame
import com.cobblemon.mod.common.client.render.models.blockbench.frame.ModelFrame
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.CryProvider
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.PokemonPose
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.PokemonPoseableModel
import com.cobblemon.mod.common.entity.PoseType
@@ -34,8 +33,6 @@ class GolurkModel (root: ModelPart) : PokemonPoseableModel(), HeadedFrame {
lateinit var walk: PokemonPose
lateinit var sleep: PokemonPose
override val cryAnimation = CryProvider { _, _ -> bedrockStateful("golurk", "cry") }
override fun registerPoses() {
val blink = quirk { bedrockStateful("golurk", "blink") }
@@ -20,6 +20,7 @@ import com.cobblemon.mod.common.api.events.pokemon.ShoulderMountEvent
import com.cobblemon.mod.common.api.interaction.PokemonEntityInteraction
import com.cobblemon.mod.common.api.net.serializers.PoseTypeDataSerializer
import com.cobblemon.mod.common.api.net.serializers.StringSetDataSerializer
import com.cobblemon.mod.common.api.pokemon.PokemonProperties
import com.cobblemon.mod.common.api.pokemon.feature.ChoiceSpeciesFeatureProvider
import com.cobblemon.mod.common.api.pokemon.feature.FlagSpeciesFeature
import com.cobblemon.mod.common.api.pokemon.feature.SpeciesFeatures
@@ -104,8 +105,11 @@ import net.minecraft.sound.SoundEvents
import net.minecraft.text.Text
import net.minecraft.text.TextContent
import net.minecraft.util.ActionResult
import net.minecraft.util.Colors
import net.minecraft.util.DyeColor
import net.minecraft.util.Hand
import net.minecraft.util.Identifier
import net.minecraft.util.Util
import net.minecraft.util.math.BlockPos
import net.minecraft.util.math.Box
import net.minecraft.util.math.Vec3d
@@ -117,7 +121,7 @@ import java.util.*
@Suppress("unused")
open class PokemonEntity(
world: World,
pokemon: Pokemon = Pokemon().apply { isClient = world.isClient },
pokemon: Pokemon = Pokemon(),
type: EntityType<out PokemonEntity> = CobblemonEntities.POKEMON,
) : TameableShoulderEntity(type, world), Poseable, Shearable, Schedulable {
companion object {
@@ -159,7 +163,6 @@ open class PokemonEntity(
var pokemon: Pokemon = pokemon
set(value) {
value.isClient = this.world.isClient
field = value
delegate.changePokemon(value)
stepHeight = behaviour.moving.stepHeight
@@ -494,15 +497,15 @@ open class PokemonEntity(
entityId = id // Doesn't really matter on the entity
)
} else {
pokemon = this.createSidedPokemon()
pokemon = Pokemon()
health = 0F
}
} else {
pokemon = try {
this.createSidedPokemon().loadFromNBT(nbt.getCompound(DataKeys.POKEMON))
Pokemon().loadFromNBT(nbt.getCompound(DataKeys.POKEMON))
} catch (_: InvalidSpeciesException) {
health = 0F
this.createSidedPokemon()
Pokemon()
}
}
@@ -1217,6 +1220,8 @@ open class PokemonEntity(
return !this.isBusy && !this.pokemon.isFainted() && !feature.enabled
}
override fun canUsePortals() = false
override fun setAir(air: Int) {
@@ -1251,11 +1256,4 @@ open class PokemonEntity(
/** Retrieves the battle theme associated with this Pokemon's Species/Form, or the default PVW theme if not found. */
fun getBattleTheme() = Registries.SOUND_EVENT.get(this.form.battleTheme) ?: CobblemonSounds.PVW_BATTLE
/**
* A utility method to instance a [Pokemon] aware if the [world] is client sided or not.
*
* @return The side safe [Pokemon] with the [Pokemon.isClient] set.
*/
private fun createSidedPokemon(): Pokemon = Pokemon().apply { isClient = this@PokemonEntity.world.isClient }
}
@@ -235,7 +235,7 @@ class PokemonServerDelegate : PokemonSideDelegate {
}
if (entity.deathTime == 60) {
if (entity.owner == null) {
if (entity.pokemon.isWild()) {
entity.world.sendEntityStatus(entity, 60.toByte()) // Sends smoke effect
if(entity.world.gameRules.getBoolean(CobblemonGameRules.DO_POKEMON_LOOT)) {
(entity.drops ?: entity.pokemon.form.drops).drop(entity, entity.world as ServerWorld, entity.pos, entity.killer)
@@ -43,7 +43,7 @@ class EnergyRootItem(block: EnergyRootBlock, settings: Settings) : AliasedBlockI
fun getHealAmount() = CobblemonMechanics.remedies.getHealingAmount("root", runtime, 150)
override fun canUseOnPokemon(pokemon: Pokemon) = !pokemon.isFullHealth() && !pokemon.isFainted()
override fun canUseOnPokemon(pokemon: Pokemon) = !pokemon.isFullHealth()
override fun applyToPokemon(player: ServerPlayerEntity, stack: ItemStack, pokemon: Pokemon): TypedActionResult<ItemStack> {
return if (this.canUseOnPokemon(pokemon)) {
@@ -835,9 +835,9 @@ open class Pokemon : ShowdownIdentifiable {
experience = nbt.getInt(DataKeys.POKEMON_EXPERIENCE).takeIf { experienceGroup.getLevel(it) == level } ?: experienceGroup.getExperience(level)
friendship = nbt.getShort(DataKeys.POKEMON_FRIENDSHIP).toInt().coerceIn(0, if (this.isClient) Int.MAX_VALUE else Cobblemon.config.maxPokemonFriendship)
gender = Gender.valueOf(nbt.getString(DataKeys.POKEMON_GENDER).takeIf { it.isNotBlank() } ?: Gender.MALE.name)
currentHealth = nbt.getShort(DataKeys.POKEMON_HEALTH).toInt()
ivs.loadFromNBT(nbt.getCompound(DataKeys.POKEMON_IVS))
evs.loadFromNBT(nbt.getCompound(DataKeys.POKEMON_EVS))
currentHealth = nbt.getShort(DataKeys.POKEMON_HEALTH).toInt()
moveSet.loadFromNBT(nbt)
scaleModifier = nbt.getFloat(DataKeys.POKEMON_SCALE_MODIFIER)
if (nbt.contains(DataKeys.POKEMON_ABILITY, COMPOUND_TYPE.toInt())) {
@@ -169,11 +169,6 @@
},
"animation.cubone.cry": {
"animation_length": 1.16667,
"sound_effects": {
"0.04": {
"effect": "pokemon.cubone.cry"
}
},
"bones": {
"upper_torso": {
"rotation": {
@@ -445,11 +445,6 @@
},
"animation.golett.cry": {
"animation_length": 1.5,
"sound_effects": {
"0.0417": {
"effect": "pokemon.golett.cry"
}
},
"bones": {
"neck": {
"rotation": {
@@ -782,11 +782,6 @@
},
"animation.golurk.cry": {
"animation_length": 1.5,
"sound_effects": {
"0.0417": {
"effect": "pokemon.golurk.cry"
}
},
"bones": {
"neck": {
"rotation": {
@@ -441,225 +441,225 @@
"sounds": [ "cobblemon:effective" ]
},
"notveryeffective": {
"sounds": [ { "name": "cobblemon:attacks/effectiveness_layer/not_very_effective_layer", "volume": 0.8 } ]
"sounds": [ "cobblemon:notveryeffective" ]
},
"supereffective": {
"sounds": [ { "name": "cobblemon:attacks/effectiveness_layer/super_effective_layer", "volume": 0.6 } ]
"sounds": [ "cobblemon:supereffective" ]
},
"impact.normal": {
"sounds": [
{ "name": "cobblemon:attacks/impact_generic/impact_generic_fighting_1", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_fighting_2", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_fighting_3", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_fighting_4", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_fighting_5", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_fighting_6", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_fighting_7", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_fighting_8", "volume": 1.0 }
{ "name": "cobblemon:attacks/impact_generic/impact_generic_fighting_1", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_fighting_2", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_fighting_3", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_fighting_4", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_fighting_5", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_fighting_6", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_fighting_7", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_fighting_8", "volume": 0.8 }
]
},
"impact.ice": {
"sounds": [
{ "name": "cobblemon:attacks/impact_generic/impact_generic_ice_1", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_ice_2", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_ice_3", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_ice_4", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_ice_5", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_ice_6", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_ice_7", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_ice_8", "volume": 1.0 }
{ "name": "cobblemon:attacks/impact_generic/impact_generic_ice_1", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_ice_2", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_ice_3", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_ice_4", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_ice_5", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_ice_6", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_ice_7", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_ice_8", "volume": 0.8 }
]
},
"impact.water": {
"sounds": [
{ "name": "cobblemon:attacks/impact_generic/impact_generic_water_1", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_water_2", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_water_3", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_water_4", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_water_5", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_water_6", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_water_7", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_water_8", "volume": 1.0 }
{ "name": "cobblemon:attacks/impact_generic/impact_generic_water_1", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_water_2", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_water_3", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_water_4", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_water_5", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_water_6", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_water_7", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_water_8", "volume": 0.8 }
]
},
"impact.fire": {
"sounds": [
{ "name": "cobblemon:attacks/impact_generic/impact_generic_fire_1", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_fire_2", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_fire_3", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_fire_4", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_fire_5", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_fire_6", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_fire_7", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_fire_8", "volume": 1.0 }
{ "name": "cobblemon:attacks/impact_generic/impact_generic_fire_1", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_fire_2", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_fire_3", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_fire_4", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_fire_5", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_fire_6", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_fire_7", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_fire_8", "volume": 0.8 }
]
},
"impact.electric": {
"sounds": [
{ "name": "cobblemon:attacks/impact_generic/impact_generic_electric_1", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_electric_2", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_electric_3", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_electric_4", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_electric_5", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_electric_6", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_electric_7", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_electric_8", "volume": 1.0 }
{ "name": "cobblemon:attacks/impact_generic/impact_generic_electric_1", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_electric_2", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_electric_3", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_electric_4", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_electric_5", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_electric_6", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_electric_7", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_electric_8", "volume": 0.8 }
]
},
"impact.grass": {
"sounds": [
{ "name": "cobblemon:attacks/impact_generic/impact_generic_grass_1", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_grass_2", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_grass_3", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_grass_4", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_grass_5", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_grass_6", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_grass_7", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_grass_8", "volume": 1.0 }
{ "name": "cobblemon:attacks/impact_generic/impact_generic_grass_1", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_grass_2", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_grass_3", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_grass_4", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_grass_5", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_grass_6", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_grass_7", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_grass_8", "volume": 0.8 }
]
},
"impact.fighting": {
"sounds": [
{ "name": "cobblemon:attacks/impact_generic/impact_generic_fighting_1", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_fighting_2", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_fighting_3", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_fighting_4", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_fighting_5", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_fighting_6", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_fighting_7", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_fighting_8", "volume": 1.0 }
{ "name": "cobblemon:attacks/impact_generic/impact_generic_fighting_1", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_fighting_2", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_fighting_3", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_fighting_4", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_fighting_5", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_fighting_6", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_fighting_7", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_fighting_8", "volume": 0.8 }
]
},
"impact.poison": {
"sounds": [
{ "name": "cobblemon:attacks/impact_generic/impact_generic_poison_1", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_poison_2", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_poison_3", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_poison_4", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_poison_5", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_poison_6", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_poison_7", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_poison_8", "volume": 1.0 }
{ "name": "cobblemon:attacks/impact_generic/impact_generic_poison_1", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_poison_2", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_poison_3", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_poison_4", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_poison_5", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_poison_6", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_poison_7", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_poison_8", "volume": 0.8 }
]
},
"impact.ground": {
"sounds": [
{ "name": "cobblemon:attacks/impact_generic/impact_generic_ground_1", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_ground_2", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_ground_3", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_ground_4", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_ground_5", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_ground_6", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_ground_7", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_ground_8", "volume": 1.0 }
{ "name": "cobblemon:attacks/impact_generic/impact_generic_ground_1", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_ground_2", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_ground_3", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_ground_4", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_ground_5", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_ground_6", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_ground_7", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_ground_8", "volume": 0.8 }
]
},
"impact.flying": {
"sounds": [
{ "name": "cobblemon:attacks/impact_generic/impact_generic_flying_1", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_flying_2", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_flying_3", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_flying_4", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_flying_5", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_flying_6", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_flying_7", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_flying_8", "volume": 1.0 }
{ "name": "cobblemon:attacks/impact_generic/impact_generic_flying_1", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_flying_2", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_flying_3", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_flying_4", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_flying_5", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_flying_6", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_flying_7", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_flying_8", "volume": 0.8 }
]
},
"impact.psychic": {
"sounds": [
{ "name": "cobblemon:attacks/impact_generic/impact_generic_psychic_1", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_psychic_2", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_psychic_3", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_psychic_4", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_psychic_5", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_psychic_6", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_psychic_7", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_psychic_8", "volume": 1.0 }
{ "name": "cobblemon:attacks/impact_generic/impact_generic_psychic_1", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_psychic_2", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_psychic_3", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_psychic_4", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_psychic_5", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_psychic_6", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_psychic_7", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_psychic_8", "volume": 0.8 }
]
},
"impact.bug": {
"sounds": [
{ "name": "cobblemon:attacks/impact_generic/impact_generic_bug_1", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_bug_2", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_bug_3", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_bug_4", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_bug_5", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_bug_6", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_bug_7", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_bug_8", "volume": 1.0 }
{ "name": "cobblemon:attacks/impact_generic/impact_generic_bug_1", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_bug_2", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_bug_3", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_bug_4", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_bug_5", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_bug_6", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_bug_7", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_bug_8", "volume": 0.8 }
]
},
"impact.rock": {
"sounds": [
{ "name": "cobblemon:attacks/impact_generic/impact_generic_rock_1", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_rock_2", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_rock_3", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_rock_4", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_rock_5", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_rock_6", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_rock_7", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_rock_8", "volume": 1.0 }
{ "name": "cobblemon:attacks/impact_generic/impact_generic_rock_1", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_rock_2", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_rock_3", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_rock_4", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_rock_5", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_rock_6", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_rock_7", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_rock_8", "volume": 0.8 }
]
},
"impact.ghost": {
"sounds": [
{ "name": "cobblemon:attacks/impact_generic/impact_generic_ghost_1", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_ghost_2", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_ghost_3", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_ghost_4", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_ghost_5", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_ghost_6", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_ghost_7", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_ghost_8", "volume": 1.0 }
{ "name": "cobblemon:attacks/impact_generic/impact_generic_ghost_1", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_ghost_2", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_ghost_3", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_ghost_4", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_ghost_5", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_ghost_6", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_ghost_7", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_ghost_8", "volume": 0.8 }
]
},
"impact.dragon": {
"sounds": [
{ "name": "cobblemon:attacks/impact_generic/impact_generic_dragon_1", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_dragon_2", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_dragon_3", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_dragon_4", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_dragon_5", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_dragon_6", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_dragon_7", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_dragon_8", "volume": 1.0 }
{ "name": "cobblemon:attacks/impact_generic/impact_generic_dragon_1", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_dragon_2", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_dragon_3", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_dragon_4", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_dragon_5", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_dragon_6", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_dragon_7", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_dragon_8", "volume": 0.8 }
]
},
"impact.dark": {
"sounds": [
{ "name": "cobblemon:attacks/impact_generic/impact_generic_dark_1", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_dark_2", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_dark_3", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_dark_4", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_dark_5", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_dark_6", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_dark_7", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_dark_8", "volume": 1.0 }
{ "name": "cobblemon:attacks/impact_generic/impact_generic_dark_1", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_dark_2", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_dark_3", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_dark_4", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_dark_5", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_dark_6", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_dark_7", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_dark_8", "volume": 0.8 }
]
},
"impact.steel": {
"sounds": [
{ "name": "cobblemon:attacks/impact_generic/impact_generic_steel_1", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_steel_2", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_steel_3", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_steel_4", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_steel_5", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_steel_6", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_steel_7", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_steel_8", "volume": 1.0 }
{ "name": "cobblemon:attacks/impact_generic/impact_generic_steel_1", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_steel_2", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_steel_3", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_steel_4", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_steel_5", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_steel_6", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_steel_7", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_steel_8", "volume": 0.8 }
]
},
"impact.fairy": {
"sounds": [
{ "name": "cobblemon:attacks/impact_generic/impact_generic_fairy_1", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_fairy_2", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_fairy_3", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_fairy_4", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_fairy_5", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_fairy_6", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_fairy_7", "volume": 1.0 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_fairy_8", "volume": 1.0 }
{ "name": "cobblemon:attacks/impact_generic/impact_generic_fairy_1", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_fairy_2", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_fairy_3", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_fairy_4", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_fairy_5", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_fairy_6", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_fairy_7", "volume": 0.8 },
{ "name": "cobblemon:attacks/impact_generic/impact_generic_fairy_8", "volume": 0.8 }
]
},
"status.paralysis.actor": {
@@ -15,10 +15,6 @@
"expressions": ["q.play_animation(q.bedrock_stateful('particle_dummy', 'dragon_claw_target'))"],
"delay": 0.1
},
{
"type": "run_action_effect",
"actionEffect": "cobblemon:generic_effectiveness"
},
{
"type": "remove_holds",
"holds": ["effects"]
@@ -20,10 +20,6 @@
"entityCondition": "q.entity.is_user == false && q.missed(q.entity.uuid) == false",
"delay": 0.1
},
{
"type": "run_action_effect",
"actionEffect": "cobblemon:generic_effectiveness"
},
{
"type": "remove_holds",
"holds": ["effects"]
@@ -1,19 +0,0 @@
{
"condition": "q.move.damage_category != 'status' && q.effectiveness != 'immune'",
"timeline": [
{
"type": "entity_sound",
"entityCondition": "q.effectiveness == 'superEffective' && q.entity.is_user == false && q.missed(q.entity.uuid) == false",
"sound": "cobblemon:supereffective",
"pitch": 1.0,
"volume": 1.6
},
{
"type": "entity_sound",
"entityCondition": "q.effectiveness == 'resisted' && q.entity.is_user == false && q.missed(q.entity.uuid) == false",
"sound": "cobblemon:notveryeffective",
"pitch": 1.0,
"volume": 1.0
}
]
}
@@ -11,38 +11,18 @@
},
{
"type": "sequence",
"condition": "q.move.damage_category != 'status' && q.effectiveness != 'immune'",
"condition": "q.move.damage_category != 'status'",
"keyframes": [
{
"type": "entity_sound",
"entityCondition": "q.effectiveness == 'normal' && q.entity.is_user == false && q.missed(q.entity.uuid) == false",
"sound": "'cobblemon:impact.' + q.move.type",
"pitch": 1.0,
"volume": 1.0
},
{
"type": "entity_sound",
"entityCondition": "q.effectiveness == 'superEffective' && q.entity.is_user == false && q.missed(q.entity.uuid) == false",
"sound": "'cobblemon:impact.' + q.move.type",
"pitch": 1.0,
"volume": 0.9
},
{
"type": "entity_sound",
"entityCondition": "q.effectiveness == 'resisted' && q.entity.is_user == false && q.missed(q.entity.uuid) == false",
"sound": "'cobblemon:impact.' + q.move.type",
"pitch": 1.0,
"volume": 0.6
"entityCondition": "q.entity.is_user == false && q.missed(q.entity.uuid) == false",
"sound": "'cobblemon:impact.' + q.move.type"
},
{
"type": "entity_particles",
"entityCondition": "q.entity.is_user == false && q.missed(q.entity.uuid) == false",
"effect": "'cobblemon:impact_' + q.move.type",
"locator": "target"
},
{
"type": "run_action_effect",
"actionEffect": "cobblemon:generic_effectiveness"
}
]
},
@@ -354,56 +354,12 @@
},
{
"content": 8,
"item": "minecraft:tube_coral"
},
{
"content": 8,
"item": "minecraft:brain_coral"
},
{
"content": 8,
"item": "minecraft:bubble_coral"
},
{
"content": 8,
"item": "minecraft:fire_coral"
},
{
"content": 8,
"item": "minecraft:horn_coral"
},
{
"content": 8,
"item": "minecraft:tube_coral_fan"
},
{
"content": 8,
"item": "minecraft:brain_coral_fan"
},
{
"content": 8,
"item": "minecraft:bubble_coral_fan"
},
{
"content": 8,
"item": "minecraft:fire_coral_fan"
},
{
"content": 8,
"item": "minecraft:horn_coral_fan"
"tag": "#minecraft:corals"
},
{
"content": 4,
"tag": "#minecraft:mushrooms"
},
{
"content": 4,
"item": "minecraft:brown_mushroom"
},
{
"content": 4,
"item": "minecraft:red_mushroom"
},
{
"content": 16,
"item": "minecraft:cake"