/** * Copyright 1998-2013 Epic Games, Inc. All Rights Reserved. */ class UDKWeapon extends Weapon native nativereplication abstract; /** mesh for overlay - Each weapon will need to add its own overlay mesh in its default props */ var protected MeshComponent OverlayMesh; /** Lead targets with this weapon (true by default, ignored for instant hit - set false for special cases like targeting with AVRiL */ var bool bLeadTarget; /** Whether should consider projectile acceleration when leading targets */ var bool bConsiderProjectileAcceleration; /** Current ammo count */ var repnotify int AmmoCount; /** Replicated flag set when hitscan hits enemy */ var repnotify byte HitEnemy; /** cached max range of the weapon used for aiming traces */ var float AimTraceRange; /** actors that the aiming trace should ignore (used by vehicle weapons) */ var array AimingTraceIgnoredActors; replication { // Server->Client properties if ( bNetOwner ) AmmoCount, HitEnemy; } cpptext { INT* GetOptimizedRepList( BYTE* InDefault, FPropertyRetirement* Retire, INT* Ptr, UPackageMap* Map, UActorChannel* Channel ); UBOOL Tick( FLOAT DeltaSeconds, ELevelTick TickType ); } simulated function PostBeginPlay() { Super.PostBeginPlay(); AimTraceRange = MaxRange(); } /** * IsAimCorrect - Returns true if the turret associated with a given seat is aiming correctly * Used by vehicle weapons with limited rotation speeds * @return TRUE if we can hit where the controller is aiming */ simulated event bool IsAimCorrect(); /** * BestMode() * choose between regular or alt-fire */ function byte BestMode(); /** Util that makes sure the overlay component is last in the AllComponents/Components array. */ native function EnsureWeaponOverlayComponentLast(); /** * This function aligns the gun model in the world */ simulated event SetPosition(UDKPawn Holder); defaultproperties { bLeadTarget=true bConsiderProjectileAcceleration=true }