local ____lualib = require("lualib_bundle")
local __TS__Class = ____lualib.__TS__Class
local __TS__ClassExtends = ____lualib.__TS__ClassExtends
local ____exports = {}
local ____isaac_2Dtypescript_2Ddefinitions = require("isaac-typescript-definitions")
local EntityType = ____isaac_2Dtypescript_2Ddefinitions.EntityType
local ModCallback = ____isaac_2Dtypescript_2Ddefinitions.ModCallback
local ____shouldFire = require("shouldFire")
local shouldFirePlayer = ____shouldFire.shouldFirePlayer
local ____CustomCallback = require("classes.private.CustomCallback")
local CustomCallback = ____CustomCallback.CustomCallback
____exports.EntityTakeDmgPlayer = __TS__Class()
local EntityTakeDmgPlayer = ____exports.EntityTakeDmgPlayer
EntityTakeDmgPlayer.name = "EntityTakeDmgPlayer"
__TS__ClassExtends(EntityTakeDmgPlayer, CustomCallback)
function EntityTakeDmgPlayer.prototype.____constructor(self)
    CustomCallback.prototype.____constructor(self)
    self.shouldFire = shouldFirePlayer
    self.entityTakeDmgPlayer = function(____, entity, amount, damageFlags, source, countdownFrames)
        local player = entity:ToPlayer()
        if player == nil then
            return nil
        end
        return self:fire(
            player,
            amount,
            damageFlags,
            source,
            countdownFrames
        )
    end
    self.callbacksUsed = {{ModCallback.ENTITY_TAKE_DMG, self.entityTakeDmgPlayer, {EntityType.PLAYER}}}
end
return ____exports
