167 lines
7.7 KiB
Ucode
167 lines
7.7 KiB
Ucode
|
//=============================================================================
|
||
|
// 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<EditCondition=bAttachToSocket>;
|
||
|
/** The particle system to use */
|
||
|
var() ParticleSystem ParticleSystemTemplate;
|
||
|
/** If specified, constrain the template the specific damage groups only */
|
||
|
var() array<EGoreDamageGroup> 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<EditCondition=bAttachToSocket>;
|
||
|
/** The particle system to use */
|
||
|
var() ParticleSystem ParticleSystemTemplate;
|
||
|
/** If specified, constrain the template the specific damage groups only */
|
||
|
var() array<EGoreDamageGroup> 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<BloodJetSettings> BloodJets;
|
||
|
/** Name of the blood parameter to activate when the bone is dismembered or gibbed */
|
||
|
var() array<name> 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<PartialBreakBone> PartialBreakBones<DisplayName=Shrink Bones>;
|
||
|
/** If specified, constrain partial break to the specific damage groups only.
|
||
|
Otherwise, all damage types can cause this partial break. */
|
||
|
var() array<EGoreDamageGroup> ConstrainToDamageGroups;
|
||
|
/** Additional DamageGroups that can cause this break only on the killing blow */
|
||
|
var() array<EGoreDamageGroup> 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<BloodJetSettings> BloodJets;
|
||
|
/** Blood trails to attach to the dismembered bone */
|
||
|
var() array<BloodTrailSettings> BloodTrails;
|
||
|
/** Name of the blood parameter to activate when the bone is gibbed */
|
||
|
var() array<name> 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<ExplosionBreakBone> BreakBones<DisplayName=Break Bones>;
|
||
|
/** 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<EGoreDamageGroup> 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<BloodJetSettings> BloodJets;
|
||
|
/** Blood trails to attach to the dismembered bone */
|
||
|
var() array<BloodTrailSettings> BloodTrails;
|
||
|
/** Name of the blood parameter to activate when the bone is dismembered or gibbed */
|
||
|
var() array<name> 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<DependentBreakBone> DependentBones;
|
||
|
/** If specified, constrain dependant breaks to the specific damage groups only */
|
||
|
var() array<EGoreDamageGroup> 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<EGoreDamageGroup> 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<PartialBreakSettings> 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<ExplosionBreakSettings> HitExplosionGore;
|
||
|
/** Use to specify joints that have dependencies that need to be respected when breaking the mesh */
|
||
|
var(AuxiliaryDismemberment) array<DependentBreakSettings> 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<BloodJetSettings> 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<BloodTrailSettings> 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<name> BloodMICParamName;
|
||
|
/** Particle effect settings when the bone is dismembered.
|
||
|
The effect is played at the location of the dismembered bone */
|
||
|
var(PrimaryDismemberment) array<DismembermentEffect> DismembermentEffects;
|