VE Lua Documentation

Press F to search!

getDamage

Definition


-- @/lua/vehicle/damageTracker.lua:77

local function getDamage(group, name)
  return damageData[group] and (damageData[group][name] or false) or false
end

Callers

@/lua/vehicle/powertrain/combustionEngine.lua
    local valveHitChance = random(10, 60) * 0.01
    if lockupChance <= device.overRevDamage and not damageTracker.getDamage("engine", "catastrophicOverrevDamage") then
      device:lockUp()
      device.overTorqueDamage = min(device.overTorqueDamage + torqueDifference * dt, device.maxOverTorqueDamage)
      if device.overTorqueDamage >= device.maxOverTorqueDamage and not damageTracker.getDamage("engine", "catastrophicOverTorqueDamage") then
        device:lockUp()
@/lua/vehicle/powertrain/combustionEngineThermals.lua
    M.engineBlockOverheatDamage = min(M.engineBlockOverheatDamage + parentEngine.engineWorkPerUpdate, damageThreshold.headGasket)
    if M.engineBlockOverheatDamage >= damageThreshold.headGasket and not damageTracker.getDamage("engine", "headGasketDamaged") then
      headGasketBlown()
    M.oilOverheatDamage = min(M.oilOverheatDamage + parentEngine.engineWorkPerUpdate, damageThreshold.connectingRod)
    if M.oilOverheatDamage >= damageThreshold.connectingRod and not damageTracker.getDamage("engine", "rodBearingsDamaged") then
      connectingRodBearingsDamaged()
    damageTracker.setDamage("engine", "oilOverheating", true, true)
  elseif damageTracker.getDamage("engine", "oilOverheating", true) then
    damageTracker.setDamage("engine", "oilOverheating", false)
    --if our cylinder wall gets too hot, the piston rings will be damaged eventually
    if M.cylinderWallOverheatDamage >= damageThreshold.pistonRing and not damageTracker.getDamage("engine", "pistonRingsDamaged") then
      pistonRingsDamaged()

    if adjustedRadiatorDamage > 0 and not damageTracker.getDamage("engine", "radiatorLeak") then
      damageTracker.setDamage("engine", "radiatorLeak", true, true)
    damageTracker.setDamage("engine", "coolantOverheating", true, true)
  elseif damageTracker.getDamage("engine", "coolantOverheating") then
    --if the coolant cools down again, we don't leak anymore because of overpressure
    M.engineBlockOverheatDamage = min(M.engineBlockOverheatDamage + parentEngine.engineWorkPerUpdate, damageThreshold.headGasket)
    if M.engineBlockOverheatDamage >= damageThreshold.headGasket and not damageTracker.getDamage("engine", "headGasketDamaged") then
      headGasketBlown()
    M.oilOverheatDamage = min(M.oilOverheatDamage + parentEngine.engineWorkPerUpdate, damageThreshold.connectingRod)
    if M.oilOverheatDamage >= damageThreshold.connectingRod and not damageTracker.getDamage("engine", "rodBearingsDamaged") then
      connectingRodBearingsDamaged()
    damageTracker.setDamage("engine", "oilOverheating", true, true)
  elseif damageTracker.getDamage("engine", "oilOverheating", true) then
    damageTracker.setDamage("engine", "oilOverheating", false)
    --if our cylinder wall gets too hot, the piston rings will be damaged eventually
    if M.cylinderWallOverheatDamage >= damageThreshold.pistonRing and not damageTracker.getDamage("engine", "pistonRingsDamaged") then
      pistonRingsDamaged()
    end
    if not damageTracker.getDamage("engine", "oilLevelCritical") then
      damageTracker.setDamage("engine", "oilLevelCritical", true, true)
    end
  elseif damageTracker.getDamage("engine", "oilLevelCritical") then
    damageTracker.setDamage("engine", "oilLevelCritical", false)
  if oilStarvingTimer >= oilStarvingTimerThreshold then
    if not damageTracker.getDamage("engine", "starvedOfOil") then
      damageTracker.setDamage("engine", "starvedOfOil", true, true)
    end
  elseif damageTracker.getDamage("engine", "starvedOfOil") then
    damageTracker.setDamage("engine", "starvedOfOil", false, false)
    oilLubricationCoef = min(oilLubricationCoef, linearScale(fluidReservoirs.oil.currentMass, fluidReservoirs.oil.maximumSafeMass, fluidReservoirs.oil.maximumSafeMass * 1.1, 1, 0.8))
    if not damageTracker.getDamage("engine", "oilLevelTooHigh") then
      damageTracker.setDamage("engine", "oilLevelTooHigh", true, true)
    end
  elseif damageTracker.getDamage("engine", "oilLevelTooHigh") then
    damageTracker.setDamage("engine", "oilLevelTooHigh", false)

    if not damageTracker.getDamage("engine", "exhaustBroken") then
      damageTracker.setDamage("engine", "exhaustBroken", true)
@/lua/vehicle/powertrain/manualGearbox.lua

    if device.synchroWear[gearIndex] > 0 and not damageTracker.getDamage("gearbox", "synchroWear") then
      damageTracker.setDamageTemporary("gearbox", "synchroWear", true, false, 2)