mirror of
https://gitlab.com/cable-mc/cobblemon.git
synced 2026-10-25 16:46:25 -04:00
Compare commits
1
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
bf50570ade |
@@ -56,12 +56,16 @@ abstract class MultiblockBlock(properties: Properties) : BaseEntityBlock(propert
|
||||
return super.useWithoutItem(state, world, pos, player, hit)
|
||||
}
|
||||
|
||||
override fun onRemove(state: BlockState, level: Level, pos: BlockPos, newState: BlockState, movedByPiston: Boolean) {
|
||||
val entity = level.getBlockEntity(pos)
|
||||
if (entity is MultiblockEntity && entity.multiblockStructure != null && state.block != newState.block) {
|
||||
entity.multiblockStructure!!.playerWillDestroy(level, pos, state, null)
|
||||
override fun playerWillDestroy(world: Level, pos: BlockPos, state: BlockState, player: Player): BlockState {
|
||||
val result = super.playerWillDestroy(world, pos, state, player)
|
||||
if (!world.isClientSide) {
|
||||
val entity = world.getBlockEntity(pos)
|
||||
if (entity is MultiblockEntity && entity.multiblockStructure != null) {
|
||||
entity.multiblockStructure!!.playerWillDestroy(world, pos, state, player)
|
||||
}
|
||||
entity?.setRemoved()
|
||||
}
|
||||
super.onRemove(state, level, pos, newState, movedByPiston)
|
||||
return result
|
||||
}
|
||||
|
||||
override fun newBlockEntity(pos: BlockPos, state: BlockState): BlockEntity? {
|
||||
|
||||
@@ -61,10 +61,10 @@ object NPCClasses : JsonDataRegistry<NPCClass> {
|
||||
.registerTypeAdapter(NPCPartyProvider::class.java, NPCPartyProviderAdapter)
|
||||
.registerTypeAdapter(NPCInteractConfiguration::class.java, NPCInteractConfigurationAdapter)
|
||||
.registerTypeAdapter(ExpressionLike::class.java, ExpressionLikeAdapter)
|
||||
.registerTypeAdapter(NPCVariationProvider::class.java, NPCVariationProviderAdapter)
|
||||
.registerTypeAdapter(MoValue::class.java, MoValueAdapter)
|
||||
.registerTypeAdapter(NPCClass::class.java, NPCClassAdapter)
|
||||
.registerTypeAdapter(Component::class.java, TextAdapter)
|
||||
.registerTypeAdapter(NPCVariationProvider::class.java, NPCVariationProviderAdapter)
|
||||
.registerTypeAdapter(WeightedAspect::class.java, WeightedAspectAdapter)
|
||||
.registerTypeAdapter(TypeToken.getParameterized(RegistryLikeCondition::class.java, Biome::class.java).type, BiomeLikeConditionAdapter)
|
||||
.registerTypeAdapter(TypeToken.getParameterized(RegistryLikeCondition::class.java, Block::class.java).type, BlockLikeConditionAdapter)
|
||||
|
||||
@@ -17,8 +17,6 @@ import com.cobblemon.mod.common.api.drop.ItemDropMethod
|
||||
import com.cobblemon.mod.common.api.entity.EntityDimensionsAdapter
|
||||
import com.cobblemon.mod.common.api.molang.ExpressionLike
|
||||
import com.cobblemon.mod.common.api.npc.configuration.NPCInteractConfiguration
|
||||
import com.cobblemon.mod.common.api.npc.variation.NPCVariationProvider
|
||||
import com.cobblemon.mod.common.api.npc.variation.WeightedAspect
|
||||
import com.cobblemon.mod.common.api.pokemon.PokemonProperties
|
||||
import com.cobblemon.mod.common.api.reactive.SimpleObservable
|
||||
import com.cobblemon.mod.common.api.spawning.TimeRange
|
||||
@@ -56,10 +54,8 @@ object NPCPresets : JsonDataRegistry<NPCPreset> {
|
||||
.registerTypeAdapter(DropEntry::class.java, DropEntryAdapter)
|
||||
.registerTypeAdapter(CompoundTag::class.java, NbtCompoundAdapter)
|
||||
.registerTypeAdapter(NPCPartyProvider::class.java, NPCPartyProviderAdapter)
|
||||
.registerTypeAdapter(NPCInteractConfiguration::class.java, NPCInteractConfigurationAdapter)
|
||||
.registerTypeAdapter(WeightedAspect::class.java, WeightedAspectAdapter)
|
||||
.registerTypeAdapter(ExpressionLike::class.java, ExpressionLikeAdapter)
|
||||
.registerTypeAdapter(NPCVariationProvider::class.java, NPCVariationProviderAdapter)
|
||||
.registerTypeAdapter(NPCInteractConfiguration::class.java, NPCInteractConfigurationAdapter)
|
||||
.registerTypeAdapter(MoValue::class.java, MoValueAdapter)
|
||||
.registerTypeAdapter(Component::class.java, TextAdapter)
|
||||
.registerTypeAdapter(TypeToken.getParameterized(RegistryLikeCondition::class.java, Biome::class.java).type, BiomeLikeConditionAdapter)
|
||||
@@ -71,7 +67,7 @@ object NPCPresets : JsonDataRegistry<NPCPreset> {
|
||||
.create()
|
||||
|
||||
override val typeToken: TypeToken<NPCPreset> = TypeToken.get(NPCPreset::class.java)
|
||||
override val resourcePath = "npc_presets"
|
||||
override val resourcePath = "npcs"
|
||||
override val observable = SimpleObservable<NPCPresets>()
|
||||
private val npcPresetsByIdentifier = mutableMapOf<ResourceLocation, NPCPreset>()
|
||||
|
||||
|
||||
@@ -10,6 +10,7 @@ package com.cobblemon.mod.common.api.pokemon.feature
|
||||
|
||||
import com.cobblemon.mod.common.CobblemonNetwork.sendPacket
|
||||
import com.cobblemon.mod.common.api.data.JsonDataRegistry
|
||||
import com.cobblemon.mod.common.api.pokemon.PokemonSpecies
|
||||
import com.cobblemon.mod.common.api.pokemon.aspect.AspectProvider
|
||||
import com.cobblemon.mod.common.api.properties.CustomPokemonProperty
|
||||
import com.cobblemon.mod.common.api.properties.CustomPokemonPropertyType
|
||||
@@ -76,6 +77,12 @@ object SpeciesFeatures : JsonDataRegistry<SpeciesFeatureProvider<*>> {
|
||||
}
|
||||
|
||||
fun getFeatures() = (resourceFeatures.keys + codeFeatures.keys).mapNotNull(this::getFeature)
|
||||
|
||||
fun getFeaturesFor(speciesIdentifier: ResourceLocation): List<SpeciesFeatureProvider<*>> {
|
||||
val species = PokemonSpecies.getByIdentifier(speciesIdentifier) ?: return emptyList()
|
||||
return getFeaturesFor(species)
|
||||
}
|
||||
|
||||
fun getFeaturesFor(species: Species): List<SpeciesFeatureProvider<*>> {
|
||||
val mentionedFeatures = species.features.mapNotNull(this::getFeature)
|
||||
val globalFeatures = GlobalSpeciesFeatures.getFeatures()
|
||||
|
||||
+11
-8
@@ -13,7 +13,6 @@ import com.cobblemon.mod.common.api.battles.interpreter.BattleMessage
|
||||
import com.cobblemon.mod.common.api.battles.model.PokemonBattle
|
||||
import com.cobblemon.mod.common.api.battles.model.actor.BattleActor
|
||||
import com.cobblemon.mod.common.api.moves.animations.ActionEffectContext
|
||||
import com.cobblemon.mod.common.api.moves.animations.ActionEffects
|
||||
import com.cobblemon.mod.common.api.moves.animations.UsersProvider
|
||||
import com.cobblemon.mod.common.api.pokemon.status.Statuses
|
||||
import com.cobblemon.mod.common.api.text.red
|
||||
@@ -29,7 +28,6 @@ import com.cobblemon.mod.common.net.messages.client.effect.RunPosableMoLangPacke
|
||||
import com.cobblemon.mod.common.pokemon.evolution.progress.DamageTakenEvolutionProgress
|
||||
import com.cobblemon.mod.common.pokemon.evolution.progress.RecoilEvolutionProgress
|
||||
import com.cobblemon.mod.common.pokemon.status.statuses.persistent.PoisonStatus
|
||||
import com.cobblemon.mod.common.util.asIdentifierDefaultingNamespace
|
||||
import com.cobblemon.mod.common.util.battleLang
|
||||
import com.cobblemon.mod.common.util.cobblemonResource
|
||||
import com.cobblemon.mod.common.util.lang
|
||||
@@ -102,12 +100,7 @@ class DamageInstruction(
|
||||
if (status is PoisonStatus) {
|
||||
status = pokemon.effectedPokemon.status?.status ?: status
|
||||
}
|
||||
|
||||
// Damage effects without a action effect receive the generic damage effect
|
||||
val actionEffect = status?.getActionEffect() ?: effect?.let {
|
||||
ActionEffects.actionEffects["generic_damage".asIdentifierDefaultingNamespace()]
|
||||
} ?: return@dispatch GO
|
||||
|
||||
val actionEffect = status?.getActionEffect() ?: return@dispatch GO
|
||||
val providers = mutableListOf<Any>(battle)
|
||||
battlePokemon.effectedPokemon.entity?.let { UsersProvider(it) }?.let(providers::add)
|
||||
|
||||
@@ -144,6 +137,16 @@ class DamageInstruction(
|
||||
distance = 50.0
|
||||
)
|
||||
}
|
||||
//Play hit particle
|
||||
if (pokemonEntity != null) {
|
||||
RunPosableMoLangPacket(pokemonEntity.id, setOf("q.particle('cobblemon:hit', 'target')")).sendToPlayersAround(
|
||||
x = pokemonEntity.x,
|
||||
y = pokemonEntity.y,
|
||||
z = pokemonEntity.z,
|
||||
worldKey = pokemonEntity.level().dimension(),
|
||||
distance = 50.0
|
||||
)
|
||||
}
|
||||
|
||||
val newHealthRatio: Float
|
||||
val remainingHealth = newHealth.split("/")[0].toInt()
|
||||
|
||||
@@ -72,7 +72,7 @@ class RestorationTankBlock(settings: Properties) : MultiblockBlock(settings), Wo
|
||||
|
||||
override fun playerWillDestroy(world: Level, pos: BlockPos, state: BlockState, player: Player): BlockState {
|
||||
val result = super.playerWillDestroy(world, pos, state, player)
|
||||
if (!world.isClientSide && player.isCreative) {
|
||||
if (!world.isClientSide) {
|
||||
val otherPart = world.getBlockState(getPositionOfOtherPart(state, pos))
|
||||
|
||||
if (otherPart.block is RestorationTankBlock) {
|
||||
@@ -85,6 +85,7 @@ class RestorationTankBlock(settings: Properties) : MultiblockBlock(settings), Wo
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
return result
|
||||
}
|
||||
|
||||
@@ -170,14 +171,7 @@ class RestorationTankBlock(settings: Properties) : MultiblockBlock(settings), Wo
|
||||
}
|
||||
|
||||
override fun onRemove(state: BlockState, world: Level, pos: BlockPos, newState: BlockState, moved: Boolean) {
|
||||
if (state.block != newState.block) {
|
||||
super.onRemove(state, world, pos, newState, moved)
|
||||
val otherPart = world.getBlockState(getPositionOfOtherPart(state, pos))
|
||||
|
||||
if (otherPart.block is RestorationTankBlock) {
|
||||
world.setBlock(getPositionOfOtherPart(state, pos), Blocks.AIR.defaultBlockState(), UPDATE_CLIENTS)
|
||||
}
|
||||
}
|
||||
if (!state.`is`(newState.block)) super.onRemove(state, world, pos, newState, moved)
|
||||
}
|
||||
|
||||
@Deprecated("Deprecated in Java")
|
||||
@@ -223,25 +217,6 @@ class RestorationTankBlock(settings: Properties) : MultiblockBlock(settings), Wo
|
||||
shape
|
||||
}
|
||||
}
|
||||
|
||||
override fun updateShape(
|
||||
state: BlockState,
|
||||
direction: Direction,
|
||||
neighborState: BlockState,
|
||||
world: LevelAccessor,
|
||||
pos: BlockPos,
|
||||
neighborPos: BlockPos
|
||||
): BlockState {
|
||||
val isTank = neighborState.`is`(this)
|
||||
val part = state.getValue(PART)
|
||||
if (!isTank && part == TankPart.TOP && neighborPos == pos.below()) {
|
||||
return Blocks.AIR.defaultBlockState()
|
||||
} else if (!isTank && part == TankPart.BOTTOM && neighborPos == pos.above()) {
|
||||
return Blocks.AIR.defaultBlockState()
|
||||
}
|
||||
return state
|
||||
}
|
||||
|
||||
override fun getContainer(
|
||||
state: BlockState,
|
||||
world: LevelAccessor,
|
||||
|
||||
+4
-5
@@ -9,7 +9,6 @@
|
||||
package com.cobblemon.mod.common.block.multiblock
|
||||
|
||||
import com.cobblemon.mod.common.Cobblemon
|
||||
import com.cobblemon.mod.common.CobblemonBlocks
|
||||
import com.cobblemon.mod.common.CobblemonSounds
|
||||
import com.cobblemon.mod.common.advancement.CobblemonCriteria
|
||||
import com.cobblemon.mod.common.api.events.CobblemonEvents
|
||||
@@ -233,7 +232,7 @@ class FossilMultiblockStructure (
|
||||
|
||||
for (i in 0..5) {
|
||||
box = box.move(directionToBehind.normal.x.toDouble(), 0.0, directionToBehind.normal.z.toDouble())
|
||||
val fixedPosition = makeSuitableY(world, idealPlace.offset(directionToBehind.normal.multiply(i + 1)), entity, box)
|
||||
val fixedPosition = makeSuitableY(world, idealPlace.offset(directionToBehind.normal), entity, box)
|
||||
if (fixedPosition != null) {
|
||||
entity.setPos(fixedPosition.center.subtract(0.0, 0.5, 0.0))
|
||||
// TODO: Find a correct way to set the new entity's Yaw rotation. (Face away from the machine)
|
||||
@@ -329,9 +328,9 @@ class FossilMultiblockStructure (
|
||||
val analyzerEntity = world.getBlockEntity(analyzerPos) as? MultiblockEntity
|
||||
val tankBaseEntity = world.getBlockEntity(tankBasePos) as? MultiblockEntity
|
||||
val tankTopEntity = world.getBlockEntity(tankBasePos.above()) as? MultiblockEntity
|
||||
val tankBaseBlockState = tankBaseEntity?.blockPos?.let { world.getBlockState(it) }
|
||||
val direction = if (tankBaseBlockState?.block == CobblemonBlocks.RESTORATION_TANK) tankBaseBlockState.getValue(HorizontalDirectionalBlock.FACING).opposite else Direction.UP
|
||||
val wildPokemon: Pokemon? = if (hasCreatedPokemon) resultingFossil?.result?.create() else null
|
||||
val tankBaseBlockState = world.getBlockState(tankBaseEntity?.blockPos)
|
||||
val direction = tankBaseBlockState.getValue(HorizontalDirectionalBlock.FACING).opposite
|
||||
val wildPokemon: Pokemon? = if(hasCreatedPokemon) resultingFossil?.result?.create() else null
|
||||
|
||||
monitorEntity?.multiblockStructure = null
|
||||
analyzerEntity?.multiblockStructure = null
|
||||
|
||||
@@ -94,7 +94,7 @@ object CobblemonClient {
|
||||
teamData = ClientPlayerTeamData()
|
||||
clientPokedexData = ClientPokedexManager(mutableMapOf())
|
||||
storage.onLogin()
|
||||
CobblemonDataProvider.canReload = false
|
||||
// CobblemonDataProvider.canReload = false
|
||||
}
|
||||
|
||||
fun onLogout() {
|
||||
|
||||
+1
-1
@@ -104,8 +104,8 @@ class PokemonOnShoulderRenderer<T : Player>(renderLayerParent: RenderLayerParent
|
||||
|
||||
var state = FloatingState()
|
||||
state.currentAspects = shoulderData.aspects
|
||||
|
||||
val model = PokemonModelRepository.getPoser(shoulderData.species.resourceIdentifier, state)
|
||||
model.context = context
|
||||
context.put(RenderContext.SPECIES, shoulderData.species.resourceIdentifier)
|
||||
context.put(RenderContext.ASPECTS, shoulderData.aspects)
|
||||
val scale = shoulderData.form.baseScale * shoulderData.scaleModifier
|
||||
|
||||
@@ -106,10 +106,10 @@ object CobblemonDataProvider : DataProvider {
|
||||
}
|
||||
|
||||
override fun <T : DataRegistry> register(registry: T): T {
|
||||
// Only send message once
|
||||
if (this.registries.isEmpty()) {
|
||||
LOGGER.info("Note: Cobblemon data registries are only loaded once per server instance as Pokémon species are not safe to reload.")
|
||||
}
|
||||
// // Only send message once
|
||||
// if (this.registries.isEmpty()) {
|
||||
// LOGGER.info("Note: Cobblemon data registries are only loaded once per server instance as Pokémon species are not safe to reload.")
|
||||
// }
|
||||
this.registries.add(registry)
|
||||
LOGGER.info("Registered the {} registry", registry.id.toString())
|
||||
LOGGER.debug("Registered the {} registry of class {}", registry.id.toString(), registry::class.qualifiedName)
|
||||
@@ -148,7 +148,7 @@ object CobblemonDataProvider : DataProvider {
|
||||
registries.filter { it.type == this.type }
|
||||
.forEach { it.reload(manager) }
|
||||
if (isInGame && this.type == PackType.SERVER_DATA) {
|
||||
canReload = false
|
||||
// canReload = false
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+2
-7
@@ -14,7 +14,6 @@ import com.cobblemon.mod.common.CobblemonSounds
|
||||
import com.cobblemon.mod.common.ModAPI
|
||||
import com.cobblemon.mod.common.api.fishing.FishingBait
|
||||
import com.cobblemon.mod.common.api.fishing.FishingBaits
|
||||
import com.cobblemon.mod.common.api.scheduling.afterOnServer
|
||||
import com.cobblemon.mod.common.api.spawning.BestSpawner
|
||||
import com.cobblemon.mod.common.api.spawning.SpawnBucket
|
||||
import com.cobblemon.mod.common.api.spawning.detail.EntitySpawnResult
|
||||
@@ -26,7 +25,6 @@ import com.cobblemon.mod.common.entity.pokemon.PokemonEntity
|
||||
import com.cobblemon.mod.common.item.interactive.PokerodItem
|
||||
import com.cobblemon.mod.common.net.messages.client.effect.SpawnSnowstormParticlePacket
|
||||
import com.cobblemon.mod.common.util.cobblemonResource
|
||||
import com.cobblemon.mod.common.util.party
|
||||
import com.cobblemon.mod.common.util.toBlockPos
|
||||
import kotlin.math.sqrt
|
||||
import net.minecraft.advancements.CriteriaTriggers
|
||||
@@ -711,11 +709,8 @@ class PokeRodFishingBobberEntity(type: EntityType<out PokeRodFishingBobberEntity
|
||||
hookedEntity = level().getEntity(hookedEntityID)
|
||||
}
|
||||
|
||||
afterOnServer(ticks = 2) {
|
||||
if (player !in player.level().players()) {
|
||||
return@afterOnServer
|
||||
}
|
||||
spawnedPokemon?.forceBattle(player as ServerPlayer)
|
||||
if (spawnedPokemon != null) {
|
||||
BattleBuilder.pve((player as ServerPlayer), spawnedPokemon).ifErrored { it.sendTo(player) { it.red() } }
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -379,7 +379,6 @@ class NPCEntity(world: Level) : AgeableMob(CobblemonEntities.NPC, world), Npc, P
|
||||
npc.config.forEach { it.applyDefault(this) }
|
||||
npc.variations.values.forEach { this.appliedAspects.addAll(it.provideAspects(this)) }
|
||||
party = npc.party?.provide(this, level)
|
||||
updateAspects()
|
||||
}
|
||||
|
||||
override fun mobInteract(player: Player, hand: InteractionHand): InteractionResult {
|
||||
|
||||
@@ -10,8 +10,6 @@ package com.cobblemon.mod.common.item
|
||||
|
||||
import com.cobblemon.mod.common.client.CobblemonClient
|
||||
import com.cobblemon.mod.common.client.pokedex.PokedexTypes
|
||||
import com.cobblemon.mod.common.pokedex.scanner.PokedexController
|
||||
import com.cobblemon.mod.common.pokedex.scanner.PokemonScanner
|
||||
import net.minecraft.client.player.LocalPlayer
|
||||
import net.minecraft.server.level.ServerPlayer
|
||||
import net.minecraft.world.InteractionHand
|
||||
@@ -55,10 +53,6 @@ class PokedexItem(val type: PokedexTypes): CobblemonItem(Item.Properties().stack
|
||||
val ticksInUse = getUseDuration(stack, user) - remainingUseTicks
|
||||
usageContext.useTick(user, ticksInUse, true)
|
||||
}
|
||||
if (!world.isClientSide && user is ServerPlayer) {
|
||||
val controller = PokedexController.getController(user)
|
||||
controller.useTick(remainingUseTicks)
|
||||
}
|
||||
super.onUseTick(world, user, stack, remainingUseTicks)
|
||||
}
|
||||
|
||||
@@ -73,10 +67,6 @@ class PokedexItem(val type: PokedexTypes): CobblemonItem(Item.Properties().stack
|
||||
val ticksInUse = getUseDuration(stack, user) - remainingUseTicks
|
||||
usageContext.stopUsing(user, ticksInUse)
|
||||
}
|
||||
if (!world.isClientSide && user is ServerPlayer) {
|
||||
val controller = PokedexController.getController(user)
|
||||
controller.end()
|
||||
}
|
||||
|
||||
super.releaseUsing(stack, world, user, remainingUseTicks)
|
||||
}
|
||||
|
||||
+15
-11
@@ -13,7 +13,9 @@ import com.cobblemon.mod.common.api.pokeball.PokeBalls
|
||||
import com.cobblemon.mod.common.api.pokemon.PokemonSpecies
|
||||
import com.cobblemon.mod.common.entity.PoseType
|
||||
import com.cobblemon.mod.common.entity.pokemon.PokemonEntity
|
||||
import com.cobblemon.mod.common.pokemon.FormData
|
||||
import com.cobblemon.mod.common.pokemon.Gender
|
||||
import com.cobblemon.mod.common.pokemon.Species
|
||||
import com.cobblemon.mod.common.util.*
|
||||
import java.util.UUID
|
||||
import net.minecraft.world.entity.Entity
|
||||
@@ -25,10 +27,10 @@ import net.minecraft.resources.ResourceLocation
|
||||
class SpawnPokemonPacket(
|
||||
private val ownerId: UUID?,
|
||||
private val scaleModifier: Float,
|
||||
private val speciesId: ResourceLocation,
|
||||
private val species: Species,
|
||||
private val gender: Gender,
|
||||
private val shiny: Boolean,
|
||||
private val formName: String,
|
||||
private val form: FormData,
|
||||
private val aspects: Set<String>,
|
||||
private val battleId: UUID?,
|
||||
private val phasingTargetId: Int,
|
||||
@@ -50,10 +52,10 @@ class SpawnPokemonPacket(
|
||||
constructor(entity: PokemonEntity, vanillaSpawnPacket: ClientboundAddEntityPacket) : this(
|
||||
entity.ownerUUID,
|
||||
entity.pokemon.scaleModifier,
|
||||
entity.exposedSpecies.resourceIdentifier,
|
||||
entity.exposedSpecies,
|
||||
entity.pokemon.gender,
|
||||
entity.pokemon.shiny,
|
||||
entity.pokemon.form.formOnlyShowdownId(),
|
||||
entity.pokemon.form,
|
||||
entity.pokemon.aspects,
|
||||
entity.battleId,
|
||||
entity.phasingTargetId,
|
||||
@@ -73,10 +75,10 @@ class SpawnPokemonPacket(
|
||||
override fun encodeEntityData(buffer: RegistryFriendlyByteBuf) {
|
||||
buffer.writeNullable(ownerId) { _, v -> buffer.writeUUID(v) }
|
||||
buffer.writeFloat(this.scaleModifier)
|
||||
buffer.writeIdentifier(this.speciesId)
|
||||
buffer.writeIdentifier(this.species.resourceIdentifier)
|
||||
buffer.writeEnumConstant(this.gender)
|
||||
buffer.writeBoolean(this.shiny)
|
||||
buffer.writeString(this.formName)
|
||||
buffer.writeString(this.form.formOnlyShowdownId())
|
||||
buffer.writeCollection(this.aspects) { pb, value -> pb.writeString(value) }
|
||||
buffer.writeNullable(this.battleId) { pb, value -> pb.writeUUID(value) }
|
||||
buffer.writeInt(this.phasingTargetId)
|
||||
@@ -96,10 +98,10 @@ class SpawnPokemonPacket(
|
||||
entity.ownerUUID = ownerId
|
||||
entity.pokemon.apply {
|
||||
scaleModifier = this@SpawnPokemonPacket.scaleModifier
|
||||
species = this@SpawnPokemonPacket.speciesId.let { PokemonSpecies.getByIdentifier(it) ?: PokemonSpecies.random() }
|
||||
species = this@SpawnPokemonPacket.species
|
||||
gender = this@SpawnPokemonPacket.gender
|
||||
shiny = this@SpawnPokemonPacket.shiny
|
||||
form = this@SpawnPokemonPacket.formName.let { formName -> species.forms.find { it.formOnlyShowdownId() == formName }} ?: species.standardForm
|
||||
form = this@SpawnPokemonPacket.form
|
||||
forcedAspects = this@SpawnPokemonPacket.aspects
|
||||
nickname = this@SpawnPokemonPacket.nickname
|
||||
PokeBalls.getPokeBall(this@SpawnPokemonPacket.caughtBall)?.let { caughtBall = it }
|
||||
@@ -125,10 +127,12 @@ class SpawnPokemonPacket(
|
||||
fun decode(buffer: RegistryFriendlyByteBuf): SpawnPokemonPacket {
|
||||
val ownerId = buffer.readNullable { buffer.readUUID() }
|
||||
val scaleModifier = buffer.readFloat()
|
||||
val speciesId = buffer.readIdentifier()
|
||||
val identifier = buffer.readIdentifier()
|
||||
val species = requireNotNull(PokemonSpecies.getByIdentifier(identifier)) { "received unknown PokemonSpecies: $identifier" }
|
||||
val gender = buffer.readEnumConstant(Gender::class.java)
|
||||
val shiny = buffer.readBoolean()
|
||||
val formName = buffer.readString()
|
||||
val showdownId = buffer.readString()
|
||||
val form = species.forms.firstOrNull { it.formOnlyShowdownId() == showdownId } ?: species.standardForm
|
||||
val aspects = buffer.readList { it.readString() }.toSet()
|
||||
val battleId = buffer.readNullable { buffer.readUUID() }
|
||||
val phasingTargetId = buffer.readInt()
|
||||
@@ -144,7 +148,7 @@ class SpawnPokemonPacket(
|
||||
val freezeFrame = buffer.readFloat()
|
||||
val vanillaPacket = decodeVanillaPacket(buffer)
|
||||
|
||||
return SpawnPokemonPacket(ownerId, scaleModifier, speciesId, gender, shiny, formName, aspects, battleId, phasingTargetId, beamModeEmitter, nickname, labelLevel, poseType, unbattlable, hideLabel, caughtBall, spawnAngle, friendship, freezeFrame, vanillaPacket)
|
||||
return SpawnPokemonPacket(ownerId, scaleModifier, species, gender, shiny, form, aspects, battleId, phasingTargetId, beamModeEmitter, nickname, labelLevel, poseType, unbattlable, hideLabel, caughtBall, spawnAngle, friendship, freezeFrame, vanillaPacket)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,81 +0,0 @@
|
||||
package com.cobblemon.mod.common.pokedex.scanner
|
||||
|
||||
import com.cobblemon.mod.common.pokemon.Pokemon
|
||||
import net.minecraft.server.level.ServerPlayer
|
||||
import java.util.*
|
||||
|
||||
enum class STATE {
|
||||
IDLE,
|
||||
SCANNING,
|
||||
SCANNED
|
||||
}
|
||||
|
||||
class PokedexController(val player: ServerPlayer) {
|
||||
companion object {
|
||||
private val controllers = mutableMapOf<UUID, PokedexController>()
|
||||
fun getController(player: ServerPlayer): PokedexController {
|
||||
val uuid = player.uuid
|
||||
if (!controllers.containsKey(uuid)) controllers[uuid] = PokedexController(player)
|
||||
return controllers[uuid]!!
|
||||
}
|
||||
|
||||
const val GOAL_TICKS = 50
|
||||
}
|
||||
|
||||
var zoom: Int = 10
|
||||
var targetPokemon: Pokemon? = null
|
||||
private var startTime: Int? = null
|
||||
|
||||
var state: STATE = STATE.IDLE
|
||||
|
||||
fun useTick(remainingUseTicks: Int) {
|
||||
val target = PokemonScanner.findPokemon(player, zoom)
|
||||
if (target === null) {
|
||||
// Not pointed at anything.
|
||||
startTime = null
|
||||
targetPokemon = null
|
||||
zoom = 10
|
||||
state = STATE.IDLE
|
||||
// TODO: Send IDLE update packet
|
||||
/**
|
||||
* {
|
||||
* state: "IDLE"
|
||||
* }
|
||||
*/
|
||||
return
|
||||
}
|
||||
val newTargetPokemon = target.pokemon
|
||||
if (targetPokemon !== newTargetPokemon) {
|
||||
// Pointed at a new thing.
|
||||
startTime = remainingUseTicks
|
||||
targetPokemon = newTargetPokemon
|
||||
state = STATE.SCANNING
|
||||
// TODO: Send SCANNING update packet
|
||||
/**
|
||||
* {
|
||||
* state: "SCANNING"
|
||||
* }
|
||||
*/
|
||||
return
|
||||
}
|
||||
if (state == STATE.SCANNING && startTime!! - remainingUseTicks >= GOAL_TICKS) {
|
||||
state = STATE.SCANNED
|
||||
// TODO: Send SCANNED update packet
|
||||
/**
|
||||
* {
|
||||
* state: "SCANNED",
|
||||
* pokemon: targetPokemon
|
||||
* }
|
||||
*/
|
||||
}
|
||||
}
|
||||
|
||||
fun end() {
|
||||
startTime = null
|
||||
targetPokemon = null
|
||||
if (state !== STATE.IDLE) {
|
||||
// TODO: Send IDLE update packet (as above, so below)
|
||||
state = STATE.IDLE
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -96,7 +96,9 @@ import kotlin.math.absoluteValue
|
||||
import kotlin.math.max
|
||||
import kotlin.math.min
|
||||
import kotlin.math.roundToInt
|
||||
import kotlin.properties.Delegates
|
||||
import kotlin.random.Random
|
||||
import kotlin.reflect.KProperty
|
||||
import net.minecraft.core.BlockPos
|
||||
import net.minecraft.core.RegistryAccess
|
||||
import net.minecraft.nbt.*
|
||||
@@ -132,15 +134,17 @@ enum class OriginalTrainerType : StringRepresentable {
|
||||
|
||||
open class Pokemon : ShowdownIdentifiable {
|
||||
var uuid = UUID.randomUUID()
|
||||
var species = PokemonSpecies.random()
|
||||
|
||||
var speciesIdentifier = PokemonSpecies.random().resourceIdentifier
|
||||
set(value) {
|
||||
if (PokemonSpecies.getByIdentifier(value.resourceIdentifier) == null) {
|
||||
val species = PokemonSpecies.getByIdentifier(value) ?: PokemonSpecies.random()
|
||||
if (PokemonSpecies.getByIdentifier(value) == null) {
|
||||
throw IllegalArgumentException("Cannot set a species that isn't registered")
|
||||
}
|
||||
val quotient = clamp(currentHealth / maxHealth.toFloat(), 0F, 1F)
|
||||
field = value
|
||||
if (!isClient) {
|
||||
val newFeatures = SpeciesFeatures.getFeaturesFor(species).mapNotNull { it.invoke(this) }
|
||||
val newFeatures = SpeciesFeatures.getFeaturesFor(value).mapNotNull { it.invoke(this) }
|
||||
features.clear()
|
||||
features.addAll(newFeatures)
|
||||
}
|
||||
@@ -150,12 +154,12 @@ open class Pokemon : ShowdownIdentifiable {
|
||||
checkGender()
|
||||
updateHP(quotient)
|
||||
this.attemptAbilityUpdate()
|
||||
_species.emit(value)
|
||||
_species.emit(species)
|
||||
}
|
||||
|
||||
var form = species.standardForm
|
||||
var formName = "Default"
|
||||
set(value) {
|
||||
val old = field
|
||||
val old = species.forms.find { it.name == formName } ?: species.standardForm
|
||||
val new = species.forms.find { it.name == value } ?: species.standardForm
|
||||
// Species updates already update HP but just a form change may require it
|
||||
// Moved to before the field was set else it won't actually do the hp calc proper <3
|
||||
val quotient = clamp(currentHealth / maxHealth.toFloat(), 0F, 1F)
|
||||
@@ -167,9 +171,20 @@ open class Pokemon : ShowdownIdentifiable {
|
||||
checkGender()
|
||||
updateHP(quotient)
|
||||
this.attemptAbilityUpdate()
|
||||
_form.emit(value)
|
||||
_form.emit(new)
|
||||
}
|
||||
|
||||
var species: Species
|
||||
get() = PokemonSpecies.getByIdentifier(speciesIdentifier) ?: PokemonSpecies.random()
|
||||
set(value) { speciesIdentifier = value.resourceIdentifier }
|
||||
|
||||
var form: FormData
|
||||
get() = species.forms.find { it.name == formName } ?: species.standardForm
|
||||
set(value) { formName = value.name }
|
||||
|
||||
// Floating Platform for surface water battles
|
||||
var battleSurface: Boat? = null
|
||||
|
||||
// Need to happen before currentHealth init due to the calc
|
||||
var ivs = IVs.createRandomIVs()
|
||||
internal set
|
||||
@@ -564,6 +579,18 @@ open class Pokemon : ShowdownIdentifiable {
|
||||
position.z.toInt()
|
||||
)
|
||||
) && this.species.types.all { it != ElementalTypes.WATER && it != ElementalTypes.FLYING }) {
|
||||
|
||||
// Create a new boat entity with the generic EntityType.BOAT
|
||||
val raftEntity = Boat(level, position.x, position.y, position.z)
|
||||
|
||||
raftEntity.variant = Boat.Type.BAMBOO
|
||||
|
||||
raftEntity.setPos(position.x, position.y, position.z) // Set the position of the boat
|
||||
|
||||
// Spawn the boat entity in the world
|
||||
level.addFreshEntity(raftEntity)
|
||||
|
||||
this.battleSurface = raftEntity
|
||||
}
|
||||
}
|
||||
|
||||
@@ -671,11 +698,13 @@ open class Pokemon : ShowdownIdentifiable {
|
||||
return future
|
||||
}
|
||||
|
||||
|
||||
fun recall() {
|
||||
CobblemonEvents.POKEMON_RECALLED.post(PokemonRecalledEvent(this, this.entity))
|
||||
val state = this.state as? ActivePokemonState
|
||||
this.state = InactivePokemonState()
|
||||
state?.recall()
|
||||
this.battleSurface?.discard() // destroy the battle surface if it exists
|
||||
}
|
||||
|
||||
fun tryRecallWithAnimation() {
|
||||
|
||||
@@ -58,13 +58,6 @@ object NPCClassAdapter : JsonDeserializer<NPCClass> {
|
||||
obj.get("hitbox")?.let { npcClass.hitbox = ctx.deserialize(it, EntityDimensions::class.java) }
|
||||
obj.get("battleConfiguration")?.let { npcClass.battleConfiguration = ctx.deserialize(it, NPCBattleConfiguration::class.java) }
|
||||
obj.get("interaction")?.let { npcClass.interaction = ctx.deserialize(it, NPCInteractConfiguration::class.java) }
|
||||
obj.get("variations")?.let {
|
||||
val obj = it.asJsonObject
|
||||
obj.entrySet().forEach { (key, value) ->
|
||||
val provider = ctx.deserialize<NPCVariationProvider>(value, NPCVariationProvider::class.java)
|
||||
npcClass.variations[key] = provider
|
||||
}
|
||||
}
|
||||
obj.get("party")?.let { npcClass.party = ctx.deserialize(it, NPCPartyProvider::class.java) }
|
||||
obj.get("skill")?.let { npcClass.skill = it.asInt }
|
||||
|
||||
|
||||
@@ -5,16 +5,16 @@
|
||||
"poses": {
|
||||
"sleep": {
|
||||
"poseTypes": ["SLEEP"],
|
||||
"animations": ["q.bedrock('amaura_fetus', 'sleep')"],
|
||||
"quirks": [
|
||||
{
|
||||
"name": "quirk",
|
||||
"animations": ["q.bedrock_stateful('amaura_fetus', 'quirk')"],
|
||||
"loopTimes": 1,
|
||||
"minSecondsBetweenOccurrences": 30,
|
||||
"maxSecondsBetweenOccurrences": 60
|
||||
}
|
||||
]
|
||||
}
|
||||
"animations": ["q.bedrock('amaura_fetus', 'sleep')"]
|
||||
},
|
||||
"quirks": [
|
||||
{
|
||||
"name": "quirk",
|
||||
"animations": ["q.bedrock_stateful('amaura_fetus', 'quirk')"],
|
||||
"loopTimes": 1,
|
||||
"minSecondsBetweenOccurrences": 30,
|
||||
"maxSecondsBetweenOccurrences": 60
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -5,7 +5,7 @@
|
||||
"item.cobblemon.verdant_ball": "Grünball",
|
||||
"item.cobblemon.roseate_ball": "Rosenball",
|
||||
"item.cobblemon.citrine_ball": "Zitrinball",
|
||||
"item.cobblemon.great_ball": "Superball",
|
||||
"item.cobblemon.great_ball": "Super Ball",
|
||||
"item.cobblemon.ultra_ball": "Hyperball",
|
||||
"item.cobblemon.master_ball": "Meister Ball",
|
||||
"item.cobblemon.safari_ball": "Safariball",
|
||||
@@ -31,22 +31,22 @@
|
||||
"item.cobblemon.park_ball": "Parkball",
|
||||
"item.cobblemon.dream_ball": "Traumball",
|
||||
"item.cobblemon.beast_ball": "Ultraball",
|
||||
"item.cobblemon.ancient_poke_ball": "Antiker Pokéball",
|
||||
"item.cobblemon.ancient_poke_ball": "Ancient Poké Ball",
|
||||
"item.cobblemon.ancient_citrine_ball": "Antiker Zitrin Ball",
|
||||
"item.cobblemon.ancient_verdant_ball": "Ancient Verdant Ball",
|
||||
"item.cobblemon.ancient_azure_ball": "Antiker Azurball",
|
||||
"item.cobblemon.ancient_roseate_ball": "Antiker Rosaball",
|
||||
"item.cobblemon.ancient_slate_ball": "Antiker Schieferball",
|
||||
"item.cobblemon.ancient_ivory_ball": "Antiker Elfenbeinball",
|
||||
"item.cobblemon.ancient_great_ball": "Antiker Superball",
|
||||
"item.cobblemon.ancient_azure_ball": "Ancient Azure Ball",
|
||||
"item.cobblemon.ancient_roseate_ball": "Ancient Roseate Ball",
|
||||
"item.cobblemon.ancient_slate_ball": "Ancient Slate Ball",
|
||||
"item.cobblemon.ancient_ivory_ball": "Ancient Ivory Ball",
|
||||
"item.cobblemon.ancient_great_ball": "Ancient Great Ball",
|
||||
"item.cobblemon.ancient_ultra_ball": "Antiker Hyperball",
|
||||
"item.cobblemon.ancient_heavy_ball": "Antiker Schwerball",
|
||||
"item.cobblemon.ancient_leaden_ball": "Antiker Zentnerball",
|
||||
"item.cobblemon.ancient_gigaton_ball": "Antiker Tonnenball",
|
||||
"item.cobblemon.ancient_feather_ball": "Antiker Federball",
|
||||
"item.cobblemon.ancient_wing_ball": "Antiker Flügelball",
|
||||
"item.cobblemon.ancient_jet_ball": "Antiker Düsenball",
|
||||
"item.cobblemon.ancient_origin_ball": "Antiker Urball",
|
||||
"item.cobblemon.ancient_heavy_ball": "Ancient Heavy Ball",
|
||||
"item.cobblemon.ancient_leaden_ball": "Ancient Leaden Ball",
|
||||
"item.cobblemon.ancient_gigaton_ball": "Ancient Gigaton Ball",
|
||||
"item.cobblemon.ancient_feather_ball": "Ancient Feather Ball",
|
||||
"item.cobblemon.ancient_wing_ball": "Ancient Wing Ball",
|
||||
"item.cobblemon.ancient_jet_ball": "Ancient Jet Ball",
|
||||
"item.cobblemon.ancient_origin_ball": "Ancient Origin Ball",
|
||||
"item.cobblemon.black_apricorn_seed": "Schwarzer Aprikoko Sämling",
|
||||
"item.cobblemon.blue_apricorn_seed": "Blauer Aprikoko Sämling",
|
||||
"item.cobblemon.green_apricorn_seed": "Grüner Aprikoko Sämling",
|
||||
@@ -67,7 +67,7 @@
|
||||
"item.cobblemon.apricorn_chest_boat": "Aprikoko Boot mit Truhe",
|
||||
"item.cobblemon.link_cable": "Linkkabel",
|
||||
"item.cobblemon.dragon_scale": "Drachenhaut",
|
||||
"item.cobblemon.kings_rock": "King-Stein",
|
||||
"item.cobblemon.kings_rock": "Königsstein",
|
||||
"item.cobblemon.metal_coat": "Metallmantel",
|
||||
"item.cobblemon.upgrade": "Up-Grade",
|
||||
"item.cobblemon.dubious_disc": "Dubiosdisc",
|
||||
@@ -90,8 +90,8 @@
|
||||
"item.cobblemon.ribbon_sweet": "Zucker-Schleife",
|
||||
"item.cobblemon.chipped_pot": "Löchrige Kanne",
|
||||
"item.cobblemon.cracked_pot": "Rissige Kanne",
|
||||
"item.cobblemon.masterpiece_teacup": "Edle Teeschale",
|
||||
"item.cobblemon.unremarkable_teacup": "Simple Teeschale",
|
||||
"item.cobblemon.masterpiece_teacup": "Masterpiece Teacup",
|
||||
"item.cobblemon.unremarkable_teacup": "Unremarkable Teacup",
|
||||
"item.cobblemon.sweet_apple": "Süßer Apfel",
|
||||
"item.cobblemon.tart_apple": "Saurer Apfel",
|
||||
"item.cobblemon.galarica_cuff": "Galarnuss-Reif",
|
||||
@@ -125,14 +125,14 @@
|
||||
"item.cobblemon.hyper_potion": "Hypertrank",
|
||||
"item.cobblemon.max_potion": "Top-Trank",
|
||||
"item.cobblemon.full_restore": "Top-Genesung",
|
||||
"item.cobblemon.health_feather": "Heilfeder",
|
||||
"item.cobblemon.muscle_feather": "Kraftfeder",
|
||||
"item.cobblemon.resist_feather": "Abwehrfeder",
|
||||
"item.cobblemon.genius_feather": "Geniefeder",
|
||||
"item.cobblemon.clever_feather": "Espritfeder",
|
||||
"item.cobblemon.swift_feather": "Flinkfeder",
|
||||
"item.cobblemon.ability_capsule": "Fähigkeiten-Kapsel",
|
||||
"item.cobblemon.ability_patch": "Fähigkeiten-Pflaster",
|
||||
"item.cobblemon.health_feather": "Health Feather",
|
||||
"item.cobblemon.muscle_feather": "Muscle Feather",
|
||||
"item.cobblemon.resist_feather": "Resist Feather",
|
||||
"item.cobblemon.genius_feather": "Genius Feather",
|
||||
"item.cobblemon.clever_feather": "Clever Feather",
|
||||
"item.cobblemon.swift_feather": "Swift Feather",
|
||||
"item.cobblemon.ability_capsule": "Ability Capsule",
|
||||
"item.cobblemon.ability_patch": "Ability Patch",
|
||||
"item.cobblemon.red_mint_leaf": "Rotes Minzblatt",
|
||||
"item.cobblemon.red_mint_leaf.tooltip": "Kann ein Pokémon's Angriff beeinflussen",
|
||||
"item.cobblemon.blue_mint_leaf": "Blaues Minzblatt",
|
||||
@@ -200,26 +200,26 @@
|
||||
"item.cobblemon.hard_stone": "Granitstein",
|
||||
"item.cobblemon.heavy_duty_boots": "Plateauschuhe",
|
||||
"item.cobblemon.iron_ball": "Iron Ball",
|
||||
"item.cobblemon.lagging_tail": "Schwerschwf.",
|
||||
"item.cobblemon.lagging_tail": "Lagging Tail",
|
||||
"item.cobblemon.leftovers": "Überreste",
|
||||
"item.cobblemon.light_ball": "Kugelblitz",
|
||||
"item.cobblemon.light_ball": "Light Ball",
|
||||
"item.cobblemon.light_clay": "Lichtlehm",
|
||||
"item.cobblemon.loaded_dice": "Gezinkter Würfel",
|
||||
"item.cobblemon.loaded_dice": "Loaded Dice",
|
||||
"item.cobblemon.lucky_egg": "Glücks-Ei",
|
||||
"item.cobblemon.luminous_moss": "Leuchtmoos",
|
||||
"item.cobblemon.luminous_moss": "Luminous Moss",
|
||||
"item.cobblemon.magnet": "Magnet",
|
||||
"item.cobblemon.metronome": "Metronom",
|
||||
"item.cobblemon.metronome": "Metronome",
|
||||
"item.cobblemon.miracle_seed": "Wundersaat",
|
||||
"item.cobblemon.muscle_band": "Muskelband",
|
||||
"item.cobblemon.mystic_water": "Zauberwasser",
|
||||
"item.cobblemon.never_melt_ice": "Ewiges Eis",
|
||||
"item.cobblemon.poison_barb": "Giftstich",
|
||||
"item.cobblemon.protective_pads": "Schutzpolster",
|
||||
"item.cobblemon.punching_glove": "Boxhandschuh",
|
||||
"item.cobblemon.protective_pads": "Protective Pads",
|
||||
"item.cobblemon.punching_glove": "Punching Glove",
|
||||
"item.cobblemon.quick_claw": "Flinkklaue",
|
||||
"item.cobblemon.razor_claw": "Scharfklaue",
|
||||
"item.cobblemon.razor_fang": "Scharfzahn",
|
||||
"item.cobblemon.red_card": "Rote Karte",
|
||||
"item.cobblemon.red_card": "Red Card",
|
||||
"item.cobblemon.ring_target": "Ring Target",
|
||||
"item.cobblemon.rocky_helmet": "Beulenhelm",
|
||||
"item.cobblemon.room_service": "Room Service",
|
||||
@@ -233,15 +233,15 @@
|
||||
"item.cobblemon.soft_sand": "Pudersand",
|
||||
"item.cobblemon.soothe_bell": "Soothe Bell",
|
||||
"item.cobblemon.spell_tag": "Bannsticker",
|
||||
"item.cobblemon.sticky_barb": "Klettdorn",
|
||||
"item.cobblemon.terrain_extender": "Feldbeschichtung",
|
||||
"item.cobblemon.throat_spray": "Halsspray",
|
||||
"item.cobblemon.sticky_barb": "Sticky Barb",
|
||||
"item.cobblemon.terrain_extender": "Terrain Extender",
|
||||
"item.cobblemon.throat_spray": "Throat Spray",
|
||||
"item.cobblemon.twisted_spoon": "Krummlöffel",
|
||||
"item.cobblemon.utility_umbrella": "Allzweckschirm",
|
||||
"item.cobblemon.weakness_policy": "Schwächenschutz",
|
||||
"item.cobblemon.wide_lens": "Großlinse",
|
||||
"item.cobblemon.utility_umbrella": "Utility Umbrella",
|
||||
"item.cobblemon.weakness_policy": "Weakness Policy",
|
||||
"item.cobblemon.wide_lens": "Wide Lens",
|
||||
"item.cobblemon.wise_glasses": "Schlaubrille",
|
||||
"item.cobblemon.zoom_lens": "Zoomlinse",
|
||||
"item.cobblemon.zoom_lens": "Zoom Lens",
|
||||
"item.cobblemon.mental_herb": "Mentalkraut",
|
||||
"item.cobblemon.mirror_herb": "Kopierkraut",
|
||||
"item.cobblemon.power_herb": "Energiekraut",
|
||||
@@ -357,49 +357,49 @@
|
||||
"item.cobblemon.max_ether": "Top-Äther",
|
||||
"item.cobblemon.elixir": "Elixier",
|
||||
"item.cobblemon.max_elixir": "Top-Elixier",
|
||||
"item.cobblemon.normal_gem": "Normaljuwel",
|
||||
"item.cobblemon.water_gem": "Wasserjuwel",
|
||||
"item.cobblemon.fire_gem": "Feuerjuwel",
|
||||
"item.cobblemon.grass_gem": "Pflanzenjuwel",
|
||||
"item.cobblemon.dragon_gem": "Drakojuwel",
|
||||
"item.cobblemon.ghost_gem": "Geisterjuwel",
|
||||
"item.cobblemon.ground_gem": "Bodenjuwel",
|
||||
"item.cobblemon.steel_gem": "Stahljuwel",
|
||||
"item.cobblemon.fairy_gem": "Feenjuwel",
|
||||
"item.cobblemon.rock_gem": "Gesteinsjuwel",
|
||||
"item.cobblemon.psychic_gem": "Psychojuwel",
|
||||
"item.cobblemon.electric_gem": "Elektrojuwel",
|
||||
"item.cobblemon.bug_gem": "Käferjuwel",
|
||||
"item.cobblemon.poison_gem": "Giftjuwel",
|
||||
"item.cobblemon.ice_gem": "Eisjuwel",
|
||||
"item.cobblemon.dark_gem": "Unlichtjuwel",
|
||||
"item.cobblemon.fighting_gem": "Kampfjuwel",
|
||||
"item.cobblemon.flying_gem": "Flugjuwel",
|
||||
"item.cobblemon.armor_fossil": "Panzerfossil",
|
||||
"item.cobblemon.fossilized_bird": "Vogelfossil",
|
||||
"item.cobblemon.claw_fossil": "Klauenfossil",
|
||||
"item.cobblemon.cover_fossil": "Schildfossil",
|
||||
"item.cobblemon.fossilized_dino": "Paddelfossil",
|
||||
"item.cobblemon.dome_fossil": "Domfossil",
|
||||
"item.cobblemon.fossilized_drake": "Drachenfossil",
|
||||
"item.cobblemon.fossilized_fish": "Fischfossil",
|
||||
"item.cobblemon.helix_fossil": "Helixfossil",
|
||||
"item.cobblemon.jaw_fossil": "Kieferfossil",
|
||||
"item.cobblemon.old_amber_fossil": "Altbernstein",
|
||||
"item.cobblemon.plume_fossil": "Federfossil",
|
||||
"item.cobblemon.root_fossil": "Wurzelfossil",
|
||||
"item.cobblemon.sail_fossil": "Flossenfossil",
|
||||
"item.cobblemon.skull_fossil": "Kopffossil",
|
||||
"item.cobblemon.normal_gem": "Normal Gem",
|
||||
"item.cobblemon.water_gem": "Water Gem",
|
||||
"item.cobblemon.fire_gem": "Fire Gem",
|
||||
"item.cobblemon.grass_gem": "Grass Gem",
|
||||
"item.cobblemon.dragon_gem": "Dragon Gem",
|
||||
"item.cobblemon.ghost_gem": "Ghost Gem",
|
||||
"item.cobblemon.ground_gem": "Ground Gem",
|
||||
"item.cobblemon.steel_gem": "Steel Gem",
|
||||
"item.cobblemon.fairy_gem": "Fairy Gem",
|
||||
"item.cobblemon.rock_gem": "Rock Gem",
|
||||
"item.cobblemon.psychic_gem": "Psychic Gem",
|
||||
"item.cobblemon.electric_gem": "Electric Gem",
|
||||
"item.cobblemon.bug_gem": "Bug Gem",
|
||||
"item.cobblemon.poison_gem": "Poison Gem",
|
||||
"item.cobblemon.ice_gem": "Ice Gem",
|
||||
"item.cobblemon.dark_gem": "Dark Gem",
|
||||
"item.cobblemon.fighting_gem": "Fighting Gem",
|
||||
"item.cobblemon.flying_gem": "Flying Gem",
|
||||
"item.cobblemon.armor_fossil": "Armor Fossil",
|
||||
"item.cobblemon.fossilized_bird": "Fossilized Bird",
|
||||
"item.cobblemon.claw_fossil": "Claw Fossil",
|
||||
"item.cobblemon.cover_fossil": "Cover Fossil",
|
||||
"item.cobblemon.fossilized_dino": "Fossilized Dino",
|
||||
"item.cobblemon.dome_fossil": "Dome Fossil",
|
||||
"item.cobblemon.fossilized_drake": "Fossilized Drake",
|
||||
"item.cobblemon.fossilized_fish": "Fossilized Fish",
|
||||
"item.cobblemon.helix_fossil": "Helix Fossil",
|
||||
"item.cobblemon.jaw_fossil": "Jaw Fossil",
|
||||
"item.cobblemon.old_amber_fossil": "Old Amber Fossil",
|
||||
"item.cobblemon.plume_fossil": "Plume Fossil",
|
||||
"item.cobblemon.root_fossil": "Root Fossil",
|
||||
"item.cobblemon.sail_fossil": "Sail Fossil",
|
||||
"item.cobblemon.skull_fossil": "Skull Fossil",
|
||||
"item.cobblemon.bygone_sherd": "Bygone Pottery Sherd",
|
||||
"item.cobblemon.capture_sherd": "Capture Pottery Sherd",
|
||||
"item.cobblemon.dome_sherd": "Dome Pottery Sherd",
|
||||
"item.cobblemon.helix_sherd": "Helix Pottery Sherd",
|
||||
"item.cobblemon.nostalgic_sherd": "Nostalgie-Töpferscherbe",
|
||||
"item.cobblemon.nostalgic_sherd": "Nostalgic Pottery Sherd",
|
||||
"item.cobblemon.suspicious_sherd": "Suspicious Pottery Sherd",
|
||||
"item.cobblemon.tumblestone": "Glanzstein",
|
||||
"item.cobblemon.black_tumblestone": "Schwarzglanzstein",
|
||||
"item.cobblemon.sky_tumblestone": "Azurglanzstein",
|
||||
"item.cobblemon.relic_coin": "Alter Dukat",
|
||||
"item.cobblemon.tumblestone": "Tumblestone",
|
||||
"item.cobblemon.black_tumblestone": "Black Tumblestone",
|
||||
"item.cobblemon.sky_tumblestone": "Sky Tumblestone",
|
||||
"item.cobblemon.relic_coin": "Relic Coin",
|
||||
"block.cobblemon.relic_coin_pouch": "Relic Coin Pouch",
|
||||
"block.cobblemon.relic_coin_sack": "Relic Coin Sack",
|
||||
"trim_pattern.cobblemon.automaton": "Automaton Armour Trim",
|
||||
@@ -475,21 +475,21 @@
|
||||
"block.cobblemon.green_gilded_chest": "Green Gilded Chest",
|
||||
"block.cobblemon.white_gilded_chest": "White Gilded Chest",
|
||||
"block.cobblemon.display_case": "Display Case",
|
||||
"block.cobblemon.small_budding_tumblestone": "Kleine Glanzsteinknospe",
|
||||
"block.cobblemon.small_budding_tumblestone": "Small Tumblestone Bud",
|
||||
"block.cobblemon.medium_budding_tumblestone": "Medium Tumblestone Bud",
|
||||
"block.cobblemon.large_budding_tumblestone": "Large Tumblestone Bud",
|
||||
"block.cobblemon.tumblestone_cluster": "Tumblestone Cluster",
|
||||
"block.cobblemon.tumblestone_block": "Block of Tumblestone",
|
||||
"block.cobblemon.small_budding_sky_tumblestone": "Kleine Azurglanzsteinknospe",
|
||||
"block.cobblemon.medium_budding_sky_tumblestone": "Mittlere Azurglanzsteinknospe",
|
||||
"block.cobblemon.large_budding_sky_tumblestone": "Große Azurglanzsteinknospe",
|
||||
"block.cobblemon.sky_tumblestone_cluster": "Azurglanzsteinhaufen",
|
||||
"block.cobblemon.sky_tumblestone_block": "Azurglanzsteinblock",
|
||||
"block.cobblemon.small_budding_black_tumblestone": "Kleine Schwarzglanzsteinknospe",
|
||||
"block.cobblemon.medium_budding_black_tumblestone": "Mittlere Schwarzglanzsteinknospe",
|
||||
"block.cobblemon.large_budding_black_tumblestone": "Große Schwarzglanzsteinknospe",
|
||||
"block.cobblemon.black_tumblestone_cluster": "Schwarzglanzsteinhaufen",
|
||||
"block.cobblemon.black_tumblestone_block": "Schwarzglanzsteinblock",
|
||||
"block.cobblemon.small_budding_sky_tumblestone": "Small Sky Tumblestone Bud",
|
||||
"block.cobblemon.medium_budding_sky_tumblestone": "Medium Sky Tumblestone Bud",
|
||||
"block.cobblemon.large_budding_sky_tumblestone": "Large Sky Tumblestone Bud",
|
||||
"block.cobblemon.sky_tumblestone_cluster": "Sky Tumblestone Cluster",
|
||||
"block.cobblemon.sky_tumblestone_block": "Block of Sky Tumblestone",
|
||||
"block.cobblemon.small_budding_black_tumblestone": "Small Black Tumblestone Bud",
|
||||
"block.cobblemon.medium_budding_black_tumblestone": "Medium Black Tumblestone Bud",
|
||||
"block.cobblemon.large_budding_black_tumblestone": "Large Black Tumblestone Bud",
|
||||
"block.cobblemon.black_tumblestone_cluster": "Black Tumblestone Cluster",
|
||||
"block.cobblemon.black_tumblestone_block": "Block of Black Tumblestone",
|
||||
"cobblemon.overflow_no_pc": "Deine Party war voll und du hast keinen PC!",
|
||||
"cobblemon.overflow_no_space": "Deine und %1$s Party war voll!",
|
||||
"cobblemon.overflow_to_pc": "Deine Party war voll! %1$s wurde zu %2$s hinzugefügt.",
|
||||
@@ -562,7 +562,7 @@
|
||||
"cobblemon.ui.interact.spectate": "Spectate",
|
||||
"cobblemon.ui.interact.trade": "Trade",
|
||||
"cobblemon.ui.interact.battle": "Battle",
|
||||
"cobblemon.ui.interact.mount.shoulder": "Schulter",
|
||||
"cobblemon.ui.interact.mount.shoulder": "Shoulder",
|
||||
"key.cobblemon.upshiftparty": "Party Auswahl nach oben",
|
||||
"key.cobblemon.downshiftparty": "Party Auswahl nach unten",
|
||||
"key.cobblemon.hideparty": "Party verstecken",
|
||||
@@ -570,12 +570,12 @@
|
||||
"key.cobblemon.pokenavigator": "PokéNav öffnen",
|
||||
"key.cobblemon.summary": "Überblick öffnen",
|
||||
"key.cobblemon.categories.cobblemon": "Cobblemon",
|
||||
"key.cobblemon.scaleportraitup": "Vergrößere Porträt",
|
||||
"key.cobblemon.scaleportraitdown": "Verkleinere Porträt",
|
||||
"key.cobblemon.scaleportraitup": "Scale Portrait Up",
|
||||
"key.cobblemon.scaleportraitdown": "Scale Portrait Down",
|
||||
"key.cobblemon.translateportraitup": "Translate Portrait Up",
|
||||
"key.cobblemon.translateportraitdown": "Versetze Porträt nach Unten",
|
||||
"key.cobblemon.translateportraitleft": "Versetze Porträt nach Links",
|
||||
"key.cobblemon.translateportraitright": "Versetze Porträt nach Rechts",
|
||||
"key.cobblemon.translateportraitdown": "Translate Portrait Down",
|
||||
"key.cobblemon.translateportraitleft": "Translate Portrait Left",
|
||||
"key.cobblemon.translateportraitright": "Translate Portrait Right",
|
||||
"key.cobblemon.printmodelsettings": "Print Model Settings",
|
||||
"key.cobblemon.categories.cobblemon.debug": "Cobblemon Debug",
|
||||
"cobblemon.subtitle.poke_ball.capture_succeeded": "Poké Ball capture succeeds",
|
||||
@@ -818,7 +818,7 @@
|
||||
"advancements.cobblemon.first_catch": "Ein neuer Freund!",
|
||||
"advancements.cobblemon.first_catch.description": "Benutze einen Pokéball und fange dein erstes Pokémon",
|
||||
"advancements.cobblemon.full_party": "Volles Haus",
|
||||
"advancements.cobblemon.full_party.description": "Fange mehr Pokémon bis du ein volles Team von 6 Pokémon hast",
|
||||
"advancements.cobblemon.full_party.description": "Catch more Pokémon and make a full party of 6",
|
||||
"advancements.cobblemon.first_evolution": "Harte Arbeit und Hingabe",
|
||||
"advancements.cobblemon.first_evolution.description": "Erreiche die Entwicklungsanforderungen eines Pokémon und entwickle es über das Teammenü",
|
||||
"advancements.cobblemon.first_battle_victory": "Wo ist meine Siegeshymne?",
|
||||
@@ -827,15 +827,15 @@
|
||||
"advancements.cobblemon.first_shiny_catch.description": "Fange dein erstes schillerndes Pokémon",
|
||||
"advancements.cobblemon.healing_machine": "Heilkraft",
|
||||
"advancements.cobblemon.healing_machine.description": "Warte bis die Heilmaschine aufgeladen ist und heile dann dein Team",
|
||||
"advancements.cobblemon.obtain_leek": "Das SchLauchboot",
|
||||
"advancements.cobblemon.obtain_leek": "There's a Leek in the Boat!",
|
||||
"advancements.cobblemon.obtain_leek.description": "Finde einen Fitlauch, eine wilde Pflanze, die im Süßwasser wächst",
|
||||
"advancements.cobblemon.medicinal_brew": "Lokale Apotheke",
|
||||
"advancements.cobblemon.medicinal_brew.description": "Braue einen Fitlauch, um die Basis für deine Heilbedürfnisse zu schaffen",
|
||||
"advancements.cobblemon.brew_potion": "Du kannst meine Tränke nicht verkraften",
|
||||
"advancements.cobblemon.brew_potion.description": "Braue eine \"Sinelbeere\" in ein \"Medizinisches Gebräu\" um einen \"Trank\" zu erstellen",
|
||||
"advancements.cobblemon.brew_full_restore": "Wahl des Champions",
|
||||
"advancements.cobblemon.brew_full_restore.description": "Folge dem Brau-chart um eine \"Top-Genesung\" aus einer \"Prunusbeere\" und einem \"Top-Trank\" zu erstellen",
|
||||
"advancements.cobblemon.brew_all": "Doppelt plagt euch, mengt und mischt",
|
||||
"advancements.cobblemon.brew_potion": "You Cannot Handle My Potions",
|
||||
"advancements.cobblemon.brew_potion.description": "Brew an Oran Berry into Medicinal Brew to create a Potion",
|
||||
"advancements.cobblemon.brew_full_restore": "Champion's Choice",
|
||||
"advancements.cobblemon.brew_full_restore.description": "Follow the brewing tree and create a Full Restore with a Lum Berry and Max Potion",
|
||||
"advancements.cobblemon.brew_all": "Double Double Toil & Trouble",
|
||||
"advancements.cobblemon.brew_all.description": "Brew every possible item using Medicinal Brew",
|
||||
"advancements.cobblemon.obtain_mint": "Minty Fresh",
|
||||
"advancements.cobblemon.obtain_mint.description": "Obtain a Nature Mint, a wild crop that grows high in the mountains",
|
||||
@@ -859,14 +859,14 @@
|
||||
"advancements.cobblemon.obtain_all_berries.description": "Obtain one of every Berry in Cobblemon",
|
||||
"advancements.cobblemon.use_pasture": "Free Roam: Enabled",
|
||||
"advancements.cobblemon.use_pasture.description": "Craft a Pasture Block and allow your friends to wander",
|
||||
"advancements.cobblemon.catch_all_vivillon": "Aufstrebender Vivillionär",
|
||||
"advancements.cobblemon.catch_all_vivillon": "Aspiring Vivillionaire",
|
||||
"advancements.cobblemon.catch_all_vivillon.description": "Obtain all patterns of Vivillon...",
|
||||
"advancements.cobblemon.catch_all_vivillon_but_actually": "True Vivillionaire",
|
||||
"advancements.cobblemon.catch_all_vivillon_but_actually.description": "Obtain the rest.",
|
||||
"advancements.cobblemon.evolve_veevees": "Valued Veevees",
|
||||
"advancements.cobblemon.evolve_veevees.description": "Entwickle Evoli in 8 verschiedene Formen weiter",
|
||||
"advancements.cobblemon.evolve_shedinja": "Phantomhülle",
|
||||
"advancements.cobblemon.evolve_shedinja.description": "Besitze einen Pokéball im Inventar und erhalte ein Ninjatom",
|
||||
"advancements.cobblemon.evolve_shedinja.description": "Have an extra Poké Ball in your inventory and obtain a Shedinja",
|
||||
"advancements.cobblemon.trade_pokemon": "Pass gut auf es auf!",
|
||||
"advancements.cobblemon.trade_pokemon.description": "Tausche ein Pokémon mit einem anderen Trainer",
|
||||
"advancements.cobblemon.trade_shelmet_karrablast": "Ich möchte einen Diebstahl melden!",
|
||||
@@ -877,18 +877,18 @@
|
||||
"advancements.cobblemon.use_candy.description": "Verwende ein beliebiges EP-Bonbon auf einem Pokémon",
|
||||
"advancements.cobblemon.own_zangoose_seviper": "Freunde widerwillen",
|
||||
"advancements.cobblemon.own_zangoose_seviper.description": "Habe gleichzeitig einen Zangoose und Seviper in deiner Party",
|
||||
"advancements.cobblemon.obtain_fossil": "Befrage das Fossil",
|
||||
"advancements.cobblemon.obtain_fossil": "Consult the Fossil",
|
||||
"advancements.cobblemon.obtain_fossil.description": "Discover a fossil buried in ancient ruins",
|
||||
"advancements.cobblemon.evolve_gholdengo_netherite": "Cover thee in Debris",
|
||||
"advancements.cobblemon.evolve_gholdengo_netherite.description": "Evolve a Gimmighoul into a fully netherite-coated Gholdengo",
|
||||
"advancements.cobblemon.resurrect_pokemon": "Leben findet einen Weg",
|
||||
"advancements.cobblemon.resurrect_pokemon": "Life Finds a Way",
|
||||
"advancements.cobblemon.resurrect_pokemon.description": "Obtain a Fossil Pokémon from a Resurrection Machine",
|
||||
"advancements.cobblemon.obtain_tumblestone": "The Rolling Stone",
|
||||
"advancements.cobblemon.obtain_tumblestone.description": "Safely extract a Tumblestone from suspicious sand or gravel",
|
||||
"advancements.cobblemon.grow_tumblestone": "Tumbling Down",
|
||||
"advancements.cobblemon.grow_tumblestone.description": "Place a Tumblestone near Lava or Magma to grow it over time",
|
||||
"advancements.cobblemon.craft_ancient_balls": "A true Antiquarian",
|
||||
"advancements.cobblemon.craft_ancient_balls.description": "Nutze Glanzsteine, um alle fünfzehn Arten von antiken Bällen herzustellen",
|
||||
"advancements.cobblemon.craft_ancient_balls.description": "Utilize Tumblestones to craft all fifteen Ancient Balls",
|
||||
"cobblemon.battle.crash": "Ein Kampffehler ist aufgetreten. Wenn du Einzelspieler spielst, melde dies dem Mod-Team. Ansonsten, melde dies dem Serveradministrator.",
|
||||
"cobblemon.battle.damage_dealt": "%1$s hat %2$s Schaden genommen!",
|
||||
"cobblemon.battle.used_move": "%1$s hat %2$s benutzt!",
|
||||
@@ -932,7 +932,7 @@
|
||||
"cobblemon.battle.recharge": "%1$s muss sich ausruhen.",
|
||||
"cobblemon.capture.broke_free": "%1$s ist ausgebrochen!",
|
||||
"cobblemon.capture.not_your_turn": "Du bist nicht am Zug.",
|
||||
"cobblemon.capture.attempted_capture": "%1$s hat ihren %2$s auf %3$s geworfen!",
|
||||
"cobblemon.capture.attempted_capture": "%1$s threw their %2$s at %3$s!",
|
||||
"cobblemon.capture.succeeded": "Hurra! %1$s wurde gefangen.",
|
||||
"cobblemon.capture.not_wild": "Dieses %1$s ist kein wildes Pokemon.",
|
||||
"cobblemon.capture.in_battle": "Dieses %1$s ist bereits in einen Kampf verwickelt und kann nicht gefangen werden.",
|
||||
@@ -1303,7 +1303,7 @@
|
||||
"cobblemon.battle.heal.revivalblessing": "%1$s ist wieder fit und kampfbereit!",
|
||||
"cobblemon.battle.heal.aquaring": "Der Wasserring stellt KP von %1$s wieder her!",
|
||||
"cobblemon.battle.heal.ingrain": "%1$s nimmt über seine Wurzeln Nährstoffe auf!",
|
||||
"cobblemon.battle.heal.lunardance": "%1$s wird in mysteriöses Mondlicht getaucht!",
|
||||
"cobblemon.battle.heal.lunardance": "%1$s became cloaked in mystical moonlight!",
|
||||
"cobblemon.battle.heal.grassyterrain": "%1$s's HP was restored.",
|
||||
"cobblemon.battle.heal.leftovers": "%2$s von %1$s füllt einige KP auf!",
|
||||
"cobblemon.battle.heal.item": "%2$s füllt KP von %1$s auf!",
|
||||
@@ -1435,12 +1435,12 @@
|
||||
"block.cobblemon.deepslate_thunder_stone_ore": "Tiefenschiefer-Donnersteinerz",
|
||||
"block.cobblemon.deepslate_water_stone_ore": "Tiefenschiefer-Wassersteinerz",
|
||||
"block.cobblemon.dripstone_moon_stone_ore": "Tropf-Mondstein Erz",
|
||||
"block.cobblemon.nether_fire_stone_ore": "Netherfeuersteinerz",
|
||||
"block.cobblemon.nether_fire_stone_ore": "Nether Fire Stone Ore",
|
||||
"block.cobblemon.terracotta_sun_stone_ore": "Terracotta Sun Stone Ore",
|
||||
"block.cobblemon.pasture": "Weidenblock",
|
||||
"gamerule.doPokemonSpawning": "Pokémon spawnen",
|
||||
"gamerule.doShinyStarters": "Starter-Pokémon werden schillernd sein",
|
||||
"gamerule.doPokemonLoot": "Pokémonausbeute fallen lassen",
|
||||
"gamerule.doPokemonLoot": "Drop Pokémon Loot",
|
||||
"cobblemon.command.checkspawns.invalid-bucket": "Ungültiger Spawneimer",
|
||||
"cobblemon.command.checkspawns.spawns": "Spawns",
|
||||
"cobblemon.command.checkspawns.nothing": "Hier kann gerade nichts spawnen.",
|
||||
@@ -1482,9 +1482,9 @@
|
||||
"tag.item.cobblemon.protein_ingredients": "Protein Zutaten",
|
||||
"tag.item.cobblemon.zinc_ingredients": "Zink Zutaten",
|
||||
"tag.item.cobblemon.seeds": "Samen",
|
||||
"tag.item.cobblemon.boats": "Boote",
|
||||
"tag.item.cobblemon.hanging_signs": "Hängeschilder",
|
||||
"tag.item.cobblemon.signs": "Schilder",
|
||||
"tag.item.cobblemon.boats": "Boats",
|
||||
"tag.item.cobblemon.hanging_signs": "Hanging Signs",
|
||||
"tag.item.cobblemon.signs": "Signs",
|
||||
"tag.item.cobblemon.dawn_stone_ores": "Dawn Stone Ores",
|
||||
"tag.item.cobblemon.dusk_stone_ores": "Dusk Stone Ores",
|
||||
"tag.item.cobblemon.fire_stone_ores": "Fire Stone Ores",
|
||||
@@ -1509,29 +1509,29 @@
|
||||
"tag.item.cobblemon.tier_2_poke_ball_materials": "Iron Tier Poké Ball Materials",
|
||||
"tag.item.cobblemon.tier_3_poke_ball_materials": "Gold Tier Poké Ball Materials",
|
||||
"tag.item.cobblemon.tier_4_poke_ball_materials": "Diamond Tier Poké Ball Materials",
|
||||
"tag.item.cobblemon.potions": "Tränke",
|
||||
"tag.item.cobblemon.potions": "Potions",
|
||||
"tag.item.cobblemon.ethers": "Ethers and Elixirs",
|
||||
"tag.item.cobblemon.remedies": "Remedies",
|
||||
"tag.item.cobblemon.restores": "Restores",
|
||||
"tag.item.cobblemon.revives": "Revives",
|
||||
"tag.item.cobblemon.x_items": "X Battle Items",
|
||||
"tag.item.cobblemon.vitamins": "Vitamine",
|
||||
"tag.item.cobblemon.tumblestones": "Glanzsteine",
|
||||
"tag.item.cobblemon.vitamins": "Vitamins",
|
||||
"tag.item.cobblemon.tumblestones": "Tumblestones",
|
||||
"tag.item.cobblemon.red_tumblestones": "Tumblestones",
|
||||
"tag.item.cobblemon.black_tumblestones": "Schwarzglanzsteine",
|
||||
"tag.item.cobblemon.sky_tumblestones": "Azurglanzsteine",
|
||||
"tag.item.cobblemon.black_tumblestones": "Black Tumblestones",
|
||||
"tag.item.cobblemon.sky_tumblestones": "Sky Tumblestones",
|
||||
"tag.item.cobblemon.apples": "Apples",
|
||||
"tag.item.cobblemon.deep_seas": "Deep Sea Items",
|
||||
"tag.item.cobblemon.sweets": "Sweets",
|
||||
"tag.item.cobblemon.teapots": "Teekessel",
|
||||
"tag.item.cobblemon.teapots": "Teapots",
|
||||
"tag.item.cobblemon.teacups": "Teacups",
|
||||
"tag.item.cobblemon.raw_meat": "Rohes Fleisch",
|
||||
"tag.item.cobblemon.raw_meat": "Raw Meat",
|
||||
"tag.item.cobblemon.cooked_meat": "Cooked Meat",
|
||||
"tag.item.cobblemon.fossils": "Fossilien",
|
||||
"tag.item.cobblemon.fossils": "Fossils",
|
||||
"tag.item.cobblemon.held.leaves_leftovers": "Leftover Foods",
|
||||
"tag.item.cobblemon.decorated_pot_sherds": "Decorated Pot Sherds",
|
||||
"tag.item.cobblemon.type_gems": "Type Gems",
|
||||
"tag.item.cobblemon.feathers": "Federn",
|
||||
"tag.item.cobblemon.feathers": "Feathers",
|
||||
"tag.item.cobblemon.ability_changers": "Ability Changers",
|
||||
"tag.item.cobblemon.held.is_friendship_booster": "Friendship Boosters",
|
||||
"cobblemon.ability.adaptability": "Anpassung",
|
||||
@@ -5579,291 +5579,5 @@
|
||||
"cobblemon.species.ironvaliant.name": "Eisenkrieger",
|
||||
"cobblemon.species.koraidon.name": "Koraidon",
|
||||
"cobblemon.species.miraidon.name": "Miraidon",
|
||||
"item.cobblemon.smithing_template.pokerod.ingredients": "Pokébälle",
|
||||
"tag.item.cobblemon.tumblestone_bricks": "Glanzsteinziegel",
|
||||
"item.cobblemon.pokedex_black": "Pokédex",
|
||||
"cobblemon.ability.zerotohero.desc": "Wird das Pokémon ausgewechselt, nimmt es die Heldenform an.",
|
||||
"item.cobblemon.pokedex_green": "Pokédex",
|
||||
"item.cobblemon.electric_seed": "Elektro-Samen",
|
||||
"item.cobblemon.misty_seed": "Nebel-Samen",
|
||||
"item.cobblemon.psychic_seed": "Psycho-Samen",
|
||||
"block.cobblemon.smooth_tumblestone": "Glatter Glanzstein",
|
||||
"item.cobblemon.smithing_template.pokerod.base_slot_description": "Angel hinzufügen",
|
||||
"item.cobblemon.smithing_template.pokerod.additions_slot_description": "Pokéball hinzufügen",
|
||||
"upgrade.cobblemon.pokerod": "Schmiedevorlage",
|
||||
"item.cobblemon.pokerod_smithing_template": "Schmiedevorlage",
|
||||
"item.cobblemon.pokedex_blue": "Pokédex",
|
||||
"item.cobblemon.pokedex_pink": "Pokédex",
|
||||
"item.cobblemon.pokedex_red": "Pokédex",
|
||||
"item.cobblemon.pokedex_white": "Pokédex",
|
||||
"item.cobblemon.pokedex_yellow": "Pokédex",
|
||||
"block.cobblemon.polished_sky_tumblestone_slab": "Polierte Azurglanzsteinstufe",
|
||||
"block.cobblemon.polished_tumblestone": "Polierter Glanzstein",
|
||||
"item.cobblemon.grassy_seed": "Gras-Samen",
|
||||
"block.cobblemon.chiseled_polished_tumblestone": "Gemeißelter polierter Glanzstein",
|
||||
"cobblemon.tooltip.see_more_info": "Drücke shift um Informationen zu sehen",
|
||||
"cobblemon.item_class.fishing_bait": "Köder",
|
||||
"block.cobblemon.polished_tumblestone_slab": "Polierte Glanzsteinstufe",
|
||||
"block.cobblemon.polished_tumblestone_stairs": "Polierte Glanzsteintreppe",
|
||||
"block.cobblemon.polished_tumblestone_wall": "Polierte Glanzsteinmauer",
|
||||
"block.cobblemon.tumblestone_bricks": "Glanzsteinziegel",
|
||||
"block.cobblemon.tumblestone_brick_slab": "Glanzsteinziegelstufe",
|
||||
"block.cobblemon.smooth_tumblestone_slab": "Glatte Glanzsteinstufe",
|
||||
"block.cobblemon.smooth_tumblestone_stairs": "Glatte Glanzsteintreppe",
|
||||
"block.cobblemon.polished_sky_tumblestone": "Polierter Azurglanzstein",
|
||||
"block.cobblemon.polished_sky_tumblestone_stairs": "Polierte Azurglanzsteintreppe",
|
||||
"block.cobblemon.polished_sky_tumblestone_wall": "Polierte Azurglanzsteinmauer",
|
||||
"block.cobblemon.tumblestone_brick_stairs": "Glanzsteinziegeltreppe",
|
||||
"block.cobblemon.tumblestone_brick_wall": "Glanzsteinziegelmauer",
|
||||
"block.cobblemon.chiseled_tumblestone_bricks": "Gemeißelte Glanzsteinziegel",
|
||||
"block.cobblemon.chiseled_polished_sky_tumblestone": "Gemeißelter polierter Azurglanzstein",
|
||||
"block.cobblemon.sky_tumblestone_bricks": "Azurglanzsteinziegel",
|
||||
"block.cobblemon.sky_tumblestone_brick_stairs": "Azurglanzsteinziegeltreppe",
|
||||
"block.cobblemon.sky_tumblestone_brick_wall": "Azurglanzsteinziegelmauer",
|
||||
"block.cobblemon.chiseled_sky_tumblestone_bricks": "Gemeißelte Azurglanzsteinziegel",
|
||||
"block.cobblemon.smooth_sky_tumblestone_slab": "Glatte Azurglanzsteinstufe",
|
||||
"block.cobblemon.smooth_sky_tumblestone_stairs": "Glatte Azurglanzsteintreppe",
|
||||
"block.cobblemon.polished_black_tumblestone": "Polierter Schwarzglanzstein",
|
||||
"block.cobblemon.polished_black_tumblestone_stairs": "Polierte Schwarzglanzsteintreppe",
|
||||
"block.cobblemon.polished_black_tumblestone_wall": "Polierte Schwarzglanzsteinmauer",
|
||||
"block.cobblemon.chiseled_polished_black_tumblestone": "Gemeißelter polierter Schwarzglanzstein",
|
||||
"block.cobblemon.black_tumblestone_bricks": "Schwarzglanzsteinziegel",
|
||||
"block.cobblemon.chiseled_black_tumblestone_bricks": "Gemeißelte Schwarzglanzsteinziegel",
|
||||
"block.cobblemon.smooth_black_tumblestone_stairs": "Glatte Schwarzglanzsteintreppe",
|
||||
"block.cobblemon.fire_stone_block": "Feuersteinblock",
|
||||
"block.cobblemon.water_stone_block": "Wassersteinblock",
|
||||
"block.cobblemon.thunder_stone_block": "Donnersteinblock",
|
||||
"block.cobblemon.leaf_stone_block": "Blattsteinblock",
|
||||
"block.cobblemon.ice_stone_block": "Eissteinblock",
|
||||
"block.cobblemon.sun_stone_block": "Sonnensteinblock",
|
||||
"block.cobblemon.moon_stone_block": "Mondsteinblock",
|
||||
"block.cobblemon.shiny_stone_block": "Leuchsteinblock",
|
||||
"block.cobblemon.dawn_stone_block": "Funkelsteinblock",
|
||||
"block.cobblemon.dusk_stone_block": "Finstersteinblock",
|
||||
"block.cobblemon.sky_tumblestone_brick_slab": "Azurglanzsteinziegelstufe",
|
||||
"entity.minecraft.villager.nurse": "Krankenschwester",
|
||||
"block.cobblemon.smooth_sky_tumblestone": "Glatter Azurglanzstein",
|
||||
"cobblemon.ui.pokedex.region.kanto": "Kanto",
|
||||
"cobblemon.ui.pokedex.region.paldea": "Paldea",
|
||||
"cobblemon.ui.pokedex.region.unknown": "Unbekannt",
|
||||
"cobblemon.ui.pokedex.region.unova": "Einall",
|
||||
"cobblemon.ui.pokedex.info.entry": "Eintrag",
|
||||
"cobblemon.ui.pokedex.info.stats": "Basis Statuswerte",
|
||||
"cobblemon.ui.pokedex.region.alola": "Alola",
|
||||
"cobblemon.ui.pokedex.info.form.netherite-coating-stage1": "Netherit Beschichtung 1/8",
|
||||
"cobblemon.ui.pokedex.info.form.netherite-coating-stage2": "Netherit Beschichtung 2/8",
|
||||
"cobblemon.ui.pokedex.info.form.netherite-coating-stage3": "Netherit Beschichtung 3/8",
|
||||
"cobblemon.ui.pokedex.info.form.netherite-coating-stage5": "Netherit Beschichtung 5/8",
|
||||
"cobblemon.ui.pokedex.info.form.netherite-coating-stage6": "Netherit Beschichtung 6/8",
|
||||
"cobblemon.ui.pokedex.info.form.netherite-coating-stage7": "Netherit Beschichtung 7/8",
|
||||
"cobblemon.ui.pokedex.info.form.netherite-coating-full": "Netherit Beschichtung 8/8",
|
||||
"cobblemon.ui.pokedex.info.form.roaming": "Wanderform",
|
||||
"cobblemon.ui.pokedex.info.form.color-pink": "Rosa",
|
||||
"cobblemon.ui.pokedex.info.form.color-gray": "Grau",
|
||||
"cobblemon.ui.pokedex.info.form.color-brown": "Braun",
|
||||
"cobblemon.ui.pokedex.info.form.color-red": "Rot",
|
||||
"cobblemon.ui.pokedex.info.form.color-orange": "Orange",
|
||||
"cobblemon.ui.pokedex.info.form.color-yellow": "Gelb",
|
||||
"cobblemon.ui.pokedex.info.form.color-lime": "Hellgrün",
|
||||
"cobblemon.ui.pokedex.info.form.color-green": "Grün",
|
||||
"cobblemon.ui.pokedex.info.form.color-light_blue": "Hellblau",
|
||||
"cobblemon.ui.pokedex.info.form.color-cyan": "Türkis",
|
||||
"cobblemon.ui.pokedex.info.form.color-blue": "Blau",
|
||||
"cobblemon.ui.pokedex.info.form.color-purple": "Violett",
|
||||
"cobblemon.ui.pokedex.info.form.color-magenta": "Magenta",
|
||||
"cobblemon.ui.pokedex.info.form.color-light_gray": "Hellgrau",
|
||||
"cobblemon.ui.pokedex.info.form.minecraft": "Minecraft",
|
||||
"cobblemon.ui.pokedex.info.form.squawkabilly-color-gray": "Grau",
|
||||
"cobblemon.ui.pokedex.info.form.tree-oak": "Eiche",
|
||||
"cobblemon.ui.pokedex.info.form.tree-spruce": "Fichte",
|
||||
"cobblemon.ui.pokedex.info.form.tree-acacia": "Akazie",
|
||||
"cobblemon.ui.pokedex.info.form.tree-birch": "Birke",
|
||||
"cobblemon.ui.pokedex.info.form.tree-jungle": "Tropen",
|
||||
"cobblemon.ui.pokedex.info.form.tree-mangrove": "Mangrove",
|
||||
"cobblemon.ui.pokedex.info.form.tree-cherry": "Kirsche",
|
||||
"cobblemon.ui.pokedex.info.form.tree-swamp": "Sumpf",
|
||||
"cobblemon.ui.pokedex.info.form.tree-azalea": "Azalee",
|
||||
"cobblemon.ui.pokedex.info.form.flower-orange": "Orange",
|
||||
"cobblemon.ui.pokedex.info.form.flower-yellow": "Gelb",
|
||||
"cobblemon.ui.pokedex.info.form.flower-white": "Weiß",
|
||||
"cobblemon.ui.pokedex.info.form.flower-red": "Rot",
|
||||
"cobblemon.ui.pokedex.info.form.flower-pink": "Rosa",
|
||||
"cobblemon.ui.pokedex.info.form.vivillon-wings-elegant": "Elegant",
|
||||
"cobblemon.ui.pokedex.info.form.autumn": "Herbst",
|
||||
"cobblemon.ui.pokedex.info.form.summer": "Sommer",
|
||||
"cobblemon.ui.pokedex.info.form.vivillon-wings-sun": "Sonne",
|
||||
"cobblemon.ui.pokedex.info.form.vivillon-wings-tundra": "Tundra",
|
||||
"cobblemon.ui.pokedex.info.form.vivillon-wings-ocean": "Ozean",
|
||||
"cobblemon.ui.pokedex.info.form.vivillon-wings-garden": "Garten",
|
||||
"cobblemon.ui.pokedex.info.form.metals-copper": "Kupfer",
|
||||
"cobblemon.ui.pokedex.info.form.metals-iron": "Eisen",
|
||||
"cobblemon.ui.pokedex.info.form.metals-gold": "Gold",
|
||||
"cobblemon.ui.pokedex.info.form.metals-netherite": "Netherit",
|
||||
"cobblemon.ui.pokedex.unknown": "???",
|
||||
"cobblemon.pokedex.variation.ice": "Eis",
|
||||
"cobblemon.pokedex.variation.color": "Farbe",
|
||||
"cobblemon.pokedex.variation.pattern": "Muster",
|
||||
"cobblemon.pokedex.variation.metal": "Metall",
|
||||
"cobblemon.pokedex.variation.netherite_coating": "Netheritbeschichtung",
|
||||
"cobblemon.pokedex.variation.stripes": "Streifen",
|
||||
"cobblemon.pokedex.variation.season": "Saison",
|
||||
"block.cobblemon.polished_black_tumblestone_slab": "Polierte Schwarzglanzsteinstufe",
|
||||
"block.cobblemon.smooth_black_tumblestone": "Glatter Schwarzglanzstein",
|
||||
"block.cobblemon.smooth_black_tumblestone_slab": "Glatte Schwarzglanzsteinstufe",
|
||||
"cobblemon.fishing_bait_effects.inert.tooltip": "Keine bekannte Auswirkung",
|
||||
"cobblemon.ui.pokedex.info.form.winter": "Winter",
|
||||
"cobblemon.ui.pokedex.info.form.flower-blue": "Blau",
|
||||
"cobblemon.ui.pokedex.info.form.vivillon-wings-poke-ball": "Pokéball",
|
||||
"cobblemon.ui.pokedex.info.form.color-white": "Weiß",
|
||||
"cobblemon.ui.pokedex.info.form.tree-darkoak": "Schwarzeiche",
|
||||
"cobblemon.ui.pokedex.info.form.color-black": "Schwarz",
|
||||
"cobblemon.ui.pokedex.info.form.alola": "Alola",
|
||||
"cobblemon.ui.pokedex.region.sinnoh": "Sinnoh",
|
||||
"cobblemon.ui.interact.failed": "Ziel blockiert oder zu weit entfernt.",
|
||||
"cobblemon.ui.moves.forget": "Attacke Vergessen",
|
||||
"cobblemon.move.doodle": "Abpausen",
|
||||
"cobblemon.pokedex.variation.flower": "Blume",
|
||||
"cobblemon.move.aciddownpour": "Vernichtender Säureregen",
|
||||
"cobblemon.ui.pokedex.info.form.squawkabilly-color-blue": "Blau",
|
||||
"cobblemon.species.ironleaves.name": "Eisenblatt",
|
||||
"cobblemon.move.direclaw": "Unheilsklauen",
|
||||
"cobblemon.battle.start.confusion": "%1$s wurde verwirrt!",
|
||||
"cobblemon.species.hydrapple.name": "Schlangel",
|
||||
"cobblemon.ui.pokedex.info.ability": "Fähigkeit: %1$s",
|
||||
"cobblemon.move.doodle.desc": "Der Anwender kopiert die wahre Essenz des Zieles. Dadurch erhalten alle Pokémon auf der Mitstreiterseite die Fähigkeit des Zieles.",
|
||||
"cobblemon.move.esperwing": "Auraschwingen",
|
||||
"cobblemon.move.esperwing.desc": "Ein schneidender Angriff mit durch eine Aura verstärkten Schwingen, der außerdem die Initiative des Anwenders erhöht. Hohe Volltrefferquote.",
|
||||
"cobblemon.ui.pokedex.info.form.netherite-coating-stage4": "Netherit Beschichtung 4/8",
|
||||
"cobblemon.move.gmaxwindrage.desc": "Eine Flug-Attacke, die nur Gigadynamax-Krarmor einsetzen kann. Beseitigt die Effekte von Attacken wie Reflektor und Lichtschild.",
|
||||
"cobblemon.ability.poisonpuppeteer": "Giftpuppenspiel",
|
||||
"cobblemon.ability.mindseye": "Geistiges Auge",
|
||||
"cobblemon.ability.toxicchain": "Giftkette",
|
||||
"cobblemon.move.direclaw.desc": "Der Anwender greift mit zerstörerischen Klauen die Schwachstelle des Zieles an. Dieses wird eventuell vergiftet, paralysiert oder in Schlaf versetzt.",
|
||||
"cobblemon.move.doubleshock": "Zweifachladung",
|
||||
"cobblemon.move.electrodrift": "Blitztour",
|
||||
"cobblemon.move.electrodrift.desc": "Der Anwender wechselt bei rasantem Tempo seine Form und trifft das Ziel mit einem futuristischen Elektroschlag. Ist die Attacke sehr effektiv, steigt ihre Stärke noch mehr.",
|
||||
"cobblemon.species.ragingbolt.name": "Furienblitz",
|
||||
"cobblemon.ability.terashift": "Tera-Wandel",
|
||||
"cobblemon.move.doubleshock.desc": "Der Anwender nutzt die gesamte Elektrizität in seinem Körper, um großen Schaden auszuteilen. Die restliche Kampfdauer gehört er nicht mehr dem Typ Elektro an.",
|
||||
"cobblemon.move.filletaway": "Abspaltung",
|
||||
"cobblemon.move.filletaway.desc": "Der Anwender setzt seine KP ein, um seinen Angriff, seinen Spezial-Angriff und seine Initiative stark zu erhöhen.",
|
||||
"cobblemon.species.ironboulder.name": "Eisenfels",
|
||||
"cobblemon.move.flowertrick": "Blumentrick",
|
||||
"cobblemon.move.flowertrick.desc": "Der Anwender greift an, indem er dem Ziel einen Trick-Strauß zuwirft. Diese Attacke trifft immer und hat zudem Volltreffergarantie.",
|
||||
"cobblemon.move.gigatonhammer": "Riesenhammer",
|
||||
"cobblemon.move.gigatonhammer.desc": "Der Anwender greift mit einem großen Hammer an, den er mit vollem Körpereinsatz um sich schwingt. Diese Attacke kann nicht zweimal in Folge eingesetzt werden.",
|
||||
"cobblemon.move.gigavolthavoc": "Gigavolt-Funkensalve",
|
||||
"cobblemon.move.gigavolthavoc.desc": "Der Anwender greift das Ziel mit durch Z-Kraft gesammelter starker Elektrizität an. Die Stärke variiert je nach zugrunde liegender Attacke.",
|
||||
"cobblemon.move.gmaxbefuddle": "Giga-Benebelung",
|
||||
"cobblemon.move.gmaxbefuddle.desc": "Eine Käfer-Attacke, die nur Gigadynamax-Smettbo einsetzen kann. Gegnerische Pokémon werden entweder vergiftet, paralysiert oder in Schlaf versetzt.",
|
||||
"cobblemon.move.gmaxcannonade": "Giga-Beschuss",
|
||||
"cobblemon.move.gmaxcannonade.desc": "Eine Wasser-Attacke, die nur Gigadynamax-Turtok einsetzen kann. Schließt gegnerische Pokémon vier Runden lang in einem Wasserwirbel ein.",
|
||||
"cobblemon.move.gmaxcentiferno": "Giga-Feuerkessel",
|
||||
"cobblemon.move.gmaxcentiferno.desc": "Eine Feuer-Attacke, die nur Gigadynamax-Infernopod einsetzen kann. Schließt gegnerische Pokémon vier bis fünf Runden in wirbelnden Flammen ein.",
|
||||
"cobblemon.move.gmaxchistrike": "Giga-Fokusschlag",
|
||||
"cobblemon.move.gmaxchistrike.desc": "Eine Kampf-Attacke, die nur Gigadynamax-Machomei einsetzen kann. Erhöht die Volltrefferquote auf Mitstreiterseite.",
|
||||
"cobblemon.move.glaiverush": "Großklingenstoß",
|
||||
"cobblemon.move.glaiverush.desc": "Der Anwender stürzt sich waghalsig auf das Ziel. Bis zum nächsten Zug des Anwenders treffen ihn gegnerische Angriffe garantiert und richten doppelten Schaden an.",
|
||||
"cobblemon.move.gmaxcuddle": "Giga-Gekuschel",
|
||||
"cobblemon.move.gmaxcuddle.desc": "Eine Normal-Attacke, die nur Gigadynamax-Evoli einsetzen kann. Gegnerische Pokémon verlieben sich in es.",
|
||||
"cobblemon.move.gmaxdepletion": "Giga-Dämpfer",
|
||||
"cobblemon.move.gmaxdepletion.desc": "Eine Drachen-Attacke, die nur Gigadynamax-Duraludon einsetzen kann. AP der letzten Attacke, die gegnerische Pokémon eingesetzt haben, werden gesenkt.",
|
||||
"cobblemon.move.gmaxfinale": "Giga-Lichtblick",
|
||||
"cobblemon.move.gmaxfinale.desc": "Eine Feen-Attacke, die nur Gigadynamax-Pokusan einsetzen kann. Füllt die KP auf Mitstreiterseite auf.",
|
||||
"cobblemon.move.gmaxfireball": "Giga-Brandball",
|
||||
"cobblemon.move.gmaxfireball.desc": "Eine Feuer-Attacke, die nur Gigadynamax-Liberlo einsetzen kann. Ignoriert die Effekte der gegnerischen Fähigkeiten.",
|
||||
"cobblemon.move.gmaxfoamburst": "Giga-Schaumbad",
|
||||
"cobblemon.move.gmaxfoamburst.desc": "Eine Wasser-Attacke, die nur Gigadynamax-Kingler einsetzen kann. Senkt die Initiative der gegnerischen Pokémon stark.",
|
||||
"cobblemon.move.gmaxgoldrush": "Giga-Münzregen",
|
||||
"cobblemon.move.gmaxgoldrush.desc": "Eine Normal-Attacke, die nur Gigadynamax-Mauzi einsetzen kann. Verwirrt Gegner und bringt nach dem Kampf Geld ein.",
|
||||
"cobblemon.move.gmaxgravitas": "Giga-Astrowellen",
|
||||
"cobblemon.move.gmaxgravitas.desc": "Eine Psycho-Attacke, die nur Gigadynamax-Maritellit einsetzen kann. Ändert die Erdanziehung für fünf Runden.",
|
||||
"cobblemon.move.gmaxhydrosnipe": "Giga-Schütze",
|
||||
"cobblemon.move.gmaxhydrosnipe.desc": "Eine Pflanzen-Attacke, die nur Gigadynamax-Gortrom einsetzen kann. Ignoriert die Effekte der gegnerischen Fähigkeiten.",
|
||||
"cobblemon.move.gmaxmalodor": "Giga-Gestank",
|
||||
"cobblemon.move.gmaxmalodor.desc": "Eine Gift-Attacke, die nur Gigadynamax-Deponitox einsetzen kann. Vergiftet gegnerische Pokémon.",
|
||||
"cobblemon.move.gmaxmeltdown": "Giga-Schmelze",
|
||||
"cobblemon.move.gmaxmeltdown.desc": "Eine Stahl-Attacke, die nur Gigadynamax-Melmetal einsetzen kann. Hindert Gegner am wiederholten Einsatz derselben Attacke.",
|
||||
"cobblemon.move.gmaxoneblow": "Giga-Einzelhieb",
|
||||
"cobblemon.move.gmaxoneblow.desc": "Eine Unlicht-Attacke, die nur Gigadynamax-Wulaosu einsetzen kann. Dieser Einzelhieb ignoriert die schützende Wirkung von Dyna-Wall.",
|
||||
"cobblemon.move.gmaxrapidflow": "Giga-Multihieb",
|
||||
"cobblemon.move.gmaxrapidflow.desc": "Eine Wasser-Attacke, die nur Gigadynamax-Wulaosu einsetzen kann. Dieser Multihieb ignoriert die schützende Wirkung von Dyna-Wall.",
|
||||
"cobblemon.move.gmaxreplenish": "Giga-Recycling",
|
||||
"cobblemon.move.gmaxreplenish.desc": "Eine Normal-Attacke, die nur Gigadynamax-Relaxo einsetzen kann. Stellt bereits verzehrte Beeren wieder her.",
|
||||
"cobblemon.move.gmaxresonance": "Giga-Melodie",
|
||||
"cobblemon.move.gmaxresonance.desc": "Eine Eis-Attacke, die nur Gigadynamax-Lapras einsetzen kann. Reduziert fünf Runden lang den erlittenen Schaden.",
|
||||
"cobblemon.move.gmaxsandblast": "Giga-Sandstoß",
|
||||
"cobblemon.move.gmaxsandblast.desc": "Eine Boden-Attacke, die nur Gigadynamax-Sanaconda einsetzen kann. Eine Sandhose wütet für vier bis fünf Runden.",
|
||||
"cobblemon.move.gmaxsmite": "Giga-Sanktion",
|
||||
"cobblemon.move.gmaxsmite.desc": "Eine Feen-Attacke, die nur Gigadynamax-Silembrim einsetzen kann. Verwirrt gegnerische Pokémon.",
|
||||
"cobblemon.move.gmaxsnooze": "Giga-Gähnzwang",
|
||||
"cobblemon.move.gmaxsnooze.desc": "Eine Unlicht-Attacke, die nur Gigadynamax-Olangaar einsetzen kann. Mit einem großen Gähner wird das Ziel müde gemacht und schläft in der nächsten Runde ein.",
|
||||
"cobblemon.move.gmaxsteelsurge": "Giga-Stahlschlag",
|
||||
"cobblemon.move.gmaxsteelsurge.desc": "Eine Stahl-Attacke, die nur Gigadynamax-Patinaraja einsetzen kann. Verstreut viele zackige Stahlsplitter auf dem Kampffeld.",
|
||||
"cobblemon.move.gmaxstonesurge": "Giga-Geröll",
|
||||
"cobblemon.move.gmaxstunshock": "Giga-Voltschlag",
|
||||
"cobblemon.move.gmaxvolcalith": "Giga-Schlacke",
|
||||
"cobblemon.move.gmaxvolcalith.desc": "Eine Gesteins-Attacke, die nur Gigadynamax- Montecarbo einsetzen kann. Fügt vier Runden lang Schaden zu.",
|
||||
"cobblemon.move.gmaxstonesurge.desc": "Eine Wasser-Attacke, die nur Gigadynamax-Kamalm einsetzen kann. Verstreut viele spitze Steinbrocken auf dem Kampffeld.",
|
||||
"cobblemon.move.gmaxstunshock.desc": "Eine Elektro-Attacke, die nur Gigadynamax-Riffex einsetzen kann. Vergiftet oder paralysiert gegnerische Pokémon.",
|
||||
"cobblemon.move.gmaxsweetness": "Giga-Nektarflut",
|
||||
"cobblemon.move.gmaxsweetness.desc": "Eine Pflanzen-Attacke, die nur Gigadynamax-Schlapfel einsetzen kann. Heilt Statusprobleme auf Mitstreiterseite.",
|
||||
"cobblemon.move.gmaxtartness": "Giga-Säureguss",
|
||||
"cobblemon.move.gmaxtartness.desc": "Eine Pflanzen-Attacke, die nur Gigadynamax-Drapfel einsetzen kann. Senkt den Ausweichwert der gegnerischen Pokémon.",
|
||||
"cobblemon.move.gmaxterror": "Giga-Spuksperre",
|
||||
"cobblemon.move.gmaxterror.desc": "Eine Geister-Attacke, die nur Gigadynamax-Gengar einsetzen kann. Hindert gegnerische Pokémon an der Flucht beziehungsweise am Auswechseln.",
|
||||
"cobblemon.move.gmaxvoltcrash.desc": "Eine Elektro-Attacke, die nur Gigadynamax-Pikachu einsetzen kann. Gegnerische Pokémon werden paralysiert.",
|
||||
"cobblemon.move.gmaxwildfire": "Giga-Feuerflug",
|
||||
"cobblemon.move.gmaxwildfire.desc": "Eine Feuer-Attacke, die nur Gigadynamax-Glurak einsetzen kann. Fügt vier Runden lang Schaden zu.",
|
||||
"cobblemon.move.gmaxwindrage": "Giga-Sturmstoß",
|
||||
"cobblemon.move.gmaxvinelash": "Giga-Geißel",
|
||||
"cobblemon.move.gmaxvinelash.desc": "Eine Pflanzen-Attacke, die nur Gigadynamax-Bisaflor einsetzen kann. Geißelt gegnerische Pokémon vier Runden lang mit peitschenartigen Ranken.",
|
||||
"cobblemon.move.gmaxvoltcrash": "Giga-Blitzhagel",
|
||||
"cobblemon.move.headlongrush": "Schmetterramme",
|
||||
"cobblemon.move.headlongrush.desc": "Der Anwender rammt das Ziel mit dem ganzen Körper. Dadurch sinken die Verteidigung und Spezial-Verteidigung des Anwenders.",
|
||||
"cobblemon.move.hydrostream": "Hydro Steam",
|
||||
"cobblemon.move.hydrostream.desc": "Das Ziel wird kraftvoll mit brodelndem Wasser übergossen. Wider Erwarten sinkt die Stärke der Attacke bei starkem Sonnenlicht nicht, sondern steigt um 50 %.",
|
||||
"cobblemon.move.hydrovortex": "Super-Wassertornado",
|
||||
"cobblemon.move.hydrovortex.desc": "Der Anwender kreiert mit Z-Kraft einen riesigen Wasserstrudel, der das Ziel verschluckt. Die Stärke variiert je nach zugrunde liegender Attacke.",
|
||||
"cobblemon.move.hyperdrill": "Hyperbohrer",
|
||||
"cobblemon.move.hyperdrill.desc": "Der Anwender lässt einen spitzen Teil seines Körpers rasant rotieren, sticht zu und durchbricht dabei auch die Wirkung von Attacken wie Schutzschild und Scanner.",
|
||||
"cobblemon.species.ironcrown.name": "Eisenhaupt",
|
||||
"cobblemon.species.terapagos.name": "Terapagos",
|
||||
"cobblemon.move.neverendingnightmare": "Ewige Nacht",
|
||||
"cobblemon.move.neverendingnightmare.desc": "Der Anwender beschwört mit Z-Kraft tiefen Groll herbei und lässt diesen auf das Ziel los. Die Stärke variiert je nach zugrunde liegender Attacke.",
|
||||
"cobblemon.move.noxioustorque": "Toxiturbo",
|
||||
"cobblemon.move.orderup": "Auftischen",
|
||||
"cobblemon.species.skeledirge.desc": "Der feurige Vogel, der durch Skelokroks Gesang die Gestalt ändert, soll eine Seele sein, die sich in dem Feuerball auf seinem Kopf niederließ. ",
|
||||
"cobblemon.move.orderup.desc": "Eine Attacke mit geübten Bewegungen. Trägt der Anwender ein Nigiragi im Maul, erhöht sich je nach dessen Form ein Statuswert des Anwenders.",
|
||||
"cobblemon.move.populationbomb": "Mäuseplage",
|
||||
"cobblemon.move.pounce": "Anspringen",
|
||||
"cobblemon.move.pound": "Klaps",
|
||||
"cobblemon.move.populationbomb.desc": "Der Anwender versammelt eine Schar von Artgenossen, die dann geschlossen angreift und das Ziel ein- bis zehnmal hintereinander trifft.",
|
||||
"cobblemon.move.pounce.desc": "Der Anwender greift an, indem er das Ziel anspringt. Dadurch sinkt auch die Initiative des Zieles.",
|
||||
"cobblemon.move.pound.desc": "Ein Hieb mit den Vorderbeinen oder dem Schweif.",
|
||||
"cobblemon.move.powershift": "Kraftwechsel",
|
||||
"cobblemon.move.powershift.desc": "Der Anwender tauscht seinen Angriff mit seiner Verteidigung.",
|
||||
"cobblemon.move.psyshieldbash": "Barrierenstoß",
|
||||
"cobblemon.move.ragefist": "Zornesfaust",
|
||||
"cobblemon.species.pecharunt.name": "Infamomo",
|
||||
"cobblemon.move.ragingbull": "Rasender Stier",
|
||||
"cobblemon.move.ragingfury": "Flammenwut",
|
||||
"cobblemon.move.revivalblessing": "Vitalsegen",
|
||||
"cobblemon.move.ruination": "Verderben",
|
||||
"cobblemon.move.saltcure": "Pökelsalz",
|
||||
"cobblemon.move.sandsearstorm": "Wüstenorkan",
|
||||
"cobblemon.move.savagespinout": "Wirbelnder Insektenhieb",
|
||||
"cobblemon.move.shatteredpsyche": "Psycho-Schmetterschlag",
|
||||
"cobblemon.ability.supersweetsyrup": "Süßer Nektar",
|
||||
"cobblemon.ability.teraformzero": "Teraforming Null",
|
||||
"cobblemon.ability.terashell": "Tera-Panzer",
|
||||
"cobblemon.ability.windrider.desc": "Wirkt Rückenwind oder wird das Pokémon von einer Wind-Attacke getroffen, steigt sein Angriff. Außerdem erleidet es keinen Schaden durch Wind-Attacken.",
|
||||
"cobblemon.species.dipplin.name": "Sirapfel",
|
||||
"cobblemon.species.sinistcha.name": "Fatalitcha",
|
||||
"cobblemon.species.okidogi.name": "Boninu",
|
||||
"cobblemon.species.munkidori.name": "Benesaru",
|
||||
"cobblemon.species.fezandipiti.name": "Beatori",
|
||||
"cobblemon.species.ogerpon.name": "Ogerpon",
|
||||
"cobblemon.species.archaludon.name": "Briduradon",
|
||||
"cobblemon.species.gougingfire.name": "Keilflamme"
|
||||
"item.cobblemon.smithing_template.pokerod.ingredients": "Pokébälle"
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,11 +1,13 @@
|
||||
{
|
||||
"cobblemon.stat.defence.name": "Defence",
|
||||
"cobblemon.stat.special_defence.name": "Special Defence",
|
||||
"cobblemon.move.defensecurl": "Defence Curl",
|
||||
"cobblemon.move.irondefense": "Iron Defence",
|
||||
"item.cobblemon.blue_mint_leaf.tooltip": "Capable of influencing a Pokémon's defence stat",
|
||||
"item.cobblemon.pink_mint_leaf.tooltip": "Capable of influencing a Pokémon's special defence stat",
|
||||
"item.cobblemon.x_defence": "X Defence",
|
||||
"item.cobblemon.x_special_defence": "X Special Defence",
|
||||
"cobblemon.pokedex.variation.color": "Colour"
|
||||
}
|
||||
"cobblemon.stat.defence.name": "Defence",
|
||||
"cobblemon.stat.special_defence.name": "Special Defence",
|
||||
|
||||
"cobblemon.move.defensecurl": "Defence Curl",
|
||||
"cobblemon.move.irondefense": "Iron Defence",
|
||||
"item.cobblemon.blue_mint_leaf.tooltip": "Capable of influencing a Pokémon's defence stat",
|
||||
"item.cobblemon.pink_mint_leaf.tooltip": "Capable of influencing a Pokémon's special defence stat",
|
||||
|
||||
"item.cobblemon.x_defence": "X Defence",
|
||||
"item.cobblemon.x_special_defence": "X Special Defence",
|
||||
"cobblemon.pokedex.variation.color": "Colour"
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,18 +0,0 @@
|
||||
{
|
||||
"timeline": [
|
||||
{
|
||||
"type": "add_holds",
|
||||
"holds": ["effects"]
|
||||
},
|
||||
{
|
||||
"type": "entity_particles",
|
||||
"effect": "cobblemon:hit",
|
||||
"locator": "target",
|
||||
"delay": 0.3
|
||||
},
|
||||
{
|
||||
"type": "remove_holds",
|
||||
"holds": ["effects"]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -23,13 +23,7 @@
|
||||
"entityCondition": "q.entity.is_user == false && q.missed(q.entity.uuid) == false",
|
||||
"effect": "'cobblemon:impact_' + q.move.type",
|
||||
"locator": "target"
|
||||
},
|
||||
{
|
||||
"type": "entity_molang",
|
||||
"expressions": ["q.particle('cobblemon:hit', 'target')"],
|
||||
"entityCondition": "q.entity.is_user == false",
|
||||
"delay": 2
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"hitbox": "player",
|
||||
"presets": [
|
||||
|
||||
"cobblemon:npc-standard"
|
||||
],
|
||||
"variation": {
|
||||
"dirt": [
|
||||
|
||||
Reference in New Issue
Block a user