Пример #1
0
 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);
 }
Пример #2
0
 public void shoot(GameObject targetGameObject)
 {
     target_ = targetGameObject;
     if (target_.GetComponent <mirrorTower>() != null)
     {
         CurrentState = lazerState.shootMirror;
     }
     else
     {
         CurrentState = lazerState.shoot;
     }
 }
Пример #3
0
    // 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;
        }
    }
Пример #4
0
 public void stopShoot()
 {
     CurrentState = lazerState.finishShooting;
 }