As seen in the 1.3 update, subsystems can embed arbitrary logic and react to various events affecting units, actions and individual parts. There are 3 function interfaces involved.
Used to execute arbitrary logic based on a subsystem during general unit events such as crashes, damage etc. Signature void OnPartEventGeneral (EquipmentEntity part, DataContainerSubsystem subsystemBlueprint, string context)
No general description available
string argument
(nullable)!SubsystemFunctionLog
argument: ''
No general description available
List<ICombatFunctionTargeted> functions
(nullable)!SubsystemFunctionModifyOwner
functions: []
Used to execute arbitrary logic based on a subsystem during unit-to-unit interactions such as projectile hits. Signature void OnPartEventTargeted (EquipmentEntity part, DataContainerSubsystem subsystemBlueprint, string context, Vector3 position, Vector3 direction, Vector3 targetPosition, CombatEntity targetUnitCombat, CombatEntity projectile)
No general description available
string argument
(nullable)!SubsystemFunctionLog
argument: ''
No general description available
List<ICombatFunctionTargeted> functions
(nullable)!SubsystemFunctionModifyOwner
functions: []
No general description available
List<ICombatFunctionTargeted> functions
(nullable)!SubsystemFunctionModifyTarget
functions: []
No general description available
DataBlockScenarioSubcheckUnit unitCheck
(nullable)SubsystemRetargetFilterRange range
(nullable)SubsystemRetargetFilterCone cone
(nullable)!SubsystemRetargetProjectiles
unitCheck:
exportCountToMemory:
key: combat_sc_targets_present
exportEntitiesToBlackboard:
key: tgt
indexed: false
tags:
'': false
name:
nameInternal: ''
faction:
key: Phantoms
state:
unitActive:
present: false
unitMobile:
present: false
unitHidden:
present: false
unitWrecked:
present: false
unitDisabled:
present: false
pilotMissing:
present: false
pilotDead:
present: false
pilotConcussed:
present: false
pilotActive:
present: false
actionPlanned:
key: ''
actionCount:
i: 0
targetUnit:
nameInternal: ''
targetPosition:
position:
x: 0
y: 0
z: 0
radius: 0
targetVisibleModes:
- Simulating
targetVisibleStateValues:
'': false
locationOccupied:
present: false
locationOccupiedUnlinked:
locationSourceName: ''
locationSource: State
occupied:
present: false
distance:
check: Less
value: 0
relativeTransform:
origin:
type: None
name: ''
center: true
modifiersDirectional: false
modifiers: []
directionOriginRotation:
x: 0
y: 0
z: 0
directionDot:
check: Less
value: 0
directionDotFlat:
check: Less
value: 0
directionAngle:
check: Less
value: 0
distance:
socketStatSource: ''
range:
x: 0
y: 0
blueprints:
'': false
classes:
'': false
stats:
'':
check: Less
value: 0
statsNormalized:
'':
check: Less
value: 0
actionsInProgress:
'': false
functions: []
range:
socketStatSource: ''
range:
x: 0
y: 0
cone:
dotMin: 0
Used to execute arbitrary logic based on a subsystem when a certain action event happens to a parent part. Signature void OnPartEventAction (EquipmentEntity part, DataContainerSubsystem subsystemBlueprint, string context, ActionEntity action)
No general description available
string argument
(nullable)!SubsystemFunctionLog
argument: ''
No general description available
List<ICombatFunctionTargeted> functions
(nullable)!SubsystemFunctionModifyOwner
functions: []
No general description available
List<ICombatFunctionTargeted> functions
(nullable)!SubsystemFunctionModifyTarget
functions: []
No general description available
string key
(nullable)
DataMultiLinkerUnitStatus
database keystring durationFullOverrideStat
(nullable)
DataMultiLinkerUnitStats
database keystring updateCountOverrideStat
(nullable)
DataMultiLinkerUnitStats
database key!SubsystemStatusAddWithAction
key: ''
durationFullOverrideStat: ''
updateCountOverrideStat: ''