Skip to content

Commit 2d0b7fb

Browse files
committed
Tweaked jade orb stuff a bit.
1 parent b36d511 commit 2d0b7fb

File tree

2 files changed

+11
-4
lines changed

2 files changed

+11
-4
lines changed

common/src/main/java/generations/gg/generations/core/generationscore/common/world/item/GenerationsItems.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -880,7 +880,7 @@ object GenerationsItems: ItemPlatformRegistry() {
880880
val HOOPA_RING = register("hoopa_ring", ::ItemWithLangTooltipImpl, LEGENDARY_ITEMS)
881881
val FADED_RED_ORB = register("faded_red_orb", { ElementalPostBattleUpdateItemImpl(it.stacksTo(1).durability(250), ElementalTypes.FIRE) }, LEGENDARY_ITEMS)
882882
val FADED_BLUE_ORB = register("faded_blue_orb", { ElementalPostBattleUpdateItemImpl(it.stacksTo(1).durability(250), ElementalTypes.WATER) }, LEGENDARY_ITEMS)
883-
val FADED_JADE_ORB = register("faded_jade_orb", { ElementalPostBattleUpdateItemImplImpl(it.stacksTo(1).durability(250), key = LegendKeys.RAYQUAZA, types = listOf(ElementalTypes.FLYING)) }, LEGENDARY_ITEMS)
883+
val FADED_JADE_ORB = register("faded_jade_orb", { ElementalPostBattleUpdateItemImplImpl(it.stacksTo(1).durability(250), key = LegendKeys.RAYQUAZA, types = listOf(ElementalTypes.FLYING), predicate = { it.y >= 240.0 }) }, LEGENDARY_ITEMS)
884884
val RED_ORB = registerHeldItem("red_orb", ::Item)
885885
val BLUE_ORB = registerHeldItem("blue_orb", ::Item)
886886
val JADE_ORB = register("jade_orb", { JadeOrb(it.stacksTo(1)) }, LEGENDARY_ITEMS)

common/src/main/java/generations/gg/generations/core/generationscore/common/world/item/legends/ElementalPostBattleUpdateItemImplImpl.kt

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,19 +16,22 @@ open class ElementalPostBattleUpdateItemImplImpl(
1616
properties: Properties,
1717
private val lang: String = DEFAULT_LANG_KEY,
1818
private val key: SpeciesKey,
19-
types: List<ElementalType> = listOf()
20-
) : ElementalPostBattleUpdateItemImpl(properties, types) {
19+
types: List<ElementalType> = listOf(),
20+
private val itemToGiveUponSpawn : Holder<Item>? = null,
21+
private val predicate: (Player) -> Boolean = { true }
22+
) : ElementalPostBattleUpdateItemImpl(properties, types) {
2123

2224
override fun use(level: Level, player: Player, usedHand: InteractionHand): InteractionResultHolder<ItemStack> {
2325
val stack = player.getItemInHand(usedHand)
2426

25-
if (!level.isClientSide() && player.y >= 240.0) {
27+
if (!level.isClientSide() && predicate.invoke(player)) {
2628

2729
val damage = stack.damageValue
2830

2931
if (damage >= stack.maxDamage) {
3032
PokemonUtil.spawn(key.createProperties(70), level, player.onPos)
3133
stack.consume(1, player)
34+
postSpawn(player)
3235
} else {
3336
player.displayClientMessage(Component.translatable(lang, stack.maxDamage - damage), true)
3437
}
@@ -39,6 +42,10 @@ open class ElementalPostBattleUpdateItemImplImpl(
3942
return InteractionResultHolder.pass(stack)
4043
}
4144

45+
protected fun postSpawn(player: Player) {
46+
itemToGiveUponSpawn?.value()?.defaultInstance?.also(player::addItem)
47+
}
48+
4249
companion object {
4350
const val DEFAULT_LANG_KEY: String = "generations_core.orb.amountfull"
4451
}

0 commit comments

Comments
 (0)