Added wrist watches and stuff drop

This commit is contained in:
ZioPao
2024-04-21 03:03:32 +02:00
parent 5c03cea8c4
commit 005d9e863e

View File

@@ -42,7 +42,6 @@ function LocalPlayerController.InitializePlayer(isForced)
-- Set a bool to use an overriding GetDamagedParts -- Set a bool to use an overriding GetDamagedParts
SetHealthPanelTOC() SetHealthPanelTOC()
end end
---Handles the traits ---Handles the traits
@@ -67,7 +66,6 @@ end
---Used to heal an area that has been cut previously. There's an exception for bites, those are managed differently ---Used to heal an area that has been cut previously. There's an exception for bites, those are managed differently
---@param bodyPart BodyPart ---@param bodyPart BodyPart
function LocalPlayerController.HealArea(bodyPart) function LocalPlayerController.HealArea(bodyPart)
bodyPart:setFractureTime(0) bodyPart:setFractureTime(0)
bodyPart:setScratched(false, true) bodyPart:setScratched(false, true)
@@ -128,7 +126,6 @@ function LocalPlayerController.TryRandomBleed(character, limbName)
end end
end end
------------------------- -------------------------
--* Damage handling *-- --* Damage handling *--
--- Locks OnPlayerGetDamage event, to prevent it from getting spammed constantly --- Locks OnPlayerGetDamage event, to prevent it from getting spammed constantly
@@ -149,7 +146,6 @@ function LocalPlayerController.HandleDamage(character)
local bptEnum = StaticData.BODYLOCS_IND_BPT[limbName] local bptEnum = StaticData.BODYLOCS_IND_BPT[limbName]
local bodyPart = bd:getBodyPart(bptEnum) local bodyPart = bd:getBodyPart(bptEnum)
if dcInst:getIsCut(limbName) then if dcInst:getIsCut(limbName) then
-- Generic injury, let's heal it since they already cut the limb off -- Generic injury, let's heal it since they already cut the limb off
if bodyPart:HasInjury() then if bodyPart:HasInjury() then
TOC_DEBUG.print("Healing area - " .. limbName) TOC_DEBUG.print("Healing area - " .. limbName)
@@ -189,7 +185,6 @@ function LocalPlayerController.HandleDamage(character)
-- Disable the lock -- Disable the lock
LocalPlayerController.hasBeenDamaged = false LocalPlayerController.hasBeenDamaged = false
end end
---Setup HandleDamage, triggered by OnPlayerGetDamage ---Setup HandleDamage, triggered by OnPlayerGetDamage
@@ -197,7 +192,6 @@ end
---@param damageType string ---@param damageType string
---@param damageAmount number ---@param damageAmount number
function LocalPlayerController.OnGetDamage(character, damageType, damageAmount) function LocalPlayerController.OnGetDamage(character, damageType, damageAmount)
-- TODO Check if other players in the online triggers this -- TODO Check if other players in the online triggers this
if LocalPlayerController.hasBeenDamaged == false then if LocalPlayerController.hasBeenDamaged == false then
@@ -280,7 +274,6 @@ function LocalPlayerController.UpdateAmputations()
Events.EveryHours.Remove(LocalPlayerController.UpdateAmputations) -- We can remove it safely, no cicatrization happening here boys Events.EveryHours.Remove(LocalPlayerController.UpdateAmputations) -- We can remove it safely, no cicatrization happening here boys
end end
TOC_DEBUG.print("updating cicatrization and wound dirtyness!") TOC_DEBUG.print("updating cicatrization and wound dirtyness!")
end end
---Starts safely the loop to update cicatrzation ---Starts safely the loop to update cicatrzation
@@ -325,7 +318,6 @@ function LocalPlayerController.HandleTourniquet()
-- local wornItem = wornItems:get(j-1) -- local wornItem = wornItems:get(j-1)
-- end -- end
end end
Events.OnPuttingTourniquet.Add(LocalPlayerController.HandleTourniquet) Events.OnPuttingTourniquet.Add(LocalPlayerController.HandleTourniquet)
@@ -333,12 +325,43 @@ Events.OnPuttingTourniquet.Add(LocalPlayerController.HandleTourniquet)
--* Object drop handling when amputation occurs --* Object drop handling when amputation occurs
--- Drop all items from the affected limb
---@param limbName string
function LocalPlayerController.DropItemsAfterAmputation(limbName) function LocalPlayerController.DropItemsAfterAmputation(limbName)
-- TODO Check for watches and stuff like that -- TODO Check for watches and stuff like that
TOC_DEBUG.print("Triggered DropItemsAfterAmputation")
local side = CommonMethods.GetSide(limbName)
local sideStr
if side == 'R' then
sideStr = "Right"
else
sideStr = 'Left'
end
local pl = getPlayer()
local wornItems = pl:getWornItems()
for i = 1, wornItems:size() do
local it = wornItems:get(i - 1)
if it then
local wornItem = wornItems:get(i - 1):getItem()
TOC_DEBUG.print(wornItem:getBodyLocation())
local bl = wornItem:getBodyLocation()
if string.contains(limbName, "Hand_") and (bl == sideStr .. "_MiddleFinger" or bl == sideStr .. "_RingFinger") then
pl:removeWornItem(wornItem)
end
if string.contains(limbName, "ForeArm_") and (bl == sideStr .. "Wrist") then
pl:removeWornItem(wornItem)
end
end
end
end end
Events.OnAmputatedLimb.Add(LocalPlayerController.DropItemsAfterAmputation) Events.OnAmputatedLimb.Add(LocalPlayerController.DropItemsAfterAmputation)