void BioXASSSRLMonochromator::setMode(Mode::Value newMode) { if (mode_ != newMode) { mode_ = newMode; updateBragg(); updateEnergy(); emit modeChanged(mode_); } }
double ForceFieldComponent::updateScore() { score_ = updateEnergy(); /* scaleScore(); return score_; */ return getScaledScore(); }
void BioXASSSRLMonochromator::setEncoderEnergy(BioXASSSRLMonochromatorEnergyControl *newControl) { if (encoderEnergy_ != newControl) { removeChildControl(encoderEnergy_); encoderEnergy_ = newControl; addChildControl(encoderEnergy_); updateEncoderEnergy(); updateEnergy(); emit encoderEnergyChanged(encoderEnergy_); } }
void BioXASSSRLMonochromator::setStepEnergy(BioXASSSRLMonochromatorEnergyControl *newControl) { if (stepEnergy_ != newControl) { removeChildControl(stepEnergy_); stepEnergy_ = newControl; addChildControl(stepEnergy_); updateStepEnergy(); updateEnergy(); emit stepEnergyChanged(stepEnergy_); } }
void ShipStats::update(float timestep) { // If this ship is the player ship and it is within proximity of the passenger ship // if its health, energy or fuel are low, begin replenishing and let the player know // they are being replenished if (getParent()->getName() == "player1") { if (Utility::getDistance(m_passengerShip->getPosition(), *getTransform()->getPosition()) <= 500.0f) { m_dialogueBox->sendMessage("Message From [colour='FFFFFF00']Terra 1 :\n[colour='FFFFFFFF']Stay close,\n we'll replenish your reserves.", Importance::LOW, false); if (m_playRechargeSound) { m_rechargeSound->play(); m_playRechargeSound = false; } if (m_health < 1.0f) { updateHealth(0.0005f); if (!m_healing) { m_healing = true; if (m_health > m_dangerlevel) { m_healthWarnOnce = false; } } } else { m_healing = false; } if (m_energy < 1.0f) { updateEnergy(0.0005f); if (!m_energizing) { m_energizing = true; if (m_energy > m_dangerlevel) { m_energyWarnOnce = false; } } } else { m_energizing = false; } if (m_fuel < 1.0f) { updateFuel(0.0005f); if (!m_fueling) { m_fueling = true; if (m_fuel > m_dangerlevel) { m_fuelWarnOnce = false; } } } else { m_fueling = false; } } else { m_playRechargeSound = true; m_playMessageReceived = true; } if (m_fuel <= 0.0f) { getParent()->getGameComponent<PlayerShipMovementController>()->setVelocity(0.0f); } } if (m_health <= 0.0f) { if (getParent()->getName() != "player1" && getParent()->getName() != "passengerShip1") { //Remove gameobject from the minimap MiniMap * map; map = getGameObjectByName("MiniMap")->getGameComponent<MiniMap>(); map->deleteMapMarker(getParent()->getName()); //Remove the homing missile target of this gameobject std::vector<GameObject*> missiles = getGameObjectsByName("Missile"); //MissileAI* missileAIComponent; for (size_t i = 0; i < missiles.size(); i++) { /*for (size_t j = 0; j < missiles[i]->getAllGameComponents().size(); j++) { missileAIComponent = dynamic_cast<MissileAI*>(missiles[j]->getAllGameComponents()[j]); if (missileAIComponent != nullptr) { missileAIComponent->removeTarget(getParent()->getName()); break; } }*/ //MissileAI* missileAI = missiles[i]->getGameComponent<MissileAI>(); //missileAI->removeTarget(getParent()->getName()); missiles[i]->getGameComponent<MissileAI>()->removeTarget(getParent()->getName()); } destroy(getParent()); } else { getParent()->setEnabled(false); //Game Over scene getCoreEngine()->getSceneManager()->push(new GameOverScene(), Modality::Popup); } } }