BloodMagic/src/main/java/WayofTime/bloodmagic/livingArmour/tracker/StatTrackerArrowShot.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

103 lines
2.7 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.LivingArmourUpgradeArrowShot;
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
{
public int totalShots = 0;
public static HashMap<LivingArmour, Integer> changeMap = new HashMap<LivingArmour, Integer>();
public static int[] shotsRequired = new int[] { 50, 200, 700, 1500, 3000 };
public static void incrementCounter(LivingArmour armour)
{
changeMap.put(armour, changeMap.containsKey(armour) ? changeMap.get(armour) + 1 : 1);
}
@Override
public String getUniqueIdentifier()
{
return Constants.Mod.MODID + ".tracker.trickShot";
}
@Override
public void resetTracker()
{
this.totalShots = 0;
}
@Override
public void readFromNBT(NBTTagCompound tag)
{
totalShots = tag.getInteger(Constants.Mod.MODID + ".tracker.trickShot");
}
@Override
public void writeToNBT(NBTTagCompound tag)
{
tag.setInteger(Constants.Mod.MODID + ".tracker.trickShot", totalShots);
}
@Override
public boolean onTick(World world, EntityPlayer player, LivingArmour livingArmour)
{
if (changeMap.containsKey(livingArmour))
{
int change = Math.abs(changeMap.get(livingArmour));
if (change > 0)
{
totalShots += Math.abs(changeMap.get(livingArmour));
changeMap.put(livingArmour, 0);
this.markDirty();
return true;
}
}
return false;
}
@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 < 5; i++)
{
if (totalShots >= shotsRequired[i])
{
upgradeList.add(new LivingArmourUpgradeArrowShot(i));
}
}
return upgradeList;
}
@Override
public boolean providesUpgrade(String key)
{
return key.equals(Constants.Mod.MODID + ".upgrade.arrowShot");
}
}