129 lines
4.5 KiB
Ucode
129 lines
4.5 KiB
Ucode
class NiceDualiesAttachment extends NiceAttachment;
|
|
var bool bIsOffHand, bMyFlashTurn;
|
|
var NiceDualiesAttachment brother;
|
|
var Mesh BrotherMesh;
|
|
replication{
|
|
reliable if(Role == ROLE_Authority)
|
|
brother;
|
|
}
|
|
simulated function DoFlashEmitter(){
|
|
if(bIsOffHand)
|
|
return;
|
|
if(bMyFlashTurn)
|
|
ActuallyFlash();
|
|
else if(brother != none)
|
|
brother.ActuallyFlash();
|
|
}
|
|
simulated function ActuallyFlash(){
|
|
super.DoFlashEmitter();
|
|
}
|
|
simulated event ThirdPersonEffects(){
|
|
local NicePlayerController PC;
|
|
if((Level.NetMode == NM_DedicatedServer) || (Instigator == none))
|
|
return;
|
|
PC = NicePlayerController(Level.GetLocalPlayerController());
|
|
if(FiringMode == 0){
|
|
if(OldSpawnHitCount != SpawnHitCount){
|
|
OldSpawnHitCount = SpawnHitCount;
|
|
GetHitInfo();
|
|
if(((Instigator != none) && (Instigator.Controller == PC)) || (VSize(PC.ViewTarget.Location - mHitLocation) < 4000)){
|
|
if(PC != Instigator.Controller){
|
|
if(mHitActor != none)
|
|
Spawn(class'ROBulletHitEffect',,, mHitLocation, Rotator(-mHitNormal));
|
|
CheckForSplash();
|
|
SpawnTracer();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if(FlashCount > 0){
|
|
if(KFPawn(Instigator) != none){
|
|
if(bMyFlashTurn)
|
|
KFPawn(Instigator).StartFiringX(false, bRapidFire);
|
|
else
|
|
KFPawn(Instigator).StartFiringX(true, bRapidFire);
|
|
}
|
|
if(bDoFiringEffects){
|
|
if((Level.TimeSeconds - LastRenderTime > 0.2) && (Instigator.Controller != PC))
|
|
return;
|
|
if(bSpawnLight)
|
|
WeaponLight();
|
|
DoFlashEmitter();
|
|
if(!bIsOffHand){
|
|
if(!bMyFlashTurn)
|
|
ThirdPersonShellEject();
|
|
else if(brother != none)
|
|
brother.ThirdPersonShellEject();
|
|
}
|
|
}
|
|
}
|
|
else{
|
|
GotoState('');
|
|
if(KFPawn(Instigator) != none)
|
|
KFPawn(Instigator).StopFiring();
|
|
}
|
|
}
|
|
simulated function vector GetTracerStart(){
|
|
local Pawn p;
|
|
p = Pawn(Owner);
|
|
if((p != none) && p.IsFirstPerson() && p.Weapon != none)
|
|
return p.Weapon.GetEffectStart();
|
|
if(mMuzFlash3rd != none && bMyFlashTurn)
|
|
return mMuzFlash3rd.Location;
|
|
else if(brother != none && brother.mMuzFlash3rd != none && !bMyFlashTurn)
|
|
return brother.mMuzFlash3rd.Location;
|
|
}
|
|
|
|
defaultproperties
|
|
{
|
|
bMyFlashTurn=True
|
|
BrotherMesh=SkeletalMesh'KF_Weapons3rd_Trip.Dual9mm_3rd'
|
|
mMuzFlashClass=Class'ROEffects.MuzzleFlash3rdPistol'
|
|
mTracerClass=Class'KFMod.KFNewTracer'
|
|
mShellCaseEmitterClass=Class'KFMod.KFShellSpewer'
|
|
MovementAnims(0)="JogF_Dual9mm"
|
|
MovementAnims(1)="JogB_Dual9mm"
|
|
MovementAnims(2)="JogL_Dual9mm"
|
|
MovementAnims(3)="JogR_Dual9mm"
|
|
TurnLeftAnim="TurnL_Dual9mm"
|
|
TurnRightAnim="TurnR_Dual9mm"
|
|
CrouchAnims(0)="CHwalkF_Dual9mm"
|
|
CrouchAnims(1)="CHwalkB_Dual9mm"
|
|
CrouchAnims(2)="CHwalkL_Dual9mm"
|
|
CrouchAnims(3)="CHwalkR_Dual9mm"
|
|
WalkAnims(0)="WalkF_Dual9mm"
|
|
WalkAnims(1)="WalkB_Dual9mm"
|
|
WalkAnims(2)="WalkL_Dual9mm"
|
|
WalkAnims(3)="WalkR_Dual9mm"
|
|
CrouchTurnRightAnim="CH_TurnR_Dual9mm"
|
|
CrouchTurnLeftAnim="CH_TurnL_Dual9mm"
|
|
IdleCrouchAnim="CHIdle_Dual9mm"
|
|
IdleWeaponAnim="Idle_Dual9mm"
|
|
IdleRestAnim="Idle_Dual9mm"
|
|
IdleChatAnim="Idle_Dual9mm"
|
|
IdleHeavyAnim="Idle_Dual9mm"
|
|
IdleRifleAnim="Idle_Dual9mm"
|
|
FireAnims(0)="DualiesAttackRight"
|
|
FireAnims(1)="DualiesAttackRight"
|
|
FireAnims(2)="DualiesAttackRight"
|
|
FireAnims(3)="DualiesAttackRight"
|
|
FireAltAnims(0)="DualiesAttackLeft"
|
|
FireAltAnims(1)="DualiesAttackLeft"
|
|
FireAltAnims(2)="DualiesAttackLeft"
|
|
FireAltAnims(3)="DualiesAttackLeft"
|
|
FireCrouchAnims(0)="CHDualiesAttackRight"
|
|
FireCrouchAnims(1)="CHDualiesAttackRight"
|
|
FireCrouchAnims(2)="CHDualiesAttackRight"
|
|
FireCrouchAnims(3)="CHDualiesAttackRight"
|
|
FireCrouchAltAnims(0)="CHDualiesAttackLeft"
|
|
FireCrouchAltAnims(1)="CHDualiesAttackLeft"
|
|
FireCrouchAltAnims(2)="CHDualiesAttackLeft"
|
|
FireCrouchAltAnims(3)="CHDualiesAttackLeft"
|
|
HitAnims(0)="HitF_Dual9mmm"
|
|
HitAnims(1)="HitB_Dual9mm"
|
|
HitAnims(2)="HitL_Dual9mm"
|
|
HitAnims(3)="HitR_Dual9mm"
|
|
PostFireBlendStandAnim="Blend_Dual9mm"
|
|
PostFireBlendCrouchAnim="CHBlend_Dual9mm"
|
|
}
|