public DroidModel()
    {
        _maxHealth  = 10;
        _maxEnergy  = 10;
        _deployTime = 10;

        _droidView  = new DroidView();
        _droidState = DroidState.Ready;
    }
Example #2
0
    //overrided base classes
    protected override void BaseFixedUpdate()
    {
        if (selfRigid.velocity.magnitude > maxSpeed)
        {
            selfRigid.velocity = selfRigid.velocity.normalized * maxSpeed;
        }

        //AI STATE MACHINE
        switch (state)
        {
        case DroidState.Moving:
            if (Vector3.Distance(this.transform.position, journeyPoint) < journeyAccuracy)
            {
                state = DroidState.Standing;
            }
            else
            {
                MoveTo(new Vector2(journeyPoint.x, journeyPoint.z));
            }
            break;

        case DroidState.TetherAttacking:
            //check if gameobject is seeable
            journeyPoint = attackPoint.transform.position;
            MoveTo(new Vector2(journeyPoint.x, journeyPoint.z));
            if (Vector3.Distance(DroidManager.Instance.playerTarget.transform.position, this.transform.position) > visualRange)
            {
                state = DroidState.Standing;
            }
            break;

        case DroidState.AttackMoving:
            if (attackPoint != null)
            {
                journeyPoint = attackPoint.transform.position;
            }

            //check if gameobject is seeable
            MoveTo(new Vector2(journeyPoint.x, journeyPoint.z));
            if (Vector3.Distance(DroidManager.Instance.playerTarget.transform.position, this.transform.position) < visualRange)
            {
                attackPoint = DroidManager.Instance.playerTarget;
            }
            break;

        case DroidState.Standing:
            if (Vector3.Distance(DroidManager.Instance.playerTarget.transform.position, this.transform.position) < visualRange)
            {
                state       = DroidState.TetherAttacking;
                attackPoint = DroidManager.Instance.playerTarget;
            }
            break;
        }
    }
Example #3
0
    public bool ChangeDroidState(DroidState state)
    {
        _droidState = state;

        return(true);
    }
Example #4
0
 public DroidModel()
 {
     _droidView  = new DroidView();
     _droidState = DroidState.Ready;
 }
Example #5
0
 public void IssueAttack(Player attackee)
 {
     state       = DroidState.AttackMoving;
     attackPoint = attackee;
 }
Example #6
0
 public void IssueAttack(Vector3 location)
 {
     state        = DroidState.AttackMoving;
     journeyPoint = location;
     attackPoint  = null;
 }
Example #7
0
 public override void IssueLocation(Vector3 location)
 {
     state        = DroidState.Moving;
     journeyPoint = location;
 }
 public void SetDroidState(DroidState state)
 {
     _droidState = state;
 }