Compare commits

...
2 changed files with 9 additions and 6 deletions
@@ -21,25 +21,27 @@ class LevelUpContext(val level: Int, val pokemon: Pokemon)
class LevelUpCriterion(
playerCtx: Optional<ContextAwarePredicate>,
val level: Int,
val evolved: Boolean
val hasEvolved: Boolean,
val canEvolve: Boolean
): SimpleCriterionCondition<LevelUpContext>(playerCtx) {
companion object {
val CODEC: Codec<LevelUpCriterion> = RecordCodecBuilder.create { it.group(
EntityPredicate.ADVANCEMENT_CODEC.optionalFieldOf("player").forGetter(LevelUpCriterion::playerCtx),
Codec.INT.optionalFieldOf("level", 0).forGetter(LevelUpCriterion::level),
Codec.BOOL.optionalFieldOf("has_evolved", true).forGetter(LevelUpCriterion::evolved)
Codec.BOOL.optionalFieldOf("has_evolved", true).forGetter(LevelUpCriterion::hasEvolved),
Codec.BOOL.optionalFieldOf("can_evolve", true).forGetter(LevelUpCriterion::canEvolve)
).apply(it, ::LevelUpCriterion) }
}
override fun matches(player: ServerPlayer, context: LevelUpContext): Boolean {
val preEvo = context.pokemon.preEvolution != null
val hasEvolution = !context.pokemon.evolutions.none()
var evolutionCheck = true
/*var evolutionCheck = true
if (preEvo || hasEvolution) {
evolutionCheck = preEvo != hasEvolution
}
return level == context.level && evolutionCheck == evolved
}*/
return level == context.level && preEvo == hasEvolved && hasEvolution == canEvolve
}
}
@@ -20,7 +20,8 @@
"trigger": "cobblemon:level_up",
"conditions": {
"level": 100,
"has_evolved": false
"has_evolved": false,
"can_evolve": true
}
}
},