summaryrefslogtreecommitdiff
path: root/src/main/java/darkknight/jewelrycraft/affixes
diff options
context:
space:
mode:
authorbculkin2442 <bjculkin@mix.wvu.edu>2019-09-04 22:24:39 -0400
committerbculkin2442 <bjculkin@mix.wvu.edu>2019-09-04 22:24:39 -0400
commitcdbbd891c43e082a36a32e49420bf87b6edd28e0 (patch)
treec3a970f6cc05a74e3c1fec6c670a07055e21c01d /src/main/java/darkknight/jewelrycraft/affixes
parent857d548f591b8f3770befd2535985959fd870474 (diff)
More affix work
Diffstat (limited to 'src/main/java/darkknight/jewelrycraft/affixes')
-rw-r--r--src/main/java/darkknight/jewelrycraft/affixes/AffixMods.java64
-rw-r--r--src/main/java/darkknight/jewelrycraft/affixes/DamageAffix.java16
-rw-r--r--src/main/java/darkknight/jewelrycraft/affixes/HealthAffix.java29
3 files changed, 109 insertions, 0 deletions
diff --git a/src/main/java/darkknight/jewelrycraft/affixes/AffixMods.java b/src/main/java/darkknight/jewelrycraft/affixes/AffixMods.java
new file mode 100644
index 0000000..d124251
--- /dev/null
+++ b/src/main/java/darkknight/jewelrycraft/affixes/AffixMods.java
@@ -0,0 +1,64 @@
+package darkknight.jewelrycraft.affixes;
+
+import java.util.*;
+
+import cpw.mods.fml.common.event.FMLPreInitializationEvent;
+import darkknight.jewelrycraft.api.ModifierEffect;
+import darkknight.jewelrycraft.random.WeightedRandomAffix;
+import net.minecraft.util.WeightedRandom;
+
+public class AffixMods {
+ private static Map<String, ModifierEffect> prefixes;
+ private static Map<String, ModifierEffect> suffixes;
+
+ private static List<WeightedRandomAffix> prefixGen;
+ private static List<WeightedRandomAffix> suffixGen;
+
+ public static void initializeAffixes(FMLPreInitializationEvent fpie) {
+ prefixes = new HashMap<String, ModifierEffect>();
+ suffixes = new HashMap<String, ModifierEffect>();
+
+ prefixGen = new LinkedList<WeightedRandomAffix>();
+ suffixGen = new LinkedList<WeightedRandomAffix>();
+
+ ModifierEffect health1 = new HealthAffix(1);
+ ModifierEffect health2 = new HealthAffix(2);
+ ModifierEffect health3 = new HealthAffix(3);
+
+ prefixes.put("health1", health1);
+ prefixes.put("health2", health2);
+ prefixes.put("health3", health3);
+
+ prefixGen.add(new WeightedRandomAffix("health1", 10));
+ prefixGen.add(new WeightedRandomAffix("health2", 7));
+ prefixGen.add(new WeightedRandomAffix("health3", 5));
+
+ suffixes.put("health1", health1);
+ suffixes.put("health2", health2);
+ suffixes.put("health3", health3);
+
+ suffixGen.add(new WeightedRandomAffix("health1", 10));
+ suffixGen.add(new WeightedRandomAffix("health2", 7));
+ suffixGen.add(new WeightedRandomAffix("health3", 5));
+ }
+
+ public static ModifierEffect getPrefix(String prefix) {
+ return prefixes.get(prefix);
+ }
+
+ public static ModifierEffect getSuffix(String suffix) {
+ return suffixes.get(suffix);
+ }
+
+ public static String pickPrefix(Random random) {
+ WeightedRandomAffix wra = ((WeightedRandomAffix) WeightedRandom.getRandomItem(random, prefixGen));
+
+ return wra.getAffix(random);
+ }
+
+ public static String pickSuffix(Random random) {
+ WeightedRandomAffix wra = ((WeightedRandomAffix) WeightedRandom.getRandomItem(random, suffixGen));
+
+ return wra.getAffix(random);
+ }
+} \ No newline at end of file
diff --git a/src/main/java/darkknight/jewelrycraft/affixes/DamageAffix.java b/src/main/java/darkknight/jewelrycraft/affixes/DamageAffix.java
new file mode 100644
index 0000000..30c89ae
--- /dev/null
+++ b/src/main/java/darkknight/jewelrycraft/affixes/DamageAffix.java
@@ -0,0 +1,16 @@
+package darkknight.jewelrycraft.affixes;
+
+import darkknight.jewelrycraft.api.ModifierEffect;
+import net.minecraft.entity.Entity;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.Item;
+import net.minecraft.item.ItemStack;
+import net.minecraftforge.event.entity.living.LivingAttackEvent;
+
+public class DamageAffix extends ModifierEffect {
+
+ public DamageAffix() {
+ super(null);
+ }
+
+}
diff --git a/src/main/java/darkknight/jewelrycraft/affixes/HealthAffix.java b/src/main/java/darkknight/jewelrycraft/affixes/HealthAffix.java
new file mode 100644
index 0000000..56ec244
--- /dev/null
+++ b/src/main/java/darkknight/jewelrycraft/affixes/HealthAffix.java
@@ -0,0 +1,29 @@
+package darkknight.jewelrycraft.affixes;
+
+import darkknight.jewelrycraft.api.ModifierEffect;
+import net.minecraft.entity.SharedMonsterAttributes;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.Item;
+import net.minecraft.item.ItemStack;
+
+public class HealthAffix extends ModifierEffect {
+ private int health;
+
+ public HealthAffix(int health) {
+ super(null);
+
+ this.health = health;
+ }
+
+ @Override
+ public void onJewelryEquipped(ItemStack item, Item jewelry, EntityPlayer player) {
+ player.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(player.getMaxHealth() + health);
+ player.setHealth(player.getHealth() + health);
+ }
+
+ @Override
+ public void onJewelryUnequipped(ItemStack item, Item jewelry, EntityPlayer player) {
+ player.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(player.getMaxHealth() + health);
+ player.setHealth(player.getHealth() + health);
+ }
+}