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.
 

117 lines
3.2 KiB

-- DOMINO REFLECTION BOX START
-- <ContextHelp><![CDATA[
-- ]]></ContextHelp>
--
-- <Display Category="Vehicles" Text="Vehicle Damage Monitor" />
-- <Legacy Replacement="VehicleDamageMonitor_V2" Expiration="2014-07-23"/>
--
-- <ControlIn Name="Enable">
-- <LinkRule severity="ERROR">
-- <Target anchor="Vehicle"/>
-- </LinkRule>
-- <LinkRule severity="INFO">
-- <Target anchor="Enabled"/>
-- </LinkRule>
-- </ControlIn>
--
-- <ControlIn Name="Disable">
-- <LinkRule severity="ERROR">
-- <Target anchor="Vehicle"/>
-- </LinkRule>
-- <LinkRule severity="INFO">
-- <Target anchor="Disabled"/>
-- </LinkRule>
-- </ControlIn>
--
-- <ControlIn Name="GetDamage">
-- <LinkRule severity="INFO">
-- <Target anchor="Health"/>
-- <Target anchor="GotDamage"/>
-- </LinkRule>
-- </ControlIn>
--
-- <DataIn Name="Vehicle" Type="Nomad|entity"/>
-- <DataIn Name="DamageThreshold" Type="Core|float" Default="-1.0"/>
-- <DataIn Name="StaticDamageMultiplier" Type="Core|float" Default="0.0" Legacy="StaticDamageBonus"/>
-- <DataIn Name="BreakableDamageMultiplier" Type="Core|float" Default="0.0" Legacy="BreakableDamageBonus"/>
-- <DataIn Name="VehicleDamageMultiplier" Type="Core|float" Default="0.0" Legacy="VehicleDamageBonus"/>
--
-- <ControlOut Name="Enabled"/>
-- <ControlOut Name="Disabled"/>
-- <ControlOut Name="GotDamage">
-- <outParam Name = "Damage"/>
-- </ControlOut>
-- <ControlOut Name="ThresholdReached" Delayed="true"/>
--
-- <DataOut Name="Damage" Type="Core|float"/>
-- DOMINO REFLECTION BOX END
VehicleDamageMonitor = { }
function VehicleDamageMonitor:Create(cbox)
-- left empty on purpose
end
function VehicleDamageMonitor:Init(cbox)
self.Vehicle = nil
self.DamageThreshold = -1
self.StaticDamageMultiplier = 0.0
self.BreakableDamageMultiplier = 0.0
self.VehicleDamageMultiplier = 0.0
self.missionId = cbox:GetParentMissionId()
end
function VehicleDamageMonitor:ShutDown()
self._type.UnregisterCallback(self)
end
function VehicleDamageMonitor:Enable()
if(self.Vehicle == nil) then return end
instance = CScriptCallbackSystem_GetInstance()
if( self.callidThresholdReached == nil) then
self.callidThresholdReached = instance:RegisterMissionEventCallback(self.Vehicle, self, "OnThresholdReached", "VehicleDamageThresholdReached", self.missionId)
end
ToggleVehicleDamageMonitor(self.Vehicle, 1, self.DamageThreshold, self.StaticDamageMultiplier, self.BreakableDamageMultiplier, self.VehicleDamageMultiplier)
self:Enabled()
end
function VehicleDamageMonitor:Disable()
if(self.Vehicle == nil) then return end
ToggleVehicleDamageMonitor(self.Vehicle, 0, self.DamageThreshold , 0.0, 0.0, 0.0)
self._type.UnregisterCallback(self)
self:Disabled()
end
function VehicleDamageMonitor:GetDamage()
if(self.Vehicle == nil) then return end
self.Damage = GetVehicleDamage(self.Vehicle)
self:GotDamage()
end
function VehicleDamageMonitor:UnregisterCallback()
if(self.Vehicle == nil) then return end
instance = CScriptCallbackSystem_GetInstance()
if( self.callidThresholdReached ~= nil) then
instance:RemoveCallback(self.Vehicle, self.callidThresholdReached)
self.callidThresholdReached = nil
end
end
function VehicleDamageMonitor:OnThresholdReached()
self:ThresholdReached()
end
export = VehicleDamageMonitor
VehicleDamageMonitor = nil