private void EnemyShoot()//let every enemy randomly or over a duration fire a projectile { EnemyProjectile enemyProjectile; foreach (Invader enemy in Invaders) { if (Rnd.Next(0, 800) == 1) { enemyProjectile = new EnemyProjectile(GameDisplay, enemy, 7);//new object of the type EnemyProjectile EnemyProjectiles.Add(enemyProjectile); } } if (UfoReloadTimer < 100) { UfoReloadTimer++; } if (UfoReloadTimer > 90) { foreach (Ufo enemy in Ufos) { enemyProjectile = new EnemyProjectile(GameDisplay, enemy, 7);//new object of the type EnemyProjectile EnemyProjectiles.Add(enemyProjectile); } UfoReloadTimer -= 16; } }
private void OnCollisionEnter2D(Collision2D other) { HealthSystem enemy = other.gameObject.GetComponent <HealthSystem>(); if (enemy) { if (!IsNotGettingDamage(other.gameObject)) { if (enemy.tag == ("EnemyCriticalArea")) { enemy.Damage(m_CriticalDamage); } else { enemy.Damage(m_WeaponDamage); } } } EnemyProjectiles projectile = other.gameObject.GetComponent <EnemyProjectiles>(); if (projectile) { projectile.Blocked(); if (m_BlockAction) { m_BlockAction.ObjectBlocked(); } } }
//-------------------------------- // 3 - Shooting from another script //-------------------------------- /// <summary> /// Create a new projectile if possible /// </summary> public void Attack(bool isPlayer) { if (CanAttack) { shootCooldown = shootingRate; // Create a new shot var shotTransform = Instantiate(shotPrefab) as Transform; // Assign position shotTransform.position = transform.position; // The is enemy property EnemyProjectiles shot = shotTransform.gameObject.GetComponent <EnemyProjectiles>(); if (shot != null) { shot.isPlayerShot = isPlayer; } // Make the weapon shot always towards it Move move = shotTransform.gameObject.GetComponent <Move>(); move.direction = this.transform.right * -1; shot.transform.Rotate(0, 0, -180.0f); } }
public void Update(GameTime gameTime) { enemyObject.Update(gameTime); timeSinceLastShot += (float)gameTime.ElapsedGameTime.TotalSeconds; if (Velocity.LengthSquared() > Max_Speed_Squared) { Velocity.Normalize(); Velocity = Vector2.Normalize(Velocity) * Max_Speed; } enemyObject.Position += Velocity * (float)gameTime.ElapsedGameTime.TotalSeconds; Position = enemyObject.Position; if (enemyObject.Position.X > mWorld.WorldWidth - 75 || enemyObject.Position.X < (mWorld.WorldWidth / 4) + 300) { Velocity.X = -Velocity.X; } if (enemyObject.Position.Y > mWorld.WorldHeight - 50 || enemyObject.Position.Y < 100) { Velocity.Y = -Velocity.Y; } if (timeSinceLastShot > shotCooldown) { EnemyProjectiles.CreateProjectile(enemyObject.Position + new Vector2(0, 25), rotate(mShipdata.facing, enemyObject.Rotation) * mShipdata.bulletSpeed); timeSinceLastShot = 0.0f; RandomizeShotCooldown(); RandomizeMovement(); } EnemyProjectiles.Update(gameTime); }
/// <summary> /// Realiza la acción "fogueo" para borrar los proyectiles de la pantalla /// </summary> public void DoCleaner() { lock (l) { Projectiles.Clear(); EnemyProjectiles.Clear(); } cleanerEffect = 5; Player.ProjectilesAvailable = Character.MaxProjectiles; }
void FireProjectile() { projA = enemyManager.GetProjectileToShoot(); projA.SetProjectileActive(transform.position + transform.right, new Vector2(0.0f, 5.0f) * transform.right); projB = enemyManager.GetProjectileToShoot(); projB.SetProjectileActive(transform.position - transform.right, new Vector2(0.0f, 5.0f) * -transform.right); }
public void ClearGame()//Removes all Gameobjects from the Gamedisplay and resets the Gamevalues { Player.HealthPoints = 3; score = 0; levelcounter = 1; PlayerProjectiles.Clear(); EnemyProjectiles.Clear(); Invaders.Clear(); Ufos.Clear(); Walls.Clear(); GameDisplay.Children.Clear(); }
void OnTriggerEnter2D(Collider2D col) { //will notice a collision if hurt by enemy projectile EnemyProjectiles shot = col.gameObject.GetComponent <EnemyProjectiles>(); if (shot != null)//if shot { if (shot.isPlayerShot != isPlayer) { Damage(shot.damage); //calling function Destroy(shot.gameObject); //calling function } } }
public void CleanTemporaryGameLists()//gameobject lists are cleaned up { GameDisplay.Children.Clear(); //lists are updated EnemyProjectiles = EnemyProjectiles.Except(TemporaryEnemyProjectiles).ToList(); PlayerProjectiles = PlayerProjectiles.Except(TemporaryPlayerProjectiles).ToList(); Ufos = Ufos.Except(TemporaryUfos).ToList(); Walls = Walls.Except(TemporaryWalls).ToList(); Invaders = Invaders.Except(TemporaryInvaders).ToList(); //temporary lists are cleared TemporaryWalls.Clear(); TemporaryPlayerProjectiles.Clear(); TemporaryInvaders.Clear(); TemporaryEnemyProjectiles.Clear(); TemporaryUfos.Clear(); }
public void Draw(SpriteBatch spriteBatch) { enemyObject.Draw(spriteBatch); EnemyProjectiles.Draw(spriteBatch); }