summaryrefslogtreecommitdiff
path: root/src/main/java/darkknight/jewelrycraft/affixes/ComboAffix.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/darkknight/jewelrycraft/affixes/ComboAffix.java')
-rw-r--r--src/main/java/darkknight/jewelrycraft/affixes/ComboAffix.java125
1 files changed, 125 insertions, 0 deletions
diff --git a/src/main/java/darkknight/jewelrycraft/affixes/ComboAffix.java b/src/main/java/darkknight/jewelrycraft/affixes/ComboAffix.java
new file mode 100644
index 0000000..2144179
--- /dev/null
+++ b/src/main/java/darkknight/jewelrycraft/affixes/ComboAffix.java
@@ -0,0 +1,125 @@
+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);
+ }
+ }
+} \ No newline at end of file