local UnitHealPredictionCalculatorShared = { Tables = { { Name = "UnitDamageAbsorbClampMode", Type = "Enumeration", NumValues = 3, MinValue = 0, MaxValue = 2, Fields = { { Name = "MissingHealth", Type = "UnitDamageAbsorbClampMode", EnumValue = 0, Documentation = { "Clamp damage absorb values to the amount of missing health with incoming heals subtracted." } }, { Name = "MissingHealthWithoutIncomingHeals", Type = "UnitDamageAbsorbClampMode", EnumValue = 1, Documentation = { "Clamp damage absorb values to the amount of missing health. Incoming heals do not decrease missing health." } }, { Name = "MaximumHealth", Type = "UnitDamageAbsorbClampMode", EnumValue = 2, Documentation = { "Clamp damage absorb values to the amount of maximum health." } }, }, }, { Name = "UnitHealAbsorbClampMode", Type = "Enumeration", NumValues = 2, MinValue = 0, MaxValue = 1, Fields = { { Name = "CurrentHealth", Type = "UnitHealAbsorbClampMode", EnumValue = 0, Documentation = { "Clamp heal absorb values to the amount of current health." } }, { Name = "MaximumHealth", Type = "UnitHealAbsorbClampMode", EnumValue = 1, Documentation = { "Clamp heal absorb values to the amount of maximum health." } }, }, }, { Name = "UnitHealAbsorbMode", Type = "Enumeration", NumValues = 2, MinValue = 0, MaxValue = 1, Fields = { { Name = "ReducedByIncomingHeals", Type = "UnitHealAbsorbMode", EnumValue = 0, Documentation = { "Reduce heal absorb values by incoming heals, and vice versa, clamping to zero where necessary." } }, { Name = "Total", Type = "UnitHealAbsorbMode", EnumValue = 1, Documentation = { "Use heal absorb and incoming heal values as-is without any reductions." } }, }, }, { Name = "UnitIncomingHealClampMode", Type = "Enumeration", NumValues = 2, MinValue = 0, MaxValue = 1, Fields = { { Name = "MissingHealth", Type = "UnitIncomingHealClampMode", EnumValue = 0, Documentation = { "Clamp incoming heal values to the amount of missing health with overflow applied." } }, { Name = "MaximumHealth", Type = "UnitIncomingHealClampMode", EnumValue = 1, Documentation = { "Clamp incoming heal values to the amount of maximum health." } }, }, }, { Name = "UnitMaximumHealthMode", Type = "Enumeration", NumValues = 2, MinValue = 0, MaxValue = 1, Fields = { { Name = "Default", Type = "UnitMaximumHealthMode", EnumValue = 0, Documentation = { "Use maximum unit health as-is without adjustments." } }, { Name = "WithAbsorbs", Type = "UnitMaximumHealthMode", EnumValue = 1, Documentation = { "Use maximum unit health with total damage absorb shields added." } }, }, }, { Name = "UnitDamageAbsorbInfo", Type = "Structure", Fields = { { Name = "amount", Type = "number", Nilable = false, Documentation = { "Amount of applied damage absorb affects with potential reductions from clamping included." } }, { Name = "clamped", Type = "bool", Nilable = false, Documentation = { "If true, the value is in excess of the clamp boundary." } }, }, }, { Name = "UnitHealAbsorbInfo", Type = "Structure", Fields = { { Name = "amount", Type = "number", Nilable = false, Documentation = { "Amount of applied heal absorb affects with potential reductions from incoming heals and clamping included." } }, { Name = "clamped", Type = "bool", Nilable = false, Documentation = { "If true, the value is in excess of the clamp boundary." } }, }, }, { Name = "UnitHealPredictionValues", Type = "Structure", Fields = { { Name = "health", Type = "number", Nilable = false, Default = 0 }, { Name = "healthMax", Type = "number", Nilable = false, Default = 0 }, { Name = "totalIncomingHeals", Type = "number", Nilable = false, Default = 0 }, { Name = "totalIncomingHealsFromHealer", Type = "number", Nilable = false, Default = 0 }, { Name = "totalDamageAbsorbs", Type = "number", Nilable = false, Default = 0 }, { Name = "totalHealAbsorbs", Type = "number", Nilable = false, Default = 0 }, }, }, { Name = "UnitIncomingHealInfo", Type = "Structure", Fields = { { Name = "amount", Type = "number", Nilable = false, Documentation = { "Amount of incoming heals across all units with potential reductions from heal absorb effects included." } }, { Name = "amountFromHealer", Type = "number", Nilable = false, Documentation = { "Amount of incoming heals from the healer unit. Will never exceed the all-units value." } }, { Name = "amountFromOthers", Type = "number", Nilable = false, Documentation = { "Amount of incoming heals from units other than theh healer. Calculated as the difference between amount and amount-from-healer." } }, { Name = "clamped", Type = "bool", Nilable = false, Documentation = { "If true, the value is in excess of the clamp boundary." } }, }, }, }, Predicates = { }, }; APIDocumentation:AddDocumentationTable(UnitHealPredictionCalculatorShared);