Esempio n. 1
0
        public void AlienSwarmMoveTest()
        {
            var swarm = new AlienSwarm();

            while (swarm.Aliens.First().Y > 0)
            {
                swarm.AlienSwarmMove(100);
            }
        }
Esempio n. 2
0
    private void OnTriggerEnter(Collider other)
    {
        // Find all the tanks in an area around the shell and damage them.
        Collider[] colliders = Physics.OverlapSphere(transform.position, m_ExplosionRadius);
        bool       canPickUp = true;

        if (m_IsBigBullet || m_IsAlienSwarmShot)
        {
            canPickUp = false;
        }
        for (int i = 0; i < colliders.Length; i++)
        {
            if (!colliders[i].GetComponent <Rigidbody>())
            {
                if (colliders[i].tag != "CarePackageSafe" && colliders[i].tag != "Structure" && colliders[i].tag != "Shell")
                {
                    canPickUp = false;
                }
                continue;
            }
            Rigidbody targetRigidBody = colliders[i].GetComponent <Rigidbody>();
            targetRigidBody.AddExplosionForce(m_ExplosionForce, transform.position, m_ExplosionRadius);
            TankHealth targetHealth = targetRigidBody.GetComponent <TankHealth>();
            if (!targetHealth)
            {
                continue;
            }
            if (m_ShootingPlayer != colliders[i].GetComponent <TankMovement>().m_PlayerNumber)
            {
                if (m_IsAlienSwarmShot)
                {
                    AlienSwarm.SpawnAlienSwarm(ref m_SwarmPrefab, colliders[i].transform, colliders[i].GetComponent <TankMovement>().m_PlayerNumber, hitEnemyTank: true);
                    m_IsAlienSwarmShot = false;
                }
                else
                {
                    float damage = CalculateDamage(targetRigidBody.position);
                    targetHealth.TakeDamage(damage);
                    canPickUp = false;
                }
            }
        }
        ProcessExplosionParticlesAndDestroy(playExplosion: !m_IsAlienSwarmShot);
        if (m_IsAlienSwarmShot)
        {
            int targetID = m_ShootingPlayer == 1 ? 2 : 1;
            AlienSwarm.SpawnAlienSwarm(ref m_SwarmPrefab, gameObject.transform, targetID, hitEnemyTank: false);
        }
        if (canPickUp)
        {
            SpawnBulletPackage();
        }
        Destroy(gameObject);
    }
Esempio n. 3
0
        public void AlienSwarmTest()
        {
            var swarm = new AlienSwarm();

            Assert.AreEqual(30, swarm.Aliens.Count);
        }