class Stasis extends UTWeap_ShockRifleBase;
var bool bCoolingoff;
var bool bHooked;
var vector HookLocation, Force;
var float GrappleLength, Omega, CForce;
var int Counter;
var int StasisTime;
var string StasisTimeSTR;
var float OldVelocity;
var float CoolDowntime;
simulated function StartGrapple()
{
local vector HitLocation, HitNormal;
local Actor Other;
local UTPawn PP;
PP = UTPawn(Owner);
// Don't start grappling if we're already grappling
if (bHooked)
return;
// End trace to stop people grappling stupidly long distances
Other = Trace(HitLocation, HitNormal, Owner.Location + (2500 * Vector(GetAdjustedAim( Owner.Location ))), Owner.Location, TRUE,,, TRACEFLAG_Bullet);
if (Other == None)
return;
if (!Other.IsA('Pawn'))
{
WorldInfo.Game.SetGameSpeed(0.5);
SetTimer(10.0, false, 'StopStasis');
PP.GroundSpeed=880.000000;
PP.AccelRate=4096.0;
}
}
simulated function StopStasis()
{
local UTPawn PP;
PP = UTPawn(Owner);
WorldInfo.Game.SetGameSpeed(1);
PP.GroundSpeed=440.000000;
PP.AccelRate=2048.0;
}
simulated function StasisTimer()
{
}
// Fire to call Normal or Alt Fire
simulated function BeginFire(byte FireModeNum)
{
if (FireModeNum == 0)
{
GotoState('WeaponFiring');
}
Super.BeginFire(FireModeNum);
}
// What happens when we stop Firing
simulated state WeaponFiring
{
Begin:
StartGrapple();
}
// Defaults
defaultproperties
{
// Weapon SkeletalMesh
Begin Object class=AnimNodeSequence Name=MeshSequenceA
End Object
// Weapon SkeletalMesh
Begin Object Name=FirstPersonMesh
SkeletalMesh=SkeletalMesh'WP_ShockRifle.Mesh.SK_WP_ShockRifle_1P'
AnimSets(0)=AnimSet'WP_ShockRifle.Anim.K_WP_Sho ckRifle_1P_Base'
Animations=MeshSequenceA
Rotation=(Yaw=-16384)
FOV=60.0
End Object
AttachmentClass=class'UTGameContent.UTAttachment_ShockRifle'
Begin Object Name=PickupMesh
SkeletalMesh=SkeletalMesh'WP_ShockRifle.Mesh.SK_WP_ShockRifle_3P'
End Object
InstantHitMomentum(0)=+0
WeaponFireTypes(0)=EWFT_InstantHit
InstantHitDamage(0)=0
FireInterval(0)=+0.01
FireInterval( 1)=+0.02
InstantHitDamageTypes(0)=class'UTDmgType_ShockPrimary'
WeaponFireSnd[0]=SoundCue'A_Weapon_ShockRifle.Cue.A_Weapon_SR_FireCue'
WeaponFireSnd[1]=SoundCue'A_Weapon_ShockRifle.Cue.A_Weapon_SR_AltFireCue'
WeaponEquipSnd=SoundCue'A_Weapon_ShockRifle.Cue.A_Weapon_SR_RaiseCue'
WeaponPu tDownSnd=SoundCue'A_Weapon_ShockRifle.Cue.A_Weapon_SR_LowerCue'
PickupSound=SoundCue'A_Pickups.Weapons.Cue.A_Pickup_Weapons_Shock_Cue'
M axDesireability=0.65
AIRating=0.65
CurrentRating=0.65
bInstantHit=true
bSplashJump=false
bRecommendSplashDamage=false
bSniping=t rue
ShouldFireOnRelease(0)=0
ShouldFireOnRelease(1)=1
ShotCost(0)=0
ShotCost(1)=0
FireOffset=(X=20,Y=5)
PlayerViewOffset=(X= 17,Y=10.0,Z=-8.0)
AmmoCount=1
LockerAmmoCount=1
MaxAmmoCount=1
FireCameraAnim(1)=CameraAnim'Camera_FX.ShockRifle.C_WP_ShockRifle _Alt_Fire_Shake'
WeaponFireAnim(1)=WeaponAltFire
MuzzleFlashSocket=MF
MuzzleFlashPSCTemplate=WP_ShockRifle.Particles.P_ShockRifle_ MF_Alt
MuzzleFlashAltPSCTemplate=WP_ShockRifle.Particles.P_ShockRifle_MF_Alt
MuzzleFlashColor=(R=200,G=120,B=255,A=255)
MuzzleFlashDur ation=0.33
MuzzleFlashLightClass=class'UTGame.UTShockMuzzleFlashLight'
CrossHairCoordinates=(U=256,V=0,UL=64,VL=64)
LockerRotation=(Pi tch=32768,Roll=16384)
IconCoordinates=(U=728,V=382,UL=162,VL=45)
WeaponColor=(R=160,G=0,B=255,A=255)
InventoryGroup=4
GroupWei ght=0.5
IconX=400
IconY=129
IconWidth=22
IconHeight=48
Begin Object Class=ForceFeedbackWaveform Name=ForceFeedbackWaveformShooting1
Samples(0)=(LeftAmplitude=90,RightAmplitude=40,LeftFunction=WF_Constant,RightFunction=WF_LinearDecrea sing,Duration=0.1200)
End Object
WeaponFireWaveForm=ForceFeedbackWaveformShooting1
}