private void FireWeapons(GameTime gameTime) { foreach (Tuple <Room, Projectile.Attack_Against> attack in Attacks) { Room room = attack.Item1; Projectile.Attack_Against against = attack.Item2; if (room.CanShoot && Power >= room.PowerPerShot()) { room.Shoot(); Power -= (int)room.PowerPerShot(); _combatState.AddProjectile(new Projectile(new Point(1000, 1000), room.GetCenter(), (int)room.DamagePerShot(), against, _combatState)); } } }
public void AttackEnemy(Room weapon, CombatState combatState, Projectile.Attack_Against against) { List <Tuple <Room, Projectile.Attack_Against> > toRemove = new List <Tuple <Room, Projectile.Attack_Against> >(); foreach (Tuple <Room, Projectile.Attack_Against> attack in Attacks) { if (attack.Item1.RoomID == weapon.RoomID) { toRemove.Add(attack); } } foreach (Tuple <Room, Projectile.Attack_Against> attack in toRemove) { Attacks.Remove(attack); } Attacks.Add(new Tuple <Room, Projectile.Attack_Against>(weapon, against)); _combatState = combatState; }