Jump to content

Moving away from npc


Recommended Posts

Posted (edited)
        Area small = entity.getArea(2);
        Area big = entity.getArea(3);
        
        List<Position> positions = big.getPositions();        
        
        if(positions.removeAll(small.getPositions())) {
            Position position = positions.get(new Random().nextInt((positions.size() - 1)));
            if (position != null) {
                WalkingEvent event = new WalkingEvent(position);
                event.setMiniMapDistanceThreshold(0);
                event.setMinDistanceThreshold(0);
                event.setBreakCondition(new Condition() {
                    @Override
                    public boolean evaluate() {
                        return entity.getPosition().distance(myPosition()) >= 3;
                    }
                });
                execute(event);
            }
        }

? I think... ? I have a hunch I over complicated it

Edited by Isolate
Posted
40 minutes ago, Isolate said:

        Area small = entity.getArea(2);
        Area big = entity.getArea(3);
        
        List<Position> positions = big.getPositions();        
        
        if(positions.removeAll(small.getPositions())) {
            Position position = positions.get(new Random().nextInt((positions.size() - 1)));
            if (position != null) {
                WalkingEvent event = new WalkingEvent(position);
                event.setMiniMapDistanceThreshold(0);
                event.setMinDistanceThreshold(0);
                event.setBreakCondition(new Condition() {
                    @Override
                    public boolean evaluate() {
                        return entity.getPosition().distance(myPosition()) >= 3;
                    }
                });
                execute(event);
            }
        }

? I think... ? I have a hunch I over complicated it

It will fail if the position which was chosen at random is unreachable; in both WebWalkEvent or WalkingEvent.

 

WalkingEvent event = new WalkingEvent(Entity entity).setDistanceThreshold(1);
execute(event);

 

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...