public void Damage(float amountOfDamage) { CurrentHullPoints -= amountOfDamage; if (CurrentHullPoints >= 0) { Parant.Destroy("due to massive hull damage"); } }
private void OkClick(object sender, RoutedEventArgs e) { FillInStudent(); if (Mode == Modes.CREATE) { Parant.SelectedGroup.Push(Student); ClearForm(); } Parant.RefreshStudentsList(); }
public override void Update(GameTime gameTime) { if (Online) { var storage = Parant.FindAllSubsystems <IStorage>(); float consumption = CurrentFuelConsumption * (float)gameTime.ElapsedGameTime.TotalSeconds; for (int i = 0; consumption > 0; i++) { if (storage.Count <= i) { Online = false; CurrentSpeed = 0; } consumption -= storage[i].GetItem(Item.GetFuel(consumption)).Amount; } } base.Update(gameTime); }
public void Damage(float amountOfDamage) { if (amountOfDamage > 0) { //TODO: Set DamageTimer //DamageTimeout = GameControl; } float newShields = CurrentShieldPower - amountOfDamage; if (newShields >= 0) { CurrentShieldPower = newShields; return; } else { float relayedDamage = -newShields - CurrentShieldPower; CurrentShieldPower = 0; Parant.FindSubsystem <IDamage>(Priority - 1).Damage(relayedDamage); } }
protected void GetEngineSpeed()//XXX: possible performance issue, easy to adjust { var engines = Parant.FindAllSubsystems <IEngine>(); engines.RemoveAll(p => !(p as Subsystem).Online); AssignedEngines = engines; float weightedTurnSpeeds = 0; MaxSpeed = 0; MinSpeed = 0; EngineAcceleration = 0; foreach (var elem in engines) { weightedTurnSpeeds += elem.MaxTurnSpeed * elem.MaxSpeed; MaxSpeed += elem.MaxSpeed; MinSpeed += elem.MinSpeed; EngineAcceleration += elem.EngineAcceleration; } MaxTurnSpeed = weightedTurnSpeeds / MaxSpeed; }