//============================================================================= // KFGoreJointInfo //============================================================================= // Describes gore behavior for the specified hit bone. // NOTE: A lot of struct properties are repeated for the sake of future extensibility. //============================================================================= // Killing Floor 2 // Copyright (C) 2015 Tripwire Interactive LLC // - Sakib Saikia 5/28/2014 //============================================================================= class KFGoreJointInfo extends Object hidecategories(Object) editinlinenew; /** Settings to map each dismembered or gibbed bone to its blood jet effect NOTE: Struct propertis are identical to the BloodTrailSettings struct but is deliberately duplicated so that it can be extensible if future needs arise. */ struct BloodJetSettings { /** Whether this attaches to a specific socket. Otherwise, it will attach to the parent bone of the dismembered bone */ var() bool bAttachToSocket; /** Socket name if bAttachToSocket is TRUE */ var() name SocketName; /** The particle system to use */ var() ParticleSystem ParticleSystemTemplate; /** If specified, constrain the template the specific damage groups only */ var() array ConstrainToDamageGroups; }; /** Settings related to blood trails for this bone NOTE: Struct properties are identical to the BloodJetSettings struct but is deliberately duplicated so that it can be extensible if future needs arise. */ struct BloodTrailSettings { /** Whether this attaches to a specific socket. Otherwise, it will attach to the dismembered bone */ var() bool bAttachToSocket; /** Socket name if bAttachToSocket is TRUE */ var() name SocketName; /** The particle system to use */ var() ParticleSystem ParticleSystemTemplate; /** If specified, constrain the template the specific damage groups only */ var() array ConstrainToDamageGroups; }; /** Settings for a single partial gore bone */ struct PartialBreakBone { /** Name of the bone to be shrunk */ var() name BoneName; /** Blood jet to attach to the parent of the partial break bone */ var() editinline array BloodJets; /** Name of the blood parameter to activate when the bone is dismembered or gibbed */ var() array BloodMICParamName; /** Particle effect to be spawned for this partial break. Note: This is different from the blood jet */ var() ParticleSystem ParticleSystemTemplate; }; /** Settings related to bone shrink gore (partial gore) */ struct PartialBreakSettings { /** List of child bones that can be shrunk when the bone is hit. If the array contains more than 1 bone, the bone that is closest to the HitBone will be selected */ var() editinline array PartialBreakBones; /** If specified, constrain partial break to the specific damage groups only. Otherwise, all damage types can cause this partial break. */ var() array ConstrainToDamageGroups; /** Additional DamageGroups that can cause this break only on the killing blow */ var() array KillingBlowDamageGroups; }; /** Settings for a single explosion break bone */ struct ExplosionBreakBone { /** Name of the bone to be dismembered */ var() name BoneName; /** Blood jet to attach to the parent of the dismembered bone */ var() editinline array BloodJets; /** Blood trails to attach to the dismembered bone */ var() array BloodTrails; /** Name of the blood parameter to activate when the bone is gibbed */ var() array BloodMICParamName; }; /** Settings related to hit explosion gore NOTE: Struct properties are identical to the DependentBreakSettings struct but is deliberately duplicated so that it can be extensible if future needs arise. */ struct ExplosionBreakSettings { /** List of constraints that will be broken on an explosion. ALL of the break bones will be dismembered */ var() array BreakBones; /** Particle effect to be spawned. The effect will be spawned at the location of the hit bone that triggered this explosion */ var() ParticleSystem ParticleSystemTemplate; /** If specified, constrain explosion to the specific damage groups only. Otherwise, all damage types can cause this explosion. */ var() array ConstrainToDamageGroups; }; /** Settings for a single dependent gore bone */ struct DependentBreakBone { /** Name of the bone to be dismembered */ var() name BoneName; /** Blood jet to attach to the parent of the dismembered bone */ var() editinline array BloodJets; /** Blood trails to attach to the dismembered bone */ var() array BloodTrails; /** Name of the blood parameter to activate when the bone is dismembered or gibbed */ var() array BloodMICParamName; /** Particle effect to be spawned specifically for this dependent break */ var() ParticleSystem ParticleSystemTemplate; }; /** List of joints that are broken when the bone is dismembered NOTE: Struct properties are identical to the ExplosionBreakSettings struct but is deliberately duplicated so that it can be extensible if future needs arise. */ struct DependentBreakSettings { /** List of bones that need to get broken due to dependency */ var() editinline array DependentBones; /** If specified, constrain dependant breaks to the specific damage groups only */ var() array ConstrainToDamageGroups; }; /** Special effects to be played when a joint is dismembered */ struct DismembermentEffect { /** Particle effect to be spawned */ var() ParticleSystem ParticleSystemTemplate; /** If specified, constrain effect to the specific damage groups only */ var() array ConstrainToDamageGroups; }; /** Name of the bone that was hit (as per the hit detection system). You only set up the bones that correspond to a hit zone in a physics asset. ALL the hit zone bones must be set up here even if they don't dismember. */ var() name HitBoneName; /** If TRUE, the joint cannot be dismembered. This applies to gibbing due to an explosion as well. */ var(PrimaryDismemberment) bool bNonBreakableJoint; /** Use to specify bone shrinking gore */ var(AuxiliaryDismemberment) array BoneShrinkGore; /** Use to specify explosion effects for characters (such as the bloat) that explode on death even when hit by a non-explosive weapon */ var(AuxiliaryDismemberment) array HitExplosionGore; /** Use to specify joints that have dependencies that need to be respected when breaking the mesh */ var(AuxiliaryDismemberment) array DependentBreakGore; /** Use to specify blood jet effects for this bone. Blood jets are attached to the parent of the dismembered bone or a specified socket thereof. */ var(PrimaryDismemberment) array BloodJets; /** Use to specify blood trail effects for this bone. Blood trails are attached to the dismembered bone or a specified socket thereof. */ var(PrimaryDismemberment) array BloodTrails; /** Name of the blood parameter(s) to activate when the bone is dismembered or gibbed. This is used to add a blood overlay to the dismembered mesh. */ var(PrimaryDismemberment) array BloodMICParamName; /** Particle effect settings when the bone is dismembered. The effect is played at the location of the dismembered bone */ var(PrimaryDismemberment) array DismembermentEffects;