public void addAirplane(iAirplane airplane) { if (!existIdInMap(airplane.getId())) { airplanes.Add(airplane); } }
public void checkAltitudeDanger(iAirplane airplane) { airplane.setAltitudeDanger(false); if (airplane.getAltitude() <= this.altitudeDanger) { airplane.setAltitudeDanger(true); } }
public void addAirplaneToMap(iAirplane airplane) { if (map.getAirplanes().Count >= this.maxAirplanes) { notificationsManager.addNotification($"Max airplanes reached {map.getAirplanes().Count}/{this.maxAirplanes}"); } else { notificationsManager.addNotification($"Adding airplane {airplane.getId()} to the map. {airplane.getPos().ToString()}"); this.map.addAirplane(airplane); } }
public bool checkCrash(iAirplane airplane1) { //CRASH with floor/ground(altitude) if (airplane1.getAltitude() <= this.altitudeCrash) { if (airplane1.getDeployedLandingGear()) { //Landing gear is deployed if (airplane1.getSpeed() <= this.landingMaxSpeed) { //Airplane can land and be removed this.game.addNotification($"Airplane {airplane1.getId()} has landed succesfully.", 6000); } else { Random random = new Random(); int deadPeople = random.Next((int)(airplane1.getCapacity() * 0.2), (int)(airplane1.getCapacity() * 0.8)); this.game.addNotification($"Airplane {airplane1.getId()} has landed with some difficulties killing {deadPeople} people.", 6000); this.stats.addDeadPeople($"{airplane1.getId()} - {airplane1.getVendor()} {airplane1.getModel()} Landed with some difficulties killing {deadPeople} people.", deadPeople); } } else { //Landing gear is not deployed this.game.addNotification($"Airplane {airplane1.getId()} has crashed with the ground. {airplane1.getCapacity()} people have died. Congratulations.", 6000); this.stats.addDeadPeople($"{airplane1.getId()} - {airplane1.getVendor()} {airplane1.getModel()} has crashed with the ground. {airplane1.getCapacity()} people have died.", airplane1.getCapacity()); } return(true); } //CRASH with airplanes foreach (iAirplane airplane2 in this.airplanes) { //Same airplane, stop if (airplane1.getId() == airplane2.getId()) { continue; } //Calculate distance between 2 airplanes double radius = Vector3.Distance(airplane1.get3DPos(), airplane2.get3DPos()); if (radius <= this.distanceCrashRadius) { this.game.addNotification($"Airplane {airplane1.getId()} has crashed with another airplane. {airplane1.getCapacity()} people have died. Congratulations.", 6000); this.stats.addDeadPeople($"{airplane1.getId()} - {airplane1.getVendor()} {airplane1.getModel()} has crashed with another airplane. {airplane1.getCapacity()} people have died.", airplane1.getCapacity()); return(true); } } return(false); }
private void comboBox_airplanePresets_SelectedValueChanged(object sender, EventArgs e) { //Load preset into form DataRowView selectedValueRow = (DataRowView)comboBox_availableAirplanes.SelectedItem; if (selectedValueRow == null) { return; } iAirplane airplane = (iAirplane)selectedValueRow[1]; this.selectedAirplane = airplane; this.loadSelectedAirplaneInfo(); }
protected override void Draw(GameTime gameTime) { GraphicsDevice.Clear(Color.White); base.Draw(gameTime); spriteBatch.Begin(); this.closestAirplaneToMouse = this.getClosestAirplaneToMouse(); if (closestAirplaneToMouse != null && Vector2.Distance(currentMouseState.Position.ToVector2(), closestAirplaneToMouse.getDrawPos()) < 50) { closestAirplaneToMouse.hover(true); Primitives2D.DrawLine(spriteBatch, currentMouseState.Position.ToVector2(), closestAirplaneToMouse.getDrawPos(), Color.Black); } map.Draw(spriteBatch); notificationsManager.Draw(spriteBatch); //FPS spriteBatch.DrawString(defaultFont, Math.Ceiling(frameCounter.CurrentFramesPerSecond).ToString(), Vector2.Zero, Color.Green); spriteBatch.End(); }
public void checkCollisionDanger(iAirplane airplane1) { //Reset collision danger list airplane1.removeAllCollisionDangerWith(); foreach (iAirplane airplane2 in airplanes) { //Same airplane, stop if (airplane1.getId() == airplane2.getId()) { continue; } //Calculate distance between 2 airplanes double radius = Vector3.Distance(airplane1.get3DPos(), airplane2.get3DPos()); if (radius <= this.distanceCollisionDangerRadius) { //this.game.addNotification($"Airplane {airplane1.getId()} and airplane {airplane2.getId()} are really close!!({(int)Math.Round(distance)})", 6000); airplane1.addCollisionDangerWith(airplane2); airplane2.addCollisionDangerWith(airplane1); } } }
private iAirplane getClosestAirplaneToMouse() { List <iAirplane> airplanes = this.map.getAirplanes(); if (airplanes.Count == 0) { return(null); } iAirplane closestAirplane = airplanes[0]; foreach (iAirplane airplane in airplanes) { if (Vector2.Distance(currentMouseState.Position.ToVector2(), airplane.getDrawPos()) < Vector2.Distance(currentMouseState.Position.ToVector2(), closestAirplane.getDrawPos())) { closestAirplane = airplane; } } if (Vector2.Distance(currentMouseState.Position.ToVector2(), closestAirplane.getDrawPos()) > 50) { return(null); } return(closestAirplane); }
public void removeCollisionDangerWith(iAirplane airplane) { this.collisionDangerWith.Remove(airplane); }
public void addCollisionDangerWith(iAirplane airplane) { this.collisionDangerWith.Add(airplane); }
public void removeAirplane(iAirplane airplane) { this.map.removeAirplane(airplane); this.addNotification($"Airplane {airplane.getId()} has been removed from the map."); }
private bool isValidAirplanePos(iAirplane airplane) { Vector2 airplanePos = airplane.getPos(); return((airplanePos.X < this.size.X && airplanePos.X >= 0) && (airplanePos.Y < this.size.Y && airplanePos.Y >= 0)); }
internal void removeAirplane(iAirplane airplane) { this.airplanes.Remove(airplane); }