Compare commits

...
Author SHA1 Message Date
whatsy b6beed0963 cleanup 2026-11-03 10:27:13 -05:00
Ronak Chavva 2a882e137a fix(*): temp feature individualism 2026-11-02 13:34:52 -06:00
whatsy 9be710ff32 this floette is gonna drive me insane 2026-11-02 10:57:44 -05:00
whatsy 7a9393b39f more pokedex compat and other stuff 2026-11-01 15:12:12 -05:00
whatsy 087a167bfa ...and then make that PlatformRegistry actually work 2026-10-30 15:18:54 -04:00
whatsy 461d21a87d Convert CobblemonLootItemConditions into a PlatformRegistry 2026-10-30 14:48:30 -04:00
whatsy 78953357a8 Pokedex compat 2026-10-30 14:39:38 -04:00
whatsy bdfabb3724 Update CHANGELOG.md + resolve merge conflicts 2026-10-27 23:54:56 -04:00
whatsy 3adb6144a3 Merge branch 'refs/heads/main' into drop-system-update
# Conflicts:
#	common/src/main/resources/data/cobblemon/species/generation1/exeggutor.json
#	common/src/main/resources/data/cobblemon/species/generation4/rotom.json
#	common/src/main/resources/data/cobblemon/species/generation4/wormadam.json
#	common/src/main/resources/data/cobblemon/species/generation5/kyurem.json
#	common/src/main/resources/data/cobblemon/species/generation6/avalugg.json
#	common/src/main/resources/data/cobblemon/species/generation6/flabebe.json
#	common/src/main/resources/data/cobblemon/species/generation6/floette.json
#	common/src/main/resources/data/cobblemon/species/generation6/florges.json
#	common/src/main/resources/data/cobblemon/species/generation6/goodra.json
#	common/src/main/resources/data/cobblemon/species/generation6/greninja.json
#	common/src/main/resources/data/cobblemon/species/generation6/sliggoo.json
#	common/src/main/resources/data/cobblemon/species/generation7/decidueye.json
#	common/src/main/resources/data/cobblemon/species/generation8/toxtricity.json
2026-10-27 23:48:49 -04:00
Hiroku f4140a097d Put the snap back on 2026-10-27 20:16:12 +10:00
whatsy 65bcd118a3 finalizing 2026-10-21 13:25:46 -04:00
whatsy bf6f97e740 auto fire aspect support 2026-10-21 12:25:24 -04:00
whatsy 4e48e2ff9b scraper updates 2026-10-20 18:43:01 -04:00
whatsy faa488b153 ported all pokemon over to loot tables 2026-10-19 17:09:20 -04:00
whatsy 93dbc015fb loot table drop entry type implementation 2026-10-19 13:49:34 -04:00
whatsy 7edf6669d8 Vanilla loot tables for pokemon drops: wip, pushing for review 2026-10-19 11:52:44 -04:00
2185 changed files with 96600 additions and 15993 deletions

No files matched your search

+22 -20
View File
@@ -1,25 +1,27 @@
# Changelog
## [1.8.4 (October 27th, 2026)](#1-8-4)
## [1.8.5 (MONTH xth, 2026)](#1-8-5)
### Changes
- The Froakie line now blinks. The world will never be the same.
### Fixes
- Fixed heaps of spawns not working. This was caused by us missing something before release. RIP.
- Fixed a crash caused by Fearow blinking while you're riding one. Makes sense to me.
- Fixed Minior's "Shields Down" ability being very broken.
- Fixed Dusclops using Squirtle's cry sound (lol).
- Fixed blank Cooking Pot recipe book entries and missing tabs on Fabric.
- Fixed a hitbox issue with placeable Orb held items attached to a ceiling.
- Fixed something sneaky. I'll tell you about it later.
### Molang & Datapacks
- Added `q.target_fainted` function to move action effects that checks if any opponents fainted from the move.
### Additions
### Particles
- Updated Water Shuriken effect to be timed better when the opponent faints.
### Localization
- Updated translations for:
- Korean
- Simplified Chinese
### Cries added/updated for the following Pokémon
### Model updates for the following Pokémon
### Animation updates for the following Pokémon
### Changes
### Fixes
### Developer
### Molang & Datapacks
- Added a `loot_table` drop entry type.
- Accepts an `id` field, pointing to a vanilla loot table.
- All base mod Pokémon have been moved to this new system.
- Added the `cobblemon:requirement` loot item condition.
- Accepts a `requirement` field, containing a Requirement, using the existing Cobblemon requirement system.
### Localization
+25
View File
@@ -0,0 +1,25 @@
# Changelog
## [1.8.4 (October 27th, 2026)](#1-8-4)
### Changes
- The Froakie line now blinks. The world will never be the same.
### Fixes
- Fixed heaps of spawns not working. This was caused by us missing something before release. RIP.
- Fixed a crash caused by Fearow blinking while you're riding one. Makes sense to me.
- Fixed Minior's "Shields Down" ability being very broken.
- Fixed Dusclops using Squirtle's cry sound (lol).
- Fixed blank Cooking Pot recipe book entries and missing tabs on Fabric.
- Fixed a hitbox issue with placeable Orb held items attached to a ceiling.
- Fixed something sneaky. I'll tell you about it later.
### Molang & Datapacks
- Added `q.target_fainted` function to move action effects that checks if any opponents fainted from the move.
### Particles
- Updated Water Shuriken effect to be timed better when the opponent faints.
### Localization
- Updated translations for:
- Korean
- Simplified Chinese
@@ -16,6 +16,7 @@ import com.cobblemon.mod.common.api.drop.CommandDropEntry
import com.cobblemon.mod.common.api.drop.DropEntry
import com.cobblemon.mod.common.api.drop.EvolutionItemDropEntry
import com.cobblemon.mod.common.api.drop.ItemDropEntry
import com.cobblemon.mod.common.api.drop.LootTableDropEntry
import com.cobblemon.mod.common.api.events.CobblemonEvents
import com.cobblemon.mod.common.api.events.CobblemonEvents.DATA_SYNCHRONIZED
import com.cobblemon.mod.common.api.habitats.HabitatPools
@@ -90,6 +91,7 @@ import com.cobblemon.mod.common.events.EntityCallbackHandler
import com.cobblemon.mod.common.events.PokedexHandler
import com.cobblemon.mod.common.events.ServerTickHandler
import com.cobblemon.mod.common.events.StatHandler
import com.cobblemon.mod.common.loot.CobblemonLootItemConditions
import com.cobblemon.mod.common.net.messages.client.settings.ServerSettingsPacket
import com.cobblemon.mod.common.permission.LaxPermissionValidator
import com.cobblemon.mod.common.platform.events.PlatformEvents
@@ -223,12 +225,15 @@ object Cobblemon {
implementation.registerEntityDataSerializers()
implementation.registerCriteria()
implementation.registerEntitySubPredicates()
implementation.registerLootItemConditions()
implementation.registerMobEffects()
DispenserBehaviorRegistry.registerDispenserBehaviors()
CobblemonLootItemConditions.touch()
DropEntry.register("command", CommandDropEntry::class.java)
DropEntry.register("item", ItemDropEntry::class.java, isDefault = true)
DropEntry.register("evolution", EvolutionItemDropEntry::class.java)
DropEntry.register("loot_table", LootTableDropEntry::class.java)
ExperienceGroups.registerDefaults()
CaptureCalculators.registerDefaults()
@@ -118,6 +118,7 @@ interface CobblemonImplementation {
fun registerMenu()
fun registerEntitySubPredicates()
fun registerLootItemConditions()
/**
* TODO
@@ -10,9 +10,14 @@ package com.cobblemon.mod.common.api.drop
import com.cobblemon.mod.common.api.events.CobblemonEvents.LOOT_DROPPED
import com.cobblemon.mod.common.api.events.drops.LootDroppedEvent
import com.cobblemon.mod.common.entity.pokemon.PokemonEntity
import com.cobblemon.mod.common.pokemon.Pokemon
import com.cobblemon.mod.common.util.cobblemonResource
import net.minecraft.core.registries.Registries
import kotlin.random.Random
import net.minecraft.network.RegistryFriendlyByteBuf
import net.minecraft.resources.ResourceKey
import net.minecraft.resources.ResourceLocation
import net.minecraft.server.level.ServerLevel
import net.minecraft.server.level.ServerPlayer
import net.minecraft.world.entity.LivingEntity
@@ -105,7 +110,11 @@ class DropTable {
) {
LOOT_DROPPED.postThen(
event = LootDroppedEvent(this, player, entity, drops),
ifSucceeded = { it.drops.forEach { it.drop(entity, world, pos, player) } }
ifSucceeded = {
val pokemon = (entity as? PokemonEntity)?.pokemon?.species?.resourceIdentifier ?: return@postThen
it.drops.forEach { it.drop(entity, world, pos, player) }
// val lootKey = ResourceKey.create(Registries.LOOT_TABLE, cobblemonResource("pokemon/${pokemon}"))
}
)
}
@@ -0,0 +1,64 @@
package com.cobblemon.mod.common.api.drop
import net.minecraft.core.registries.Registries
import net.minecraft.resources.ResourceKey
import net.minecraft.resources.ResourceLocation
import net.minecraft.server.level.ServerLevel
import net.minecraft.server.level.ServerPlayer
import net.minecraft.world.entity.LivingEntity
import net.minecraft.world.entity.item.ItemEntity
import net.minecraft.world.level.storage.loot.LootParams
import net.minecraft.world.level.storage.loot.parameters.LootContextParamSets
import net.minecraft.world.level.storage.loot.parameters.LootContextParams
import net.minecraft.world.phys.Vec3
/**
* A drop entry that points to a vanilla loot table.
*/
class LootTableDropEntry(
override var percentage: Float,
override var quantity: Int,
override var maxSelectableTimes: Int,
val id: ResourceLocation
) : DropEntry {
override fun drop(
entity: LivingEntity?,
world: ServerLevel,
pos: Vec3,
player: ServerPlayer?
) {
val key = ResourceKey.create(Registries.LOOT_TABLE, id)
val playerEntity = player as? LivingEntity
if (entity == null) return
if (playerEntity != null) {
val params = LootParams.Builder(world)
.withParameter(LootContextParams.ATTACKING_ENTITY, playerEntity)
.withParameter(LootContextParams.DAMAGE_SOURCE, playerEntity.damageSources().genericKill())
.withParameter(LootContextParams.ORIGIN, pos)
.withParameter(LootContextParams.THIS_ENTITY, entity)
.create(LootContextParamSets.ENTITY)
val drops = world.server.reloadableRegistries().getLootTable(key)
.getRandomItems(params)
for (stack in drops) {
if (stack.isEmpty) continue
val itemEntity = ItemEntity(world, pos.x, pos.y, pos.z, stack)
itemEntity.setDefaultPickUpDelay()
world.addFreshEntity(itemEntity)
}
} else {
val params = LootParams.Builder(world)
.create(LootContextParamSets.EMPTY)
val drops = world.server.reloadableRegistries().getLootTable(key)
.getRandomItems(params)
for (stack in drops) {
if (stack.isEmpty) continue
val itemEntity = ItemEntity(world, pos.x, pos.y, pos.z, stack)
itemEntity.setDefaultPickUpDelay()
world.addFreshEntity(itemEntity)
}
}
}
}
@@ -9,6 +9,7 @@
package com.cobblemon.mod.common.api.pokedex.filter
import com.cobblemon.mod.common.api.drop.ItemDropEntry
import com.cobblemon.mod.common.api.drop.LootTableDropEntry
import com.cobblemon.mod.common.api.moves.MoveTemplate
import com.cobblemon.mod.common.api.pokedex.AbstractPokedexManager
import com.cobblemon.mod.common.api.pokedex.PokedexEntryProgress
@@ -17,14 +18,22 @@ import com.cobblemon.mod.common.api.pokemon.PokemonSpecies
import com.cobblemon.mod.common.api.pokemon.evolution.Evolution
import com.cobblemon.mod.common.api.tms.TechnicalMachines
import com.cobblemon.mod.common.client.CobblemonClient
import com.cobblemon.mod.common.client.gui.pokedex.widgets.DropsScrollingWidget.DropWidgetEntry
import com.cobblemon.mod.common.pokemon.abilities.HiddenAbility
import com.cobblemon.mod.common.pokemon.FormData
import com.cobblemon.mod.common.util.asIdentifierDefaultingNamespace
import com.cobblemon.mod.common.util.asTranslated
import com.cobblemon.mod.common.util.itemRegistry
import com.cobblemon.mod.common.util.server
import com.google.gson.JsonArray
import com.google.gson.JsonParser
import net.minecraft.client.Minecraft
import net.minecraft.core.registries.Registries
import net.minecraft.resources.ResourceLocation
import net.minecraft.tags.TagKey
import net.minecraft.world.item.ItemStack
import java.util.Locale
import java.util.Locale.getDefault
/**
* A Pokedex [EntryFilter] that filters out entries that do not contain the current search.
@@ -75,11 +84,59 @@ class SearchFilter(val pokedexManager: AbstractPokedexManager, val searchString:
if (pokedexManager.getHighestKnowledgeFor(entry) == PokedexEntryProgress.UNREGISTERED) return false
val dropsList = mutableListOf<String>()
val formsList = if (species.forms.isEmpty()) mutableListOf(species.standardForm) else species.forms
formsList.forEach {
it.drops.entries.forEach {
if (it is ItemDropEntry) {
val itemStack = Minecraft.getInstance().player?.level()?.itemRegistry?.get(it.item)?.defaultInstance ?: ItemStack.EMPTY
formsList.forEach { formData ->
formData.drops.entries.forEach { dropEntry ->
if (dropEntry is ItemDropEntry) {
val itemStack = Minecraft.getInstance().player?.level()?.itemRegistry?.get(dropEntry.item)?.defaultInstance ?: ItemStack.EMPTY
if (!itemStack.isEmpty) dropsList.add(itemStack.displayName.string.lowercase())
} else if (dropEntry is LootTableDropEntry) {
val server = server() ?: return@forEach
val lootTableResource = ResourceLocation.fromNamespaceAndPath(
dropEntry.id.namespace,
"loot_table/${dropEntry.id.path}.json"
)
val resource = server.resourceManager
.getResource(lootTableResource)
.orElse(null)
?: return@forEach
val json = resource.openAsReader().use { reader ->
JsonParser.parseReader(reader).asJsonObject
}
json.getAsJsonArray("pools")?.forEach { poolElement ->
val pool = poolElement.asJsonObject
val entries = pool.getAsJsonArray("entries") ?: return@forEach
for (entry in entries.map { it.asJsonObject }) {
val items = mutableSetOf<String>()
if (entry["type"].asString == "minecraft:tag") {
val itemRegistry = Minecraft.getInstance()
.level!!
.registryAccess()
.lookupOrThrow(Registries.ITEM)
val tagKey = TagKey.create(Registries.ITEM, ResourceLocation.parse(entry["name"].asString))
val tagItems = itemRegistry.getOrThrow(tagKey)
.stream()
.map { holder ->
holder.unwrapKey().map {
val itemStack = Minecraft.getInstance().player?.level()?.itemRegistry?.get(it.location())?.defaultInstance ?: ItemStack.EMPTY
itemStack.displayName.string.lowercase()
}.orElse(null)
}.toList().filterNotNull()
items.addAll(tagItems)
} else if (entry["type"].asString == "minecraft:item") {
val itemStack = Minecraft.getInstance().player?.level()?.itemRegistry?.get(ResourceLocation.parse(entry["name"].asString))?.defaultInstance ?: ItemStack.EMPTY
items.add(itemStack.displayName.string.lowercase())
}
dropsList.addAll(items.map { it })
}
}
}
}
}
@@ -8,9 +8,14 @@
package com.cobblemon.mod.common.api.pokemon.requirement
import com.cobblemon.mod.common.api.pokemon.PokemonSpecies
import com.cobblemon.mod.common.api.pokemon.evolution.ContextEvolution
import com.cobblemon.mod.common.api.pokemon.evolution.Evolution
import com.cobblemon.mod.common.pokemon.Pokemon
import com.mojang.serialization.Codec
import com.mojang.serialization.DataResult
import com.mojang.serialization.Dynamic
import com.mojang.serialization.JsonOps
import net.minecraft.resources.ResourceLocation
import java.util.WeakHashMap
@@ -40,5 +45,26 @@ fun interface Requirement {
companion object {
val pokedexIconOverrides = WeakHashMap<Requirement, ResourceLocation>()
val pokedexTooltipOverrides = WeakHashMap<Requirement, String>()
val CODEC: Codec<Requirement> = Codec.PASSTHROUGH.comapFlatMap(
{ dynamic ->
try {
val json = dynamic.convert(JsonOps.INSTANCE).value
DataResult.success(
PokemonSpecies.gson.fromJson(json, Requirement::class.java)
)
} catch (e: Exception) {
DataResult.error {
"Failed to decode Requirement: ${e.message}"
}
}
},
{ requirement ->
Dynamic(
JsonOps.INSTANCE,
PokemonSpecies.gson.toJsonTree(requirement, Requirement::class.java)
)
}
)
}
}
@@ -22,6 +22,7 @@ import net.minecraft.resources.ResourceLocation
import net.minecraft.server.level.ServerLevel
import net.minecraft.util.RandomSource
import net.minecraft.world.level.BlockGetter
import net.minecraft.world.level.Level
import net.minecraft.world.level.LevelAccessor
import net.minecraft.world.level.block.Block
import net.minecraft.world.level.block.Blocks
@@ -140,6 +141,19 @@ class TypeGemCoreBlock(properties: Properties) : Block(properties) {
return clusters
}
override fun onRemove(
state: BlockState,
level: Level,
pos: BlockPos,
newState: BlockState,
movedByPiston: Boolean
) {
getConnectedClusters(level, pos).forEach { // Stop growth of connected gems when core is removed
level.setBlockAndUpdate(it.second, it.first.setValue(GROWTH_TYPE, GrowthType.DECORATION))
}
super.onRemove(state, level, pos, newState, movedByPiston)
}
override fun randomTick(state: BlockState, level: ServerLevel, pos: BlockPos, random: RandomSource) {
// should we tick at all?
if (random.nextFloat() >= Cobblemon.config.typeGemTickChance) {
@@ -748,6 +748,8 @@ class PokedexGUI private constructor(
}
TAB_DROPS -> {
(tabInfoElement as DropsScrollingWidget).dropTable = form.drops
(tabInfoElement as DropsScrollingWidget).form = form
(tabInfoElement as DropsScrollingWidget).aspects = aspects.toSet()
(tabInfoElement as DropsScrollingWidget).setEntries()
}
TAB_MOVES -> {
@@ -10,6 +10,9 @@ package com.cobblemon.mod.common.client.gui.pokedex.widgets
import com.cobblemon.mod.common.api.drop.DropTable
import com.cobblemon.mod.common.api.drop.ItemDropEntry
import com.cobblemon.mod.common.api.drop.LootTableDropEntry
import com.cobblemon.mod.common.api.pokemon.PokemonSpecies
import com.cobblemon.mod.common.api.pokemon.requirement.Requirement
import com.cobblemon.mod.common.api.text.bold
import com.cobblemon.mod.common.client.CobblemonResources
import com.cobblemon.mod.common.client.gui.ScrollingWidget
@@ -17,17 +20,27 @@ import com.cobblemon.mod.common.client.gui.pokedex.PokedexGUIConstants
import com.cobblemon.mod.common.client.render.drawScaledText
import com.cobblemon.mod.common.client.render.drawScaledTextJustifiedRight
import com.cobblemon.mod.common.client.render.renderScaledGuiItemIcon
import com.cobblemon.mod.common.pokemon.FormData
import com.cobblemon.mod.common.pokemon.Pokemon
import com.cobblemon.mod.common.util.itemRegistry
import com.cobblemon.mod.common.util.lang
import java.text.DecimalFormat
import com.cobblemon.mod.common.util.server
import com.google.gson.JsonArray
import com.google.gson.JsonObject
import com.google.gson.JsonParser
import net.minecraft.ChatFormatting
import net.minecraft.Util
import net.minecraft.client.Minecraft
import net.minecraft.client.gui.GuiGraphics
import net.minecraft.core.registries.Registries
import net.minecraft.network.chat.Component
import net.minecraft.network.chat.MutableComponent
import net.minecraft.resources.ResourceLocation
import net.minecraft.tags.TagKey
import net.minecraft.util.FastColor
import net.minecraft.util.Mth
import net.minecraft.world.item.ItemStack
import java.text.DecimalFormat
class DropsScrollingWidget(val pX: Int, val pY: Int): ScrollingWidget<DropsScrollingWidget.DropWidgetEntry>(
width = PokedexGUIConstants.HALF_OVERLAY_WIDTH - 2,
@@ -38,6 +51,8 @@ class DropsScrollingWidget(val pX: Int, val pY: Int): ScrollingWidget<DropsScrol
) {
var dropTable: DropTable = DropTable()
var aspects: Set<String> = emptySet()
var form: FormData = FormData()
companion object {
val df = DecimalFormat("#.##")
@@ -50,9 +65,157 @@ class DropsScrollingWidget(val pX: Int, val pY: Int): ScrollingWidget<DropsScrol
override fun getX() = pX
override fun getY() = pY
private fun getFormAspects(): Set<String> {
val formAspects = form.species.forms
.flatMapTo(mutableSetOf()) { it.aspects }
.apply { addAll(form.species.standardForm.aspects) }
val selectedFormAspectPrefixes = form.aspects
.mapNotNull { it.substringBeforeLast('-', "").takeIf(String::isNotEmpty) }
.toSet()
return formAspects + aspects.filter { aspect ->
val prefix = aspect.substringBeforeLast('-', "")
prefix.isNotEmpty() && prefix in selectedFormAspectPrefixes
}
}
private fun checkPokemonConditions(condition: JsonObject): Boolean {
val conditionType = condition["condition"].asString
if (conditionType == "cobblemon:requirement") {
val requirementJson = condition["requirement"].asJsonObject
val selectedAspects = (aspects - getFormAspects()) + form.aspects
val requirement = PokemonSpecies.gson.fromJson(requirementJson, Requirement::class.java)
val tempPokemon = Pokemon().apply { species = form.species }
tempPokemon.form = form
tempPokemon.forcedAspects = selectedAspects
tempPokemon.shiny = "shiny" in selectedAspects
tempPokemon.updateAspects()
return requirement.check(tempPokemon)
}
if (conditionType == "minecraft:all_of") {
val terms = condition["terms"]?.asJsonArray ?: return true
return terms.all {
checkPokemonConditions(it.asJsonObject)
}
}
if (conditionType == "minecraft:any_of") {
val terms = condition["terms"]?.asJsonArray ?: return true
return terms.any {
checkPokemonConditions(it.asJsonObject)
}
}
if (conditionType == "minecraft:inverted") {
val term = condition["term"]?.asJsonObject ?: return true
return !checkPokemonConditions(term)
}
return true
}
fun setEntries() {
dropTable.entries.forEach {
if (it is ItemDropEntry) addEntry(DropWidgetEntry(it))
clearEntries()
dropTable.entries.forEach { it ->
if (it is ItemDropEntry) {
addEntry(DropWidgetEntry(it, mutableSetOf(it.item)))
} else if (it is LootTableDropEntry) { // LootTable doesn't expose pools, so we gotta do all this bullshit
val server = server() ?: return
val lootTableResource = ResourceLocation.fromNamespaceAndPath(
it.id.namespace,
"loot_table/${it.id.path}.json"
)
val resource = server.resourceManager
.getResource(lootTableResource)
.orElse(null)
?: return@forEach
val json = resource.openAsReader().use { reader ->
JsonParser.parseReader(reader).asJsonObject
}
json.getAsJsonArray("pools")?.forEach { poolElement ->
val pool = poolElement.asJsonObject
val entries = pool.getAsJsonArray("entries") ?: return@forEach
val validEntries = entries
.map { entryElement -> entryElement.asJsonObject }
.filter { entry ->
val conditions = entry["conditions"]?.asJsonArray ?: JsonArray()
conditions.all { condition ->
val conditionJson = condition.asJsonObject
checkPokemonConditions(conditionJson)
}
}
val totalWeight = validEntries.sumOf { entry ->
entry["weight"]?.asInt ?: 1
}
for (entry in validEntries) {
val dropEntry = ItemDropEntry()
val conditions = entry["conditions"]?.asJsonArray ?: JsonArray()
val functions = entry["functions"]?.asJsonArray ?: JsonArray()
val items = mutableSetOf<ResourceLocation>()
var tag: ResourceLocation? = null
if (validEntries.size > 1 && totalWeight > 0) {
val weight = entry["weight"]?.asInt ?: 1
dropEntry.percentage = weight.toFloat() / totalWeight.toFloat() * 100F
}
conditions.forEach { condition ->
val conditionJson = condition.asJsonObject
val conditionType = conditionJson["condition"].asString
if (conditionType == "minecraft:random_chance") {
val chance = conditionJson["chance"].asFloat * 100F
if (validEntries.size > 1) {
dropEntry.percentage *= chance / 100F
} else {
dropEntry.percentage = chance
}
}
}
functions.forEach { function ->
val functionObj = function.asJsonObject
if (functionObj["function"].asString == "set_count") {
val count = functionObj["count"].asJsonObject
val min = count["min"].asInt
val max = count["max"].asInt
dropEntry.quantityRange = IntRange(min, max)
}
}
if (entry["type"].asString == "minecraft:tag") {
val itemRegistry = Minecraft.getInstance()
.level!!
.registryAccess()
.lookupOrThrow(Registries.ITEM)
val tagKey = TagKey.create(Registries.ITEM, ResourceLocation.parse(entry["name"].asString))
tag = tagKey.location
val tagItems = itemRegistry.getOrThrow(tagKey)
.stream()
.map { holder ->
holder.unwrapKey().map {
it.location()
}.orElse(null)
}.toList().filterNotNull()
items.addAll(tagItems)
} else if (entry["type"].asString == "minecraft:item") {
items.add(ResourceLocation.parse(entry["name"].asString))
}
addEntry(DropWidgetEntry(dropEntry, items, tag))
}
}
}
}
}
@@ -90,7 +253,7 @@ class DropsScrollingWidget(val pX: Int, val pY: Int): ScrollingWidget<DropsScrol
shadow = true
)
if (dropTable.entries.size == 0) {
if (dropTable.entries.isEmpty()) {
drawScaledText(
context = context,
text = lang("ui.pokedex.info.drops_empty"),
@@ -128,7 +291,7 @@ class DropsScrollingWidget(val pX: Int, val pY: Int): ScrollingWidget<DropsScrol
return children()[index] as DropWidgetEntry
}
class DropWidgetEntry(val entry: ItemDropEntry): Slot<DropWidgetEntry>() {
class DropWidgetEntry(val entry: ItemDropEntry, val items: MutableSet<ResourceLocation>, val tag: ResourceLocation? = null): Slot<DropWidgetEntry>() {
override fun render(
context: GuiGraphics,
index: Int,
@@ -141,9 +304,14 @@ class DropsScrollingWidget(val pX: Int, val pY: Int): ScrollingWidget<DropsScrol
hovered: Boolean,
tickDelta: Float
) {
if (items.isEmpty()) return
context.pose().pushPose()
context.pose().translate(0f, 0f, 100f)
val itemStack = Minecraft.getInstance().player?.level()?.itemRegistry?.get(entry.item)?.defaultInstance ?: ItemStack.EMPTY
val index = ((Util.getMillis() / 1000L) % items.size).toInt()
val itemLocation = items.elementAt(index)
val itemStack = Minecraft.getInstance().player?.level()?.itemRegistry?.get(itemLocation)?.defaultInstance ?: ItemStack.EMPTY
renderScaledGuiItemIcon(
itemStack = itemStack,
x = x.toDouble(),
@@ -151,28 +319,32 @@ class DropsScrollingWidget(val pX: Int, val pY: Int): ScrollingWidget<DropsScrol
matrixStack = context.pose(),
scale = PokedexGUIConstants.SCALE.toDouble()
)
context.pose().pushPose()
val min = entry.quantityRange?.min() ?: entry.quantity
val max = entry.quantityRange?.max() ?: entry.quantity
if (min == max) {
entry.quantity = min
entry.quantityRange = null
}
// var itemName: String = Component.translatable(itemStack.hoverName).string
// itemName = if (itemName.length > 24) {
// itemName.substring(0, 24 - 3) + "..."
// } else {
// itemName
// }
val displayName = if (tag == null) {
itemStack.hoverName.copy().withStyle(ChatFormatting.BOLD)
} else {
Component.translatable("tag.item.${tag.namespace}.${tag.path.replace('/', '.')}").withStyle(ChatFormatting.BOLD)
}
val displayText: MutableComponent = if (entry.quantityRange != null) {
lang(
"ui.pokedex.info.drops_display",
itemStack.hoverName.copy().withStyle(ChatFormatting.BOLD),
displayName,
lang("ui.pokedex.info.drops_range", min, max)
)
} else {
lang(
"ui.pokedex.info.drops_display",
itemStack.hoverName.copy().withStyle(ChatFormatting.BOLD),
displayName,
lang("ui.pokedex.info.drops_amount", entry.quantity)
)
}
@@ -117,6 +117,7 @@ import net.minecraft.core.BlockPos
import net.minecraft.core.Direction
import net.minecraft.core.component.DataComponents
import net.minecraft.core.registries.BuiltInRegistries
import net.minecraft.core.registries.Registries
import net.minecraft.nbt.CompoundTag
import net.minecraft.nbt.NbtOps
import net.minecraft.nbt.NbtUtils
@@ -132,6 +133,7 @@ import net.minecraft.network.protocol.game.DebugPackets
import net.minecraft.network.syncher.EntityDataAccessor
import net.minecraft.network.syncher.EntityDataSerializers
import net.minecraft.network.syncher.SynchedEntityData
import net.minecraft.resources.ResourceKey
import net.minecraft.resources.ResourceLocation
import net.minecraft.server.level.ServerEntity
import net.minecraft.server.level.ServerLevel
@@ -173,6 +175,7 @@ import net.minecraft.world.level.gameevent.GameEvent
import net.minecraft.world.level.material.EmptyFluid
import net.minecraft.world.level.material.FluidState
import net.minecraft.world.level.pathfinder.PathType
import net.minecraft.world.level.storage.loot.LootTable
import net.minecraft.world.phys.AABB
import net.minecraft.world.phys.Vec3
import java.util.*
@@ -242,6 +245,12 @@ open class PokemonEntity(
override val schedulingTracker = SchedulingTracker()
override fun getDefaultLootTable(): ResourceKey<LootTable?>? {
println(cobblemonResource("pokemon/${this.pokemon.species.resourceIdentifier.path}"))
// return ResourceKey.create(Registries.LOOT_TABLE, )
return super.getDefaultLootTable()
}
val form: FormData
get() = pokemon.form
val behaviour: FormPokemonBehaviour
@@ -0,0 +1,28 @@
package com.cobblemon.mod.common.loot
import com.cobblemon.mod.common.loot.conditions.RequirementLootItemCondition
import com.cobblemon.mod.common.platform.PlatformRegistry
import com.cobblemon.mod.common.util.cobblemonResource
import net.minecraft.core.Registry
import net.minecraft.core.registries.BuiltInRegistries
import net.minecraft.core.registries.Registries
import net.minecraft.resources.ResourceKey
import net.minecraft.world.level.storage.loot.predicates.LootItemConditionType
object CobblemonLootItemConditions :
PlatformRegistry<Registry<LootItemConditionType>, ResourceKey<Registry<LootItemConditionType>>, LootItemConditionType>() {
@JvmField
val REQUIREMENT_CONDITION = create(
cobblemonResource("requirement"),
LootItemConditionType(RequirementLootItemCondition.CODEC)
)
fun touch() = Unit
override val registry: Registry<LootItemConditionType>
get() = BuiltInRegistries.LOOT_CONDITION_TYPE
override val resourceKey: ResourceKey<Registry<LootItemConditionType>>
get() = Registries.LOOT_CONDITION_TYPE
}
@@ -0,0 +1,37 @@
package com.cobblemon.mod.common.loot.conditions
import com.cobblemon.mod.common.api.pokemon.requirement.Requirement
import com.cobblemon.mod.common.entity.pokemon.PokemonEntity
import com.cobblemon.mod.common.loot.CobblemonLootItemConditions
import com.mojang.serialization.MapCodec
import com.mojang.serialization.codecs.RecordCodecBuilder
import net.minecraft.world.level.storage.loot.LootContext
import net.minecraft.world.level.storage.loot.parameters.LootContextParams
import net.minecraft.world.level.storage.loot.predicates.LootItemCondition
import net.minecraft.world.level.storage.loot.predicates.LootItemConditionType
/**
* Allows for use of a [Requirement] as a [LootItemConditionType]
*/
class RequirementLootItemCondition(
val requirement: Requirement
) : LootItemCondition {
override fun getType(): LootItemConditionType {
return CobblemonLootItemConditions.REQUIREMENT_CONDITION
}
override fun test(t: LootContext): Boolean {
val entity = t.getParamOrNull(LootContextParams.THIS_ENTITY) as? PokemonEntity ?: return false
return requirement.check(entity.pokemon)
}
companion object {
val CODEC: MapCodec<RequirementLootItemCondition> = RecordCodecBuilder.mapCodec { instance ->
instance.group(
Requirement.CODEC.fieldOf("requirement")
.forGetter(RequirementLootItemCondition::requirement)
).apply(instance, ::RequirementLootItemCondition)
}
}
}
@@ -71,6 +71,7 @@ object CobblemonRequirementAdapter : RequirementAdapter {
this.registerType(OwnerHoldsItemRequirement.ADAPTER_VARIANT, OwnerHoldsItemRequirement::class)
this.registerType(ChanceRequirement.ADAPTER_VARIANT, ChanceRequirement::class)
this.registerType(NegateRequirement.ADAPTER_VARIANT, NegateRequirement::class)
this.registerType(AspectRequirement.ADAPTER_VARIANT, AspectRequirement::class)
}
val gson: Gson by lazy {
@@ -0,0 +1,20 @@
package com.cobblemon.mod.common.pokemon.requirements
import com.cobblemon.mod.common.api.pokemon.requirement.Requirement
import com.cobblemon.mod.common.pokemon.Pokemon
/**
* A [Requirement] that checks if a [Pokemon] has a certain aspect.
*
* @property aspect The aspect to check for.
* @author whatsy
*/
class AspectRequirement(val target: String) : Requirement {
override fun check(pokemon: Pokemon): Boolean {
return target in pokemon.aspects
}
companion object {
val ADAPTER_VARIANT = "aspect"
}
}
@@ -3671,6 +3671,12 @@
"tag.item.cobblemon.terrain_plants": "Terrain Plants",
"tag.item.cobblemon.tall_flowers": "Tall Flowers",
"tag.item.cobblemon.small_flowers": "Small Flowers",
"tag.item.cobblemon.drops.coral": "Any Coral",
"tag.item.cobblemon.drops.dead_coral": "Any Dead Coral",
"tag.item.cobblemon.drops.dyes": "Any Dye",
"tag.item.cobblemon.drops.ink_sacs": "Any Ink Sac",
"tag.item.cobblemon.drops.flowers": "Any Flower",
"tag.item.cobblemon.drops.apricorn_sprouts": "Any Apricorn Sprout",
"tag.worldgen.biome.cobblemon.evolution.regional.bergmite_hisuibiome": "Hisuian",
"tag.worldgen.biome.cobblemon.evolution.regional.bergmite_kalosbiome": "Kalosian",
@@ -0,0 +1,112 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:snowball",
"functions": [
{
"function": "set_count",
"count": {
"min": 0,
"max": 2
}
},
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:sweet_berries",
"functions": [
{
"function": "set_count",
"count": {
"min": 2,
"max": 4
}
},
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:never_melt_ice",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.05
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:occa_berry",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.05
}
]
}
]
}
],
"random_sequence": "cobblemon:pokemon/abomasnow"
}
@@ -0,0 +1,85 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:ender_pearl",
"functions": [
{
"function": "set_count",
"count": {
"min": 0,
"max": 1
}
},
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:twisted_spoon",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.025
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:kasib_berry",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.025
}
]
}
]
}
],
"random_sequence": "cobblemon:pokemon/abra"
}
@@ -0,0 +1,84 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:razor_claw",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.05
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:life_orb",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.05
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:roseli_berry",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.05
}
]
}
]
}
],
"random_sequence": "cobblemon:pokemon/absol"
}
@@ -0,0 +1,32 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:shed_shell",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.05
}
]
}
]
}
],
"random_sequence": "cobblemon:pokemon/accelgor"
}
@@ -0,0 +1,111 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:iron_nugget",
"functions": [
{
"function": "set_count",
"count": {
"min": 0,
"max": 3
}
},
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:iron_sword",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.1
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:dusk_stone",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.1
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:ability_shield",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.1
}
]
}
]
}
],
"random_sequence": "cobblemon:pokemon/aegislash"
}
@@ -0,0 +1,59 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:bone",
"functions": [
{
"function": "set_count",
"count": {
"min": 0,
"max": 3
}
},
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:rocky_helmet",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.1
}
]
}
]
}
],
"random_sequence": "cobblemon:pokemon/aerodactyl"
}
@@ -0,0 +1,85 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:raw_iron",
"functions": [
{
"function": "set_count",
"count": {
"min": 0,
"max": 3
}
},
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:hard_stone",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.1
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:chople_berry",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.1
}
]
}
]
}
],
"random_sequence": "cobblemon:pokemon/aggron"
}
@@ -0,0 +1,59 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:nanab_berry",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.025
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:tag",
"name": "cobblemon:drops/apricorn_sprouts",
"expand": true,
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.025
}
]
}
]
}
],
"random_sequence": "cobblemon:pokemon/aipom"
}
@@ -0,0 +1,85 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:ender_pearl",
"functions": [
{
"function": "set_count",
"count": {
"min": 0,
"max": 3
}
},
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:twisted_spoon",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.1
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:kasib_berry",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.1
}
]
}
]
}
],
"random_sequence": "cobblemon:pokemon/alakazam"
}
@@ -0,0 +1,59 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:sugar",
"functions": [
{
"function": "set_count",
"count": {
"min": 0,
"max": 2
}
},
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:cake",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.05
}
]
}
]
}
],
"random_sequence": "cobblemon:pokemon/alcremie"
}
@@ -0,0 +1,121 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:cod",
"functions": [
{
"function": "set_count",
"count": {
"min": 1,
"max": 1
}
},
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
},
{
"conditions": [
{
"condition": "minecraft:any_of",
"terms": [
{
"condition": "minecraft:entity_properties",
"entity": "this",
"predicate": {
"flags": {
"is_on_fire": true
}
}
},
{
"condition": "minecraft:entity_properties",
"entity": "direct_attacker",
"predicate": {
"equipment": {
"mainhand": {
"predicates": {
"minecraft:enchantments": [
{
"enchantments": "#minecraft:smelts_loot"
}
]
}
}
}
}
}
]
}
],
"function": "minecraft:furnace_smelt"
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:bone_meal",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.05
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:deep_sea_scale",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.05
}
]
}
]
}
],
"random_sequence": "cobblemon:pokemon/alomomola"
}
@@ -0,0 +1,122 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:white_wool",
"functions": [
{
"function": "set_count",
"count": {
"min": 0,
"max": 2
}
},
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:chicken",
"functions": [
{
"function": "set_count",
"count": {
"min": 1,
"max": 1
}
},
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
},
{
"conditions": [
{
"condition": "minecraft:any_of",
"terms": [
{
"condition": "minecraft:entity_properties",
"entity": "this",
"predicate": {
"flags": {
"is_on_fire": true
}
}
},
{
"condition": "minecraft:entity_properties",
"entity": "direct_attacker",
"predicate": {
"equipment": {
"mainhand": {
"predicates": {
"minecraft:enchantments": [
{
"enchantments": "#minecraft:smelts_loot"
}
]
}
}
}
}
}
]
}
],
"function": "minecraft:furnace_smelt"
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:yache_berry",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.05
}
]
}
]
}
],
"random_sequence": "cobblemon:pokemon/altaria"
}
@@ -0,0 +1,32 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:never_melt_ice",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.05
}
]
}
]
}
],
"random_sequence": "cobblemon:pokemon/amaura"
}
@@ -0,0 +1,59 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:nanab_berry",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.05
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:tag",
"name": "cobblemon:drops/apricorn_sprouts",
"expand": true,
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.05
}
]
}
]
}
],
"random_sequence": "cobblemon:pokemon/ambipom"
}
@@ -0,0 +1,59 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:red_mushroom",
"functions": [
{
"function": "set_count",
"count": {
"min": 0,
"max": 2
}
},
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:cheri_berry",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.05
}
]
}
]
}
],
"random_sequence": "cobblemon:pokemon/amoonguss"
}
@@ -0,0 +1,95 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:mutton",
"functions": [
{
"function": "set_count",
"count": {
"min": 2,
"max": 4
}
},
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
},
{
"conditions": [
{
"condition": "minecraft:any_of",
"terms": [
{
"condition": "minecraft:entity_properties",
"entity": "this",
"predicate": {
"flags": {
"is_on_fire": true
}
}
},
{
"condition": "minecraft:entity_properties",
"entity": "direct_attacker",
"predicate": {
"equipment": {
"mainhand": {
"predicates": {
"minecraft:enchantments": [
{
"enchantments": "#minecraft:smelts_loot"
}
]
}
}
}
}
}
]
}
],
"function": "minecraft:furnace_smelt"
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:cheri_berry",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.1
}
]
}
]
}
],
"random_sequence": "cobblemon:pokemon/ampharos"
}
@@ -0,0 +1,58 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:muscle_band",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.1
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:payapa_berry",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.1
}
]
}
]
}
],
"random_sequence": "cobblemon:pokemon/annihilape"
}
@@ -0,0 +1,32 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:quick_claw",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.05
}
]
}
]
}
],
"random_sequence": "cobblemon:pokemon/anorith"
}
@@ -0,0 +1,59 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:sweet_apple",
"functions": [
{
"function": "set_count",
"count": {
"min": 1,
"max": 1
}
},
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:yache_berry",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.05
}
]
}
]
}
],
"random_sequence": "cobblemon:pokemon/appletun"
}
@@ -0,0 +1,59 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:apple",
"functions": [
{
"function": "set_count",
"count": {
"min": 1,
"max": 1
}
},
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:yache_berry",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.025
}
]
}
]
}
],
"random_sequence": "cobblemon:pokemon/applin"
}
@@ -0,0 +1,84 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:mystic_water",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.05
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:shed_shell",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.05
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:wepear_berry",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.05
}
]
}
]
}
],
"random_sequence": "cobblemon:pokemon/araquanid"
}
@@ -0,0 +1,58 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:razor_fang",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.05
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:shed_shell",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.05
}
]
}
]
}
],
"random_sequence": "cobblemon:pokemon/arbok"
}
@@ -0,0 +1,84 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:big_root",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.1
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:grassy_seed",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.1
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:kebia_berry",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.1
}
]
}
]
}
],
"random_sequence": "cobblemon:pokemon/arboliva"
}
@@ -0,0 +1,59 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:bone",
"functions": [
{
"function": "set_count",
"count": {
"min": 0,
"max": 2
}
},
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:rawst_berry",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.05
}
]
}
]
}
],
"random_sequence": "cobblemon:pokemon/arcanine"
}
@@ -0,0 +1,59 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:bone",
"functions": [
{
"function": "set_count",
"count": {
"min": 0,
"max": 2
}
},
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:rawst_berry",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.05
}
]
}
]
}
],
"random_sequence": "cobblemon:pokemon/arcanine_hisui"
}
@@ -0,0 +1,5 @@
{
"type": "minecraft:generic",
"pools": [],
"random_sequence": "cobblemon:pokemon/arceus"
}
@@ -0,0 +1,5 @@
{
"type": "minecraft:generic",
"pools": [],
"random_sequence": "cobblemon:pokemon/archaludon"
}
@@ -0,0 +1,33 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:feather",
"functions": [
{
"function": "set_count",
"count": {
"min": 0,
"max": 2
}
},
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
]
}
]
}
],
"random_sequence": "cobblemon:pokemon/archen"
}
@@ -0,0 +1,33 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:feather",
"functions": [
{
"function": "set_count",
"count": {
"min": 0,
"max": 3
}
},
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
]
}
]
}
],
"random_sequence": "cobblemon:pokemon/archeops"
}
@@ -0,0 +1,32 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:haban_berry",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.1
}
]
}
]
}
],
"random_sequence": "cobblemon:pokemon/arctibax"
}
@@ -0,0 +1,96 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:bone",
"functions": [
{
"function": "set_count",
"count": {
"min": 0,
"max": 2
}
},
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:cod",
"functions": [
{
"function": "set_count",
"count": {
"min": 1,
"max": 1
}
},
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
},
{
"conditions": [
{
"condition": "minecraft:any_of",
"terms": [
{
"condition": "minecraft:entity_properties",
"entity": "this",
"predicate": {
"flags": {
"is_on_fire": true
}
}
},
{
"condition": "minecraft:entity_properties",
"entity": "direct_attacker",
"predicate": {
"equipment": {
"mainhand": {
"predicates": {
"minecraft:enchantments": [
{
"enchantments": "#minecraft:smelts_loot"
}
]
}
}
}
}
}
]
}
],
"function": "minecraft:furnace_smelt"
}
]
}
]
}
],
"random_sequence": "cobblemon:pokemon/arctovish"
}
@@ -0,0 +1,60 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:bone",
"functions": [
{
"function": "set_count",
"count": {
"min": 0,
"max": 2
}
},
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:feather",
"functions": [
{
"function": "set_count",
"count": {
"min": 0,
"max": 2
}
},
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
]
}
]
}
],
"random_sequence": "cobblemon:pokemon/arctozolt"
}
@@ -0,0 +1,139 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:string",
"functions": [
{
"function": "set_count",
"count": {
"min": 0,
"max": 2
}
},
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:spider_eye",
"functions": [
{
"function": "set_count",
"count": {
"min": 0,
"max": 2
}
},
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:rotten_flesh",
"functions": [
{
"function": "set_count",
"count": {
"min": 0,
"max": 2
}
},
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:poison_barb",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.05
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:shed_shell",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.05
}
]
}
]
}
],
"random_sequence": "cobblemon:pokemon/ariados"
}
@@ -0,0 +1,58 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:quick_claw",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.1
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:shed_shell",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.1
}
]
}
]
}
],
"random_sequence": "cobblemon:pokemon/armaldo"
}
@@ -0,0 +1,169 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:charcoal_stick",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.05
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:auspicious_armor",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.05
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:rawst_berry",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.05
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:charcoal",
"functions": [
{
"function": "set_count",
"count": {
"min": 0,
"max": 2
}
},
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:inverted",
"term": {
"condition": "minecraft:any_of",
"terms": [
{
"condition": "cobblemon:requirement",
"requirement": {
"variant": "biome",
"biomeCondition": "#minecraft:is_nether"
}
}
]
}
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:blaze_rod",
"functions": [
{
"function": "set_count",
"count": {
"min": 0,
"max": 2
}
},
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:all_of",
"terms": [
{
"condition": "cobblemon:requirement",
"requirement": {
"variant": "biome",
"biomeCondition": "#minecraft:is_nether"
}
}
]
}
]
}
]
}
],
"random_sequence": "cobblemon:pokemon/armarouge"
}
@@ -0,0 +1,84 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:misty_seed",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.05
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:kebia_berry",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.05
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:fairy_feather",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.05
}
]
}
]
}
],
"random_sequence": "cobblemon:pokemon/aromatisse"
}
@@ -0,0 +1,85 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:raw_iron",
"functions": [
{
"function": "set_count",
"count": {
"min": 0,
"max": 1
}
},
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:hard_stone",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.025
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:chople_berry",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.025
}
]
}
]
}
],
"random_sequence": "cobblemon:pokemon/aron"
}
@@ -0,0 +1,95 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:salmon",
"functions": [
{
"function": "set_count",
"count": {
"min": 1,
"max": 1
}
},
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
},
{
"conditions": [
{
"condition": "minecraft:any_of",
"terms": [
{
"condition": "minecraft:entity_properties",
"entity": "this",
"predicate": {
"flags": {
"is_on_fire": true
}
}
},
{
"condition": "minecraft:entity_properties",
"entity": "direct_attacker",
"predicate": {
"equipment": {
"mainhand": {
"predicates": {
"minecraft:enchantments": [
{
"enchantments": "#minecraft:smelts_loot"
}
]
}
}
}
}
}
]
}
],
"function": "minecraft:furnace_smelt"
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:bone_meal",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.05
}
]
}
]
}
],
"random_sequence": "cobblemon:pokemon/arrokuda"
}
@@ -0,0 +1,123 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:feather",
"functions": [
{
"function": "set_count",
"count": {
"min": 2,
"max": 4
}
},
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:chicken",
"functions": [
{
"function": "set_count",
"count": {
"min": 1,
"max": 1
}
},
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
},
{
"conditions": [
{
"condition": "minecraft:any_of",
"terms": [
{
"condition": "minecraft:entity_properties",
"entity": "this",
"predicate": {
"flags": {
"is_on_fire": true
}
}
},
{
"condition": "minecraft:entity_properties",
"entity": "direct_attacker",
"predicate": {
"equipment": {
"mainhand": {
"predicates": {
"minecraft:enchantments": [
{
"enchantments": "#minecraft:smelts_loot"
}
]
}
}
}
}
}
]
}
],
"function": "minecraft:furnace_smelt"
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:never_melt_ice",
"functions": [
{
"function": "set_count",
"count": {
"min": 1,
"max": 1
}
},
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
]
}
]
}
],
"random_sequence": "cobblemon:pokemon/articuno"
}
@@ -0,0 +1,123 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:feather",
"functions": [
{
"function": "set_count",
"count": {
"min": 2,
"max": 4
}
},
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:chicken",
"functions": [
{
"function": "set_count",
"count": {
"min": 1,
"max": 1
}
},
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
},
{
"conditions": [
{
"condition": "minecraft:any_of",
"terms": [
{
"condition": "minecraft:entity_properties",
"entity": "this",
"predicate": {
"flags": {
"is_on_fire": true
}
}
},
{
"condition": "minecraft:entity_properties",
"entity": "direct_attacker",
"predicate": {
"equipment": {
"mainhand": {
"predicates": {
"minecraft:enchantments": [
{
"enchantments": "#minecraft:smelts_loot"
}
]
}
}
}
}
}
]
}
],
"function": "minecraft:furnace_smelt"
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:twisted_spoon",
"functions": [
{
"function": "set_count",
"count": {
"min": 1,
"max": 1
}
},
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
]
}
]
}
],
"random_sequence": "cobblemon:pokemon/articuno_galar"
}
@@ -0,0 +1,58 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:oran_berry",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.05
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:fairy_feather",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.05
}
]
}
]
}
],
"random_sequence": "cobblemon:pokemon/audino"
}
@@ -0,0 +1,32 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:never_melt_ice",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.1
}
]
}
]
}
],
"random_sequence": "cobblemon:pokemon/aurorus"
}
@@ -0,0 +1,85 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:ice",
"functions": [
{
"function": "set_count",
"count": {
"min": 0,
"max": 3
}
},
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:never_melt_ice",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.05
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:aspear_berry",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.05
}
]
}
]
}
],
"random_sequence": "cobblemon:pokemon/avalugg"
}
@@ -0,0 +1,85 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:ice",
"functions": [
{
"function": "set_count",
"count": {
"min": 0,
"max": 2
}
},
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:never_melt_ice",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.05
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:babiri_berry",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.05
}
]
}
]
}
],
"random_sequence": "cobblemon:pokemon/avalugg_hisui"
}
@@ -0,0 +1,58 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:dragon_fang",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.05
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:haban_berry",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.05
}
]
}
]
}
],
"random_sequence": "cobblemon:pokemon/axew"
}
@@ -0,0 +1,5 @@
{
"type": "minecraft:generic",
"pools": [],
"random_sequence": "cobblemon:pokemon/azelf"
}
@@ -0,0 +1,32 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:kebia_berry",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.1
}
]
}
]
}
],
"random_sequence": "cobblemon:pokemon/azumarill"
}
@@ -0,0 +1,32 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:kebia_berry",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.025
}
]
}
]
}
],
"random_sequence": "cobblemon:pokemon/azurill"
}
@@ -0,0 +1,84 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:dragon_fang",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.05
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:dragon_scale",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.05
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:yache_berry",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.05
}
]
}
]
}
],
"random_sequence": "cobblemon:pokemon/bagon"
}
@@ -0,0 +1,85 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:clay_ball",
"functions": [
{
"function": "set_count",
"count": {
"min": 0,
"max": 1
}
},
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:light_clay",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.025
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:colbur_berry",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.025
}
]
}
]
}
],
"random_sequence": "cobblemon:pokemon/baltoy"
}
@@ -0,0 +1,58 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:phantom_membrane",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.05
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:spell_tag",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.05
}
]
}
]
}
],
"random_sequence": "cobblemon:pokemon/banette"
}
@@ -0,0 +1,32 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:rindo_berry",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.05
}
]
}
]
}
],
"random_sequence": "cobblemon:pokemon/barbaracle"
}
@@ -0,0 +1,59 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:clay_ball",
"functions": [
{
"function": "set_count",
"count": {
"min": 0,
"max": 1
}
},
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:rindo_berry",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.025
}
]
}
]
}
],
"random_sequence": "cobblemon:pokemon/barboach"
}
@@ -0,0 +1,95 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:salmon",
"functions": [
{
"function": "set_count",
"count": {
"min": 1,
"max": 1
}
},
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
},
{
"conditions": [
{
"condition": "minecraft:any_of",
"terms": [
{
"condition": "minecraft:entity_properties",
"entity": "this",
"predicate": {
"flags": {
"is_on_fire": true
}
}
},
{
"condition": "minecraft:entity_properties",
"entity": "direct_attacker",
"predicate": {
"equipment": {
"mainhand": {
"predicates": {
"minecraft:enchantments": [
{
"enchantments": "#minecraft:smelts_loot"
}
]
}
}
}
}
}
]
}
],
"function": "minecraft:furnace_smelt"
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:bone_meal",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.1
}
]
}
]
}
],
"random_sequence": "cobblemon:pokemon/barraskewda"
}
@@ -0,0 +1,95 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:salmon",
"functions": [
{
"function": "set_count",
"count": {
"min": 1,
"max": 1
}
},
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
},
{
"conditions": [
{
"condition": "minecraft:any_of",
"terms": [
{
"condition": "minecraft:entity_properties",
"entity": "this",
"predicate": {
"flags": {
"is_on_fire": true
}
}
},
{
"condition": "minecraft:entity_properties",
"entity": "direct_attacker",
"predicate": {
"equipment": {
"mainhand": {
"predicates": {
"minecraft:enchantments": [
{
"enchantments": "#minecraft:smelts_loot"
}
]
}
}
}
}
}
]
}
],
"function": "minecraft:furnace_smelt"
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:bone_meal",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.05
}
]
}
]
}
],
"random_sequence": "cobblemon:pokemon/basculegion"
}
@@ -0,0 +1,121 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:salmon",
"functions": [
{
"function": "set_count",
"count": {
"min": 1,
"max": 1
}
},
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
},
{
"conditions": [
{
"condition": "minecraft:any_of",
"terms": [
{
"condition": "minecraft:entity_properties",
"entity": "this",
"predicate": {
"flags": {
"is_on_fire": true
}
}
},
{
"condition": "minecraft:entity_properties",
"entity": "direct_attacker",
"predicate": {
"equipment": {
"mainhand": {
"predicates": {
"minecraft:enchantments": [
{
"enchantments": "#minecraft:smelts_loot"
}
]
}
}
}
}
}
]
}
],
"function": "minecraft:furnace_smelt"
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:bone_meal",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.05
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:deep_sea_tooth",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.05
}
]
}
]
}
],
"random_sequence": "cobblemon:pokemon/basculin"
}
@@ -0,0 +1,33 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:bone",
"functions": [
{
"function": "set_count",
"count": {
"min": 0,
"max": 2
}
},
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
]
}
]
}
],
"random_sequence": "cobblemon:pokemon/bastiodon"
}
@@ -0,0 +1,32 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:haban_berry",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.25
}
]
}
]
}
],
"random_sequence": "cobblemon:pokemon/baxcalibur"
}
@@ -0,0 +1,32 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:miracle_seed",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.1
}
]
}
]
}
],
"random_sequence": "cobblemon:pokemon/bayleef"
}
@@ -0,0 +1,122 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:snowball",
"functions": [
{
"function": "set_count",
"count": {
"min": 0,
"max": 2
}
},
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:cod",
"functions": [
{
"function": "set_count",
"count": {
"min": 0,
"max": 2
}
},
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
},
{
"conditions": [
{
"condition": "minecraft:any_of",
"terms": [
{
"condition": "minecraft:entity_properties",
"entity": "this",
"predicate": {
"flags": {
"is_on_fire": true
}
}
},
{
"condition": "minecraft:entity_properties",
"entity": "direct_attacker",
"predicate": {
"equipment": {
"mainhand": {
"predicates": {
"minecraft:enchantments": [
{
"enchantments": "#minecraft:smelts_loot"
}
]
}
}
}
}
}
]
}
],
"function": "minecraft:furnace_smelt"
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:aspear_berry",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.05
}
]
}
]
}
],
"random_sequence": "cobblemon:pokemon/beartic"
}
@@ -0,0 +1,84 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:bright_powder",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.05
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:shed_shell",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.05
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:pecha_berry",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.05
}
]
}
]
}
],
"random_sequence": "cobblemon:pokemon/beautifly"
}
@@ -0,0 +1,84 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:poison_barb",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.05
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:shed_shell",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.05
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:pinap_berry",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.05
}
]
}
]
}
],
"random_sequence": "cobblemon:pokemon/beedrill"
}
@@ -0,0 +1,126 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:ender_pearl",
"functions": [
{
"function": "set_count",
"count": {
"min": 0,
"max": 2
}
},
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:light_clay",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.05
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:colbur_berry",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.05
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:chorus_fruit",
"functions": [
{
"function": "set_count",
"count": {
"min": 0,
"max": 2
}
},
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:all_of",
"terms": [
{
"condition": "cobblemon:requirement",
"requirement": {
"variant": "biome",
"biomeCondition": "#cobblemon:is_end"
}
}
]
}
]
}
]
}
],
"random_sequence": "cobblemon:pokemon/beheeyem"
}
@@ -0,0 +1,59 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:ender_pearl",
"functions": [
{
"function": "set_count",
"count": {
"min": 0,
"max": 2
}
},
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:metal_coat",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.05
}
]
}
]
}
],
"random_sequence": "cobblemon:pokemon/beldum"
}
@@ -0,0 +1,58 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:ochre_froglight",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.05
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:wepear_berry",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.05
}
]
}
]
}
],
"random_sequence": "cobblemon:pokemon/bellibolt"
}
@@ -0,0 +1,58 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:absorb_bulb",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.1
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:pecha_berry",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.1
}
]
}
]
}
],
"random_sequence": "cobblemon:pokemon/bellossom"
}
@@ -0,0 +1,58 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:big_root",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.025
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:pinap_berry",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.025
}
]
}
]
}
],
"random_sequence": "cobblemon:pokemon/bellsprout"
}
@@ -0,0 +1,85 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:ice",
"functions": [
{
"function": "set_count",
"count": {
"min": 0,
"max": 1
}
},
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:never_melt_ice",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.025
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:aspear_berry",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.025
}
]
}
]
}
],
"random_sequence": "cobblemon:pokemon/bergmite"
}
@@ -0,0 +1,32 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:chople_berry",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.05
}
]
}
]
}
],
"random_sequence": "cobblemon:pokemon/bewear"
}
@@ -0,0 +1,59 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:stick",
"functions": [
{
"function": "set_count",
"count": {
"min": 0,
"max": 2
}
},
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:oran_berry",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.05
}
]
}
]
}
],
"random_sequence": "cobblemon:pokemon/bibarel"
}
@@ -0,0 +1,59 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:stick",
"functions": [
{
"function": "set_count",
"count": {
"min": 0,
"max": 1
}
},
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:oran_berry",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.025
}
]
}
]
}
],
"random_sequence": "cobblemon:pokemon/bidoof"
}
@@ -0,0 +1,32 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:rindo_berry",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.025
}
]
}
]
}
],
"random_sequence": "cobblemon:pokemon/binacle"
}
@@ -0,0 +1,58 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:iron_helmet",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.05
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:chople_berry",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.05
}
]
}
]
}
],
"random_sequence": "cobblemon:pokemon/bisharp"
}
@@ -0,0 +1,33 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:echo_shard",
"functions": [
{
"function": "set_count",
"count": {
"min": 1,
"max": 3
}
},
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
]
}
]
}
],
"random_sequence": "cobblemon:pokemon/blacephalon"
}
@@ -0,0 +1,59 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:turtle_scute",
"functions": [
{
"function": "set_count",
"count": {
"min": 0,
"max": 4
}
},
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:mystic_water",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.25
}
]
}
]
}
],
"random_sequence": "cobblemon:pokemon/blastoise"
}
@@ -0,0 +1,122 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:feather",
"functions": [
{
"function": "set_count",
"count": {
"min": 0,
"max": 4
}
},
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:chicken",
"functions": [
{
"function": "set_count",
"count": {
"min": 1,
"max": 1
}
},
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
},
{
"conditions": [
{
"condition": "minecraft:any_of",
"terms": [
{
"condition": "minecraft:entity_properties",
"entity": "this",
"predicate": {
"flags": {
"is_on_fire": true
}
}
},
{
"condition": "minecraft:entity_properties",
"entity": "direct_attacker",
"predicate": {
"equipment": {
"mainhand": {
"predicates": {
"minecraft:enchantments": [
{
"enchantments": "#minecraft:smelts_loot"
}
]
}
}
}
}
}
]
}
],
"function": "minecraft:furnace_smelt"
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:charcoal_stick",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.25
}
]
}
]
}
],
"random_sequence": "cobblemon:pokemon/blaziken"
}
@@ -0,0 +1,58 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:psychic_seed",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.025
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:razz_berry",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.025
}
]
}
]
}
],
"random_sequence": "cobblemon:pokemon/blipbug"
}
@@ -0,0 +1,59 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:lucky_egg",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"weight": 1
},
{
"type": "minecraft:item",
"name": "cobblemon:oval_stone",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"weight": 1
},
{
"type": "minecraft:item",
"name": "minecraft:egg",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"weight": 2
}
]
}
],
"random_sequence": "cobblemon:pokemon/blissey"
}
@@ -0,0 +1,59 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:leather",
"functions": [
{
"function": "set_count",
"count": {
"min": 0,
"max": 1
}
},
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:cheri_berry",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.025
}
]
}
]
}
],
"random_sequence": "cobblemon:pokemon/blitzle"
}
@@ -0,0 +1,111 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:raw_copper",
"functions": [
{
"function": "set_count",
"count": {
"min": 0,
"max": 2
}
},
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:hard_stone",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.05
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:everstone",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.05
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:black_augurite",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.05
}
]
}
]
}
],
"random_sequence": "cobblemon:pokemon/boldore"
}
@@ -0,0 +1,59 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:bone",
"functions": [
{
"function": "set_count",
"count": {
"min": 0,
"max": 2
}
},
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:wepear_berry",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.05
}
]
}
]
}
],
"random_sequence": "cobblemon:pokemon/boltund"
}
@@ -0,0 +1,122 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:feather",
"functions": [
{
"function": "set_count",
"count": {
"min": 0,
"max": 2
}
},
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:chicken",
"functions": [
{
"function": "set_count",
"count": {
"min": 1,
"max": 1
}
},
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
},
{
"conditions": [
{
"condition": "minecraft:any_of",
"terms": [
{
"condition": "minecraft:entity_properties",
"entity": "this",
"predicate": {
"flags": {
"is_on_fire": true
}
}
},
{
"condition": "minecraft:entity_properties",
"entity": "direct_attacker",
"predicate": {
"equipment": {
"mainhand": {
"predicates": {
"minecraft:enchantments": [
{
"enchantments": "#minecraft:smelts_loot"
}
]
}
}
}
}
}
]
}
],
"function": "minecraft:furnace_smelt"
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:razz_berry",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.05
}
]
}
]
}
],
"random_sequence": "cobblemon:pokemon/bombirdier"
}
@@ -0,0 +1,58 @@
{
"type": "minecraft:generic",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:hard_stone",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.025
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cobblemon:passho_berry",
"functions": [
{
"count": {
"type": "minecraft:uniform",
"max": 1,
"min": 0
},
"enchantment": "minecraft:looting",
"function": "minecraft:enchanted_count_increase"
}
],
"conditions": [
{
"condition": "minecraft:random_chance",
"chance": 0.025
}
]
}
]
}
],
"random_sequence": "cobblemon:pokemon/bonsly"
}
Loaded 100 of 2185 files, more files were not shown because too many files have changed in this diff. Show more