local PSBT_Module = PSBT_Module local PSBT_LowSomething = PSBT_Module:Subclass() PSBT_LowSomething._pools = {} PSBT_LowSomething._colors = {} local CBM = CALLBACK_MANAGER local threshold = 0.33 local PSBT_AREAS = PSBT_AREAS local PSBT_MODULES = PSBT_MODULES local PSBT_EVENTS = PSBT_EVENTS local PSBT_STRINGS = PSBT_STRINGS local POWERTYPE_HEALTH = POWERTYPE_HEALTH local POWERTYPE_MAGICKA = POWERTYPE_MAGICKA local POWERTYPE_STAMINA = POWERTYPE_STAMINA local POWERTYPE_MOUNT_STAMINA = POWERTYPE_MOUNT_STAMINA local kVersion = 1.0 function PSBT_LowSomething:Initialize( ... ) PSBT_Module.Initialize( self, ... ) self._lowText = GetString( _G[ PSBT_STRINGS.LOW_SOMETHING ] ) self._colors[ POWERTYPE_HEALTH ] = ZO_ColorDef:New( 'D8594B' ) self._colors[ POWERTYPE_MAGICKA ] = ZO_ColorDef:New( '92CEF8' ) self._colors[ POWERTYPE_STAMINA ] = ZO_ColorDef:New( '5C9D8E' ) self._colors[ POWERTYPE_MOUNT_STAMINA ] = ZO_ColorDef:New( '5C9D8E' ) self._pools[ POWERTYPE_HEALTH ] = 0 self._pools[ POWERTYPE_MAGICKA ] = 0 self._pools[ POWERTYPE_STAMINA ] = 0 self._pools[ POWERTYPE_MOUNT_STAMINA ] = 0 self:RegisterForEvent( EVENT_POWER_UPDATE, function( ... ) self:OnPowerUpdate( ... ) end ) end function PSBT_LowSomething:OnPowerUpdate( unit, powerPoolIndex, powerType, powerPool, powerPoolMax ) if ( unit ~= 'player' ) then return end if ( powerPool == 0 ) then return end if ( not self._pools[ powerType ] ) then return end local newValue = powerPool / powerPoolMax if ( self._pools[ powerType ] < threshold or newValue > self._pools[ powerType ] or newValue > threshold ) then self._pools[ powerType ] = newValue return end self._pools[ powerType ] = newValue local mechanicName = GetString( 'SI_COMBATMECHANICTYPE', powerType ) local color = self._colors[ powerType ] local string = zo_strformat( self._lowText, mechanicName, color:Colorize( tostring( powerPool ) ) ) PlaySound( 'Quest_StepFailed' ) self:NewEvent( PSBT_AREAS.STATIC, true, nil, string ) end CBM:RegisterCallback( PSBT_EVENTS.LOADED, function( psbt ) psbt:RegisterModule( PSBT_MODULES.LOW, PSBT_LowSomething:New( psbt ), kVersion ) end)