package matteroverdrive.data.biostats;
import com.google.common.collect.Multimap;
import matteroverdrive.Reference;
import matteroverdrive.api.events.weapon.MOEventEnergyWeapon;
import matteroverdrive.client.render.HoloIcons;
import matteroverdrive.entity.player.AndroidPlayer;
import matteroverdrive.proxy.ClientProxy;
import net.minecraft.util.EnumChatFormatting;
import net.minecraftforge.event.entity.living.LivingEvent;
import java.text.DecimalFormat;
import java.util.Random;
/**
* Created by Simeon on 1/1/2016.
*/
public class BioticStatFlashCooling extends AbstractBioticStat
{
private Random random;
public static final float COOLDOWN_CHANGE = 0.2f;
public BioticStatFlashCooling(String name, int xp)
{
super(name, xp);
random = new Random();
}
@Override
public String getDetails(int level)
{
return String.format(super.getDetails(level), EnumChatFormatting.GREEN + DecimalFormat.getPercentInstance().format(COOLDOWN_CHANGE) + EnumChatFormatting.GRAY);
}
@Override
public void registerIcons(HoloIcons holoIcons)
{
this.icon = ClientProxy.holoIcons.getIcon("temperature");
}
@Override
public void onAndroidUpdate(AndroidPlayer android, int level)
{
}
@Override
public void onActionKeyPress(AndroidPlayer androidPlayer, int level, boolean server)
{
}
@Override
public void onKeyPress(AndroidPlayer androidPlayer, int level, int keycode, boolean down)
{
}
@Override
public void onLivingEvent(AndroidPlayer androidPlayer, int level, LivingEvent event)
{
if (event instanceof MOEventEnergyWeapon.Overheat && random.nextFloat() < COOLDOWN_CHANGE)
{
event.setCanceled(true);
((MOEventEnergyWeapon.Overheat) event).energyWeapon.setHeat(((MOEventEnergyWeapon.Overheat) event).weaponStack,0);
((MOEventEnergyWeapon.Overheat) event).entity.worldObj.playSoundAtEntity(((MOEventEnergyWeapon.Overheat) event).entity, Reference.MOD_ID + ":" + "overheat", 1F, 1f);
}
}
@Override
public void changeAndroidStats(AndroidPlayer androidPlayer, int level, boolean enabled)
{
}
@Override
public Multimap attributes(AndroidPlayer androidPlayer, int level)
{
return null;
}
@Override
public boolean isActive(AndroidPlayer androidPlayer, int level)
{
return false;
}
@Override
public int getDelay(AndroidPlayer androidPlayer, int level)
{
return 0;
}
}