package Roguelike.Fields.FieldInteractionTypes;
import Roguelike.Ability.ActiveAbility.ActiveAbility;
import Roguelike.Entity.GameEntity;
import Roguelike.Fields.Field;
import com.badlogic.gdx.utils.XmlReader;
/**
* Created by Philip on 16-Jan-16.
*/
public class AbilityFieldInteractionType extends AbstractFieldInteractionType
{
private ActiveAbility ability;
@Override
public Field process( Field src, Field dst )
{
ActiveAbility aa = ability.copy();
GameEntity temp = new GameEntity();
temp.factions.add( src.fieldName );
temp.tile[0][0] = src.tile;
aa.setCaster( temp );
aa.lockTarget( src.tile );
aa.source = src.tile;
boolean finished = aa.update();
if ( !finished )
{
src.tile.level.addActiveAbility( aa );
}
return null;
}
@Override
public void parse( XmlReader.Element xml )
{
ability = ActiveAbility.load( xml );
}
}