/** * This is our base projectile class. * * Copyright 1998-2013 Epic Games, Inc. All Rights Reserved. */ class UDKProjectile extends Projectile abstract native nativereplication; /** for console games (wider collision w/ enemy players) */ var bool bWideCheck; var float CheckRadius; /** Acceleration magnitude. By default, acceleration is in the same direction as velocity */ var float AccelRate; /** if true, the shutdown function has been called and 'new' effects shouldn't happen */ var bool bShuttingDown; //======================================================= // Seeking Projectile Support /** Currently tracked target - if set, projectile will seek it */ var actor SeekTarget; /** Tracking strength for normal targets.*/ var float BaseTrackingStrength; /** Tracking strength for vehicle targets with bHomingTarget=true */ var float HomingTrackingStrength; /** Initial direction of seeking projectile */ var vector InitialDir; /** The last time a lock message was sent (to vehicle with bHomingTarget=true) */ var float LastLockWarningTime; /** How long before re-sending the next Lock On message update */ var float LockWarningInterval; /** TerminalVelocity for this projectile when falling */ var float TerminalVelocity; /** Water buoyancy. A ratio (1.0 = neutral buoyancy, 0.0 = no buoyancy) */ var float Buoyancy; /** custom gravity multiplier */ var float CustomGravityScaling; /** if this projectile is fired by a vehicle passenger gun, this is the base vehicle * considered the same as Instigator for purposes of bBlockedByInstigator */ var Vehicle InstigatorBaseVehicle; /** Make true if want to spawn ProjectileLight. Set false in TickSpecial() once it's been determined whether Instigator is local player. Done there to make sure instigator has been replicated */ var bool bCheckProjectileLight; /** if true, not blocked by vehicle shields with bIgnoreFlaggedProjectiles*/ var bool bNotBlockedByShield; cpptext { virtual void TickSpecial( FLOAT DeltaSeconds ); virtual void GetNetBuoyancy(FLOAT &NetBuoyancy, FLOAT &NetFluidFriction); virtual FLOAT GetGravityZ(); virtual UBOOL IgnoreBlockingBy(const AActor* Other) const; virtual INT* GetOptimizedRepList(BYTE* InDefault, FPropertyRetirement* Retire, INT* Ptr, UPackageMap* Map, UActorChannel* Channel); } replication { if (bNetInitial) bWideCheck, SeekTarget, InitialDir; if (bNetDirty && bReplicateInstigator) InstigatorBaseVehicle; } /** returns terminal velocity (max speed while falling) for this actor. Unless overridden, it returns the TerminalVelocity of the PhysicsVolume in which this actor is located. */ native function float GetTerminalVelocity(); /** CreateProjectileLight() called from TickSpecial() once if Instigator is local player */ simulated event CreateProjectileLight();