Added Fire Resistance Living Armour Upgrade, "Gift of Ignis."

This commit is contained in:
WayofTime 2016-06-18 16:59:56 -04:00
parent f864cbddf1
commit 6aff707708
7 changed files with 179 additions and 3 deletions

View file

@ -87,6 +87,7 @@ public class Constants
public static final String HELD_DOWN = "heldDown";
public static final String UPGRADE_POISON_TIMER = "poisonTimer";
public static final String UPGRADE_FIRE_TIMER = "fireTimer";
public static final String SOULS = "souls";
public static final String SOUL_SWORD_DAMAGE = "soulSwordDamage";
@ -173,8 +174,12 @@ public class Constants
BOUND_PICKAXE("ItemBoundPickaxe"),
BOUND_SHOVEL("ItemBoundShovel"),
BOUND_SWORD("ItemBoundSword"),
/** @deprecated - Use {@code UniversalBucket.getFilledBucket(ForgeModContainer.getInstance().universalBucket, BloodMagicAPI.getLifeEssence())} **/
@Deprecated BUCKET_ESSENCE("ItemBucketEssence"),
/**
* @deprecated - Use
* {@code UniversalBucket.getFilledBucket(ForgeModContainer.getInstance().universalBucket, BloodMagicAPI.getLifeEssence())}
**/
@Deprecated
BUCKET_ESSENCE("ItemBucketEssence"),
COMPONENT("ItemComponent"),
CUTTING_FLUID("ItemCuttingFluid"),
DEMON_CRYSTAL("ItemDemonCrystal"),

View file

@ -0,0 +1,85 @@
package WayofTime.bloodmagic.livingArmour.tracker;
import java.util.ArrayList;
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.LivingArmourUpgradeFireResist;
public class StatTrackerFireResist extends StatTracker
{
public int totalFireTicks = 0;
public static int[] fireTicksRequired = new int[] { 60 * 20, 3 * 60 * 20, 10 * 60 * 20, 20 * 60 * 20, 25 * 60 * 20 };
@Override
public String getUniqueIdentifier()
{
return Constants.Mod.MODID + ".tracker.fire";
}
@Override
public void resetTracker()
{
this.totalFireTicks = 0;
}
@Override
public void readFromNBT(NBTTagCompound tag)
{
totalFireTicks = tag.getInteger(Constants.Mod.MODID + ".tracker.fire");
}
@Override
public void writeToNBT(NBTTagCompound tag)
{
tag.setInteger(Constants.Mod.MODID + ".tracker.fire", totalFireTicks);
}
@Override
public boolean onTick(World world, EntityPlayer player, LivingArmour livingArmour)
{
if (player.isBurning())
{
totalFireTicks++;
this.markDirty();
return true;
}
return false;
}
@Override
public void onDeactivatedTick(World world, EntityPlayer player, LivingArmour livingArmour)
{
}
@Override
public List<LivingArmourUpgrade> getUpgrades()
{
List<LivingArmourUpgrade> upgradeList = new ArrayList<LivingArmourUpgrade>();
for (int i = 0; i < 5; i++)
{
if (totalFireTicks >= fireTicksRequired[i])
{
upgradeList.add(new LivingArmourUpgradeFireResist(i));
}
}
return upgradeList;
}
@Override
public boolean providesUpgrade(String key)
{
return key.equals(Constants.Mod.MODID + ".upgrade.fireResist");
}
}

View file

@ -67,7 +67,7 @@ public class StatTrackerPoison extends StatTracker
{
List<LivingArmourUpgrade> upgradeList = new ArrayList<LivingArmourUpgrade>();
for (int i = 0; i < 3; i++)
for (int i = 0; i < 5; i++)
{
if (totalPoisonTicks >= poisonTicksRequired[i])
{

View file

@ -0,0 +1,79 @@
package WayofTime.bloodmagic.livingArmour.upgrade;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.MobEffects;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.potion.PotionEffect;
import net.minecraft.world.World;
import WayofTime.bloodmagic.api.Constants;
import WayofTime.bloodmagic.api.livingArmour.ILivingArmour;
import WayofTime.bloodmagic.api.livingArmour.LivingArmourUpgrade;
import WayofTime.bloodmagic.util.ChatUtil;
import WayofTime.bloodmagic.util.helper.TextHelper;
public class LivingArmourUpgradeFireResist extends LivingArmourUpgrade
{
public static final int[] costs = new int[] { 2, 6, 14, 25, 40 };
public static final int[] fireCooldownTime = new int[] { 5 * 60 * 20, 5 * 60 * 20, 4 * 60 * 20, 3 * 60 * 20, 2 * 60 * 20 };
public static final int[] fireResistDuration = new int[] { 30 * 20, 30 * 20, 40 * 20, 50 * 20, 60 * 20 };
public int fireCooldown = 0;
public LivingArmourUpgradeFireResist(int level)
{
super(level);
}
@Override
public void onTick(World world, EntityPlayer player, ILivingArmour livingArmour)
{
if (player.isBurning() && fireCooldown <= 0)
{
player.addPotionEffect(new PotionEffect(MobEffects.FIRE_RESISTANCE, fireResistDuration[this.level]));
fireCooldown = fireCooldownTime[this.level];
ChatUtil.sendNoSpam(player, TextHelper.localizeEffect(chatBase + "fireRemove"));
} else if (fireCooldown > 0)
{
fireCooldown--;
}
}
@Override
public String getUniqueIdentifier()
{
return Constants.Mod.MODID + ".upgrade.fireResist";
}
@Override
public int getMaxTier()
{
return 5; // Set to here until I can add more upgrades to it.
}
@Override
public int getCostOfUpgrade()
{
return costs[this.level];
}
@Override
public void writeToNBT(NBTTagCompound tag)
{
tag.setInteger(Constants.NBT.UPGRADE_FIRE_TIMER, fireCooldown);
}
@Override
public void readFromNBT(NBTTagCompound tag)
{
fireCooldown = tag.getInteger(Constants.NBT.UPGRADE_FIRE_TIMER);
}
@Override
public String getUnlocalizedName()
{
return tooltipBase + "fireResist";
}
}

View file

@ -6,6 +6,7 @@ import WayofTime.bloodmagic.livingArmour.tracker.StatTrackerCriticalStrike;
import WayofTime.bloodmagic.livingArmour.tracker.StatTrackerDigging;
import WayofTime.bloodmagic.livingArmour.tracker.StatTrackerExperience;
import WayofTime.bloodmagic.livingArmour.tracker.StatTrackerFallProtect;
import WayofTime.bloodmagic.livingArmour.tracker.StatTrackerFireResist;
import WayofTime.bloodmagic.livingArmour.tracker.StatTrackerFood;
import WayofTime.bloodmagic.livingArmour.tracker.StatTrackerGraveDigger;
import WayofTime.bloodmagic.livingArmour.tracker.StatTrackerGrimReaperSprint;
@ -25,6 +26,7 @@ import WayofTime.bloodmagic.livingArmour.upgrade.LivingArmourUpgradeDigging;
import WayofTime.bloodmagic.livingArmour.upgrade.LivingArmourUpgradeElytra;
import WayofTime.bloodmagic.livingArmour.upgrade.LivingArmourUpgradeExperience;
import WayofTime.bloodmagic.livingArmour.upgrade.LivingArmourUpgradeFallProtect;
import WayofTime.bloodmagic.livingArmour.upgrade.LivingArmourUpgradeFireResist;
import WayofTime.bloodmagic.livingArmour.upgrade.LivingArmourUpgradeGraveDigger;
import WayofTime.bloodmagic.livingArmour.upgrade.LivingArmourUpgradeGrimReaperSprint;
import WayofTime.bloodmagic.livingArmour.upgrade.LivingArmourUpgradeHealthboost;
@ -61,6 +63,7 @@ public class ModArmourTrackers
LivingArmourHandler.registerStatTracker(StatTrackerStepAssist.class);
LivingArmourHandler.registerStatTracker(StatTrackerSprintAttack.class);
LivingArmourHandler.registerStatTracker(StatTrackerCriticalStrike.class);
LivingArmourHandler.registerStatTracker(StatTrackerFireResist.class);
LivingArmourHandler.registerArmourUpgrade(new LivingArmourUpgradeSpeed(0));
LivingArmourHandler.registerArmourUpgrade(new LivingArmourUpgradeDigging(0));
@ -81,5 +84,6 @@ public class ModArmourTrackers
LivingArmourHandler.registerArmourUpgrade(new LivingArmourUpgradeSprintAttack(0));
LivingArmourHandler.registerArmourUpgrade(new LivingArmourUpgradeCriticalStrike(0));
LivingArmourHandler.registerArmourUpgrade(new LivingArmourUpgradeElytra(0));
LivingArmourHandler.registerArmourUpgrade(new LivingArmourUpgradeFireResist(0));
}
}