public void AlienSwarmMoveTest() { var swarm = new AlienSwarm(); while (swarm.Aliens.First().Y > 0) { swarm.AlienSwarmMove(100); } }
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); }
public void AlienSwarmTest() { var swarm = new AlienSwarm(); Assert.AreEqual(30, swarm.Aliens.Count); }