//============================================================================= // KFSprayActor_HRG_Vampire //============================================================================= // Base class for spray actor that sucks enemies blood //============================================================================= // Killing Floor 2 // Copyright (C) 2019 Tripwire Interactive LLC //============================================================================= class KFSprayActor_HRG_Vampire extends KFSprayActor hidecategories(Object, Movement, Display, Attachment, Collision, Physics, Advanced, Debug, Mobile) placeable; /** Transient PSCs to workaround issue with setting the BonePSC in an archetype */ var transient array BoneChainComponents; var transient array BoneChainComponents_1stP; /** Firebug Perk can modify the flame length, we need an alternative anim for that */ var(SprayMesh) AnimSet AltSprayAnimSet; var(SuckerConfig) int MaxNumberOfZedsZapped; var(SuckerConfig) int MaxDistanceToBeZapped; var(SuckerConfig) float ZapInterval; var(SuckerConfig) int ChainDamage; var KFWeap_HRG_Vampire OwnerWeapon; /*************************************** INHERITED FROM SPRAY AND NOT MODIFIED ***************************************/ event PreBeginPlay() { super.PreBeginPlay(); SetBoneChainComponents(); } /** * Set (or create) PSC's for the BoneChain. Use this when creating an archetype template spray * effect to workaround an issue where assigning a transient default BoneChain PSC doesn't work. */ simulated function SetBoneChainComponents() { local int Idx; for (Idx = 0; Idx < BoneChain.length; ++Idx) { if ( Idx < BoneChainComponents.Length ) { BoneChain[Idx].BonePSC0 = BoneChainComponents[Idx]; } if ( Idx < BoneChainComponents_1stP.Length ) { BoneChain[Idx].BonePSC1 = BoneChainComponents_1stP[Idx]; } } } simulated function BeginSpray() { local KFPerk InstigatorPerk; if( bDeleteMe ) { return; } super.BeginSpray(); if( OwningKFPawn != none ) { InstigatorPerk = OwningKFPawn.GetPerk(); if( InstigatorPerk != none ) { SplashDamage = default.SplashDamage; } //SetSprayLength(); } } /*************************************** END INHERITED FROM SPRAY AND NOT MODIFIED ***************************************/ /** * Overridden to handle the rotation sound pitching for the flamethrower sound */ simulated event Tick(float DeltaTime) { super.Tick(DeltaTime); // Set the rotation speed for the flamethrower sound if( !bDetached && OwningKFPawn != none && WorldInfo.NetMode != NM_DedicatedServer ) { OwningKFPawn.SetWeaponComponentRTPCValue( "FlamethrowerRotation", RotationSpeed); } } simulated function CleanupEndFire() { super.CleanupEndFire(); SprayMeshExitCollision(); } simulated event SprayMeshHit(Actor _TouchActor) { local KFPawn_Monster TouchActor; //if (Role == ROLE_Authority) //{ //`Warn("TOUCHED IN: "$_TouchActor.Location$""); //if the sprayed actor is a monster, then we start zapping enemies if(_TouchActor.IsA('KFPawn_Monster')) { TouchActor = KFPawn_Monster(_TouchActor); if(OwnerWeapon != none && TouchActor != OwnerWeapon.oZedCurrentlyBeingSprayed) { OwnerWeapon.SetCurrentSprayedZed(TouchActor); } } else { SprayMeshExitCollision(); } //} /*if (!CheckRecentlyZapped(_TouchActor)) { NewActorInfo.HitActor = _TouchActor; NewActorInfo.HitTime = WorldInfo.TimeSeconds; vRecentlyZappedActors.AddItem(NewActorInfo); }*/ super.SprayMeshHit(_TouchActor); } simulated event SprayMeshExitCollision() { if (OwnerWeapon == none) { return; } OwnerWeapon.SetCurrentSprayedZed(none); } /** * @brief Changes the flame's length if the Firebug's Range skill is selected * * @param InstigatorPerk Instigator's current perk */ /*simulated function SetSprayLength() { local AnimSet TempAnimSet; local KFPlayerReplicationInfo OwningPawnPRI; if ( default.AltSprayAnimSet == None ) { return; // only once length available } // Firebug range skill can affect the flame weapons range OwningPawnPRI = KFPlayerReplicationInfo(OwningKFPawn.PlayerReplicationInfo); if( OwningPawnPRI != none ) { TempAnimSet = OwningPawnPRI.bExtraFireRange ? default.AltSprayAnimSet : default.SprayAnimSet; } // Don't set the anim set to nothing if the archetype is screwed up // Don't set the anim set and tree if they do not need to be changed if( TempAnimSet == none || TempAnimSet == SkeletalSprayMesh.AnimSets[0] ) { return; } SkeletalSprayMesh.AnimSets[0] = TempAnimSet; SkeletalSprayMesh.UpdateAnimations(); SetupFX(); }*/ DefaultProperties { Physics=PHYS_Interpolating TickGroup=TG_PostAsyncWork bStatic=false bCollideActors=TRUE bBlockActors=false bWorldGeometry=false // This must not be bCollideWorld or it will get pushed around in FarMoveActor bCollideWorld=false bProjTarget=false bIgnoreEncroachers=FALSE bNoEncroachCheck=TRUE RemoteRole=ROLE_None GravityScaleRange=(X=0.f,Y=-15.f) GravityScaleInTime=0.5f MomentumScale=0.15f MyDamageType=class'KFDT_EMP' // --------------------------------------------- // Splash damage SplashGlancingDotLimit=-0.9f SplashRotInterpSpeed=8.f SplashLocInterpSpeed=40.f bDoCollideComplex=TRUE SprayDamageScaleDistRange=(X=300,Y=300) SprayDamage=(X=10,Y=10) SplashDamageRadius=300.f SplashDamage=10 SplashDamageFalloffExponent=1.f // --------------------------------------------- // Per-bone Fire FX PerBoneSprayFXGlobalScale=1.f bDoPerBoneSprayFX=TRUE // --------------------------------------------- // Material params MaterialHeatRampTime=0.65f MaterialHeatRange=(X=0.f,Y=0.8f) MaterialFadeOutTime=0.2f MaterialCurrentFadeVal=1.f MatFadePow=2.f // --------------------------------------------- // Content Begin Object Class=KFSkeletalMeshComponent Name=FlameCore0 CollideActors=true BlockActors=false BlockZeroExtent=true BlockNonZeroExtent=true bUpdateSkelWhenNotRendered=TRUE bIgnoreControllersWhenNotRendered=FALSE bOverrideAttachmentOwnerVisibility=TRUE CastShadow=FALSE bAcceptsStaticDecals=FALSE bAcceptsDynamicDecals=FALSE Rotation=(Roll=-16384) SkeletalMesh=SkeletalMesh'FX_Flamethrower_MESH.WEP_Flamethrower_Flame_A' AnimTreeTemplate=AnimTree'FX_Flamethrower_ANIM.WEP_Flamethrower_Flame_AT' AnimSets(0)=AnimSet'FX_Flamethrower_ANIM.WEP_Flamethrower_Flame_Anim' End Object SkeletalSprayMesh=FlameCore0 CollisionComponent=FlameCore0 Components.Add(FlameCore0) SkelMesh=SkeletalMesh'FX_Flamethrower_MESH.WEP_Flamethrower_Flame_A' SprayAnimSet=AnimSet'FX_Flamethrower_ANIM.WEP_Flamethrower_Flame_Anim' SprayAnimTreeTemplate=AnimTree'FX_Flamethrower_ANIM.WEP_Flamethrower_Flame_AT' AltSprayAnimSet=AnimSet'FX_Flamethrower_ANIM.Wep_Caulk_Flame_Anim' // bLeaveStickyFire=FALSE // StickyFireMinTimeBetweenSpawns=0.25f // StickyFireOwnerSafeRadius=64 // StickyFireInitialDelay=0.5f // StickyFireTestLocInterpSpeed=5.f // StickyFireTestLocThreshold=64.f ImpactEffects=KFImpactEffectInfo'WEP_Flamethrower_ARCH.Flame_Impacts' SprayEndEffect=ParticleSystem'WEP_Flamethrower_EMIT.FX_End_muzzleflash_01' SprayStartEffect=ParticleSystem'WEP_Flamethrower_EMIT.FX_Start_muzzleflash' SplashGlancingEffect=ParticleSystem'WEP_Flamethrower_EMIT.FX_flame_deflect_01' Begin Object Class=KFParticleSystemComponent Name=SplashGlancingPSC0 bAutoActivate=FALSE TranslucencySortPriority=1 SecondsBeforeInactive=0 End Object SplashGlancingPSC=SplashGlancingPSC0 Components.Add(SplashGlancingPSC0) SplashDirectEffect=ParticleSystem'WEP_Flamethrower_EMIT.FX_Flame_impact_01' Begin Object Class=KFParticleSystemComponent Name=SplashDirectPSC0 bAutoActivate=FALSE TranslucencySortPriority=1 SecondsBeforeInactive=0 End Object SplashDirectPSC=SplashDirectPSC0 Components.Add(SplashDirectPSC0) SplashPawnEffect=ParticleSystem'WEP_Flamethrower_EMIT.FX_Flame_impact_player_01' Begin Object Class=KFParticleSystemComponent Name=SplashPawnPSC0 bAutoActivate=FALSE TranslucencySortPriority=1 SecondsBeforeInactive=0 End Object SplashPawnPSC=SplashPawnPSC0 Components.Add(SplashPawnPSC0) Begin Object Class=KFParticleSystemComponent Name=SplashMaterialBasedPSC0 bAutoActivate=FALSE Template=None // filled in by the code based on what was hit TranslucencySortPriority=1 SecondsBeforeInactive=0 End Object SplashMaterialBasedPSC=SplashMaterialBasedPSC0 Components.Add(SplashMaterialBasedPSC0) // per-bone fire fx LastBoneChainIndexThatCanSpawnSplashEffects=11 // bone01 // 3rd person Begin Object Class=KFParticleSystemComponent Name=Bone01_PSC0 bOwnerNoSee=TRUE bAutoActivate=FALSE Rotation=(Yaw=32768) TranslucencySortPriority=1 SecondsBeforeInactive=0 End Object // first person Begin Object Class=KFParticleSystemComponent Name=Bone01_PSC1 bOnlyOwnerSee=TRUE bAutoActivate=FALSE Rotation=(Yaw=32768) TranslucencySortPriority=1 SecondsBeforeInactive=0 End Object // bone02 // 3rd person Begin Object Class=KFParticleSystemComponent Name=Bone02_PSC0 bOwnerNoSee=TRUE bAutoActivate=FALSE Rotation=(Yaw=32768) TranslucencySortPriority=1 SecondsBeforeInactive=0 End Object // first person Begin Object Class=KFParticleSystemComponent Name=Bone02_PSC1 bOnlyOwnerSee=TRUE bAutoActivate=FALSE Rotation=(Yaw=32768) TranslucencySortPriority=1 SecondsBeforeInactive=0 End Object // bone03 // 3rd person Begin Object Class=KFParticleSystemComponent Name=Bone03_PSC0 bOwnerNoSee=TRUE bAutoActivate=FALSE Rotation=(Yaw=32768) TranslucencySortPriority=1 SecondsBeforeInactive=0 End Object // first person Begin Object Class=KFParticleSystemComponent Name=Bone03_PSC1 bOnlyOwnerSee=TRUE bAutoActivate=FALSE Rotation=(Yaw=32768) TranslucencySortPriority=1 SecondsBeforeInactive=0 End Object // bone04 // 3rd person Begin Object Class=KFParticleSystemComponent Name=Bone04_PSC0 bOwnerNoSee=TRUE bAutoActivate=FALSE TranslucencySortPriority=1 SecondsBeforeInactive=0 End Object // first person Begin Object Class=KFParticleSystemComponent Name=Bone04_PSC1 bOnlyOwnerSee=TRUE bAutoActivate=FALSE TranslucencySortPriority=1 SecondsBeforeInactive=0 End Object // bone05 Begin Object Class=KFParticleSystemComponent Name=Bone05_PSC0 bOwnerNoSee=TRUE bAutoActivate=FALSE TranslucencySortPriority=1 SecondsBeforeInactive=0 End Object // first person Begin Object Class=KFParticleSystemComponent Name=Bone05_PSC1 bOnlyOwnerSee=TRUE bAutoActivate=FALSE TranslucencySortPriority=1 SecondsBeforeInactive=0 End Object // bone06 // 3rd person Begin Object Class=KFParticleSystemComponent Name=Bone06_PSC0 bOwnerNoSee=TRUE bAutoActivate=FALSE TranslucencySortPriority=1 SecondsBeforeInactive=0 End Object // first person Begin Object Class=KFParticleSystemComponent Name=Bone06_PSC1 bOnlyOwnerSee=TRUE bAutoActivate=FALSE TranslucencySortPriority=1 SecondsBeforeInactive=0 End Object // bone07 // 3rd person Begin Object Class=KFParticleSystemComponent Name=Bone07_PSC0 bOwnerNoSee=TRUE bAutoActivate=FALSE TranslucencySortPriority=1 SecondsBeforeInactive=0 End Object // first person Begin Object Class=KFParticleSystemComponent Name=Bone07_PSC1 bOnlyOwnerSee=TRUE bAutoActivate=FALSE TranslucencySortPriority=1 SecondsBeforeInactive=0 End Object // bone08 // 3rd person Begin Object Class=KFParticleSystemComponent Name=Bone08_PSC0 bOwnerNoSee=TRUE bAutoActivate=FALSE TranslucencySortPriority=1 SecondsBeforeInactive=0 End Object // first person Begin Object Class=KFParticleSystemComponent Name=Bone08_PSC1 bOnlyOwnerSee=TRUE bAutoActivate=FALSE TranslucencySortPriority=1 SecondsBeforeInactive=0 End Object // bone09 // 3rd person Begin Object Class=KFParticleSystemComponent Name=Bone09_PSC0 bOwnerNoSee=TRUE bAutoActivate=FALSE TranslucencySortPriority=1 SecondsBeforeInactive=0 End Object // first person Begin Object Class=KFParticleSystemComponent Name=Bone09_PSC1 bOnlyOwnerSee=TRUE bAutoActivate=FALSE TranslucencySortPriority=1 SecondsBeforeInactive=0 End Object // bone10 // 3rd person Begin Object Class=KFParticleSystemComponent Name=Bone10_PSC0 bOwnerNoSee=TRUE bAutoActivate=FALSE TranslucencySortPriority=1 SecondsBeforeInactive=0 End Object // first person Begin Object Class=KFParticleSystemComponent Name=Bone10_PSC1 bOnlyOwnerSee=TRUE bAutoActivate=FALSE TranslucencySortPriority=1 SecondsBeforeInactive=0 End Object // bone11 // 3rd person Begin Object Class=KFParticleSystemComponent Name=Bone11_PSC0 bOwnerNoSee=TRUE bAutoActivate=FALSE TranslucencySortPriority=1 SecondsBeforeInactive=0 End Object // first person Begin Object Class=KFParticleSystemComponent Name=Bone11_PSC1 bOnlyOwnerSee=TRUE bAutoActivate=FALSE TranslucencySortPriority=1 SecondsBeforeInactive=0 End Object // bone12 // 3rd person Begin Object Class=KFParticleSystemComponent Name=Bone12_PSC0 bOwnerNoSee=TRUE bAutoActivate=FALSE TranslucencySortPriority=1 SecondsBeforeInactive=0 End Object // first person Begin Object Class=KFParticleSystemComponent Name=Bone12_PSC1 bOnlyOwnerSee=TRUE bAutoActivate=FALSE TranslucencySortPriority=1 SecondsBeforeInactive=0 End Object // bone13 // 3rd person Begin Object Class=KFParticleSystemComponent Name=Bone13_PSC0 bOwnerNoSee=TRUE bAutoActivate=FALSE TranslucencySortPriority=1 SecondsBeforeInactive=0 End Object // first person Begin Object Class=KFParticleSystemComponent Name=Bone13_PSC1 bOnlyOwnerSee=TRUE bAutoActivate=FALSE TranslucencySortPriority=1 SecondsBeforeInactive=0 End Object BoneChain(0)={(BoneName=Bone01, MaterialParam=0.0, BoneScale=1.f, EffectScale=1.0f, ParticleSystemTemplate=none, ParticleSystemTemplate1P=ParticleSystem'WEP_Flamethrower_EMIT.Materials.FX_Flamethrower_Initial_spawn_01_1P', ParticleActivationDelay=0.0f, BonePSC0=Bone01_PSC0, BonePSC1=Bone01_PSC1)} BoneChain(1)={(BoneName=Bone02, MaterialParam=0.04, BoneScale=1.f, EffectScale=1.0f, ParticleSystemTemplate=none, ParticleSystemTemplate1P=ParticleSystem'WEP_Flamethrower_EMIT.Materials.FX_Flamethrower_Initial_spawn_01_1P', ParticleActivationDelay=0.0f, BonePSC0=Bone01_PSC0, BonePSC1=Bone01_PSC1)} BoneChain(2)={(BoneName=Bone03, MaterialParam=0.080000, BoneScale=1.f, EffectScale=0.250000, ParticleSystemTemplate=ParticleSystem'WEP_Flamethrower_EMIT.Materials.FX_Flamethrower_BSpawns_reverse_01_3P', ParticleSystemTemplate1P=ParticleSystem'WEP_Flamethrower_EMIT.Materials.FX_Flamethrower_BSpawns_reverse_01_1P', ParticleActivationDelay=0.0f, BonePSC0=Bone02_PSC0, BonePSC1=Bone02_PSC1)} BoneChain(3)={(BoneName=Bone04, MaterialParam=0.130000, BoneScale=1.f, EffectScale=0.250000, ParticleSystemTemplate=None, ParticleSystemTemplate1P=None, ParticleActivationDelay=0.0f, BonePSC0=Bone03_PSC0, BonePSC1=Bone03_PSC1)} BoneChain(4)={(BoneName=Bone05, MaterialParam=0.190000, BoneScale=1.f, EffectScale=0.500000, ParticleSystemTemplate=ParticleSystem'WEP_Flamethrower_EMIT.Materials.FX_Flamethrower_BSpawns_01_3P', ParticleSystemTemplate1P=ParticleSystem'WEP_Flamethrower_EMIT.Materials.FX_Flamethrower_BSpawns_01_1P', ParticleActivationDelay=0.0f, BonePSC0=Bone04_PSC0, BonePSC1=Bone04_PSC1)} BoneChain(5)={(BoneName=Bone06, MaterialParam=0.240000, BoneScale=1.f, EffectScale=0.500000, ParticleSystemTemplate=ParticleSystem'WEP_Flamethrower_EMIT.Materials.FX_Flamethrower_BSpawns_01_3P', ParticleSystemTemplate1P=ParticleSystem'WEP_Flamethrower_EMIT.Materials.FX_Flamethrower_BSpawns_01_1P', ParticleActivationDelay=0.0f, BonePSC0=Bone05_PSC0, BonePSC1=Bone05_PSC1)} BoneChain(6)={(BoneName=Bone07, MaterialParam=0.310000, BoneScale=1.f, EffectScale=1.800000, ParticleSystemTemplate=ParticleSystem'WEP_Flamethrower_EMIT.Materials.FX_Flamethrower_BSpawns_01_3P', ParticleSystemTemplate1P=ParticleSystem'WEP_Flamethrower_EMIT.Materials.FX_Flamethrower_BSpawns_01_1P', ParticleActivationDelay=0.0f, BonePSC0=Bone06_PSC0, BonePSC1=Bone06_PSC1)} BoneChain(7)={(BoneName=Bone08, MaterialParam=0.370000, BoneScale=1.f, EffectScale=0.500000, ParticleSystemTemplate=ParticleSystem'WEP_Flamethrower_EMIT.Materials.FX_Flamethrower_BSpawns_01_3P', ParticleSystemTemplate1P=ParticleSystem'WEP_Flamethrower_EMIT.Materials.FX_Flamethrower_BSpawns_01_1P', ParticleActivationDelay=0.0f, BonePSC0=Bone07_PSC0, BonePSC1=Bone07_PSC1)} BoneChain(8)={(BoneName=Bone09, MaterialParam=0.440000, BoneScale=1.f, EffectScale=1.000000, ParticleSystemTemplate=ParticleSystem'WEP_Flamethrower_EMIT.Materials.FX_Flamethrower_BSpawns_01_3P', ParticleSystemTemplate1P=ParticleSystem'WEP_Flamethrower_EMIT.Materials.FX_Flamethrower_BSpawns_01_1P', ParticleActivationDelay=0.0f, BonePSC0=Bone08_PSC0, BonePSC1=Bone08_PSC1)} BoneChain(9)={(BoneName=Bone10, MaterialParam=0.500000, BoneScale=1.f, EffectScale=1.000000, ParticleSystemTemplate=ParticleSystem'WEP_Flamethrower_EMIT.Materials.FX_Flamethrower_BSpawns_01_3P', ParticleSystemTemplate1P=ParticleSystem'WEP_Flamethrower_EMIT.Materials.FX_Flamethrower_BSpawns_01_1P', ParticleActivationDelay=0.0f, BonePSC0=Bone09_PSC0, BonePSC1=Bone09_PSC1)} BoneChain(10)={(BoneName=Bone11, MaterialParam=0.560000, BoneScale=1.f, EffectScale=1.000000, ParticleSystemTemplate=ParticleSystem'WEP_Flamethrower_EMIT.Materials.FX_Flamethrower_BSpawns_01_3P', ParticleSystemTemplate1P=ParticleSystem'WEP_Flamethrower_EMIT.Materials.FX_Flamethrower_BSpawns_01_1P', ParticleActivationDelay=0.0f, BonePSC0=Bone10_PSC0, BonePSC1=Bone10_PSC1)} BoneChain(11)={(BoneName=Bone12, MaterialParam=0.620000, BoneScale=1.f, EffectScale=1.000000, ParticleSystemTemplate=ParticleSystem'WEP_Flamethrower_EMIT.Materials.FX_Flamethrower_BSpawns_01_3P', ParticleSystemTemplate1P=ParticleSystem'WEP_Flamethrower_EMIT.Materials.FX_Flamethrower_BSpawns_01_1P', ParticleActivationDelay=0.0f, BonePSC0=Bone11_PSC0, BonePSC1=Bone11_PSC1)} BoneChain(12)={(BoneName=Bone13, MaterialParam=0.690000, BoneScale=1.f, EffectScale=1.000000, ParticleSystemTemplate=ParticleSystem'WEP_Flamethrower_EMIT.Materials.FX_Flamethrower_BSpawns_01_3P', ParticleSystemTemplate1P=ParticleSystem'WEP_Flamethrower_EMIT.Materials.FX_Flamethrower_BSpawns_01_1P', ParticleActivationDelay=0.0f, BonePSC0=Bone12_PSC0, BonePSC1=Bone12_PSC1)} BoneChain(13)={(BoneName=Bone14, MaterialParam=0.760000, BoneScale=1.f, EffectScale=1.000000, ParticleSystemTemplate=ParticleSystem'WEP_Flamethrower_EMIT.Materials.FX_Flamethrower_BSpawns_End_01_3P', ParticleSystemTemplate1P=ParticleSystem'WEP_Flamethrower_EMIT.Materials.FX_Flamethrower_BSpawns_01_1P', ParticleActivationDelay=0.0f, BonePSC0=Bone13_PSC0, BonePSC1=Bone13_PSC1)} BoneChain(14)={(BoneName=Bone15, MaterialParam=0.820000, BoneScale=0.f, EffectScale=1.000000, ParticleSystemTemplate=ParticleSystem'WEP_Flamethrower_EMIT.Materials.FX_Flamethrower_BSpawns_End_01_3P', ParticleSystemTemplate1P=ParticleSystem'WEP_Flamethrower_EMIT.Materials.FX_Flamethrower_BSpawns_01_1P', ParticleActivationDelay=0.0f)} BoneChainComponents={(Bone01_PSC0, Bone01_PSC0, Bone02_PSC0, Bone03_PSC0, Bone04_PSC0, Bone05_PSC0, Bone06_PSC0, Bone07_PSC0, Bone08_PSC0, Bone09_PSC0, Bone10_PSC0, Bone11_PSC0, Bone12_PSC0, Bone13_PSC0)} BoneChainComponents_1stP={(Bone01_PSC1, Bone01_PSC1, Bone02_PSC1, Bone03_PSC1, Bone04_PSC1, Bone05_PSC1, Bone06_PSC1, Bone07_PSC1, Bone08_PSC1, Bone09_PSC1, Bone10_PSC1, Bone11_PSC1, Bone12_PSC1, Bone13_PSC1)} // pointlight at far end of spray Begin Object Class=PointLightComponent Name=FlamePointLight2 LightColor=(R=245,G=190,B=140,A=255) Brightness=4.f Radius=500.f FalloffExponent=10.f CastShadows=False CastStaticShadows=FALSE CastDynamicShadows=TRUE bCastPerObjectShadows=false bEnabled=FALSE LightingChannels=(Indoor=TRUE,Outdoor=TRUE,bInitialized=TRUE) End Object // Muzzle Flash point light // want this light to illuminate characters only, so Marcus gets the glow Begin Object Class=PointLightComponent Name=FlamePointLight0 LightColor=(R=250,G=150,B=85,A=255) Brightness=6.0f FalloffExponent=10.f Radius=750.f CastShadows=False CastStaticShadows=FALSE CastDynamicShadows=TRUE bCastPerObjectShadows=false bEnabled=FALSE LightingChannels=(Indoor=TRUE,Outdoor=TRUE,bInitialized=TRUE) End Object SprayLights(0)=(Light=FlamePointLight0,BoneChainIndex=1,FlickerIntensity=5.f,FlickerInterpSpeed=15.f) SprayLights(1)=(Light=FlamePointLight2,BoneChainIndex=9,FlickerIntensity=5.f,FlickerInterpSpeed=15.f) // MaterialHeatRampTime=0.65f // MaterialHeatRange=(X=0.f,Y=0.8f) // MaterialFadeOutTime=0.2f // MaterialCurrentFadeVal=1.f // MatFadePow=2.f // Begin Object Class=AudioComponent Name=SplashMaterialBasedAC0 // // cue will be filled in from physicalmaterial data // SoundCue=None // bStopWhenOwnerDestroyed=TRUE // bUseOwnerLocation=FALSE // End Object // SplashMaterialBasedAC=SplashMaterialBasedAC0 // Splash audio Begin Object Class=AkComponent name=CurrentSplashAkSoundComponent bStopWhenOwnerDestroyed=true bForceOcclusionUpdateInterval=true OcclusionUpdateInterval=0.2; End Object CurrentSplashAKC=CurrentSplashAkSoundComponent Components.Add(CurrentSplashAkSoundComponent) SplashPawnAKEvent=AkEvent'WW_WEP_SA_Flamethrower.Play_WEP_SA_Flamethrower_Impact_Flesh' SplashDirectAKEvent=AkEvent'WW_WEP_SA_Flamethrower.Play_WEP_SA_Flamethrower_Impact_Default' SplashGlancingAKEvent=AkEvent'WW_WEP_SA_Flamethrower.Play_WEP_SA_Flamethrower_Impact_Default' SplashPawnStopAKEvent=AkEvent'WW_WEP_SA_Flamethrower.Stop_WEP_SA_Flamethrower_Impact_Flesh_Loop' SplashDirectStopAKEvent=AkEvent'WW_WEP_SA_Flamethrower.Stop_WEP_SA_Flamethrower_Impact_Default_Loop' SplashGlancingStopAKEvent=AkEvent'WW_WEP_SA_Flamethrower.Stop_WEP_SA_Flamethrower_Impact_Default_Loop' Begin Object Class=KFParticleSystemComponent Name=StartFirePSC0 bAutoActivate=TRUE TickGroup=TG_PostUpdateWork End Object SprayStartPSC=StartFirePSC0 SeedSprayVel=10000.f//5000.f SeedDecel=28000.f//13000.f SeedMaxAge=0.4f SeedMinChainLength=0.f SeedSimFreq=60.f SeedWarmupTime=0.25f VelocityScaleZ=0.3f//0.15f bUseExtentTracing=true SpraySocketName=MuzzleFlash //ImpactProjectileClass=class'KFProj_GroundFire' ImpactProjectileInterval=0.099 }