com.dongbat.invasion.enemy.tasks.NormalFindTargetTask.java Source code

Java tutorial

Introduction

Here is the source code for com.dongbat.invasion.enemy.tasks.NormalFindTargetTask.java

Source

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package com.dongbat.invasion.enemy.tasks;

import com.artemis.Entity;
import com.badlogic.gdx.ai.btree.LeafTask;
import com.badlogic.gdx.ai.btree.Task;
import com.badlogic.gdx.math.Vector2;
import com.dongbat.invasion.component.Enemy;
import com.dongbat.invasion.util.Constants;
import com.dongbat.invasion.util.EntityUtil;
import com.dongbat.invasion.util.MovementUtil;
import com.dongbat.invasion.util.PhysicsUtil;

/**
 *
 * @author password
 */
public class NormalFindTargetTask extends LeafTask<Entity> {

    @Override
    public void run(Entity enemy) {
        Enemy enemyComponent = EntityUtil.getComponent(enemy, Enemy.class);
        Vector2 position = PhysicsUtil.getPosition(enemy);
        Vector2 target = new Vector2(0, position.y);

        if (enemyComponent.hasPickedUpAds()) {
            target.x = enemyComponent.isAirUnit() ? Constants.ENEMY.AIR_START_X : Constants.ENEMY.GROUND_START_X;
        } else {
            target.x = Constants.ENEMY.PICK_UP_POINT_X;
        }

        MovementUtil.setTarget(enemy, target);
        success();
    }

    @Override
    protected Task<Entity> copyTo(Task<Entity> task) {
        return task;
    }

}