Ejemplo n.º 1
0
    void laser()
    {
        laserChargeCounter -= Time.deltaTime;
        if (laserChargeCounter <= 0)
        {
            if (laserToggle == true)
            {
                if (transform.position.x == restZone1)
                {
                    GameObject tempLaser = Instantiate(laserBeam, new Vector3(transform.position.x + 37, transform.position.y + 1.2f, transform.position.z), transform.rotation);
                    tempLaser.GetComponent <LaserBeam>().setLifeSpan(laserCountdown);
                }
                else
                {
                    GameObject tempLaser = Instantiate(laserBeam, new Vector3(transform.position.x - 37, transform.position.y + 1.2f, transform.position.z), transform.rotation);
                    tempLaser.GetComponent <LaserBeam>().setLifeSpan(laserCountdown);
                    tempLaser.transform.localScale = new Vector3(tempLaser.transform.localScale.x * -1, tempLaser.transform.localScale.y, tempLaser.transform.localScale.z);
                }

                laserToggle = false;
            }

            laserCountdown -= Time.deltaTime;
            if (laserCountdown <= 0)
            {
                anim.SetBool("shooting", false);
                laserCountdown     = laserTimer;
                state              = NarwhalState.Wait;
                laserChargeCounter = laserChargeTime;
            }
        }
    }
Ejemplo n.º 2
0
 private void OnTriggerEnter2D(Collider2D collision)
 {
     // Debug.Log("NarwhalCollision");
     if (collision.gameObject.CompareTag("Lightning"))
     {
         healthSlider.value -= 1;
         tempState           = state;
         state = NarwhalState.Hurt;
         //Debug.Log("Hurt");
     }
 }
Ejemplo n.º 3
0
    void wait()
    {
        waitCountdown -= Time.deltaTime;
        if (patrolCounter > 0)
        {
            //Debug.Log("patrol");
            patrolCounter -= Time.deltaTime;

            if (patrolCounter <= 0)
            {
                state = NarwhalState.Laser;
                laserChargeCounter = laserChargeTime;
            }
            else if (patrolCounter <= 1)
            {
                //line up accurate shot
                setPatrolTarget(true);
            }
            else
            {
                setPatrolTarget(false);
            }
        }
        else if (waitCountdown <= 0)
        {
            waitCountdown = waitTimer;

            if (laserToggle == true)
            {
                anim.SetBool("shooting", true);
                state = NarwhalState.Laser;
            }
            else
            {
                patrolCooldownCounter -= Time.deltaTime;
                if (patrolCooldownCounter <= 0)
                {
                    patrolCooldownCounter = patrolCooldown;
                    patrolCounter         = patrolLength;
                }
                laneCheck = false;
                setTarget();
                state = NarwhalState.Move;
            }
        }
    }
Ejemplo n.º 4
0
    void hurt()
    {
        anim.SetBool("getsHurt", true);
        stunCountdown -= Time.deltaTime;
        if (stunCountdown <= 0)
        {
            phase++;
            stunCountdown = stunTimer;
            patrolLength -= 2;
            anim.SetBool("getsHurt", false);
            state = tempState;              //NarwhalState.Wait;
        }

        if (phase > 3)
        {
            //temp death code
            Destroy(gameObject);
        }
    }
Ejemplo n.º 5
0
    private void setPatrolTarget(bool aiming)
    {
        transform.localScale = new Vector3(Mathf.Abs(transform.localScale.x), Mathf.Abs(transform.localScale.y), 1);
        if (aiming == false)
        {
            moveTarget.x = transform.position.x;
            if (transform.position.y == laneHeights[0])
            {
                moveTarget.y = laneHeights[2];
            }
            else
            {
                moveTarget.y = laneHeights[0];
            }
        }
        else
        {
            moveTarget.x = transform.position.x;
            moveTarget.y = player.position.y + Random.Range(-5, 5);
            if (moveTarget.y < laneHeights[0])
            {
                moveTarget.y = laneHeights[0];
            }
            else if (moveTarget.y > laneHeights[2])
            {
                moveTarget.y = laneHeights[2];
            }
        }

        velocity = moveTarget - transform.position;
        velocity.Normalize();
        velocity *= speed;

        float angle = Mathf.Atan2(velocity.y, velocity.x) * Mathf.Rad2Deg;

        targetRotation = Quaternion.Euler(new Vector3(0, 0, angle));

        state = NarwhalState.Move;
    }
Ejemplo n.º 6
0
    void reposition()
    {
        //Debug.Log(moveTarget.x);
        // Debug.Log(moveTarget.y);

        transform.rotation = Quaternion.RotateTowards(transform.rotation, targetRotation, 10);



        transform.position += velocity;

        if (transform.position.x >= moveTarget.x - 0.5f && transform.position.x <= moveTarget.x + 0.5f && transform.position.y >= moveTarget.y - 0.5f && transform.position.y <= moveTarget.y + 0.5f)
        {
            transform.position = moveTarget;
            if (laneCheck == false)
            {
                laneCheck = true;
                setTarget();
            }
            else
            {
                laserToggle = true;
                if (transform.position == new Vector3(restZone1, transform.position.y))
                {
                    transform.rotation = Quaternion.identity;
                    transform.Rotate(0, 0, 180);
                    transform.localScale = new Vector3(transform.localScale.x * -1, transform.localScale.y, 1);
                }
                else
                {
                    transform.rotation = Quaternion.identity;
                    transform.Rotate(0, 0, 180);
                    transform.localScale = new Vector3(transform.localScale.x, transform.localScale.y * -1, 1);
                }
                state = NarwhalState.Wait;
            }
        }
    }
Ejemplo n.º 7
0
 private void patrol()
 {
     laneCheck = false;
     setTarget();
     state = NarwhalState.Move;
 }