class SchlonzMinigunAttachment extends MinigunAttachment; simulated event ThirdPersonEffects() { local rotator r; local class muzClass; if ( (Level.NetMode == NM_DedicatedServer) || (Instigator == None) || ((Level.TimeSeconds - LastRenderTime > 0.2) && (PlayerController(Instigator.Controller) == None)) ) return; WeaponLight(); if ( FlashCount > 0 ) { if (FiringMode == 0) { muzClass = mMuzFlashClass; mTracerFreq = 0.33f; mRollInc = 65536.f*3.f; } else { muzClass = mMuzFlashClass; mTracerFreq = 0.11f; mRollInc = 65536.f; } UpdateRollTime(true); mTracerLoc = GetTracerStart(); mHitRot = rotator(mHitLocation - Instigator.Location); mTracerUpdateTime = Level.TimeSeconds; mbGotHit = true; UpdateTracer(); if ( OldSpawnHitCount != SpawnHitCount ) { OldSpawnHitCount = SpawnHitCount; GetHitInfo(); Spawn(class'HitEffect'.static.GetHitEffect(mHitActor, mHitLocation, mHitNormal),,, mHitLocation, Rotator(mHitNormal)); } if (mMuzFlash3rd == None) { mMuzFlash3rd = Spawn(mMuzFlashClass); AttachToBone(mMuzFlash3rd, 'tip'); } if (mMuzFlash3rd != None) { mMuzFlash3rd.Trigger(self, None); r.Roll = Rand(65536); SetBoneRotation('Bone Flash', r, 0, 1.f); } if ( (mShellCaseEmitter == None) && (Level.DetailMode != DM_Low) ) { mShellCaseEmitter = Spawn(mShellCaseEmitterClass); if ( mShellCaseEmitter != None ) AttachToBone(mShellCaseEmitter, 'shell'); } if (mShellCaseEmitter != None) mShellCaseEmitter.mStartParticles++; } else { GotoState(''); } if (Level.NetMode != NM_DedicatedServer) { if ( xPawn(Instigator) == None ) return; if (FlashCount == 0) { xPawn(Instigator).StopFiring(); } else if (FiringMode == 0) { xPawn(Instigator).StartFiring(bHeavy, bRapidFire); } else { xPawn(Instigator).StartFiring(bHeavy, bAltRapidFire); } } } defaultproperties { }