//============================================================================= // KFWeap_Flame_CaulkBurn //============================================================================= // The "Incinerator" flamethrower //============================================================================= // Killing Floor 2 // Copyright (C) 2015 Tripwire Interactive LLC // Greg Felber //============================================================================= class KFWeap_Flame_CaulkBurn extends KFWeap_FlameBase; /** Effect for the pilot light. */ var() protected KFParticleSystemComponent PSC_PilotLight2; /** Socket to attach the pilot light to. */ var() name PilotLight2SocketName; simulated protected function TurnOnPilot() { local float OwnerMeshFOV; if (bPilotLightOn) return; OwnerMeshFOV = MySkelMesh.FOV; // Attach and start up the pilot light if( PSC_PilotLight2 != None ) { MySkelMesh.AttachComponentToSocket( PSC_PilotLight2, PilotLight2SocketName ); PSC_PilotLight2.ActivateSystem(); // Turn on the low flame, turn off the high flame PSC_PilotLight2.SetFloatParameter('Pilotlow', 1.0); PSC_PilotLight2.SetFloatParameter('Pilothigh', 0.0); PSC_PilotLight2.SetFOV(OwnerMeshFOV); } super.TurnOnPilot(); } simulated protected function TurnOffPilot() { Super.TurnOffPilot(); if( PSC_PilotLight2 != None ) { PSC_PilotLight2.DeActivateSystem(); } } /** * Adjust the FOV for the first person weapon and arms. */ simulated event SetFOV( float NewFOV ) { Super.SetFOV(NewFOV); // Set the light emitter to the same FOV as the weapon mesh if( MySkelMesh != none ) { if( PSC_PilotLight2 != None ) { PSC_PilotLight2.SetFOV(MySkelMesh.FOV); } } } defaultproperties { FlameSprayArchetype=SprayActor_Flame'WEP_CaulkBurn_ARCH.WEP_CaulkBurn_Flame' Begin Object Name=PilotLight0 Template=ParticleSystem'WEP_CaulkBurn_EMIT.FX_CaulkBurn_pilot_light_01' End Object PilotLightSocketName=FXPilot1 PilotLight2SocketName=FXPilot2 // Pilot lights Begin Object Class=PointLightComponent Name=PilotPointLight0 LightColor=(R=250,G=150,B=85,A=255) Brightness=0.125f FalloffExponent=4.f Radius=128.f CastShadows=False CastStaticShadows=FALSE CastDynamicShadows=TRUE bCastPerObjectShadows=false bEnabled=FALSE LightingChannels=(Indoor=TRUE,Outdoor=TRUE,bInitialized=TRUE) End Object Begin Object Class=PointLightComponent Name=PilotPointLight1 LightColor=(R=250,G=150,B=85,A=255) Brightness=0.125f FalloffExponent=4.f Radius=128.f CastShadows=False CastStaticShadows=FALSE CastDynamicShadows=TRUE bCastPerObjectShadows=false bEnabled=FALSE LightingChannels=(Indoor=TRUE,Outdoor=TRUE,bInitialized=TRUE) End Object PilotLights(0)=(Light=PilotPointLight0,FlickerIntensity=1.5f,FlickerInterpSpeed=0.5f,LightAttachBone=FXPilot1) PilotLights(1)=(Light=PilotPointLight1,FlickerIntensity=1.5f,FlickerInterpSpeed=0.5f,LightAttachBone=FXPilot2) Begin Object Class=KFParticleSystemComponent Name=PilotLight1 Template=ParticleSystem'WEP_CaulkBurn_EMIT.FX_CaulkBurn_pilot_light_01' DepthPriorityGroup=SDPG_Foreground bAutoActivate=TRUE TickGroup=TG_PostUpdateWork End Object PSC_PilotLight2=PilotLight1 // Shooting Animations FireSightedAnims[0]=Shoot FireLoopSightedAnim=ShootLoop // Advanced Looping (High RPM) Fire Effects FireLoopStartSightedAnim=ShootLoop_Start FireLoopEndSightedAnim=ShootLoop_End // FOV MeshIronSightFOV=75 PlayerIronSightFOV=80 // Depth of field DOF_FG_FocalRadius=150 DOF_FG_MaxNearBlurSize=2 // Content PackageKey="CaulkBurn" FirstPersonMeshName="WEP_1P_CaulkBurn_MESH.Wep_1stP_CaulkBurn_Rig" FirstPersonAnimSetNames(0)="WEP_1P_CaulkBurn_ANIM.Wep_1stP_CaulkBurn_Anim" PickupMeshName="WEP_3P_CaulkBurn_MESH.Wep_CaulkBurn_Pickup" AttachmentArchetypeName="WEP_CaulkBurn_ARCH.Wep_Caulkburn_B_3P" MuzzleFlashTemplateName="WEP_CaulkBurn_ARCH.Wep_CaulkBurn_MuzzleFlash" // Zooming/Position PlayerViewOffset=(X=4.0,Y=10,Z=-4) IronSightPosition=(X=-3,Y=7,Z=-2) // Ammo MagazineCapacity[0]=50 SpareAmmoCapacity[0]=500 InitialSpareMags[0]=5 AmmoPickupScale[0]=0.5 bCanBeReloaded=true bReloadFromMagazine=true // Recoil maxRecoilPitch=100 minRecoilPitch=75 maxRecoilYaw=75 minRecoilYaw=-75 RecoilRate=0.065 RecoilMaxYawLimit=500 RecoilMinYawLimit=65035 RecoilMaxPitchLimit=900 RecoilMinPitchLimit=65035 RecoilISMaxYawLimit=75 RecoilISMinYawLimit=65460 RecoilISMaxPitchLimit=375 RecoilISMinPitchLimit=65460 RecoilViewRotationScale=0.25 IronSightMeshFOVCompensationScale=1.5 HippedRecoilModifier=1.5 // Inventory InventorySize=5 GroupPriority=25 WeaponSelectTexture=Texture2D'WEP_UI_CaulkBurn_TEX.UI_WeaponSelect_CaulkNBurn' // DEFAULT_FIREMODE FireModeIconPaths(DEFAULT_FIREMODE)=Texture2D'ui_firemodes_tex.UI_FireModeSelect_Flamethrower' FiringStatesArray(DEFAULT_FIREMODE)=SprayingFire WeaponFireTypes(DEFAULT_FIREMODE)=EWFT_Custom FireInterval(DEFAULT_FIREMODE)=+0.07 // 850 RPM FireOffset=(X=30,Y=4.5,Z=-5) //MinFireDuration=0.25 MinAmmoConsumed=4 // ALT_FIREMODE FiringStatesArray(ALTFIRE_FIREMODE)=WeaponSingleFiring WeaponFireTypes(ALTFIRE_FIREMODE)=EWFT_None // BASH_FIREMODE InstantHitDamageTypes(BASH_FIREMODE)=class'KFDT_Bludgeon_CaulkBurn' InstantHitDamage(BASH_FIREMODE)=25 // Fire Effects WeaponFireSnd(DEFAULT_FIREMODE)=(DefaultCue=AkEvent'WW_WEP_SA_CaulkBurn.Play_SA_CaulkBurn_Fire_3P_Loop', FirstPersonCue=AkEvent'WW_WEP_SA_CaulkBurn.Play_SA_CaulkBurn_Fire_1P_Loop') WeaponFireLoopEndSnd(DEFAULT_FIREMODE)=(DefaultCue=AkEvent'WW_WEP_SA_CaulkBurn.Play_SA_CaulkBurn_Fire_3P_LoopEnd', FirstPersonCue=AkEvent'WW_WEP_SA_CaulkBurn.Play_SA_CaulkBurn_Fire_1P_LoopEnd') //@todo: add akevents when we have them WeaponDryFireSnd(DEFAULT_FIREMODE)=AkEvent'WW_WEP_SA_CaulkBurn.Play_SA_CaulkBurn_Handling_DryFire' WeaponDryFireSnd(ALTFIRE_FIREMODE)=AkEvent'WW_WEP_SA_CaulkBurn.Play_SA_CaulkBurn_Handling_DryFire' // Advanced (High RPM) Fire Effects bLoopingFireAnim(DEFAULT_FIREMODE)=true bLoopingFireSnd(DEFAULT_FIREMODE)=true SingleFireSoundIndex=FIREMODE_NONE // Attachments bHasIronSights=true bHasFlashlight=false // AI Warning bWarnAIWhenFiring=true AssociatedPerkClasses(0)=class'KFPerk_Firebug' WeaponFireWaveForm=ForceFeedbackWaveform'FX_ForceFeedback_ARCH.Gunfire.Weak_Recoil' // Weapon Upgrade stat boosts //WeaponUpgrades[1]=(IncrementDamage=1.1f,IncrementWeight=1) //WeaponUpgrades[2]=(IncrementDamage=1.3f,IncrementWeight=2) //WeaponUpgrades[3]=(IncrementDamage=1.4f,IncrementWeight=3) //WeaponUpgrades[4]=(IncrementDamage=1.5f,IncrementWeight=4) WeaponUpgrades[1]=(Stats=((Stat=EWUS_Damage0, Scale=1.1f), (Stat=EWUS_Weight, Add=1))) WeaponUpgrades[2]=(Stats=((Stat=EWUS_Damage0, Scale=1.3f), (Stat=EWUS_Weight, Add=2))) WeaponUpgrades[3]=(Stats=((Stat=EWUS_Damage0, Scale=1.4f), (Stat=EWUS_Weight, Add=3))) WeaponUpgrades[4]=(Stats=((Stat=EWUS_Damage0, Scale=1.5f), (Stat=EWUS_Weight, Add=4))) }