package darkknight.jewelrycraft.affixes; import darkknight.jewelrycraft.api.ModifierEffect; import darkknight.jewelrycraft.item.ItemBaseJewelry; import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.DamageSource; import net.minecraftforge.event.entity.living.LivingAttackEvent; import net.minecraftforge.event.entity.living.LivingDropsEvent; import net.minecraftforge.event.entity.living.LivingHurtEvent; import net.minecraftforge.event.entity.player.PlayerEvent.Clone; public class ComboAffix extends ModifierEffect { private ModifierEffect[] effects; public ComboAffix(ModifierEffect... effects) { super(null); this.effects = effects; } @Override public void action(ItemStack item, EntityPlayer player, Item jewelry) { for (ModifierEffect eff : effects) { eff.action(item, player, jewelry); } } @Override public boolean onEntityAttackedCancellable(ItemStack item, EntityPlayer player, Entity target, Item jewelry, LivingAttackEvent event) { boolean ret = false; for (ModifierEffect eff : effects) { ret = eff.onEntityAttackedCancellable(item, player, target, jewelry, event); if (ret) return ret; } return ret; } @Override public boolean onPlayerAttackedCancellable(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) { boolean ret = false; for (ModifierEffect eff : effects) { ret = eff.onPlayerAttackedCancellable(item, player, source, jewelry, amount); if (ret) return ret; } return ret; } @Override public void onEntityAttacked(ItemStack item, EntityPlayer player, Entity target, Item jewelry, LivingAttackEvent event) { for (ModifierEffect eff : effects) { eff.onEntityAttacked(item, player, target, jewelry, event); } } @Override public void onPlayerAttacked(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) { for (ModifierEffect eff : effects) { eff.onPlayerAttacked(item, player, source, jewelry, amount); } } @Override public void onPlayerDead(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry) { for (ModifierEffect eff : effects) { eff.onPlayerDead(item, player, source, jewelry); } } @Override public void onPlayerRespawn(ItemStack item, Clone event, Item jewelry) { for (ModifierEffect eff : effects) { eff.onPlayerRespawn(item, event, jewelry); } } @Override public void onJewelryEquipped(ItemStack item, Item jewelry, EntityPlayer player) { for (ModifierEffect eff : effects) { eff.onJewelryEquipped(item, jewelry, player); } } @Override public void onJewelryUnequipped(ItemStack item, Item jewelry, EntityPlayer player) { for (ModifierEffect eff : effects) { eff.onJewelryUnequipped(item, jewelry, player); } } @Override public void onLivingDropItems(ItemStack item, EntityPlayer player, LivingDropsEvent event, ItemBaseJewelry jewelry) { for (ModifierEffect eff : effects) { eff.onLivingDropItems(item, player, event, jewelry); } } @Override public void onPlayerHurt(ItemStack item, EntityPlayer player, LivingHurtEvent event, ItemBaseJewelry jewelry) { for (ModifierEffect eff : effects) { eff.onPlayerHurt(item, player, event, jewelry); } } @Override public void onEntityHurt(ItemStack item, EntityPlayer player, LivingHurtEvent event, ItemBaseJewelry jewelry) { for (ModifierEffect eff : effects) { eff.onEntityHurt(item, player, event, jewelry); } } }