@Override public boolean isGyroDestroyed() { if (getGyroType() == GYRO_HEAVY_DUTY) { return getGyroHits() > 2; } else { return getGyroHits() > 1; } }
@Override public int getHQIniBonus() { int bonus = super.getHQIniBonus(); if (((getGyroHits() > 0) || hasHipCrit()) && (mpUsedLastRound > 0)) { return 0; } return bonus; }
@Override public boolean isPermanentlyImmobilized(boolean checkCrew) { // First check for conditions that would permanently immobilize *any* // entity; if we find any, we're already done. if (super.isPermanentlyImmobilized(checkCrew)) { return true; } // If we're prone and base walking MP -- adjusted for gravity and // modular armor since they're reasonably permanent but ignoring heat // effects -- have dropped to 0, we're stuck even if we still have // jump jets because we can't get up anymore to *use* them. if ((getWalkMP(true, true, false) <= 0) && isProne()) { return true; } // Gyro destroyed? TW p. 258 at least heavily implies that that counts // as being immobilized as well, which makes sense because the 'Mech // certainly isn't leaving that hex under its own power anymore. int hitsToDestroyGyro = (gyroType == GYRO_HEAVY_DUTY) ? 3 : 2; if (getGyroHits() >= hitsToDestroyGyro) { return true; } return false; }
sBasic.append(Messages.getString("MechView.Gyro")); sBasic.append(aMech.getGyroTypeString()); if (aMech.getGyroHits() > 0) { sBasic.append("(" + aMech.getGyroHits() + " hits)");
if (aMech.getGyroHits() > 0) { gyroString += " " + warningStart() + "(" + aMech.getGyroHits() + " hits)" + warningEnd();
if (getGyroHits() == 1) { logger.log(Mech.class, METHOD_NAME, LogLevel.DEBUG, getDisplayName() + " HEAVY DAMAGE: Gyro hit");
if ((getEngineHits() == 1) && (getGyroHits() == 1)) { logger.log(Mech.class, METHOD_NAME, LogLevel.DEBUG, getDisplayName() + " CRIPPLED: Engine + Gyro hit.");