Exemplo n.º 1
0
    public override void Update(PlayerController pc)
    {
        if (!pc.lineRenderer.gameObject.activeSelf)
        {
            pc.lineRenderer.gameObject.SetActive(true);
        }
        Vector3    endRaycastPos = Vector3.forward * pc.playerModel.laserDistance;
        RaycastHit hit;

        if (Physics.Raycast(new Ray(pc.lineRenderer.transform.position, pc.lineRenderer.transform.forward), out hit, pc.playerModel.laserDistance, pc.shootLayerMask.value))
        {
            endRaycastPos = Vector3.forward * hit.distance;
            GroundEnemy gEnemy = hit.collider.GetComponent <GroundEnemy>();
            if (gEnemy != null)
            {
                gEnemy.TakeDamage(pc.playerModel.laserDamage);
            }
            else
            {
                FlyingEnemy fEnemy = hit.collider.GetComponent <FlyingEnemy>();
                if (fEnemy != null)
                {
                    fEnemy.TakeDamage(pc.playerModel.laserDamage);
                }
            }
        }
        pc.lineRenderer.SetPosition(1, endRaycastPos);
        time -= Time.deltaTime;
        pc.Move();
        pc.Aim();
        pc.CheckHabilities();
    }
Exemplo n.º 2
0
        private void LoadObjects()
        {
            Coin coin = new Coin(_coinTexture);

            coin.Position = new Vector2(50, 700);
            coin.Size     = new Vector2(37, 37);

            _objects.Add(coin);


            var flyingDeadTexture = Content.Load <Texture2D>("Sprites/bee_dead");
            var flyingTexture1    = Content.Load <Texture2D>("Sprites/bee");
            var flyingTexture2    = Content.Load <Texture2D>("Sprites/bee_fly");

            SpriteAnimation flyingAnimation = new SpriteAnimation(2);

            flyingAnimation.SetFrameTexture(0, flyingTexture1);
            flyingAnimation.SetFrameTexture(1, flyingTexture2);
            flyingAnimation.TimeBetweenFrames = 200;

            FlyingEnemy enemy1 = new FlyingEnemy(flyingDeadTexture, flyingAnimation);

            enemy1.Position = new Vector2(100, 500);
            enemy1.Size     = new Vector2(flyingDeadTexture.Width, flyingDeadTexture.Height);
            enemy1.AddWaypoint(new Vector2(100, 500));
            enemy1.AddWaypoint(new Vector2(400, 500));


            _objects.Add(enemy1);
        }
    private void Explode()
    {
        hasExploded = true;
        //Instantiate(explosionEffect, transform.position, transform.rotation);

        Collider[] colliders = Physics.OverlapSphere(transform.position, explosionRadius);

        foreach (Collider nearbyObject in colliders)
        {
            /*Rigidbody rgb = nearbyObject.GetComponent<Rigidbody>();
             * if (rgb != null)
             * {
             *  rgb.AddExplosionForce(force, transform.position, explosionRadius);
             * }*/

            GroundEnemy gEnemy = nearbyObject.GetComponent <GroundEnemy>();
            if (gEnemy != null)
            {
                gEnemy.TakeDamage(damage);
            }
            else
            {
                FlyingEnemy fEnemy = nearbyObject.GetComponent <FlyingEnemy>();
                if (fEnemy != null)
                {
                    fEnemy.TakeDamage(damage);
                }
            }
            Destroy(gameObject);
        }
        Destroy(gameObject);
    }
Exemplo n.º 4
0
        public void DamageActiveGameObject()
        {
            FlyingEnemy f             = gameModelMock.Object.FlyingMonsters[0];
            int         damagedHealth = gameModelMock.Object.FlyingMonsters[0].Health - 10;

            gameLogicTest.DamageActiveGameObject(f, 10);
            Assert.That(gameModelMock.Object.FlyingMonsters[0].Health, Is.EqualTo(damagedHealth));
        }
Exemplo n.º 5
0
 public void Start()
 {
     flyingEnemyScript       = FindObjectOfType <FlyingEnemy>();
     walkingEnemyScript      = FindObjectOfType <WalkingEnemy>();
     flyingEnemyRigidbody2D  = flyingEnemyScript.gameObject.GetComponent <Rigidbody2D>();
     walkingEnemyRigidbody2D = walkingEnemyScript.gameObject.GetComponent <Rigidbody2D>();
     flyingEnemyIsDead       = false;
     walkingEnemyIsDead      = false;
 }
Exemplo n.º 6
0
 void Awake()
 {
     // Setting up the references.
     player       = GameObject.FindGameObjectWithTag("Player");
     playerHealth = player.GetComponent <PlayerHealth>();
     enemyHealth  = GetComponent <EnemyHealth>();
     anim         = GetComponent <Animator>();
     flyingEnemy  = GetComponent <FlyingEnemy>();
 }
Exemplo n.º 7
0
        public void MoveFlyingEnemy()
        {
            FlyingEnemy f        = gameModelMock.Object.FlyingMonsters[0];
            Point       nextStep = new Point(4, 4);

            gameLogicTest.MoveFlyingEnemy(f);

            Assert.That(gameModelMock.Object.FlyingMonsters[0].Cords, Is.EqualTo(nextStep));
        }
Exemplo n.º 8
0
    void OnTriggerEnter(Collider other)
    {
        FlyingEnemy enemy = other.GetComponent <FlyingEnemy>();

        if (enemy != null)
        {
            enemy.TakeDamage();
            Destroy(gameObject);
        }
    }
Exemplo n.º 9
0
    void ChooseEnemyDirection(FlyingEnemy flyingEnemy)
    {
        int dir = spawnDirection > -1 ? spawnDirection : r.Next(0, 2);

        if (dir == 0)
        {
            flyingEnemy.startFromLeft();
        }
        else
        {
            flyingEnemy.startFromRight();
        }
    }
Exemplo n.º 10
0
    // Update is called once per frame
    void FixedUpdate()
    {
        FlyingEnemy flyingEnemy = this.transform.parent.GetComponent <FlyingEnemy>();

        distance = Vector2.Distance(player.transform.position, this.transform.position);
        if (distance <= distanceLimit)
        {
            under = true;
        }
        else if (!flyingEnemy.under)
        {
            under = false;
        }
    }
Exemplo n.º 11
0
 // Update is called once per frame
 void Update()
 {
     //If health reaches 0 the enemy dies
     if (health <= 0)
     {
         Destroy(gameObject);
         Instantiate(blood, transform.position, Quaternion.identity);
         if (this.tag == "Boss")
         {
             SceneManager.LoadScene(5);
         }
     }
     if (dazedTime <= 0)  //Add multiplier too
     {
         if (this.tag == "Skeleton")
         {
             skeleton = gameObject.GetComponent <GroundEnemy>();
             skeleton.restoreSpeed();
         }
         else if (this.tag == "Bat")
         {
             bat = gameObject.GetComponent <FlyingEnemy>();
             bat.restoreSpeed();
         }
         else if (this.tag == "Boss")
         {
             boss           = gameObject.GetComponent <BossEnemy>();
             boss.moveSpeed = 1;
         }
     }
     else
     {
         if (this.tag == "Skeleton")
         {
             skeleton           = gameObject.GetComponent <GroundEnemy>();
             skeleton.moveSpeed = 0;
         }
         else if (this.tag == "Bat")
         {
             bat           = gameObject.GetComponent <FlyingEnemy>();
             bat.moveSpeed = 0;
         }
         else if (this.tag == "Boss")
         {
             boss           = gameObject.GetComponent <BossEnemy>();
             boss.moveSpeed = 0;
         }
         dazedTime -= Time.deltaTime;
     }
 }
    public void TakeDamage(float damage, float invulnPeriod)
    {
        if (!invulnerable)
        {
            health      -= damage;
            invulnerable = true;

            if (health <= 0f)
            {
                //put what you want on death to happen
                if (me.CompareTag("Player"))
                {
                    PlayerScript script = me.GetComponent <PlayerScript>();
                    script.Death();
                }
                if (me.CompareTag("Mech"))
                {
                    MechScript script = me.GetComponent <MechScript>();
                    script.Death();
                }
                //put tags of other items here
                if (me.CompareTag("Patroller"))
                {
                    PatrolEnemy script = me.GetComponent <PatrolEnemy>();
                    script.Death();
                }
                if (me.CompareTag("Flyer"))
                {
                    FlyingEnemy script = me.GetComponent <FlyingEnemy>();
                    script.Death();
                }
                if (me.CompareTag("Bomber"))
                {
                    BomberEnemy script = me.GetComponent <BomberEnemy>();
                    script.Death();
                }
                if (me.CompareTag("Boss"))
                {
                    BossEnemy script = me.GetComponent <BossEnemy>();
                    script.Death();
                }
            }
            else
            {
                Invoke("RemoveInvuln", invulnPeriod);
            }
        }
    }
Exemplo n.º 13
0
    void SpawnEnemy()
    {
        // Create an enemy
        GameObject  enemy       = (GameObject)Instantiate(spawnedObject);
        FlyingEnemy flyingEnemy = enemy.GetComponent <FlyingEnemy>();

        ChooseEnemyDirection(flyingEnemy);

        // Keep track of alive enemies
        enemies.Add(enemy.GetInstanceID(), enemy);
        waveEnemyCount++;

        spawnDelay = r.Next(minSpawnDelay, maxSpawnDelay);
        maxSpawned = r.Next(minSpawnCount, maxSpawnCount);
        lastSpawn.Reset();
        lastSpawn.Start();
        print("Enemy spawned! Active enemies:" + enemies.Count + " waveEnemyCount:" + waveEnemyCount);
    }
Exemplo n.º 14
0
    void OnCollisionEnter2D(Collision2D collision)
    {
        Enemy             enemy             = collision.collider.GetComponent <Enemy>();
        FlyingEnemy       flyingEnemy       = collision.collider.GetComponent <FlyingEnemy>();
        SpecialEnemy      specialEnemy      = collision.collider.GetComponent <SpecialEnemy>();
        MutantFlyingEnemy mutantFlyingEnemy = collision.collider.GetComponent <MutantFlyingEnemy>();
        InstantDeath      instantDeath      = collision.collider.GetComponent <InstantDeath>();

        if (enemy != null)
        {
            SoundManagerScript.PlaySound("Hurt");
            Hurt(invincibleTimeAfterHurt, 1);
            GameControl.totalLife -= 1;
            Debug.Log("Normal Enemy");
        }
        if (flyingEnemy != null)
        {
            SoundManagerScript.PlaySound("Hurt");
            Hurt(invincibleTimeAfterHurt, 2);
            GameControl.totalLife -= 2;
            Debug.Log("Flying Enemy");
        }
        if (specialEnemy != null)
        {
            SoundManagerScript.PlaySound("Hurt");
            Hurt(invincibleTimeAfterHurt, 1);
            GameControl.totalLife -= 1;
            Debug.Log("Special Enemy");
        }
        if (mutantFlyingEnemy != null)
        {
            SoundManagerScript.PlaySound("Hurt");
            Hurt(invincibleTimeAfterHurt, 3);
            GameControl.totalLife -= 3;
            Debug.Log("Mutant Enemy");
        }
        if (instantDeath != null)
        {
            SoundManagerScript.PlaySound("Hurt");
            Hurt(invincibleTimeAfterHurt, 3);
            GameControl.totalLife -= 3;
            Debug.Log("Instant Death");
        }
    }
    private void OnTriggerEnter2D(Collider2D collision)
    {
        Patrol enemy = collision.GetComponent <Patrol>();

        if (enemy != null)
        {
            enemy.damage(damage);
        }
        FlyingEnemy enemy2 = collision.GetComponent <FlyingEnemy>();

        if (enemy2 != null)
        {
            enemy2.damage(damage);
        }
        if (collision.name != "SchmanWithGun")
        {
            Destroy(gameObject);
        }
    }
Exemplo n.º 16
0
 void OnTriggerEnter(Collider col)
 {
     if (col.gameObject.layer == LayerMask.NameToLayer("Enemy"))
     {
         GroundEnemy gEnemy = col.GetComponent <GroundEnemy>();
         if (gEnemy != null)
         {
             gEnemy.TakeDamage(damage);
         }
         else
         {
             FlyingEnemy fEnemy = col.GetComponent <FlyingEnemy>();
             if (fEnemy != null)
             {
                 fEnemy.TakeDamage(damage);
             }
         }
         Destroy(gameObject);
     }
 }
Exemplo n.º 17
0
    // Update is called once per frame
    void Update()
    {
        duration -= Time.deltaTime;
        if (duration <= 0)
        {
            Destroy(gameObject);
        }

        previousPosition = transform.position;
        transform.Translate(Vector3.forward * speed * Time.deltaTime);

        RaycastHit[] hits = Physics.RaycastAll(previousPosition, (transform.position - previousPosition).normalized, (transform.position - previousPosition).magnitude, GameManager.instance.player.shootLayerMask);
        for (int i = 0; i < hits.Length; i++)
        {
            LayerMask layer = hits[i].collider.gameObject.layer;
            //Debug.Log(hits[i].collider.name);
            if (layer == LayerMask.NameToLayer("Enemy"))
            {
                GroundEnemy gEnemy = hits[i].collider.GetComponent <GroundEnemy>();
                if (gEnemy != null)
                {
                    gEnemy.TakeDamage(damage);
                }
                else
                {
                    FlyingEnemy fEnemy = hits[i].collider.GetComponent <FlyingEnemy>();
                    if (fEnemy != null)
                    {
                        fEnemy.TakeDamage(damage);
                    }
                }
                Destroy(gameObject);
            }
            if (layer == LayerMask.NameToLayer("Geometry"))
            {
                Destroy(gameObject);
            }
        }
    }
Exemplo n.º 18
0
 // Use this for initialization
 void Start()
 {
     mySelf      = GetComponentInParent <FlyingEnemy>();
     myEnemySelf = GetComponentInParent <Enemy>();
 }
Exemplo n.º 19
0
 // OnStateEnter is called when a transition starts and the state machine starts to evaluate this state
 override public void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
 {
     player = GameObject.FindGameObjectWithTag("Player").transform;
     rb     = animator.GetComponent <Rigidbody2D>();
     flyer  = animator.GetComponent <FlyingEnemy>();
 }
Exemplo n.º 20
0
    public void Shoot()
    {
        switch (actualWeapon)
        {
        case Weapon.rifle:
            actualARShootCooldown = playerModel.shootARCooldown;
            GameObject bulletAR;
            RaycastHit hitAR;
            if (Physics.Raycast(Camera.main.transform.position, Camera.main.transform.forward, out hitAR, Mathf.Infinity, shootLayerMask))
            {
                Vector3 dir = hitAR.point - bulletSpawner.transform.position;
                dir.Normalize();
                bulletAR = Instantiate(bulletARPrefab, bulletSpawner.transform.position, bulletSpawner.transform.rotation);
                bulletAR.transform.forward = dir;
                //bulletAR.GetComponent<Rigidbody>().AddForce(dir * playerModel.shootForceAR * bulletAR.GetComponent<Rigidbody>().mass, ForceMode.Impulse);
            }
            else
            {
                bulletAR = Instantiate(bulletARPrefab, bulletSpawner.transform.position, Camera.main.transform.rotation);
                //bulletAR.GetComponent<Rigidbody>().AddForce(bulletSpawner.transform.forward * playerModel.shootForceAR * bulletAR.GetComponent<Rigidbody>().mass, ForceMode.Impulse);
            }

            actualOverheat += playerModel.bulletOverheat;

            gc.uiController.ChangeAROverheat(actualOverheat);
            if (actualOverheat >= playerModel.maxOverheatAR)
            {
                actualOverheat = playerModel.maxOverheatAR;
                saturatedAR    = true;
            }
            break;

        case Weapon.shotgun:
            /*muzzleFlash.Play();
             * muzzleFlash.GetComponentInChildren<WFX_LightFlicker>().StartCoroutine("Flicker");*/

            for (int i = 0; i < pellets.Count; i++)
            {
                pellets[i] = Random.rotation;
                Quaternion rot = Quaternion.RotateTowards(bulletSpawner.transform.rotation, pellets[i], playerModel.shotgunSpreadAngle);
                RaycastHit hit;
                if (Physics.Raycast(Camera.main.transform.position, rot * Vector3.forward, out hit, playerModel.rangeShotgun, shootLayerMask))
                {
                    Debug.DrawRay(Camera.main.transform.position, rot * Vector3.forward, Color.red);

                    //GameObject impact = Instantiate(impactEffect, hit.point, Quaternion.LookRotation(hit.normal));
                    GameObject impactHoleGO = Instantiate(impactHole, new Vector3(hit.point.x, hit.point.y + 0.1f, hit.point.z), Quaternion.LookRotation(hit.normal));

                    impactHoleGO.transform.parent = hit.transform;

                    GroundEnemy gEnemy = hit.collider.GetComponent <GroundEnemy>();
                    if (gEnemy != null)
                    {
                        gEnemy.TakeDamage(playerModel.shotgunDamage);
                    }
                    else
                    {
                        FlyingEnemy fEnemy = hit.collider.GetComponent <FlyingEnemy>();
                        if (fEnemy != null)
                        {
                            fEnemy.TakeDamage(playerModel.shotgunDamage);
                        }
                    }

                    /*imitHoles.Add(impactHoleGO);
                     *
                     * if (limitHoles.Count == 25)
                     * {
                     *  Destroy(limitHoles[0]);
                     *  limitHoles.Remove(limitHoles[0]);
                     * }
                     *
                     * GameController.instance.destroyObjects.Add(impactHoleGO);*/

                    //Destroy(impact, 2f);
                    Destroy(impactHoleGO, 20f);
                }
                actualShotgunShootCooldown = playerModel.shootShotgunCooldown;
                shotgunShotted             = true;
            }
            break;

        case Weapon.launcher:
            GameObject grenade = Instantiate(grenadePrefab, bulletSpawner.transform.position, bulletSpawner.transform.rotation);
            grenade.GetComponent <Rigidbody>().AddForce(bulletSpawner.transform.forward * playerModel.shootForceLauncher * grenade.GetComponent <Rigidbody>().mass, ForceMode.VelocityChange);
            ChangeGrenadeAmmo();
            break;
        }
    }
Exemplo n.º 21
0
 void Start()
 {
     enemy = gameObject.GetComponent <FlyingEnemy>();
     base.Start();
 }
 public _0024Landing_0024179(FlyingEnemy self_)
 {
     _0024self__0024181 = self_;
 }
Exemplo n.º 23
0
        private void SpawnFlyingEnemy()
        {
            FlyingEnemy flyingEnemy = new FlyingEnemy(ScreenManager.Game, ScreenManager.SpriteBatch,
                new Animation(animationStore["Kunai"]), player);

            flyingEnemies.Add(flyingEnemy);
            AudioManager.PlaySound("Shuriken_Throw");
        }
Exemplo n.º 24
0
 /// <inheritdoc/>
 public void MoveFlyingEnemy(FlyingEnemy flyingEnemy)
 {
     flyingEnemy.Cords = new Point(flyingEnemy.Cords.X + this.gameModel.FlyingTrackingPath[flyingEnemy.Cords].X, flyingEnemy.Cords.Y + this.gameModel.FlyingTrackingPath[flyingEnemy.Cords].Y);
 }
Exemplo n.º 25
0
 // Use this for initialization
 void Start()
 {
     enemyAI = gameObject.GetComponentInParent <FlyingEnemy>();
 }