package net.sf.colossus.ai.helper;
import net.sf.colossus.game.BattleCritter;
import net.sf.colossus.variant.BattleHex;
import net.sf.colossus.variant.CreatureType;
/**
*
* @author Romain Dolbeau
*/
public class EvaluatedBattleCritter implements BattleCritter
{
private final BattleCritter parent;
private BattleHex startingHex;
private BattleHex currentHex;
EvaluatedBattleCritter(BattleCritter parent)
{
this.parent = parent;
startingHex = parent.getStartingHex();
currentHex = parent.getCurrentHex();
}
public CreatureType getType()
{
return parent.getType();
}
public BattleHex getCurrentHex()
{
return currentHex;
}
public String getDescription()
{
return parent.getDescription();
}
public int getHits()
{
return parent.getHits();
}
public int getPoison()
{
return parent.getPoison();
}
public int getPoisonDamage()
{
return parent.getPoisonDamage();
}
public void addPoisonDamage(int damage)
{
parent.addPoisonDamage(damage);
}
public void setPoisonDamage(int damage)
{
parent.setPoisonDamage(damage);
}
public int getSlowed()
{
return parent.getSlowed();
}
public void setSlowed(int slowValue)
{
parent.setSlowed(slowValue);
}
public void addSlowed(int slowValue)
{
parent.addSlowed(slowValue);
}
public int getSlows()
{
return parent.getSlows();
}
public int getPointValue()
{
return parent.getPointValue();
}
public int getPower()
{
return parent.getPower();
}
public int getSkill()
{
return parent.getSkill();
}
public BattleHex getStartingHex()
{
return startingHex;
}
public int getTag()
{
return parent.getTag();
}
public int getTitanPower()
{
return parent.getTitanPower();
}
public boolean hasMoved()
{
return !currentHex.equals(startingHex);
}
public boolean hasStruck()
{
return parent.hasStruck();
}
public void moveToHex(BattleHex hex)
{
startingHex = currentHex;
currentHex = hex;
}
public boolean isDead()
{
return parent.isDead();
}
public boolean isDefender()
{
return parent.isDefender();
}
public boolean isRangestriker()
{
return parent.isRangestriker();
}
public boolean isLord()
{
return parent.isLord();
}
public boolean isDemiLord()
{
return parent.isDemiLord();
}
public boolean isTitan()
{
return parent.isTitan();
}
public void setDead(boolean dead)
{
throw new UnsupportedOperationException("Not supported yet.");
}
public void setCurrentHex(BattleHex hex)
{
currentHex = hex;
}
public void setHits(int hits)
{
throw new UnsupportedOperationException("Not supported yet.");
}
public void setMoved(boolean moved)
{
throw new UnsupportedOperationException("Not supported yet.");
}
public void setStruck(boolean struck)
{
throw new UnsupportedOperationException("Not supported yet.");
}
public boolean useMagicMissile()
{
return parent.useMagicMissile();
}
public boolean wouldDieFrom(int hits)
{
return parent.wouldDieFrom(hits);
}
}