Skip to content

Commit

Permalink
Armor now blocks damage directly
Browse files Browse the repository at this point in the history
  • Loading branch information
PiTheGuy committed Apr 7, 2022
1 parent be59043 commit 81ef97d
Show file tree
Hide file tree
Showing 3 changed files with 36 additions and 14 deletions.
15 changes: 2 additions & 13 deletions src/main/java/com/pitheguy/magicmod/armor/CustomArmorMagic.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package com.pitheguy.magicmod.armor;

import com.pitheguy.magicmod.util.RegistryHandler;
import com.pitheguy.magicmod.util.ArmorHandler;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.inventory.EquipmentSlotType;
import net.minecraft.item.ArmorItem;
Expand All @@ -17,18 +17,7 @@ public CustomArmorMagic(IArmorMaterial materialIn, EquipmentSlotType slot, Prope

@Override
public void onArmorTick(ItemStack itemstack, World world, PlayerEntity player) {
if(player.getItemStackFromSlot(EquipmentSlotType.HEAD).getItem() == RegistryHandler.MAGIC_HELMET.get()
&& player.getItemStackFromSlot(EquipmentSlotType.CHEST).getItem() == RegistryHandler.MAGIC_CHESTPLATE.get() &&
player.getItemStackFromSlot(EquipmentSlotType.LEGS).getItem() == RegistryHandler.MAGIC_LEGGINGS.get() &&
player.getItemStackFromSlot(EquipmentSlotType.FEET).getItem() == RegistryHandler.MAGIC_BOOTS.get()
) {
player.addPotionEffect(new EffectInstance(Effects.RESISTANCE, 1, 1, true, false));
} else if (player.getItemStackFromSlot(EquipmentSlotType.HEAD).getItem() == RegistryHandler.REINFORCED_MAGIC_HELMET.get()
&& player.getItemStackFromSlot(EquipmentSlotType.CHEST).getItem() == RegistryHandler.REINFORCED_MAGIC_CHESTPLATE.get() &&
player.getItemStackFromSlot(EquipmentSlotType.LEGS).getItem() == RegistryHandler.REINFORCED_MAGIC_LEGGINGS.get() &&
player.getItemStackFromSlot(EquipmentSlotType.FEET).getItem() == RegistryHandler.REINFORCED_MAGIC_BOOTS.get()
) {
player.addPotionEffect(new EffectInstance(Effects.RESISTANCE, 1, 3, true, false));
if (ArmorHandler.isWearingReinforcedMagicArmor(player)) {
player.addPotionEffect(new EffectInstance(Effects.REGENERATION, 2, 1, true, false));
}
}
Expand Down
16 changes: 15 additions & 1 deletion src/main/java/com/pitheguy/magicmod/events/ModClientEvents.java
Original file line number Diff line number Diff line change
@@ -1,9 +1,23 @@
package com.pitheguy.magicmod.events;

import com.pitheguy.magicmod.util.ArmorHandler;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.event.entity.living.LivingDamageEvent;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod;

@Mod.EventBusSubscriber(modid = "magicmod", bus = Mod.EventBusSubscriber.Bus.FORGE, value = Dist.CLIENT)
public class ModClientEvents {

@SubscribeEvent
public static void onDamageWithMagicArmor(LivingDamageEvent event) {
if (event.getEntityLiving() instanceof PlayerEntity) {
PlayerEntity player = (PlayerEntity) event.getEntityLiving();
if (ArmorHandler.isWearingMagicArmor(player)) {
event.setAmount(event.getAmount() * 0.6f);
} else if (ArmorHandler.isWearingReinforcedMagicArmor(player)) {
event.setAmount(event.getAmount() * 0.2f);
}
}
}
}
19 changes: 19 additions & 0 deletions src/main/java/com/pitheguy/magicmod/util/ArmorHandler.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package com.pitheguy.magicmod.util;

import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.inventory.EquipmentSlotType;

public class ArmorHandler {
public static boolean isWearingMagicArmor (PlayerEntity player) {
return player.getItemStackFromSlot(EquipmentSlotType.HEAD).getItem() == RegistryHandler.MAGIC_HELMET.get()
&& player.getItemStackFromSlot(EquipmentSlotType.CHEST).getItem() == RegistryHandler.MAGIC_CHESTPLATE.get() &&
player.getItemStackFromSlot(EquipmentSlotType.LEGS).getItem() == RegistryHandler.MAGIC_LEGGINGS.get() &&
player.getItemStackFromSlot(EquipmentSlotType.FEET).getItem() == RegistryHandler.MAGIC_BOOTS.get();
}
public static boolean isWearingReinforcedMagicArmor (PlayerEntity player) {
return player.getItemStackFromSlot(EquipmentSlotType.HEAD).getItem() == RegistryHandler.REINFORCED_MAGIC_HELMET.get()
&& player.getItemStackFromSlot(EquipmentSlotType.CHEST).getItem() == RegistryHandler.REINFORCED_MAGIC_CHESTPLATE.get() &&
player.getItemStackFromSlot(EquipmentSlotType.LEGS).getItem() == RegistryHandler.REINFORCED_MAGIC_LEGGINGS.get() &&
player.getItemStackFromSlot(EquipmentSlotType.FEET).getItem() == RegistryHandler.REINFORCED_MAGIC_BOOTS.get();
}
}

0 comments on commit 81ef97d

Please sign in to comment.