public DroidModel() { _maxHealth = 10; _maxEnergy = 10; _deployTime = 10; _droidView = new DroidView(); _droidState = DroidState.Ready; }
//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; } }
public bool ChangeDroidState(DroidState state) { _droidState = state; return(true); }
public DroidModel() { _droidView = new DroidView(); _droidState = DroidState.Ready; }
public void IssueAttack(Player attackee) { state = DroidState.AttackMoving; attackPoint = attackee; }
public void IssueAttack(Vector3 location) { state = DroidState.AttackMoving; journeyPoint = location; attackPoint = null; }
public override void IssueLocation(Vector3 location) { state = DroidState.Moving; journeyPoint = location; }
public void SetDroidState(DroidState state) { _droidState = state; }