2025-06-04 05:02:57 +08:00

51 lines
1.2 KiB
Plaintext

CreatureVisibleHandler = reusableClass("CreatureVisibleHandler")
CreatureVisibleHandler.PoolSize = 100
LayerChangeReason = {
HidingSkill = 999999,
CJ = 999998,
CarrierWaiting = 999997,
SceneSeat = 999996,
DoubleAction = 999995,
OnStageWaitting = 999994,
}
function CreatureVisibleHandler:ctor()
CreatureVisibleHandler.super.ctor(self)
self.reason = {}
end
function CreatureVisibleHandler:HasReason()
for k,v in pairs(self.reason) do
return true
end
return false
end
function CreatureVisibleHandler:Visible(creature,v,reason)
-- LogUtility.InfoFormat("creature visible id : {0} , visible : {1} , reason:{2}",creature.data.id,v,reason )
if(v) then
self.reason[reason] = nil
if(not self:HasReason()) then
creature.assetRole:SetInvisible(false)
if(creature.data) then
creature:SetClickable(true)
end
end
else
self.reason[reason] = reason
creature.assetRole:SetInvisible(true)
if(creature.data) then
creature:SetClickable(false)
end
end
end
-- override begin
function CreatureVisibleHandler:DoConstruct(asArray, creatureID)
end
function CreatureVisibleHandler:DoDeconstruct(asArray)
TableUtility.TableClear(self.reason)
end
-- override end