Added another proper Armour Downgrade: Battle Hunger. More to follow.
This commit is contained in:
parent
9112f5ae04
commit
f9185817a1
|
@ -0,0 +1,78 @@
|
|||
package WayofTime.bloodmagic.livingArmour.downgrade;
|
||||
|
||||
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.ILivingArmour;
|
||||
import WayofTime.bloodmagic.api.livingArmour.LivingArmourUpgrade;
|
||||
|
||||
public class LivingArmourUpgradeBattleHungry extends LivingArmourUpgrade
|
||||
{
|
||||
public static final int[] costs = new int[] { -10, -20, -35, -50, -75 };
|
||||
public static final float[] exhaustionAdded = new float[] { 0.02f, 0.04f, 0.06f, 0.08f, 0.1f };
|
||||
public static final int[] delay = new int[] { 600, 600, 600, 500, 400 };
|
||||
|
||||
public int timer = 0;
|
||||
|
||||
public LivingArmourUpgradeBattleHungry(int level)
|
||||
{
|
||||
super(level);
|
||||
}
|
||||
|
||||
public void resetTimer()
|
||||
{
|
||||
this.timer = delay[this.level];
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onTick(World world, EntityPlayer player, ILivingArmour livingArmour)
|
||||
{
|
||||
if (timer > 0)
|
||||
{
|
||||
timer--;
|
||||
return;
|
||||
}
|
||||
|
||||
if (player.ticksExisted % 20 == 0)
|
||||
{
|
||||
player.addExhaustion(exhaustionAdded[this.level]); //TODO: Change exhaustion added per level.
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getUniqueIdentifier()
|
||||
{
|
||||
return Constants.Mod.MODID + ".upgrade.battleHunger";
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getMaxTier()
|
||||
{
|
||||
return 5;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getCostOfUpgrade()
|
||||
{
|
||||
return costs[this.level];
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeToNBT(NBTTagCompound tag)
|
||||
{
|
||||
tag.setInteger("timer", timer);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void readFromNBT(NBTTagCompound tag)
|
||||
{
|
||||
timer = tag.getInteger("timer");
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getUnlocalizedName()
|
||||
{
|
||||
return tooltipBase + "battleHunger";
|
||||
}
|
||||
}
|
|
@ -0,0 +1,76 @@
|
|||
package WayofTime.bloodmagic.livingArmour.downgrade;
|
||||
|
||||
import net.minecraft.block.BlockIce;
|
||||
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.ILivingArmour;
|
||||
import WayofTime.bloodmagic.api.livingArmour.LivingArmourUpgrade;
|
||||
|
||||
public class LivingArmourUpgradeSlippery extends LivingArmourUpgrade
|
||||
{
|
||||
public static final int[] costs = new int[] { -50 };
|
||||
public static final int[] slipperyDuration = new int[] { 30 * 20 };
|
||||
|
||||
public double prevMotionX = 0;
|
||||
public double prevMotionZ = 0;
|
||||
|
||||
public LivingArmourUpgradeSlippery(int level)
|
||||
{
|
||||
super(level);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onTick(World world, EntityPlayer player, ILivingArmour livingArmour)
|
||||
{
|
||||
double weight = 0.05;
|
||||
if (world.isRemote && player.onGround)
|
||||
{
|
||||
if (player.moveForward == 0)
|
||||
{
|
||||
player.motionX = (player.motionX - this.prevMotionX) * weight + this.prevMotionX;
|
||||
player.motionZ = (player.motionZ - this.prevMotionZ) * weight + this.prevMotionZ;
|
||||
|
||||
player.velocityChanged = true;
|
||||
}
|
||||
}
|
||||
|
||||
this.prevMotionX = player.motionX;
|
||||
this.prevMotionZ = player.motionZ;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getUniqueIdentifier()
|
||||
{
|
||||
return Constants.Mod.MODID + ".upgrade.slippery";
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getMaxTier()
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getCostOfUpgrade()
|
||||
{
|
||||
return costs[this.level];
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeToNBT(NBTTagCompound tag)
|
||||
{
|
||||
}
|
||||
|
||||
@Override
|
||||
public void readFromNBT(NBTTagCompound tag)
|
||||
{
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getUnlocalizedName()
|
||||
{
|
||||
return tooltipBase + "slippery";
|
||||
}
|
||||
}
|
|
@ -1,7 +1,9 @@
|
|||
package WayofTime.bloodmagic.registry;
|
||||
|
||||
import WayofTime.bloodmagic.api.livingArmour.LivingArmourHandler;
|
||||
import WayofTime.bloodmagic.livingArmour.downgrade.LivingArmourUpgradeBattleHungry;
|
||||
import WayofTime.bloodmagic.livingArmour.downgrade.LivingArmourUpgradeCrippledArm;
|
||||
import WayofTime.bloodmagic.livingArmour.downgrade.LivingArmourUpgradeSlippery;
|
||||
import WayofTime.bloodmagic.livingArmour.downgrade.LivingArmourUpgradeSlowness;
|
||||
import WayofTime.bloodmagic.livingArmour.tracker.StatTrackerArrowShot;
|
||||
import WayofTime.bloodmagic.livingArmour.tracker.StatTrackerCriticalStrike;
|
||||
|
@ -93,5 +95,7 @@ public class ModArmourTrackers
|
|||
LivingArmourHandler.registerArmourUpgrade(new LivingArmourUpgradeSlowness(0));
|
||||
LivingArmourHandler.registerArmourUpgrade(new LivingArmourUpgradeCrippledArm(0));
|
||||
LivingArmourHandler.registerArmourUpgrade(new LivingArmourUpgradeNightSight(0));
|
||||
LivingArmourHandler.registerArmourUpgrade(new LivingArmourUpgradeSlippery(0));
|
||||
LivingArmourHandler.registerArmourUpgrade(new LivingArmourUpgradeBattleHungry(0));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -62,6 +62,7 @@ import WayofTime.bloodmagic.item.ItemExperienceBook;
|
|||
import WayofTime.bloodmagic.item.armour.ItemLivingArmour;
|
||||
import WayofTime.bloodmagic.item.gear.ItemPackSacrifice;
|
||||
import WayofTime.bloodmagic.livingArmour.LivingArmour;
|
||||
import WayofTime.bloodmagic.livingArmour.downgrade.LivingArmourUpgradeBattleHungry;
|
||||
import WayofTime.bloodmagic.livingArmour.tracker.StatTrackerSelfSacrifice;
|
||||
import WayofTime.bloodmagic.livingArmour.upgrade.LivingArmourUpgradeSelfSacrifice;
|
||||
import WayofTime.bloodmagic.network.BloodMagicPacketHandler;
|
||||
|
@ -153,6 +154,12 @@ public class GenericHandler
|
|||
if (shouldSyphon)
|
||||
ItemHelper.LPContainer.addLPToItem(player.getItemStackFromSlot(EntityEquipmentSlot.CHEST), totalLP, pack.CAPACITY);
|
||||
}
|
||||
|
||||
LivingArmourUpgrade upgrade = ItemLivingArmour.getUpgrade(Constants.Mod.MODID + ".upgrade.battleHunger", player.getItemStackFromSlot(EntityEquipmentSlot.CHEST));
|
||||
if (upgrade instanceof LivingArmourUpgradeBattleHungry)
|
||||
{
|
||||
((LivingArmourUpgradeBattleHungry) upgrade).resetTimer();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1,15 +1,5 @@
|
|||
package WayofTime.bloodmagic.util.handler.event;
|
||||
|
||||
import WayofTime.bloodmagic.annot.Handler;
|
||||
import WayofTime.bloodmagic.api.Constants;
|
||||
import WayofTime.bloodmagic.api.livingArmour.LivingArmourUpgrade;
|
||||
import WayofTime.bloodmagic.item.armour.ItemLivingArmour;
|
||||
import WayofTime.bloodmagic.item.armour.ItemSentientArmour;
|
||||
import WayofTime.bloodmagic.livingArmour.LivingArmour;
|
||||
import WayofTime.bloodmagic.livingArmour.tracker.*;
|
||||
import WayofTime.bloodmagic.livingArmour.upgrade.LivingArmourUpgradeDigging;
|
||||
import WayofTime.bloodmagic.livingArmour.upgrade.LivingArmourUpgradeExperience;
|
||||
import WayofTime.bloodmagic.util.Utils;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
|
@ -26,6 +16,27 @@ import net.minecraftforge.event.entity.player.PlayerPickupXpEvent;
|
|||
import net.minecraftforge.event.world.BlockEvent;
|
||||
import net.minecraftforge.fml.common.eventhandler.EventPriority;
|
||||
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
|
||||
import WayofTime.bloodmagic.annot.Handler;
|
||||
import WayofTime.bloodmagic.api.Constants;
|
||||
import WayofTime.bloodmagic.api.livingArmour.LivingArmourUpgrade;
|
||||
import WayofTime.bloodmagic.item.armour.ItemLivingArmour;
|
||||
import WayofTime.bloodmagic.item.armour.ItemSentientArmour;
|
||||
import WayofTime.bloodmagic.livingArmour.LivingArmour;
|
||||
import WayofTime.bloodmagic.livingArmour.tracker.StatTrackerArrowProtect;
|
||||
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.StatTrackerGraveDigger;
|
||||
import WayofTime.bloodmagic.livingArmour.tracker.StatTrackerHealthboost;
|
||||
import WayofTime.bloodmagic.livingArmour.tracker.StatTrackerMeleeDamage;
|
||||
import WayofTime.bloodmagic.livingArmour.tracker.StatTrackerNightSight;
|
||||
import WayofTime.bloodmagic.livingArmour.tracker.StatTrackerPhysicalProtect;
|
||||
import WayofTime.bloodmagic.livingArmour.tracker.StatTrackerSolarPowered;
|
||||
import WayofTime.bloodmagic.livingArmour.tracker.StatTrackerSprintAttack;
|
||||
import WayofTime.bloodmagic.livingArmour.upgrade.LivingArmourUpgradeDigging;
|
||||
import WayofTime.bloodmagic.livingArmour.upgrade.LivingArmourUpgradeExperience;
|
||||
import WayofTime.bloodmagic.util.Utils;
|
||||
|
||||
@Handler
|
||||
public class StatTrackerHandler
|
||||
|
|
|
@ -490,6 +490,8 @@ tooltip.BloodMagic.livingArmour.upgrade.nightSight=Nocturnal Prowess
|
|||
|
||||
tooltip.BloodMagic.livingArmour.upgrade.slowness=Limp Leg
|
||||
tooltip.BloodMagic.livingArmour.upgrade.crippledArm=Crippled Arm
|
||||
tooltip.BloodMagic.livingArmour.upgrade.slippery=Loose Traction
|
||||
tooltip.BloodMagic.livingArmour.upgrade.battleHunger=Battle Hungry
|
||||
tooltip.BloodMagic.livingArmour.upgrade.level=%s (Level %d)
|
||||
tooltip.BloodMagic.livingArmour.upgrade.progress=%s (%d/100)
|
||||
tooltip.BloodMagic.livingArmour.upgrade.points=&6Upgrade points: %s / %s
|
||||
|
|
Loading…
Reference in a new issue