class stub_LAWProj extends LAWProj; // removed SirenScream damage type check since 90% of the time they don't disentigrate anyway... // also prevents detonation from fire or other explosives function TakeDamage(int Damage, Pawn InstigatedBy, Vector Hitlocation, Vector Momentum, class damageType, optional int HitIndex) { if(!bDud && DamageType != class'DamTypeFlamethrower' && DamageType != class'DamTypeFrag' && DamageType != class'DamTypeLaw' && DamageType != class'DamTypeM203Grenade' && DamageType != class'DamTypeM32Grenade' && DamageType != class'DamTypeM79Grenade' && DamageType != class'DamTypePipeBomb' && DamageType != class'DamTypeSealSquealExplosion' && DamageType != class'DamTypeSeekerSixRocket' && DamageType != class'DamTypeSPGrenade' && DamageType != class'SirenScreamDamage' && !ClassIsChildOf(damageType, class'DamTypeBurned')) { Explode(HitLocation, vect(0,0,0)); } } // RepInfo == none fix simulated function ProcessTouch(Actor Other, Vector HitLocation) { // Don't let it hit this player, or blow up on another player // added bBlockHitPointTraces check if (Other == none || Other == Instigator || Other.Base == Instigator || !Other.bBlockHitPointTraces) return; // Don't collide with bullet whip attachments if (KFBulletWhipAttachment(Other) != none) return; // Don't allow hits on poeple on the same team // fixing RepInfo == none error, and using KFPawn instead of KFHumanPawn if (KFPawn(Other) != none && Instigator != none && KFPawn(Other).GetTeamNum() == Instigator.GetTeamNum()) return; // Use the instigator's location if it exists. This fixes issues with // the original location of the projectile being really far away from // the real Origloc due to it taking a couple of milliseconds to // replicate the location to the client and the first replicated location has // already moved quite a bit. if (Instigator != none) OrigLoc = Instigator.Location; if (!bDud && ((VSizeSquared(Location - OrigLoc) < ArmDistSquared) || OrigLoc == vect(0,0,0))) { if( Role == ROLE_Authority ) { AmbientSound = none; PlaySound(sound'ProjectileSounds.PTRD_deflect04',,2.0); Other.TakeDamage(ImpactDamage, Instigator, HitLocation, Normal(Velocity), ImpactDamageType); } bDud = true; Velocity = vect(0,0,0); LifeSpan = 1.0; SetPhysics(PHYS_Falling); } if (!bDud) Explode(HitLocation,Normal(HitLocation-Other.Location)); } defaultproperties{}