101 lines
3.8 KiB
Lua
101 lines
3.8 KiB
Lua
---@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; |