--================= NPC Sleep - Ngủ Trên Giường =================--
--Xử lý OnUpdate các NPC có variable "npcQuestSleepOnBed"
--NPC SleepOnBed chỉ ngủ trên giường
--===============================================================--

if isServer() then return end

require "vl_quest_utils"
require "vl_quest_zombie_npc_utils"

assert(VLF,  "Stack trace: Missing dependency: VLF - vl_npc_sleeponbed.lua")

--Chạy trong Events.OnZombieUpdate.Remove(OnZombieNPCUpdate) để update NPC SleepOnBed
function VLF.UpdateNPCSleepOnBed(zNPC, zID, qStep, zData)
	--if zNPC:getVariableBoolean("npcQuestSleepOnBed") then
		--zNPC:setUseless(true)
		local npcData = VLF.npcData and VLF.npcData[qStep]
		if npcData then
			if npcData.faceDir then
				zNPC:faceDirection(IsoDirections[npcData.faceDir])
			end
			local x = npcData.startX + 0.3
			local y = npcData.startY + 0.5
			local z = npcData.startZ
			--zNPC:teleportTo(x, y, z)	--không đặt đúng tọa độ float
			zNPC:setX(x)
			zNPC:setY(y)
			zNPC:setZ(z)
			--print(x, y, z)
		end
		
		--Set Bumped để npc có thể xoay về hướng cố định
		if not zNPC:isBumped() then
			--local zData = GetZombieModDataQuest(zNPC)
			if not zData.alreadyBump then
				zNPC:setBumpType("vlNPCSleepOnBed")
				zNPC:setDefaultState(StaggerBackState.instance())
				zData.alreadyBump = true
			end
		end
		
		--Khi bị attack mất Bumped thì chuyển qua StaggerBack. FIXME: bị animation HitReaction trước khi chuyển StaggerBack, sửa bằng cách chỉnh tất cả anim HitReaction
		if not zNPC:isBumped() then
			zNPC:changeState(StaggerBackState.instance())
			zNPC:setStaggerBack(true)
			zNPC:setKnockedDown(true)
		end
	--end
end















