package Roguelike.Entity.ActivationAction; import Roguelike.Ability.ActiveAbility.ActiveAbility; import Roguelike.Entity.Entity; import Roguelike.Entity.EnvironmentEntity; import Roguelike.Entity.GameEntity; import com.badlogic.gdx.utils.XmlReader; /** * Created by Philip on 19-Feb-16. */ public class ActivationActionAbility extends AbstractActivationAction { private ActiveAbility ability; private boolean self; @Override public void evaluate( EnvironmentEntity owningEntity, Entity activatingEntity, float delta ) { ActiveAbility aa = ability.copy(); GameEntity temp = new GameEntity(); temp.tile[0][0] = owningEntity.tile[0][0]; aa.setCaster( temp ); if (self) { aa.lockTarget( owningEntity.tile[0][0] ); } else { aa.lockTarget( activatingEntity.tile[0][0] ); } aa.source = owningEntity.tile[0][0]; boolean finished = aa.update(); if ( !finished ) { owningEntity.tile[0][0].level.addActiveAbility( aa ); } } @Override public void parse( XmlReader.Element xml ) { ability = ActiveAbility.load( xml ); self = xml.getBooleanAttribute( "Self", false ); } }