Ejemplo n.º 1
0
 public override void Finish()
 {
     path = null;
     tilesMoved = 0;
     state = UnitState.Idle;
     objective = EnemyObjective.Idle;
     active = false;
     sight.enabled = false;
     gameObject.GetComponent<SphereCollider>().enabled = true;
     gameObject.GetComponent<SphereCollider>().radius = .5f;
     tilesMoved = 0;
     Camera.main.GetComponent<EnemyController>().UnitFinished();
 }
Ejemplo n.º 2
0
    public override void Move()
    {
        /*if(path != null)
        {
            state = UnitState.Moving;
            timeStartedMoving = Time.time;
            startPos = transform.position;
            dest = path.Pop();
        }*/

        float timeSinceStarted = Time.time - timeStartedMoving;
        float percentageComplete = timeSinceStarted / timeOfMovement;
        transform.position = Vector3.Lerp(startPos, dest, percentageComplete);

        if (percentageComplete >= 1.0f)
        {
            if (tilesMoved == range || path.Count == 0)
            {
                //Finish();
                objective = EnemyObjective.Attack;
                active = false;
            }
            else
            {
                percentageComplete = 0f;
                timeStartedMoving = Time.time;
                tilesMoved++;
                dest = path.Pop();
                startPos = transform.position;
            }

        }
    }
Ejemplo n.º 3
0
    // Update is called once per frame
    void Update()
    {
        if(active == true)
            objective = ai.Decide(this);

        switch (objective) {
            case EnemyObjective.Advance:
                //sight.enabled = false;
                //gameObject.GetComponent<SphereCollider> ().radius = range;
                Move();
                break;

            case EnemyObjective.Attack:
                gameObject.GetComponent<SphereCollider>().enabled = false;
                Attack();
                break;

            case EnemyObjective.FindCover:
                //gameObject.GetComponent<SphereCollider>().radius = .5F;
                break;

            case EnemyObjective.GetHealth:
                break;

            case EnemyObjective.Idle:
                break;

            case EnemyObjective.Retreat:
                break;
        }
    }
Ejemplo n.º 4
0
    // Use this for initialization
    void Start()
    {
        gun = gameObject.GetComponent<Gun>();
        ai = gameObject.GetComponent<EnemyAI>();
        sight = gameObject.GetComponent<EnemySight>();
        sight.enabled = false;
        objective = EnemyObjective.Idle;

        gameObject.name = unitName;
        SetMaxHP(locHP);
        AdjustHP(locHP);
        SetAttackRange(attRange);
    }