package Roguelike.Entity.ActivationAction; import Roguelike.Entity.Entity; import Roguelike.Entity.EnvironmentEntity; import Roguelike.Global; import Roguelike.Tiles.Point; import com.badlogic.gdx.utils.IntMap; import com.badlogic.gdx.utils.XmlReader; /** * Created by Philip on 25-Jan-16. */ public class ActivationConditionProximity extends AbstractActivationCondition { public int dist; public boolean playerOnly; @Override public boolean evaluate( EnvironmentEntity owningEntity, Entity activatingEntity, float delta ) { if (playerOnly) { if (activatingEntity != Global.CurrentLevel.player) { return false; } } Point eePos = Global.PointPool.obtain().set( owningEntity ); Point pPos = Global.PointPool.obtain().set( activatingEntity ); boolean closeEnough = Global.TaxiDist( eePos, pPos ) <= dist; Global.PointPool.free( eePos ); Global.PointPool.free( pPos ); return closeEnough; } @Override public void parse( XmlReader.Element xml ) { dist = Integer.parseInt( xml.getText() ); playerOnly = xml.getBooleanAttribute( "PlayerOnly", false ); } }