Skip to content

Commit 1b1cc5d

Browse files
committed
added opener and vampirism item abilities
1 parent 87a8715 commit 1b1cc5d

File tree

4 files changed

+19
-2
lines changed

4 files changed

+19
-2
lines changed

Diff for: src/main/kotlin/dev/sterner/api/item/ItemAbility.kt

+2-2
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,9 @@ enum class ItemAbility: StringRepresentable {
1616
AUTOSMELT,//Fully implemented
1717
MINING_3X3,//Fully implemented
1818
MINING_5X5,//Fully implemented
19-
VAMPIRISM,//TODO implement
19+
VAMPIRISM,//Fully implemented
2020
HARVEST,//Fully implemented
21-
OPENER;//TODO implement
21+
OPENER;//Fully implemented
2222

2323
override fun getSerializedName(): String {
2424
return this.name.lowercase()

Diff for: src/main/kotlin/dev/sterner/registry/VoidBoundEvents.kt

+17
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,13 @@ import com.sammy.malum.common.events.MalumCodexEvents
55
import dev.sterner.VoidBoundClient
66
import dev.sterner.api.ClientTickHandler
77
import dev.sterner.api.item.ItemAbility
8+
import dev.sterner.api.util.VoidBoundItemUtils
89
import dev.sterner.client.event.*
910
import dev.sterner.common.components.VoidBoundPlayerComponent
1011
import dev.sterner.common.components.VoidBoundWorldComponent
1112
import dev.sterner.common.item.tool.TidecutterItem
1213
import dev.sterner.common.item.tool.UpgradableTool
14+
import io.github.fabricators_of_create.porting_lib.entity.events.living.LivingHurtEvent
1315
import io.github.fabricators_of_create.porting_lib.event.common.BlockEvents
1416
import net.fabricmc.api.EnvType
1517
import net.fabricmc.api.Environment
@@ -26,6 +28,7 @@ import net.minecraft.world.entity.EquipmentSlot
2628
import net.minecraft.world.entity.ai.attributes.Attribute
2729
import net.minecraft.world.entity.ai.attributes.AttributeModifier
2830
import net.minecraft.world.entity.ai.attributes.Attributes
31+
import net.minecraft.world.entity.player.Player
2932
import net.minecraft.world.item.ItemStack
3033
import net.minecraft.world.item.crafting.RecipeType
3134
import net.minecraft.world.item.crafting.SmeltingRecipe
@@ -41,7 +44,21 @@ object VoidBoundEvents {
4144
BlockEvents.BLOCK_BREAK.register(VoidBoundWorldComponent.Companion::removeWard)
4245
BlockEvents.BLOCK_BREAK.register(TidecutterItem.Companion::breakBlock)
4346

47+
LivingHurtEvent.HURT.register{
48+
val attacker = it.source.entity
49+
if (attacker is Player) {
50+
val item = attacker.mainHandItem
51+
val bl = VoidBoundItemUtils.getActiveAbility(item) == ItemAbility.VAMPIRISM
52+
if (bl) {
53+
attacker.heal(attacker.random.nextInt(2).toFloat())
54+
}
4455

56+
val bl2 = VoidBoundItemUtils.getActiveAbility(item) == ItemAbility.OPENER
57+
if (bl2 && it.entity.health / it.entity.maxHealth > 0.95) {
58+
it.amount *= 1.5f
59+
}
60+
}
61+
}
4562

4663
/**
4764
* Add extra damage to UpgradableTools when it has extra damage
Binary file not shown.
736 Bytes
Loading

0 commit comments

Comments
 (0)