BloodMagic/src/main/java/WayofTime/bloodmagic/livingArmour/tracker/StatTrackerGrimReaperSprint.java
WayofTime 39df6d5bb0 Fixed living armour's training bracelet so that it deactivates any training of upgrades not supported
Added "Experienced" living armour upgrade, which provides more xp from picked up orbs.
2016-04-02 10:10:49 -04:00

110 lines
3.2 KiB
Java

package WayofTime.bloodmagic.livingArmour.tracker;
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 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
{
public int totalDeaths = 0;
public static HashMap<LivingArmour, Integer> changeMap = new HashMap<LivingArmour, Integer>();
public static int[] deathsRequired = new int[] { 6, 10, 15, 25, 50, 70, 90, 120, 150, 200 }; //TODO: Modify
public static void incrementCounter(LivingArmour armour)
{
StatTracker tracker = armour.getTracker(Constants.Mod.MODID + ".tracker.grimReaper");
if (tracker instanceof StatTrackerGrimReaperSprint)
{
((StatTrackerGrimReaperSprint) tracker).totalDeaths++;
System.out.println(((StatTrackerGrimReaperSprint) tracker).totalDeaths);
tracker.markDirty();
}
// changeMap.put(armour, changeMap.containsKey(armour) ? changeMap.get(armour) + 1 : 1);
}
@Override
public String getUniqueIdentifier()
{
return Constants.Mod.MODID + ".tracker.grimReaper";
}
@Override
public void resetTracker()
{
this.totalDeaths = 0;
}
@Override
public void readFromNBT(NBTTagCompound tag)
{
totalDeaths = tag.getInteger(Constants.Mod.MODID + ".tracker.grimReaper");
}
@Override
public void writeToNBT(NBTTagCompound tag)
{
tag.setInteger(Constants.Mod.MODID + ".tracker.grimReaper", totalDeaths);
}
@Override
public boolean onTick(World world, EntityPlayer player, LivingArmour livingArmour)
{
if (changeMap.containsKey(livingArmour))
{
double change = Math.abs(changeMap.get(livingArmour));
if (change > 0)
{
totalDeaths += Math.abs(changeMap.get(livingArmour));
changeMap.put(livingArmour, 0);
this.markDirty();
return true;
}
}
return true;
}
@Override
public void onDeactivatedTick(World world, EntityPlayer player, LivingArmour livingArmour)
{
if (changeMap.containsKey(livingArmour))
{
changeMap.remove(livingArmour);
}
}
@Override
public List<LivingArmourUpgrade> getUpgrades()
{
List<LivingArmourUpgrade> upgradeList = new ArrayList<LivingArmourUpgrade>();
for (int i = 0; i < 10; i++)
{
if (totalDeaths >= deathsRequired[i])
{
upgradeList.add(new LivingArmourUpgradeGrimReaperSprint(i));
}
}
return upgradeList;
}
@Override
public boolean providesUpgrade(String key)
{
return key.equals(Constants.Mod.MODID + ".upgrade.grimReaper");
}
}