diff --git a/changelog.txt b/changelog.txt index 009e4c07..041d8bf7 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,3 +1,8 @@ +------------------------------------------------------ +Version 2.1.0-66 +------------------------------------------------------ +- Made it so that when you acquire a Living Armour Upgrade from a Tome, it raises the corresponding Stat Tracker up to that upgrade level. + ------------------------------------------------------ Version 2.1.0-65 ------------------------------------------------------ diff --git a/src/main/java/WayofTime/bloodmagic/api/livingArmour/StatTracker.java b/src/main/java/WayofTime/bloodmagic/api/livingArmour/StatTracker.java index feed71dd..ee27a048 100644 --- a/src/main/java/WayofTime/bloodmagic/api/livingArmour/StatTracker.java +++ b/src/main/java/WayofTime/bloodmagic/api/livingArmour/StatTracker.java @@ -1,11 +1,11 @@ package WayofTime.bloodmagic.api.livingArmour; -import WayofTime.bloodmagic.livingArmour.LivingArmour; +import java.util.List; + import net.minecraft.entity.player.EntityPlayer; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; - -import java.util.List; +import WayofTime.bloodmagic.livingArmour.LivingArmour; public abstract class StatTracker { @@ -43,9 +43,9 @@ public abstract class StatTracker /** * Used to obtain the progress from the current level to the next level. - * + * * 0.0 being 0% - 1.0 being 100%. - * + * * @param livingArmour * The equipped LivingArmour * @return the progress from the current level to the next level. @@ -71,4 +71,6 @@ public abstract class StatTracker } public abstract boolean providesUpgrade(String key); + + public abstract void onArmourUpgradeAdded(LivingArmourUpgrade upgrade); } diff --git a/src/main/java/WayofTime/bloodmagic/livingArmour/LivingArmour.java b/src/main/java/WayofTime/bloodmagic/livingArmour/LivingArmour.java index 5ab46c7c..27e77383 100644 --- a/src/main/java/WayofTime/bloodmagic/livingArmour/LivingArmour.java +++ b/src/main/java/WayofTime/bloodmagic/livingArmour/LivingArmour.java @@ -113,6 +113,11 @@ public class LivingArmour implements ILivingArmour upgradeMap.put(key, upgrade); totalUpgradePoints += upgradePointDifference; notifyPlayerOfUpgrade(user, upgrade); + for (StatTracker tracker : trackerMap.values()) + { + tracker.onArmourUpgradeAdded(upgrade); + } + return true; } } @@ -124,6 +129,11 @@ public class LivingArmour implements ILivingArmour upgradeMap.put(key, upgrade); totalUpgradePoints += upgradePoints; notifyPlayerOfUpgrade(user, upgrade); + for (StatTracker tracker : trackerMap.values()) + { + tracker.onArmourUpgradeAdded(upgrade); + } + return true; } } diff --git a/src/main/java/WayofTime/bloodmagic/livingArmour/tracker/StatTrackerArrowProtect.java b/src/main/java/WayofTime/bloodmagic/livingArmour/tracker/StatTrackerArrowProtect.java index 0904b75d..64371af5 100644 --- a/src/main/java/WayofTime/bloodmagic/livingArmour/tracker/StatTrackerArrowProtect.java +++ b/src/main/java/WayofTime/bloodmagic/livingArmour/tracker/StatTrackerArrowProtect.java @@ -107,4 +107,18 @@ public class StatTrackerArrowProtect extends StatTracker { return key.equals(Constants.Mod.MODID + ".upgrade.arrowProtect"); } + + @Override + public void onArmourUpgradeAdded(LivingArmourUpgrade upgrade) + { + if (upgrade instanceof LivingArmourUpgradeArrowProtect) + { + int level = upgrade.getUpgradeLevel(); + if (level < damageRequired.length) + { + totalDamage = Math.max(totalDamage, damageRequired[level]); + this.markDirty(); + } + } + } } diff --git a/src/main/java/WayofTime/bloodmagic/livingArmour/tracker/StatTrackerArrowShot.java b/src/main/java/WayofTime/bloodmagic/livingArmour/tracker/StatTrackerArrowShot.java index 0c9eeed9..2f1da239 100644 --- a/src/main/java/WayofTime/bloodmagic/livingArmour/tracker/StatTrackerArrowShot.java +++ b/src/main/java/WayofTime/bloodmagic/livingArmour/tracker/StatTrackerArrowShot.java @@ -1,18 +1,18 @@ package WayofTime.bloodmagic.livingArmour.tracker; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.world.World; import WayofTime.bloodmagic.api.Constants; import WayofTime.bloodmagic.api.livingArmour.LivingArmourUpgrade; import WayofTime.bloodmagic.api.livingArmour.StatTracker; import WayofTime.bloodmagic.livingArmour.LivingArmour; import WayofTime.bloodmagic.livingArmour.upgrade.LivingArmourUpgradeArrowShot; import WayofTime.bloodmagic.util.Utils; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.world.World; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; public class StatTrackerArrowShot extends StatTracker { @@ -107,4 +107,18 @@ public class StatTrackerArrowShot extends StatTracker { return key.equals(Constants.Mod.MODID + ".upgrade.arrowShot"); } + + @Override + public void onArmourUpgradeAdded(LivingArmourUpgrade upgrade) + { + if (upgrade instanceof LivingArmourUpgradeArrowShot) + { + int level = upgrade.getUpgradeLevel(); + if (level < shotsRequired.length) + { + totalShots = Math.max(totalShots, shotsRequired[level]); + this.markDirty(); + } + } + } } diff --git a/src/main/java/WayofTime/bloodmagic/livingArmour/tracker/StatTrackerCriticalStrike.java b/src/main/java/WayofTime/bloodmagic/livingArmour/tracker/StatTrackerCriticalStrike.java index 60986cf0..4980448d 100644 --- a/src/main/java/WayofTime/bloodmagic/livingArmour/tracker/StatTrackerCriticalStrike.java +++ b/src/main/java/WayofTime/bloodmagic/livingArmour/tracker/StatTrackerCriticalStrike.java @@ -4,7 +4,6 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; -import WayofTime.bloodmagic.util.Utils; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; @@ -13,6 +12,7 @@ import WayofTime.bloodmagic.api.livingArmour.LivingArmourUpgrade; import WayofTime.bloodmagic.api.livingArmour.StatTracker; import WayofTime.bloodmagic.livingArmour.LivingArmour; import WayofTime.bloodmagic.livingArmour.upgrade.LivingArmourUpgradeCriticalStrike; +import WayofTime.bloodmagic.util.Utils; public class StatTrackerCriticalStrike extends StatTracker { @@ -107,4 +107,18 @@ public class StatTrackerCriticalStrike extends StatTracker { return key.equals(Constants.Mod.MODID + ".upgrade.criticalStrike"); } + + @Override + public void onArmourUpgradeAdded(LivingArmourUpgrade upgrade) + { + if (upgrade instanceof LivingArmourUpgradeCriticalStrike) + { + int level = upgrade.getUpgradeLevel(); + if (level < damageRequired.length) + { + totalDamageDealt = Math.max(totalDamageDealt, damageRequired[level]); + this.markDirty(); + } + } + } } diff --git a/src/main/java/WayofTime/bloodmagic/livingArmour/tracker/StatTrackerDigging.java b/src/main/java/WayofTime/bloodmagic/livingArmour/tracker/StatTrackerDigging.java index 528dfad0..0d2904c5 100644 --- a/src/main/java/WayofTime/bloodmagic/livingArmour/tracker/StatTrackerDigging.java +++ b/src/main/java/WayofTime/bloodmagic/livingArmour/tracker/StatTrackerDigging.java @@ -1,18 +1,18 @@ package WayofTime.bloodmagic.livingArmour.tracker; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.world.World; import WayofTime.bloodmagic.api.Constants; import WayofTime.bloodmagic.api.livingArmour.LivingArmourUpgrade; import WayofTime.bloodmagic.api.livingArmour.StatTracker; import WayofTime.bloodmagic.livingArmour.LivingArmour; import WayofTime.bloodmagic.livingArmour.upgrade.LivingArmourUpgradeDigging; import WayofTime.bloodmagic.util.Utils; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.world.World; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; public class StatTrackerDigging extends StatTracker { @@ -107,4 +107,18 @@ public class StatTrackerDigging extends StatTracker { return key.equals(Constants.Mod.MODID + ".upgrade.digging"); } + + @Override + public void onArmourUpgradeAdded(LivingArmourUpgrade upgrade) + { + if (upgrade instanceof LivingArmourUpgradeDigging) + { + int level = upgrade.getUpgradeLevel(); + if (level < blocksRequired.length) + { + totalBlocksDug = Math.max(totalBlocksDug, blocksRequired[level]); + this.markDirty(); + } + } + } } diff --git a/src/main/java/WayofTime/bloodmagic/livingArmour/tracker/StatTrackerExperience.java b/src/main/java/WayofTime/bloodmagic/livingArmour/tracker/StatTrackerExperience.java index 0bd168a5..cbaee6c2 100644 --- a/src/main/java/WayofTime/bloodmagic/livingArmour/tracker/StatTrackerExperience.java +++ b/src/main/java/WayofTime/bloodmagic/livingArmour/tracker/StatTrackerExperience.java @@ -4,7 +4,6 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; -import WayofTime.bloodmagic.util.Utils; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; @@ -13,6 +12,7 @@ import WayofTime.bloodmagic.api.livingArmour.LivingArmourUpgrade; import WayofTime.bloodmagic.api.livingArmour.StatTracker; import WayofTime.bloodmagic.livingArmour.LivingArmour; import WayofTime.bloodmagic.livingArmour.upgrade.LivingArmourUpgradeExperience; +import WayofTime.bloodmagic.util.Utils; public class StatTrackerExperience extends StatTracker { @@ -107,4 +107,18 @@ public class StatTrackerExperience extends StatTracker { return key.equals(Constants.Mod.MODID + ".upgrade.experienced"); } + + @Override + public void onArmourUpgradeAdded(LivingArmourUpgrade upgrade) + { + if (upgrade instanceof LivingArmourUpgradeExperience) + { + int level = upgrade.getUpgradeLevel(); + if (level < experienceRequired.length) + { + totalExperienceGained = Math.max(totalExperienceGained, experienceRequired[level]); + this.markDirty(); + } + } + } } diff --git a/src/main/java/WayofTime/bloodmagic/livingArmour/tracker/StatTrackerFallProtect.java b/src/main/java/WayofTime/bloodmagic/livingArmour/tracker/StatTrackerFallProtect.java index c164ef66..349ba96e 100644 --- a/src/main/java/WayofTime/bloodmagic/livingArmour/tracker/StatTrackerFallProtect.java +++ b/src/main/java/WayofTime/bloodmagic/livingArmour/tracker/StatTrackerFallProtect.java @@ -4,7 +4,6 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; -import WayofTime.bloodmagic.util.Utils; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; @@ -13,6 +12,7 @@ import WayofTime.bloodmagic.api.livingArmour.LivingArmourUpgrade; import WayofTime.bloodmagic.api.livingArmour.StatTracker; import WayofTime.bloodmagic.livingArmour.LivingArmour; import WayofTime.bloodmagic.livingArmour.upgrade.LivingArmourUpgradeFallProtect; +import WayofTime.bloodmagic.util.Utils; public class StatTrackerFallProtect extends StatTracker { @@ -107,4 +107,18 @@ public class StatTrackerFallProtect extends StatTracker { return key.equals(Constants.Mod.MODID + ".upgrade.fallProtect"); } + + @Override + public void onArmourUpgradeAdded(LivingArmourUpgrade upgrade) + { + if (upgrade instanceof LivingArmourUpgradeFallProtect) + { + int level = upgrade.getUpgradeLevel(); + if (level < damageRequired.length) + { + totalDamage = Math.max(totalDamage, damageRequired[level]); + this.markDirty(); + } + } + } } diff --git a/src/main/java/WayofTime/bloodmagic/livingArmour/tracker/StatTrackerFireResist.java b/src/main/java/WayofTime/bloodmagic/livingArmour/tracker/StatTrackerFireResist.java index b05cccae..179870c0 100644 --- a/src/main/java/WayofTime/bloodmagic/livingArmour/tracker/StatTrackerFireResist.java +++ b/src/main/java/WayofTime/bloodmagic/livingArmour/tracker/StatTrackerFireResist.java @@ -3,7 +3,6 @@ package WayofTime.bloodmagic.livingArmour.tracker; import java.util.ArrayList; import java.util.List; -import WayofTime.bloodmagic.util.Utils; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; @@ -12,6 +11,7 @@ import WayofTime.bloodmagic.api.livingArmour.LivingArmourUpgrade; import WayofTime.bloodmagic.api.livingArmour.StatTracker; import WayofTime.bloodmagic.livingArmour.LivingArmour; import WayofTime.bloodmagic.livingArmour.upgrade.LivingArmourUpgradeFireResist; +import WayofTime.bloodmagic.util.Utils; public class StatTrackerFireResist extends StatTracker { @@ -89,4 +89,18 @@ public class StatTrackerFireResist extends StatTracker { return key.equals(Constants.Mod.MODID + ".upgrade.fireResist"); } + + @Override + public void onArmourUpgradeAdded(LivingArmourUpgrade upgrade) + { + if (upgrade instanceof LivingArmourUpgradeFireResist) + { + int level = upgrade.getUpgradeLevel(); + if (level < fireTicksRequired.length) + { + totalFireTicks = Math.max(totalFireTicks, fireTicksRequired[level]); + this.markDirty(); + } + } + } } diff --git a/src/main/java/WayofTime/bloodmagic/livingArmour/tracker/StatTrackerFood.java b/src/main/java/WayofTime/bloodmagic/livingArmour/tracker/StatTrackerFood.java index 3ed629a9..e32e7e38 100644 --- a/src/main/java/WayofTime/bloodmagic/livingArmour/tracker/StatTrackerFood.java +++ b/src/main/java/WayofTime/bloodmagic/livingArmour/tracker/StatTrackerFood.java @@ -1,19 +1,19 @@ package WayofTime.bloodmagic.livingArmour.tracker; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.world.World; import WayofTime.bloodmagic.api.Constants; import WayofTime.bloodmagic.api.livingArmour.LivingArmourUpgrade; import WayofTime.bloodmagic.api.livingArmour.StatTracker; import WayofTime.bloodmagic.livingArmour.LivingArmour; import WayofTime.bloodmagic.livingArmour.upgrade.LivingArmourUpgradeKnockbackResist; import WayofTime.bloodmagic.util.Utils; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.world.World; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; public class StatTrackerFood extends StatTracker { @@ -109,4 +109,18 @@ public class StatTrackerFood extends StatTracker { return key.equals(Constants.Mod.MODID + ".upgrade.knockback"); } + + @Override + public void onArmourUpgradeAdded(LivingArmourUpgrade upgrade) + { + if (upgrade instanceof LivingArmourUpgradeKnockbackResist) + { + int level = upgrade.getUpgradeLevel(); + if (level < foodRequired.length) + { + foodEaten = Math.max(foodEaten, foodRequired[level]); + this.markDirty(); + } + } + } } diff --git a/src/main/java/WayofTime/bloodmagic/livingArmour/tracker/StatTrackerGraveDigger.java b/src/main/java/WayofTime/bloodmagic/livingArmour/tracker/StatTrackerGraveDigger.java index 2ea689f5..f4fe2cc3 100644 --- a/src/main/java/WayofTime/bloodmagic/livingArmour/tracker/StatTrackerGraveDigger.java +++ b/src/main/java/WayofTime/bloodmagic/livingArmour/tracker/StatTrackerGraveDigger.java @@ -4,7 +4,6 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; -import WayofTime.bloodmagic.util.Utils; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; @@ -13,6 +12,7 @@ import WayofTime.bloodmagic.api.livingArmour.LivingArmourUpgrade; import WayofTime.bloodmagic.api.livingArmour.StatTracker; import WayofTime.bloodmagic.livingArmour.LivingArmour; import WayofTime.bloodmagic.livingArmour.upgrade.LivingArmourUpgradeGraveDigger; +import WayofTime.bloodmagic.util.Utils; public class StatTrackerGraveDigger extends StatTracker { @@ -107,4 +107,18 @@ public class StatTrackerGraveDigger extends StatTracker { return key.equals(Constants.Mod.MODID + ".upgrade.graveDigger"); } + + @Override + public void onArmourUpgradeAdded(LivingArmourUpgrade upgrade) + { + if (upgrade instanceof LivingArmourUpgradeGraveDigger) + { + int level = upgrade.getUpgradeLevel(); + if (level < damageRequired.length) + { + totalDamageDealt = Math.max(totalDamageDealt, damageRequired[level]); + this.markDirty(); + } + } + } } diff --git a/src/main/java/WayofTime/bloodmagic/livingArmour/tracker/StatTrackerGrimReaperSprint.java b/src/main/java/WayofTime/bloodmagic/livingArmour/tracker/StatTrackerGrimReaperSprint.java index 0513ccaa..80cdb444 100644 --- a/src/main/java/WayofTime/bloodmagic/livingArmour/tracker/StatTrackerGrimReaperSprint.java +++ b/src/main/java/WayofTime/bloodmagic/livingArmour/tracker/StatTrackerGrimReaperSprint.java @@ -1,18 +1,18 @@ package WayofTime.bloodmagic.livingArmour.tracker; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.world.World; import WayofTime.bloodmagic.api.Constants; import WayofTime.bloodmagic.api.livingArmour.LivingArmourUpgrade; import WayofTime.bloodmagic.api.livingArmour.StatTracker; import WayofTime.bloodmagic.livingArmour.LivingArmour; import WayofTime.bloodmagic.livingArmour.upgrade.LivingArmourUpgradeGrimReaperSprint; import WayofTime.bloodmagic.util.Utils; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.world.World; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; public class StatTrackerGrimReaperSprint extends StatTracker { @@ -114,4 +114,18 @@ public class StatTrackerGrimReaperSprint extends StatTracker { return key.equals(Constants.Mod.MODID + ".upgrade.grimReaper"); } + + @Override + public void onArmourUpgradeAdded(LivingArmourUpgrade upgrade) + { + if (upgrade instanceof LivingArmourUpgradeGrimReaperSprint) + { + int level = upgrade.getUpgradeLevel(); + if (level < deathsRequired.length) + { + totalDeaths = Math.max(totalDeaths, deathsRequired[level]); + this.markDirty(); + } + } + } } diff --git a/src/main/java/WayofTime/bloodmagic/livingArmour/tracker/StatTrackerHealthboost.java b/src/main/java/WayofTime/bloodmagic/livingArmour/tracker/StatTrackerHealthboost.java index 69922343..3e522b27 100644 --- a/src/main/java/WayofTime/bloodmagic/livingArmour/tracker/StatTrackerHealthboost.java +++ b/src/main/java/WayofTime/bloodmagic/livingArmour/tracker/StatTrackerHealthboost.java @@ -1,18 +1,18 @@ package WayofTime.bloodmagic.livingArmour.tracker; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.world.World; import WayofTime.bloodmagic.api.Constants; import WayofTime.bloodmagic.api.livingArmour.LivingArmourUpgrade; import WayofTime.bloodmagic.api.livingArmour.StatTracker; import WayofTime.bloodmagic.livingArmour.LivingArmour; import WayofTime.bloodmagic.livingArmour.upgrade.LivingArmourUpgradeHealthboost; import WayofTime.bloodmagic.util.Utils; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.world.World; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; public class StatTrackerHealthboost extends StatTracker { @@ -107,4 +107,18 @@ public class StatTrackerHealthboost extends StatTracker { return key.equals(Constants.Mod.MODID + ".upgrade.health"); } + + @Override + public void onArmourUpgradeAdded(LivingArmourUpgrade upgrade) + { + if (upgrade instanceof LivingArmourUpgradeHealthboost) + { + int level = upgrade.getUpgradeLevel(); + if (level < healthedRequired.length) + { + totalHealthGenned = Math.max(totalHealthGenned, healthedRequired[level]); + this.markDirty(); + } + } + } } diff --git a/src/main/java/WayofTime/bloodmagic/livingArmour/tracker/StatTrackerJump.java b/src/main/java/WayofTime/bloodmagic/livingArmour/tracker/StatTrackerJump.java index 9df17da4..4c9be523 100644 --- a/src/main/java/WayofTime/bloodmagic/livingArmour/tracker/StatTrackerJump.java +++ b/src/main/java/WayofTime/bloodmagic/livingArmour/tracker/StatTrackerJump.java @@ -4,7 +4,6 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; -import WayofTime.bloodmagic.util.Utils; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; @@ -13,6 +12,7 @@ import WayofTime.bloodmagic.api.livingArmour.LivingArmourUpgrade; import WayofTime.bloodmagic.api.livingArmour.StatTracker; import WayofTime.bloodmagic.livingArmour.LivingArmour; import WayofTime.bloodmagic.livingArmour.upgrade.LivingArmourUpgradeJump; +import WayofTime.bloodmagic.util.Utils; public class StatTrackerJump extends StatTracker { @@ -108,4 +108,18 @@ public class StatTrackerJump extends StatTracker { return key.equals(Constants.Mod.MODID + ".upgrade.jump"); } + + @Override + public void onArmourUpgradeAdded(LivingArmourUpgrade upgrade) + { + if (upgrade instanceof LivingArmourUpgradeJump) + { + int level = upgrade.getUpgradeLevel(); + if (level < jumpsRequired.length) + { + totalJumps = Math.max(totalJumps, jumpsRequired[level]); + this.markDirty(); + } + } + } } diff --git a/src/main/java/WayofTime/bloodmagic/livingArmour/tracker/StatTrackerMeleeDamage.java b/src/main/java/WayofTime/bloodmagic/livingArmour/tracker/StatTrackerMeleeDamage.java index 6edaa36e..c5912864 100644 --- a/src/main/java/WayofTime/bloodmagic/livingArmour/tracker/StatTrackerMeleeDamage.java +++ b/src/main/java/WayofTime/bloodmagic/livingArmour/tracker/StatTrackerMeleeDamage.java @@ -1,18 +1,18 @@ package WayofTime.bloodmagic.livingArmour.tracker; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.world.World; import WayofTime.bloodmagic.api.Constants; import WayofTime.bloodmagic.api.livingArmour.LivingArmourUpgrade; import WayofTime.bloodmagic.api.livingArmour.StatTracker; import WayofTime.bloodmagic.livingArmour.LivingArmour; import WayofTime.bloodmagic.livingArmour.upgrade.LivingArmourUpgradeMeleeDamage; import WayofTime.bloodmagic.util.Utils; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.world.World; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; public class StatTrackerMeleeDamage extends StatTracker { @@ -107,4 +107,18 @@ public class StatTrackerMeleeDamage extends StatTracker { return key.equals(Constants.Mod.MODID + ".upgrade.meleeDamage"); } + + @Override + public void onArmourUpgradeAdded(LivingArmourUpgrade upgrade) + { + if (upgrade instanceof LivingArmourUpgradeMeleeDamage) + { + int level = upgrade.getUpgradeLevel(); + if (level < damageRequired.length) + { + totalDamageDealt = Math.max(totalDamageDealt, damageRequired[level]); + this.markDirty(); + } + } + } } diff --git a/src/main/java/WayofTime/bloodmagic/livingArmour/tracker/StatTrackerMovement.java b/src/main/java/WayofTime/bloodmagic/livingArmour/tracker/StatTrackerMovement.java index ceb3d6bf..b9e6fc60 100644 --- a/src/main/java/WayofTime/bloodmagic/livingArmour/tracker/StatTrackerMovement.java +++ b/src/main/java/WayofTime/bloodmagic/livingArmour/tracker/StatTrackerMovement.java @@ -1,19 +1,19 @@ package WayofTime.bloodmagic.livingArmour.tracker; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.world.World; import WayofTime.bloodmagic.api.Constants; import WayofTime.bloodmagic.api.livingArmour.LivingArmourUpgrade; import WayofTime.bloodmagic.api.livingArmour.StatTracker; import WayofTime.bloodmagic.livingArmour.LivingArmour; import WayofTime.bloodmagic.livingArmour.upgrade.LivingArmourUpgradeSpeed; import WayofTime.bloodmagic.util.Utils; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.world.World; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; public class StatTrackerMovement extends StatTracker { @@ -117,4 +117,18 @@ public class StatTrackerMovement extends StatTracker { return key.equals(Constants.Mod.MODID + ".upgrade.movement"); } + + @Override + public void onArmourUpgradeAdded(LivingArmourUpgrade upgrade) + { + if (upgrade instanceof LivingArmourUpgradeSpeed) + { + int level = upgrade.getUpgradeLevel(); + if (level < blocksRequired.length) + { + totalMovement = Math.max(totalMovement, blocksRequired[level]); + this.markDirty(); + } + } + } } diff --git a/src/main/java/WayofTime/bloodmagic/livingArmour/tracker/StatTrackerNightSight.java b/src/main/java/WayofTime/bloodmagic/livingArmour/tracker/StatTrackerNightSight.java index a3d6531b..8c0b7913 100644 --- a/src/main/java/WayofTime/bloodmagic/livingArmour/tracker/StatTrackerNightSight.java +++ b/src/main/java/WayofTime/bloodmagic/livingArmour/tracker/StatTrackerNightSight.java @@ -130,4 +130,19 @@ public class StatTrackerNightSight extends StatTracker { return key.equals(Constants.Mod.MODID + ".upgrade.nightSight"); } + + @Override + public void onArmourUpgradeAdded(LivingArmourUpgrade upgrade) + { + if (upgrade instanceof LivingArmourUpgradeNightSight) + { + int level = upgrade.getUpgradeLevel(); + if (level < damageRequired.length) + { + totalDamageDealt = Math.max(totalDamageDealt, damageRequired[level]); + totalNightVision = neededNightVision; + this.markDirty(); + } + } + } } diff --git a/src/main/java/WayofTime/bloodmagic/livingArmour/tracker/StatTrackerPhysicalProtect.java b/src/main/java/WayofTime/bloodmagic/livingArmour/tracker/StatTrackerPhysicalProtect.java index 7a746a7a..638ee99a 100644 --- a/src/main/java/WayofTime/bloodmagic/livingArmour/tracker/StatTrackerPhysicalProtect.java +++ b/src/main/java/WayofTime/bloodmagic/livingArmour/tracker/StatTrackerPhysicalProtect.java @@ -1,18 +1,18 @@ package WayofTime.bloodmagic.livingArmour.tracker; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.world.World; import WayofTime.bloodmagic.api.Constants; import WayofTime.bloodmagic.api.livingArmour.LivingArmourUpgrade; import WayofTime.bloodmagic.api.livingArmour.StatTracker; import WayofTime.bloodmagic.livingArmour.LivingArmour; import WayofTime.bloodmagic.livingArmour.upgrade.LivingArmourUpgradePhysicalProtect; import WayofTime.bloodmagic.util.Utils; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.world.World; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; public class StatTrackerPhysicalProtect extends StatTracker { @@ -107,4 +107,18 @@ public class StatTrackerPhysicalProtect extends StatTracker { return key.equals(Constants.Mod.MODID + ".upgrade.physicalProtect"); } + + @Override + public void onArmourUpgradeAdded(LivingArmourUpgrade upgrade) + { + if (upgrade instanceof LivingArmourUpgradePhysicalProtect) + { + int level = upgrade.getUpgradeLevel(); + if (level < damageRequired.length) + { + totalDamage = Math.max(totalDamage, damageRequired[level]); + this.markDirty(); + } + } + } } diff --git a/src/main/java/WayofTime/bloodmagic/livingArmour/tracker/StatTrackerPoison.java b/src/main/java/WayofTime/bloodmagic/livingArmour/tracker/StatTrackerPoison.java index 7a6b6f52..588e9a83 100644 --- a/src/main/java/WayofTime/bloodmagic/livingArmour/tracker/StatTrackerPoison.java +++ b/src/main/java/WayofTime/bloodmagic/livingArmour/tracker/StatTrackerPoison.java @@ -3,7 +3,6 @@ package WayofTime.bloodmagic.livingArmour.tracker; import java.util.ArrayList; import java.util.List; -import WayofTime.bloodmagic.util.Utils; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.MobEffects; import net.minecraft.nbt.NBTTagCompound; @@ -13,6 +12,7 @@ import WayofTime.bloodmagic.api.livingArmour.LivingArmourUpgrade; import WayofTime.bloodmagic.api.livingArmour.StatTracker; import WayofTime.bloodmagic.livingArmour.LivingArmour; import WayofTime.bloodmagic.livingArmour.upgrade.LivingArmourUpgradePoisonResist; +import WayofTime.bloodmagic.util.Utils; public class StatTrackerPoison extends StatTracker { @@ -90,4 +90,18 @@ public class StatTrackerPoison extends StatTracker { return key.equals(Constants.Mod.MODID + ".upgrade.poisonResist"); } + + @Override + public void onArmourUpgradeAdded(LivingArmourUpgrade upgrade) + { + if (upgrade instanceof LivingArmourUpgradePoisonResist) + { + int level = upgrade.getUpgradeLevel(); + if (level < poisonTicksRequired.length) + { + totalPoisonTicks = Math.max(totalPoisonTicks, poisonTicksRequired[level]); + this.markDirty(); + } + } + } } diff --git a/src/main/java/WayofTime/bloodmagic/livingArmour/tracker/StatTrackerSelfSacrifice.java b/src/main/java/WayofTime/bloodmagic/livingArmour/tracker/StatTrackerSelfSacrifice.java index 45374986..c18f9e17 100644 --- a/src/main/java/WayofTime/bloodmagic/livingArmour/tracker/StatTrackerSelfSacrifice.java +++ b/src/main/java/WayofTime/bloodmagic/livingArmour/tracker/StatTrackerSelfSacrifice.java @@ -1,18 +1,18 @@ package WayofTime.bloodmagic.livingArmour.tracker; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.world.World; import WayofTime.bloodmagic.api.Constants; import WayofTime.bloodmagic.api.livingArmour.LivingArmourUpgrade; import WayofTime.bloodmagic.api.livingArmour.StatTracker; import WayofTime.bloodmagic.livingArmour.LivingArmour; import WayofTime.bloodmagic.livingArmour.upgrade.LivingArmourUpgradeSelfSacrifice; import WayofTime.bloodmagic.util.Utils; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.world.World; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; public class StatTrackerSelfSacrifice extends StatTracker { @@ -108,4 +108,18 @@ public class StatTrackerSelfSacrifice extends StatTracker { return key.equals(Constants.Mod.MODID + ".upgrade.selfSacrifice"); } + + @Override + public void onArmourUpgradeAdded(LivingArmourUpgrade upgrade) + { + if (upgrade instanceof LivingArmourUpgradeSelfSacrifice) + { + int level = upgrade.getUpgradeLevel(); + if (level < sacrificesRequired.length) + { + totalSacrifices = Math.max(totalSacrifices, sacrificesRequired[level]); + this.markDirty(); + } + } + } } diff --git a/src/main/java/WayofTime/bloodmagic/livingArmour/tracker/StatTrackerSolarPowered.java b/src/main/java/WayofTime/bloodmagic/livingArmour/tracker/StatTrackerSolarPowered.java index 44cd60b8..b68ef8e0 100644 --- a/src/main/java/WayofTime/bloodmagic/livingArmour/tracker/StatTrackerSolarPowered.java +++ b/src/main/java/WayofTime/bloodmagic/livingArmour/tracker/StatTrackerSolarPowered.java @@ -1,18 +1,18 @@ package WayofTime.bloodmagic.livingArmour.tracker; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.world.World; import WayofTime.bloodmagic.api.Constants; import WayofTime.bloodmagic.api.livingArmour.LivingArmourUpgrade; import WayofTime.bloodmagic.api.livingArmour.StatTracker; import WayofTime.bloodmagic.livingArmour.LivingArmour; import WayofTime.bloodmagic.livingArmour.upgrade.LivingArmourUpgradeSolarPowered; import WayofTime.bloodmagic.util.Utils; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.world.World; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; public class StatTrackerSolarPowered extends StatTracker { @@ -107,4 +107,18 @@ public class StatTrackerSolarPowered extends StatTracker { return key.equals(Constants.Mod.MODID + ".upgrade.solarPowered"); } + + @Override + public void onArmourUpgradeAdded(LivingArmourUpgrade upgrade) + { + if (upgrade instanceof LivingArmourUpgradeSolarPowered) + { + int level = upgrade.getUpgradeLevel(); + if (level < healthedRequired.length) + { + totalHealthGenned = Math.max(totalHealthGenned, healthedRequired[level]); + this.markDirty(); + } + } + } } diff --git a/src/main/java/WayofTime/bloodmagic/livingArmour/tracker/StatTrackerSprintAttack.java b/src/main/java/WayofTime/bloodmagic/livingArmour/tracker/StatTrackerSprintAttack.java index 16dc7b54..a3e36c19 100644 --- a/src/main/java/WayofTime/bloodmagic/livingArmour/tracker/StatTrackerSprintAttack.java +++ b/src/main/java/WayofTime/bloodmagic/livingArmour/tracker/StatTrackerSprintAttack.java @@ -4,7 +4,6 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; -import WayofTime.bloodmagic.util.Utils; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; @@ -13,6 +12,7 @@ import WayofTime.bloodmagic.api.livingArmour.LivingArmourUpgrade; import WayofTime.bloodmagic.api.livingArmour.StatTracker; import WayofTime.bloodmagic.livingArmour.LivingArmour; import WayofTime.bloodmagic.livingArmour.upgrade.LivingArmourUpgradeSprintAttack; +import WayofTime.bloodmagic.util.Utils; public class StatTrackerSprintAttack extends StatTracker { @@ -107,4 +107,18 @@ public class StatTrackerSprintAttack extends StatTracker { return key.equals(Constants.Mod.MODID + ".upgrade.sprintAttack"); } + + @Override + public void onArmourUpgradeAdded(LivingArmourUpgrade upgrade) + { + if (upgrade instanceof LivingArmourUpgradeSprintAttack) + { + int level = upgrade.getUpgradeLevel(); + if (level < damageRequired.length) + { + totalDamageDealt = Math.max(totalDamageDealt, damageRequired[level]); + this.markDirty(); + } + } + } } diff --git a/src/main/java/WayofTime/bloodmagic/livingArmour/tracker/StatTrackerStepAssist.java b/src/main/java/WayofTime/bloodmagic/livingArmour/tracker/StatTrackerStepAssist.java index efebb923..cae6b9eb 100644 --- a/src/main/java/WayofTime/bloodmagic/livingArmour/tracker/StatTrackerStepAssist.java +++ b/src/main/java/WayofTime/bloodmagic/livingArmour/tracker/StatTrackerStepAssist.java @@ -117,4 +117,14 @@ public class StatTrackerStepAssist extends StatTracker { return key.equals(Constants.Mod.MODID + ".upgrade.stepAssist"); } + + @Override + public void onArmourUpgradeAdded(LivingArmourUpgrade upgrade) + { + if (upgrade instanceof LivingArmourUpgradeStepAssist) + { + totalMovement = Math.max(totalMovement, blocksRequired); + this.markDirty(); + } + } }