Straw totem fail chance decreases upon successful revival.
Failed attempts with the straw totem now apply poison instead of damaging the player.
This commit is contained in:
@ -9,6 +9,8 @@ import net.minecraft.entity.player.ServerPlayerEntity;
|
|||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.item.Items;
|
import net.minecraft.item.Items;
|
||||||
import net.minecraft.network.PacketBuffer;
|
import net.minecraft.network.PacketBuffer;
|
||||||
|
import net.minecraft.potion.EffectInstance;
|
||||||
|
import net.minecraft.potion.Effects;
|
||||||
import net.minecraft.stats.Stats;
|
import net.minecraft.stats.Stats;
|
||||||
import net.minecraft.util.DamageSource;
|
import net.minecraft.util.DamageSource;
|
||||||
import net.minecraft.util.Hand;
|
import net.minecraft.util.Hand;
|
||||||
@ -62,8 +64,10 @@ public class C2SRequestPlayerRevive {
|
|||||||
if (Utils.randomIntRange(0, 100) <= fail_chance) {
|
if (Utils.randomIntRange(0, 100) <= fail_chance) {
|
||||||
item.getOrCreateTag().putInt(StrawTotemItem.TAG_CHARGE_AMOUNT, item.getOrCreateTag().getInt(StrawTotemItem.TAG_CHARGE_AMOUNT)-required_charge);
|
item.getOrCreateTag().putInt(StrawTotemItem.TAG_CHARGE_AMOUNT, item.getOrCreateTag().getInt(StrawTotemItem.TAG_CHARGE_AMOUNT)-required_charge);
|
||||||
item.getOrCreateTag().putInt(StrawTotemItem.TAG_FAIL_CHANCE, fail_chance-(5*required_charge));
|
item.getOrCreateTag().putInt(StrawTotemItem.TAG_FAIL_CHANCE, fail_chance-(5*required_charge));
|
||||||
sender.hurt(DamageSource.GENERIC, (sender.getHealth() * (fail_chance / 100.0f)));
|
sender.addEffect(new EffectInstance(Effects.POISON, (fail_chance / 2), 2));
|
||||||
return;
|
return;
|
||||||
|
} else {
|
||||||
|
item.getOrCreateTag().putInt(StrawTotemItem.TAG_FAIL_CHANCE, fail_chance-(5*required_charge));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
player_to_revive.teleportTo(sender.getX(), sender.getY(), sender.getZ());
|
player_to_revive.teleportTo(sender.getX(), sender.getY(), sender.getZ());
|
||||||
|
@ -9,6 +9,8 @@ import net.minecraft.entity.player.ServerPlayerEntity;
|
|||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.item.Items;
|
import net.minecraft.item.Items;
|
||||||
import net.minecraft.network.PacketBuffer;
|
import net.minecraft.network.PacketBuffer;
|
||||||
|
import net.minecraft.potion.EffectInstance;
|
||||||
|
import net.minecraft.potion.Effects;
|
||||||
import net.minecraft.util.DamageSource;
|
import net.minecraft.util.DamageSource;
|
||||||
import net.minecraft.util.Hand;
|
import net.minecraft.util.Hand;
|
||||||
import net.minecraftforge.fml.network.NetworkEvent;
|
import net.minecraftforge.fml.network.NetworkEvent;
|
||||||
@ -52,7 +54,7 @@ public class C2SRequestTotemCharge {
|
|||||||
int fail_chance = totem_item.getOrCreateTag().getInt(StrawTotemItem.TAG_FAIL_CHANCE);
|
int fail_chance = totem_item.getOrCreateTag().getInt(StrawTotemItem.TAG_FAIL_CHANCE);
|
||||||
if (Utils.randomIntRange(0, 100) <= fail_chance) {
|
if (Utils.randomIntRange(0, 100) <= fail_chance) {
|
||||||
sender.setItemInHand(msg.hand, new ItemStack(Items.AIR));
|
sender.setItemInHand(msg.hand, new ItemStack(Items.AIR));
|
||||||
sender.hurt(DamageSource.GENERIC, (sender.getHealth() * (fail_chance / 100.0f)));
|
sender.addEffect(new EffectInstance(Effects.POISON, (fail_chance / 2), 2));
|
||||||
} else {
|
} else {
|
||||||
totem_item.getOrCreateTag().putInt(StrawTotemItem.TAG_FAIL_CHANCE, fail_chance+5);
|
totem_item.getOrCreateTag().putInt(StrawTotemItem.TAG_FAIL_CHANCE, fail_chance+5);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user