From 5ea7177bdbc7e0d3f55acbb289e377493491402b Mon Sep 17 00:00:00 2001 From: Nicholas Ignoffo Date: Mon, 3 Apr 2017 17:57:40 -0700 Subject: [PATCH] Re-implement Soul Fray on death (#1118) This should be all that's needed (cherry picked from commit bffd191) --- .../bloodmagic/potion/PotionEventHandlers.java | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/main/java/WayofTime/bloodmagic/potion/PotionEventHandlers.java b/src/main/java/WayofTime/bloodmagic/potion/PotionEventHandlers.java index 4bfb118f..603f8887 100644 --- a/src/main/java/WayofTime/bloodmagic/potion/PotionEventHandlers.java +++ b/src/main/java/WayofTime/bloodmagic/potion/PotionEventHandlers.java @@ -1,15 +1,18 @@ package WayofTime.bloodmagic.potion; +import WayofTime.bloodmagic.api.event.SacrificeKnifeUsedEvent; import WayofTime.bloodmagic.registry.ModPotions; import net.minecraft.entity.Entity; import net.minecraft.entity.IProjectile; import net.minecraft.entity.projectile.EntityArrow; import net.minecraft.entity.projectile.EntityThrowable; +import net.minecraft.potion.PotionEffect; import net.minecraft.util.math.AxisAlignedBB; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.event.entity.living.EnderTeleportEvent; import net.minecraftforge.event.entity.living.LivingAttackEvent; import net.minecraftforge.event.entity.living.LivingEvent; +import net.minecraftforge.event.entity.player.PlayerEvent; import net.minecraftforge.fml.common.eventhandler.EventPriority; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; @@ -111,6 +114,20 @@ public class PotionEventHandlers } } + @SubscribeEvent + public void onPlayerRespawn(PlayerEvent.Clone event) + { + if (event.isWasDeath()) + event.getEntityPlayer().addPotionEffect(new PotionEffect(ModPotions.soulFray, 400)); + } + + @SubscribeEvent + public void onSacrificeKnifeUsed(SacrificeKnifeUsedEvent event) + { + if (event.player.isPotionActive(ModPotions.soulFray)) + event.lpAdded = (int) (event.lpAdded * 0.1D); + } + @SubscribeEvent(priority = EventPriority.HIGHEST) public void onPlayerDamageEvent(LivingAttackEvent event) {