---@class BP_MonsterInherit_2_C:BP_MonsterBreach_C ---@field P_Yinghua_001 UParticleSystemComponent ---@field Sphere USphereComponent ---@field UAESkillManager UUAESkillManagerComponent --Edit Below-- --local BP_MonsterInherit_2 = {}; local MonsterBreach = require('Script.Blueprint.Monster.BP_MonsterBreach') local BP_MonsterInherit_2 = setmetatable( { IncreaseDefenseMonsters = {}; ID = 1002; CheckTargetPlayerKeyHandle = nil; MonsterName = "MonsterInherit_2", }, { __index = MonsterBreach, __metatable = MonsterBreach } ); function BP_MonsterInherit_2:ReceiveBeginPlayEx() MonsterBreach.ReceiveBeginPlayEx(self) if self:HasAuthority() then self:AddReignSkill() EventSystem.SetTimerLoop(self, function() self:SetOverlapMonsterIncreaseDefense() end, 1) else self.CheckTargetPlayerKeyHandle = EventSystem.SetTimerLoop(self, function() if self.TargetPlayerKey ~= -1 then EventSystem.StopTimer(self.CheckTargetPlayerKeyHandle) local PC = GameDataManager.GetLocalPlayerController() if PC.PlayerKey == self.TargetPlayerKey then UIManager:ClosePanel(EUIType.Inherit) else end else end end, 0.5) end end function BP_MonsterInherit_2:ReceiveEndPlayEx() MonsterBreach.ReceiveEndPlayEx(self) if self.IncreaseDefenseMonsters then for _, Monster in pairs(self.IncreaseDefenseMonsters) do if UE.IsValid(Monster) then Monster:AddAdditionalDefense(- Monster.BasePhysicalDefense) end end end self.IncreaseDefenseMonsters = {} end function BP_MonsterInherit_2:SetOverlapMonsterIncreaseDefense() local Monsters = GameplayStatics.GetAllActorsOfClass(self, self:GetMonsterClass(), {}) if Monsters then print("MonstersLength: " .. #Monsters) local SelfLocation = self:K2_GetActorLocation() for k, Monster in pairs(Monsters) do print("BP_MonsterInherit_1_SetOverlapMonsterIncreaseDefense" .. "ClassName: " .. KismetSystemLibrary.GetObjectName(Monster)) local MonsterLocation = Monster:K2_GetActorLocation() if VectorHelper.GetDistance(SelfLocation, MonsterLocation) <= 500 then if (not table.hasValue(self.IncreaseDefenseMonsters, Monster)) and Monster.PhysicalDefense ~= nil then table.insert(self.IncreaseDefenseMonsters, Monster) Monster:AddAdditionalDefense(Monster.BasePhysicalDefense) print("BP_MonsterInherit_1_BeginOtherActor.PhysicalDefense : " .. Monster:GetDefense()) end else if table.hasValue(self.IncreaseDefenseMonsters, Monster) then Monster:AddAdditionalDefense(-Monster.BasePhysicalDefense) print("BP_MonsterInherit_1_BeginOtherActor.PhysicalDefense : " .. Monster:GetDefense()) table.removeValue(self.IncreaseDefenseMonsters, Monster) end end end end end function BP_MonsterInherit_2:AddReignSkill() self.ReignSkillHandle = EventSystem.SetTimerLoop(self, function() local HealthMax = UGCSimpleCharacterSystem.GetHealthMax(self) self:AddHealth(HealthMax * 0.1) end, 5.0) end function BP_MonsterInherit_2:ReceiveOnMonsterDeath() MonsterBreach.ReceiveOnMonsterDeath(self) if self:HasAuthority() then if self.ReignSkillHandle then EventSystem.StopTimer(self.ReignSkillHandle) self.ReignSkillHandle = nil return end else if UE.IsValid(self.P_Yinghua_001) then self.P_Yinghua_001:SetVisibility(false) end end end return BP_MonsterInherit_2;