void lazer() { if (target_ == null) { CurrentState = lazerState.idle; return; } lineRenderer.enabled = true; lineRenderer.SetPosition(0, firePoint.position); lineRenderer.SetPosition(1, target_.transform.position); target_.GetComponent <target>().takeDamage(damage); }
public void shoot(GameObject targetGameObject) { target_ = targetGameObject; if (target_.GetComponent <mirrorTower>() != null) { CurrentState = lazerState.shootMirror; } else { CurrentState = lazerState.shoot; } }
// Update is called once per frame void Update() { switch (CurrentState) { case lazerState.idle: lineRenderer.enabled = false; target_ = null; break; case lazerState.finishShooting: damage = GetComponent <towerInf>().damage; lineRenderer.enabled = false; target_ = null; CurrentState = lazerState.idle; break; case lazerState.shoot: if (Time.time > nextTimeFire) { lazer(); nextTimeFire = Time.time + gameObject.GetComponent <towerInf>().fireRate; damage *= damageMultiplier; } break; case lazerState.shootMirror: if (Time.time > nextTimeFire) { lazer(); GetComponent <target>().takeDamage(damage); nextTimeFire = Time.time + gameObject.GetComponent <towerInf>().fireRate; damage *= damageMultiplier; } break; } }
public void stopShoot() { CurrentState = lazerState.finishShooting; }