local function U(U,F)if F.Anchored then return end if CollectionService:HasTag(F,Constants.Tag.Tool.RepairKit)then if U._health~=U._maxHealth then F:Destroy()U:incrementHealth(DEFAULT_TOOLKIT_HEALING_AMOUNT)end elseif CollectionService:HasTag(F,Constants.Tag.Monster)and not U._monsterDebounce then U._monsterDebounce=true U:incrementHealth(-MONSTER_DAMAGE)delay(MONSTER_DEBOUNCE_TIME,function()U._monsterDebounce=false end)end end local F=ClassUtils.makeClass(script.Name)

local function onTouched(self, otherPart)
	if otherPart.Anchored then
		return
	end

	if CollectionService:HasTag(otherPart, Constants.Tag.Tool.RepairKit) then
		if self._health ~= self._maxHealth then
			otherPart:Destroy()
			self:incrementHealth(DEFAULT_TOOLKIT_HEALING_AMOUNT)
		end
	elseif CollectionService:HasTag(otherPart, Constants.Tag.Monster) and not self._monsterDebounce then
		self._monsterDebounce = true

		self:incrementHealth(-MONSTER_DAMAGE)

		delay(
			MONSTER_DEBOUNCE_TIME,
			function()
				self._monsterDebounce = false
			end
		)
	end
end

local BaseSystem = ClassUtils.makeClass(script.Name)
