Overview Package Class Source Class tree Glossary
previous class      next class frames      no frames

UTGame.UTProj_StingerShard

Extends
UTProjectile

Copyright 1998-2008 Epic Games, Inc. All Rights Reserved.

Core.Object
|   
+-- Engine.Actor
   |   
   +-- Engine.Projectile
      |   
      +-- UTGame.UTProjectile
         |   
         +-- UTGame.UTProj_StingerShard

Direct Known Subclasses:

UTProj_LeviathanShard, UTProj_TurretShard

Variables Summary
ActorBaseActor
boolbCanCreateSpike
boolbSpiked
StaticMeshComponentMyMesh
vectorOldLocation
RB_ConstraintActorShardVictimConstraint
UTProj_StingerShard
floatSpikeVictimVelFactor
Inherited Variables from UTGame.UTProjectile
AccelRate, AmbientSound, bAdvanceExplosionEffect, bAttachExplosionToPawns, bAttachExplosionToVehicles, bCheckProjectileLight, bImportantAmbientSound, bShuttingDown, bSuppressExplosionFX, bSuppressSounds, Buoyancy, bWaitForEffects, bWideCheck, CheckRadius, CustomGravityScaling, DecalDissolveParamName, DecalHeight, DecalWidth, DurationOfDecal, ExplosionDecal, ExplosionLightClass, ExplosionSound, InstigatorBaseVehicle, MaxEffectDistance, MaxExplosionLightDistance, ProjectileLight, ProjectileLightClass, ProjEffects, ProjExplosionTemplate, ProjFlightTemplate, TerminalVelocity, TossZ
Inherited Variables from Engine.Projectile
bBegunPlay, bBlockedByInstigator, bInitRotationFromVelocity, bNotBlockedByShield, bRotationFollowsVelocity, bSwitchToZeroCollision, CylinderComponent, Damage, DamageRadius, ImpactedActor, ImpactSound, InstigatorController, MaxSpeed, MomentumTransfer, MyDamageType, NetCullDistanceSquared, SpawnSound, Speed, ZeroCollider, ZeroColliderComponent

Functions Summary
function AdjustPhysicsForHit ()))
function ClientSideTouch (Actor Other, Vector HitLocation))
functionbool CreateSpike (UTPawn DeadPawn, vector InitialHitLocation, vector Direction))
event Destroyed ()))
functionbool FindNearestBone (UTPawn DeadPawn, vector InitialHitLocation, out name BestBone, out vector BestHitLocation))
function HitWall (vector HitNormal, actor Wall, PrimitiveComponent WallComp))
function PostBeginPlay ()))
function ProcessTouch (Actor Other, Vector HitLocation, Vector HitNormal))
function Shutdown ()))
function SpikeVictim (UTPawn Victim, name VictimBone))
Inherited Functions from UTGame.UTProjectile
CalcCamera, CalculateTravelTime, CanSplash, CheckMaxEffectDistance, CreateProjectileLight, Destroyed, EffectIsRelevant, Explode, GetHomingTarget, GetPawnOwner, GetRange, GetTerminalVelocity, GetTimeToLocation, HideProjectile, Init, Landed, MyOnParticleSystemFinished, PostBeginPlay, PreBeginPlay, ProcessTouch, ProjectileHurtRadius, SetExplosionEffectParameters, SetInitialState, ShouldSpawnExplosionLight, Shutdown, SpawnExplosionEffects, SpawnFlightEffects, StaticGetTimeToLocation, Tick, TornOff
Inherited Functions from Engine.Projectile
CanSplash, EncroachedBy, EncroachingOn, Explode, FellOutOfWorld, GetRange, GetTeamNum, GetTimeToLocation, HitWall, HurtRadius, Init, IsStationary, PostBeginPlay, PreBeginPlay, ProcessTouch, RandSpin, Reset, StaticGetTimeToLocation, Touch


Variables Detail

BaseActor Source code

var Actor BaseActor;
Used to keep track of what actor to base ourselves on

bCanCreateSpike Source code

var bool bCanCreateSpike;
Used to prevent rare infinite recursion when spiking overlapping dead bodies

bSpiked Source code

var bool bSpiked;
This is true if this projectile is currently spiking a victim

MyMesh Source code

var StaticMeshComponent MyMesh;
We need a pointer to our mesh component so we can switch collision when we create the constraint

OldLocation Source code

var vector OldLocation;

ShardVictimConstraint Source code

var RB_ConstraintActor ShardVictimConstraint;
This holds a link to our Constraint Actor

UTProj_StingerShard

SpikeVictimVelFactor Source code

var(UTProj_StingerShard) float SpikeVictimVelFactor;


Functions Detail

AdjustPhysicsForHit Source code

simulated function AdjustPhysicsForHit ( ) )
Setup this projectile's physics after it has spiked a victim

ClientSideTouch Source code

simulated function ClientSideTouch ( Actor Other, Vector HitLocation) )
This function is called when the touch occurs locally in a remote client. It checks to see if the pawn is already ragdolling and if so, spikes it again

CreateSpike Source code

static function bool CreateSpike ( UTPawn DeadPawn, vector InitialHitLocation, vector Direction) )
This function creates the actual spike in the world. A duplicate Shard projectile is spawned and that projectile is used to spike the pawn. We use a secondary actor in order to avoid having to wait for replication to occur since this actor is spawned client-side

Destroyed Source code

simulated event Destroyed ( ) )
Insure that our constraint is destroyed when we are destroyed

FindNearestBone Source code

static function bool FindNearestBone ( UTPawn DeadPawn, vector InitialHitLocation, out name BestBone, out vector BestHitLocation) )

HitWall Source code

simulated singular function HitWall ( vector HitNormal, actor Wall, PrimitiveComponent WallComp) )
We have to override HitWall in order to store a pointer to the actor that we hit (in the case of non-world geometry). This way we can be stuck to tanks, etc.

PostBeginPlay Source code

simulated function PostBeginPlay ( ) )

ProcessTouch Source code

simulated function ProcessTouch ( Actor Other, Vector HitLocation, Vector HitNormal) )
We only want to process the touch if we are not spike and we are not a remote client. In the case of a remote client, ClientTouch should be used.

Shutdown Source code

simulated function Shutdown ( ) )
Make sure to set our base properly

SpikeVictim Source code

simulated function SpikeVictim ( UTPawn Victim, name VictimBone) )
This function is responsible for creating the constraint between the projectile and the victim.


Defaultproperties

defaultproperties
{
   Begin Object Class=StaticMeshComponent Name=ProjectileMesh ObjName=ProjectileMesh Archetype=StaticMeshComponent'Engine.Default__StaticMeshComponent'
      StaticMesh=StaticMesh'WP_Stinger.Mesh.S_WP_StingerShard'
      CullDistance=12000.000000
      CachedCullDistance=12000.000000
      bUseAsOccluder=False
      CastShadow=False
      bAcceptsLights=False
      CollideActors=False
      BlockActors=False
      BlockRigidBody=False
      Scale=1.500000
      Name="ProjectileMesh"
      ObjectArchetype=StaticMeshComponent'Engine.Default__StaticMeshComponent'
   End Object
   MyMesh=ProjectileMesh
   SpikeVictimVelFactor=0.500000
   ProjExplosionTemplate=ParticleSystem'WP_Stinger.Particles.P_WP_Stinger_AltFire_Surface_Impact'
   MaxEffectDistance=7000.000000
   AccelRate=4500.000000
   CheckRadius=27.000000
   Speed=2500.000000
   MaxSpeed=4000.000000
   Damage=38.000000
   MomentumTransfer=70000.000000
   MyDamageType=Class'UTGame.UTDmgType_StingerShard'
   Begin Object Class=CylinderComponent Name=CollisionCylinder ObjName=CollisionCylinder Archetype=CylinderComponent'UTGame.Default__UTProjectile:CollisionCylinder'
      ObjectArchetype=CylinderComponent'UTGame.Default__UTProjectile:CollisionCylinder'
   End Object
   CylinderComponent=CollisionCylinder
   Components(0)=CollisionCylinder
   Components(1)=ProjectileMesh
   LifeSpan=10.000000
   CollisionComponent=CollisionCylinder
   Name="Default__UTProj_StingerShard"
   ObjectArchetype=UTProjectile'UTGame.Default__UTProjectile'
}

Overview Package Class Source Class tree Glossary
previous class      next class frames      no frames
Creation time: sk 18-3-2018 10:00:55.729 - Created with UnCodeX