diff options
| author | bculkin2442 <bjculkin@mix.wvu.edu> | 2019-09-08 20:43:22 -0400 |
|---|---|---|
| committer | bculkin2442 <bjculkin@mix.wvu.edu> | 2019-09-08 20:43:22 -0400 |
| commit | 718ec4658576c94c8f5346829c9f5d6ebc028805 (patch) | |
| tree | 6984f5fc6c77b2ecab625dad72ed7c24972c4c60 | |
| parent | 1fa81166dfe255d37a54e0a81d212954351c8d20 (diff) | |
More affix work
5 files changed, 305 insertions, 45 deletions
diff --git a/src/main/java/darkknight/jewelrycraft/affixes/AffixMods.java b/src/main/java/darkknight/jewelrycraft/affixes/AffixMods.java index 993a9bd..8be46e6 100644 --- a/src/main/java/darkknight/jewelrycraft/affixes/AffixMods.java +++ b/src/main/java/darkknight/jewelrycraft/affixes/AffixMods.java @@ -27,23 +27,7 @@ public class AffixMods { private static List<WeightedRandomAffix> earringsSuffixGen; public static void initializeAffixes(FMLPreInitializationEvent fpie) { - prefixes = new HashMap<String, ModifierEffect>(); - suffixes = new HashMap<String, ModifierEffect>(); - - generalPrefixGen = new LinkedList<WeightedRandomAffix>(); - generalSuffixGen = new LinkedList<WeightedRandomAffix>(); - - ringPrefixGen = new LinkedList<WeightedRandomAffix>(); - ringSuffixGen = new LinkedList<WeightedRandomAffix>(); - - braceletPrefixGen = new LinkedList<WeightedRandomAffix>(); - braceletSuffixGen = new LinkedList<WeightedRandomAffix>(); - - necklacePrefixGen = new LinkedList<WeightedRandomAffix>(); - necklaceSuffixGen = new LinkedList<WeightedRandomAffix>(); - - earringsPrefixGen = new LinkedList<WeightedRandomAffix>(); - earringsSuffixGen = new LinkedList<WeightedRandomAffix>(); + initFields(); ModifierEffect health1 = new HealthAffix(1); ModifierEffect health2 = new HealthAffix(2); @@ -62,13 +46,29 @@ public class AffixMods { ModifierEffect flatDMG4 = new DamageAffix(4, 0, 1); ModifierEffect flatDMG5 = new DamageAffix(5, 0, 1); ModifierEffect flatDMG6 = new DamageAffix(6, 0, 1); - + ModifierEffect flatarm1 = new ArmorAffix(1, 0, 1); ModifierEffect flatarm2 = new ArmorAffix(2, 0, 1); ModifierEffect flatarm3 = new ArmorAffix(3, 0, 1); ModifierEffect flatarm4 = new ArmorAffix(4, 0, 1); ModifierEffect flatarm5 = new ArmorAffix(5, 0, 1); ModifierEffect flatarm6 = new ArmorAffix(6, 0, 1); + + ModifierEffect flatarmlife1 = new ComboAffix(new HealthAffix(1), new ArmorAffix(1, 0, 1)); + ModifierEffect flatarmlife2 = new ComboAffix(new HealthAffix(2), new ArmorAffix(2, 0, 1)); + ModifierEffect flatarmlife3 = new ComboAffix(new HealthAffix(3), new ArmorAffix(3, 0, 1)); + + ModifierEffect coward1 = new ComboAffix(new HealthAffix(2), new ArmorAffix(0, 0, 1.1f)); + ModifierEffect coward2 = new ComboAffix(new HealthAffix(4), new ArmorAffix(0, 0, 1.2f)); + ModifierEffect coward3 = new ComboAffix(new HealthAffix(6), new ArmorAffix(0, 0, 1.3f)); + + ModifierEffect gambler1 = new ComboAffix(new DamageAffix(0, 0, 1.25f), new ArmorAffix(0, 0, 1.25f)); + ModifierEffect gambler2 = new ComboAffix(new DamageAffix(0, 0, 1.5f), new ArmorAffix(0, 0, 1.5f)); + ModifierEffect gambler3 = new ComboAffix(new DamageAffix(0, 0, 1.75f), new ArmorAffix(0, 0, 1.75f)); + + ModifierEffect looter1 = new LootingAffix(1); + ModifierEffect looter2 = new LootingAffix(2); + ModifierEffect looter3 = new LootingAffix(3); prefixes.put("health1", health1); prefixes.put("health2", health2); @@ -76,7 +76,7 @@ public class AffixMods { prefixes.put("health4", health4); prefixes.put("health5", health5); prefixes.put("health6", health6); - + prefixes.put("flatdmg1", flatDMG1); prefixes.put("flatdmg2", flatDMG2); prefixes.put("flatdmg3", flatDMG3); @@ -84,14 +84,22 @@ public class AffixMods { prefixes.put("flatdmg5", flatDMG5); prefixes.put("flatdmg6", flatDMG6); + prefixes.put("flatarmlife1", flatarmlife1); + prefixes.put("flatarmlife2", flatarmlife2); + prefixes.put("flatarmlife3", flatarmlife3); + + prefixes.put("gambler1", gambler1); + prefixes.put("gambler2", gambler2); + prefixes.put("gambler3", gambler3); + suffixes.put("health1", health1); suffixes.put("health2", health2); suffixes.put("health3", health3); - + suffixes.put("hitheal1", hitheal1); suffixes.put("hitheal2", hitheal2); suffixes.put("hitheal3", hitheal3); - + suffixes.put("flatarm1", flatarm1); suffixes.put("flatarm2", flatarm2); suffixes.put("flatarm3", flatarm3); @@ -99,6 +107,14 @@ public class AffixMods { suffixes.put("flatarm5", flatarm5); suffixes.put("flatarm6", flatarm6); + suffixes.put("coward1", coward1); + suffixes.put("coward2", coward2); + suffixes.put("coward3", coward3); + + suffixes.put("looter1", looter1); + suffixes.put("looter2", looter2); + suffixes.put("looter3", looter3); + /* * Affix generation */ @@ -119,13 +135,29 @@ public class AffixMods { WeightedRandomAffix wraflatDMG4 = new WeightedRandomAffix("flatdmg4", 4); WeightedRandomAffix wraflatDMG5 = new WeightedRandomAffix("flatdmg5", 2); WeightedRandomAffix wraflatDMG6 = new WeightedRandomAffix("flatdmg6", 1); - + WeightedRandomAffix wraflatarm1 = new WeightedRandomAffix("flatarm1", 9); WeightedRandomAffix wraflatarm2 = new WeightedRandomAffix("flatarm2", 8); WeightedRandomAffix wraflatarm3 = new WeightedRandomAffix("flatarm3", 6); WeightedRandomAffix wraflatarm4 = new WeightedRandomAffix("flatarm4", 4); WeightedRandomAffix wraflatarm5 = new WeightedRandomAffix("flatarm5", 2); WeightedRandomAffix wraflatarm6 = new WeightedRandomAffix("flatarm6", 1); + + WeightedRandomAffix wraflatarmlife1 = new WeightedRandomAffix("flatarmlife1", 8); + WeightedRandomAffix wraflatarmlife2 = new WeightedRandomAffix("flatarmlife2", 6); + WeightedRandomAffix wraflatarmlife3 = new WeightedRandomAffix("flatarmlife3", 4); + + WeightedRandomAffix wracoward1 = new WeightedRandomAffix("coward1", 9); + WeightedRandomAffix wracoward2 = new WeightedRandomAffix("coward1", 7); + WeightedRandomAffix wracoward3 = new WeightedRandomAffix("coward1", 5); + + WeightedRandomAffix wragambler1 = new WeightedRandomAffix("gambler1", 6); + WeightedRandomAffix wragambler2 = new WeightedRandomAffix("gambler2", 4); + WeightedRandomAffix wragambler3 = new WeightedRandomAffix("gambler3", 2); + + WeightedRandomAffix wralooter1 = new WeightedRandomAffix("looter1", 6); + WeightedRandomAffix wralooter2 = new WeightedRandomAffix("looter2", 4); + WeightedRandomAffix wralooter3 = new WeightedRandomAffix("looter3", 2); /* * Prefixes @@ -152,11 +184,25 @@ public class AffixMods { necklacePrefixGen.add(wraflatDMG5); earringsPrefixGen.add(wraflatDMG5); earringsPrefixGen.add(wraflatDMG6); + + generalPrefixGen.add(wraflatarmlife1); + braceletPrefixGen.add(wraflatarmlife1); + necklacePrefixGen.add(wraflatarmlife2); + earringsPrefixGen.add(wraflatarmlife3); + + necklacePrefixGen.add(wragambler1); + earringsPrefixGen.add(wragambler2); + earringsPrefixGen.add(wragambler3); + + generalPrefixGen.add(wralooter1); + ringPrefixGen.add(wralooter1); + braceletPrefixGen.add(wralooter2); + necklacePrefixGen.add(wralooter3); /* * Suffixes */ - + generalSuffixGen.add(wraHealth1); generalSuffixGen.add(wraHealth2); generalSuffixGen.add(wraHealth3); @@ -170,7 +216,7 @@ public class AffixMods { braceletSuffixGen.add(wraHitheal2); necklaceSuffixGen.add(wraHitheal2); necklaceSuffixGen.add(wraHitheal3); - + generalSuffixGen.add(wraflatarm1); generalSuffixGen.add(wraflatarm2); generalSuffixGen.add(wraflatarm3); @@ -183,6 +229,31 @@ public class AffixMods { necklaceSuffixGen.add(wraflatarm5); earringsSuffixGen.add(wraflatarm5); earringsSuffixGen.add(wraflatarm6); + + generalSuffixGen.add(wracoward1); + ringSuffixGen.add(wracoward1); + braceletSuffixGen.add(wracoward2); + necklaceSuffixGen.add(wracoward3); + } + + private static void initFields() { + prefixes = new HashMap<String, ModifierEffect>(); + suffixes = new HashMap<String, ModifierEffect>(); + + generalPrefixGen = new LinkedList<WeightedRandomAffix>(); + generalSuffixGen = new LinkedList<WeightedRandomAffix>(); + + ringPrefixGen = new LinkedList<WeightedRandomAffix>(); + ringSuffixGen = new LinkedList<WeightedRandomAffix>(); + + braceletPrefixGen = new LinkedList<WeightedRandomAffix>(); + braceletSuffixGen = new LinkedList<WeightedRandomAffix>(); + + necklacePrefixGen = new LinkedList<WeightedRandomAffix>(); + necklaceSuffixGen = new LinkedList<WeightedRandomAffix>(); + + earringsPrefixGen = new LinkedList<WeightedRandomAffix>(); + earringsSuffixGen = new LinkedList<WeightedRandomAffix>(); } public static ModifierEffect getPrefix(String prefix) { @@ -216,8 +287,9 @@ public class AffixMods { } } - if (pickList.size() <= 0) pickList = generalPrefixGen; - + if (pickList.size() <= 0) + pickList = generalPrefixGen; + WeightedRandomAffix wra = ((WeightedRandomAffix) WeightedRandom.getRandomItem(random, pickList)); return wra.getAffix(random); @@ -246,8 +318,9 @@ public class AffixMods { } } - if (pickList.size() <= 0) pickList = generalSuffixGen; - + if (pickList.size() <= 0) + pickList = generalSuffixGen; + WeightedRandomAffix wra = ((WeightedRandomAffix) WeightedRandom.getRandomItem(random, pickList)); return wra.getAffix(random); diff --git a/src/main/java/darkknight/jewelrycraft/affixes/ArmorAffix.java b/src/main/java/darkknight/jewelrycraft/affixes/ArmorAffix.java index d0f12af..e465109 100644 --- a/src/main/java/darkknight/jewelrycraft/affixes/ArmorAffix.java +++ b/src/main/java/darkknight/jewelrycraft/affixes/ArmorAffix.java @@ -28,6 +28,6 @@ public class ArmorAffix extends ModifierEffect { amt *= mult; amt -= aftAmount; - event.ammount = Math.max(0.5f, amt); + event.ammount = Math.max(1f, amt); } } 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 diff --git a/src/main/java/darkknight/jewelrycraft/affixes/LootingAffix.java b/src/main/java/darkknight/jewelrycraft/affixes/LootingAffix.java new file mode 100644 index 0000000..559ad4e --- /dev/null +++ b/src/main/java/darkknight/jewelrycraft/affixes/LootingAffix.java @@ -0,0 +1,30 @@ +package darkknight.jewelrycraft.affixes; + +import darkknight.jewelrycraft.api.ModifierEffect; +import darkknight.jewelrycraft.item.ItemBaseJewelry; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraftforge.event.entity.living.LivingDropsEvent; + +public class LootingAffix extends ModifierEffect { + private int bonus; + + public LootingAffix(int bonus) { + super(null); + + this.bonus = bonus; + } + + @Override + public void onLivingDropItems(ItemStack item, EntityPlayer player, LivingDropsEvent event, + ItemBaseJewelry jewelry) { + for (EntityItem drop : event.drops) { + ItemStack is = drop.getEntityItem(); + + if (is.isStackable()) { + is.stackSize = Math.min(is.stackSize + bonus, is.getMaxStackSize()); + } + } + } +} diff --git a/src/main/resources/assets/jewelrycraft2/lang/en_US.lang b/src/main/resources/assets/jewelrycraft2/lang/en_US.lang index 6419803..246a2b2 100755 --- a/src/main/resources/assets/jewelrycraft2/lang/en_US.lang +++ b/src/main/resources/assets/jewelrycraft2/lang/en_US.lang @@ -204,13 +204,6 @@ prefix.jewelrycraft2.health4=Stalwart prefix.jewelrycraft2.health5=Stout
prefix.jewelrycraft2.health6=Robust
-prefix.jewelrycraft2.flatdmg1=Glinting
-prefix.jewelrycraft2.flatdmg2=Burnished
-prefix.jewelrycraft2.flatdmg3=Polished
-prefix.jewelrycraft2.flatdmg4=Honed
-prefix.jewelrycraft2.flatdmg5=Gleaming
-prefix.jewelrycraft2.flatdmg6=Annealed
-
prefix.jewelrycraft2.health1.desc=+1 Health
prefix.jewelrycraft2.health2.desc=+2 Health
prefix.jewelrycraft2.health3.desc=+3 Health
@@ -218,6 +211,13 @@ prefix.jewelrycraft2.health4.desc=+4 Health prefix.jewelrycraft2.health5.desc=+5 Health
prefix.jewelrycraft2.health6.desc=+6 Health
+prefix.jewelrycraft2.flatdmg1=Glinting
+prefix.jewelrycraft2.flatdmg2=Burnished
+prefix.jewelrycraft2.flatdmg3=Polished
+prefix.jewelrycraft2.flatdmg4=Honed
+prefix.jewelrycraft2.flatdmg5=Gleaming
+prefix.jewelrycraft2.flatdmg6=Annealed
+
prefix.jewelrycraft2.flatdmg1.desc=+1 Damage
prefix.jewelrycraft2.flatdmg2.desc=+2 Damage
prefix.jewelrycraft2.flatdmg3.desc=+3 Damage
@@ -225,14 +225,38 @@ prefix.jewelrycraft2.flatdmg4.desc=+4 Damage prefix.jewelrycraft2.flatdmg5.desc=+5 Damage
prefix.jewelrycraft2.flatdmg6.desc=+6 Damage
+prefix.jewelrycraft2.flatarmlife1=Oyster's
+prefix.jewelrycraft2.flatarmlife2=Urchin's
+prefix.jewelrycraft2.flatarmlife3=Nautilus's
+
+prefix.jewelrycraft2.flatarmlife1.desc=+1 Health, -1 Damage Taken
+prefix.jewelrycraft2.flatarmlife2.desc=+2 Health, -2 Damage Taken
+prefix.jewelrycraft2.flatarmlife3.desc=+3 Health, -3 Damage Taken
+
+prefix.jewelrycraft2.gambler1=Gambler's
+prefix.jewelrycraft2.gambler2=Cardsharp's
+prefix.jewelrycraft2.gambler3=Highroller's
+
+prefix.jewelrycraft2.gambler1.desc=25% More Damage Dealt/Taken
+prefix.jewelrycraft2.gambler2.desc=50% More Damage Dealt/Taken
+prefix.jewelrycraft2.gambler3.desc=75% More Damage Dealt/Taken
+
suffix.jewelrycraft2.health1=of the Jackal
suffix.jewelrycraft2.health2=of the Fox
suffix.jewelrycraft2.health3=of the Wolf
+suffix.jewelrycraft2.health1.desc=+1 Health
+suffix.jewelrycraft2.health2.desc=+2 Health
+suffix.jewelrycraft2.health3.desc=+3 Health
+
suffix.jewelrycraft2.hitheal1=of Rejuvenation
suffix.jewelrycraft2.hitheal2=of Restoration
suffix.jewelrycraft2.hitheal3=of Regrowth
+suffix.jewelrycraft2.hitheal1.desc=+1 Health on striking an enemy
+suffix.jewelrycraft2.hitheal2.desc=+2 Health on striking an enemy
+suffix.jewelrycraft2.hitheal3.desc=+3 Health on striking an enemy
+
suffix.jewelrycraft2.flatarm1=of Health
suffix.jewelrycraft2.flatarm2=of Protection
suffix.jewelrycraft2.flatarm3=of Absorption
@@ -240,17 +264,25 @@ suffix.jewelrycraft2.flatarm4=of Life suffix.jewelrycraft2.flatarm5=of Amicae
suffix.jewelrycraft2.flatarm6=of Sanctuary
-suffix.jewelrycraft2.health1.desc=+1 Health
-suffix.jewelrycraft2.health2.desc=+2 Health
-suffix.jewelrycraft2.health3.desc=+3 Health
-
-suffix.jewelrycraft2.hitheal1.desc=+1 Health on striking an enemy
-suffix.jewelrycraft2.hitheal2.desc=+2 Health on striking an enemy
-suffix.jewelrycraft2.hitheal3.desc=+3 Health on striking an enemy
-
suffix.jewelrycraft2.flatarm1.desc=-1 Damage Taken
suffix.jewelrycraft2.flatarm2.desc=-2 Damage Taken
suffix.jewelrycraft2.flatarm3.desc=-3 Damage Taken
suffix.jewelrycraft2.flatarm4.desc=-4 Damage Taken
suffix.jewelrycraft2.flatarm5.desc=-5 Damage Taken
-suffix.jewelrycraft2.flatarm6.desc=-6 Damage Taken
\ No newline at end of file +suffix.jewelrycraft2.flatarm6.desc=-6 Damage Taken
+
+suffix.jewelrycraft2.coward1=of the Barren
+suffix.jewelrycraft2.coward1=of the Hollow
+suffix.jewelrycraft2.coward1=of the Void
+
+suffix.jewelrycraft2.coward1.desc=+2 Health, 10% More Damage Taken
+suffix.jewelrycraft2.coward2.desc=+4 Health, 20% More Damage Taken
+suffix.jewelrycraft2.coward3.desc=+6 Health, 30% More Damage Taken
+
+suffix.jewelrycraft2.looter1=of Plunder
+suffix.jewelrycraft2.looter2=of Raiding
+suffix.jewelrycraft2.looter3=of Looting
+
+suffix.jewelrycraft2.looter1.desc=+1 Mob Drop
+suffix.jewelrycraft2.looter2.desc=+2 Mob Drop
+suffix.jewelrycraft2.looter3.desc=+3 Mob Drop
\ No newline at end of file |
