rott/kf_sources/ScrnWeaponPack/Classes/MedicPistolAttachment.uc
2026-07-14 20:27:09 +07:00

122 lines
3.7 KiB
Ucode

class MedicPistolAttachment extends ScrnLaserWeaponAttachment;
var Actor TacShine;
var Effects TacShineCorona;
var bool bBeamEnabled;
replication
{
reliable if ( Role==ROLE_Authority )
bBeamEnabled;
}
// Prevents tracers from spawning if player is using the flashlight function of the 9mm
simulated event ThirdPersonEffects()
{
if( FiringMode==1 )
return;
Super.ThirdPersonEffects();
}
simulated function Destroyed()
{
if ( TacShineCorona != None )
TacShineCorona.Destroy();
if ( TacShine != None )
TacShine.Destroy();
Super.Destroyed();
}
simulated function UpdateTacBeam( float Dist )
{
local vector Sc;
if( !bBeamEnabled )
{
if (TacShine == none )
{
TacShine = Spawn(Class'MedicPistol'.Default.TacShineClass,Owner,,,);
AttachToBone(TacShine, LaserAttachmentBone);
TacShine.RemoteRole = ROLE_None;
}
else TacShine.bHidden = False;
if (TacShineCorona == none )
{
TacShineCorona = Spawn(class 'KFTacLightCorona',Owner,,,);
AttachToBone(TacShineCorona,LaserAttachmentBone);
TacShineCorona.RemoteRole = ROLE_None;
}
TacShineCorona.bHidden = False;
bBeamEnabled = True;
}
Sc = TacShine.DrawScale3D;
Sc.Y = FClamp(Dist/90.f,0.02,1.f);
if( TacShine.DrawScale3D!=Sc )
TacShine.SetDrawScale3D(Sc);
}
simulated function TacBeamGone()
{
if( bBeamEnabled )
{
if (TacShine!=none )
TacShine.bHidden = True;
if (TacShineCorona!=none )
TacShineCorona.bHidden = True;
bBeamEnabled = False;
}
}
defaultproperties
{
LaserAttachmentBone="FlashLight"
mMuzFlashClass=Class'ROEffects.MuzzleFlash3rdPistol'
mTracerClass=Class'KFMod.KFNewTracer'
mShellCaseEmitterClass=Class'KFMod.KFShellSpewer'
MovementAnims(0)="JogF_Single9mm"
MovementAnims(1)="JogB_Single9mm"
MovementAnims(2)="JogL_Single9mm"
MovementAnims(3)="JogR_Single9mm"
TurnLeftAnim="TurnL_Single9mm"
TurnRightAnim="TurnR_Single9mm"
CrouchAnims(0)="CHwalkF_Single9mm"
CrouchAnims(1)="CHwalkB_Single9mm"
CrouchAnims(2)="CHwalkL_Single9mm"
CrouchAnims(3)="CHwalkR_Single9mm"
CrouchTurnRightAnim="CH_TurnR_Single9mm"
CrouchTurnLeftAnim="CH_TurnL_Single9mm"
IdleCrouchAnim="CHIdle_Single9mm"
IdleWeaponAnim="Idle_Single9mm"
IdleRestAnim="Idle_Single9mm"
IdleChatAnim="Idle_Single9mm"
IdleHeavyAnim="Idle_Single9mm"
IdleRifleAnim="Idle_Single9mm"
FireAnims(0)="Fire_Single9mm"
FireAnims(1)="Fire_Single9mm"
FireAnims(2)="Fire_Single9mm"
FireAnims(3)="Fire_Single9mm"
FireAltAnims(0)="Fire_Single9mm"
FireAltAnims(1)="Fire_Single9mm"
FireAltAnims(2)="Fire_Single9mm"
FireAltAnims(3)="Fire_Single9mm"
FireCrouchAnims(0)="CHFire_Single9mm"
FireCrouchAnims(1)="CHFire_Single9mm"
FireCrouchAnims(2)="CHFire_Single9mm"
FireCrouchAnims(3)="CHFire_Single9mm"
FireCrouchAltAnims(0)="CHFire_Single9mm"
FireCrouchAltAnims(1)="CHFire_Single9mm"
FireCrouchAltAnims(2)="CHFire_Single9mm"
FireCrouchAltAnims(3)="CHFire_Single9mm"
HitAnims(0)="HitF_Single9mm"
HitAnims(1)="HitB_Single9mm"
HitAnims(2)="HitL_Single9mm"
HitAnims(3)="HitR_Single9mm"
PostFireBlendStandAnim="Blend_Single9mm"
PostFireBlendCrouchAnim="CHBlend_Single9mm"
MeshRef="ScrnWeaponPack_A.MedicPistol_3rd"
SplashEffect=Class'ROEffects.BulletSplashEmitter'
LightType=LT_Pulse
LightRadius=0.000000
CullDistance=5000.000000
}