The decompiled versions of all \domino\ scripts found in Watch_Dogs.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

88 lines
2.3 KiB

-- DOMINO REFLECTION BOX START
--
-- <Display Category="Entity" Text="ArmedCameraMonitor" DisplayName="Armed Camera Monitor"/>
--
-- <ContextHelp><![CDATA[
-- Armed Camera Monitor
-- ]]></ContextHelp>
--
-- <ControlIn Name="Enable"/>
-- <ControlIn Name="Disable"/>
--
-- <ControlOut Name="Enabled"/>
-- <ControlOut Name="Disabled"/>
-- <ControlOut Name="WasDetected" Delayed="true">
-- <outParam Name="DetectedEntity"/>
-- </ControlOut>
-- <ControlOut Name="TakeDamage" Delayed="true">
-- <outParam Name="ArmedCameraDamaged"/>
-- </ControlOut>
--
-- <DataOut Name="DetectedEntity" Text="DetectedEntity" Type="Nomad|entity"/>
-- <DataOut Name="ArmedCameraDamaged" Text="ArmedCameraDamaged" Type="Nomad|entity"/>
--
--
-- DOMINO REFLECTION BOX END
ArmedCameraMonitor = {
}
function ArmedCameraMonitor:Create(cbox)
end
function ArmedCameraMonitor:Init(cbox)
self.missionId = cbox:GetParentMissionId();
self.callidWasDetected = nil;
self.callidTakeDamage = nil;
end
function ArmedCameraMonitor:Enable()
local instance = CScriptCallbackSystem_GetInstance();
if (self.callidWasDetected == nil) then
self.callidWasDetected = instance:RegisterMissionNoEntityCallback("ArmedCameraWasDetected", self, "Event_WasDetected", self.missionId);
end
if (self.callidTakeDamage == nil) then
self.callidTakeDamage = instance:RegisterMissionNoEntityCallback("ArmedCameraTakeDamage", self, "Event_TakeDamage", self.missionId);
end
self:Enabled();
end
function ArmedCameraMonitor:Disable()
self._type.UnregisterCallback(self);
self:Disabled();
end
function ArmedCameraMonitor:UnregisterCallback()
instance = CScriptCallbackSystem_GetInstance();
if (self.callidWasDetected ~= nil) then
instance:RemoveNoEntityCallback("ArmedCameraWasDetected", self.callidWasDetected);
self.callidWasDetected = nil
end
if (self.callidTakeDamage ~= nil) then
instance:RemoveNoEntityCallback("ArmedCameraTakeDamage", self.callidTakeDamage);
self.callidTakeDamage = nil
end
end
function ArmedCameraMonitor:Event_WasDetected(entityId, entityName)
self.DetectedEntity = entityId
self:WasDetected()
end
function ArmedCameraMonitor:Event_TakeDamage(entityId, entityName)
self.ArmedCameraDamaged = entityId
self:TakeDamage()
end
-- Export visible for Nomad engine.
export = ArmedCameraMonitor;
ArmedCameraMonitor = nil;